Você está na página 1de 37

Processo de Software

Modelagem do processo e ciclo de vida

Construindo um avio

Objetivos de hoje

Introduzir modelos de processo de software Descrever uma variedade de modelos de processo e quando eles podem ser usados Descrever esboos de modelos de processo para engenharia de requisitos, desenvolvimento de software, teste e evoluo

O processo de software

Um conjunto estruturado de atividades requeridas para desenvolver um sistema de software


Especificao Projeto Validao Evoluo

Um modelo de processo de software uma representao abstrata de um processo. Apresenta uma descrio de um processo de alguma perspectiva particular (viso)

O processo de software

Processo inclui:

Todas as principais atividades do processo Recursos - est sujeito a um conjunto de restries (como um cronograma) Produtos intermedirios e finais Subprocessos, com hierarquia ou organizados de algum modo Critrios de entrada e sada para cada atividade Sequncia de atividades, de modo que a ordem de execuo de uma para outra seja clara Conjunto de diretrizes que explicam os objetivos de cada atividade Restries e controles para cada atividade, recurso ou produto

Comunicao do cliente ao produto

Razes para modelar um processo


Formar um entendimento comum Encontrar inconsistncias, redundncias e omisses Encontrar e avaliar atividades propostas mais adequadas aos objetivos Fazer um processo geral para uma situao particular na qual ele ser utilizado

O modelo de processo tradicional

Exemplos de modelos de processo de software


O modelo cascata Prototipao O modelo em V Desenvolvimento evolucionrio

Especificao operacional Modelo transformacional

Desenvolvimento formal de sistemas

Desenvolvimento baseado no reuso Desenvolvimento em fases


Iterativo incremental Modelo em espiral

O modelo cascata (waterfall)

O modelo cascata atividades em sequncia


Requirements definition System and software design Implementation and unit testing Integr ation and system testing Operation and maintenance

O modelo cascata atividades em sequncia

Fases do modelo cascata


Anlise e definio de requisitos Projeto do sistema e do software Implementao e teste unitrio Integrao e teste do sistema (teste integrado) Operao e manuteno

Problemas do modelo cascata


Partio inflexvel do projeto em diferentes estgios Isto faz com que seja difcil responder aos requisitos mutveis dos clientes Portanto, este modelo s apropriado quando os requisitos so bem entendidos

Prototipao

Variao do modelo cascata

Prototipao

Um modelo completo baseado em prototipao Ambos, mesmo objetivo: reduzir riscos e incertezas

O modelo em V relacionar as fases

Desenvolvimento evolucionrio

Desenvolvimento exploratrio

O objetivo trabalhar com clientes e evoluir o sistema final de um esboo de especificao inicial. Deve comear com os requisitos que esto bem entendidos Objetivo entender os requisitos do sistema. Deve comear com requisitos pobremente entendidos

Preparao de prottipos descartveis

Desenvolvimento evolucionrio
Concurr ent activities Initial version

Specification

Outline description

Development

Intermediate versions

Validation

Final version

Desenvolvimento evolucionrio Especificao Operacional

Desenvolvimento evolucionrio

Problemas

Falta de visibilidade do processo Sistemas so, em geral, pobremente estruturados Habilidades especiais (ex. em lnguas para rpida preparao de prottipos ) podem ser requeridas Para sistemas interativos pequenos ou mdios Para partes de sistemas grandes (ex. a interface de usurio) Para sistemas de curto-prazo

Aplicabilidade

Desenvolvimento de sistemas formais

Baseado na transformao de uma especificao matemtica atravs de diferentes representaes para um programa executvel Transformaes so preservadoras de exatido, portanto, so diretas para mostrar que o programa est de acordo com sua especificao Contido na abordagem Cleanroom para desenvolvimento de software

Desenvolvimento formal de sistemas

Requirements definition

Formal specification

Formal transformation

Integration and system testing

Transformaes Formais
Formal transformations T1 T2 T3 T4

Formal specification

R1

R2

R3

Executable program

P1

P2

P3

P4

Proofs of transformation correctness

Desenvolvimento formal de sistemas Modelo transformacional (Balzer)

Desenvolvimento formal de sistemas

Problemas

Necessidade de habilidades especializadas e treinamento para aplicar a tcnica Difcil de especificar formalmente alguns aspectos do sistema como a interface de usurio

Aplicabilidade

Sistemas crticos, especialmente aqueles no qual um case de segurana deve ser feito antes do sistema ser posto em operao

Desenvolvimento orientado ao reuso

Baseado no reuso sistemtico, onde os sistemas so integrados de componentes existentes ou sistemas padronizados Estgios do Processo

Anlise do componente Modificao dos requisitos Projeto do sistema com reuso Desenvolvimento e integrao

Esta abordagem est se tornando mais importante, mas a experincia ainda limitada com ela

Desenvolvimento orientado ao reuso

Requirements specification

Component analysis

Requirements modification

System design with reuse

Development and integration

System validation

Iterao do Processo

Requisitos do sistema SEMPRE evoluem no decorrer de um projeto, ento a iterao do processo, onde estgios anteriores so retrabalhados, sempre parte de um processo para sistemas maiores Iterao pode ser aplicada para qualquer modelo de processo genrico Duas abordagens (relacionadas)

Desenvolvimento incremental Desenvolvimento espiral

Desenvolvimento incremental

Ao invs de entregar o sistema de uma nica vez, o desenvolvimento e a entrega dividida em incrementos com cada incremento entregando parte da funcionalidade requerida Os requisitos dos usurios so priorizados e os requisitos de maior prioridade so includos em incrementos iniciais Uma vez que o desenvolvimento de um incremento iniciado, os requisitos so congelados embora requisitos para incrementos posteriores possam continuar a evoluir

Desenvolvimento incremental

Define outline requirements

Assign requirements to increments

Design system architecture

Develop system increment

Valida te increment

Integrate increment

Valida te system Final system

System incomplete

Vantagens do desenvolvimento incremental

O valor agregado ao Cliente est na entrega em cada incremento de modo que a funcionalidade do sistema estar disponvel mais cedo Incrementos iniciais funcionam como prottipos para ajudar a evocar requisitos para incrementos posteriores Menores riscos de falha no projeto em geral Os servios do sistema de alta prioridade tendem a receber a maioria dos testes

Desenvolvimento em fases: incrementos e interaes

Desenvolvimento em fases: incrementos e interaes (Iterativo incremental)

Desenvolvimento espiral

Processo representado como uma espiral ao invs de uma seqncia de atividades com retorno Cada volta na espiral representa uma fase no processo. No existem fases fixas como especificao ou projeto as voltas na espiral so escolhidas de acordo com o que requerido Os riscos so explicitamente cotados e resolvidos durante todo o processo

Modelo espiral do processo de software


Determine objectives alternatives and constraints Evaluate alternatives identify, resolve risks

Risk analysis Risk analysis Risk analysis

REVIEW Requirements plan Life-cycle plan

Risk anal sis Protoy type 1 Concept of Operation

Prototype 3 Prototype 2

Operational protoype

Simulations, models, benchmarks S/W requirements Product design

Development plan Integration and test plan

Plan next phase

Code Unit test Design V&V Integr ation test Acceptance test Develop, verify Service next-level product

Requirement validation

Detailed design

Setores do modelo espiral


Estabelecimento de objetivos

Objetivos especficos para a fase so identificados Os riscos so avaliados e atividades postas em prtica para reduzir os riscos principias

Avaliao e reduo de riscos

Desenvolvimento e validao

Um modelo de desenvolvimento para o sistema escolhido, podendo ser qualquer um dos modelos genricos
O projeto revisado e a fase seguinte da espiral planejada

Planejamento

Você também pode gostar