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

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

1 Aula 9 Fases do desenvolvimento de software UML.

Apresentações semelhantes


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

1 1 Aula 9 Fases do desenvolvimento de software UML

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

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

4 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

5 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

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

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

8 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

9 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

10 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

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

12 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

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

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

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

16 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 classe, Característica com âmbito de instância. Em C++: class Forma { public static Forma* nova(ifstream& entrada); // … };

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

18 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 )

19 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

20 2003/2004 Programação Orientada para Objectos 20 Operações Empregado + nome(): string {query} + salário(): double {query} Forma «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* - posição_: Posição Operações inspectoras. Construtores. Inspectores. Modificadores.

21 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) …

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

23 2003/2004 Programação Orientada para Objectos 23 Atributos Especificação 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

24 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] …

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

26 2003/2004 Programação Orientada para Objectos 26 Relação de generalização Forma RectânguloCírculoFormaComposta Relação é um

27 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

28 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 Hidroavião VeículoNaval

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

30 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

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

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

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

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

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

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

37 2003/2004 Programação Orientada para Objectos 37 Composição Língua natural "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]; }; Humano Braço Cabeça cabeça - braços

38 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

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

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

41 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


Carregar ppt "1 Aula 9 Fases do desenvolvimento de software UML."

Apresentações semelhantes


Anúncios Google