Escolar Documentos
Profissional Documentos
Cultura Documentos
Slide 1
Processos de Software
Conjuntos de atividades coerentes para especificar, projetar, implementar e testar sistemas de software
Slide 2
Objetivos
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 Apresentar a tecnologia CASE para dar suporte s atividades de processo de software
Slide 3
Tpicos abordados
Modelos de processo de software Iterao do Processo Especificao de Software Projeto e implementao do Software Validao do Software Evoluo do Software Suporte de processo automatizado
Slide 4
O processo de software
Um modelo de processo de software uma representao abstrata de um processo. Apresenta uma descrio de um processo de alguma perspectiva particular
Software Engineering, 6th edio . Cptulo 3 Slide 5
O modelo cascata
Separa e distingue fases de especificao e desenvolvimento
Especificao e desenvolvimento so entrelaados Um modelo de sistema matemtico formalmente transformado para uma implementao
Desenvolvimento evolucionrio
Slide 6
Modelo Cascata
Requirements definition System and software design Implementation and unit testing Integr ation and system testing Operation and maintenance
Slide 7
Anlise e definio de requisitos Projeto do sistema e do software Implementao e teste da unidade Integrao e teste do sistema Operao e manuteno A desvantagem do modelo cascata a dificuldade de acomodar mudanas depois que o processo est em andamento
Slide 8
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
Slide 9
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
Slide 10
Desenvolvimento evolucionrio
Concurr ent activities Initial version Specification
Outline description
Development
Intermediate versions
Validation
Final version
Slide 11
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
Slide 12
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
Slide 13
Requirements definition
Formal specification
Formal transformation
Slide 14
Transformaes Formais
Formal transformations T1 T2 T3 T4
Formal specification
R1
R2
R3
Executable program
P1
P2
P3
P4
Slide 15
Problemas
Necessidade de habilidades especializadas e treinamento para aplicar a tcnica Difcil de especificar formalmente alguns aspectos do sistema como a interface de usurio
Sistemas crticos, especialmente aqueles no qual um case de segurana deve ser feito antes do sistema ser posto em operao
Aplicabilidade
Slide 16
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
Slide 17
Requirements specification
Component analysis
Requirements modification
System validation
Slide 18
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
Slide 19
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
Slide 20
Desenvolvimento incremental
Define outline requirements Assign requirements to increments Design system architecture
Valida te increment
Integrate increment
System incomplete
Slide 21
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
Slide 22
Programao extrema
Nova abordagem para o desenvolvimento de software baseado no desenvolvimento e entrega de incrementos de funcionalidade bem pequenos Conta com melhoramento constante do cdigo, envolvimento do usurio no time de desenvolvimento e programao em pares
Slide 23
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
Slide 24
Code Unit test Design V&V Integr ation test Acceptance test Develop, verify Service next-level product
Slide 25
Requirement validation
Detailed design
Estabelecimento de objetivos
Objetivos especficos para a fase so identificados
Os riscos so avaliados e atividades postas em prtica para reduzir os riscos principias Um modelo de desenvolvimento para o sistema escolhido, podendo ser qualquer um dos modelos genricos
Desenvolvimento e validao
Planejamento
O projeto revisado e a fase seguinte da espiral planejada
Slide 26
Especificao do Software
O processo de estabelecer que servios so requisitados e quais as restries na operao e desenvolvimento do sistema Processo de engenharia de requisitos
Estudo de viabilidade Elicitao e anlise dos requisitos Especificao dos requisitos Validao dos requisitos
Slide 27
Feasibility report
Slide 28
Implementao
Slide 29
Projeto arquitetural Especificao abstrata Projeto de interface Projeto de componente Projeto de estrutura de dados Projeto de algoritmo
Slide 30
System architectur e
Slide 31
Mtodos do Projeto
Abordagens sistemticas para desenvolver um projeto de software O projeto geralmente documentado como uma srie de modelos grficos Modelos possveis
Modelo de fluxo de dados Modelo de atributos relacionados entidade Modelo Estrutural Modelos de objetos
Slide 32
Programando e Depurando
Transformar um projeto em um programa e remover erros do programa Programao uma atividade pessoal no existe processo de programao genrico Programadores realizam alguns testes de programa para detectar falhas no programa e remover tais falhas no processo de depurao
Slide 33
O processo de depurao
Locate error
Repair error
Re-test program
Slide 34
Validao do Software
Verificao e validao pretendem mostrar que um sistema est de acordo com sua especificao e cumpre os requisitos do cliente do sistema Envolve a verificao e a reviso de processos e teste do sistema Teste de sistema envolve a execuo do sistema com cases de teste que so derivados da especificao dos dados reais a serem processados pelo sistema
Software Engineering, 6th edio . Cptulo 3 Slide 35
O processo de teste
Unit testing Module testing Sub-system testing System testing Acceptance testing
Component testing
Ian Sommerville 2000
Integration testing
User testing
Slide 36
Etapas de teste
Teste da Unidade
Os componentes individuais so testados Conjuntos de componentes dependentes relacionados so testados Os mdulos so integrados em sub-sistemas e testados. O foco aqui deve ser no teste da interface Teste do sistema como um todo. Teste das propriedades emergentes
Teste do Mdulo
Teste do Sub-sistema
Teste do Sistema
Teste de Aceitao
Teste com dados do consumidor para verificar que aceitvel
Slide 37
Fases de teste
Requir ements specification System specification System design Detailed design
Service
Acceptance test
Slide 38
Evoluo do Software
Software hereditariamente flexvel e pode ser mudado. Como os requisitos mudam ao se alterar as circunstncias de negcios, o software que suporta o negcio tambm deve evoluir e mudar Embora tenha havido uma demarcao entre desenvolvimento e evoluo (manuteno), este cada vez mais irrelevante na medida que menos e menos sistemas so totalmente novos
Software Engineering, 6th edio . Cptulo 3 Slide 39
Evoluo do sistema
Modify systems
Existing systems
New system
Slide 40
Engenharia de software auxiliada por computador (CASE) um software para dar suporte aos processos de desenvolvimento e evoluo do software Automao da atividade
Editores grficos para o desenvolvimento de modelos de sistema Dicionrio de dados para gerenciar entidades de projeto Construtor Grfico UI para a construo de interface para usurio Depuradores para suportar deteco de falhas no sistema Tradutores automticos para gerar novas verses de um programa
Slide 41
Tecnologia Case
Tecnologia Case tem levado a melhorias significantes no processo de software embora no na ordem de magnitude de melhorias que foram antes previstos
A engenharia de software requer pensamento criativo isto no prontamente automatizvel A engenharia de software uma atividade de grupo e, para grandes projetos, muito tempo utilizado em interaes do grupo. A tecnologia CASE no os suporta de fato
Slide 42
CASE classificao
A classificao nos ajuda a entender os diferentes tipos de ferramentas de CASE e seu suporte para atividades do processo Perspectiva Funcional
As ferramentas so classificadas de acordo com suas funes especficas
As ferramentas so classificadas de acordo com as atividades do processo que suportam As ferramentas so classificadas de acordo com sua organizao em unidades integradas
Software Engineering, 6th edio . Cptulo 3 Slide 43
Perspectiva do Processo
Perspectiva da Integrao
Examples PERT tools, estimation tools, spreadsheets T ext editors, diagram editors, word processors Requirements traceability tools, change control systems Version management systems, system building tools Very high-level languages, user interface generators Design editors, data dictionaries, code generators Compilers, interpreters Cross reference generators, static analysers, dynamic analysers T est data generators, file comparators Interactive debugging systems Page layout programs, image editors Cross-reference systems, program restructuring systems
Slide 44
Specification
Design
Implementation
Ferramentas
Suporta tarefas individuais do processo como verificao da consistncia de um projeto, edio de texto, etc. Suporte a fases do processo como especificao ou projeto. Normalmente inclui uma variedade de ferramentas integradas
Ambientes
Suporta tudo ou uma parte substancial de todo um processo de software. Normalmente inclui vrias reas de trabalho integradas
Slide 46
Tools
Workbenches
Environments
Editors
Compilers
File comparators
Integrated environments
Process-centred environments
Programming
Testing
Multi-method workbenches
Single-method workbenches
General-purpose workbenches
Language-specific workbenches
Slide 47
Pontos chave
Processos de software so as atividades envolvidas na produo e evoluo de um sistema de software. Eles so representados em um modelo de processo de software As atividades gerais so especificao, projeto e implementao, validao e evoluo Modelos genricos de processo descrevem a organizao processos de software Modelos iterativos de processo descrevem o processo de software como um de atividades
Software Engineering, 6th edio . Cptulo 3 Slide 48
Pontos chave
Engenharia de requisitos o processo de desenvolver uma especificao de software Os processos de projeto e implementao transformam a especificao em um programa executvel A Validao envolve verificar que o sistema cumpre com as especificaes e as necessidades do usurio Evoluo se preocupa em modificar o sistema depois que ele est em uso Tecnologia CASE suporta atividades de processo de software
Slide 49