330 likes | 465 Views
Engenharia de Software. Tecnologia em Análise e Desenvolvimento de Sistemas. O que é um processo de software? O que é um modelo de processo de software? Quais os desafios enfrentados pela Engenharia de Software? O que é o ciclo de vida de um software?
E N D
Engenharia de Software Tecnologia em Análise e Desenvolvimento de Sistemas
O que é um processo de software? • O que é um modelo de processo de software? • Quais os desafios enfrentados pela Engenharia de Software? • O que é o ciclo de vida de um software? • Quais são as atividades fundamentais do software? • Quais são os modelos de processo de software que estudamos? Revisando
Processo de Engenharia de Software • Modelo de Processo • Produto de Processo • Melhores Práticas em desenvolvimento moderno de software O Processo Unificado
Desenvolvimento iterativo • Gerenciamento de requisitos • Utilização de arquiteturas baseadas em componentes • Modelagem visual do software • Verificação contínua da qualidade do software • Controle de mudanças do software Melhores Práticas em Desenvolvimento de Software
Desenvolver o software iterativamente • Cada iteração resulta em um lançamento executável. • Facilidade de encontrar problemas mais cedo. • Usuário mais participativo. • Equipe é forçada a pensar nos pontos mais críticos. • Lições aprendidas podem ser melhoradas dentro do próprio projeto. • Facilidade de verificação do status do projeto. • Equipe de teste tem trabalho mais uniforme.
Gerenciar requisitos • Identificar os verdadeiros requisitos do sistema é um processo contínuo. • Compreensão do usuário sobre os requisitos do sistema também muda. • Se faz necessária a utilização de uma abordagem disciplinada. • Facilidade de comunicação. • Possibilidade de filtrar, localizar e priorizar requisitos. • Permite a detecção de problemas mais cedo.
Usar arquiteturas baseadas em componente • Melhor organização do sistema como um todo. • Facilidade na recuperação rápida do sistema. • Estudo dos requisitos funcionais e não-funcionais. • Separação clara de elementos de um sistema. • Reutilização facilitada por padrões de mercado. • Facilidade no gerenciamento da configuração. • Ferramentas de modelagem permitem a automação para este tipo de desenvolvimento.
Modelar visualmente o software • Simplificação da realidade que descreve completamente um sistema. • Perspectiva particular. • UML = Unified Modeling Language. • Padronização da comunicação. • Cuidado com o nível de detalhamento. • Ferramentas de suporte.
Controlar mudanças do software • Necessidade de um controle disciplinado: Equipes distantes, projetos de integração, stakeholders com visões diferentes. • Fluxos repetíveis para gerenciar mudanças em todos os artefatos. • Conceito de baseline (linha base). • Rastreabilidade. • Estatísticas em torno de mudanças. • Ferramentas.
Processo Unificado (Jacobson, Booch e Rumbaugh - 1999) O Processo Unificado e suas extensões RUP: IBM Rational Unified Process (Três Amigos) AUP: Agile Unified Process (Scott W. Ambler) EUP: Enterprise Unified Process (Scott W. Ambler) EssUP Essential Unified Proccess (Ivar Jacobson)
Estrutura do RUP • O quê? • Quem? • Quando? • Como?
Artefatos (O quê?) • Documento de Visão • Especificação de requisitos • Diagrama de Caso de Uso • Diagrama Entidade-Relacionamento • Código • Manual • Treinamento
Papéis (Quem?) • Analista de negócios • Analista de requisitos • Arquiteto • Analista de sistemas • Programador • Revisor • Instrutor • Gerente de projeto
Tempo (Quando?) • Concepção • Elaboração • Construção • Transição
Tempo de Concepção: Objetivos • Obter contexto e requisitos mais importantes • Planejar (Caso de uso de negócio, riscos, pessoas, custo, prazo, rentabilidade) • Visualizar arquitetura possível
Tempo de Concepção: Resultados • Documento de visão • Glossário • Caso de uso (inicial) • Risco x Mitigação • Plano de Projeto • Modelo de Negócio • Protótipos • Especificação de Requisitos
Tempo de Concepção: Marco a ser atingido • Aceite de custo e estimativas por parte dos stakeholders. • Entendimento dos requisitos / escopo. • Despesas atuais versus planejadas conforme planejado.
Tempo de Elaboração: Objetivos • Definir arquitetura de acordo com visão: negócio, custo e prazo • Planejar a construção • Selecionar componentes • Decidir entre fazer, comprar e/ou reutilizar
Tempo de Elaboração: Resultados • Caso de uso (80% completo) • Adequações nos requisitos • Arquitetura • Plano para desenvolvimento
Tempo de Elaboração: Marco a ser atingido • Visão estável • Arquitetura estável • Plano de construção adequado • Despesas aceitáveis • Stakeholders de acordo
Tempo de Construção: Objetivos • Evitar trabalho. • Alcançar a qualidade adequada. • Gerar versões úteis o mais rápido possível.
Tempo de Construção: Resultados • Programas. • Manuais. • Release notes.
Tempo de Construção: Marco a ser atingido • Software com capacidade de operação no nível adequado de Qualidade. • Produto estável. • Despesas aceitáveis.
Tempo de Transição: Objetivos • Levar o software até os usuários. • Treinar usuários e mantenedores. • Converter bases operacionais. • Receber o aceite do cliente.
Tempo de Transição: Resultados • Pacote comercial. • Treinamento. • Folhas de avaliação e aceitação preenchidas.
Tempo de Transição: Marco a ser atingido • Lançamento do produto. • Usuário satisfeito. • Despesas adequadas.
Conteúdo / Fluxo / Disciplina(Como?) • Disciplinas de Engenharia • Modelo de negócio • Requisitos • Análise e Construção • Implementação • Teste • Distribuição (Implantação) • Disciplinas de Suporte • Configuração e Gerenciamento de Mudanças • Gerenciamento de projeto • Ambiente
Processo Unificado On-Line: • http://www.wthreex.com/rup/ • Agile Unified Process Download: • http://www.ambysoft.com/unifiedprocess/agileUP.html Links interessantes
KRUCHTEN, Philippe Introdução ao RUP - Rational Unified Process. Rio de Janeiro: Ciência Moderna Ltda., 2003. Bibliografia Complementar