Baixe o app para aproveitar ainda mais
Prévia do material em texto
UML Análise Estruturada Projeto e e e Programação Estruturados Diagrama de Módulos / Fluxograma 1950 1960 1970 1980 1990 SW !? 1ºs DBs Real Time Interf. Rica + Massificação Sofisticação 1ºs Móvel Padronização Sem planejamento: Simples ! Especificar Projetar Manter Gerir Espetar Manter e rir !!!!! 1º atividade 2º atividade 3º atividade 4º atividade 5º atividade ...... ...... ....... Utilizar os Conceitos Já conhecidos: Atividades Antecessoras e Predecessoras Análise de Requisitos: Elicitações Projeto: definidos os componentes / interações; Banco de dados e SW Operacional Codificação: Testes: Validação do Software frente aos requisitos Implantação / Manutenção: Início do uso pelo Cliente Testes Unitários Custo: pelo tempo e por falhas futuras. Às vezes encontramos nosso destino justamente pelo caminho de evita-lo: A grande desvantagem do cascata é que não se inicia uma etapa sem terminar a outra, então, gasta-se muito tempo pra garantir que uma vez terminada a fase, esta esteja Perfeita, mas aí !!, já gastou o tempo.... Ferrou e se mesmo assim encontrar problema !!! $ $ $ Requisitos Total Requisitos Total Incremental Ponto Positivo: Redução de Retrabalho Gerente de Projetos: coordenar e acompanhar as atividades e alocar Mão Obra. Coordenar Acompanhar Alocar pessoa Analista de Sistema: Captar as necessidades do negócio e traduzi-las em requisitos. Necessidades Necessidades Necessidades Necessidades Necessidades Necessidades Necessidades Necessidades Entender do negócio Falar bem Escrever bem Saber computador EU EU EU EU EU Projetista: Produzir soluções computacionais para os problemas identificados (requisitos). Arquiteto: Elaborar a arquitetura do sistema. Como e quais serão os componentes internos do Software e como estes componentes irão se interagir para resolver os problemas. ? Tem a visão abstrata sobre como os problemas serão resolvidos. Desenvolvedores: Também chamados de programadores, tem a função de implementar o SW. Passar de arquitetura para solução computacional. Solução Computacional Tem a visão técnica de implementação de um requisito. Avaliadores da Qualidade: Responsáveis pela garantia de que o SW faça aquilo para o qual foi projetado, requisitos. Solução Computacional Qual era o paradigma dos macacos ? Não subir a escada ! Essa era a regra ! Vantagens da POO Modelagem próximo ao mundo real (entendível) Maior possibilidade de “reuso”, pois os blocos são independentes Manutenibilidade: Só mexe no bloco do problema Classe Objeto Abstração Herança Polimorfismo Encapsulamento Ligação e Mensagem Pilares Classe Caneta Conjunto de objetos: com Mesmos atributos(propriedades), operações (mét.), relacionamentos e semântica. Exemplo: Caneta azul faz parte da Classe Caneta Classe é uma “especificação” de um objeto. Caution, foi dito Especificação e não Especialização Abstração Herança Composta Benefício: [Reuso] Herança Associação simples: Ocorre apenas em um determinado momento. Lembrando que existem outros dois tipo: Associação por Agregação e Associação por Composição Aprendido com Classes e agora o mesmo conceito para objetos Programação O. Objeto Linguagem Modelagem Unificada (maior escopo) Req. Proj. Impl. test trans Casos de Uso Projeto Implementação Representa os Componentes e subsistemas Representa a Arquitetura do Sistema Implantação Representa a distribuição física do sistema e como irão se comunicar Representa o ponto de vista externo do Sistema Representa a Paralelismo e Sincronismo dos componentes Processo Classificação de RNF by ISO/IEC 25010 IEC 9126 Funciona, quando utilizado em condições normais conforme acordadas ? O sistema mantem o desempenho ou a foto da Agnes fica variando ? O sistema auxilia os usuários nas tarefas, de maneira produtiva, lembrando, etc... ? O sistema consegue funcionar com desempenho OK e utilização de recursos? É fácil modificar o sistema para uma correção, melhoria ou adaptação ? É fácil transferir o sistema para outra plataforma ou ambiente ? Era Confiável, homem Maduro, Tolerante com sua mulher, se Recuperava rápido de uma briga... Sabia dar Usabilidade em mulher. Ainda que um Operador, mas Inteligente e Atrativo, deixava todos Apreensivos, afinal de contas, maridos ... Seja Eficiente como aquele homem e Comporte-se moleke. Olha o Tempo..... Utilize Recursos, só o que vai precisar Essa tal Manutenibilidade, é balela !! Analise comigo, você pode Testar... Se não está bom, você pode Modificar, .... até Estabilizar O que é Portabilidade ? É a Capacidade de Ser Instalado Urra!!, ou de Substituir algo, Tem haver com Adaptabilidade e Coexistência Esse método Funciona? É Adequado sim !! É Seguro também !! Em Funcionalidade, me recuso a decorar a Acurácia e também não concordo com aqui Interoperabilidade Era Confiável, homem Maduro, Tolerante com sua mulher, se Recuperava rápido de uma briga... Sabia dar Usabilidade em mulher. Ainda que um Operador, mas Inteligente e Atrativo, deixava todos Apreensivos, afinal de contas, maridos ... Seja Eficiente como aquele homem e Comporte-se moleke. Olha o Tempo..... Utilize Recursos, só o que vai precisar Essa tal Manutenibilidade, é balela !! Analise comigo, você pode Testar... Se não está bom, você pode Modificar, .... até Estabilizar O que é Portabilidade ? É a Capacidade de Ser Instalado Urra!!, ou de Substituir algo, Tem haver com Adaptabilidade e Coexistência Esse método Funciona? É Adequado sim !! É Seguro também !! Em Funcionalidade, me recuso a decorar a Acurácia e também não concordo com aqui Interoperabilidade ISO/IEC 9126 “Conformidade” não entrou nas historinhas !!! Requisitos Não Funcionais são altamente Complexos na Documentação e Rastreabilidade, e Validação Requisitos Não Funcionais devem fornecer subsídios numéricos para que sejam validados. Caixa Eletrônico: Precisa especificar numericamente que o sistema deve estar disponível por 99,5% do tempo nos dias úteis, das 6h às 22h. Deste modo temos subsídios suficientes para mensurar o atingimento ou não dessa meta de qualidade. Modelo de casos de uso é uma representação das funcionalidades externamente observáveis do sistema e dos elementos externos ao sistema que interagem com ele !!! Não entendi essa definição de casos de uso blá blá blá... Um caso de uso é a descrição de uma determinada ação ou comportamento de um sistema que produz um resultado para um determinado agente externo a esse sistema, denominado ator. Cuidado Pegadinhas... Podem confundir com esta outra definição Dissociar Casos de Uso e UML SISTEMA UC 1 UC 2 UC 3 UC 4 Casos de Uso: Uma Visão “Comportamental Externa” Casos de Uso: Podem definir um denominador comum de “entendimento” do domínio. UML Sintaxe Semântica Diagrama de caso de uso Esse tipo de Obrigatoriedade lembra a porta lógica “E” Efetuar Saque Senha OK <<include>> Parece que a seta sempre vira para o caso que decide a parada de verdade, neste caso aqui, pode sacar normal, sem fazer um empréstimo. Parece que a seta sempre vira para o caso que decide a parada de verdade, neste caso aqui, o pai. Senha Biomet. Segurança OK Esse tipo de Possibilidade lembra a porta lógica “OU” Faz 2 Ações Faz 3 Ações Por herança, 1 2 3 << tipo >> << relação >> << tipo >> nota [Aspecto estrutural estático], ou tb [Visão estrutural estática] representa a estrutura interna do sistema, quais são os objetos, suas responsabilidades e relacionamentos. É, estou tendo sim uma Visão de uma estrutura, e acho que não tem nadase mexendo !!! Aspecto estrutural estático: [objetos e a relação entre eles] [classes e a relação entre elas] Obs: Classes Responsabilidades bem definidas !!! ESTA É A BEASE PARA O PARADIGMA DE ORIENTAÇÃO À OBJETO: Objetos e Relações = *Solução* Eba Patrick ... Amarelinha !!! Próximo sou eu !!! A roda é um objeto autônomo, o carro não quer saber do que ela é feita, apenas requer que sustente o seu peso enquanto se movimenta. Pra que re-inventar a roda ? Na programação é melhor não enfeitar o pavão: A roda só faz exclusivamente aquilo que se espera dela e sua única dependência é estar parafusada ao carro. Na rua inteira, é como se você enxergasse apenas a tampa do escoamento d’água para antever um problema: dá um ZOOM na tampa, isola, seleciona. Ter apenas as dependências que deva ter significa colocar o mínimo de código, só pra cumprir o seu papel, Pra fazer isso depende de três linhas java ... Ele tem o Dom Específico de Implorar Ele tem o Dom Específico de Implorar Domínio: Só o escopo do Problema Especificação Implementação Visão Estática Fase Análise Implementar = construir !! Fase Desenvolvimento Extends Fiquei intrigado com a explicação. Se entendi bem, “Domínio” também pode significar tipo “Contexto” em que se passa a ação entre os objetos. Ficar atento às colocações e conceitos. Entendendo melhor o conceito de domínio: Além de poder ser um contexto, podemos entender como o escopo de uma classe, por exemplo... Classe CartaoCredito Em uma Visão estrutural estática, a Classe CartaoCredito terá suas responsabilidades e relações com as demais classes (ou objts) do conjunto, a fim de solucionarem os problemas envolvidos com o sistema. Lembrando, é uma classe, logo representa todos os Cartões de Crédito que serão instanciados. Obs. Plural não existe para nome de classe. Seguir as boas Práticas para nomenclaturas... metodoX () Binária: 2 elementos apenas Fiquei intrigado com a explicação. Se entendi bem, “Domínio” também pode significar tipo “Contexto” em que se passa a ação entre os objetos. Ficar atento às colocações e conceitos. Vendas Hotelaria Não entendi direito, mas vou deixar na Manga !!! Obj funcionario Obj gerente Gerencia Gerenciado * 1 Por conta própria, modelo Dimas todo parte objeto carro objeto roda Um objeto contido dentro do outro Em cima citou apenas “Classe”, e já na linha de baixo refere-se a objetos da Classe !!! 1 0..4 Podemos interpretar que: A classe Roda é parte da classe Carro; Um objeto do tipo roda existe independentemente do carro [entender aqui um domínio de problema]; Um objeto roda pode fazer parte de no máximo um objeto carro; Em sua estrutura, um carro pode ter nenhuma roda ou, no máximo, quatro rodas O ciclo de vida do objeto da classe parte depende do ciclo de vida do objeto da classe todo. Classe Arvore Classe Fruto A Classe Fruto é parte da Classe Arvore e o inverso nunca é verdadeiro; A existência de “um objeto” da Classe Fruto depende da existência de “um objeto” da Classe Arvore. 1 * Objetos interagem para Realizarem os User Cases [Objetivo] [Estático] [ *Estático ( diagrama de classes e objetos ) ] Estático Dinâmico Visão Estrutural Dinâmica ou Comportamental Inertes U Cases Objeto inerte Objeto já pode interagir Não queremos saber o que tem ai dentro, mas você precisa realizar UC 3 Realizar UC 3 Objeto ganha uma responsabilidade dentro do sistema privado Objetos estão [ Encapsulados ] e ganham responsabilidades dentro do sistema A abordagem para definição de responsabilidades de objetos é chamada de “método dirigido a responsabilidades”. Método dirigido a responsabilidades Princípio POO: Encapsulamento Ou isso abaixo ou criar projetos emendados e gambiarras improvisadas, sem reuso. Criar um Projeto Padrão, através de organizar e dividir por responsabilidades os Objetos. Projeto este que venha a ser um conjunto de soluções com um objetivo específico. Projeto este que venha a ser uma organização sistêmica com um objetivo específico. Os objetos são divididos e categorizados em três grupos de acordo com seu tipo de responsabilidade: classe entidade, classe de controle e classe de fronteira. Classes de análise é o nome que se da à forma de organizar essas classes, e vai ao encontro de um dos princípios fundamentais da orientação a objetos: divisão de responsabilidades. Princípio POO: Divisão de Responsabilidades Sem o Padrão, Divisão de Responsabilidades Classes entidades Classe Carro Classe Roda Classes mais superficiais, digamos de alto nível para compreensão do problema. Senão, daqui a pouco, em um modo mais profundo do sistema nem nos lembraremos mais o que era para resolver !!! Outras Classes envolvidas Classe Virabrequim Classe DiscoFreio Se estou entendendo, podemos dizer que um domínio de problema, em nosso nível, chama outros domínios ao nível do sistema e as soluções se dão de modo Recursivo, chegando novamente ao nível do usuário que fez a interação nos casos de uso, pela interface. informação do domínio Comunicação: um objeto só usa o outro se houver comunicação !!! Nosso sistema Dividir os ambientes Validação de Senha informações de sistemas governamentais informações de crédito, CERASA Podemos interpretar que essa classe representa uma interface do usuário (ator) Sequenciar Execução UC 3 UC 7 UC 5 UC 2 UC 9 Necessário colocar estereótipos: << entity >> << control >> << boundary >> Polimorfismo para Animais: Comando: Correr Comportamento diferente para a mesma voz de comando: Pra ter uma disputa justa !!! Fácil !!! **Facilidade de novas Implementações, extensão e manutenção: .... só troca o bicho Mantem todo o restante do comando. Ah! outra vantagem: Encapsulamento das mudanças Onde representar ? Documentar no Modelo de Classes Only Metods Classe A Classe B Classe C Classe D << interface >> l Contrato Caos UNIP !!! Tem i aqui ? E aqui ? **O Que** ... mas Não Como Já que tem importância, tem que errar ?? !!! objeto Instanciar criar Utilizar Destruir 1 2 3 Classe A parâmetros + Obs: Destruidor 3 Tipos Chamada (de função) Queue Message Evento ( EXTERNO ) específico e especializado de envio e recebimento Diagrama de Sequência UML (Comportamental) Troca de mensagens entre Objetos ou ator na linha sequencial do tempo Pode ser por Casos de Uso ou Regras de Negócio... Os objetos devam estar no Modelo de Classes Será que daria para bater uma foto do momento, e saber quem estava fazendo “o que” naquele flash ?? Aqui não entra Classes !! Only Objetos Instanciados metodo informarSuaRA() : int metodo receberNota( double ) : void Informe sua RA para eu procurar... Então já te envio a nota Note as assinaturas padrões dos parâmetros... “Receber”, Retorno de valores ou não !! Envia Mensagem Espera Retorno Segue o Fluxo Método Privado Método Público AutoDelegação de Mensagem Cliente no Terminal: Quer efetuar o saque Cliente no Terminal: insere Cartão Terminal: Chama Leitora para validação do Cartão, que retorna... “Prosseguir”. Cliente no Terminal: digita a senha Terminal: verifica se a senha está correta Terminal: Chama Dispensador de dinheiro Cliente no Terminal: Retira as cédulas Diagrama de Sequência Fluxo Alternativo Bola da vez aqui Laço de repetição Bola da vez aqui Errou a senha 3 vezes, Xau Pardal associação associação composição composição composição agregaçãoagregação Quem está comprometido, em que se tentar desmembrar fica Inutilizável ? Quem está apenas agregado, Leandro no Japão, Zezé com Plano ?? Palmilha é palmilha, serve pra outro !!! Quem apenas está associado ?? Seriam: Dinâmicos ?? Seriam: Estáticos ?? Quando é 1, é relacionamento obrigatório Quando é 0, é relacionamento NÃO é obrigatório Se for 1 para 1, é padrão e nem precisa representar a Multiplicidade Navegabilidade significa o sentido que os dados fluem, ou seja, Pessoa pode executar métodos na Classe Revista e não ao contrário Obs, apenas um Traço significa Bidirecional Bizu, podemos dizer que uma Agregação ou uma Composição, ambos relacionamentos são também uma Associação Entre Classes Interface / Realização Herança ? Unip - WEB
Compartilhar