Prévia do material em texto
Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos 1 Tema 01 Processo de Desenvolvimento de Software Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos 2 • Tentativas de lidar com a complexidade e de minimizar os problemas envolvidos no desenvolvimento de software envolvem a definição de processos de desenvolvimento de software - PDS. • Um PDS compreende todas as atividades necessárias para definir, desenvolver, testar e manter um produto de software. Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos 3 • Alguns objetivos de um PDS: ✓ Definir quais as atividades a serem executadas ao longo do projeto; ✓ Definir quando, como e por quem tais atividades serão executadas; ✓ Prover pontos de controle para verificar o andamento do desenvolvimento; ✓ Padronizar a forma de desenvolver software em uma organização. • Exemplos de PDS existentes: ✓ RUP ✓ XP ✓ SCRUM Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos 4 Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos Planejamento Projeto Codificação Teste Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos 7 Atividades típicas de um PDS • Levantamento de requisitos • Análise de requisitos • Projeto • Implementação • Testes • Implantação Engenharia de requisitos Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos 8 Modelos de Ciclos de Vida • Um ciclo de vida corresponde a um encadeamento específico das fases para construção de um sistema. • Dois modelos de ciclo de vida: – modelo em cascata – modelo iterativo e incremental. Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos 9 Modelo em Cascata • Esse modelo apresenta uma tendência para a progressão sequencial entre uma fase e a seguinte. Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos 10 Modelo em cascata • Projetos reais raramente seguem um fluxo sequencial. • Assume que é possível declarar detalhadamente todos os requisitos antes do início das demais fases do desenvolvimento, aumentando a possibilidade de propagação de erros pelas fases do processo. • Uma versão de produção do sistema não estará pronta até que o ciclo do projeto de desenvolvimento chegue ao final. Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos 11 Modelo iterativo e incremental • Divide o desenvolvimento de um produto de software em ciclos. • Em cada ciclo de desenvolvimento, podem ser identificadas as fases de análise, projeto, implementação e testes. • Cada ciclo considera um subconjunto de requisitos. • Esta característica contrasta com a abordagem clássica, na qual as fases são realizadas uma única vez. Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos 12 Modelo iterativo e incremental • Desenvolvimento em “minicascatas”. Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos 13 Modelo Espiral • Foi originalmente proposto por Boehm em 1988. • Cada setor da espiral corresponde a uma tarefa (fase)do desenvolvimento. • A primeira tarefa inclui a determinação de objetivos, alternativas e restrições, onde ocorre o comprometimento dos envolvidos e o estabelecimento de uma estratégia para alcançar os objetivos. • Na segunda tarefa - avaliação de alternativas, identificação e solução de riscos, executa-se uma análise de risco. Prototipação é uma boa ferramenta para tratar riscos. Se o risco for considerado inaceitável, pode parar o projeto. • Na terceira tarefa ocorre o desenvolvimento do produto. • Na quarta tarefa o produto é avaliado e se prepara para iniciar um novo ciclo. Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos 14 Modelo Espiral https://www.google.com.br/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=0ahUKEwjR0Pbb0rTVAhXMIpAKHcJYDMoQjRwIBw&url=https://felipelirarocha.wordpress.com/2013/07/13/ciclo-de-vida-de-projeto/&psig=AFQjCNGcpkmZJpG7Qv81tmxBtVFGEMgPIw&ust=1501629163638426 Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos 15 • No processo de Prototipagem o desenvolvedor interage diretamente com o usuário, escutando seus pedidos e desenvolvendo, imediatamente, um protótipo do produto desejado. • O usuário, então, utiliza esse protótipo e fornece ao desenvolvedor novas informações que o levam a modificar o protótipo, de maneira a atender todas as necessidades do usuário. • É claramente um processo de desenvolvimento baseado em um ciclo de realimentação de informações, com alta participação do usuário. Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos 16 Necessidade de um Padrão • Percebeu-se a necessidade de um padrão para a modelagem de sistemas que fosse aceito e utilizado amplamente. • Surge a UML (Unified Modeling Language) em 1996 como a melhor candidata para ser linguagem “unificadora”. • Em 1997, a UML é aprovada como padrão pelo OMG. • Desde então, a UML tem tido grande aceitação pela comunidade de desenvolvedores de sistemas. Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos 17 UML • UML é... – uma linguagem visual. – independente de linguagem de programação. – independente de processo de desenvolvimento. • UML não é... – uma linguagem de programação (mas possui versões!). – uma técnica de modelagem. • Um processo de desenvolvimento que utilize a UML como linguagem de modelagem envolve a criação de diversos documentos. – Estes documentos, denominados artefatos de software, podem ser textuais ou gráficos. • Os artefatos gráficos produzidos de um sistema OO são definidos através dos diagramas da UML. Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos •18 Contribuições para UML Fusion Descrições de operação, Numeração de mensagem Meyer Pré e pós condições Wirfs-Brock Responsabilidades Embley Classes singleton, Visão “high-level” Odell Classificação Shlaer - Mellor “Object Lifecycles” Booch JacobsonRumbaugh UMLHarel Diagrama de Estado Gamma, et.al “Frameworks”, “patterns”, notas Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos 19 Diagramas da UML 2.0 Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos RATIONAL UNIFIED PROCESS • Guiado por casos de uso • Centrado em arquitetura • Iterativo e incremental Princípios fundamentais: Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos RATIONAL UNIFIED PROCESS - RUP • GUIADO POR CASOS DE USO • Centrado em Arquitetura • Iterativo e incremental • O planejamento do desenvolvimento é feito em função dos casos de uso identificados, tratando-se prioritariamente os mais complexos. Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos RATIONAL UNIFIED PROCESS • Guiado por Casos de Uso • CENTRADO EM ARQUITETURA • Iterativo e incremental A arquitetura deve permitir a realização dos requisitos, abrangendo um conjunto de decisões sobre: • a seleção de elementos estruturais (classes e componentes) e suas interfaces que compõem o sistema e seu comportamento especificado através de colaborações entre estes elementos; • a composição dos elementos estruturais e comportamentais em subsistemas – modularização da solução. Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos 23 Visão de Projeto Visão de ImplementaçãoVisão de Processo Visão de Implantação Casos de Uso Arquitetura e a UML • O desenvolvimento de SW complexo demanda que seus desenvolvedores tenham a possibilidade de analisá-lo a partir de diferentes perspectivas. Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos RATIONAL UNIFIED PROCESS • Guiado por Casos de Uso • Centrado em Arquitetura • ITERATIVO E INCREMENTAL ✓ Construção de software de acordo com o modelo iterativo e incremental. ✓ A cada ciclo de trabalho realizado, novas características são adicionadas à arquitetura do sistema, deixando-a mais completa e mais próxima do sistema final. Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos RUP Ponto de Vista Gerencial Concepção Elaboração 1 2 3 ... Construção Transição 16 Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos RUP - Concepção • Exige do analista uma visão inicial e geral do sistema a ser desenvolvido, podendo-se utilizar a modelagem de estado ou de atividades como modelagem de negócio. • A partir desta compreensão do negócio pode-se obter os requisitos fundamentais do projeto – funcionais e não funcionais. Identificação e descrição preliminar dos “casos de uso” mais críticos. • Pode-se elaborar um modelo conceitual preliminar – diagrama de classes – para compreensão da estrutura da informação a ser gerenciada pelo sistema. • Estabelecer o escopo do projeto - Objetivo(s). • Verificar a viabilidade do projeto. • Garantir o financiamento do projeto. • Planejamento detalhado da fase de Elaboração e geral das demais fases. Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos RUP - Elaboração • Inicia com a expansão dos casos de uso de alto nível e posterior detalhamento dos respectivos diagramas de sequência, onde são identificadas as operações do sistema. • Modelo conceitual inicial deverá ser refinado. • Protótipo da Interface com Usuário. • Garantir uma arquitetura estável e testada para a Construção (evitar surpresas técnicas durante a Construção). • Minimizar os riscos relacionados à fase de Construção. • Plano de desenvolvimento para a próxima fase - Construção. • Estimativa realista de custo e prazo para a Construção. Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos RUP - Construção • Construção do produto em uma sequência de iterações. • Gerar o software propriamente dito. • Geração do banco de dados. • Início da construção do manual do usuário. • Produto ao final da Construção ainda pode conter erros, que serão descobertos e removidos na fase de Transição. Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos RUP - Transição • Fazer a transição do produto para a comunidade de usuários. • Foco na correção de problemas e não em adição de novas funcionalidades. Sugestões são avaliadas, podendo ser incorporadas ainda nesta release. • Modificações em função de feedback dos usuários. • Treinamento dos usuários. • Montagem da estrutura de suporte. • Definição do processo de manufatura. • Teste beta – Aceitação final. Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos 30 RUP Processo de Desenvolvimento de Software - PDS Prof Tavares – Engenharia de Requisitos Até a próxima!!