Prévia do material em texto
Fases e implementação do projeto de software SST Fases e implementação do projeto de software Ano: 2021 nº de p.: 11 Copyright © 2021. Delinea Tecnologia Educacional. Todos os direitos reservados. Fases e implementação do projeto de software 3 Apresentação Caro(a) aluno(a), bem-vindo(a) à Unidade de Fundamentos de Processo de Software. Esta unidade abrange a fundamentação do processo de desenvolvimento de software, o gerenciamento do projeto e o processo de qualidade de desenvolvimento. 4 1. Fase de projeto e implementação de desenvolvimento de software Após a etapa de elicitação e análise de requisitos efetuada por meio de um diagrama caso de uso (UML – Linguagem de Modelagem Unificada) e validações, a fase de projeto de desenvolvimento de software é a ligação entre a codificação e seus requisitos, visando estabelecer uma arquitetura de software. Transformando o modelo de requisitos no modelo de projeto Fonte: Pressman e Maxim (2016, p. 226). A fase de projeto pode ser constituída em duas atividades principais: 1. projeto de arquitetura; 2. projeto detalhado. Na atividade de projeto de arquitetura, são desenvolvidos os diagramas de implementação. 5 Organização Fonte: Deduca (2021). #PraCEgoVer: Na imagem objetos de trabalho como: um teclado, um lápis, uma pasta, etc. Pressman e Maxim (2016, p. 225-226) afirmam que o projeto de software está no núcleo técnico da engenharia de software e é aplicado seja qual for o modelo de processo de software utilizado. Iniciando assim que os requisitos de software tiverem sido analisados e modelados, o projeto de software é a última ação de engenharia de software na atividade de modelagem e prepara o cenário para a construção (geração de código e testes). 6 2. Projeto de Arquitetura Para Pressman e Maxim (2016, p. 226), o projeto de arquitetura define as relações entre os principais elementos estruturais de software, os estilos arquiteturais e padrões de projeto. Já para Sommerville (2018, p. 25), no projeto de arquitetura é possível identificar a estrutura geral do sistema, os componentes principais (algumas vezes chamados subsistemas ou módulos), seus relacionamentos e como eles são distribuídos. Pacote no UML Os elementos de um diagrama podem ser agrupados em pacotes, seguindo um critério qualquer de agrupamento. Os casos de uso podem ser agrupados em pacotes, segundo critérios funcionais de negócio. Os componentes de sistema também podem ser agrupados em pacotes e cada pacote poderia ser entregue a uma equipe ou a um programador diferente. Diagrama de pacotes Frequentemente usado para ilustrar a arquitetura lógica de um sistema, como as camadas, os subsistemas, os pacotes etc. Uma camada pode ser modelada como um pacote UML, sendo que um diagrama de pacote fornece um modo de agrupar elementos. Um pacote UML pode agrupar qualquer coisa: classes, outros pacotes, casos de uso etc. O Quadro 2.1 apresenta um exemplo de camadas utilizadas no projeto de arquitetura. Essas camadas são usadas em diversos diagramas de arquitetura em camadas, representando a comunicação entre os componentes por meio de interfaces padronizadas. Cada pacote é independente e pode ser organizado internamente em n camadas. 7 Camadas utilizadas no projeto de arquitetura Camadas Componentes Middleware (serviços de software e de sistema operacional) Applets (pequenos programas que executam atividades específicas) Camada de interface com o usuário Pacotes de telas Camada de regra de negócio Pacotes de regras de negócios Camada de persistência JDBC (conjunto de classe e interfaces) ODBC (interfaces de conexão de banco de dados) Dados Tabelas e Stored procedures Fonte: Elaborada pelo autor (2019). Sommerville (2018, p. 25) comenta que no projeto de interface são definidas as interfaces entre os componentes do sistema. Pressman e Maxim (2016, p. 226) explicam que o projeto de interfaces se comunica com sistemas, que operam em conjunto, e com as pessoas que o utilizam. Uma interface implica em fluxo de informações (por exemplo, dados e/ou controle) e em um tipo de comportamento específico. Modelos comportamentais e de cenários de uso são usados nesse modelo. Diagramas de sequência da UML são utilizados nesse modelo. 8 3. Projeto de componentes Segundo a UML, o componente é uma parte modularizada, física, possível de ser implantada e substituída por meio de encapsulamento e implementação em um sistema e, ainda, exibe um conjunto de interfaces. Pode ser conceituado também como uma realização de interfaces, em outras palavras, componentes ou blocos compõem a arquitetura do software e se comunicam entre si com outros sistemas e entidades. Figura 4.1: Processo de projeto Fonte: Sommerville (2018, p. 26). Exemplos de componentes: executáveis, bibliotecas, tabelas, documentos etc. Já os tipos de componentes seriam: base de dados, arquivo ou fonte de dados, documentos, biblioteca estática ou dinâmica e componente executável em um nó. 9 Projeto de software Fonte: Deduca (2021). #PraCEgoVer: Na imagem um computador de mesa, um notebook, um tablet e um celular. Para Pressman e Maxim (2016, p. 247), o projeto de componentes para software descreve completamente os detalhes internos de cada componente de software. Para tanto, o projeto no nível de componente define estruturas de dados para todos os objetos de dados locais e detalhes algorítmicos. Os possíveis diagramas da UML que poderiam atender ao projeto de componentes no modelo de projeto seriam: diagramas de componentes e de classes de projeto, diagramas de atividade e diagramas de sequência. 10 Fechamento Para o desenvolvimento de uma interface com uma usabilidade eficaz e eficiente, são utilizados vários diagramas em um projeto de interface. Um exemplo de representação de interface é feito por meio de operações públicas visíveis externamente a uma classe, como mostra a Figura 2.7. Pressman e Maxim (2016, p. 246) afirmam que a interface, chamada teclado, é apresentada como estereótipo <<interface>>. A interface é definida sem nenhum atributo e conjunto de operações necessárias para obter o comportamento de um teclado. 11 Referências ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. ABNT NBR ISO/IEC 9126: engenharia de software: qualidade de produto. Rio de Janeiro: ABNT. 2003. ______. ABNT NBR ISO/IEC 12207: engenharia de sistemas e software: processos de ciclo de vida de software. Rio de Janeiro: ABNT. 2009. ______. ABNT NBR ISO/IEC 15504: processo de desenvolvimento de software. Rio de Janeiro: ABNT. 2008. ______. ABNT NBR ISO/IEC 20000: gestão de serviço de TI. Rio de Janeiro: ABNT. 2011 PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: uma abordagem profissional. 8. ed. Porto Alegre: AMGH, 2016. SOMMERVILLE, I. Engenharia de software. Tradução de Kalinka Oliveira e Ivan Bosnic. 10. ed. São Paulo: Pearson, 2018. VAZQUEZ C. E.; SIMÕES G. S.; ALBERT R. M. Análise de pontos de função: medição, estimativas e gerenciamento e projetos de Software. 13. ed. São Paulo: Érica, 2013.