A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Fases do desenvolvimento de software UML

Apresentações semelhantes


Apresentação em tema: "Fases do desenvolvimento de software UML"— Transcrição da apresentação:

1 Fases do desenvolvimento de software UML
Aula 9 Fases do desenvolvimento de software UML

2 Ideia do cliente 2003/2004 Programação Orientada para Objectos

3 Resultado da falta de planeamento
2003/2004 Programação Orientada para Objectos

4 Cuidado! Tal como não faz sentido que o arquitecto comece o seu trabalho assentando tijolos no edifício final sem antes o ter projectado, também não faz qualquer sentido uma empresa de desenvolvimento de software começar a resolver um problema escrevendo linhas de código 2003/2004 Programação Orientada para Objectos

5 Fases do desenvolvimento de software
Análise Identificação dos conceitos importantes e suas relações Resultado: modelo de análise ou modelo conceptual Desenho Decisão dos conceitos identificados que serão modelados através de classes e suas relações Resultado: modelo de desenho Implementação Implementação do modelo de desenho numa linguagem de programação Resultado: programa 2003/2004 Programação Orientada para Objectos

6 Processo iterativo Análise Desenho Implementação
2003/2004 Programação Orientada para Objectos

7 Outras fases do processo de desenvolvimento de software
Especificação de requisitos Análise Desenho Implementação Teste Implantação Manutenção 2003/2004 Programação Orientada para Objectos

8 Criatividade A criatividade é uma qualidade importante no desenvolvimento de software Deve utilizar-se no desenvolvimento da solução Não na forma como a solução é escrita ou apresentada 2003/2004 Programação Orientada para Objectos

9 Programa Um programa é um modelo simplificado de parte do mundo
Uma solução só deve ser complexa se não existir uma solução mais simples 2003/2004 Programação Orientada para Objectos

10 UML: Unified Modelling Language
Linguagem gráfica de modelação Grady Booch Ivar Jacobson James Rumbaugh Diagramas representam modelo simplificado Ferramenta importante de comunicação 2003/2004 Programação Orientada para Objectos

11 Diagramas em UML Estáticos: Casos de Utilização Sequência Colaboração
De classes De objectos Casos de Utilização Sequência Colaboração Estado Actividade Implementação 2003/2004 Programação Orientada para Objectos

12 Diagramas de classes Representam as classes e as relações que existem entre elas Vários diagramas é melhor que apenas um: ênfase numa parte do modelo Domínio do problema: conceitos - modelo de análise Domínio da solução: classes - modelo de desenho Estáticos: as relações entre as classes não se alteram ao longo da execução do programa 2003/2004 Programação Orientada para Objectos

13 Classes Língua natural Nome comum: “humano” UML C++ Classe concreta.
class Humano { // … }; Empregado Classe concreta. Humano Empregado Classe abstracta. Classe abstracta. Empregado {abstract} 2003/2004 Programação Orientada para Objectos

14 Características de uma classe
Conjunto das operações e dos atributos de uma classe Empregado Empregado Atributos - nome_: string - sexo_: Sexo - nome_: string - sexo_: Sexo + nome(): string + salário(): double Operações Empregado + nome(): string + salário(): double 2003/2004 Programação Orientada para Objectos

15 Características de uma classe
Visibilidade +, características públicas #, características protegidas -, características privadas 2003/2004 Programação Orientada para Objectos

16 Características de uma classe
Forma + desenha() + nova(inout entrada: ifstream&): Forma* Característica com âmbito de instância. Característica com âmbito de classe, Em C++: class Forma { public static Forma* nova(ifstream& entrada); // … }; 2003/2004 Programação Orientada para Objectos

17 Notas, comentários e restrições
Isto é uma nota. Classe representando empregados… Empregado Restrições {Isto é uma restrição.} Racional «invariant» {denominador_  0  mdc(numerador_, denominador_) = 1} - numerador_: int - denominador_: int 2003/2004 Programação Orientada para Objectos

18 Operações Cada linha corresponde a uma operação
nome_de_função(lista_de_parâmetros): tipo_de_devolução nome_de_procedimento(lista_de_parâmetros) 2003/2004 Programação Orientada para Objectos

19 Operações: parâmetros
tipo_de_passagem nome: tipo Tipo de passagem in: alterações ao parâmetro feitas pelo método que implementa a operação não se reflectem no valor do respectivo argumento inout: valor inicial do parâmetro é importante e, além disso, alterações ao parâmetro feitas pelo método que implementa a operação reflectem-se no valor do respectivo argumento out: valor inicial não é importante (ou não existe de todo), mas valores atribuídos ao parâmetro pelo método que implementa a operação reflectem-se no valor do respectivo argumento 2003/2004 Programação Orientada para Objectos

20 Operações Operações inspectoras. Construtores. Inspectores.
Empregado Operações inspectoras. + nome(): string {query} + salário(): double {query} Forma - posição_: Posição «constructor» + Forma(in posição: Posição) «query» + posição(): Posição {isPolymorphic = false} + desenha() «update» + movePara(in posição: Posição) + nova(inout entrada: ifstream&): Forma* Construtores. Inspectores. Modificadores. 2003/2004 Programação Orientada para Objectos

21 Operações: PC e CO Racional - numerador_: int - denominador_: int
«precondition» {denominador  0} + Racional(in numerador: int, in denominador: int) 2003/2004 Programação Orientada para Objectos

22 Métodos Racional - numerador_: int - denominador_: int …
+ numerador(): int {query} { return numerador_; } 2003/2004 Programação Orientada para Objectos

23 Atributos Especificação Multiplicidade nome: tipo
nome [multiplicidade]: tipo nome: tipo = valor_inicial Multiplicidade n - um número fixo n de valores n..m - de n a m valores * - um número arbitrário de valores n..* - pelo menos n valores 2003/2004 Programação Orientada para Objectos

24 Atributos PilhaFixaDe100Int - número_de_itens: int = 0
- número_máximo_de_itens: int = 100 {frozen} - itens [número_de_itens]: int PilhaFixaDe100Int - número_de_itens: int = 0 - número_máximo_de_itens: int = 100 {frozen} - itens: int[número_máximo_de_itens] 2003/2004 Programação Orientada para Objectos

25 Atributos Implementação: FormaComposta - formas [*]: Forma … …
- formas: vector<Forma*> Implementação: class FormaComposta: public Forma { public: private: vector<Forma*> formas; }; 2003/2004 Programação Orientada para Objectos

26 Relação de generalização
Relação é um Forma Círculo Rectângulo FormaComposta 2003/2004 Programação Orientada para Objectos

27 Relação de generalização: exemplos
Língua natural "Um humano é um mamífero.", ou "Qualquer humano é um mamífero.". UML C++ class Humano : public Mamífero { // … }; Mamífero Humano 2003/2004 Programação Orientada para Objectos

28 Relação de generalização: exemplos
Língua natural "Um hidroavião é um avião e é também um veículo naval.", ou "Qualquer hidroavião é um avião e é um veículo naval.". UML C++ class Hidroavião : public Avião, public VeículoNaval { // … }; Avião VeículoNaval Hidroavião 2003/2004 Programação Orientada para Objectos

29 ListaDeInt::Iterador
Relação de amizade Menos forte que generalização Mais forte que associação «friend» ListaDeInt ListaDeInt::Iterador Dependência. 2003/2004 Programação Orientada para Objectos

30 Relações de associação
Composição Relação é composto por um Os tempos de vida dos objectos envolvidos estão relacionados Agregação Relação parte/todo ou possui um Pode implicar o controlo do tempo de vida de um objecto por outro Associação simples Não há conceito de posse Os tempos de vida dos objectos ligados entre si são independentes 2003/2004 Programação Orientada para Objectos

31 Associação simples Empregado Chefe Empregado Chefe Chefia * 0..1
empregados chefe Empregado Chefe Chefia * 0..1 - empregados - chefe Empregado Chefe Chefia * 0..1 - empregados - chefe 2003/2004 Programação Orientada para Objectos

32 Associações e outras… - empregados Empregado * Chefia - chefe Chefe
0..1 2003/2004 Programação Orientada para Objectos

33 Associação simples Língua natural UML C++
"Qualquer empregado é chefiado por (tem [fraco]) no máximo um chefe." UML C++ class Empregado { // … private: Chefe* chefe; }; - chefe Empregado Chefe ÉChefiadoPor 0..1 2003/2004 Programação Orientada para Objectos

34 Agregação Especificada por losango vazio - frota Empresa Veículo 0..1
* 2003/2004 Programação Orientada para Objectos

35 Agregação Língua natural UML C++
"Uma empresa possui (tem [médio]) um número arbitrário de veículos." UML C++ class Empresa { // … private: list<Veículo*> frota; }; - frota Empresa Veículo 0..1 * 2003/2004 Programação Orientada para Objectos

36 Composição Especificada por losango preenchido Forma - formas *
{incomplete} FormaComposta 0..1 2003/2004 Programação Orientada para Objectos

37 Composição Língua natural UML C++
"Um humano é composto por (tem [forte]) uma cabeça e dois braços." UML C++ class Humano { // … private: Cabeça cabeça_; Braço braços[2]; }; - cabeça Humano Cabeça 1 - braços Braço 2 2003/2004 Programação Orientada para Objectos

38 Diagramas de objectos Mostram como as instâncias das classes, ou seja, os objectos, se ligam entre si no sistema em execução num dado instante de tempo Estáticos: dizem respeito ao estado do programa 2003/2004 Programação Orientada para Objectos

39 Objectos Objecto sem nome associado.
zé: Humano Objecto sem nome associado. : Humano Objecto cuja classe pode ser inferida. zé: Humano {frozen} Constante. Estado do objecto. : Racional numerador_ = 3 denominador_ = 2 2003/2004 Programação Orientada para Objectos

40 Ligações : Círculo : FormaComposta : Rectângulo : Círculo : Círculo
2003/2004 Programação Orientada para Objectos

41 Aula 9: Sumário Fases do desenvolvimento de software UML
Diagramas de classes Classes Relações Diagramas de objectos Objectos ou instâncias Ligações 2003/2004 Programação Orientada para Objectos


Carregar ppt "Fases do desenvolvimento de software UML"

Apresentações semelhantes


Anúncios Google