25/04/2011 professor leomir j. borba- http:professorleomir ... · estruturada x essencial x...
TRANSCRIPT
20/08/2012
25/04/2011 Professor Leomir J. Borba- [email protected] –http:professorleomir.wordpress.com 1
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 1
CIÊNCIA DA COMPUTAÇÃO
DESENVOLVIMENTO DE SISTEMAS
Aula 3
1 20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 2
Agenda
Caracterização da atividade de Análise de Sistemas: conceitos, importância, impactos e desafios;
Contraposição entre as abordagens de Análise: Estruturada, Informação e Objeto.
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 3
Caracterização de Análise de Sistemas
• Análise:
Exame de cada parte de um todo.
Objetivo de conhecer a natureza do problema e as funções que este venha a executar.
• Estrutura:
Reunião das partes ou elementos.
O modo como as partes se relacionam dá ao sistema características próprias.
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 4
A analise estruturada é : Conjunto de técnicas e ferramentas cujo
objetivo é auxiliar na análise e definição de sistemas
Conceito fundamental construção de um modelo do sistema utilizando técnicas gráficas
A metodologia envolve a construção “top-down” do sistema por refinamentos sucessivos
4
20/08/2012
25/04/2011 Professor Leomir J. Borba- [email protected] –http:professorleomir.wordpress.com 2
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 5
A análise estruturada objetiva:
• Facilitar a comunicação entre o usuário,
analistas e projetistas;
• Criar um modelo móvel;
• Produzir uma especificação de sistema rotativa e melhorada;
• Resolver dificuldades etapa por etapa.
5
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 6
Especificando 6
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 7
Finalidade
A análise estruturada tem como finalidade retratar fluxo e o conteúdo das
informações utilizadas pelo sistema, dividir o mesmo em partições funcionais e
comportamentais e ainda descrever a essência daquilo que será construído.
7
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 8
O Analista
• Traços característicos:
Capacidade de compreender conceitos abstratos, reorganizá-los em divisões lógicas e sintetizar "soluções" baseadas em cada divisão.
Capacidade de absorver fatos pertinentes de fontes conflitantes ou confusas.
Capacidade de entender os ambientes do usuário/cliente.
8
20/08/2012
25/04/2011 Professor Leomir J. Borba- [email protected] –http:professorleomir.wordpress.com 3
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 9
9
O analista serve de intermediário entre a comunidade de usuários e a comunidade de programadores
☺ Comunica-se com o
usuário/cliente a fim de
conhecer as características do
ambiente existente.
☺ Convoca o pessoal de
desenvolvimento durante as
tarefas de avaliação e síntese,
de forma que as características
do software sejam
corretamente definidas.
O analista geralmente é o responsável pelo desenvolvimento de uma
Especificação de Requisitos de Software e participa de todas as revisões.
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 10
Entrevistas 10
Motivos:
● Necessidade de coletar informações sobre o comportamento de um sistema
atual ou sobre requisitos de um novo sistema;
● Necessidade de verificar a própria compreensão, como analista de sistemas, do
comportamento de um sistema atual ou dos requisitos de um novo sistema.
● Necessidade de coletar informações sobre o sistema atual para execução de
estudos de custo-benefício.
O analista procede diversas
entrevistas com usuários, gerentes,
programadores que fazem a manutenção
de um sistema já existente, entre outras
pessoas.
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 11
Problemas fundamentais
• Apesar de parecer um processo simples, muitos problemas podem ocorrer em uma entrevista.
• Em muitos projetos de alta tecnologia, a maioria dos problemas difíceis não envolvem hardware ou software, mas sim o “peopleware”, ou seja, nas pessoas.
11
É bom lembrar que as técnicas de análise estruturada de sistemas estão em constante evolução, e portanto o futuro analista de sistemas não deve decorá-las, mas entender a filosofia de trabalho.
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 12
Problemas fundamentais
• O analista acha difícil aprender o bastante sobre a empresa para conseguir determinar os requisitos do sistema através dos olhos do usuário.
• Os usuários ainda não conhecem o suficiente sobre PD para saberem o que é, ou não viável. Em geral, a propaganda a respeito dos computadores não proporciona às pessoas idéias específicas ou precisas sobre o que tais máquinas podem ou não fazer.
12
20/08/2012
25/04/2011 Professor Leomir J. Borba- [email protected] –http:professorleomir.wordpress.com 4
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 13
Problemas fundamentais
• O documento que define os detalhes de um novo sistema (projeto geral) forma um contrato entre o usuário e o grupo de desenvolvimento. Apesar de muitas vezes ser impossível aos usuários entenderem, por causa de seu tamanho e dos conceitos técnicos associados a ele.
13
Se o documento da especificação for escrito de forma que os usuários entendam, poderá não ser muito útil para os projetistas e programadores que irão construir o sistema.
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 14
Conclusões
A análise estruturada de sistemas é uma técnica que consiste em construir,
graficamente, um modelo lógico para o sistema de informações gerenciais.
14
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 15 15
Benefícios Problemas
Os usuários obtém uma idéia mais clara do sistema.
O esforço, a formalidade e o grau de detalhe necessários.
A apresentação em termos de fluxo lógico consegue mostrar
mal-entendidos e pontos controversos.
Tem havido certa preocupação por parte dos programadores .
As interfaces entre o novo sistema e outros já existentes são
mostrados de modo bem mais claro.
Orientação dos usuários e treinamento dos analistas é
necessário.
O uso de dicionário de dados para guardar os itens do glossário
do projeto economiza tempo.
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 16
Importante
A análise estruturada dever ser usada apenas para problemas pequenos e
simples.
• Para sistemas maiores e mais complexos, pode ser usada para esboçar uma visão de alto nível do sistema.
16
20/08/2012
25/04/2011 Professor Leomir J. Borba- [email protected] –http:professorleomir.wordpress.com 5
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 17
Analise Orientada a Objeto
• Introdução
Cenário
• Mudança do enfoque das funções para os dados
• Preocupação em modelar de forma mais detalhada o sistema
• Análise mais próxima da realidade
• Facilidade na comunicação com o usuário
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 18
Analise Orientada a Objeto
• Objetos como entidades do mundo real • Objetos com estrutura e comportamento e que se comunicam • Dificuldades em fazer alterações nas estruturas de dados nas
abordagens tradicionais • “Se eu alterar a definição desse dado, quais programas serão
afetados?” • Trabalha com conceitos já conhecidos - Modularidade,
Abstração, Encapsulamento, Mascarar informações, etc
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 19
Analise Orientada a Objeto
• Orientação a objetos apesar de antiga não era utilizada por falta de pessoas treinadas, interesse em manter a cultura adquirida, ferramentas imaturas. Isso começa a se resolver.
• O mundo real é composto por objetos. Cada objeto tem propriedades e
comportamentos. Então por que não desenvolver programas que simulem no computador os objetos do mundo real com suas propriedades e comportamentos?
• Segundo Yourdon, “Um sistema construído usando um método Orientado a
Objetos é aquele cujos componentes são partes encapsuladas de dados e funções, que podem herdar atributos e comportamentos de outros componentes da mesma natureza, e cujos componentes comunicam-se entre si por meio de mensagens.”
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 20
Analise Orientada a Objeto
• Objetivo
– Encontrar os objetos, organizá-los, descrever como interagem através de mensagens, definir operações de seus comportamentos.
20/08/2012
25/04/2011 Professor Leomir J. Borba- [email protected] –http:professorleomir.wordpress.com 6
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 21
Estruturada x Essencial x Orientada a Objeto
• Nos métodos tradicionais de análise, o comportamento do sistema e seus dados eram considerados separadamente. Com orientação a objetos, comportamento e dados são integrados, assim encapsulando detalhes internos de um objeto dos demais.
Análise
Estruturada e Essencial Orientada a Objetos
Enfoque
Conjunto de programas que executam processos sobre dados Conjunto de “entidades” que têm características e comportamentos próprios
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 22
Analise Orientada a Objeto • Características
– Concentra-se nos aspectos essenciais do objeto sem detalhamento, focando em suas características e o que ele faz;
– Impede que um sistema se torne tão interdependente que uma pequena
alteração ou implementação resulte em grandes alterações em sua estrutura; – Combina estrutura (dados) e comportamento (funções) em um único objeto; – Compartilha elementos estruturais e de comportamento com objetos de
níveis inferiores; – Enfatiza a estrutura de objetos ao invés da estrutura de procedimentos, ou
seja, o que o objeto é e não como ele é utilizado.
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 23
Analise Orientada a Objeto
• Por que usar Orientação a Objetos? – Atualmente temos ferramentas completas para sua utilização (integrando
especificação e implementação)
– Praticamente todas as ferramentas novas de programação permitem suporte a sua utilização
– Qualidade melhor do software (se usada corretamente)
– Produtividade em função do reuso
– Produção de códigos mais fáceis de serem entendidos
– Adequada para a construção de sistemas distribuídos e para aplicações voltadas a Internet
– Permite acesso controlado às informações
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 24
Analise Orientada a Objeto
• Dificuldades
– Usuários não pensam seus problemas de forma orientada a objetos
– Requisitos não são orientados a objetos
20/08/2012
25/04/2011 Professor Leomir J. Borba- [email protected] –http:professorleomir.wordpress.com 7
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 25
Analise Orientada a Objeto
• Conceitos – Objeto: Desde a mais tenra idade formamos conceitos. Cada
conceito é uma idéia ou um entendimento pessoal que temos de nosso mundo. Os conceitos que adquirimos nos permitem dar um sentido e raciocinar sobre as coisas de nosso mundo. Essas coisas as quais nossos conceitos se aplicam são denominados objetos. Um objeto pode ser real ou abstrato, ex.:
Uma fatura, uma organização, um avião...
– Classe: é a representação do objetos com seus atributos e métodos.
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 26
Analise Orientada a Objeto
• Conceitos
– Atributos → são características que descrevem o objeto.
Ex: Objeto: cão → possui nome, idade, peso,cor dos olhos, comprimento dos pêlos, cor dos pelos, etc.
– Métodos ou serviços → as ações que um objeto pode executar.
Ex: latir, comer,sentar, dormir ,etc.
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 27
Analise Orientada a Objeto
• Conceitos – Abstração →significa que, só deve ser representado aquilo que vai ser
usado.Pelo princípio da abstração nos objetos são representadas somente as características que são relevantes para o problema em questão
Ex: Cor dos olhos(toda pessoa tem) – não é relevante para um sistema de folha de pagamento.
– Encapsulamento →os dados e os processos que tratam esses dados estão “ encapsulados” numa única entidade. Os objetos agem como uma “caixa preta”, você utiliza sem precisar saber como ele funciona internamente.
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 28
Analise Orientada a Objeto
• Conceitos – Hierarquia de classes – classe que tem características comuns e que
podem fazer parte de uma classe (categoria) maior.
– Ex.
mamíferos
cães gatos
20/08/2012
25/04/2011 Professor Leomir J. Borba- [email protected] –http:professorleomir.wordpress.com 8
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 29
Analise Orientada a Objeto
• Conceitos – Classes ancestrais – classes das quais as outras
dependem.
– Classes descendentes – as classes originadas a partir de outra.
Animais
Aves Mamíferos Peixes Répteis
Caninos Felinos
cães Lobos Gatos Panteras
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 30
Analise Orientada a Objeto • Conceitos
– Classes Puras ou abstratas – são classes cujos objetos nunca são instanciados diretamente, mas sempre por uma classe descendente dela.
– Herança – significa que todos os atributos e métodos programados no ancestral já estarão automaticamente presentes em seus descendentes sem necessidade de reescrevê-los.
– Ex: uma pessoa pode ser um estudante ou um professor,sendo assim todos os atributos e métodos programados na classe pessoa automaticamente passarão para as classes estudante e professor.
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 31
Analise Orientada a Objeto
Automóvel
Automóvel
esportivo
Porsche
Generalização
especificação
Herança
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 32
Analise Orientada a Objeto
• Conceitos – Polimorfismo – é o princípio relacionado com as diferentes formas de
um objeto.Operacionalmente, o polimorfismo pode ser visto conforme o exemplo abaixo, onde se pode instanciar o objeto janela de várias formas:
Janela ( )
Janela ( 1 x 2, 2)
Janela ( 1 x 2, 2, azul)
20/08/2012
25/04/2011 Professor Leomir J. Borba- [email protected] –http:professorleomir.wordpress.com 9
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 33
Analise Orientada a Objeto
• Conceitos – Agregação – é um mecanismo que permite a construção de uma classe
agregada a partir de outras classes componentes. Ex. Casa
– Associação – é usada para agrupar certos objetos que ocorrem em algum ponto no tempo ou sob circunstâncias similares.Na AOO , a associação é modelada através de uma conexão de ocorrências. Uma conexão de ocorrência é um relacionamento que um objeto precisa ter com outro(s) objeto (s), para cumprir suas responsabilidades.Ex:
faz Estudante teste
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 34
Analise Orientada a Objeto • Identificando Classes e Objetos
– Os objetos modelam quase todos os aspectos identificáveis do domínio do problema: entidades externas, coisas,ocorrências,papéis, unidades organizacionais, lugares e estruturas; todos podem ser representados como objetos. Os objetos podem ser:
– Entidades externas: produzem ou consomem informações a serem usadas por um sistema baseado em computador.
– Coisas : elementos que fazem parte do domínio da informação do problema, tais como relatórios, cartas
– Papéis: desempenhados por elementos que interagem com o sistema. Ex.: vendedor, cliente,gerente...
– Unidades organizacionais: pertencem a organização.Ex: equipe
– Lugares: auxiliam na definição do contexto: Ex. piso da fábrica
– Estruturas: definem classes relacionadas com o sistema: Ex.: veículos, computadores, sensores....
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 35
Analise Orientada a Objeto
• Identificando objetos
– Lembre-se:Objeto é um conceito, uma abstração ou uma coisa, com limites e significados bem definidos, em relação ao problema considerado.
– Um objeto é geralmente identificado por um substantivo.
– Um objeto contém estrutura e comportamento.
– Cada objeto tem sua identidade
– Dois objetos são distintos, mesmo que eles apresentem as mesmas características.
» Ex: 1 dezena de automóveis Astra
» Cada automóvel é um objeto!
» Todos tem a mesma característica!
– Classes são fábricas de objetos...
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 36
Analise Orientada a Objeto
• Comunicação entre objetos
– Mensagens:
• Elemento usado para prover a comunicação entre objetos
• Definem:
– O nome do serviço requisitado
– A informação necessária para a execução do serviço
– O nome do requisitante
• Na prática, mensagens são implementadas como ativações de uma função definida no objeto chamado, onde:
– Nome é o nome da função.
– A informação é a lista de parâmetros.
– Requisitante é o objeto que realizou a chamada.
20/08/2012
25/04/2011 Professor Leomir J. Borba- [email protected] –http:professorleomir.wordpress.com 10
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 37
A análise, o projeto e a programação são atividades distintas
• A análise OO se preocupa com a modelagem dos objetos para o domínio da aplicação.
• O projeto OO se preocupa com o desenvolvimento de um modelo de sistema que implemente os requisitos definidos pela AOO.
• A programação OO se preocupa com a implementação do Projeto OO usando uma linguagem de programação OO.
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 38
Analise Orientada a Objeto
• Vantagens – Fornece regras precisas para a modularização do sistema.
– Desenvolvimento de uma arquitetura mais estável, uma vez que se estrutura com base no modelo de dados utilizado, o qual apresenta pouca vulnerabilidade a mudanças na funcionalidade do sistema.
– Alto grau de reusabilidade das rotinas desenvolvidas.
– Maior facilidade de transição da fase de análise para a fase de projeto.
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 39
Analise Orientada a Objeto • Prototipação
– As abordagens orientadas a objeto fazem protótipos mais flexíveis e facilmente automatizáveis.
– O OOD e a prototipação têm vínculos em comum pois; é uma maneira natural de trabalhar, experimenta-se a interface humana, para a clarificação dos requisitos procurados, para a praticidade do projeto, para a entrega, funcionalmente, tão cedo quanto possível.
20/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 40
Bibliografia BIBLIOGRAFIA BÁSICA
1 GUEDES, Gilleanes T.A. UML 2: Uma Abordagem Prática. 1ª Edição. São Paulo: Novatec, 2009.
2
WAZLAWICK, Raul Sidnei. Análise e Projeto de Sistemas de Informação Orientados a Objetos. 2ª
Edição. Rio de Janeiro: Campus, 2010.
3
WEST, David; MCLAUGHLIN, Brett; POLLICE, Gary. Use a cabeça Análise & Projeto Orientado ao
Objeto. 1ª Edição. Rio de Janeiro: Alta Books, 2007.
BIBLIOGRAFIA COMPLEMENTAR
4
ARAUJO, Ricardo; LIMA, Cardoso André. UML Aplicada: Da teoria à implementação. 1ª Edição. Rio
de Janeiro: Ciência Moderna, 2007.
5 BOOCH, Grady; RUMBAUGH, James;, JACOBSON, Ivar. UML: Guia do Usuário. 1ª Edição. Rio de
Janeiro: Campus, 2006.
6
LARMAN, Craig. Utilizando UML e padrões: Uma introdução à análise e projeto orientados a
objetos e ao desenvolvimento iterativo. 3ª Edição. Porto Alegre: Bookman, 2007.
7
PAULA FILHO, Wilson de Pádua. Engenharia de Software: Fundamentos, métodos e padrões. 3ª
Edição. Rio de Janeiro: LTC, 2009.
8 SILVA, Nelson Peres da. Análise e Estruturas de Sistemas de Informação. 1ª Edição. São Paulo:
Érica, 2007.