Escolar Documentos
Profissional Documentos
Cultura Documentos
Tpicos
Engenharia de software
Objetivos
Apresentar o conceito de processo de software Introduzir modelos de processo de software Descrever diferentes modelos e processos Apresentao do RUP Atividades de processo
Engenharia de software
Processo de software
Um processo
Segundo o IEEE, uma seqncia de passos executados com um determinado objetivo; Segundo o PMBOK, um conjunto de aes e atividades inter-relacionadas, realizadas para obter um conjunto especificado de produtos, resultados ou servios.
Conjunto coerente de atividades para especificao, concepo, execuo e teste de sistemas de software.
Especificao, Design, Validao e Evoluo Um modelo de processo de software uma representao abstrata de um processo.
Engenharia de software
Atividades do processo
Especificao de Software Projeto e implementao de Software Validao de Software Evoluo de Software
Engenharia de software
Atividades do processo
Especificao de Software ou Engenharia de requisitos
o processo para compreender e definir quais servios so necessrios e identificar as restries de operao e de desenvolvimento do sistema Estagio Crtico Erros neste estgio conduzem a problemas posteriores no projeto e na implementao do sistema
Engenharia de software
Atividades de processo
Processo de engenharia de requisitos
Estudo de viabilidade
Especificao de Requisitos
Validao de Requisitos
Relatrio de Viabilidade
Modelos de Sistema
Engenharia de software
Atividades de processo
Projeto e implementao de software
O processo de converter a especificao do sistema em um sistema executvel Atividades
Projeto de arquitetura Estrutura geral, componentes principais e seus relacionamentos, subsistemas, mdulos. Projeto de Interface sistema. Projeto de Componente Projeto de banco de dados Definio de cada componente e seu funcionamento Projeto das estruturas de dados e sua Definio das interfaces entre os componentes do
Engenharia de software
Atividades de Projeto
Projeto de Arquitetura
Projeto de interface
Projeto de Componente
Arquitetura de Sistema
Especificao de Interface
Especificao de Componente
Produtos de Projeto
Engenharia de software
Validao de software
Verificao e validao destinam-se a demonstrar que o sistema est em conformidade com a sua especificao e cumpre os requisitos do cliente. Envolve verificar e analisar processos do sistema e testes. Sistema de testes envolve executar o sistema com casos de teste que so obtidos a partir da especificao dos dados reais que sero processado pelo sistema.
Engenharia de software
10
Validao de software
Validao
Estamos construindo o produto correto? O sistema atende s expectativas do cliente/usurio
Verificao
Estamos construindo o produto corretamente? O software est de acordo com suas especificaes As especificaes do software nem sempre esto de acordo com as expectativas dos usurios
Engenharia de software
11
O processo de teste
Teste de Componente
Teste de Sistema
Teste de Aceitao
Engenharia de software
12
Especificao De Requisitos
Especificao de Sistema
Projeto de Sistema
Projeto detalhado
Teste de aceitao
Operao
Engenharia de software
13
Desenvolvimento incremental
Especificao e desenvolvimento so intercaladas
Modelos de maturidade
Engenharia de software
14
Resultado de uma fase alimenta a outra Mais antigo Modelado em funo do ciclo da engenharia convencional
Engenharia de software
15
O Modelo em Cascata
Principais estgios: Anlise e Definio de Requisitos: as funes, as restries e os objetivos do sistema so estabelecidos por meio de consulta aos usurios do sistema. Em seguida, so definidos em detalhes e servem como uma especificao do sistema.
Projeto de Sistemas e Software: o processo de projeto de sistemas agrupa os requisitos em sistemas de hardware e software. Envolve a identificao e a descrio das abstraes fundamentais do sistema de software e suas relaes.
Engenharia de software
16
O Modelo em Cascata
Principais estgios Operao e manuteno: O sistema instalado e colocado em operao. Envolve corrigir erros que no foram descobertos em estgios anteriores, melhorando a implementao e descobrindo novos requisitos.
Engenharia de software
17
O Modelo em Cascata
Principais estgios Implementao e Testes de Unidade: Durante este estgio, o projeto do software compreendido como um conjunto de programas ou unidades de programa. O teste de unidade envolve verificar se cada uma das unidades atendem sua especificao
Integrao e Teste de sistemas: as unidades de programa ou programas individuais so integrados e testados como um sistema completo a fim de garantir que os requisitos de software foram atendidos. Depois do teste, o software entregue ao cliente.
Engenharia de software
18
O Modelo em Cascata
Principais estgios: Projeto de Sistemas e Software: o processo de projeto de sistemas agrupa os requisitos em sistemas de hardware e software. Envolve a identificao e a descrio das abstraes fundamentais do sistema de software e suas relaes.
Engenharia de software
19
O Modelo em Cascata
Principais estgios: Implementao e Testes de Unidade: Durante este estgio, o projeto do software compreendido como um conjunto de programas ou unidades de programa. O teste de unidade envolve verificar se cada uma das unidades atendem sua especificao.
Engenharia de software
20
O Modelo em Cascata
Principais estgios: Integrao e Teste de sistemas: as unidades de programa ou programas individuais so integrados e testados como um sistema completo a fim de garantir que os requisitos de software foram atendidos. Depois do teste, o software entregue ao cliente.
Engenharia de software
21
O Modelo em Cascata
Principais estgios: Operao e manuteno: O sistema instalado e colocado em operao. Envolve corrigir em erros que no foram
descobertos
estgios
anteriores,
Engenharia de software
22
Problemas
Particionamento Inflexvel do projeto em fases distintas Isso torna difcil responder evoluo das necessidades dos clientes Portanto, este modelo apropriado apenas quando os requisitos so bem compreendidos
Engenharia de software
23
Desenvolvimento incremental
Especificao e desenvolvimento so intercaladas Neste modelo a entrega dividida em incrementos onde cada incremento implementa um subconjunto de funcionalidades do sistema. Uma vez que o desenvolvimento de um incremento iniciado, os requisitos so congelados embora possam mais tarde continuar a evoluir .
Engenharia de software
24
Entrega incremental
Validar Incremento
Integrar Incremento
Validar Sistema
Sistema Final
Sistema Incompleto
Engenharia de software
25
Desenvolvimento incremental
Vantagens
O custo de acomodar as mudanas nos requisitos do cliente reduzido. mais fcil obter feedback dos clientes sobre o desenvolvimento realizado. Onde existe uma dificuldade natural dos clientes de avaliar a evoluo do software atravs de documentos. Possibilidade de obter entrega e implementao rpida de software til ao cliente. Desvantagens O processo com ou um todo no visvel. A estrutura do sistema tende a se degradar com a adio de novos incrementos. No indicado para sistemas muito grandes.
Engenharia de software
26
Engenharia de software
27
Especificao de Requisitos
Analise de Componentes
Modificao de Requisitos
Desenvolvimento E Integrao
Validao De Sistema
Engenharia de software
28
Engenharia de software
29
Engenharia de software
30
RUP
O RUP, abreviao de Rational Unified Process, um processo proprietrio de Engenharia de software criado pela Rational Software Corporation, adquirida pela IBM. Ele oferece uma abordagem baseada em disciplinas para atribuir tarefas e responsabilidades dentro de uma organizao de desenvolvimento. Sua meta garantir a produo de software de alta qualidade que atenda s necessidades dos usurios dentro de um cronograma e de um oramento previsveis.
Engenharia de software
31
RUP
O RUP tem duas dimenses:
o eixo horizontal representa o tempo e mostra os aspectos do ciclo de vida do processo medida que se desenvolve o eixo vertical representa as disciplinas, que agrupam as atividades de maneira lgica, por natureza.
Engenharia de software
32
RUP
Fases
Concepo: nfase no escopo do sistema Elaborao: nfase na arquitetura Construo: nfase no desenvolvimento Transio: nfase na implantao
Engenharia de software
33
RUP
Concepo A fase de concepo contm os workflows necessrios que as partes interessadas (stakeholders) concordem com os objetivos, arquitetura, e o planejamento do projeto. Elaborao A fase de elaborao ser apenas para o projeto do sistema, buscando complementar o levantamento / documentao dos casos de uso, voltado para a arquitetura do sistema, revisa a modelagem do negcio para os projetos e inicia a verso do manual do usurio. Deve-se aceitar: Viso geral do produto (incremento + integrao) est estvel? ; O plano do projeto confivel? ; Custos so admissveis?
Engenharia de software
34
RUP
Construo Na fase de construo, comea o desenvolvimento fsico do software, produo de cdigos, testes alfa e beta. Deve-se aceitar testes, e processos de testes estveis, e se os cdigos do sistema constituem "baseline". Transio Nesta fase ocorre a entrega ("deployment") do software, realizado o plano de implantao e entrega, acompanhamento e qualidade do software. Produtos (releases, verses) devem ser entregues, e ocorrer a satisfao do cliente.
Engenharia de software
35
RUP
Aspectos
No adequado para todos os tipos de desenvolvimento Desenvolvimento iterativo.
Vantagens:
Processo robusto e bem definido com a gerao de artefatos importantes; Registro constante do fluxo do projeto Os maiores riscos so atacados primeiro, diminuindo as chances de fracasso do projeto
Desvantagens:
Complexo para projetos de pequeno porte Exige experincia da equipe.
Engenharia de software
36
Pontos Chave
Processos de Software so atividades envolvidas na produo de um sistema de software. Todos os processos de software incluem especificao, projeto e implementao, validao e evoluo de software. Modelos Genricos de processo descrevem a organizao dos processos de software.
Engenharia de software
37
Engenharia de software
38
Sistemas de Negcios
(requisitos mudam com frequncia) Sugerido um modelo de processo gil e flexvel como o Desenvolvimento Incremental ou o Baseado em Reuso.
Prazos inflexveis
Modelo incremental
Engenharia de software
39
Engenharia de software
40
Perguntas
Por que adotar um modelo de processos? Qual a relao entre a qualidade do software e o processo de software?
Engenharia de software
41