Buscar

aula 2 slide

Prévia do material em texto

MODELAGEM DE 
SISTEMAS 
AULA 02
TÓPICOS
• UML
Modelagem de sistemas
• A modelagem de sistemas de software 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
• Porque usar modelos na construção de sistemas:
 Gerenciamento da complexidade
 Comunicação entre as pessoas envolvidas
 Redução dos custos no desenvolvimento
 Previsão do comportamento futuro do sistema
Orientação a Objetos
• O paradigma da orientação a objetos visualiza um sistema de software como
uma coleção de agentes interconectados chamados objetos.
• Cada objeto é responsável por realizar tarefas específicas.
• É pela interação entre objetos que uma tarefa computacional é realizada
Sistemas OO
• Um sistema de software orientado a objetos consiste em objetos em 
colaboração com o objetivo de realizar as funcionalidades desse sistema
• Cada objeto é responsável por tarefas específicas
• É graças a cooperação entre objetos que a computação do sistema se 
desenvolve
RUP
• O RUP, abreviação de Rational Unified Process (ou Processo Unificado Rational), é um
processo proprietário de Engenharia de software criado pela Rational Software Corporation,
adquirida pela IBM, ganhando um novo nome IRUP que agora é uma abreviação de IBM
Rational Unified Process e tornando-se uma brand na área de Software, fornecendo técnicas
a serem seguidas pelos membros da equipe de desenvolvimento de software com o objetivo
de aumentar a sua produtividade no processo de desenvolvimento.
• O RUP usa a abordagem da orientação a objetos em sua concepção e é projetado e
documentado utilizando a notação UML (Unified Modeling Language) para ilustrar os
processos em ação. Utiliza técnicas e práticas aprovadas comercialmente.
• É um processo considerado pesado e preferencialmente aplicável a grandes equipes de
desenvolvimento e a grandes projetos, porém o fato de ser amplamente customizável torna
possível que seja adaptado para projetos de qualquer escala. Para a gerência do projeto, o
RUP provê uma solução disciplinada de como assinalar tarefas e responsabilidades dentro
de uma organização de desenvolvimento de software, é, por si só, um produto de software. É
modular e automatizado, e toda a sua metodologia é apoiada por diversas ferramentas de
desenvolvimento integradas e vendidas pela IBM através de seus "Rational Suites".
Métodos concorrentes no campo da engenharia de software incluem o "Cleanroom"
(considerado pesado) e os Métodos Ágeis (leves) como a Programação Extrema (XP-Extreme
Programming), Scrum, FDD e outros.
UML 
• Linguagem padrão da OMG (http://www.omg.org/) 
• O Object Management Group® (OMG®) é um consórcio de padrões de 
tecnologia sem fins lucrativos e de associação aberta internacional.
• Fundada em 1989, os padrões OMG são direcionados por fornecedores, 
usuários finais, instituições acadêmicas e agências governamentais. As 
Forças-tarefa OMG desenvolvem padrões de integração empresarial para 
uma ampla gama de tecnologias e uma gama ainda maior de indústrias.
• http://www.omg.org/spec/UML/
Segundo Craig Larman em seu livro : 
Utilizando UML e Padrões 
Perspectivas em UML
Modelagem visual segundo Craig 
Larman
Breve histórico
EVOLUÇÃO DA UML
Artigo 
• https://projetos.inf.ufsc.br/arquivos_projetos/projeto_721/artigo.tcc.pdf
• Documentação atual:
• http://www.omg.org/spec/UML/2.4.1/
Para que serve a UML
• Visualização
• Especificação
• Construção
• Documentação 
• ...de softwares orientados a objetos
Visualização
• A existência de um modelo visual facilita a comunicação e faz com que os 
membros de um grupo tenham a mesma idéia do sistema.
• Cada símbolo gráfico tem uma semântica bem definida.
Especificação
• É uma ferramenta poderosa para a especificação de diferentes aspectos 
arquiteturais e de uso de um sistema.
Construção
• Geração automática de código a partir do modelo visual
• Geração do modelo visual a partir do código
• Ambientes de desenvolvimento de software atuais permitem:
– movimentações em ambos sentidos e
– manutenção da consistência entre as duas visões.
Documentação
• Pode incluir artefatos como:
• Deliverables (documentos como especificação de requisitos, especificações funcionais, 
planos de teste, etc.).
• Materiais que são importantes para controlar, medir, e refletir sobre um sistema 
durante o seu desenvolvimento e implantação.
Descrição Arquitetônica
• UML oferece uma forma padrão de se desenhar as “plantas” (como em 
arquitetura) de um sistema de forma a incluir:
• aspectos abstratos (processos de negócio, funcionalidades do sistema)
• aspectos concretos (classes C++/Java esquemas de bancos de dados, componentes de 
software reutilizáveis)
Razões para Modelar
• Comunicar a estrutura e o comportamento desejado de um sistema.
• Visualizar e controlar a arquitetura de um sistema.
• Para melhorar o nosso entendimento de um sistema e, assim, expor 
oportunidades para melhorias e reutilização.
• Para administrar os riscos e trade-offs.
• A UML não é um método de
desenvolvimento, ela não diz para
você o que fazer primeiro e em
seguida ou como desenhar seu
sistema, mas ela lhe auxilia a
visualizar seu desenho e a
comunicação entre objetos.
VISÃO GERAL- POR QUE MODELAR?
Princípios da Modelagem
• A escolha dos modelos a serem criados tem profunda influência sobre a 
maneira como um determinado problema é atacado e como uma solução é 
definida
• Cada modelo poderá ser expresso em diferentes níveis de precisão
• Os melhores modelos estão relacionados à realidade
• Nenhum modelo único é suficiente.
• Qualquer modelo não-trivial será melhor investigado por meio de um 
pequeno conjunto de modelos quase independentes
Objetivos da Modelagem
• Compreender melhor o sistema que estamos desenvolvendo 
• Visualizar o sistema
• Documentar decisões tomadas
• Especificar comportamento ou a estrutura de um sistema
A UML não é
• Um processo
• Uma metodologia
• Análise e projeto OO
• Regras de projeto
DEFINIÇÃO
UML é uma linguagem padrão para
elaboração da estrutura de projetos de
software
UML é adequada a modelagem de sistemas
UML é apenas uma linguagem e, portanto,
é somente uma parte de um método para o
desenvolvimento de software.
Elementos principais
•Blocos de Construção
•Regras
•Mecanismos
MODELO CONCEITUAL
• Itens
Estruturais
Comportamentais
Agrupamento
Anotacionais.
BLOCOS DE CONSTRUÇÃO DA 
UML
Relacionamentos
Dependência
Associação
Generalização
Realização.
Classes
Objetos
Casos de Uso
Seqüências
Colaborações
Gráficos de estados
Atividades
Componentes
Implantação
Diagramas
• Itens são os blocos de construção básicos orientados a objetos 
da UML. São utilizados para escrever modelos bem formados
• Os relacionamentos reúnem Itens
• Os diagramas agrupam coleções de Itens
ITENS EM UML
ITENS EM UML
Itens Estruturais
São os substantivos utilizados. Representam a parte mais estática do
modelo, os elementos conceituais ou fisicos. Ao todo existem sete tipos
de itens estruturais
ITENS ESTRUTURAIS
Classe
Caso de UsoColaboraçõesInterface
Classe Ativa
Componentes
Nós
ITENS EM UML
Itens Comportamentais
São as partes dinâmicas dos modelos de UML
São verbos de um modelo representando comportamento no tempo e
no espaço
ITENS COMPORTAMENTAIS
 Interação: Comportamento que abrange um conjunto
de mensagens trocadas entre objetos num contexto
específico
Máquina de estados: Especifica as seqüências de
estados pelas quais objetos e interações passamdurante sua existência em resposta a eventos.
Itens de Agrupamento
São partes organizacionais dos modelos de UML. Servem para a
organização de elementos (como itens estruturais ou
comportamentais) em grupos.
ITENS EM UML
PACOTES
TENS DE AGRUPAMENTO
ITENS ANOTACIONAIS
•Itens Anotacionais
São partes explicativas dos modelos de UML
São comentários, incluídos para descrever,
esclarecer e fazer alguma observação sobre
qualquer elemento do modelo.
NOTNOTAS
• Itens
Estruturais
Comportamentais
Agrupamento
Anotacionais.
BLOCOS DE CONSTRUÇÃO DA 
UML
Relacionamentos
Dependência
Associação
Generalização
Realização.
Classes
Objetos
Casos de Uso
Seqüências
Colaborações
Gráficos de estados
Atividades
Componentes
Implantação
Diagramas
RELACIONAMENTOS EM 
UML
• São blocos relacionais básicos de construção da UML. Como os
Itens, os relacionamentos são utilizados para escrever modelos
bem-formados.
 Relacionamento de Dependência
 Relacionamento de Associação
 Relacionamento de Generalização
 Relacionamento de Realização
RELACIONAMENTO DE 
DEPENDÊNCIA
• É um relacionamento semântico entre dois itens nos quais a
alteração de um (o item independente) pode afetar a semântica
do outro item (o item dependente).
É um relacionamento estrutural
que descreve um conjunto de
ligações
São conexões entre objetos
Agregação é um tipo especial de
associação
RELACIONAMENTO DE ASSOCIAÇÃO
0..1 * 
Empregador Funcionário
RELACIONAMENTO DE 
GENERALIZAÇÃO
• É um Relacionamento de
especialização nos quais os objetos
dos elementos especializados
(filhos) são substituíveis por objetos
do elemento generalizado (pais).
RELACIONAMENTO DE 
REALIZAÇÃO
É um relacionamento semântico entre
classificadores, em que um classificador
especifica um contrato que outro
classificador garante executar. São
encontrados em dois lugares:
Entre interfaces e as classes ou
componentes que as realizam
Entre casos de uso e as colaborações
que os realizam
• Itens
Estruturais
Comportamentais
Agrupamento
Anotacionais.
BLOCOS DE CONSTRUÇÃO DA 
UML
Relacionamentos
Dependência
Associação
Generalização
Realização.
Classes
Objetos
Casos de Uso
Seqüências
Colaborações
Gráficos de estados
Atividades
Componentes
Implantação
Diagramas
DIAGRAMAS EM UML
• São apresentações gráficas de um
conjunto de elementos
• São desenhados para permitir a
visualização de um sistema sob
diferentes perspectivas
• Apresenta uma visão parcial dos
elementos que compõe o sistema
• O mesmo elemento pode aparecer
em vários diagramas (todos, alguns
ou em nenhum).
DIAGRAMAS EM UML
Diagrama de Classes
Diagrama de Objetos
Diagrama de Casos de Uso
Diagrama de Sequências
Diagrama de Colaborações
Diagrama de Gráficos de Estados
Diagrama de Atividades
Diagrama de Componentes
Diagrama de Implantação
DIAGRAMAS EM UML
DIAGRAMAS EM UML
DIAGRAMA DE CLASSES
 Exibe conjunto de classes,
interfaces e colaborações, bem
como seus relacionamentos.
 Mostram uma visão estática do
sistema.
DIAGRAMA DE CLASSES
DIAGRAMA DE CLASSES
DIAGRAMA DE CASOS DE USO
DIAGRAMA DE CASOS DE USO
Caso de Uso: Ou Use Case, é
uma sequencia de ações que o
sistema executa e produz um
resultado de valos para o ator.
Modela o diálogo entre
atores e o sistema
É um fluxo de eventos
completo e consistente
O conjunto de todos os Use
Case representa todas as
situações possíveis de
utilização do sistema.
Ator ou Usuário: Qualquer
entidade que interage com o
ativa ou passivamente com o
Sistema.
Pode ser uma pessoa, ouro
sistema ou máquina.
Não é parte do sistema.
Representa papéis que o
usuário pode desempenhar.
DIAGRAMA DE CASOS DE USO
Elementos principais
•Blocos de Construção
•Regras
•Mecanismos
MODELO CONCEITUAL
REGRAS NA UML
Nomes:
Quais nomes podem ser atribuídos a coisas, relacionamentos e diagramas
Escopo:
O contexto que determina um significado específico para um nome
REGRAS NA UML
Visibilidade:
Como estes nomes podem ser vistos 
e utilizados pelos outros
Integridade:
Como os itens se relacionam entre si 
de forma adequada e consistente
Execução:
O que significa executar ou
simular um modelo semântico
Elementos principais
•Blocos de Construção
•Regras
•Mecanismos
MODELO CONCEITUAL
MECANISMOS
• Especificações: fornece declaração textual da sintaxe e
semântica do respectivo bloco de construção.
• Adornos: São os simbolos básicos que iniciam todos os
elementos da notação da UML.
• Divisões comuns: Pode dividir classes e objetos ou
interface e implementação
Permite aos usuários estender a linguagem de
maneira controlada.
• Estereótipos, Restrições e Valores Atribuídos
são os mecanismos de extensibilidade fornecidos
pela UML para permitir adicionar novos blocos de
construção, criar novas propriedades e espcificar
nova semântica.
MECANISMOS DE EXTENSÃO
CONSIDERAÇÕES
Vale a pena dizer que a UML é muito
mais que a padronização de uma
notação, é o desenvolvimento de novos
conceitos. Por essa razão entender UML
não é apenas aprender a ler uma
simbologia, mais significa aprender a
modelar orientando a objetos.
Visão de casos de uso
• Descreve o sistema de um ponto de 
vista externo como um conjunto de 
interações entre o sistema e os 
agentes externos ao sistema
• É uma visão criada inicialmente e 
direciona o desenvolvimento das 
outras visões do sistema
Visão de projeto (Lógica)
• Analistas e desenvolvedores
• Ligada ao problema do negócio
• Enfatiza as características do sistema 
que dão suporte tanto estrutural 
quanto comportamental, às 
funcionalidades externamente visíveis 
do sistema
• Coleção de pacotes, classes e 
relacionamentos
Visão de implementação (de 
componente)
• Desenvolvedores
• Descrição da implementação dos 
módulos e suas dependências
• Abrange o gerenciamento de versões 
do sistema, construídas pelo 
agrupamento de módulos 
(componentes) e subsistemas
Visão de implantação (física, de 
organização)
• Contém a parte física do sistema e a 
conexão entre as sub partes, interação 
entre hw-sw, com o objetivo de colocar 
o sistema em operação
Visão de processo
• Enfatiza as características de 
concorrência, sincronização e 
desempenho do sistema
Casos de uso
Levantamento de requisitos
• É a etapa de compreensão do problema aplicada ao desenvolvimento de 
software.
• O principal objetivo do levantamento de requisitos é que o usuários e 
desenvolvedores tenha a mesma visão do problema a ser resolvido
• Nessa etapa, os desenvolvedores, juntamente dos clientes, tentam levantar e 
definir as necessidades dos futuros usuários do sistema a ser 
desenvolvido(requisitos)
Requisitos funcionais
• Definem as funcionalidades do sistemas
 “o sistema deve permitir que cada professor realize o lançamento de notas das 
turmas nas quais lecionou”
 “o sistema deve permitir que um aluno realize sua matrícula nas disciplinas 
oferecidas em um semestre letivo”
 “os coordenadores de escola devem poder obter o número de aprovações, reprovações 
e trancamentos em cada disciplina oferecida em um determinado período”
Requisitos não-funcionais
• Declaram características de qualidade que o sistema deve possuir e que 
estão relacionadas às suas funcionalidades
 Confiabilidade: tempo médio entre falhas, recuperação de falhas
 Desempenho: tempos de resposta esperados
 Portabilidade: restrições as plataformas de hw
 Segurança: restrições do sistema em relação a acessos não-autorizados
 Usabilidade: facilidadede uso, necessidade ou não de treinamento dos usuários
Requisitos normativos
• Declaração de restrições impostas sobre o desenvolvimento do sistema como 
adequação a prazos, custos, plataforma tecnológica, aspectos legais, regras 
de negócio, políticas de funcionamento específicas do domínio do problema
Análise
• Corresponde a quebrar o sistema em seus componentes e estudar como tais 
componentes interagem com o objetivo de entender como esse sistema 
funciona
• Os modelos construídos na fase de análise devem ser cuidadosamente 
validados e verificados, através da validação e verificação dos modelos, 
respectivamente
Modelagem de casos de uso
• Representação das funcionalidades externamente observáveis do sistema e 
dos elementos externos ao sistema que interagem entre eles(Bezerra, 2007. 
pág. 53)
• O modelo de caso de uso é importante, pois direciona diversas tarefas 
posteriores do processo de desenvolvimento de um sistema de software. 
• Esse modelo força os desenvolvedores a modelar o sistema de 
acordo com as necessidades do usuário
•Esse modelo representa os requisitos funcionais do sistema.
•Também direciona diversas das atividades posteriores do ciclo de vida do sistema de
software.
Casos de uso
• Um caso de uso, é a especificação de uma sequência completa de interações 
entre um sistema e um ou mais agentes externos a esse sistema
• Um caso de uso representa uma determinada funcionalidade de um sistema 
conforme percebida externamente. Representa também os agentes externos 
que interagem com o sistema.
• *** um caso de uso não revela a estrutura e os comportamento interno do 
sistema
• Cada caso de uso se define pela descrição narrativa (textual) das interações 
que ocorrem entre os elementos externos e o sistema
• A UML não define a estrutura textual a ser utilizada na descrição de um 
caso de uso (Bezerra, 2007. Pág. 55)
Utilidade dos Casos de Uso
• Equipe de clientes (validação)
– aprovam o que o sistema deverá fazer
– entendem o que o sistema deverá fazer
Equipe de desenvolvedores•
–
–
–
–
Ponto de partida para refinar requisitos de software.
Podem seguir um desenvolvimento dirigido a casos de uso. 
Designer (projetista): encontrar classes
Testadores: usam como base para casos de teste
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

Continue navegando