Resumo - Conceitos Basicos de Modelagem de Sistemas
Resumo - Conceitos Basicos de Modelagem de Sistemas
Resumo - Conceitos Basicos de Modelagem de Sistemas
PROPÓSITO
Compreender a UML no contexto de desenvolvimento de sistemas orientado a objetos (ou não)
como uma ferramenta de construção de diagramas padronizados para ajudar a equipe de
desenvolvimento a entender o que o sistema deve fazer, num primeiro momento, e como o
sistema deve fazer, num momento seguinte. Disponibilizar diagramas que permitam enxergar o
sistema sob cinco diferentes perspectivas e usá-los da forma que convier, em consonância com
qualquer processo de desenvolvimento de sistemas.
PREPARAÇÃO
Antes de iniciar este conteúdo, é indicado ter instalado em seu computador um programa que
permita elaborar modelos sob a forma de diagramas da UML (Linguagem Unificada de
Modelagem). Nossa sugestão inicial é o Astah Free Student License, e será necessário usar
seu e-mail institucional para ativar a licença. Preencha os dados do formulário, envie e aguarde
a liberação de sua licença em seu e-mail institucional. Ao receber a licença, siga as instruções
do e-mail e instale o produto em seu computador.
MÓDULO 1
MÓDULO 2
MÓDULO 3
INTRODUÇÃO
Aprenderemos os conceitos básicos de modelagem de sistemas para compreender a realidade
do negócio inerente ao sistema e expor as soluções para atender às necessidades reais de
seus usuários. Iniciaremos pelo conceito de modelo e mostraremos sua aplicabilidade no
contexto de desenvolvimento de sistemas. Vamos compreender que existem diferentes
modelos que devem ser aplicados, sob a forma de templates e diagramas, nas diferentes fases
do processo de desenvolvimento do sistema.
MÓDULO 1
CONCEITOS
Neste módulo, veremos por que são usados modelos, sob a forma de diagramas, durante o
processo de desenvolvimento de sistemas computacionais para expor as necessidades dos
usuários e as ideias dos desenvolvedores para a construção do novo sistema. Assim, vamos
conceituar e compreender a relevância da modelagem de sistemas.
EXEMPLO
Uma família decide adquirir um imóvel na planta para moradia. Ela vai, então, a um lançamento
imobiliário a convite de um corretor conhecido. Chegando lá, deparam-se com o terreno vazio e
um stand de vendas. Imediatamente, vem a dúvida: como escolher o bloco e o apartamento
para que não sejam devassados, considerando a vizinhança?
O corretor então inicia seu trabalho e leva a todos para conhecerem a maquete do
empreendimento − que nada mais é do que a representação do empreendimento em bloco
único − e a infraestrutura do parque aquático.
Maquete de um empreendimento
Em seguida, eles se sentam à mesa com o corretor para escolher a unidade no bloco
selecionado. O corretor então apresenta a tabela de preços de cada unidade do bloco
selecionado, informando a metragem, o valor da unidade e as condições de pagamento.
A família seleciona três unidades e pergunta sobre a disposição dos cômodos. O corretor então
apresenta a planta baixa de cada unidade selecionada. A imagem a seguir mostra a planta de
uma das unidades:
A família decide-se pelo imóvel, fecha o negócio e recebe um pen drive contendo outras
plantas da unidade: elétrica, hidráulica, dentre outras. Cada uma dessas plantas representa um
modelo sob uma diferente perspectiva.
Outro exemplo de modelo muito comum atualmente são os protótipos, usados para aumentar
a chance de sucesso dos produtos. A partir de um protótipo inicial, outros modelos podem ser
demandados e aprimoramentos podem ser desenvolvidos. Os setores automobilístico e o de
desenvolvimento de sistemas usam com eficácia protótipos como modelos.
RESUMINDO
Uma realidade pode demandar diferentes modelos, dependendo da perspectiva com que
precise ser observada.
MODELAGEM DE SISTEMAS
Assim como exemplificamos no mercado imobiliário, no contexto de desenvolvimento de
sistemas computacionais podem ser usados diferentes modelos de um mesmo sistema, em
que cada um apresenta uma perspectiva (uma visão).
EXEMPLO
EXTERNA
COMPORTAMENTAL
ESTRUTURAL
INTERAÇÃO
EXTERNA
modela-se o ambiente em que o sistema está inserido, mostrando sua relação com os usuários
e demais sistemas com que interage.
COMPORTAMENTAL
modela-se o comportamento dinâmico do sistema e como ele reage aos eventos que o afetam.
ESTRUTURAL
INTERAÇÃO
Cada modelo apresenta o sistema sob uma diferente visão ou perspectiva da realidade.
(BEZERRA, 2015)
Como veremos mais adiante, a UML é uma linguagem unificada de modelagem que permite a
construção de um conjunto de modelos, na forma de diagramas, sob diferentes visões ou
perspectivas que, em conjunto, integram a solução de modelagem do sistema quando
desenvolvido usando o paradigma orientado a objetos.
O PROCESSO DE DESENVOLVIMENTO DE
SISTEMAS EM FASES
O desenvolvimento de sistemas computacionais é um processo que envolve pessoas e a
necessidade de compreensão de uma realidade muitas vezes complexa e obscura,
principalmente no início do desenvolvimento (vide imagem a seguir), quando o nível de
abstração é alto e pouco se conhece da realidade.
Num primeiro momento, precisamos compreender com muita clareza as necessidades das
pessoas que serão usuárias do sistema, o que elas precisam que o sistema faça para que
possam cumprir suas funções.
Mas como entender e confirmar a compreensão numa linguagem ambígua como a nossa, tanto
a falada como a escrita?
Cada processo ou metodologia cria sua própria divisão, mas, de maneira geral, podemos citar
que (haverá exceção, logicamente) compreendem as fases de:
ANÁLISE
com base nos requisitos, compreende-se o que o sistema deve fazer em prol de seus
usuários.
PROJETO
compreende a adequação dos requisitos a como eles serão implementados, usando a
tecnologia adequada para tal, definindo sua arquitetura e seus componentes. Define-se ainda
toda a infraestrutura do ambiente computacional que será usada na construção do sistema,
como: redes de computadores, banco de dados, linguagem de programação, dentre outros
elementos.
IMPLEMENTAÇÃO
diz respeito à identificação dos programas necessários e sua codificação na linguagem de
programação selecionada na fase de projeto, bem como o banco de dados que será usado.
Momento 2: A equipe de desenvolvimento constrói os modelos que julga pertinentes para que
se possa compreender e destacar os aspectos relevantes da realidade. Esse momento
acontece nas fases de requisitos, análise e projeto.
EXEMPLO
O programador deve construir os programas, mas não tem livre acesso aos usuários e nem
precisa, pois os modelos servem como elementos de comunicação com todos da equipe. Os
projetistas do software devem compreender a realidade dos requisitos para construir os
modelos de projeto, por isso precisam ler os modelos das fases de requisitos e de análise. Os
programadores consultam os modelos de seu interesse e conversam com os membros que
fizeram o levantamento de dados e a modelagem para compreenderem melhor o contexto e
desenvolverem com mais eficiência os programas necessários.
VERIFICANDO O APRENDIZADO
MÓDULO 2
CONCEITOS
Um dos criadores do paradigma orientado a objetos, Alan Kay, imaginou um sistema como um
conjunto de agentes autônomos, os objetos, que interagem entre si.
Os objetos similares são agrupados em classes e cada objeto pertence a uma classe
(BEZERRA, 2015)
ATENÇÃO
CONCEITOS FUNDAMENTAIS DA
ORIENTAÇÃO A OBJETOS
A orientação a objetos enfatiza a identificação, a representação e a organização dos objetos
necessários ao funcionamento de um sistema. Tem por base os conceitos de objetos, classes,
operação, mensagem e estado, e está calcada em quatro pilares fundamentais: abstração,
encapsulamento, herança e polimorfismo, discutidos na sequência.
OBJETOS E CLASSES
Um objeto pode referenciar qualquer coisa do mundo real: um aluno, uma disciplina, um
curso, um professor, entre outros, considerando um sistema acadêmico como contexto. Ou
seja, um objeto é qualquer coisa do mundo real, de interesse no contexto em estudo.
Quando analisamos os objetos pertinentes a um contexto, não estamos preocupados com um
objeto específico como, por exemplo, o aluno “José Carlos Aragão”, e sim com todos os alunos
envolvidos no estudo. Surge então o conceito de classe que, conceitualmente, reúne (agrupa)
um conjunto de objetos com as mesmas propriedades. Ou seja, estamos interessados em
todos os alunos e não apenas em “José Carlos Aragão”. Usando o princípio da abstração (que
detalharemos mais adiante), temos que uma classe agrupa objetos com as mesmas
características ou propriedades, que são seus dados (atributos) e seus procedimentos
(métodos) que implementam os serviços que essa classe vai prestar.
A classe ALUNO agrupa “José Carlos Aragão” e os demais alunos envolvidos. Um objeto é um
elemento específico de uma classe, ou ainda uma instância de uma classe.
As classes são, portanto, abstrações que definem uma estrutura que encapsula dados
(chamados de atributos) e um conjunto de operações possíveis de serem usados, chamados
métodos. Por exemplo, a classe ALUNO encapsula um conjunto de dados que identifique os
alunos − matrícula, nome, endereço (rua, número, complemento, estado e CEP), CPF e
Identidade − e um conjunto de métodos: Incluir Aluno, Matricular Aluno, Cancelar Matrícula,
dentre outros.
RESUMINDO
Um sistema orientado a objetos consiste na cooperação entre seus objetos. Cada um tem uma
responsabilidade no sistema, correspondendo à parte das funcionalidades que lhes são
atribuídas. Em outras palavras, uma tarefa computacional é realizada pela interação entre seus
objetos, cada um executa parte da tarefa.
OPERAÇÃO
MENSAGEM
ESTADO
OPERAÇÃO
Operação é o nome dado a cada ação (função) que o objeto sabe realizar. Mas um objeto não
realiza nenhuma ação sem uma motivação, sem um estímulo.
MENSAGEM
Chamamos esse estímulo de mensagem, que chega a um objeto e solicita que ele realize uma
de suas operações. Uma operação, por sua vez, pode ser implementada por meio de pelo
menos um método.
Em outras palavras, cada objeto presta um serviço. Quando um objeto precisa de um serviço
da responsabilidade de outro, ele precisa enviar uma mensagem a ele. Cada mensagem ativa
uma das operações do objeto.
ESTADO
Já sabemos que um objeto contém atributos, que são dados necessários para prestar os
serviços que cabem a esse objeto. Por definição, chama-se estado do objeto o conjunto de
valores de seus atributos em dado momento. Uma mensagem enviada a um objeto pode (ou
não) alterar o seu estado, na medida em que pode alterar um ou mais valores de seus
atributos.
OBJETO
Imagine, por exemplo, que o objeto Notas_Aluno contenha as notas do aluno em determinada
disciplina. Em dado momento, é recebida uma mensagem informando uma nova nota a ser
armazenada. O estado desse objeto foi alterado, pois um de seus atributos recebeu a nova
nota. Agora suponha que determinado objeto enviou uma mensagem a Notas_Aluno
solicitando que seja exibida a média atual; nesse caso, não houve alteração de estado, pois as
notas foram consultadas, e a média foi calculada (não fica armazenada) e exibida.
Partes de um objeto
ABSTRAÇÃO
É um processo mental que permeia toda a orientação a objetos, como um princípio básico que
serve de base aos demais princípios. A abstração permite que, ao estudar algo, ponhamos
nossa concentração nos aspectos relevantes e deixemos de lado os menos importantes.
Permite, portanto, gerenciar a complexidade de um objeto para que possamos nos ater às suas
propriedades essenciais. E os aspectos essenciais de um objeto dependem, claro, do contexto
no qual os analisamos, podendo variar. Ou seja, uma propriedade de um objeto pode ser
relevante em um contexto e não ser em outro.
ENCAPSULAMENTO
O objeto esconde (encapsula) seus dados (atributos) do acesso indevido por outros objetos e
somente permite que eles sejam acessados por operações implementadas pelos seus próprios
métodos (funcionalidades que implementam o comportamento do objeto). Com isso, o
encapsulamento protege os dados do objeto do uso arbitrário ou não intencional, como pode
ser visualizado na figura seguinte. O encapsulamento é uma técnica para minimizar a
interdependência entre as classes, pois apenas os métodos da respectiva classe podem alterar
seus dados (atributos), facilitando a identificação de erros e a alteração dos programas. Em
outras palavras, garante que apenas os métodos da própria classe possam alterar o estado de
um objeto.
Encapsulamento
HERANÇA
Mecanismo para derivar novas classes a partir da definição de classes existentes, com base
em um processo de refinamento. Uma classe derivada ou descendente herda os dados
(atributos) e o comportamento (métodos) da classe base ou ancestral ou ascendente. A
implementação da herança garante a reutilização de código, que, além de economizar tempo e
dinheiro, propicia mais segurança ao processo de desenvolvimento, posto que as
funcionalidades da classe base podem ter sido usadas e testadas.
POLIMORFISMO
A palavra polimorfismo deriva do grego e significa “muitas formas”. A partir do momento em
que uma classe herda atributos e métodos de uma (herança simples) ou mais (herança
múltipla) classes base, ela tem o poder de alterar o comportamento de cada um desses
procedimentos (métodos). Isso amplia o poder do reaproveitamento de código promovido pela
herança, permitindo que se aproveite alguns métodos e se altere (redefina) outros. Dessa
forma, um método com mesmo nome em classes distintas pode ter diferentes comportamentos.
Herança e polimorfismo
As hierarquias de classes (herança) são estruturas que permitem o seu reaproveitamento entre
aplicações que, se bem projetadas, podem ser reutilizadas em vários sistemas, otimizando
tempo e dinheiro.
Além disso, tais estruturas podem ser estendidas (usando o princípio do polimorfismo) sem
corromper o que já existe. Dessa forma, pode-se concluir que a orientação a objetos traz em si
os seguintes benefícios:
REUSABILIDADE
EXTENSIBILIDADE
REUSABILIDADE
O uso de componentes já escritos pode ser a base para outros softwares (através da herança).
EXTENSIBILIDADE
Novos componentes podem ser desenvolvidos a partir de outros, já desenvolvidos, sem afetar
o comportamento do componente de origem (mediante o princípio do polimorfismo) e
permitindo que esse comportamento seja alterado, estendido para um novo contexto.
De forma simples, pode-se dizer que a atividade de análise visa identificar o que os usuários e
os demais interessados (que juntos formam os stakeholders) precisam que o sistema faça.
Análise de sistemas implica numa investigação dos problemas e dos requisitos (necessidades
dos usuários) de um contexto, em particular, visando a construção de um sistema
automatizado.
ATENÇÃO
A atividade de análise, por ser muito abrangente, costuma ser dividida em: levantamento de
requisitos (investigação dos requisitos) e análise dos requisitos.
A atividade de análise não leva em consideração nenhum recurso tecnológico que possa ser
utilizado pelo sistema em construção. A ideia é construir uma estratégia de solução sem
considerar como (com que tecnologia) essa estratégia será construída.
A preocupação da atividade de análise é identificar: O QUE o sistema deve fazer para atender
às necessidades de seus usuários.
A sua finalidade é construir a melhor solução, que possa ser implementada em qualquer
tecnologia (plataforma operacional, linguagem de programação e banco de dados), de acordo
com as disponíveis no mercado, naquele momento.
LEVANTAMENTO DE REQUISITOS
Nesta fase, o foco é conversar com as pessoas envolvidas com o sistema (patrocinadores,
gestores, usuários atuais e futuros e demais envolvidos) e compreender as necessidades e
desejos de cada um. O foco, portanto, é na compreensão do problema.
REQUISITOS
Requisito pode ser definido como sendo uma condição ou capacidade que deve ser alcançada
por um sistema para satisfazer uma necessidade.
O produto gerado por essa fase é o documento de requisitos, que contém todos os requisitos
necessários ao sistema, classificados em :
REQUISITOS FUNCIONAIS
Declaram as funcionalidades necessárias ao sistema.
EXEMPLO
Cada uma das cinco funcionalidades anteriores representa um requisito funcional do sistema.
Imagine, então, que o sistema precise ser touch screen. Tal característica da funcionalidade
Emissão das faturas é um requisito não funcional de usabilidade (relacionada com uma
interface de qualidade). Outro requisito não funcional de segurança seria a necessidade de um
backup diário da base de dados.
A correta identificação e seu registro no documento de requisitos são cruciais para a precisão
e a qualidade do processo de desenvolvimento do sistema. Um requisito faltante ou outro mal
definido pode ser fatal para seu sucesso.
DICA
A fase de análise de requisitos é a transposição dos registros dos requisitos funcionais e não
funcionais para os modelos que a equipe pretende usar.
ANÁLISE DA APLICAÇÃO
Em geral, sucede a análise do domínio. Nela, são identificados os objetos de análise que não
fazem sentido para os analistas de domínio, mas que são fundamentais para atender às
funcionalidades necessárias ao sistema, a aplicação em si (daí seu nome). Por exemplo, uma
interface de cadastramento de pagamentos é um objeto de aplicação do sistema de controle
financeiro. Nesse momento, o foco é apenas a identificação desse objeto, sem especificar sua
implementação, o que será detalhado na fase de Projeto (descrita adiante).
Análise do domínio
Análise da aplicação
Os principais diagramas UML usados nas fases de análise são: diagramas de casos de uso e
diagrama de classes. Além desses, ajudam também diagramas de interação e de estados, em
alguns casos.
O objetivo é decidir “como o sistema funcionará” para atender aos requisitos. Em geral, o
projeto enfoca a definição da arquitetura do sistema, determinando suas partes e a relação
entre elas, o padrão de interface gráfica, o ambiente computacional (sistema operacional e
computacional), a linguagem de programação o gerenciamento do banco de dados.
O projeto, portanto, deriva da análise e produz uma descrição dos recursos computacionais e
de como o sistema deve executar no dia a dia. Muitas vezes algumas restrições tecnológicas
podem ser impostas como, por exemplo, desenvolver na linguagem X, pelo fato de os sistemas
da organização estarem nessa linguagem (claro, se ainda existir no mercado), ou usar o
sistema gerenciador de banco de dados Y, pelo fato de a base corporativa da organização estar
nele.
PROJETO DA ARQUITETURA
Ato de distribuir as classes de análise em subsistemas com seus componentes, bem como
distribuir os componentes pelos recursos de hardware disponíveis. Dentre os diagramas da
UML, usamos aqui os diagramas de pacotes, componentes e implantação.
PROJETO DETALHADO
Compreende atividades como modelagem das colaborações entre os objetos, projeto da
interface, projeto do banco de dados e aspectos computacionais de alto nível (concorrência e
distribuição de processamento e dados). O projeto de algoritmos pode ser considerado aqui
também, detalhando aspectos do que for relevante para o projeto. Dentre os diagramas UML
usados aqui, destacam-se: diagrama de interação (sequência ou comunicação), atividades (se
demandar detalhamento de um método ou método com processamento paralelo),
detalhamento do diagrama de classes, de estados, dentre outros detalhados adiante.
DESENVOLVIMENTO DE SISTEMAS EM
CAMADAS
Abordaremos, inicialmente, a arquitetura de projeto de software em camadas de uma forma
geral, sem nos atermos a um modelo em especial. O foco é separar o desenvolvimento do
código em camadas, diminuindo sua complexidade e facilitando a sua manutenção. Camadas
separam as responsabilidades e gerenciam as dependências.
As camadas em geral:
• Possuem alta coesão e baixo acoplamento, ou seja, concentram atividades afins (coesão) e
são independentes umas das outras.
• Possuem propósito bem definido.
• A camada superior tem conhecimento apenas da imediatamente inferior, que fornece os
serviços, por uma interface.
VANTAGENS
- Torna o código mais organizado e legível.
- Permite o desenvolvimento, o teste e a manutenção das camadas isoladamente.
- Permite melhor reuso do código ou dos objetos.
- Pode substituir uma tecnologia que implemente uma camada, de forma simples, sem interferir
nas demais. Por exemplo, para trocar o SGBD de SQL Server para PostgreSQL, basta alterar a
camada de persistência. As demais permanecem como estavam.
- Disciplina as dependências entre as camadas.
- Mais adaptável a uma quantidade maior de usuários.
DESVANTAGENS
- Aumenta o número de classes do sistema.
- A adição de camadas torna o sistema mais complexo.
- Potencialmente, reduz o desempenho do software.
Como exemplo, podemos citar o modelo de camadas mais usado nos últimos anos, o de três
camadas, que engloba as camadas de:
APRESENTAÇÃO
Compreende as classes do sistema que permitem a interação com o usuário, as chamadas
classes de fronteira.
NEGÓCIO
Compreende as classes responsáveis pelos serviços e pelas regras do negócio, ou seja, reúne
as classes de controle e negócio.
DADOS
Responsável pelo armazenamento e pela recuperação dos dados persistentes do sistema, ou
seja, as classes de persistência de dados.
VERIFICANDO O APRENDIZADO
MÓDULO 3
CONCEITOS
A UML foi então adotada pela OMG (Object Management Group), em 1997, oriunda da
integração dos três métodos anteriormente descritos, como uma linguagem de modelagem
padrão para sistemas desenvolvidos sob o paradigma orientado a objetos.
(FOWLER, 2005.)
Desde sua versão inicial, a UML sofreu mudanças substanciais e atualmente encontra-se em
sua versão 2.5.1, de dezembro de 2017.
A UML é, portanto, uma linguagem padrão para construção de projetos de sistemas, voltada
para a visualização, a especificação, a construção e a documentação de artefatos de um
sistema. Foi projetada para ser independente do método ou processo de desenvolvimento
utilizado.
VISUALIZAÇÃO
ESPECIFICAÇÃO
CONSTRUÇÃO
VISUALIZAÇÃO
ESPECIFICAÇÃO
Permite a construção de modelos precisos, não ambíguos e completos sob diferentes visões e
atendendo às necessidades de modelagem das diferentes fases do processo de
desenvolvimento de software, independentemente do processo ou modelo usado.
CONSTRUÇÃO
(FOWLER, 2005)
VISÕES DA UML
Assim como vimos nos exemplos do empreendimento imobiliário, as plantas das unidades, a
planta elétrica, a planta hidráulica, dentre outras, cada modelo tinha uma perspectiva de
compreensão da mesma realidade (unidades residenciais em um empreendimento). No mundo
de sistemas computacionais, o mesmo acontece com relação à modelagem de sistemas com
UML. Os autores da UML entendem que um sistema deve ser visto sob cinco diferentes
perspectivas ou visões, descritas a seguir:
VISÃO DE PROCESSO
Enfatiza aspectos físicos mais peculiares como concorrência, sincronismo entre sistemas e
desempenho (performance, confiabilidade, tolerância a falhas e outros aspectos) do sistema,
considerando os processos e os processadores.
A UML implementa diagramas que atuam nas cinco visões descritas anteriormente, permitindo
ampla modelagem sobre todos os aspectos (visões) relevantes do sistema.
Nem todas as perspectivas ou visões são úteis em todo desenvolvimento, pois dependem das
características, tipo e complexidade do sistema. A imagem a seguir mostra a ideia central da
visão de casos de uso, influenciando todas as demais.
Visões da UML
Sendo assim, cabe a cada empresa ou equipe de desenvolvimento a integração da UML com
sua metodologia de desenvolvimento de sistemas computacionais, permitindo uma modelagem
eficiente.
A UML pode ser usada de diversas formas, desde esboços manuais para interação com
usuários ou equipe, passando pelo uso de ferramentas de diagramação UML até sofisticadas
ferramentas CASE, que integram os modelos e geram código em linguagens específicas.
EM CASCATA
Com e sem retroalimentação, onde as fases se sucedem, a seguinte inicia quando a anterior
termina. A desvantagem é que, se for sem retroalimentação, não há opção de retorno à fase
anterior. Por exemplo, se na fase de projeto identificamos novos requisitos, estes não podem
ser considerados, pois a fase de análise congelou os requisitos identificados. Se a
retroalimentação for permitida, esse problema pode ser minimizado, mas não solucionado. O
grande problema é que o usuário interage com a equipe de desenvolvimento no início do
processo e ao final, quando o sistema é entregue.
ITERATIVO
Onde o sistema é dividido em subconjuntos de funcionalidades (com mínimo de dependência
com os demais conjuntos), e as atividades de análise, projeto, implementação, teste e
implantação são realizadas a cada subconjunto. Isso significa que a cada subconjunto haverá a
implantação de uma parte do sistema, permitindo que ajustes das partes encerradas ocorram
em paralelo com o novo subconjunto de funcionalidades que está sendo construído.
ÁGIL
Os processos são ditos ágeis porque compartilham um conjunto de valores e princípios definido
pelo manifesto ágil. O foco aqui é permitir modificação sempre que preciso e no
desenvolvimento de código. A modelagem existe, mas em menor escala e com ênfase na
comunicação com usuário e equipe de desenvolvimento. Visa a pouca formalidade nos
processos ágeis. Mais usados: Extreme Programming (XP), Scrum, FDD (Feature Driven
Development).
OS DIAGRAMAS ESTRUTURAIS
OS DIAGRAMAS COMPORTAMENTAIS
OS DIAGRAMAS ESTRUTURAIS
OS DIAGRAMAS COMPORTAMENTAIS
Diagramas da UML
Diagrama Especificação
VERIFICANDO O APRENDIZADO
CONCLUSÃO
CONSIDERAÇÕES FINAIS
Vimos que o desenvolvimento de sistemas é uma atividade complexa, que envolve pessoas
estudando um sistema que também será usado por outras pessoas. Ou seja, existe muita
subjetividade envolvida nesse processo. Para minimizar essa subjetividade, o processo de
desenvolvimento de um software é divido em fases, de forma que inicialmente tenhamos uma
visão geral do sistema e, à medida que nos aprofundamos, conhecemos mais detalhes da
estrutura e do funcionamento desse sistema.
Vimos ainda que os processos de desenvolvimento usam diagramas, que são modelos que
expressam a realidade sob determinada perspectiva, para melhorar a comunicação com os
usuários e entre os membros da equipe de desenvolvimento.
Esse novo paradigma, porém, precisou de modelos compatíveis, pois os modelos dos
paradigmas anteriores não atendiam à nova forma de ver e de construir sistemas. Os melhores
profissionais do mercado produziram seus próprios modelos e, em 1997, criaram uma
linguagem unificada, em padrão relativamente aberto: a UML (em português, Linguagem
Unificada de Modelagem), que vem evoluindo substancialmente desde sua criação, estando
em sua versão 2.5.1, de 2017.
AVALIAÇÃO DO TEMA:
REFERÊNCIAS
BEZERRA, E. Princípios de análise e projeto de sistemas com UML. 3. ed. Rio de Janeiro:
Elsevier, 2015.
BOOCH, G.; JACOBSON, I.; RUMBAUGH, J. UML: guia do usuário. 2. ed. Rio de Janeiro:
Elsevier, 2005.
EXPLORE+
Pesquise na internet:
CONTEUDISTA
Marcelo Vasques de Oliveira
CURRÍCULO LATTES