Você está na página 1de 43

Análise e Projeto de Sistemas

Introdução

Profa. Daniela Remião de Macedo


daniela.remiao@restinga.ifrs.edu.br
Análise e Projeto de Sistemas
Ementa: Introdução à análise e projeto de sistemas. Caracterização e aplicação de
metodologias e ferramentas de modelagem de sistemas orientados a objetos. Apresentação e
aplicação de uma metodologia desenvolvimento de sistemas de software.

Bibliografia Básica:
BOOCH; RUMBAUGH; JACOBSON. UML: Guia do Usuário. Trad. da 2a. ed. Campus, 2006.
LARMAN. Utilizando UML e Padrões: Uma Introdução à Análise e ao Projeto Orientados a
Objetos. 3a. ed. Bookman, 2007.
PRESSMAN, R.S. Engenharia de Software. 5a ed. Rio de Janeiro: McGraw-Hill, 2002.
Bibliografia Complementar:
BEZERRA, E.. Princípios de Análise e Projetos de Sistemas com UML. Campus, 2006.
BRAUDE, E. Projeto de Software: da Programação à Arquitetura. Porto Alegre: Bookman,
2005.
FOWLER, M. UML essencial: um breve guia para a linguagem-padrão de modelagem de
objetos. 3ª ed. Porto Alegre: Bookman, 2005.
SOMMERVILLE, Ian. Engenharia de software. São Paulo : Pearson Prentice Hall, 2011.
WAZLAWICK, R. S.. Análises e Projetos de Sistemas de Informação Orientados a
Objetos. Campus, 2010.
O problema clássico
O problema da Pedra
• Clientes nos dá a seguinte missão: “Traga-me uma
pedra”.
• Quando você entrega a pedra....

... o cliente diz: “Sim, mas ..., na verdade ..., o que eu


queria era uma pequena pedra azul”.
O problema da Pedra
• Você traz a pequena pedra azul,

... o cliente diz: “Sim, mas ..., na verdade ..., o que


eu realmente queria era uma pequena pedra
esférica e azul”.
O problema da Pedra

• Quando você lhe entrega uma pequena pedra


esférica e azul, ...

... o cliente diz: “Sim, mas ..., na verdade ..., o


que eu realmente queria era uma pequena
pedra esférica de mármore azul”.
O problema da Pedra

• Quando você lhe entrega uma pequena pedra


esférica de mármore azul, ...

... o cliente diz: “Era isso que eu queria”.


O que aconteceu?

1 2 3 4 t

• Talvez o cliente mudou o desejo sobre o que queria.


• Porém ele está convencido de que expressou seus desejos claramente.

– Mas na verdade,

Foi o desenvolvedor que não entendeu!


3
4
Engenharia de Software

8
Ciclo de Vida

Refere-se ao processo de compreensão de um


Sistemas de Informação que pode suprir as
necessidades da empresa, projetar o sistema,
construí-lo e entregá-lo aos usuários (Dennis,
2012).
Ciclo de Vida

O ciclo de vida do software é definido pelo seu processo de


l

desenvolvimento que inclui desde a concepção de ideias até


a descontinuidade do produto de software (ISO 12207,
1997).

Durante o ciclo de vida são executados vários processos, no


l

qual, cada um tem um objetivo claro a ser alcançado.

Os ciclos de vida são categorizados pela definição de uma


l

sequencia de atividades pré-definidas, que têm como


objetivo o desenvolvimento ou a manutenção de software.
l
Ciclo de Vida

Modelos de ciclo de vida:


l

 O modelo Cascata;
 Desenvolvimento Evolucionário;
 Desenvolvimento Formal de Sistemas;
 Desenvolvimento Orientado a reuso;
 Desenvolvimento Incremental;
 Desenvolvimento Espiral.
Fases do Ciclo de Vida

 Análise
 Responde a perguntas:
 Quem utilizará o sistema?
 O que o sistema fará?
 Onde e quando o sistema será utilizado?
Fases do Ciclo de Vida

Fase Etapa Técnica Resultado


Análise (Quem, Desenvolver Automação do Processo de Proposta do Sistema
o quê, quando, Estratégia de Negócio;
onde Análise; Melhoramento d Processo de
será o sistema?) Determinar Negócio;
Requisitos da Reengenharia do Processo de
Empresa; Criar Negócio;
Proposta do Casosde Uso; Entrevistas; Definição de Requisitos
Sistema Modelar Processo Questionários;
Modelar Dados Análise de Documentos;
Observação;
Análise de Casode Uso; Casosde Uso Modelos de
Diagramação; Modelagem Processos
E-R; Normalização;
Mapeamento Objeto Relacional Modelos de Dados
O que significa Análise?
– Separação de um todo em seus elementos ou partes
componentes.
– Estudo pormenorizado de cada parte de um todo,
para conhecer melhor sua natureza, funções, relações
causas.

• Portanto, o trabalho de análise é desenvolver


estudos que geralmente partem de problemas
complexos, na forma de sistemas, e que são
melhor compreendidos quando são separados
em partes menores.
Análise
• A análise enfatiza a investigação do problema.
• O objetivo da análise é levar o analista a
investigar e a descobrir.
• Pode-se dizer que o resultado da análise é o
enunciado do problema, e que o projeto será a
sua resolução.

Problemas mal enunciados podem até ser


resolvidos, mas a solução não corresponderá às
expectativas.
Análise
• A qualidade do processo de análise é
importante porque um erro de concepção
resolvido na fase de análise tem um custo; na
fase de projeto tem um custo maior; na fase
de implementação maior ainda, e na fase de
implantação do sistema tem um custo muito
alto.
Mais da metade dos projetos de software que estão atualmente em
andamento, já ultrapassaram o custo e o cronograma.
25% a 33% desses projetos serão cancelados antes que estejam
finalizados. $$$$$
Análise
• A meta do trabalho de análise é identificar
O QUE deve ser feito. Os estágios da análise
de sistemas envolvem determinar:
– as necessidades específicas de informações: os
requisitos do software;
– as funções de processamento de informações
requeridas por cada atividade do sistema
(entrada, processamento, saída, armazenamento
e controle)
Fases do Ciclo de Vida

 Projeto
 Decide como o sistema operará, em termos de
infraestrutura de:
 Hardware, software e rede;
 Interface de usuário – formulário e relatórios utilizados;
 Programas, bancos de dados e arquivos específicos que serão
utilizados.
Fases do Ciclo de Vida
Fase Etapa Técnica Resultado
Projeto Projetar Sistema Seleção do Projeto; Modelos de processo
(Como o sistema Físico; Diagramação; físico;
funcionará?) Projetar Modelagem de Relacionamento de Modelo de Dados
Arquitetura Entidades; físico; Especificação
Projetar Interface; Projeto Arquitetural; do Sistema;
Especificação do Projetar Banco de Seleção de Hardware e Software; Relatório de
Sistema Dados e Arquivos; Cenário de Uso; Arquitetura;
Projetar Programas. Estrutura de Interface; Padrões de Especificação de
Interface; Protótipo de Interface; Hardware e Software;
Avaliação de Interface; Seleção do Projeto de Interface
formato de dados; Ajuste de
desempenho; Especificação do Projeto de
programa. Armazenamento de
Dados;

Projeto do Programa
O que significa Projeto?

– Idéia que se forma de executar ou realizar algo no


futuro.
– Empreendimento a ser realizado dentro de
determinado esquema.

• Portanto, o projeto do software esta


relacionado às ações a serem realizadas para
atingir os objetivos levantados na análise.
Projeto

• A fase de projeto enfatiza a proposta de uma


solução que atenda os requisitos da análise.

• Se a analise é uma investigação para tentar


descobrir o que o cliente quer, o projeto
consiste em propor uma solução com base no
conhecimento adquirido na análise.
O que significa Sistema?

• Conjunto de componentes inter-relacionados


que coletam, armazenam,recuperam,
processam e distribuem informações
destinadas a apoiar a tomada de decisão, a
coordenação, o planejamento e o controle de
uma organização.
Fases do Ciclo de Vida

8
Fases do Ciclo de Vida

8
Análise e Projeto Orientado a Objetos

• Desenvolver habilidades básicas usadas na


A/POO essenciais para a criação de um
software bem projetado, robusto e
manutenível, usando tecnologias e
linguagens orientadas a objetos.
• UML – Linguagem de Modelagem Unificada:
uma notação padrão de diagramação (não é
A/POO nem um método!)
• Padrões de projeto
Modelagem de Sistemas de
Informação

Planejamento

Projeto

MODELO
Modelo

Razões para utilizar modelos (BEZERRA, 2007):


◦ Gerenciamento da complexidade
◦ Comunicação entre pessoas envolvidas
◦ Redução dos custos no desenvolvimento
◦ Previsão do comportamento futuro do sistema
Modelo

• Gerenciamento da complexidade
◦ Utilização de modelos onde cada qual descreve uma
perspectiva do sistema.
◦ Através dos modelos é possível realizar estudos e prever
comportamentos.
◦ Modelos baseiam-se no “Princípio da Abstração”.
Modelo

Redução dos custos no desenvolvimento


◦ Correções a erros são menos custosas quando detectada
e realizada na fase inicial.
◦ Modelos de sistemas são mais baratos de construir que
os sistemas. Consequentemente, erros identificados
sobre modelos tem um impacto menos desastroso.
Modelo

Representados por diagramas


◦ Os desenhos gráficos que modelam os sistemas
apresentam uma representação concisa do sistema.

◦ A modelagem de sistemas de informação 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 várias
perspectivas diferentes e complementares.
Análise e Projeto Orientado a Objetos

“Possuir um martelo não torna ninguém um


arquiteto.” (provérbio)

Saber pensar em termos de objetos é crucial!


Análise e Projeto Orientado a Objetos

POO: princípios e padrões


• Como as responsabilidades devem ser
atribuidas a classes de objetos?
• Como os objetos devem interagir?
• Quais classes devem fazer o quê?

POO: projeto guiado por responsabilidades!


Análise e Projeto Orientado a Objetos

POO: princípios e padrões


• Padrões: soluções consagradas para problemas
de projeto podem (e devem) ser expressas na
forma de princípios de melhores práticas.
• Fórmulas do tipo problema-solução,
devidamente nomeadas, que codificam
principios exemplares de projeto.
• Aprendizado mais rápido e uso eficiente desses
idiomas fundamnetais do POO.
Análise e Projeto Orientado a Objetos

Uma habilidade crucial no desenvolviemnto OO


é atribuir, habilmente, responsabilidades aos
objetos de software.

• Robustez
• Facilidade de manutenção
• Reusabilidade dos componentes de software
UML

 Linguagem de Modelagem Unificada;


 A UML não é A/POO é apenas uma notação
padrão de diagramação;
POO – Princípios e Padrões

 Como as responsabilidades devem ser atribuídas as


classes de objetos?
 Como os objetos devem interagir?
 Quais classes devem fazer o que?
 Para responder essas questões vamos trabalhar sobre a
clássica metáfora de POO

Projeto guiado por responsabilidades!


Desenvolvimento Iterativo

Iterativo - Diz-se do processo que se repete


diversas vezes para se chegar a um resultado
e a cada vez gera um resultado parcial que
será usado na vez seguinte.
(http://pt.wiktionary.org/wiki/iterativo)
Desenvolvimento Iterativo

• Como um desenvolvedor ou uma equipe de


desenvolvimento deve proceder para desenvolver um
software, considerando as inúmeras atividades possíveis para
as etapas de elicitar, analisar, projetar e implementar de um
sistema?
Processo de Desenvolvimento

Éum conjunto de atividades, e resultados


associados, parcialmente ordenadas, com a
finalidade de obter um produto de software.
SOMMERVILLE, 2003
Tópicos e habilidades

Você também pode gostar