Post on 19-Mar-2016
description
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 arquiteturao 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 detalheo 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áveiso 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
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 projetoo Casos de uso relativos a requisitos não-funcionais
como escalabilidade e desempenhoo Casos de uso complexos, seja do ponto de vista
de implementação ou de negócioo 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• 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çãoo 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 previamenteo 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:superiores:tads:praticas:pas:inicio>.
• SCOTT, Kendall. O processo unificado explicado. Porto Alegre: Bookman, 2003.
22