Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula de Hoje – Projeto de SW // Obter Requisitos Obter Requisitos Elaborar Projeto RápidoElaborar Projeto Rápido ConstruirConstruir ProtótipoProtótipo Avaliar ProtótipoAvaliar Protótipo Refinamento do ProtótipoRefinamento do Protótipo Exemplo de um processo GENÉRICO de Software Engenharia Engenharia de de RequisitosRequisitos Projeto Projeto de de SoftwareSoftware Construção Construção e e TesteTeste ImplantaçãoImplantação RequisitosRequisitos SoftwareSoftware TesteTeste Requisitos do software são traduzidos para uma representação que facilite sua codificação posteriormente Contextualizando...PROJETO Descrição do Sistema Modelo de Sistema Modelo de Análise Modelo de Projeto Fonte: [Pressman, 2011] Conceitos de Projeto • O projeto deve estar relacionado ao modelo de análise • Requisitos F/NF e classes de análise � arquitetura (esqueleto do sistema, com subsistemas estruturados em componentes de sistema, com subsistemas estruturados em componentes de software) • Inicia-se tão logo os requisitos foram analisados e modelados Conceitos de Projeto •Sempre considere e comece pela arquitetura do sistema a construir • Arquitetura afeta fluxo de controle, interfaces, estruturas de dados, • Arquitetura afeta fluxo de controle, interfaces, estruturas de dados, testes e manutenção •O projeto de objetos de dados é tão importante quanto o projeto de métodos de processamento Conceitos de Projeto • As interfaces (internas e externas) precisam ser projetadas • Fluxo de dados entre componentes de um sistema afeta a eficiência de processamento, a propagação de erros, a integração e os testes • O projeto de interface com usuário deve enfatizar a necessidade do usuário final e a facilidade de uso Conceitos de Projeto • Modelos de projeto devem ser facilmente compreensíveis • Para quem codifica, testa, mantém • O projeto deve ser desenvolvido iterativamente, visando • O projeto deve ser desenvolvido iterativamente, visando simplicidade • Refinamento e correções de erros a cada ciclo Análise X Projeto • Modelos de Análise • Enfocam a descrição dos dados, funções e comportamentos requeridos • Entrada: requisitos do cliente, necessidades do negócio e • Entrada: requisitos do cliente, necessidades do negócio e considerações técnicas • Modelos de Projeto • Detalham as estruturas de dados, arquitetura, interfaces e componentes do software necessários para implementar o sistema • Entrada: descrições e modelos de análise Análise X Projeto • Modelos de Análise = O QUE !?! • Modelos de Projeto = COMO !?! Análise X Projeto Modelos de Projeto (Projeto Arquitetural, de Interface, de Dados, de Componentes) CODIFICAÇÃO E TESTE 2 3 ANÁLISE PROJETO Requisitos do cliente, necessidades do negócio Descrições e modelos de análise (RF/RNF, UC, Raia, Sequencia, Classe, Dados,...) Componentes) 1 Análise X Projeto use-cases - text use-case diagrams data flow diagrams control-flow diagrams f l ow- or i ent e d e l ement s scena r i o- based e l ement s Com pone nt - Le v e l De sign Analysis Model use-case diagrams activity diagrams swim lane diagrams control-flow diagrams processing narratives behav ior a l e l ement s c l a ss- based e l ement s class diagrams analysis packages CRC models collaboration diagrams state diagrams sequence diagrams Da t a / Cla ss De sign A rc h it e c t u ra l De sign In t e rf a c e De sign Design Model Projeto de Software • Projeto de Dados/Classes • Projeto Arquitetural • Projeto de Interface • Projeto em Nível de Componentes Projeto de Software • Projeto de Dados/Classes • Detalhamento de classes, relacionamentos, métodos e estruturas de dados relacionadas a atributos de classes • Ex.: definição da tipagem de relacionamentos / visibilidade de dados de atributos / em um diagrama de classes UML Projeto de Software • Projeto de Dados/Classes Projeto de Software • Projeto de Interface • Descreve como o software se comunica com os sistemas com os quais interoperam e com as pessoas que o utilizam • Ex.: definição de mensagens de erros e de layout de telas na • Ex.: definição de mensagens de erros e de layout de telas na interação com usuário final Projeto de Software • Projeto de Interface Projeto de Software • Projeto de Interface Projeto de Software • Projeto Arquitetural • Definição dos relacionamentos entre os grandes componentes estruturais do sistema, os estilos arquiteturais e padrões de projeto que podem ser utilizados para desenvolver esse sistemaque podem ser utilizados para desenvolver esse sistema • Ex.: definição de uma arquitetura cliente-servidor para sistema de venda de passagens aéreas pela Internet • Ex: utilização do padrão de projeto MVC Vantagens de uma Arquitetura Explícita • Comunicação de interessados • Arquitetura é uma apresentação em alto nível do sistema, que pode ser usada para enfocar a discussão entre os diferentes interessados (clientes, gerentes de clientes, etc.) • Análise de sistema • Decisões de projeto arquitetural podem indicar se o sistema atenderá a seus requisitos não-funcionais: desempenho, confiabilidade, manutenibilidade, configurabilidade, etc. • Reúso em larga escala • Uma mesma arquitetura pode ser usada em uma variedade de sistemas similares, o que reduz tempo e custo Modularidade • Arquitetura de software e padrões de projeto incorporam o conceito de modularidade • Divide-se o software em componentes / módulos, que são integrados para atender aos requisitos do problemaintegrados para atender aos requisitos do problema • Reduz a complexidade do sistema • Facilita o planejamento • Incrementos de software podem ser definidos e liberados • Facilita as alterações por se tornarem localizadas • Resulta em uma implementação mais fácil ao se estimular o desenvolvimento simultâneo de diversas partes de um sistema Projeto de Software • Projeto Arquitetural Projeto de Software • Projeto em Nível de Componentes • Define agrupamentos de classes de funções relacionadas, e aplica sobre estas um fluxo procedural de execução • Ex.: agrupamento de classes vinculadas à interface com usuário em • Ex.: agrupamento de classes vinculadas à interface com usuário em um sistema Web de inscrição em vestibular (classes de interface gráfica, de validação de dados, etc.) Projeto de Software Projeto de Software • Projeto em Nível de Componentes Importância do Projeto: Qualidade • É a etapa onde qualidade é incorporada na engenharia de software • Fornece modelos que podem ser avaliados quanto à • Fornece modelos que podem ser avaliados quanto à qualidade antes de serem implementados • Devem considerar: • Requisitos Funcionais: funcionalidades • Requisitos Não Funcionais: usabilidade, confiabilidade, desempenho, espaço, portabilidade, implementação, etc ... Importância do Projeto: Qualidade • Único modo pelo qual podemos traduzir precisamente requisitos em um produto de software acabado • O projeto serve de base para todos os passos seguintes de • O projeto serve de base para todos os passos seguintes de engenharia de software e de suporte de software • Sem ele, pode-se arriscar a construir um sistema instável, difícil de modificar e testar, suscetível a falhas, ... AVISOS •Próxima aula dia 21/10/14 – projeto de interface – trazer os requisitos e diagrama de casos de uso do trabalho •Dia 23/10/2014 – não haverá aula presencial •Dia 23/10/2014 – não haverá aula presencial •Dia 30/10/2014 – entrega final do trabalho em grupo – Escopo, requisitos, casos de uso e projeto de interface – IMPRESSO•30/10/2014 – Prova p2 Leitura Recomendada – Capítulo 8 do livro texto: Pressman, Roger. Engenharia de Software, 7ed. McGrawHill, Porto Alegre, RS, 2011.
Compartilhar