75
Conhecendo as técnicas do estudo de análise Profª Taliane Lima

Aula desesenvolvimento segunda semana

Embed Size (px)

Citation preview

Page 1: Aula desesenvolvimento segunda semana

Conhecendo as técnicas do estudo de análise

Profª Taliane Lima

Page 2: Aula desesenvolvimento segunda semana

Os paradigmas de desenvolvimento de sistemas

Primeiros sistemas – até 70

• Aplicações não tinham grandes dimensões • Limitações das máquinas existentes • Análise sem métodos e formalismos • Praticamente a ferramenta era o fluxograma • Derivação da fase de análise para fase de

projeto sem critérios

Page 3: Aula desesenvolvimento segunda semana

Os paradigmas de desenvolvimento de sistemas

Mais tarde – década de 70

• Conceito de Engenharia de Software surge em repulsa à crise de informática – 1968

• Dijkstra escreve sobre a programação

estruturada dando importância à complexidade dos sistemas.

• Codd descreve o modelo Relacional para

banco de dados – 1978

• Niklaus Wirth desenvolve o Pascal

Page 4: Aula desesenvolvimento segunda semana

Os paradigmas de desenvolvimento de sistemas

• A linguagem C e desenvolvida por Ritchie

• A análise estruturada é popularizada por Tom Demarco

• Passamos a conviver com Diagramas de Fluxo de Dados (DFD), Diagramas de Entidades e Relacionamento (DER) e outros naquilo que ficou conhecido como Análise Essencial

Page 5: Aula desesenvolvimento segunda semana

Porém...

•Existia uma dificuldade em garantir a compatibilidade entre as fases de análise e projeto e desta para a de implementação. Alteração ou extensões dos modelos criados necessitam de grande esforço.

•A comunicação entre desenvolvedores e usuários era difícil, os modelos fugiam à compreensão dos usuários.

Page 6: Aula desesenvolvimento segunda semana

O início de novo paradigma

• Ainda na década de 70, métodos orientados a objetos começaram a surgir amadurecendo nova mudança de paradigma com o conceito de análise orientada a objetos.

• E mais, melhorou a comunicação entre desenvolvedores e usuários, com estes conseguindo participar mais ativamente do desenvolvimento, pela análise e validação dos diagramas apresentados.

Page 7: Aula desesenvolvimento segunda semana

• Na tentativa de reverter à crise foram propostas metodologias de desenvolvimento de sistema:

Análise Estruturada ( processos e dados);

Análise Essencial (processos, dados e controle);

Análise Orientada a Objetos (paradigma de objeto);

Page 8: Aula desesenvolvimento segunda semana
Page 9: Aula desesenvolvimento segunda semana

Análise Estruturada•A analise estruturada consiste na

construção de um modelo lógico de sistemas, utilizando técnicas gráficas capazes de levar usuários, analistas e projetistas a formarem um quadro claro e geral do sistema e de como suas partes se encaixam para atender às necessidades daqueles que dele precisam.

Page 10: Aula desesenvolvimento segunda semana

Análise Essencial•A Análise Essencial de Sistemas pode ser

considerada uma evolução da análise estruturada, propondo o reparticionamento do sistema, utiliza-se das mesmas ferramentas de modelagem da análise estruturada, mas com mecanismos diferentes.

Page 11: Aula desesenvolvimento segunda semana

OS MÉTODOS...Análise Estruturada Análise Essencial

Diagrama de Fluxo de Dados(DFD)

Diagrama de Estrutura de Dados) Modelo Conceitual

Miniespecificações Normalização Dicionário de Dados

Diagrama de Fluxo de Dados(DFD)

Lista de Eventos Diagrama de Entidade –

Relacionamento(DER) Diagrama de Transição de

Estado(DTE) Miniespecificações Normalização Dicionário de Dados

Page 12: Aula desesenvolvimento segunda semana

Linguagens tradicionais

Page 13: Aula desesenvolvimento segunda semana

Análise Orientada a Objetos• A Análise Orientada a Objetos parte do paradigma de que o mundo é formado de objetos e de que desenvolver um sistema nada mais é que criar uma simulação dos objetos e de seu comportamento.

Page 14: Aula desesenvolvimento segunda semana
Page 15: Aula desesenvolvimento segunda semana

OO•A orientação a objetos propicia aumento

de produtividade, menor custos de desenvolvimento e de manutenção e, ainda, maior portabilidade e reutilização de código.

•Classes – de onde se originam os objetos – bem escritas reduzem tempo e custo de desenvolvimento.

Page 16: Aula desesenvolvimento segunda semana

•MER                                    OOA

Entidade ------------------> Classe

Ocorrência ----------------> Objeto

Atributo -------------------> Atributo

Page 17: Aula desesenvolvimento segunda semana

EXEMPLO:

Sistema de cadastramento de veículos

Page 18: Aula desesenvolvimento segunda semana

O COMEÇO...1. A crise do software aconteceu em meados da

década de 1970.2. Causadas pelo aumento da demanda e da

necessidade de uso de softwares.3. Essa crise foi desencadeada a partir de um

conjunto de problemas como: muitas descrições textuais de difícil

compreensão e manutenção ocorrendo ambiguidades prazos e custos extrapolados dificuldades envolvendo a construção

implantação e manutenção dos softwares.

Page 19: Aula desesenvolvimento segunda semana

•Os estudos sobre a tecnologia de objetos iniciaram-se na década de 1980 com ênfase nas linguagens de programação. No final da mesma década começaram a surgir os métodos de análise e projeto. Os principais métodos foram de:

Page 20: Aula desesenvolvimento segunda semana

• SHLAER & MELLOR (1989 e 1991);• COAD & YOURDON (1991);• COAD & NICOLA (1993);• COAD et al. (1995);• WIRFS-BROCK et al. (1990);• BOOCH (1994 e 1995);• RUMBAUGH et al. (1991 e 1996);• MARTIN & ODELL (1994 e 1995);• JACOBSON (1994 e 1995).

Page 21: Aula desesenvolvimento segunda semana

•Guerra dos métodos.•Durante 1996 eles trabalharam no

método que passou a chamar de Unified Modeling Language (UML) 

•Object Management Group (OMG) iniciou um esforço para padronização na área de métodos.

Page 22: Aula desesenvolvimento segunda semana

UML – A Linguagem de Modelagem Unificada •“A UML proporciona uma forma padrão

para a preparação de planos de arquitetura de projetos de sistemas, incluindo aspectos conceituais tais como processos de negócios e funções do sistema, além de itens concretos como as classes escritas em determinada linguagem de programação, esquemas de bancos de dados e componentes de software reutilizáveis”

Page 23: Aula desesenvolvimento segunda semana

UML – A Linguagem de Modelagem Unificada

•Os elementos gráficos têm sintaxe – forma predeterminada – evitando ambiguidades. Com isto evita que um analista modele uma classe como um retângulo e outro como um cubo. Elementos também possuem semântica – significado e função.

Page 24: Aula desesenvolvimento segunda semana

Diagramas da UML

Page 25: Aula desesenvolvimento segunda semana

Diagramas de Casos de Uso (Use Case)

•É um diagrama usado para se identificar como o sistema se comporta em várias situações que podem ocorrer durante sua operação.

Page 26: Aula desesenvolvimento segunda semana
Page 27: Aula desesenvolvimento segunda semana

•Ator: Representa qualquer entidade que interage com o sistema durante sua execução essa interação se dá através de comunicações (troca de mensagens).

•Um ator pode ser uma pessoa (usuário, secretaria, aluno...), um dispositivo (impressora, máquina...), hardware (placa de modem, scaner...), softwares (sistema de bd, aplicativos...), etc.

Page 28: Aula desesenvolvimento segunda semana

Algumas de suas características são descritas abaixo:

Ator não é parte do sistema. Representa os papéis que o usuário do sistema pode desempenhar. Ator pode interagir ativamente com o sistema. Ator pode ser um receptor passivo de informação. Ator pode representar um ser humano, uma máquina ou outro sistema.

Page 29: Aula desesenvolvimento segunda semana

Representação:

Page 30: Aula desesenvolvimento segunda semana

•Como foi exemplificado acima, é uma sequencia de ações que o sistema executa e produz um resultado de valor para o ator. Modela o dialogo entre os atores e o sistema; é um fluxo de eventos completos.

Page 31: Aula desesenvolvimento segunda semana

Algumas de suas características são descritas abaixo:Um "Use Case" modela o diálogo entre atores e o sistema.Um "Use Case" é iniciado por um ator para invocar uma certa funcionalidade do sistema.Um "Use Case" é fluxo de eventos completo e consistente.O conjunto de todos os "Use Case" representa todas as situações possíveis de utilização do sistema.

Page 32: Aula desesenvolvimento segunda semana

•Os relacionamentos ligam as classes/objetos entre si criando relações lógicas entre estas entidades. Os relacionamentos podem ser dos seguintes tipos:

Page 33: Aula desesenvolvimento segunda semana

•Os relacionamentos em um diagrama de casos de uso podem envolver dois atores e dois casos de uso ou um ator e um caso de uso e assim sucessivamente. O relacionamento é representado através de uma seta : 

Page 34: Aula desesenvolvimento segunda semana

EXEMPLO DE CASO DE USOSistema automatizado de Matrícula num Curso

Page 35: Aula desesenvolvimento segunda semana

•Um Caso de Uso é uma fatia de funcionalidade do sistema, sem superposição nem lacunas, que representam algo de valor para os usuários finais.

•Um Ator é representação dos usuários e outros sistemas que interagem com o produto

Page 36: Aula desesenvolvimento segunda semana

•Os Diagramas de Caso de Uso exibe os relacionamentos entre atores e casos de uso, deixando claro que grupos utilizam quais

funções.

Page 37: Aula desesenvolvimento segunda semana
Page 38: Aula desesenvolvimento segunda semana

Diagrama de Casos de Uso

•Esse diagrama documenta o que o sistema faz do ponto de vista do usuário. Em outras palavras, ele descreve as principais funcionalidades do sistema e a interação dessas funcionalidades com os usuários do mesmo sistema.

•Nesse diagrama não nos aprofundamos em detalhes técnicos que dizem como o sistema faz.

Page 39: Aula desesenvolvimento segunda semana

EXERCITANDO...Desenvolver um diagrama de caso de uso, de acordo com as características abaixo:1)Certa agência, possui um atendente onde este é responsável pelo abastecimento de dinheiro ao caixa eletrônico.2)Nesta mesma agência um cliente verifica o saldo da conta3)O cliente solicita extrato4)O cliente realiza saque5)O cliente realiza deposito6)O atendente recolhe o envelope de depósito do cliente

Page 40: Aula desesenvolvimento segunda semana

Análise

O fluxo da Análise tem como objetivos:• modelar de forma precisa os conceitos

relevantes do domínio do problema, identificados a partir do levantamento de requisitos;

• verificar a qualidade dos requisitos identificados;

• detalhar esses requisitos o suficiente para que atinjam o nível de detalhe adequado aos desenvolvedores.

Page 41: Aula desesenvolvimento segunda semana

•Quando se usa um Modelo de Análise orientado a objetos, os requisitos funcionais são tipicamente descritos e verificados através dos seguintes recursos de notação:

Page 42: Aula desesenvolvimento segunda semana

• Os casos de uso descrevem o comportamento esperado do produto.

• Os diagramas de casos de uso descrevem os relacionamentos dos casos de uso entre si e com os atores.

• As classes representam os conceitos do mundo da aplicação que sejam relevantes para a descrição mais precisa dos requisitos, exibindo os relacionamentos entre essas.

• As realizações dos casos de uso mostram como objetos das classes descritas colaboram entre si para realizar os principais roteiros que podem ser percorridos dentro de cada caso de uso.

Page 43: Aula desesenvolvimento segunda semana

UML – Diagrama de Classes

• Introdução – Diagrama de classes• Elementos do diagrama de classes• Exemplo: Sistema de matrícula

Page 44: Aula desesenvolvimento segunda semana

Introdução - Diagrama de Classes

• Mostra um conjunto de classes e seus relacionamentos.

• É o diagrama central da modelagem orientada a objetos.

Page 45: Aula desesenvolvimento segunda semana
Page 46: Aula desesenvolvimento segunda semana

Elementos – Diagrama de Classes

Elementos de um diagrama de classes :Classes Relacionamentos Associação •Agregação • Composição Generalização Dependência

Page 47: Aula desesenvolvimento segunda semana

Elementos – Diagrama de Classes

Elementos de um diagrama de classes :Classes RelacionamentosAssociação •Agregação • Composição Generalização Dependência

Page 48: Aula desesenvolvimento segunda semana

Elementos – Diagrama de ClassesClasses• Graficamente, as classes são

representadas por retângulos incluindo nome, atributos e métodos.

Page 49: Aula desesenvolvimento segunda semana

• Devem receber nomes de acordo com o vocabulário do domínio do problema.

• É comum adotar um padrão para nomeá-las

Ex: todos os nomes de classes serão substantivos singulares com a primeira letra maiúscula

Page 50: Aula desesenvolvimento segunda semana

Elementos – Diagrama de ClassesClasses Atributos Representam o conjunto de

características (estado) dos objetos daquela classe

Page 51: Aula desesenvolvimento segunda semana

Visibilidade: + público: visível em qualquer classe de

qualquer pacote # protegido: visível para classes do

mesmo pacote - privado: visível somente para classe

Exemplo: + nome : String

Page 52: Aula desesenvolvimento segunda semana

Elementos – Diagrama de Classes

ClassesMétodos – Representam o conjunto de operações

(comportamento) que a classe fornece Visibilidade:+ público: visível em qualquer classe de

qualquer pacote# protegido: visível para classes do mesmo

pacote- privado: visível somente para classe

Page 53: Aula desesenvolvimento segunda semana

Elementos – Diagrama de Classes

Elementos de um diagrama de classes :Classes Relacionamentos Associação •Agregação • Composição Generalização Dependência

Page 54: Aula desesenvolvimento segunda semana

Elementos – Diagrama de Classes

Relacionamentos•Os relacionamentos possuem:– Nome: descrição dada ao

relacionamento (faz, tem, possui,...)– Sentido de leitura– Navegabilidade: indicada por uma seta

no fim do relacionamento

Page 55: Aula desesenvolvimento segunda semana

– Multiplicidade: 0..1, 0..*, 1, 1..*, 2, 3..7– Tipo: associação (agregação, composição), generalização e dependência– Papéis: desempenhados por classes em um relacionamento

Page 56: Aula desesenvolvimento segunda semana

Relacionamentos

Page 57: Aula desesenvolvimento segunda semana

Relacionamentos

•O cliente sabe quais são seus endereços, mas o endereço não sabe a quais clientes pertence

Page 58: Aula desesenvolvimento segunda semana

Elementos – Diagrama de Classes

Elementos de um diagrama de classes :Classes Relacionamentos Associação •Agregação • Composição Generalização Dependência

Page 59: Aula desesenvolvimento segunda semana

Elementos – Diagrama de Classes

Relacionamentos: - Associação Uma associação é um relacionamento

estrutural que indica que os objetos de uma classe estão vinculados a objetos de outra classe.

Uma associação é representada por uma linha sólida conectando duas classes.

Page 60: Aula desesenvolvimento segunda semana

Associação

Page 61: Aula desesenvolvimento segunda semana

Elementos – Diagrama de Classes

Relacionamentos: Associação Indicadores de multiplicidade: – 1 Exatamente um – 1..* Um ou mais– 0..* Zero ou mais (muitos) – * Zero ou mais (muitos) – 0..1 Zero ou um – m..n Faixa de valores (por exemplo: 4..7)

Page 62: Aula desesenvolvimento segunda semana
Page 63: Aula desesenvolvimento segunda semana

•Relacionamentos: AssociaçãoExemplo:Um Estudante pode ser um aluno de

uma Disciplina eum jogador da Equipe de Futebol

• Cada Disciplina deve ser cursada por no mínimo 1 aluno

• Um aluno pode cursar de 0 até 8 disciplinas

Page 64: Aula desesenvolvimento segunda semana
Page 65: Aula desesenvolvimento segunda semana

Elementos – Diagrama de Classes

Elementos de um diagrama de classes :Classes Relacionamentos Associação •Agregação • Composição Generalização Dependência

Page 66: Aula desesenvolvimento segunda semana

•Relacionamento: Agregação

– É um tipo especial de associação – Utilizada para indicar “todo-parte”

Page 67: Aula desesenvolvimento segunda semana

– um objeto “parte” pode fazer parte de vários objetos “todo”

Page 68: Aula desesenvolvimento segunda semana

Elementos – Diagrama de Classes

Elementos de um diagrama de classes :Classes Relacionamentos Associação •Agregação • Composição Generalização Dependência

Page 69: Aula desesenvolvimento segunda semana

•Relacionamento: Composição

– É uma variante semanticamente mais “forte” da agregação

– Os objetos “parte” só podem pertencer a um único objeto “todo” e têm o seu tempo de vida coincidente com o dele

Page 70: Aula desesenvolvimento segunda semana

Elementos – Diagrama de Classes

Quando o “todo” morre todas as suas “partes” também morrem

Page 71: Aula desesenvolvimento segunda semana

Elementos – Diagrama de Classes

Elementos de um diagrama de classes :Classes Relacionamentos Associação • Agregação • Composição Generalização Dependência

Page 72: Aula desesenvolvimento segunda semana

Elementos – Diagrama de Classes

•Relacionamento: Generalização É um relacionamento entre itens gerais

(superclasses) e itens mais específicos (subclasses)

Page 73: Aula desesenvolvimento segunda semana

Elementos – Diagrama de Classes

Elementos de um diagrama de classes :Classes Relacionamentos Associação •Agregação • Composição Generalização Dependência

Page 74: Aula desesenvolvimento segunda semana

Elementos – Diagrama de Classes

•Relacionamento: Dependência Representa que a alteração de um

objeto (o objeto indepedendente) pode afetar outro objeto (o objeto dependente)

Page 75: Aula desesenvolvimento segunda semana

Elementos – Diagrama de Classes

Obs: o A classe cliente depende de algum

serviço da classe fornecedoro A mudança de estado do fornecedor afeta

o objeto cliente