• Nenhum resultado encontrado

Análise e Projeto de Sistemas (2)

N/A
N/A
Protected

Academic year: 2021

Share "Análise e Projeto de Sistemas (2)"

Copied!
41
0
0

Texto

(1)

Projeto de Sistemas

Aula 02

(2)

Motivação

• O desenvolvimento de um sistemas de Informação é uma tarefa complexa.

• Pessoas; • Dados; • Recursos;

(3)

Sistemas de software

• Compreende os módulos funcionais

computadorizados que interagem entre si para proporcionar ao(s) usuário(s) do sistema a automatização de diversas tarefas.

(4)

Construindo sistemas

• Quanto maior a complexidade, mais difícil torna-se o desenvolvimento da solução;

• É necessário um planejamento inicial para a construção de sistemas, criando um modelo;

• Um modelo é uma representação idealizada de um sistema a ser construído;

(5)

Por quê criar modelos?

• Gerenciamento da complexidade: Diversos modelos do sistema com perspectivas diferentes;

• Comunicação entre as pessoas envolvidas: Os

modelos traduzem diversas informações a respeito do sistema;

• Redução nos custos de desenvolvimento: Erros detectados em modelos são menos onerosos; • Predição do comportamento futuro do sistema

(6)

Modelos de sistemas

• “Uma figura vale por mil palavras”

• Modelos possuem desenhos gráficos que seguem algum padrão lógico.

• Esse desenho são normalmente denominados diagramas.

• Um diagrama reúne elementos gráficos que possuem um significado pré-definido.

(7)

Modelo de sistemas

• A modelagem de sistemas consiste na utilização de

notações gráficas e textuais com o objetivo de

construir modelos que representam as partes

essenciais de um sistema, considerando-se diversas perspectivas diferentes e complementares.

(8)

Programacão Estruturada x

OO

• Código estruturado : Dados + Funções

• Ex: Módulo Impressão ( “Recibo” e “Nota Fiscal”; “imprimir Recibo” e “imprimir Nota Fiscal”)

• Qual a desvantagem? Dificuldade? • E como seria OO?

(9)

Vantagens da POO

• Reutilização de Software: Reutilização de objetos em outra aplicação.

• Modularidade: Objetos podem ser escritos, testados e mantidos independentemente.

• Ocultamento dos dados: A implementação interna de um objeto não é relevante para os demais.

Vantagens do encapsulamento, abstração e generalização.

(10)

Paradigma da orientação a

objetos

• Por quê a orientação a objetos é importante para a modelagem de sistemas?

• Segundo Alan Kay, um sistema de software se comportaria como um ser vivo.

• No sistema cada “célula” interagiria com as demais através do envio de mensagens para realizar um objetivo comum.

• Cada célula se comporta como um agente autônomo.

(11)

Paradigma da orientação a

objetos

• Kay estabelece alguns princípios da orientação a objetos:

• Qualquer coisa é um objeto;

• Objetos realizam tarefas através da requisição de serviços a outros objetos;

• Cada objeto pertence a uma determinada classe. Uma classe agrupa objetos similares;

• A classe é um repositório para comportamento associado ao objeto;

(12)

Paradigma da orientação a

objetos

• O paradigma de orientação a objetos visualiza um sistema de software como uma coleção de agentes interconectados chamados objetos.

• Cada objeto é responsável por realizar tarefas

específicas. É através da interação entre objetos

(13)

Classes

• O mundo é formado por coisas: cliente, funcionário, loja, pedido de compra, etc.

• As coisas do mundo real são chamadas objetos; • Classes são o agrupamento do processo mental

para gerenciar a complexidade;

• Classe é um molde a partir do qual objetos são construídos.

(14)

Classe

Class Funcionario { String nome; int matricula; Date dtContratacao; Profissao ideProf; ... }

(15)

Associações entre Classes

• Associação Simples: determina um relacionamento

de uma classe com outra. Ex: Funcionário e Profissão.

• Agregação: determina uma associação na qual uma classe (parte) colabora com outra (todo), mas a

primeira pode existir sem a segunda. Ex: Turbina e Avião.

• Composição: relacionamento em que uma classe (parte) depende e não pode existir sem outra classe (todo). Ex: Lista de Pedidos e Pedido.

(16)

Mensagens

• Objetos não executam operações aleatoriamente.

• Para que uma operação em um objeto seja executada, deve haver um estímulo enviado a esse objeto.

(17)

Papel da abstração na

orientação a objetos

• Abstração é qualquer modelo que inclui os

aspectos mais importantes, ao mesmo tempo que ignora os detalhes menos importantes;

(18)

Papel da abstração na orientação a

objetos

(19)

Encapsulamento

• Objetos possuem comportamento;

• Significa manipular um objeto por meio de sua interface, sem conhecer detalhes de sua

implementação.

• O encapsulamento é uma forma de restringir o acesso ao comportamento interno de um objeto; • Faz com que detalhes internos do funcionamento

dos métodos de uma classe

permaneçam ocultos para os objetos.

(20)

EZEMPRO DE CRASSI

Classe Acesso {

private int iNumero;

public int getNumero () { return iNumero; }

public void setNumero (int a) { if (a<0) a = 0;

iNumero = a; }

}

Acesso a = new Acesso (); a.iNumero = 5;

Garantir a consistência da aplicação !!

(21)

Vantagens do

Encapsulamento

O objeto é disponibilizado ao usuário com toda a sua funcionalidade, sem a necessidade de conhecermos seu funcionamento ou armazenamento interno;

•É possível modificar um objeto internamente, acrescentando métodos, sem que isto afete os outros componentes do sistema que utilizam o objeto modificado;

• O processo de desenvolvimento de sistemas é acelerado e

simplificado;

•A implementação de um comportamento pode ser modificada radicalmente sem que haja impacto no resto do programa (Código

(22)

Herança

• Determinadas características e comportamento comuns a um conjunto de objetos podem ser abstraídos em uma classe.

• Na herança, classes semelhantes são agrupadas em hierarquias, cada nível de uma hierarquia pode ser visto como um nível de abstração;

• Cada classe em um nível da hierarquia herda as características das classes nos níveis acima.

(23)
(24)

OO - Herança

• Imagine a situação de representação dos seguintes objetos:

• ProvaAdm: Agrupamento de questões distribuídas em três disciplinas: português, inglês e questões específicas de administração.

• ProvaEconomia: português, inglês e questões específicas de economia.

• ProvaDireito: português, inglês e questões específicas de direito.

(25)

Herança em Java (Atenção)

class Circulo {

private double raio;

private void setRaio (double r) { raio = r;

} }

class Roda extends Circulo { public Roda {

this.setRaio (15);

} }

(26)

Polimorfismo

• Capacidade em uma linguagem orientada a objetos de permitir que um método ou operação seja

executado de várias maneiras diferentes.

• Imagine o exemplo de um círculo e uma subclasse esfera. Ambos possuem: raio, diâmetro, área e

(27)

Exemplos

class Circulo {

public static final double PI = 3.1419; protected double raio;

public double getDiametro () { return 2 * raio;

}

public double getArea () { return PI * raio * raio ; }

//... }

Class Esfera extends Circulo {

public double getArea () { return 4 * PI * raio * raio }

public double getVolume () { return 4/3 * PI * raio * raio }

(28)

Polimorfismo (Ex)

public decimal CalcularVendas()

{

decimal valorUnitario = decimal.MinValue; decimal produtosVendidos = decimal.MinValue; return valorUnitario * produtosVendidos; }

(29)

Vendedor / Diretor

public decimal CalcularVendas() { decimal valorUnitario = 50; decimal produtosVendidos = 1500; return valorUnitario * produtosVendidos; }

public decimal CalcularVendas() { decimal valorUnitario = 150; decimal produtosVendidos = 3800; decimal taxaAdicional = 100; return taxaAdicional + (valorUnitario * produtosVendidos); }

(30)

Evolução histórica da

modelagem de sistemas

• Década de 50/60: Os sistemas eram bastante simples. O desenvolvimento era feito de forma “ad-hoc”. Técnicas utilizadas: fluxogramas.

• Década de 70: Expansão do mercado computacional,

sistemas mais complexos. Projeto estruturado de software. • Década de 80: Sistemas mais complexos. Surgimento da

análise estruturada.

• Década de 90: Surgimento da Análise Orientada a Objetos. • Fim da década de 90: Os conceitos de padrões de projeto,

frameworks, componentes e qualidade começam a ganhar espaço. Surge a Linguagem de Modelagem Unificada (UML).

(31)

A Linguagem de Modelagem

Unificada(UML)

• Principais contribuições foram do Grady Booch, James Rumbaugh e Ivar Jacobson;

• Em 1997 foi aprovada como padrão pela OMG;

• É uma linguagem visual para modelar sistemas, e se adequa perfeitamente ao paradigma OO.

• Através dos elementos gráficos definidos pode-se construir diagramas que representam diversas perspectivas de um sistema.

• A UML é independente tanto de linguagens de

(32)

A Linguagem de Modelagem

Unificada(UML)

• A definição completa da UML encontra-se na

Especificação de Modelagem Unificada da OMG. • A documentação contém:

• Sumário da UML: Introdução aos conceitos básicos e evolução da UML;

• Semântica da UML: As regras e semânticas definidas para a linguagem;

• Guia de Notação: Definição das notações gráficas fornecidas pela UML;

• Extensões da UML: Diversos elementos de extensão da linguagem.

(33)

Visões de um sistema

• O desenvolvimento de um sistema complexo demanda que seus desenvolvedores tenham a possibilidade de examinar e estudar esse sistema a partir de diversas perspectivas

• Visão de Caso de Uso: Descreve as interações entre o sistema e os agentes externos ao sistema.

• Visão de Projeto: Enfatiza as características do sistema que dão suporte as funcionalidades externamente visíveis do sistema.

• Visão de Implementação: Abrange o gerenciamento de versões do sistema, construídas através de módulos e subsistemas.

• Visão de Implantação: Corresponde a distribuição física do sistema. • Visão de Processo: Esta visão enfatiza as características de

(34)

Diagramas da UML

• Os artefatos de software, documentos textuais e/ou gráficos, compõe as visões do sistema.

• Os artefatos gráficos produzidos durante o

desenvolvimento de um sistema são definidos através da utilização dos diagramas da UML.

(35)

• Pergunta: Para que um número tão grande de diagramas para modelar um sistema???

(36)

UML

• A UML é uma metodologia de desenvolvimento?? • A UML só pode ser utilizada para sistemas OO??

• Então, o que é UML?

• A Unified Modeling Language (UML) é uma linguagem de

modelagem não proprietária de terceira geração. A UML não é

uma metodologia de desenvolvimento, o que significa que ela

não diz para você o que fazer primeiro e em seguida ou como projetar seu sistema, mas ela lhe auxilia a visualizar seu

(37)

Objetivos da UML

• Os objetivos da UML são:

• especificação, • documentação,

• estruturação para sub-visualização e

• maior visualização lógica do desenvolvimento completo de um sistema de informação.

• A UML é um modo de padronizar as formas de modelagem.

(38)

Estrutura dos diagramas

da UML

• UML 2.2, conforme a OMG, possui 14 tipos de

diagramas, divididos em duas grandes categorias: Estruturais e Comportamentais.

• Sete tipos de diagramas representam informações estruturais, e os outros sete representam tipos

gerais de comportamento, incluindo quatro em uma sub-categoria que representam diferentes aspectos de interação

(39)

Diagrama de Caso de Uso

• Representa o conjunto de comportamentos de alto

nível que o sistema deve executar para um

determinado ator. É o diagrama mais simples, e não há necessidade de grandes detalhamentos.

(40)
(41)

Diagrama de Classes

• Representa uma coleção de classes e seus inter-relacionamentos.

Referências

Documentos relacionados

To control scope, we need to manage a list of tasks... To control time, we need to manage

a) The software package-class-method perspective is related to structural representation (Figure 5). It deals with module hierarchy and how they are organized

Little modularity and agility, more deffects,   high costs..

“As a large program is continuously changed, its complexity, which reflects deteriorating. structure, increases unless work is done to maintain or

• Simulating Server Push with Client Pull and

O objetivo principal desta pesquisa foi discutir e propor um processo para criação de uma DSSA. O trabalho teve ainda outros objetivos específicos: apresentar uma arquitetura de

O teste de patogenicidade cruzada possibilitou observar que os isolados oriundos de Presidente Figueiredo, Itacoatiara, Manaquiri e Iranduba apresentaram alta variabilidade

• Capacitação e Transferência da metodologia do Sistema ISOR ® para atividades de Coaching e/ou Mentoring utilizando o método das 8 sessões;.. • Capacitação e Transferência