DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de...

40
D D S S C C Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Soft Processo Unificado de Desenvolvimento de Soft Lab. Engenharia de Software Lab. Engenharia de Software O Processo Unificado (PU) O Processo Unificado (PU) de Desenvolvimento de de Desenvolvimento de Software Software Francilene Procópio Garcia, D.Sc. [email protected]

Transcript of DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de...

Page 1: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Lab. Engenharia de SoftwareLab. Engenharia de Software O Processo Unificado (PU) de O Processo Unificado (PU) de Desenvolvimento de SoftwareDesenvolvimento de Software

Francilene Procópio Garcia, D.Sc.

[email protected]

Page 2: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Processo Unificado para Processo Unificado para Desenvolvimento de Desenvolvimento de

SoftwareSoftware

Um processo baseado em componentes, orientado a Casos de Uso, centrado na arquitetura, iterativo e incremental -

explicitado por uma modelagem que faz uso de UML.

Mas, o que é de fato um Processo de Desenovlvimento de Software?

Um processo deve definir QUEM está fazendo O QUE QUANDO e COMO para que

uma dada meta seja alcançada...

Page 3: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Processo de Processo de Desenvolvimento de Desenvolvimento de

SoftwareSoftwareUm processo, em engenharia de software, tem como meta a construção de artefatos de software ou a melhoria de um produto

existente, através da participação de vários tipos de usuários (cliente, usuário final,

desenvolvedor, gerentes, etc), cujos limites dependem de alguns elementos:

Tecnologia - LPs, SOs, Networks, etc. Ferramentas - tendo os processos

disseminados amplamente, alavanca-se o desenvolvimento de tools.

Pessoas - algumas habilidades são necessárias.

Organização - modelos virtuais, outsourcing, contratos padrões, parcerias,

etc.

Page 4: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Processo Unificado Vs. Processo Unificado Vs. UMLUML

UML tem sido usada como a linguagem de modelagem padrão do PU ajudando na

visualização, especificação, construção e documentação de diferentes artefatos de

software.É um meio!

Maior ajuda … nas fases de requisitos, análise e projeto.

Page 5: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Processo Unificado: Processo Unificado: Uma resposta à crise Uma resposta à crise

do software?do software?

O que buscamos ao desenvolver sistemas de software nos dias de hoje?

S/W mais flexível e adaptável às necessidades do mercado - mudanças ...

Um processo mais rápido - time to market é um desafio!

Não se admite mais o uso dos mesmos métodos - já se vão mais de 25 anos!

Um processo que integre as muitas facetas do desenvolvimento de s/w

Page 6: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

O Processo UnificadoO Processo Unificado

É um processo para desenvolvimento de software que suporta um conjunto de

atividades necessárias para se transformar “requisitos” num sistema de software

Apresenta-se como um framework genérico para uma ampla gama de classes de s/w

É baseado em componentes Faz uso intenso de UML

Aspectos essenciais: orientação à Casos de Uso, foco na arquitetura, iterativoiterativo e

incremental

Page 7: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

O que são Casos de O que são Casos de Uso?Uso?

São usados para captura dos requisitos de um sistema de software, particularmente

daqueles baseados em componentes.Algumas definições importantes:

Usuário (humanos e outros sistemas que interagem com o sistema em

desenvolvimento); Casos de Uso (um aspecto funcional que provê um valor ao usuário - as interações

com o sistema).Os Casos de Uso substituem o modelo

tradicional de especificação de um sistema de software …

o que se espera que o sistema faça … para cada usuário?

Page 8: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Por quê centrado na Por quê centrado na Arquitetura?Arquitetura?

Para que serve a arquitetura de um sistema?

[Parábola dos homens cegos e o elefante]Define uma estrutura, seus serviços. Ex.:

sistemas água e elétrico, etc.Nos ajuda a: entender o sistema, organizar

o seu desenvolvimento, acompanhar a evolução do sistema, e atuar em busca do

reuso.No caso de sistemas de s/w: procura-se

definir aspectos estáticos e dinâmicos de um produto de s/w.

Page 9: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Elementos previstos na arquitetura de um s/w:

a estrutura do sistema (sua organização) os componentes críticos e as interfaces

entre eles a composição dos componentes em

subsistemas a partir do comportamento de suas funcionalidades

A soma de diferentes visões: casos de uso + análise + projeto + ...

Arquitetura de S/WArquitetura de S/W

Page 10: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Casos de Uso Vs. Casos de Uso Vs. ArquiteturaArquitetura

Casos de Uso(função)

Arquitetura(forma)

Experiência (patterns)

Em geral, as funcionalidades críticas do s/w são representadas por cerca de 5% a 10%

dos Casos de Uso.

Orientam/ GuiamMapeia

Page 11: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Camadas Possíveis na Camadas Possíveis na Arquitetura: os seus Arquitetura: os seus

SubsistemasSubsistemasAplicações Específicas

(sempre no topo)

Aplicação Geral (subsistemas que podem ser reusados em diferentes

aplicações)

Middleware (frameworks, bibliotecas de classes, etc)

Sistemas de S/W

cada Caso de Uso especificado é detalhado e transformado em termos de subsistemas, classes e

componentes.

Dependem do negócio

Independem do negócio

Page 12: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Processo Iterativo e Processo Iterativo e Incremental? Para quê?Incremental? Para quê?

Para lidar com ciclos de desenvolvimento cada vez mais complexos e longos, onde a

maturidade só é alcançada após vários mini-ciclos - o PU prevê uma série de mini-

projetos (versões do sistema).Cada mini-projeto é uma iteração resultante de passos incrementais ao longo do ciclo de

desenvolvimento.As iterações são passos ao longo do fluxo de

trabalho; os incrementos são avanços na direção do produto final.

A eficácia do processo deve ser buscada com o controle das várias iterações...

Page 13: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Processo Iterativo e Processo Iterativo e IncrementalIncremental

Page 14: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Como definir as Como definir as iterações?iterações?

Para se definir as versões resultantes em cada iteração, deve-se atentar para dois

fatores chaves:(1) Cada iteração deve estar associada a um conjunto de Casos de Uso que avançam em

termos da usabilidade do produto desenvolvido até então.

(2) Cada iteração deve considerar e atacar algum risco crítico, de forma que, ao final, a

maioria dos riscos tenham sido atacados.As sucessivas iterações irão resultar nos artefatos de s/w, avançando sempre na

direção do produto final.

Page 15: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

As representações p/ As representações p/ um Produtoum Produto

Cada mini-ciclo resulta numa versão do sistema. Cada versão é um produto pronto para entrega (algum código fonte na forma de componentes executáveis + manuais + outros artefatos de

interesse).

OK

OK

Modelo Caso de Uso

Modelo Análise

Modelo Projeto

Modelo Desdobramento

Modelo Implementação

Modelo Teste

Especificadopor Transformado

por Distribuídopor

Implementadopor

Verfiicadopor

Modelos no PU

Page 16: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Os Quatro Ps no PU: Os Quatro Ps no PU: Pessoas, Projeto, Pessoas, Projeto,

Produto e ProcessoProduto e Processo

Processo

Pessoas Projeto

Produto

Tools

Template

Participantes

Resultado

Automação

Page 17: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Quem participa? Quem participa? Como é o proc. de Como é o proc. de desenvolvimento?desenvolvimento?

Sistema

Usuários

Testadores

Projetistas

AnalistasGerenteProjeto

Arquiteto

AnalistaSistema

Arquiteto

ProjetistaCaso de Uso

ProjetistaInterface

Define Atorese Casos de Uso

Estrutura o Modelode Casos de Uso

Prioriza Casos de Uso

Detalha os Casos de Uso

Protótipo daInterface

Page 18: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Capturando os Capturando os Requisitos Requisitos

Funcionais: aplicando Funcionais: aplicando Casos de UsoCasos de Uso

Requisitos: Pessoas Vs. Artefatos

AnalistaSistema

ModeloCaso Uso

Ator Glossário

ProjetistaCaso Uso

Caso Uso

ProjetistaInterface

Protótipo Interface

ProjetistaCaso Uso

DescriçãoArquitetura

Page 19: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Requisitos: Atividades do Processo

AnalistaSistema

Arquiteto

ProjetistaCaso de Uso

ProjetistaInterface

Define Atorese Casos de Uso

Estrutura o Modelode Casos de Uso

Prioriza Casos de Uso

Detalha os Casos de Uso

Protótipo daInterface

Capturando os Capturando os Requisitos Requisitos

Funcionais: aplicando Funcionais: aplicando Casos de UsoCasos de Uso

Page 20: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Um exemplo: Modelo Um exemplo: Modelo de Sistema de uma de Sistema de uma

ATMATM

ClienteBanco

RetiradaDinheiro

DepósitoDinheiro

Tranferênciaentre Contas

Observe que os casos de uso são projetados para atender as demandas dos usuários do sistema - capturando todos os requisitos funcionais.

“Um caso de uso especifica uma sequência de ações, incluindo suas variantes, que o sistema pode executar resultando em valores para um dado ator.”

Diagrama de Caso de Uso

Page 21: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

O Projeto de uma Idéia: O Projeto de uma Idéia: Modelo de AnáliseModelo de Análise

Análise: Pessoas Vs. Artefatos

DescriçãoArqitetura

Arquiteto

ModeloAnálise

ProjetistaCaso Uso

TransformaçãoCaso Uso -

Análise

EngenheiroComponente

AnáliseClasse

AnálisePacote

Page 22: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Análise: Atividades do Processo

Arquiteto

ProjetistaCaso de Uso

EngenheiroComponente

Análise Arquitetural

Analisa Casos de Uso

AnáliseClasse

AnálisePacote

Estabelecendo o Estabelecendo o Projeto de uma Idéia: Projeto de uma Idéia:

Modelo de AnáliseModelo de Análise

Page 23: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Exemplo: Modelo de Exemplo: Modelo de AnáliseAnálise

Modelo de Análise

O modelo mostra como cada caso de uso é obtido pela estrutura de classes da análise. Por exemplo, as classes Interface, Retirada, Conta e Gaveta são responsáveis pelo Caso de Uso Retirada de Dinheiro.

ClienteBanco

Gaveta daÀTM

Tela deInterface

ReceptorATM

Retirada

Transferência Conta

Depósito

Page 24: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Exemplo: Modelo de Exemplo: Modelo de AnáliseAnálise

ClienteBanco

Gaveta daÀTM

Tela deInterface

Retirada Conta

1. Identifica 2. Solicita retirada

3. Valida a retirada

4. Autoriza a saída5. Libera o dinheiro

Diagrama de Colaboração

Este diagrama nos ajuda a descrever como o Use Case Retirada de Dinheiro é obtido através da participação de vários objetos da análise. Na fase de projeto, tal combinação deve ser refinada.

Textos estruturados ou pseudo-código podem ajudar na

documentação da interação entre os objetos!

Page 25: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Exemplo: Subsistemas Exemplo: Subsistemas propostospropostos

Aplicações Específicas

Aplicação Geral

Middleware

Sistemas de S/W

Interface ATM

Gestão Conta

Gestão Transação

Java. applet

TCP/IP

Java. miJavaVM

Page 26: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Estabelecendo o Estabelecendo o Vocabulário do Vocabulário do

Problema e de sua Problema e de sua Solução: Modelo de Solução: Modelo de

ProjetoProjeto

Projeto: Pessoas Vs. Artefatos

ProjetistaCaso Uso

TransformaçãoCaso Uso -

Projeto

DescriçãoArqitetura

Arquiteto

ModeloProjeto

ModeloDesdobramento

EngenheiroComponente

ProjetoClasse

ProjetoSubsistema Interface

Page 27: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Projeto: Atividades do Processo

Arquiteto

ProjetistaCaso de Uso

EngenheiroComponente

ProjetoArquitetural

Projeta um Casos de Uso

ProjetaClasse

ProjetaSubsistema

Estabelecendo o Estabelecendo o Vocabulário do Vocabulário do

Problema e de sua Problema e de sua Solução: Modelo de Solução: Modelo de

ProjetoProjeto

Page 28: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Exemplo: Modelo de Exemplo: Modelo de ProjetoProjeto

Modelo de Análise

InterfaceATM

GavetaATM

Retirada Conta

Tela

Teclado

Leitor Cartão

SensorGaveta

EnchedorGaveta

ContadorCédulas

GerenteCliente

Saque

GerenteTransação

Conta

ClassePersistente

Gerente Conta

Modelo de Projeto Classes ativas

Page 29: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Exemplo: Modelo de Exemplo: Modelo de ProjetoProjeto

Diagrama de Classe

Tela

Teclado

Leitor Cartão

SensorGaveta

EnchedorGaveta Contador

Cédulas

GerenteCliente

Saque

GerenteTransação

Conta

ClassePersistente

Gerente Conta

Introduz mais detalhes que o Diagrama de Classes do modelo de análise. Faz-se necessário ainda mais detalhes sobre as interações entre objetos.

Page 30: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Exemplo: Modelo de Exemplo: Modelo de ProjetoProjeto

Diagrama de SequênciaMostra como focar o Caso de Uso - começando da esquerda e alcançando cada objeto envolvido, conforme as mensagens são enviadas… (passos 1 e 2 do Diagrama de Colaboração)

:Tela :Teclado: Leitor Cartão

:ContadorCédulas

:GerenteCliente

:GerenteTransação:Cliente

BancoInserir cartão Cartão inserido (ID)

Solicita a senhaMostra a solicitação

Insere a senhaSenha

Solicita validação senhaPergunta pela soma saqueMostra a solicitação

Insere a quantia para saqueValor . . .

Page 31: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Modelo de Projeto: Modelo de Projeto: Organizando as Classes Organizando as Classes -- Uma visão da estrutura Uma visão da estrutura

estáticaestática

Tela

Teclado

Leitor Cartão

SensorGaveta

EnchedorGaveta Contador

Cédulas

GerenteCliente

subsistemaInterface ATM

Saque

GerenteTransação

subsistemaGestão Transação

serviço subsistema

Gestão Saque

Conta

ClassePersistente

Gerente Conta

subsistemaGestão Conta

Saque

LiberaçãoTransf.

Interface

Page 32: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Estabelecendo as partes Estabelecendo as partes necessárias para necessárias para montar e liberar o montar e liberar o

sistema: sistema: ImplementaçãoImplementação

Nesta fase, devemos prover o que for necessário para obtenção do sistema executável: os componentes executáveis, os arquivos do

componente (código fonte, scripts, etc), tabela de componentes (elementos da bases de dados), entre

outros.

Um componente é a parte física e mutável de um sistema que deve suportar a operação conjunta de

um grupo de interfaces.

Isto é, o modelo de implementação deve ser composto de componentes, incluindo todos os

executáveis (ActiveX, Java Beans, etc) para cada classe presente no Modelo de Projeto.

Page 33: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Implementação: Pessoas Vs. Artefatos

IntegradorSistema

TransformaçãoCasos Uso -

Plano Integração

ModeloDesdobramento

Arquiteto

ModeloImplementação

ModeloDesdobramento

Estabelecendo as partes Estabelecendo as partes necessárias para necessárias para montar e liberar o montar e liberar o

sistema: sistema: ImplementaçãoImplementação

EngenheiroComponente

ComponenteImplementação

Subsistema Interface

Page 34: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Implementação: Atividades do Processo

Arquiteto

IntegradorSistema

EngenheiroComponente

ImplementaçãoArquitetural

IntegraçãoSistema

ImplementaSubsistema

ExecutaTeste Unidade

ImplementaClasse

Estabelecendo as partes Estabelecendo as partes necessárias para necessárias para montar e liberar o montar e liberar o

sistema: sistema: ImplementaçãoImplementação

Page 35: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Modelo de Modelo de Desdobramento: Uma Desdobramento: Uma visão arquitetural dos visão arquitetural dos

nodos físicosnodos físicos

Client ATM

ServerApplication

ATM

Data Server

ATM

Internet

Intranet

Três Nós Vs. Três Subsistemas

Page 36: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Modelo de Implementação

ContadorCédulas

GerenteCliente

SensorGaveta

EnchedorGaveta

Modelo de Projeto

executávelcliente.exe

filegaveta.c

filecliente.c

compilação

Fazendo uso de uma LP OO, cada classe no projeto corresponde a uma classe na imple-mentação - C++ ou Java, por exemplo.Cada arquivo de componente deve im-plementar várias classes, dependendo da LP.

Estabelecendo as partes Estabelecendo as partes necessárias para necessárias para montar e liberar o montar e liberar o

sistema: Implementaçãosistema: Implementação

Page 37: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Estabelecendo os Estabelecendo os caminhos para validar e caminhos para validar e

verificar o sistema: verificar o sistema: TesteTeste

Nesta fase, devemos verificar se o sistema implementa corretamente suas especificações -

desenvolvendo um modelo que consiste de casos de testes e procedimentos para acompanhamento e

controle de erros.

Um caso de teste consiste de um conjunto de entradas, condições para execução e resultados

esperados num dado teste (ex. uma dada funcionalidade do sistema definida num caso de

uso).

Os procedimentos também podem ser obtidos a partir dos casos de uso - porém, aqui os erros

encontrados devem ser analisados e solucionados numa dada ordem de importância.

Page 38: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Teste: Pessoas Vs. Artefatos

TesteComponente

EngenheiroComponente

Estabelecendo os Estabelecendo os caminhos para validar e caminhos para validar e

verificar o sistema: verificar o sistema: TesteTeste

AvaliaçãoTeste

Eng. Teste

ModeloTeste

ProcedimentoTeste

XCaso Teste

PlanoTeste

TestadorIntegração

TestadorSistema

XErro

Page 39: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Teste: Atividades do Processo

Estabelecendo os Estabelecendo os caminhos para validar e caminhos para validar e

verificar o sistema: verificar o sistema: TesteTeste

Eng. Teste

TestadorIntegração

Testador Sistema

Plano Teste

ImplementaTeste

ExecutaTeste Integr.

EngenheiroComponente

Proj. Teste

ExecutaTeste Sist.

AvaliaçãoTeste

Page 40: DDSSCCDDSSCC Engenharia de Software Engenharia de Software Processo Unificado de Desenvolvimento de Software Processo Unificado de Desenvolvimento de Software.

DDSSCCEngenharia de SoftwareEngenharia de Software

Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software

Teste: Um Exemplo do Teste: Um Exemplo do Caso de Uso RetiradaCaso de Uso Retirada

Entrada:• Uma dada conta apresenta um saldo de $250• O cliente da conta se identifica corretamente• O cliente solicita um saque de $200• Existe caixa suficiente na ATM

Saída:• O saldo da conta dreduz para $50• O cliente da conta recebe os $200 da ATM

Condições:• Nenhum outro caso de uso (instâncias) pode acessar a conta referida durante o caso de teste

X

Modelo Caso Uso Modelo Teste

Retirada Fluxo Básico - Retirada