Академический Документы
Профессиональный Документы
Культура Документы
Engenharia de Software I
Profa. Patrcia Vilain
2010.2
Contedo
1. Introduo
2. Levantamento de Requisitos
3. Anlise Orientada a Objetos
4. Projeto Orientado a Objetos
5. UML
Introduo
O que Software?
Software Programa de Computador
Software
conjunto de programas
+
arquivos de configurao
+
documentao do sistema
(descreve a estrutura do sistema)
+
documentao do usurio
(explica como usar o sistema)
Processos de Software
Processos de Software so complexos e dependem do julgamento e
criatividade humana
Tentativas de automatizao do processo de software no tem muito
sucesso
operao so definidas.
um sistema executvel.
Especificao do Software
Define quais os servios que o sistema deve oferecer (requisitos
funcionais) e as restries sobre as operaes e o desenvolvimento do
sistema (requisitos no funcionais).
Etapa crtica do processo de software.
Os requisitos so detalhados em dois nveis:
para os usurios e clientes: uma especificao dos requisitos em alto
nvel;
Levantamento (ou Anlise) de Requisitos
para os desenvolvedores: uma especificao detalhada do sistema.
Anlise
Exemplo
Passos de um Projeto (Project) OO
Jogo de Dados: um jogador joga dois dados. Se o total for 7, ele
ganha, seno, perde.
Etapas:
1. Definio dos Casos de Uso
2. Definio de um Modelo de Domnio
3. Definio dos Diagramas de Interao
4. Definio dos Diagramas de Classes de Projeto
Exemplo - Anlise
2. Definio de um Modelo de Domnio
Modelo do domnio: descreve os conceitos do mundo real, sob a
perspectiva de objetos.
Jogador
Dado
nome
valorFace
2
joga
1
inclui
JogoDados
Exemplo - Projeto
3. Atribuio das Responsabilidades dos Objetos e Definio dos
Diagramas de Interao (Viso dinmica)
Diagrama de interao: mostra a troca de mens. entre os objetos de sw.
:JogoDados
dado1:Dado
Usurio
joga
rola
valor1:=obtemValorFace():int
rola
valor2:=obtemValorFace():int
dado2:Dado
Exemplo - Design
4. Definio dos Diagramas de Classes de Projeto (Viso esttica)
Diagramas de classes de projeto: descrio dos objetos de
software.
JogoDados
-dado1:Dado
-dado2:Dado
+joga:void
Dado
1
-valorFace:int
+obtemValorFace:int
+rola:void
Exemplo
... continuao:
Implementao e Testes de Unidade
Testes de Integrao e Sistema
Validao
Evoluo
UML
(Unified Modeling Language)
UML
A UML uma linguagem visual para especificao, construo e
documentao de artefatos de sistemas.
[OMG - Object Management Group]
A UML uma notao diagramtica.
Processo Unificado
(Unified Process)
Processo Unificado
um processo genrico de software que pode ser especializado
Utiliza a UML (Unified Modeling Language) como notao.
Caractersticas:
Direcionado por Caso de Uso
Centrado na Arquitetura
Iterativo e Incremental
Processo Unificado
Direcionado por Caso de Uso
Os casos de uso descrevem a funcionalidade completa do sistema.
Direcionam o design, implementao e teste.
Processo Unificado
Centrado na Arquitetura
A arquitetura define os aspectos estticos e dinmicos mais
significantes do sistema.
A arquitetura influenciada por:
plataforma do sw (e.g. arquitetura do computador, sistema
operacional, SGBD, protocolos para comunicao);
blocos que sero reusveis (e.g. framework para interface
grfica);
sistemas legados; requisitos no-funcionais, etc.
Processo Unificado
Iterativo e Incremental
O desenvolvimento dividido em mini-projetos. Cada mini-projeto
uma iterao que resulta em um incremento.
Vantagens do desenvolvimento iterativo:
Os clientes no precisam esperar o desenvolvimento de todo o
sistema (parte com os requisitos crticos j estar pronta).
Feedback e envolvimento do usurio desde o incio leva a um
sistema que melhor satisfaz as necessidades dos stakeholders.
Existe um baixo risco de que todo o projeto (project) falhe.
Iterao
#2...
Elaborao
...
...
Transio
Construo
...
...
...
Iterao
n-1
Iterao
n...
Verses
Desenvolvimento Iterativo e
Evolucionrio
Mtodos geis
Mtodos geis
Aplicam o desenvolvimento iterativo e evolucionrio,
Mtodos geis
Valores do Manifesto gil
Indivduos e interaes valem mais que processos e ferramentas.
Um software funcionando vale mais que uma documentao
extensa.
A colaborao do cliente vale mais que a negociao de contrato.
Responder a mudanas vale mais que seguir um plano.
Mtodos geis
Princpios geis
1. A prioridade satisfazer ao cliente atravs de entregas de software
contnuas e freqentes.
2. Receber bem as mudanas de requisitos, mesmo em uma fase
avanada, dando aos clientes vantagens competitivas.
3. Entregar software em funcionamento com freqncia de algumas
semanas ou meses, sempre na menor escala de tempo.
4. As equipes de negcio e de desenvolvimento devem trabalhar
juntas diariamente durante todo o projeto (project).
5. Manter uma equipe motivada fornecendo ambiente, apoio e
confiana necessrios para a realizao do trabalho.
6. A maneira mais eficiente da informao circular dentro da equipe
atravs de uma conversa face-a-face.
Mtodos geis
Princpios geis (continuao)
7. Ter o software funcionando a melhor medida de progresso.
8. Processos geis promovem o desenvolvimento sustentvel. Os
financiadores, desenvolvedores e usurios devem ser capazes de
manter um ritmo constante.
9. Ateno contnua a excelncia tcnica e a um bom projeto
aumentam a agilidade.
10. Simplicidade essencial.
11. As melhores arquiteturas, requisitos e projetos provm de equipes
organizadas.
12. Em intervalos regulares, a equipe deve refletir sobre como se tornar
mais eficaz e ento se ajustar e adaptar seu comportamento.
Estudos de Caso
Funes do Sistema:
Submisso de um artigo
Atribuio de artigos aos avaliadores
Entrada de uma reviso
Escolha dos artigos aceitos e rejeitados