PublicouNatan Caravalho Alterado mais de 7 anos atrás
Módulo 1 Melhores Práticas da Engenharia de Software
2 Objetivos Lista de sintomas dos problemas encontrados no Desenvolvimento de Software. Definição das Seis Melhores Práticas. Descrição das Atividades para resolver os problemas da Engenharia de Software para cada Melhor Prática. Apresentação do Processo Unificado (UP), dentro do contexto das Seis Melhores Práticas.
3 Problemas do Desenvolvimento de Software
SINTOMAS: Necessidades de Negócio e Usuário não atendem. Muitas mudanças de requisitos. Módulos não integram. Difícil de manter. Descoberta tardia das falhas. Baixa qualidade e iteratividade com o usuário. Baixa performance sob condições normais. Esforço não coordenado da equipe. Problemas de build-e-release (construção e lançamento de versão).
4 Mapeamento dos Sintomas para causas raiz
Necessidades erradas Requisitos Mutantes Módulos isolados Difícil manter Tarde demais Baixa qualidade Baixa performance Equipe descoordenada Problemas de Build-e-release Requisitos insuficientes Comunicação Ambígua Arquiteturas fragmentadas Complexidade desnecessária Inconsistências Testes insuficientes Avaliação subjetiva Desenvolvimento em cascata Mudanças não controladas Automação Insuficiente Sintomas Causas Raiz Melhores Práticas Desenvolver iterativamente Gerenciar Requisitos Arquiteturas componentizadas Modelar Visualmente (UML) Verificação de Qualidade Gerenciar Mudanças Verificação da Qualidade Comunicação ambígua Requisitos mutantes
5 Desenvolver Iterativamente
Melhores Práticas Processo Prático Desenvolver Iterativamente Gerenciar Requisitos Arquiteturas Componentizadas Modelar Visualmente (UML) Verificar Qualidade Gerenciar Mudanças
6 Características do Desenvolvimento em Cascata
Processo Cascata Demora na confirmação e resolução de Riscos. Mensura progresso por produto-entregue que são indicadores ruins. Demora nas integrações e testes. Implantações só no final. A maioria dos resultados ocorre em iterações não planejadas. Planejamento Análise de Requisitos Design Código e Teste Integração dos Módulos Teste de Sistema
7 Características do Desenvolvimento Iterativo
Resolve os maiores riscos antes que haja custos elevados. Facilita maior participação e feedback do usuário. Faz testes e integração contínua. Foca em marcos de projeto curtos e objetivos. Torna possível a entrega parcial de executáveis. Iteração 1 Iteração 2 Iteração 3 P R D C I T P R D C I T P R D C I T T E M P O
8 Desenvolvimento Iterativo
9 Comportamento dos Riscos
Risco no Processo Cascata Redução de Risco Risco Risco no Processo Iterativo Tempo
10 Arquiteturas Componentizadas Modelar Visualmente (UML)
Gerenciar Requisitos Melhores Práticas Processo Prático Desenvolver Iterativamente Gerenciar Requisitos Arquiteturas Componentizadas Modelar Visualmente (UML) Verificar Qualidade Gerenciar Mudanças
11 Gerenciamento de Requisitos
Tenha certeza que está resolvendo o problema certo e entregando o sistema certo. Para ter uma ação completa: Entenda o Problema. Detalhe, organize, e documente os requisitos. Gerencie mudanças de requisitos do sistema.
12 Use Arquiteturas Componentizadas
13 Arquitetura Robusta Baseada em Componentes
Atende aos requisitos atuais e futuros. Melhora a extensibilidade da aplicação. Permite reuso de funcionalidades. Encapsula funções e dados do sistema. Baseado em componentes Reuso e customização de componentes. Escolha de componentes comerciais disponíveis. Integra o sistema existente incrementalmente.
14 Arquitetura Baseada Em Componentes
Base para Reuso Componentes Bibliotecas de Componentes Base para Gerência de Projetos Planejamento Otimização de Recursos Entregas Controle Intelectual Emcapsulamento Mantém integridade das regras Arquitetura baseada em componentes distribuídos em camadas Repositórios Integração Escopo de Negócio Aplicação
15 Modelar Visualmente (UML)
Melhores Práticas Processo Prático Desenvolver Iterativamente Gerenciar Requisitos Arquiteturas Componentizadas Modele Visualmente (UML) Verificar Qualidade Gerenciar Mudanças
16 Por que modelar visualmente?
Captura estrutura e comportamento. Apresenta a colaboração entre os elementos. Mantém design e implementação consistentes. Esconde ou expõe detalhes. Promove a comunicação não ambígua. Facilita a evolução do conhecimento. Diagramas Estáticos Diagramas de Atividade Modelos Seqüência Colaboração Diagramas de Estado Deployment Componente Objetos de Classes Casos de Uso UML, uma linguagem padronizada. Diagramas Dinâmicos
17 Verificar Qualidade Continuamente
Melhores Práticas Processo Prático Desenvolver Iterativamente Gerenciar Requisitos Arquiteturas Componentizadas Modelar Visualmente (UML) Verificar Qualidade Continuamente Gerenciar Mudanças
18 Teste das Dimensões de Qualidade
Usabilidade Teste a aplicação sob a perspectiva de conveniência de uso pelo usuário. Funcionalidade Confiabilidade Teste a aderência de cada cenário de caso de uso. Teste a aplicação em sua consistência de comportamento. Suportabilidade Performance Teste a capacidade da aplicação ser mantida em produção. Teste o tempo de resposta da aplicação on-line e com picos elevados de uso.
19 Verificação Contínua da Qualidade do Software
Custo Transição Construção Elaboração Concepção Problemas de Software são de 100 a 1000 vezes mais caros se encontrados e consertados depois de instalados Custo para consertar Software Custo com a perda de oportunidades Custo com a perda de clientes
20 Teste cada iteração Modelo UML e Aplicação Testes Iteração 1
Test Suite 1 Iteração 2 Test Suite 2 Iteração 3 Test Suite 3 Test Suite 4 Iteração 4 Modelo UML e Aplicação Testes
21 Gerenciar Mudanças Melhores Práticas Desenvolver Iterativamente
Processo Prático Desenvolver Iterativamente Gerenciar Requisitos Arquiteturas Componentizadas Modelar Visualmente (UML) Verificar Qualidade Gerenciar Mudanças
22 Canal Único de Aprovação
Gerenciamento das Requisições de Mudanças Requisições de Mudanças vêm de várias fontes durante o ciclo de vida do sistema. Entradas dos Usuários e Clientes Canal Único de Aprovação Nova Característica Req Marketing Processo de Aprovação das Requisições de Mudança Comitê de Controle (CCM) Novo Requisito Design Entradas dos Desenvolvedores e Testadores Código Bug Requisição de Mudança (RM) Teste Entradas do Help Desk Manut Weinberg, '95
23 As melhores práticas reforçam umas as outras
Desenvolver Iterativamente Gerenciar Requisitos Utilizar Arquiteturas Componentizadas Modelar Visualmente (UML) Verificar Qualidade Gerenciar Mudanças Envolvimento dos usuários no desenv. dos requisitos Validação antecipada das decisões arquiteturais Ataca complexidade de Design / Implementação incrementalmente Mede qualidade freqüentemente Desenvolvimento incremental de baselines
24 Processo Unificado e as Melhores Práticas
Abordagem Iterativa Guias para atividades e artefatos Foco do Processo na Arquitetura Casos de uso que direcionam o projeto de arquitetura e a implementação Modelos que abstraem o sistema
25 Definição de Processo O processo define Quem está fazendo O que, Quando, e Como a fim de chegar a um determinado objetivo. Novo ou alterado Requisitos Sistema Processo de
26 Estrutura do Processo – Fases
Concepção Elaboração Construção Transição Lidar com riscos relacionados ao negócio. (notação financeira do projeto) Lidar com riscos relacionados aos assuntos técnicos do projeto. Lidar com riscos relacionados a "ter a massa de trabalho pronta" Lidar com riscos relacionados à logística de entrega da aplicação para o ambiente de produção Tempo
27 Fronteiras (ou Marcos) das Fases
Concepção Elaboração Construção Transição Objetivos do Ciclo de Vida e Decisão de Viabilidade do Projeto Ciclo de Vida da Arquitetura Validada Capacidade Operacional Inicial Release Final do Produto
28 Marcos e Objetivos Menores:
Iterações e Fases Concepção Elaboração Construção Transição Iteração Preliminar Iteração Arquitetural Iteração Arquitetural Iteração de Construção Iteração de Construção Iteração de Transição Iteração de Trans. Marcos e Objetivos Menores: Releases Uma iteração é uma seqüência distinta de atividades baseadas em um plano existente e critérios de avaliação, resultando na liberação de um artefato (produto - interno ou externo).
29 Evolução dos Artefatos Através do Ciclo de Vida
Artefatos do Projeto são produzidos iterativamente.
30 Disciplinas agrupam atividades logicamente.
Colocando tudo junto Em uma iteração, você passa por todas as disciplinas. Disciplinas agrupam atividades logicamente.
31 Disciplinas produzem modelos
Modelo de Caso de Uso de Negócio Implementado por Modelo de Objetos de Negócio Design Implementação Caso de Uso Realizado por Automatizado por Disciplinas Análise & Requisitos Modelagem
32 Guia das Disciplinas Workflow de Requisitos Workflow da
Modelagem de Negócios Workflow de Requisitos
33 Visão Geral dos Conceitos do Processo Unificado
34 Revisão As melhores práticas são guias da Engenharia de Software para atacar as causas dos problemas do Desenvolvimento de Software; As melhores práticas reforçam umas as outras; Um processo guia a equipe de quem, o que, quando e como fazer as atividades; Processo Unificado é uma forma de colocar em ação as Melhores Práticas.