Técnicas e Projeto de Sistemas Técnico Subsequente Aula 03 – 2014 Thatiane de Oliveira Rosa INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 1 Roteiro • Tema: Processo de Desenvolvimento de Software. Engenharia de Software; Processo de Desenvolvimento de Software; Ciclos de Desenvolvimento de Software; Atividade. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 2 Engenharia de Software • Relembrando a definição: A Engenharia de Software visa fornecer métodos (i.e.: “como fazer”), ferramentas e procedimentos (i.e.: sequência em que os métodos serão aplicados) para o desenvolvimento de software de forma que ele atinja seus objetivos. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 3 Engenharia de Software • Um software deve, de forma geral, atender os seguintes objetivos: Funcionalidade; Custo; Tempo; Desempenho; Padrões; Leis; Atender as partes interessadas (stakeholders). INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 4 Engenharia de Software Mas como posso atingir todos esses objetivos??? INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 5 Engenharia de Software Seguindo um processo de desenvolvimento de software!! INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 6 Processo de Desenvolvimento de Software • Processo: É uma sequência de passos que devem ser seguidos para se atingir determinado objetivo. • Processo de desenvolvimento de software: Também chamado simplesmente de processo de software; Objetiva a construção de um software; Sub processos: • Requisitos, análise, desenho, implementação e teste. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 7 Processo de Desenvolvimento de Software • O ponto de partida então é seguir um ciclo de vida: Que é uma interação entre os processos; Baseado em: • Complexidade; • Risco; • Tamanho da equipe; • Necessidade do cliente. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 8 Ciclos de Vida de Software • Codifica-remenda: Produto Especificação??? Alto risco; Impossível de gerenciar; Não permite assumir compromissos confiáveis INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 9 Ciclos de Vida de Software • Clássico ou Cascata: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 10 Ciclos de Vida de Software • Clássico ou Cascata: Sequencial; Rígido; Burocrático; Não prevê correções nas fases posteriores; O cliente só vê o resultado no final do projeto; Indicado para projetos pequenos. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 11 Ciclos de Vida de Software • Clássico ou Cascata: início Requisitos Análise Desenho Implementação Teste INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente Final 12 Ciclos de Vida de Software • Cascata com realimentação: Cada fase possibilita um retorno; Dificulta o gerenciamento. • Por que? INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 13 Ciclos de Vida de Software • Cascata com realimentação: início Requisitos Análise Desenho Implementação Teste INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente Final 14 Ciclos de Vida de Software • Espiral: Passos do modelo clássico em iterações; Cada iteração é uma volta na espiral; Requisitos desenvolvidos progressivamente; Usuário com maior contato com as versões; Exige muita disciplina e gestão para que o foco seja mantido. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 15 Ciclos de Vida de Software • Espiral: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 16 Ciclos de Vida de Software • Prototipagem evolutiva: Baseado do no modelo espiral; Ao final de cada volta o usuário tem acesso a um protótipo; Útil para aprovações de ideias e coleta de novos requisitos; Desvantagem: • Cliente insiste que o protótipo seja, com ligeiras modificações, a versão final do produto. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 17 Ciclos de Vida de Software • Prototipagem evolutiva: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 18 Ciclos de Vida de Software • Entrega evolutiva: Segue o modelo espiral somente a partir da fase desenho detalhado; Modelo bastante utilizado na prática; Exige uma boa fase de requisitos, análise e desenho alto nível. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 19 Ciclos de Vida de Software • Entrega evolutiva: início Requisitos Análise Desenho de alto nível Desenho detalhado Implementação Teste Não Produto completo? Sim INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente Final 20 Ciclos de Vida de Software • Quase-espiral: Bastante aceito na prática; É utilizado como base para outros modelos; Mais próximo da realidade. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 21 Ciclos de Vida de Software • Quase-espiral: início Visão Geral Requisitos Análise Desenho Implementação Produto completo? Sim Não INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente Teste Final 22 Ciclos de Vida de Software • Dirigido por tempo: Considera aquilo que se pode desenvolver em determinado tempo; Quando se sabe que o tempo é suficiente para os requisitos; O tempo pode ser discutido entre cliente e empresa de desenvolvimento. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 23 Ciclos de Vida de Software • Documentos gerados: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 24 Ciclos de Vida de Software • Documentos gerados: Visão geral: • Escopo de trabalho, pessoas envolvidas, plano de projeto... Requisitos: • Visão geral, conceitos de operações, requisitos funcionais, não funcionais... Análise: • Detalhamento dos requisitos, diagrama de casos de uso, casos de uso reais, divisão de módulos... Design: • Diagrama de BD, DFD (Diagrama de Fluxo de Dados), Classes, Sequencia... INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 25 Ciclos de Vida de Software • Documentos gerados: Implementação: • Código comentado, resultado de testes unitários... Teste: • Plano de teste, documento de execução de testes... Implantação: • Diagrama de implantação, tutoriais, treinamentos... INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 26 Atividade 1. Em sua opinião, como a engenharia de software pode ajudar no atendimento aos objetivos do software? 2. Descreva os ciclos de vida de software destacando os riscos associados a cada um deles: Codifica-remenda; Cascata; Cascata com retroalimentação; Espiral; Prototipagem evolutiva. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 27 Atividade 3. Você irá abrir uma empresa de desenvolvimento de software com outros 3 colegas. Qual dos ciclos de vida de software vistos até o momento você utilizaria? Por que? 4. Você consegue descrever um cenário onde seja interessante o uso de todos esses processos de ciclo de vida ou, em sua opinião, é uma “perda de tempo” criar tanta documentação para desenvolver um software? Justifique sua resposta. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 28 Técnicas e Projeto de Sistemas Técnico Subsequente Aula 03 – 2014 Thatiane de Oliveira Rosa INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Técnicas e Projeto de Sistemas – Técnico Subsequente 29