Baixe o app para aproveitar ainda mais
Prévia do material em texto
1Engenharia de Software Atividades do processo de software O processo unificado Aula 5 2Engenharia de Software Unidade 1 • Introdução a engenharia de software • Mitos e desafios do desenvolvimento de software • Processos de Software • Modelos de processos clássicos de software (cascata, evolucionário e reuso) • Atividades do processo de software • O processo unificado • Métodos ágeis de desenvolvimento 3Engenharia de Software Atividades do Processo de Software 4Engenharia de Software Conjuntos de atividades e resultados associados que geram um produto de software (Sommerville) Há quatro atividade de processo fundamentais comuns a todos os processos de software: 1. Especificação do Software 2. Desenvolvimento do Software 3. Validação do Software 4. Evolução do Software Funcionalidades e restrições Produção do Software Faz o que o cliente quer? Necessidade de Mudanças Atividades do Processos de Software 5Engenharia de Software Atividades do Processo de Software • Especificação de software Etapa em que os clientes e engenheiros definem o software que será produzido e as restrições ao seu funcionamento. • Desenvolvimento de software Etapa em que o software é projetado e programado. • Validação de software Etapa em que o software é verificado para garantir que ele faz o que o cliente necessita. • Evolução de software Etapa em que o software é modificado para refletir as mudanças nas exigências dos clientes e do mercado. 6Engenharia de Software Atividades do processo • Processos de software são sequências intrelaçadas de atividades técnicas, de colaboração e de gestão, com o objetivo geral de especificar, projetar, implementar e testar um sistema de software. • As atividades são organizadas de forma diferente em diferentes processos de desenvolvimento. • No modelo em cascata, eles são organizados em sequência, enquanto que no desenvolvimento incremental são intercaladas. 7Engenharia de Software Atividades do processo • Atividades técnicas, de colaboração e de gestão • Objetivo: Especificar, projetar e testar software • Diferentes ferramentas são usadas como apoio 8Engenharia de Software Requisitos de engenharia de processos 9Engenharia de Software Especificação de Software • O processo para definir quais serviços são necessários e as restrições sobre o funcionamento e desenvolvimento do sistema. • Processo de engenharia de requisitos – Estudo de viabilidade - Será que é técnicamente e financeiramente viável construir o sistema? – Elicitação e análise de requisitos - O que os stakeholders do sistema exigem ou esperaram do sistema? – Especificação de requisitos - Define os requisitos em detalhes – Validação de requisitos - Checa a validade dos requisitos 10Engenharia de Software Especificação de Software 11Engenharia de Software Lidando com as mudanças • Mudança é inevitável em grandes projetos • Requisitos mudam, surgem novas pressões externas no negócio, mudam prioridades, emergem novas tecnologias, surgem novos projetos. • Mudanças causam custos • Possíveis soluções: – Prototipação – Entrega incremental 12Engenharia de Software Entrega Incremental 13Engenharia de Software Entrega Iterativa X Incremental 14Engenharia de Software avaliação do cliente engenharia análise dos riscos planejamento decisão de continuar ou não na direção de um sistema concluído Modelo Espiral de processo de software 15Engenharia de Software Processo Unificado da Rational • IBM Rational Unified Process (RUP), 2003 • Modelo de processo híbrido – Prototipação – Incremental – Iterativo • Três perspectivas: – Dinâmica: fases – Estática: disciplinas/atividades – Prática: boas práticas 16Engenharia de Software • O RUP é um processo de engenharia de software desenvolvido pela empresas Rational. • Ele serve como um guia de como utilizar de maneira eficiente a UML (Unified Modeling Language). • Utiliza desenvolvimento Iterativo e Incremental. • Tem como objetivo oferecer um processo de desenvolvimento “bem definido” e “bem gerido”. RUP(Rational Unified Process) Modelos de Processos de Software 17Engenharia de Software • Processo de Software Unificado • Rational Unified Process – Processo + Métodos + Linguagem (UML) – Framework para gerar processos - Especializar o processo para vários tipos diferentes de sistema - Processo configurável RUP(Rational Unified Process) Modelos de Processos de Software 18Engenharia de Software Desenvolvimento Iterativo e Incremental Conteúdo TempoIteração RUP(Rational Unified Process) Modelos de Processos de Software 19Engenharia de Software • Define um conjunto de atividades – Bem definidas – Com responsáveis – Com artefatos de entrada e saída – Com dependências e ordem de execução – Com modelo de ciclo de vida – Com uma descrição sistemática de como executá-las – UML RUP(Rational Unified Process) Modelos de Processos de Software 20Engenharia de Software Características Principais O desenvolvimento de sistemas seguindo o RUP é: • Guiado por casos de uso (use cases) • Centrado na arquitetura • Iterativo e incremental RUP(Rational Unified Process) Modelos de Processos de Software 21Engenharia de Software Casos de uso (use cases) Modelos de Processos de Software 22Engenharia de Software • Exemplos de boas práticas • “Compreender as necessidades dos envolvidos” – Entrevistas – Workshop de Requisitos – Brainstorming e filtro de ideias – Workshop de Casos de Uso – Encenação – Interpretação de papéis – Análise dos requisitos existentes RUP(Rational Unified Process) – Características Principais Modelos de Processos de Software 23Engenharia de Software • O custo associado ao mini-projeto é menor, logo, se houver erros, o custo de correção também é menor, em relação ao custo do projeto como um todo. • Deadlines mais curtos e tarefas mais objetivas tiram mais proveito do esforço de programadores • Os requisitos são capturados e refinados durante o desenvolvimento – Condizente com a realidade: o cliente pode não ter condição de definir os mesmos por completo no início. Processo Iterativo e Incremental RUP (Rational Unified Process) 24Engenharia de Software • Deadlines. Fim da linha. Prazo final. • Geralmente usado no mundo dos projetos, negócios e marketing, para especificar que o prazo para entrega de determinada tarefa está chegando ao fim. • Expressão que designa o momento-limite para uma determinada ação. • Data-limite ou prazo máximo para a realização ou para a entrega de algo. Processo Iterativo e Incremental RUP (Rational Unified Process) 25Engenharia de Software Fluxos de Trabalho de Processo do RUP 26Engenharia de Software Modelos – Artefatos do RUP 27Engenharia de Software Modelos – Artefatos do RUP 28Engenharia de Software Modelos – Artefatos do RUP 29Engenharia de Software Workflow Fluxos de Trabalho de Processo do RUP 30Engenharia de Software Bibliografia Básica
Compartilhar