Você está na página 1de 6

Transcrição da aula do dia 19/03/2018 – Professor André Luiz Perin

Análise e Desenvolvimento de Sistemas 3


Módulo: Engenharia de Software Aplicada
Tema: Processos de Software II
Vídeo 01

Professor André: Olá a todos! Eu sou o Professor André Perin e vamos trabalhar juntos
no Módulo de Engenharia de Software Aplicada...
(Slide 01 – Objetivos) – Leitura/Visualização.
Professor André: Nesse primeiro vídeo, nós iremos discutir as atividades de
modelagem de sistemas...
(Slide 02 – Modelagem de Sistemas) – Leitura/Visualização.
Professor André: A Modelagem de Sistemas normalmente envolve as atividades de
criação de modelos.
Os Modelos que iremos discutir aqui serão: Os Modelos de Contexto; Os Modelos de
Interação; Os Modelos Estruturais; Os Modelos Comportamentais; E a Engenharia
Dirigida a Modelos...
(Slide 03 – Continuação: Modelagem de Sistemas) – Leitura/Visualização.
Professor André: A Modelagem de Sistemas é o processo de desenvolvimento de
modelos abstratos de um sistema. Esses modelos abstratos trazem para gente uma
representação em alto nível do que é o sistema. Essa representação utiliza algum tipo de
notação gráfica. Lembrando que podemos fazer modelagem de sistemas de diversas
formas, inclusive de forma escrita... O que temos hoje em nosso ambiente atual de
desenvolvimento de sistemas é a representação gráfica através da linguagem de
modelagem unificada...
(Slide 04 – Modelos de Sistemas Existentes) – Leitura/Visualização.
Professor André: Nós temos duas etapas da modelagem. A primeira pode ser feita
através da modelagem do sistema que a gente tem atual. Os modelos existentes podem
ser usados para dar um embasamento sobre o que temos de serviço disponíveis no
sistema... É uma forma menos traumática do que a inspeção de códigos...
(Slide 05 – Modelos de Sistemas Planejados) – Leitura/Visualização.
Professor André: Também podemos fazer o plano de um novo sistema ou o modelo de
sistema que está em processo de desenvolvimento... Quando trabalhamos os sistemas
que estão em processo de desenvolvimento, podemos começar essa modelagem bem no
início do desenvolvimento, ou seja, na etapa da engenharia de requisitos... Na medida
em que vamos criando modelos, os modelos ajudam a gente a entender as necessidades
dos clientes e esclarecer alguns pontos de dúvida do sistema proposto...
(Slide 06 – Perspectivas de Sistema) – Leitura/Visualização.
Professor André: No desenvolvimento de sistemas, é uma boa prática, termos várias
perspectivas de sistemas, ou seja, vários pontos de vista distintos para depois
desenvolver um sistema...
Podemos fazer uso na modelagem de pelo menos quatro grandes perspectivas, são elas:
A Perspectiva Externa; A Perspectiva de Interação; A Perspectiva Estrutural; E a
Perspectiva Comportamental...
Na Perspectiva Externa nos interessa modelar o ambiente no qual o sistema será
inserido, ou seja, aquilo que fará a comunicação ou a interface com o nosso sistema...
Na Perspectiva de Interação o nosso olhar é para as interações ou para a troca de
mensagens entre o sistema e os atores de determinado ambiente ou entre os
componentes do sistema...
Quando a gente fala de Perspectiva Estrutural, estamos buscando a informação da
organização dos dados pelo sistema e da organização como um todo...
E na Perspectiva Comportamental, tentamos capturar e representar o comportamento
dinâmico do sistema, ou seja, as ações que o sistema irá executar em resposta aos
eventos externos...
(Slide 07 – Tipos de Diagramas UML) – Leitura/Visualização.
Professor André: Para dar conta de todas essas perspectivas, a Linguagem Unificada
de Modelagem (UML em inglês) propõe uma série de diagramas...
Os diagramas possuem as regras de criação e construção bem estabelecidas e já
desenvolvidas há algum tempo. Basicamente, os diagramas da UML que a gente utiliza
no ambiente de desenvolvimento são: Os Diagramas de Atividades; Os Diagramas de
Casos de Uso; Os Diagramas de Sequência; Os Diagramas de Classe; E os Diagramas
de Estado...
Destes diagramas, o que vemos com mais frequência no ambiente de desenvolvimento,
são os Diagramas de Caso de Uso, de Classe e de Sequência...
O Diagrama de Atividades representa para nós, as atividades envolvidas em um
processo de dados. Então, podemos trabalhar um diagrama de atividades diretamente do
modelo do processo de negócio, ou seja, através do estudo de um processo de negócio
conseguimos montar um ou vários diagramas de atividades que representam atividades
do sistema naquele processo de negócio ou naquele pedaço do negócio...
Os Diagramas de Caso de Uso foram estabelecidos para mostrar as interações entre o
ambiente e o sistema. Quando falamos ambiente, estamos falando dos atores envolvidos
no uso daquele sistema...
Temos também os Diagramas de Sequência. Ele tem como objetivo mostrar as
interações entre os atores do sistema e os componentes do sistema...
Por outro lado, o Diagrama de Classe mostra como as classes se relacionam dentro do
sistema, que tipo de associação elas tem, a gente consegue estabelecer relações do tipo
herança, extensão, mensagens em um diagrama de classe também...
E os Diagramas de Estado mostram o comportamento do sistema em reação a eventos
internos e externos. Com isso, conseguimos mapear o comportamento de um botão em
um diagrama de estado. Esse diagrama de estado é bastante utilizado em sistemas
autônomos e que tem poucas interações de usuários...
(Slide 08 – Modelos de Contexto) – Leitura/Visualização.
Professor André: É parte do Processo de Modelagem, trabalharmos o contexto de uso
do sistema. Contexto de uso é tentar definir o que é o sistema e o que não é o sistema
dentro do ambiente de trabalho do próprio sistema, ou seja, tentar definir de forma
gráfica quais são os limites de trabalhos do sistema e quais são os agentes externos que
podem se relacionar nesse sistema...
(Slide 09 – Limites do Sistema) – Leitura/Visualização.
Professor André: Através do diagrama do contexto a gente estabelece os limites do
sistema. Quando definimos o limite do sistema, a gente estabelece aquilo que vamos
conseguir tratar como requisito do sistema em uma etapa próxima, ou seja, aquilo que o
sistema irá fazer e aquilo que o sistema não irá fazer...
(Slide 10 – Exemplo: Diagrama de Contexto) – Leitura/Visualização.
Professor André: Neste slide 10, eu trago o exemplo de um diagrama de contexto para
um sistema qualquer que definimos como “Sistema Principal” e ele tem alguns outros
sistemas de apoio conectados a ele... Então temos: “O Sistema de Cadastro”; “O
Sistema de Produtos”; “O Sistema de Vendas”; “O Sistema de Agendamentos”; “O
Sistema de Estatísticas” e o “Sistema de Relatórios”... Vocês podem perceber que o
contexto de trabalho de sistema está muito bem estabelecido. Então, nosso sistema tem
esses componentes que se comunicam com o nosso sistema...
(Slide 11 – Perspectivas de Processo) – Leitura/Visualização.
Professor André: Do ponto de vista de processo, os modelos de contexto não
estabelecem claramente como os outros sistemas trabalham ou como eles serão
desenvolvidos... Ele só revela aquilo que está no ambiente...
Para que tenhamos o entendimento do funcionamento do sistema, precisamos de outro
tipo de diagrama, por exemplo, o diagrama de atividades da UML que podemos utilizar
para definir como é que as coisas ocorrem dentro dos vários ambientes ou dentro do
nosso contexto...
Os Modelos de Interação irão trabalhar a interação do usuário com o sistema. Essa
interação é uma ação entre um agente ou um ator e um objeto de sistema ou um sistema
em particular...
Quando a gente trabalha essa interação, estabelecemos um conjunto de informações que
nos permite fazer o tratamento dessa informação do início até o final de sua interação...
(Slide 12 – Modelos de Interação) – Leitura/Visualização.
Professor André: A gente pode modelar a interação através dos diagramas de caso de
uso junto com os diagramas de sequência...
(Slide 13 – Modelagem de Caso de Uso) – Leitura/Visualização.
Professor André: A Modelagem de Caso de Uso, também pode ser definida e
trabalhada através de um diagrama, mas também pode ser representada através da
descrição do caso de uso...
(Slide 14 – Diagramas de Sequência) – Leitura/Visualização.
Professor André: A descrição do caso de uso será uma descrição textual do uso de uma
determinada funcionalidade do sistema...
De certa forma, o caso de uso é muito próximo também do diagrama de sequência. O
principal objetivo do diagrama de sequência é trabalhar as interações entre os atores e os
objetos do sistema...
(Slide 15 – Modelos Estruturais) – Leitura/Visualização.
Professor André: Os Modelos Estruturais tem como objetivo definir as estruturas do
software, as estruturas do sistema. A gente costuma relacionar os modelos estruturais
aos modelos estáticos, porque eles representam a parte do sistema que sofre menos
variação... Normalmente, eles estão muito amarrados à questão das informações. Por
mais que o sistema mude de comportamento, uma vez que a gente consegue mapear
corretamente as informações que serão tratadas pelo sistema, dificilmente mudam ao
longo do desenvolvimento... Por exemplo: Quando definimos um cadastro de cliente, as
informações do cliente dificilmente serão diferentes daquela que você definiu
inicialmente...
(Slide 16 – Diagramas de Classe) – Leitura/Visualização.
Professor André: Uma das maneiras de modelar a estrutura do sistema é a gente
construir os diagramas de classe. As classes têm a vantagem de trabalhar os dados que
são manipulados pelo sistema ao longo de sua operação... No diagrama de classe, nós
conseguimos junto com a definição dos dados da classe, definir também os tipos de
informação que estamos colocando... Podemos começar um diagrama de classe mais
simplificado e acrescentar informações sobre esse diagrama ao longo do
desenvolvimento do sistema...
(Slide 17 – Modelos Comportamentais) – Leitura/Visualização.
Professor André: Os Modelos Comportamentais são modelos que definem como o
sistema reage ao longo de seu processo de operação... Os estímulos relacionados à
informações vão verificar um determinado valor ou uma determinada situação e um
comportamento de uma informação na base de informações do sistema... Os eventos
irão se relacionar nas trocas de mensagens entre as classes...
(Slide 18 – Modelagem Dirigida a Dados) – Leitura/Visualização.
Professor André: Dentro da grande etapa de modelagem, podemos direcionar a nossa
modelagem ao tratamento do fluxo de informações que é trabalhada pelo sistema. Essa
modelagem dirigida a dados foi muito usada quando tínhamos construção de sistema no
paradigma estruturado...
Temos também como fazer modelagem dirigida a dados de modo a tratar os dados de
maneira diferente do que tratamos o comportamento do sistema, ou seja, a visão de
classes que podemos ter, pode ser diferente da visão do armazenamento das
informações que a gente vai ter...
(Slide 19 – Modelagem Dirigida a Eventos) – Leitura/Visualização.
Professor André: Outra técnica de modelagem, é chamada de Modelagem Dirigida a
Eventos. Quando trabalhamos em sistema de tempo real, temos como característica
principal o controle do tempo, ou seja, o controle de tempo representa parte importante
no processamento da informação daquele sistema. Um exemplo de sistema de tempo
real pode ser o controlador do motor do automóvel... Então, uma das maneiras que
temos para modelar esse funcionamento é fazer uma modelagem dirigida a eventos,
através de um diagrama de máquina de estados...
Uma coisa importante dessa modelagem dos eventos é que os estados não são infinitos,
ou seja, nós temos um número limitado de estados que recebem os eventos
reconhecidos. Então, todo evento que será tratado é um evento conhecido do sistema...
(Slide 20 – Modelos de Máquina de Estados) – Leitura/Visualização.
Professor André: Modelos de Máquina de Estados consegue fazer o mapeamento da
resposta do sistema em relação aos eventos internos e externos. Chamamos de Modelos
de Máquinas de Estados porque através dos eventos a máquina muda de um estado para
outro estado. Podemos fazer uma analogia com uma coisa que conhecemos
razoavelmente bem que é o comportamento do carrinho do supermercado de uma loja
de E-Commerce... Então, nós temos alguns estados possíveis para o nosso carrinho de
compras... Ele pode ser um carrinho vazio, pode ser um carrinho cheio, pode ser um
carrinho com pedido realizado, pode ser um carrinho com pedido realizado e pago, o
carrinho pode passar por um processo de cancelamento... Esse funcionamento
conseguimos definir e representar através do diagrama de máquina de estados...
(Slide 21 – Engenharia Dirigida a Modelos) – Leitura/Visualização.
Professor André: Ainda falando da parte de modelagem, a engenharia dirigida a
modelos é uma técnica de desenvolvimento de software, onde a gente parte dos modelos
do sistema como principal produto do processo de desenvolvimento, ou seja, os
modelos são os principais artefatos gerados ao longo de todo processo...
Outra vantagem da engenharia dirigida a modelos é que podemos gerar programas
executáveis diretamente de nossas plataformas de modelagem...
Algumas outras ferramentas de modelagem de processo de negócio também conseguem
gerar alguns códigos e algumas simulações de funcionamento...
(Slide 22 – Arquitetura Dirigida a Modelos) – Leitura/Visualização.
Professor André: Além da modelagem dirigida a modelos, podemos trabalhar a
arquitetura dos sistemas dirigidas a modelo. De certa forma, ela é mais genérica porque
a gente consegue ver a disposição dos vários tipos de arquitetura ao longo do
desenvolvimento e o seu descolamento da plataforma...
(Slide 23 – Continuação: Arquitetura Dirigida a Modelos) – Leitura/Visualização.
Professor André: Quando falamos de arquitetura dirigida a modelos é importante a
gente ter estabelecido alguns modelos adequados a alguns níveis de abstração do nosso
sistema...
(Slide 24 – Tipos de Modelos) – Leitura/Visualização.
Professor André: Com isso, trabalhamos com os tipos de modelos que podemos gerar
que seriam: O Modelo Independente de Computação. Nesse modelo independente de
computação, ou seja, modelo de computação independente, a gente consegue modelar as
abstrações do domínio, ou seja, o funcionamento de coisas importantes do domínio do
sistema independente da plataforma que vamos utilizar...
No Modelo Independente de Plataforma, a gente já trabalha a operação do sistema, mas
não fixa uma plataforma específica para ele ser executado...
(Slide 25 – Modelos Específicos de Plataforma) – Leitura/Visualização.
Professor André: Modelos específicos de plataforma são aqueles que só servem em
uma determinada plataforma. Aqui, nós temos uma relação muito próxima do sistema
operacional utilizado...
(Slide 26 – Transformações de Model-Driven Architeture) – Leitura/Visualização.
Professor André: Se formos olhar a organização das transformações da arquitetura
dirigida a modelos, a gente consegue trabalhar essa arquitetura da seguinte maneira:
Nosso modelo independente de computação organiza as diretrizes específicas do
domínio... Através de um tradutor a gente transforma essas diretrizes e esse modelo
independente de computação em um modelo independente de plataforma... Esse modelo
independente de plataforma, também através de um tradutor, usando os padrões e regras
específicas da plataforma, transforma o modelo independente em um modelo específico
que com o uso de outro tradutor, gera um código executável...
(Slide 27 – Vários Modelos Específicos de Plataforma) – Leitura/Visualização.
Professor André: Neste slide 27, eu trago um exemplo de modelo específico de
plataforma que mostra como se trabalha com duas tecnologias ou duas linguagens de
programação especificas, a partir do modelo independente de plataforma que através de
um tradutor dependente de linguagem o transforma em um modelo específico da
linguagem... No primeiro caso temos a linguagem J2EE (Java) e no segundo caso temos
a linguagem do ambiente microsoft dotnet (.NET)... Depois temos que passar por um
gerador de código específico Java e da mesma forma passamos em um gerador
específico de C#... E no final temos um programa Java executável e temos um programa
C# executável...
Espero que vocês tenham gostado do conteúdo deste vídeo 1. Vamos para um rápido
intervalo e nos vemos daqui a pouco para o vídeo 2. Até já!

Você também pode gostar