Baixe o app para aproveitar ainda mais
Prévia do material em texto
Processo e Ciclo de Vida de Software • Software • Como Construir? Programas + Documentação + Dados Simplesmente “FAZER” OU ENGENHARIA DE SOFTWARE www.sei.cmu.edu/ www.rspa.com/spi/ www.swebok.org Sistemas de Informação Conjunto de componentes estruturados (pessoas, processos, métodos, técnicas, repositórios de dados, equipamentos, planejamento, organização, direção e controle) necessários à obtenção , tratamento, armazenamento, recuperação e disseminação de informações a respeito dos recursos utilizados pela empresa/instituição desde o seu ingresso até o seu desligamento, quando são colocados de volta no ambiente externo, sob a forma de processos/serviços/conhecimento Engenharia de Software • Aplicação prática de conceitos de ciência da computação e outras disciplinas em todas as atividades técnicas e gerenciais que compõem o desenvolvimento de sistemas de software com o objetivo de garantir a qualidade dos processos e dos produtos obtidos. • Também pode ser definida como a aplicação sistemática de métodos, ferramentas e técnicas para atender os requisitos e alcançar os objetivos de um sistema de software. Engenharia de Software Camadas Foco na Qualidade Processos Métodos Técnicas e Ferramentas 6 Processo de Sofware Engenharia de Software Processo de Desenvolvimento de Software Análise de Requisitos Projeto Implemen- tação Teste Implan- tação Atividades - Garantia de qualidade; - Gerência de Configuração; - Gerência de Riscos; - Métricas; - Estimativas; - Revisões Técnicas Formais. Outros Processos Contidos no Processo Principal 7 Processo de Software • É uma série de passos (um ROTEIRO). • Para criar EM TEMPO um SOFTWARE de ALTA QUALIDADE, sem estourar o ORÇAMENTO. Motivação Processo de Software • Como “escolher“ um processo? – As CARACTERÍSTICAS DA APLICAÇÃO (domínio do problema, tamanho, complexidade etc); – A TECNOLOGIA a ser adotada na sua construção (paradigma de desenvolvimento, linguagem de programação, mecanismo de persistência etc), a organização; – ONDE o produto será desenvolvido; – O PERFIL DA EQUIPE de desenvolvimento. Ciclo de Vida • Quando se “escolhe“ um processo define-se um Modelo de Ciclo de Vida (ou modelo de processo). – É uma representação abstrata da estrutura (“esqueleto“) de processo. – Inclui algumas atividades principais que podem ser decompostas em sub-atividades e tarefas. – A ordem de precedência entre elas. – Opcionalmente, artefatos requeridos e produzidos. Ciclo de Vida • Independente do modelo de ciclo de vida escolhido algumas atividades sempre devem aparecer: – atividades de definição do problema (o quê); – de construção de uma solução (como); – de manutenção do sistema depois da sua entrega ao cliente. Ciclo de Vida • Atividades de definição do problema incluem planejamento do projeto, estudo de viabilidade, levantamento, análise e especificação de requisitos. • Atividades de construção incluem desenho da solução computacional (projeto), codificação, Testes. Ciclo de Vida • Em geral, os ciclos de vida envolvem as seguintes fases: – Planejamento – Análise e Especificação de Requisitos – Projeto – Implementação – Testes – Entrega e Implantação – Operação – Manutenção • Planejamento – Fornece uma estrutura que possibilita ao gerente fazer estimativas iniciais de recursos, custos e prazos; – O escopo do software é estabelecido; – Um plano de projeto deve ser elaborado configurando o processo a ser utilizado; – Esta atividade faz parte da gerência de projeto. Ciclo de Vida • Análise e Especificação de Requisitos – O escopo do software é refinado; – Descreve “o que“ o software deve fazer; – Devem ser analisados o domínio do problema e o domínio da solução. • Projeto – Utiliza a fase anterior como insumo; – Envolve duas grandes etapas: projeto da arquitetura do software e projeto detalhado. Ciclo de Vida 15 • Implementação – O projeto é traduzido para uma para uma forma passível de execução pela máquina. • Testes – Testes de unidade e documentação dos resultados; – Integração dos componentes e teste do software como um todo; – Alguns modelos de processo prevêem a realização de testes já nas primeiras etapas. Ciclo de Vida • Entrega e Implantação – O software deve ser instalado em ambiente produção. – Envolve • Treinamento de usuários; • Configuração do ambiente de produção; • Conversão bases de dados (se necessário). – Principal propósito desta fase: • Realiza-se os Testes de Aceitação (estabelecer que o software satisfaz os requisitos dos usuários). Ciclo de Vida 17 • Operação – Após o teste de aceitação, o software passa a ser utilizado de fato em ambiente de produção. • Manutenção – Adaptativas – Corretivas – Evolutivas Ciclo de Vida 18 • Modelos de Ciclos de Vida 3 abordagens principais Ciclo de Vida • Organizam o processo em uma sequência linear de fases. – Exemplo • Waterfall (Cascata) Modelos sequenciais Modelos Sequenciais Modelo Cascata Planejamento Análise Projeto Implementação Teste Implantação Manutenção Modelos Sequenciais • Vantagens: – Fornece um padrão no qual os métodos para análise, projeto, codificação, testes e manutenção podem ser colocados – Etapas do ciclo de vida clássica são bastante genéricas e podem ser aplicadas em outros paradigmas – É o ciclo mais conhecido e utilizado • Problemas com a estratégia sequencial: – Projetos reais raramente seguem o fluxo seqüencial proposto – Freqüentemente é difícil para o cliente estabelecer todos os requisitos explicitamente e antecipadamente – O cliente deve ter paciência para ver o produto • Software produzido por incrementos (módulos); – Incrementos • Seu desenvolvimento segue o modelo sequencial; • Exigem revisão do cliente; Modelos Incrementais Vantagens Problemas - Menor custo e tempo para entrega da 1ª versão; - Menor risco e nº de mudanças nos req. (pelo fato dos inc. serem menores que o sw todo). - Requisitos instáveis ou incompletos geram muitas mudanças nos incrementos; - Gerência do projeto é mais complexa. • Exemplo • RAD (Rapid Application Development) • Prima por um ciclo de desenvolvimento curto. Modelos Incrementais • Não se preocupa em entregar de versões operacionais desde o primeiro ciclo; – Geralmente produzem protótipos ou modelos. • Versões operacionais são produzidas à medida em que os requisitos vão ficando mais claros e estáveis; • Quando empregar – Problemas muito complexos – Requisitos são muito voláteis ou que não podem ser totalmente especificados no início do desenvolvimento. Modelos Iterativos • Exemplo: Modelo Espiral, RUP Modelos Iterativos
Compartilhar