Buscar

REALIZAR A ANÁLISE DA SOLUÇÃO

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ANÁLISE E 
PROJETO DE 
SISTEMAS
Cleverson Lopes Ledur
Realizar análise da solução
Objetivos de aprendizagem
Ao final deste capítulo, você deve apresentar os seguintes aprendizados:
 � Identificar o problema e realizar a identificação das classes envolvidas.
 � Elaborar a análise do problema.
 � Descrever a análise da solução.
Introdução
A análise de um problema e criação de uma solução são tarefas essenciais 
dentro de um projeto de software. Neste contexto, existem dois tipos de 
análise, uma clássica que atualmente é pouco utilizada, e outra abordagem 
orientada a objetos. A análise orientada a objetos é amplamente utilizada 
atualmente, por facilitar a criação, testes e manutenção do software. Mas 
antes de qualquer análise, precisamos definir os problemas, identificar 
as causas e efeitos. 
Também é necessário verificar com o cliente se o problema é real e 
se deve ser solucionado. Saber identificar os problemas e transformá-los 
em uma solução de software não é uma tarefa trivial. 
Neste texto, você vai percorrer conceitos e técnicas utilizadas para 
identificar problemas, identificar as classes de um sistema e também criar 
a documentação de uma solução de software. Vai entender a análise 
orientada a objetos e também conhecer algumas diferenças entre os 
métodos tradicionais e os orientados a objetos na etapa de análise. 
O problema e suas classes
Nesta seção, serão abordados dois conceitos que andam juntos no momento 
de análise de um problema: 
 � Identificação de problemas: aqui, você vai ver quais os passos e ques-
tionamentos devem ser feitos para realizar esta identificação durante 
um projeto.
 � Identificação de classes: aqui, você vai aprender como realizar a análise 
orientada de objetos para tentar extrair as classes, atributos e outras 
informações importantes para o andamento do projeto.
Identificar o problema
A identificação de um problema é muito importante durante a análise de uma 
solução. É feito a identificação do problema para que ao final do projeto, a 
solução realmente resolva o problema do cliente, e não apenas parcialmente. 
Pode ser definido o processo de identificação do problema de um projeto de 
software com os seguintes itens:
1. Identificação dos Stakeholders.
2. Obter concordância em relação ao problema que é identificado.
3. Identificar restrições do projeto.
4. Elaborar documento de visão.
Dessa forma, é possível ter certeza que durante a criação de uma solução, 
o projeto estará atacando realmente o problema que os clientes possuem. 
Portanto, deve-se realizar as seguintes perguntas para entender melhor e 
identificar o problema:
 � Qual é o real problema?
 � O que pode inviabilizar a solução?
 � Quais as possíveis soluções?
Após esses questionamentos, é importante alinhar o que foi levantado com 
o cliente. Em alguns casos, é necessário fazer o levantamento dos problemas 
que, para o cliente, não são prioridade ou não influenciam o negócio, de forma 
que a solução não é interessante. Por esse motivo, validar com o cliente é 
essencial antes de avançar na solução.
2Realizar análise da solução
Identificar as classes
Supondo que já se tem um problema para ser resolvido, pode-se identificar as 
classes desse problema para criar a solução no decorrer do projeto. Para isso, 
é utilizada a análise orientada a objetos. Ela consiste em realizar a definição 
das classes (objetos) que representam o problema que deverá ser resolvido, 
bem como o modo que as classes relacionam e interagem entre si (SCHACH, 
2009). A análise orientada a objetos também representa o funcionamento 
interno dos objetos (por meio dos atributos e operações) e os mecanismos de 
comunicação que permitem o trabalho mútuo. Por isso, ao final dessa análise, é 
interessante fazer uma descrição das características das classes que descrevem 
um sistema ou um produto, podendo ser estática ou dinâmica.
Assim, a análise orientada a objetos pode ser explicada através de alguns 
passos. Basicamente, deve-se seguir os seguintes itens para a sua realização:
1. Descrição de casos de uso: uma descrição baseada no cenário de como 
atores (pessoas, máquinas e outros sistemas) interagem com o produto.
2. Criação de um modelo de análise orientada a objetos: é composto 
de representações gráficas ou baseado em uma linguagem que defina 
os atributos, relacionamento e comportamento das classes, bem como 
a comunicação interclasse e um gráfico do comportamento da classe 
ao longo do tempo. 
3. Definição de todas as classes que são relevantes para o problema 
a ser resolvido: as operações e os atributos associados às classes, as 
relações entre elas e o comportamento exibido por elas.
A análise orientada a objetos divide a solução em diversos modelos e 
partes que representam diferentes visões (PRESSMAN; MAXIM, 2016). Este 
comportamento é obtido baseado nos seguintes princípios:
 � O domínio da informação é modelado.
 � A função é descrita.
 � O comportamento é representado.
 � Os modelos de dado, funcional e comportamental são divididos para 
expor maiores detalhes.
 � Os primeiros modelos representam a essência do problema, enquanto 
os últimos modelos fornecem detalhes de implementação.
Realizar análise da solução3
Para a identificação das classes, deve-se seguir os seguintes passos:
1. Deduzir os requisitos do cliente para o sistema.
2. Identificar cenários de casos de uso.
3. Selecionar classes e objetos por meio de requisitos básicos, como diretriz.
4. Identificar atributos e operações para cada objeto do sistema.
5. Definir estruturas e hierarquias que organizem as classes.
6. Construir um modelo objeto-relacionamento.
7. Construir um modelo de comportamento de objeto.
8. Revisar o modelo de análise OO com base nos casos de uso ou cenários.
Uma abordagem bastante utilizada na identificação das classes de um 
sistema é, a partir de uma descrição de módulo ou do sistema, fazer a extração 
dos substantivos. Essa abordagem é conhecida como o método de extração 
de substantivos (SCHACH, 2009). Analise a seguinte descrição de sistema:
“O RH da empresa realiza a gestão de funcionários e visitantes. Diariamente, 
são realizadas análises de candidatos para possíveis vagas em aberto. 
Também, é realizada a gerência do ponto, ou seja, o horário de entrada 
e saída dos funcionários. Ainda, no dia 20 de cada mês, é realizado o 
cálculo de salário dos funcionários.”
Nessa descrição, já se consegue extrair alguns substantivos que não são 
externos ao escopo e nem abstratos (não representam algo físico), são eles: 
funcionário, visitante, candidato, horário e salário. Esses substantivos, possi-
velmente, serão as classes de um sistema que faria a gestão deste RH. Por isso, 
deve-se ter cuidado nesta técnica para não utilizar substantivos que poderiam 
ser atributos, como classes.
Análise do problema
Assim que um problema é identificado, se deve realizar a análise e modela-
gem da solução. Dentro do ciclo de vida de software, é chamada essa etapa 
de análise. O objetivo de qualquer atividade de análise no ciclo de vida do 
software é criar um modelo dos requisitos funcionais do sistema que seja 
independente das restrições de implementação, ou seja, cria-se uma descrição 
do sistema sem entrar em detalhes técnicos de implementação (DENNIS; 
WIXOM; TEGARDEN, 2015). 
4Realizar análise da solução
A principal diferença entre a análise orientada a objetos e outras formas de 
análise é que, pela abordagem orientada a objetos, são organizados requisitos 
em torno de objetos, que integram comportamentos (processos) e estados 
(dados) modelados por objetos do mundo real, com os quais o sistema interage. 
Em outras metodologias de análise tradicionais, os dois aspectos: processos 
e dados são considerados separadamente. Por exemplo, os dados podem ser 
modelados por diagramas ER e comportamentos por fluxogramas ou gráficos 
de estrutura.
As tarefas primárias na análise orientada a objetos (OOA) são:
1. Encontrar os objetos.
2. Organizar os objetos.
3. Descrever como os objetos interagem.4. Estabelecer o comportamento dos objetos.
5. Definir o interior dos objetos
Os modelos comuns, usados em OOA, são casos de uso e modelos de objetos. 
Os casos de uso descrevem cenários para funções de domínio padrão que o 
sistema deve realizar. Os modelos de objetos descrevem os nomes, as relações 
de classe, as operações e as propriedades dos objetos principais. Mockups ou 
protótipos de interface de usuário também podem ser criados nesta fase de 
análise, mas são mais comuns no projeto do sistema.
Ferramentas e abordagens
A decomposição orientada a objetos é o conceito sobre o qual a análise orientada 
a objetos e o projeto orientado a objetos se baseiam. Existem três ferramentas 
principais usadas em técnicas de análise e projeto orientado a objetos:
 � Diagramas / modelos de classes.
 � Diagramas de objetos.
 � Diagramas de estado de objetos.
Os diagramas de classes são usados para modelar as abstrações de chaves 
no domínio do problema e as relações entre si. Já os diagramas de objetos são 
usados para modelar as interações entre objetos, enquanto os diagramas de 
estado do objeto modelam o comportamento dinâmico dentro de um único 
Realizar análise da solução5
objeto. Um diagrama de estado de objeto mostra todos os estados possíveis 
de um objeto e a transição permitida entre os estados.
As ferramentas são apenas os meios pelos quais os desenvolvedores co-
municam os requisitos ou o design do sistema. Como eles realmente aplicam 
essas ferramentas para a análise, o projeto também é importante. Ao contrário 
da abordagem tradicional de cascata, a abordagem geral para análise e design 
orientado a objetos é altamente integrativo. Por isso, na abordagem orientada 
a objetos, todo o sistema é criado para que a manutenção de software seja 
realizada da forma mais fácil e simples. Os sistemas orientados a objetos são 
projetados para serem alterados (DENNIS; WIXOM; TEGARDEN, 2015).
Na análise orientada a objetos, existem quatro etapas principais a serem 
executadas:
1. Identificação de objetos e classes.
2. Identificação dos relacionamentos do objeto.
3. Identificação dos atributos.
4. Identificação de serviços.
O primeiro passo envolve a identificação de objetos e classes candidatas, 
que podem ser pessoas, lugares, coisas, organizações, conceitos ou eventos. 
Em seguida, relacionamentos de objetos são documentados em diagramas 
de objetos. Os atributos e serviços de cada classe são, então, identificados e 
documentados em modelos de classe.
Da mesma forma, existem quatro etapas principais a serem realizadas:
 � Definir ciclos de vida do objeto.
 � Estabelecer relacionamentos de classe.
 � Determinar a lógica do serviço.
 � Concluir as definições de classe.
Com isso, o primeiro item consiste em analisar o ciclo de vida de cada 
objeto e formalizar o ciclo de vida em um diagrama de estado do objeto. Em 
seguida, as relações de classe são definidas em um diagrama de classes. Cada 
serviço, que é fornecido por uma classe, é definido, incluindo qualquer lógica 
que seja necessária. Por fim, os diagramas de classe e objeto são concluídos 
juntamente com todos os modelos de classe.
6Realizar análise da solução
Análise orientada a objetos x métodos tradicionais
Foi mencionado na introdução deste capítulo os métodos tradicionais. Neste 
momento, você irá ver as diferenças entre esses dois métodos. Muito antes 
da introdução à abordagem orientada a objetos, a maioria dos profissionais 
de sistemas de informação foram instruídos para saber que o ciclo de vida 
clássico de desenvolvimento em cascata era a maneira correta de abordar a 
engenharia de software e, que a decomposição de processos de alto nível era 
uma maneira prática de lidar com grandes projetos de desenvolvimento de 
software. Esses métodos tradicionais criaram as bases das práticas modernas 
de software, no entanto, essa base foi desestabilizada pela análise e projeto 
orientado a objetos (BLAHA; RUMBAUGH, 2005).
O desenvolvimento de sistemas estruturados começou na década de 1960, 
com o conceito de ciclo de vida de desenvolvimento de sistemas. Na década 
de 1970, as metodologias estruturadas com foco nos processos foram desen-
volvidas para permitir a análise técnica de projetos de software de maneira 
mais efetiva. A chamada revolução estruturada foi baseada em estruturas 
de programas de computador, com etapas (processos) e dados de programas 
separados.
Com a década de 1980, o planejamento e modelagem de dados começou a 
desempenhar um papel mais importante no desenvolvimento, que resultou em 
metodologias orientadas a dados, como a engenharia da informação. “Embora 
as metodologias orientadas para dados tenham feito melhor uso dos poderosos 
modelos de banco de dados que estavam evoluindo, as metodologias de dados 
ainda dependiam da decomposição do processo e simplesmente dos processos 
mapeados para os dados” (BLAHA; RUMBAUGH, 2005).
As organizações continuaram a usar métodos tradicionais no desenvolvi-
mento de software, mas elas perceberam que esses métodos tinham algumas 
deficiências. Podem ser citadas como deficiências:
 � A abordagem tradicional de cachoeira para o desenvolvimento de 
software determina a conclusão da fase de análise antes do projeto e, 
da mesma forma, a conclusão de todas as etapas de projeto antes da 
construção. Esse pressuposto tem um risco inerente de realizar análises 
incorretas ou incompletas no projeto e na construção.
 � A decomposição do processo pode levar a projetos instáveis, porque 
ele é baseado em processos que, muitas vezes, mudam com o resultado 
de novos requisitos, correções de erros, novos ambientes ou melhorias. 
Realizar análise da solução7
Os processos devem ser desmontados e modificados com frequência, 
com obtenção de resultados incertos.
 � As metodologias tradicionais de desenvolvimento de software sugerem 
o desenvolvimento dele a partir do zero, em vez de reutilizar o código 
existente, o que não é surpreendente, porque a decomposição do processo 
resulta na separação dos processos e dos dados, tornando o transporte 
e a reutilização do código extremamente difíceis.
 � Como a decomposição do processo é orientada para resolver um pro-
blema específico, a resposta resultante (projeto) é única, dificultando 
a reutilização de uma aplicação genérica.
Logo, estes problemas e inúmeros outros, levaram os desenvolvedores a 
examinar diferentes formas de pensar sobre as abordagens para o desenvol-
vimento de sistemas. 
O desenvolvimento de abordagens de design estruturado de cima para baixo 
é uma questão simples de decomposição algorítmica, em que cada módulo 
de um sistema denota um passo importante em algum processo geral. Em 
contraste, a decomposição orientada a objetos é baseada em objetos e não em 
algoritmos. Assim, a análise orientada a objetos se esforça para descrever o 
que o sistema deve fazer em termos de objetos-chave no domínio do problema, 
enquanto o projeto orientado a objetos se empenha para descrever como o 
sistema funcionará usando esses objetos (BLAHA; RUMBAUGH, 2005).
Portanto, a análise orientada a objetos difere da análise estruturada em 
muitos aspectos. A análise estruturada mantém uma visão orientada a processos 
dos sistemas, fornecendo uma decomposição baseada em processos, enquanto 
a análise orientada a objetos decompõe a base de domínio do problema em 
entidades de classificação (classes e objetos).
Os desenvolvedores que, atualmente, usam técnicas de análise estruturada, 
geralmente, descobrem que a sua experiência nos requisitos de modelagem com 
o uso de diagramas de fluxo de dados é irrelevante ou vale a pena apenas no 
contexto da modelagem de procedimentos existentes. Esses desenvolvedores, 
que foram instruídos desta forma, podem encontrar nas análises orientadas a 
objetos uma maneira muito mais fácil de modelar um sistema. 
8Realizar análise da solução
Documentar a solução
A solução pode ser documentada utilizando-se diversos modelos e técnicas 
existentes. Você irá analisar que uma abordagem genéricapode ser utilizada em 
diversos projetos. Nesta abordagem, o documento deve ter a seguinte estrutura:
1. Introdução ao documento: tema, objetivos, delimitações, justificativas, 
métodos de trabalho, organização e glossário.
2. Descrição geral do sistema: descrição do problema, principais envol-
vidos e regras de negócio.
3. Requisitos do sistema: requisitos funcionais, requisitos não funcionais, 
protótipo, métricas e cronograma.
4. Análise e design: arquitetura do sistema, modelo de domínio, diagramas 
de interação, diagramas de classes, diagrama de atividades, diagrama 
de estados, diagrama de componentes e modelo de dados.
5. Implementação: descrição da implementação do sistema.
6. Testes: plano de testes e execução do plano de testes.
7. Implantação: diagrama de implantação e manual de implantação.
8. Manual de usuário
9. Conclusão e considerações finais
10. Bibliografia
Para saber mais sobre um documento de solução, leia o artigo “Documentação de 
um produto de software”, disponível no link a seguir: 
https://qrgo.page.link/Cjbvz
Nesse momento, será dado enfoque para os itens da análise e design do 
documento. Pode-se ver que dentro deste tópico se tem um grande conjunto 
de diagramas. Os diagramas descritos neste item pertencem a UML. A UML 
consiste em um certo número de elementos gráficos que se combinam para 
formar diagramas. Como a UML é uma linguagem, ela possui regras para 
combinar os elementos nos diversos diagramas (LARMAN, 2000).
Realizar análise da solução9
A UML fornece uma lista de diagramas bastante completa, que permite a 
documentação de diversos aspectos do sistema. Veja na Figura 1, a estrutura dos 
diagramas da UML. Nela se vê uma divisão de diagramas voltados para apre-
sentar elementos estruturais da solução e outra de diagramas comportamentais.
Figura 1. Diagramas da UML.
Fonte: Object Management Group (2001). 
Diagrama
Diagrama
de Estruturas
Diagrama
de Classes
Diagrama
de Per�l
Diagrama
de Estruturas 
Compostas
Diagrama
de Máquina
 de Estados
Diagrama de
 Visão Geral
de Interação
Diagrama de 
Componentes
Diagrama de 
Implantação
Diagrama de 
Sequência
Diagrama de 
Comunicação
Diagrama 
de Interação
Diagrama 
de Pacotes
Diagrama 
de Tempo
Diagrama de 
Atividades
Diagrama de 
Casos de Uso
Diagrama 
de Objetos
Diagrama de
Comportamentos
BLAHA, M.; RUMBAUGH, J. Object-oriented modeling and design with UML. Upper Saddle 
River: Pearson Education, 2005.
DENNIS, A.; WIXOM, B. H.; TEGARDEN, D. Systems analysis and design: an object-oriented 
approach with UML. New Jersey: John Wiley & Sons, 2015.
LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados 
a objetos. Porto Alegre: Bookman, 2000.
OBJECT MANAGEMENT GROUP. UML Superstructure Specification 2.4.1. Needham, 2011. 
Disponível em: <http://www.omg.org/spec/UML/2.4.1>. Acesso em: 29 ago. 2017.
10Realizar análise da solução
PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: uma abordagem profissional. 
8. ed. Porto Alegre: AMGH, 2016.
SCHACH, S. R. Engenharia de Software: os Paradigmas Clássico e orientado a Objetos. 
7. ed. Porto Alegre: McGraw-Hill, 2009
WAZLAWICK, R. Análise e Design Orientados a Objetos para Sistemas de Informação: 
modelagem com UML, OCL e IFML. Rio de Janeiro: Elsevier Brasil, 2016.
Leituras recomendadas
BEZERRA, E. Princípios de Análise e Projeto de Sistema com UML. Rio de Janeiro: Elsevier 
Brasil, 2015. v. 3.
ENGHOLM, H. Análise e design orientados a objetos. São Paulo: Novatec, 2017.
KOSCIANSKI, A.; SOARES, M. S. Qualidade de Software: aprenda as metodologias e 
técnicas mais modernas para o desenvolvimento de software. 2. ed. São Paulo: 
Novatec. 2007.
SALES, M. Diagrama de Pareto. GestioPolis, Bogotá, 2002. Disponível em: <https://
www.gestiopolis.com/diagrama-de-pareto/>. Acesso em: 29 ago. 2017.
Realizar análise da solução11
Encerra aqui o trecho do livro disponibilizado para 
esta Unidade de Aprendizagem. Na Biblioteca Virtual 
da Instituição, você encontra a obra na íntegra.

Continue navegando