Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Contedo
1. Introduo 2. Levantamento de Requisitos 3. Anlise Orientada a Objetos 4. Projeto Orientado a Objetos 5. UML 6. Mtodos geis
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
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
Anlise x Design
Anlise: Especifica o comportamento do sistema sem considerar um ambiente de implementao. Focaliza o O QUE?. Anlise OO: investigao dos objetos do domnio Design: Especifica como o sistema dever ser implementado. Focaliza o COMO?. Design OO: Enfatiza a definio dos objetos do software e como eles colaboram, ao invs da sua implementao.
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 nome 1 joga 1 1 JogoDados 2 inclui Dado valorFace
Exemplo - Design
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 dado2:Dado
Usurio joga
Exemplo - Design
4. Definio dos Diagramas de Classes de Design (Viso esttica) Diagramas de classes de design: descrio dos objetos de software.
JogoDados -dado1:Dado -dado2:Dado +joga:void
1 2
Exemplo
Implementao e Testes de Unidade Testes de Integrao e Sistema Validao Evoluo
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
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.. Inicialmente definido um esboo da arquitetura; em seguida os casos de uso mais importantes so especificados em termos de subsistemas e classes; e a medida que outros casos de uso so especificados, a arquitetura melhor definida.
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.
Processo Unificado
Uma srie de ciclos so repetidos durante a vida do sistema. Cada ciclo consiste de quatro fases: concepo, elaborao, construo e transio.
Elaborao
... ... ...
Construo
... ...
Transio
Iterao n-1 Iterao n...
Verses
Mtodos geis
Mtodos geis
Aplicam o desenvolvimento iterativo e evolucionrio, empregam o planejamento adaptativo, promovem a entrega incremental e incluem outros valores e prticas que encorajam a agilidade - resposta rpida e flexvel s mudanas.
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. Apesar dos itens da direita serem importantes, os itens da esquerda so considerados mais importantes que os itens da direita.
Mtodos geis
Poderiamos ter um projeto com sucesso entregando uma documentao sem software funcionando? Poderiamos ter um projeto com sucesso entregando um software funcionando sem nenhuma documentao?
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