Escolar Documentos
Profissional Documentos
Cultura Documentos
Software
https://www.dimap.ufrn.br/~jair/ES/c1.html
https://sisacad.educacao.pe.gov.br/bibliotecavirtual/bibliotecavirtual/texto/CadernodeINFOProjetodeDesen
volvimentodeSoftwareRDDI.pdf
https://profareane.files.wordpress.com/2013/07/aula-4-uml.ppt
Análise e Projetos Orientado a Objetos – Rudson K.S. Carvalhpo - diagramasumlv3-140325212653-phpapp01
Sistemas:
◦ Conjunto de partes coordenadas que concorrem para a realização de um determinado objetivo
◦ Conjunto de elementos identificáveis que tem entre si relações e que atuam segundo um objetivo
Projeto e Desenvolvimento de Sistemas: O que é?
Um processo de desenvolvimento de software pode ser visto como um conjunto de atividades organizadas,
usadas para definir, desenvolver, testar e manter um software.
◦ Alguns objetivos do processo de desenvolvimento:
Definição das atividades a serem executadas;
Quando determinada atividade deve ser executada;
Pessoa ou grupo a executar tais atividades;
Padronização no processo de desenvolvimento.
Determinar o objetivo do sistema, definir o papel do hardware, software, pessoal, base de dados e
procedimentos, obter, analisar, especificar, modelar, validar e gerencias os requisitos
Antes de fabricar o software deve-se entender o sistema no qual está inserido
https://www.google.com.br/url?sa=i&source=images&cd=&ved=2ahUKEwjt4v3bovfcAhWEgJAKHYPWB6cQjxx6BAgBEAI&url=https%3A%2F%2Fslideplayer.com.br%2Fslide%2F341643%2F&psig=AOvVaw0TmeX6ZLvLliHG8zI
mQND0&ust=1534704386892732
https://www.devmedia.com.br/atividades-basicas-ao-processo-de-desenvolvimento-de-software/5413
Engenharia de Sistemas
Projeto e Desenvolvimento de Sistemas: O que é?
Independente do processo de desenvolvimento, há as seguintes atividades básicas:
Levantamento de requisitos;
Análise de Requisitos;
Projeto;
Implementação;
Testes;
Implantação.
https://www.google.com.br/url?sa=i&source=images&cd=&ved=2ahUKEwjt4v3bovfcAhWEgJAKHYPWB6cQjxx6BAgBEAI&url=https%3A%2F%2Fslideplayer.com.br%2Fslide%2F341643%2F&psig=AOvVaw0TmeX6ZLvLliHG8zI
mQND0&ust=1534704386892732
https://www.devmedia.com.br/atividades-basicas-ao-processo-de-desenvolvimento-de-software/5413
Atividades Básicas
Levantamento de Requisitos:
◦ Objetivo: compreender as necessidades dos clientes em relação ao sistema a ser desenvolvido. Levantar e priorizar as necessidades
(requisitos) dos futuros usuários do software
compreender o problema desenvolvedores e usuários devem ter a mesma visão do que deve ser construído
Análise de Requisitos (especificação de requisitos)
◦ Objetivo: estudo detalhado dos dados levantados na atividade anterior construção dos modelos que representam o sistema de
software a ser desenvolvido. ( estratégia da solução)
◦ Definir o que o sistema deve fazer, antes de definir como o sistema irá fazer.
◦ Realizar a validação e verificação dos modelos construídos, antes de partir para solução do problema.
◦ Validação: tem por objetivo, assegurar que o sistema de software está atendendo às reais necessidades do cliente;
◦ Verificação: verifica se os modelos construídos na análise estão em conformidade com os requisitos do cliente.
Como esta especificação precisa ser validada por clientes e usuários, normalmente ela é feita através de uma notação informal, como
a linguagem natural, ou usando uma linguagem gráfica semi-formal como UML
https://www.dimap.ufrn.br/~jair/ES/c2.html
https://www.dimap.ufrn.br/~jair/ES/c3.html
https://www.dimap.ufrn.br/~jair/ES/c4.html
https://www.dimap.ufrn.br/~jair/ES/c5.html
https://www.devmedia.com.br/atividades-basicas-ao-processo-de-desenvolvimento-de-software/5413
Atividades Básicas
Projeto
• Objetivo: definir como o sistema funcionará internamente, para que os requisitos do cliente possam ser atendidos
• Aspectos a considerar: arquitetura do sistema, linguagem de programação utilizada, Sistema Gerenciador de Banco de
Dados (SGBD) utilizado, padrão de interface gráfica, entre outros.
◦ No projeto é gerada uma descrição computacional, mencionando o que o software deve fazer, e deve ser coerente com a
descrição realizada na fase de análise de requisitos.
◦ O projeto OO possui duas atividades básicas:
◦ projeto da arquitetura (ou projeto de alto nível): visa distribuir as classes de objetos relacionados do sistema em subsistemas e
seus componentes, distribuindo também esses componentes pelos recursos de hardware disponíveis. Normalmente é realizado
por um arquiteto de software
◦ projeto detalhado (ou projeto de baixo nível): visa modelar as relações de cada módulo para que realizem as funcionalidades do
módulo,desenvolver o projeto de interface com o usuário e o projeto de banco de dados .
https://www.dimap.ufrn.br/~jair/ES/c6.html
https://www.dimap.ufrn.br/~jair/ES/c7.html
https://www.devmedia.com.br/atividades-basicas-ao-processo-de-desenvolvimento-de-software/5413
Atividades Básicas
Implementação
• Objetivo: codificar o sistema a partir da descrição computacional da fase de projeto em uma outra linguagem, onde se torna
possível a compilação e geração do código-executável para o desenvolvimento software. Em PDOO, a implementação se dá,
definindo as classes de objetos do sistema em questão, fazendo uso de linguagens de programação ou frameworks de
desenvolvimento ( que podem fazer o uso de ferramentas CASE, que dinamizam o processo de desenvolvimento, nas várias
atividades, onde inclui-se geração de código-fonte, documentação, etc.)
Testes
• Objetivo: validar o produto de software, testando cada funcionalidade de cada módulo, levando em consideração a especificação
feita na fase de projeto. Ao final dessa atividade, os diversos módulos do sistema são integrados, resultando no produto de software.
https://www.dimap.ufrn.br/~jair/ES/c8.html
Implantação
• Objetivo: instalar o software no ambiente do usuário. Inclui os manuais do sistema, importação dos dados para o novo sistema e
treinamento dos usuários para o uso correto e adequado do sistema. Em alguns casos quando da existência de um software anterior,
também é realizada a migração de dados anteriores desse software.
https://www.devmedia.com.br/atividades-basicas-ao-processo-de-desenvolvimento-de-software/5413
Fronteira entre Análise e Projeto
– Abstrações da realidade
– Focam somente no que realmente
interessa para um
determinado observador em um dado
momento
É uma simplificação da realidade:
Planos de detalhes, podem ser
estruturais (organização do
sistema) ou comportamentais
(dinâmica do sistema
Modelos são construídos para permitir um melhor entendimento sobre o sistema que está sendo construído: especificar a estrutura e comportamento;
guia para construção do sistema; documentam as decisões tomadas
11
Razões para construção de modelos
a construção de modelos como uma atividade que atrasa o desenvolvimento do software propriamente dito?
Mas essa atividade propicia...
◦ O gerenciamento da complexidade inerente ao desenvolvimento de software.
◦ A comunicação entre as pessoas envolvidas.
◦ A redução dos custos no desenvolvimento.
◦ A predição do comportamento futuro do sistema.
15
Diagramas e Documentação
No contexto de desenvolvimento de software, correspondem a desenhos gráficos que seguem algum
padrão lógico.
Podemos também dizer que um diagrama é uma apresentação de uma coleção de elementos gráficos que
possuem um significado predefinido.
Diagramas normalmente são construídos de acordo com regras de notação bem definidas.
◦ Ou seja, cada forma gráfica utilizada em um diagrama de modelagem tem um significado específico.
17
Por que 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
A UML (Linguagem de Modelagem Unificada) permite modelar:
Elementos;
Relacionamentos;
Mecanismos de extensibilidade;
Diagramas
18
UML (Linguagem de Modelagem Unificada)
Visualização:
A existência de um modelo visual facilita a comunicação Construção:
e faz com que os membros de um grupo tenham a Geração automática de código a partir do modelo visual.
mesma ideia do sistema. Geração do modelo visual a partir do código
Cada símbolo gráfico tem uma semântica bem definida. Ambientes de desenvolvimento de software atuais
permitem mapeamentos em ambos sentidos e
O que modelamos? manutenção da consistência entre as duas visões.
Dimensões: dados, função, comportamento
Especificação: Documentação:
•Especificar significa construir modelos precisos, sem •Artefatos como requisições de negócios, modelo de
ambiguidades e completos. arquitetura, código fonte, modelo de análise, protótipo e
•A UML atende todos os requisitos de especificação outros documentos, pode ser documentados com a UML.
dentro de um processo, desde a fase de análise até a fase
de testes e implementação do sistema concluído
Por que usar UML?
oSuporta todo o ciclo de vida do software
oSuporta diversas áreas de aplicação
oÉ baseado na experiência e necessidades da comunidade de utilizadores
oÉ suportado por muitas ferramentas
Por que usar UML?
oÉ padronizado (garante organização).
oComunicar a estrutura e o comportamento desejado de um sistema.
oVisualizar e controlar a arquitetura de um sistema. UML oferece uma descrição Arquitetônica do Sistema,
isto é, 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)
oPara melhorar o nosso entendimento de um sistema e, assim, expor oportunidades para melhorias e
reutilização.
oUtilização de uma notação padronizada que abrange qualquer tipo de sistema.
oFacilidade no entendimento da orientação a objetos.
oConceito em realidade.
Componentes da UML
A estrutura de conceitos da UML consiste num conjunto variado de notações, as quais
podem ser aplicados em diferentes domínios de problemas e a diferentes níveis de
abstração. Pode ser vista através das seguintes noções:
Um processo de desenvolvimento que utilize a UML como linguagem de modelagem envolve a criação de
diversos documentos.
◦ Estes documentos, denominados artefatos de software, podem ser textuais ou gráficos.
Os artefatos gráficos produzidos no desenvolvimento de um SSOO são definidos através dos diagramas da
UML.
oA UML 2.0 possui 13 diagramas, que servem para especificar a estrutura de um sistema.
oOs diagramas da UML estão organizados em conjuntos ou categorias distintas, cada categoria visando
apoiar um tipo de modelagem.
Organização Comportamento
Para que usar os diagramas UML?
oOs diagramas UML são usados para:
• Ajudar a conceber as ideias, em relação ao sistema que estivermos projetando;
• Pensar antes de codificar;
• Apresentar as ideias ao grupo de forma que todos possam interagir e discutir um determinado
ponto;
• Aumentar a participação e envolvimento do time;
• Documentar as ideias quando elas já estiverem bem consolidadas para que novos integrantes e
novos colaboradores possam acelerar sua compreensão dos sistemas desenvolvidos pelo grupo.
Diagrama: revisão
Um diagrama provê uma parcial representação do sistema.
Ele ajuda a compreender a arquitetura do sistema em desenvolvimento.
Os diagramas:
Caso de uso, classes, sequência, objeto, colaboração, atividade, estado, implantação, pacotes,
componentes
30
Diagramas de classes
31
Diagramas de pacotes
Organizam elementos do sistema em
grupos relacionados a fim de minimizar a
dependência entre eles
32
Diagramas de objetos
33
Diagramas de casos de uso
34
Diagramas de seqüências
35
Diagramas de Comunicação
36
Diagramas de estados
37
Diagramas de atividades
Ilustram a natureza dinâmica de um sistema
modelando o fluxo de controle de uma
atividade para outra
Uma atividade representa uma operação em
uma classe do sistema que resulta na
mudança do estado do sistema
Tipicamente, são usados para modelar
fluxo de trabalho ou processos de
negócio e funcionamento interno
38
Diagramas de componente
Descreve a organização dos
componentes físicos de software
39
Diagramas de implantação
40
Aplicando UML no projeto de sistemas
https://pt.slideshare.net/andreconstantino/uml-exemplos-de-modelagem-em-uml
Substantivos
• Atores (fonte de informação/solicitação ao sistema) •Atributos dos
Cliente (Gerente) objetos
• Objetos
(coisas sobre as quais os sistema quer guardar informações) •Novos
•Carro •Vendidos
•Venda
•Serviços de manutenção
•Cliente
•Troca de peças
• Agentes (meio entre ator e sistema) •revisão
Verbos de ação
dados C liente
m sg5
dados V end a
dados Manutenç ão, c arro
c ar ro
dad os Carro
Relatório Clientes
Curso Normal
1.O cliente informa as características do carro
desejado;
Compr arCar ro
2.O sistema obtém todos os carros disponíveis para m s g1, c arro A torCliente
venda;
3.O sistema exibe os carros disponíveis para venda Cursos Alternativos
ao cliente;
4.O cliente informa ao sistema o carro escolhido; Caso 1: Não existe carro disponível para venda com as
5.O sistema verifica se este cliente já está características solicitadas pelo cliente.
cadastrado; 3.O sistema emite a msg1 'Nenhum carro disponível para
6.Em caso afirmativo, o sistema solicita confirmação venda com tais características'
do cliente; 4.Finalizar caso de uso.
7.O cliente confirma a compra;
8.O sistema cadastra a nova venda; Caso 2: O cliente não foi cadastrado.
9.O sistema altera a situação do carro para 6.O sistema emite a msg1 'Cliente não cadastrado';
'vendido'; 7. Finalizar caso de uso.
10.O sistema emite a msg1 'Carro vendido'.
Diagrama de Seqüência – comprarCarro (curso normal)
: V enda : C arroV enda : C liente
1.O cliente informa as características do carro : A torC liente
9.O sistema altera a situação do carro para Cadast rar NovaV enda( )
'vendido';
alterarS ituaç ão ( " vendido" )
10.O sistema emite a msg1 'Carro vendido'. o'
m s g1 'Carro vendid
Diagrama de Seqüência – comprarCarro (cursos alternativos)
dados V enda
: V en da : C arroV enda
: A to rClien te
V enderC arro( )
V ende rCarro( )
c arros D is p o níveis
m s g1 'Nen hum c ar r o dis pon ível para venda c om tais c arac terís tic as '
dados C liente
V erific arC lient e Cadas trado( )
Curso Normal
cadastrado;
3.Em caso afirmativo,verifica quais carros
Cursos Alternativos
foram comprados pelo cliente;
4.O sistema solicita a escolha do carro que vai Curso 1: O cliente não está cadastrado.
para a manutenção; 3.Em caso negativo, sistema emite a
5.O cliente informa o carro; msg2 'Cliente não cadastrado'.
6.O sistema solicita o motivo do serviço; 4.Finalizar caso de uso.
7.O cliente informa o motivo do serviço;
8.O sistema cadastra o serviço; Curso 2: O cliente não comprou carro.
9.O sistema emite a msg2 'Carro enviado para 4.O sistema emite a msg2 'Cliente não
realizar o serviço'. comprou carro nesta revendedora'.
5.Finalizar caso de uso.
Diagrama de Seqüência – fazerManutenção(curso normal)
Curso Normal : S erviç o : C liente : Carro
: A tor Cli ente
1.O cliente informa os seus dados;
dados Cliente
2.O sistema verifica se o cliente já está V erific arC lient eC adas trado( )
cadastrado; 'c adas trado'
3.Em caso afirmativo,verifica quais
carros foram comprados pelo cliente; obterC arroCom pradoC liente( )
4.O sistema solicita a escolha do carro 'c arros c om prado s lis t a de c arros
6.O sistema solicita o motivo do serviço; s olic itaç ãoM otivoS erviç o
9.O sistema emite a msg2 'Carro m s g2 'C arro enviado para r ealizar o s erviç o'
C li ente C arro
nome 0 ..1 0. .n p lac a
c om pra
endereç o fabr ic a nte
telefone m odelo
envia para s erviç o
CP F 1 1. .n a no
S erviç o
des cr iç ão
preç o
Diagrama de Classes V enda
data
Cli ente C ar ro
n ome 0. .1 0.. n plac a
c om pra
e ndere ç o fabric ante
t elefo ne m odelo
envia para s erviç o
CP F 1 1.. n ano
S erviç o
des cr iç ão
preç o
Revis ão Troc aP eç as
Diagrama de Classes (atributos e métodos)
Ca rro
pla c a
fab ricante
1
m odelo é en viado
an o
0. .1 1
V erific arC lient eC adas trado()
O bt erTod os C lie ntes () Im
prim irRelató rioC lientes ()
V end a adic iona rClie nteR elató rio()
data
Nome: João
data_admissão:12/12/2000
CPF: 111111111
salário_base:1000.00
Classes
Estrutura
Define as características que um conjunto de elementos (objetos) tem em comum
Durante a modelagem do sistema definimos CLASSES
Objetos
Instância (ocorrência)
Na execução do sistema o que existe é um conjunto de OBJETOS
Diagrama de Objetos
Usado na modelagem de estrutura de objetos
Fornece uma visão instantânea (“congelada”)
de um conjunto de objetos no Sistema,
descrevendo o estado de cada objeto e as
relações que existem entre esses objetos em
um dado ponto no tempo.
A representação de um objeto (instância) é
semelhante ade uma classe:
◦ No compartimento do nome, indica-se o nome do
objeto (variável de referência) seguido por : (dois
pontos) e o nome da classe que o objeto
representa, e ambos sublinhados.
◦ O nome da referência pode ser omitido,
resultando assim em uma instância anônima.
◦ No compartimento dos atributos, indica-se o valor
dos atributos em um determinado momento da
execução do sistema.
Diagrama de Pacotes
Um Diagrama de Pacotes
demonstra o agrupamento das
classes e/ou interfaces.
Modelo
Modelo
Cliente Produto
Diagrama de Pacotes
Um Diagrama de Pacotes
demonstra o agrupamento das
classes e/ou interfaces.
Demonstra a decomposição de
um sistema: em subsistemas, em
um sistema de camadas
Modelo
Cliente Produto
Diagrama de Pacotes
Demonstra a decomposição em subsistemas: Demonstra a decomposição em camadas:
<<System>>
Banco Online