Processo de Desenvolvimento de Software – PDS PAS – Processo Acadêmico Simplificado PAS • Características: ▫ Elaborado com o propósito de ser utilizado em práticas acadêmicas de desenvolvimento de software. ▫ Foi desenvolvido de forma iterativa e incremental. ▫ Baseado no PU (Processo Unificado). ▫ Mais simplificado, enxuto e adequado à realidade e às necessidades acadêmicas. 2 Características do PAS • Embora baseado no UP, três processos de desenvolvimento de software foram utilizados como base na construção do PAS: ▫ RUP (Rational Unified Process) - processo que visa garantir a produção de software de alta qualidade que atenda às necessidades dos usuários dentro de um cronograma e de um orçamento previsíveis. Ele é centrada em uma arquitetura baseada em componentes facilmente extensível, promovendo a reutilização de software e um entendimento intuitivo. Oferece uma abordagem baseada em disciplinas para atribuir tarefas e responsabilidades dentro de uma organização de desenvolvimento e é guiado por casos de uso, projetado e documentado utilizando a notação UML. ▫ ICONIX - processo simples e leve que utiliza a linguagem de modelagem UML e possui uma característica chamada Traceability of Requirements, a qual exige verificar em toda fase se os requisitos estão sendo atendidos. ▫ XP (eXtreme Programming) - processo leve, eficiente, flexível e de baixo risco para times pequenos e médios, que desenvolvem software com requisitos dinâmicos ou em constante mudança. 3 Princípios chave • Dirigido por casos de uso: os casos de uso orientam o trabalho de desenvolvimento, desde a captação e negociação de requisitos até a aceitação do código • Centrado em arquitetura: a arquitetura é a pedra fundamental sobre a qual o sistema será construído além de orientar, junto com os casos de uso, a exploração dos aspectos do sistema • Iterativo e incremental:iteração é um miniprojeto que resulta em uma versão do sistema para liberação interna ou externa. Supõe-se que essa versão ofereça uma melhoria incremental sobre a versão anterior 4 Casos de uso e arquitetura • Casos de uso dirigem o desenvolvimento e conseqüentemente dirigem a arquitetura • A arquitetura guia a seleção e exploração de casos de uso • A idéia básica é focar primeiramente nos casos de uso com grande impacto na arquitetura o Estratégia de mitigação de riscos 5 Arquitetura incremental • Nas iterações iniciais é proposta uma arquitetura candidata que comporte-se com um alicerce sólido para a construção do sistema • Nas iterações posteriores a arquitetura é avaliada, refinada e consolidada como uma arquitetura completa, a qual influencia a maioria das tarefas de desenvolvimento • O processo iterativo e incremental permite identificar as mudanças necessárias no início do projeto, que é o momento no qual as alterações possuem menor custo 6 Desenvolvimento Iterativo • Você deve usar o desenvolvimento iterativo apenas em projetos que você deseja que sejam bem sucedidos. Martin Fowler 7 Processo iterativo e incremental • Diferente do ciclo de vida em cascata, no processo iterativo o desenvolvimento começa ANTES que os requisitos estejam todos definidos em detalhe o A realimentação (feedback) é utilizada para esclarecer e aperfeiçoar as especificações • A cada iteração todas as atividades (requisitos, análise,...) são realizadas • A saída de uma iteração não é um protótipo descartável, e sim um subconjunto do sistema final com qualidade de produção 8 Requisitos e processo iterativo • O processo iterativo e incremental resulta em um melhor tratamento dos requisitos instáveis o Ao invés de serem combatidas, as mudanças são esperadas e acolhidas de forma equilibrada • A prática de liberar protótipos do sistema permite que clientes e desenvolvedores negociem requisitos de modo progressivo 9 Requisitos e processo iterativo 10 11 Benefícios do desenvolvimento iterativo • Menos erros de projeto, maior produtividade e menor taxa de defeitos • Mitigação precoce, em vez de tardia, de altos riscos • Progresso visível desde o início • Realimentação, envolvimento do usuário e adaptação imediatos, levando a um sistema que atenda às reais necessidades dos stakeholders • O aprendizado obtido em uma iteração pode ser aplicado para melhorar o processo nas iterações subsequentes 12 Priorização de casos de uso • A priorização de casos de uso contribui para a mitigação dos riscos • Iterações devem ser organizadas priorizando os casos de uso críticos: o Casos de uso fortemente dependentes das tecnologias que serão utilizadas no projeto o Casos de uso relativos a requisitos não-funcionais como escalabilidade e desempenho o Casos de uso complexos, seja do ponto de vista de implementação ou de negócio o Casos de uso com alto valor de negócio 13 Fases do PAS • Uma fase é o tempo decorrido entre dois marcos principais, contendo uma ou mais iterações • Em cada fase são executadas um conjunto de tarefas transversais denominadas disciplinas 14 Fases do PAS • Visão geral das fases durante o ciclo de vida iterativo (exemplo) 15 Fases do PAS • Concepção • Devido ao enfoque acadêmico a fase de concepção é opcional no PAS • O PAS não considera a viabilidade, busca apenas uma visão inicial para se trabalhar o sistema • Objetivos principais • Definição do escopo do sistema • Definição da arquitetura candidata • Marco: definição do escopo do sistema • Geralmente contempla apenas uma iteração 16 Fases do PAS • Elaboração o Tem como propósitos estabelecer as bases para capacidade de construção do sistema, identificar requisitos e gerenciar os riscos de nível mais alto o Principais objetivos • Captar a maioria dos requisitos funcionais • Validar a arquitetura candidata • Estabelecer um ambiente de desenvolvimento em nível de “produção industrial” o Marco: estabelecimento da arquitetura do sistema 17 Fases do PAS • Construção o Todos os componentes e características restantes da aplicação são desenvolvidos, testados e integrados ao produto o É, de certo modo,um processo industrial, no qual é enfocado o gerenciamento de recursos, prazos e qualidade o Principais objetivos: • Esclarecer os requisitos restantes • Concluir análise, desenvolvimento e teste de todas as funcionalidades necessárias • Desenvolver um produto completo que esteja pronto para validação o Marco: código-fonte de um sistema operacional quase completo 18 Fases do PAS • Validação o Tem como foco assegurar que o sistema esteja disponível para seus clientes finais e realizar o ajuste fino do produto o Principais objetivos: • Entregar e implantar o produto gerado no ambiente do cliente • Corrigir defeitos e modificar o sistema para corrigir problemas não identificados previamente o Marco: liberação do produto 19 Disciplinas do PAS • Requisitos: responsável pela obtenção do um conjunto de requisitos de um produto de software. Delimita o escopo e os requisitos do sistema a ser desenvolvido e fornece uma base para estimar o custo e o tempo de desenvolvimento do sistema. Também define um protótipo de interface de usuário. • Análise e Projeto: visa o detalhamento, a estruturação do sistema, além da validação os requisitos. Dá forma ao domínio do sistema e formula modelos estáticos e dinâmicos de um produto concreto. Define a arquitetura para o sistema. • Implementação e Testes: concretiza o projeto elaborado na disciplina de Análise e Projeto em uma linguagem de programação orientada a objetos. Testes são planejados e executados. • Planejamento e Gerência: concentra tarefas e atividades que visam o planejamento, organização, direção e controle dentro do processo de desenvolvimento de software. O principal papel dessa disciplina chama-se Gerente de Projetos, que é o responsável pela realização dos objetivos do projeto. 20 Outros elementos • Artefatos: qualquer porção significativa de informação interna ou disponível aos stakeholders (e.g. documentos, código-fonte, protótipos) • Papéis: funções que os indivíduos desempenham no desenvolvimento do projeto. Artefatos são produzidos por trabalhadores que desempenham os papéis (e.g. analista, programador, gerente) • Atividades: cada disciplina compreende um conjunto de atividades. Cada atividade é uma tarefa que um trabalhador em um papel executa a fim de produzir um artefato (e.g. análise de requisitos, implementação de caso uso) 21 Referências • LARMAN, Craig. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objeto e ao desenvolvimento iterativo. Porto Alegre: Bookman, 2007, 3ª ed. • BORGES, Rosemary P. Notas de aula. Disponível em <www.cefetrn.br/~rosemary>. • ALEIXO, Fellipe A. et al.Especificação do PAS. Disponível em <http://dietinf.ifrn.edu.br/doku.php?id=cursos:superi ores:tads:praticas:pas:inicio>. • SCOTT, Kendall. O processo unificado explicado. Porto Alegre: Bookman, 2003. 22