Buscar

Aula 1 - Engenharia II - quarta - noturno(1)

Prévia do material em texto

Centro Universitário FMU
Disciplina: 
Engenharia de Software II
Aula 1
Bacharelado em Sistemas de Informação
Tecnologia em Sistemas para Internet
Prof.: Celso Eduardo Guimarães
celso.guimaraes@fmu.br
Aula 1
Ciência da Computação
Sistemas para Internet
Engenharia de Software I
I. Apresentação do professor: breve histórico curricular.
II. Horário de aula:
19h00 – 20h15 - 1ª parte da aula (chamada antes de sair para o intervalo)
20h15 – 20h35 – intervalo
20h35 – 21h50 – 2ª parte da aula (chamada no término da aula)
Cada chamada corresponde a 1,5 períodos.
III. Apresentação dos objetivos de aprendizagem da disciplina.
IV. Explicação de como será o Processo Avaliativo dessa disciplina.
V. Revisão de conceitos importantes de Engenharia de Software I.
O Processo avaliativo na Disciplina de Engenharia de Software I
❑ A média final na disciplina será composta por duas partes: N1 e N2
▪ N1 terá peso de 40% na nota.
▪ N2 terá peso de 60% na nota.
▪ Portanto: a média final (MF) será calculada assim:
• MF = (N1 * 0,4) + (N2 * 0,6)
▪ Para compor a N1, teremos 3 avaliações:
• A1 = Prova individual valendo de 0 a 10.
• A2 = Prova individual valendo de 0 a 10. (Sistemas para Internet = prova integradora) – 29/04.
• A3 = Atividades desenvolvidas em sala de aula ou em casa. Poderão ser em grupo ou individual, 
conforme orientação do professor. Todas as atividades valerão de 0 a 10 e a nota final A3 será a média 
aritmética de todas as atividades.
• N1 = A1 + A2 + A3
▪ Para compor a nota N2, teremos:
• A4 = Atividade Prática Supervisionada (APS). Será explicada em breve. Terá peso de 10% da N2.
• A5 = Prova valendo de 0 a 10 a ser realizada dentro do calendário da instituição (entre 01/06 e 06/06)
• A6 = Avaliação substitutiva para quem perdeu A5 ou não conseguiu atingir a média requerida (6,0).
• N2 = (A4 * 0,1) + (A5 * 0,9) ou (A4 * 0,1) + (A6 * 0,9)
▪ Não haverá qualquer tipo de arredondamento.
▪ Média final mínima para ser aprovado = 6,0.
Objetivos de Aprendizagem – Engenharia de Software II
1. Aplicar o RUP
2. Elaborar e desenvolver a documentação de um projeto orientado a objetos com UML.
3. Analisar o processo de desenvolvimento de um projeto orientado a objetos utilizando a UML como linguagem
padrão.
4. Aplicar os principais padrões de projeto, aprofundando a compreensão sobre análise e projeto orientado a
objetos.
5. Aplicar os conhecimentos acerca de Gerenciamento de Configuração de Software e seus desdobramentos.
6. Analisar a teoria sobre Qualidade de Software, evidenciando os principais modelos de maturidade de software –
CMMI, MPSBR e SPICE.
7. Elaborar, planejar e desenvolver documentação de Testes de Software (plano de testes, cenário de testes e casos
de teste).
8. Aplicar os conceitos básicos sobre Desenvolvimento e práticas ágeis de software.
9. Aplicar os conceitos básicos de boas práticas de Desenvolvimento de Software.
10. Aplicar e Desenvolver os conceitos básicos de Testes Ágeis de Software Aplicar os princípios básicos da
Engenharia de Software Orientada a Serviços.
11. Elaborar os diagramas da UML para representar o problema. Refinar os diagramas incluindo particularidades
tecnológicas para detalhar a documentação do sistema a ser codificado.
12. Construir diagramas que representem a arquitetura de implantação e implementação dos componentes do
software
Engenharia: aplicação de métodos 
científicos ou empíricos à utilização dos 
recursos da natureza em benefício do ser 
humano.dicionário
Um engenheiro é um profissional de engenharia, preocupado com a aplicação 
do conhecimento científico, matemático e da criatividade para desenvolver 
soluções para problemas técnicos.
Engenharia é a aplicação do conhecimento científico, econômico, social e 
prático, com o intuito de inventar, desenhar, construir, manter e melhorar 
estruturas, máquinas, aparelhos, sistemas, materiais e processos.
https://pt.wikipedia.org/wiki/Engenharia
É um ramo da engenharia com foco em desenvolver 
sistemas de software de Alta Qualidade e Custos 
Adequados
O QUE É???
Engenharia de Software
Processo de Software
Processo de software é um conjunto de 
atividades que leva à produção de um produto 
de software.
Sommerville
Na elaboração de um produto ou sistema, é 
importante seguir uma série de passos previsíveis
— um roteiro que ajude a criar um resultado de alta 
qualidade e dentro do
prazo estabelecido. O roteiro é denominado...
processo de software (Pressman)
Modelo de Processo de Software
Sommerville
É uma descrição simplificada de um 
processo de software, que é apresentada a 
partir de uma perspectiva específica. Os 
modelos, pela sua natureza, são 
simplificações. 
Os modelos tem como objetivo serem “mapas”, fornecendo 
“diretrizes” de como conduzir um projeto de software.
Processo Unificado
Modelo Cascata
Modelo Espiral
Modelo Ágil xP
Comunicação. Antes de iniciar qualquer trabalho técnico, é de vital 
importância comunicar-se e colaborar com o cliente (e outros interessados). 
A intenção é compreender os objetivos das partes interessadas para com o 
projeto e fazer o levantamento das necessidades que ajudarão a definir as 
funções e características do software.
Planejamento. Qualquer jornada complicada pode ser SIMPLIFICADA caso 
exista um mapa. 
O mapa — denominado plano de projeto de software — define o trabalho de 
engenharia de software, descrevendo as tarefas técnicas a ser conduzidas, os 
riscos prováveis, os recursos que serão necessários, os produtos resultantes a 
ser produzidos e um cronograma de trabalho.
Fases no processo de Desenvolvimento de 
Software
Modelagem. Paisagistas, construtores de pontes, engenheiros aeronáuticos, 
carpinteiros, arquitetos, trabalham com modelos todos os dias. 
Cria-se um “esboço” da coisa, de modo que se possa ter uma ideia do todo —
qual será o seu aspecto em termos de arquitetura, como as partes 
constituintes se encaixarão e várias outras características.
Se necessário, refina-se o esboço com mais detalhes, numa tentativa de 
compreender melhor o problema e como resolvê-lo. 
Um engenheiro de software faz a mesma coisa criando modelos 
para melhor entender as necessidades do software e o projeto que 
irá atender a essas necessidades.
Fases no processo de Desenvolvimento de 
Software
Construção. Essa atividade combina geração de código (manual ou 
automatizada) e testes necessários para revelar erros na codificação.
Emprego. O software (como uma entidade completa ou como um 
incremento parcialmente efetivado) é entregue ao cliente, que 
avalia o produto entregue e fornece feedback, baseado na avaliação
Fases no processo de Desenvolvimento de 
Software
Engenharia de Software
Áreas de Conhecimento
❑ Requisitos de software
❑ Projeto de software
❑ Construção de software
❑ Teste de software
❑Manutenção de software
❑ Gerência de configuração de software
❑ Gerência de engenharia de software
❑ Processos de Engenharia de Software
❑ Ferramentas e Métodos de Engenharia de Software
❑ Qualidade de software
Vamos relembrar sobre conceitos de...
O QUE É UM REQUISITO DE SOFTWARE?
➢ O que são requisitos de software? 
➢ O que são requisitos funcionais?
➢ O que são requisitos não funcionais?
➢ Como descrever requisitos funcionais e não-funcionais? 
➢ Qual a diferença entre requisitos funcionais e regras de negócio?
Questões importantes que você deve saber 
responder!!!
Quais funções são requeridas pelo sistema e quais as 
restrições para a sua operação.
Especificação
Engenharia de Software
Também conhecida como Engenharia de Requisitos
Estágio (fase) importante do processo de software, 
uma vez que erros nesse estágio inevitavelmente 
produzem problemas posteriores no projeto e na 
implementação do sistema.
Uma condição ou capacidade necessária para um 
usuário RESOLVER um problema ou alcançar um 
objetivo
REQUISITO DE SOFTWARE
Engenharia de Requisitos
(IEEE)
Requisitos
Funcionais Não Funcionais
– Permitir cadastramento de novos clientes
– O sistema deveráenviar e-mail de alerta 
quando o estoque atingir o ponto mínimo.
– O sistema deverá emitir relatório diário 
dos indicadores de vendas
Testabilidade Confiabilidade
Segurança Manutenibilidade
Desempenho Escalabilidade
Elicitação de Requisitos
• Veja essa ficha cadastral 
de clientes;
• Imagine que a empresa 
faz essas fichas para 
manter um arquivo 
manual de cadastro de 
clientes ( essa empresa 
não tem um sistema 
informatizado); 
• Vamos agora pensar que essa empresa tem as seguintes regras de negócio:
o Para que os clientes façam compras parceladas, é necessário preencher a ficha de 
clientes;
o O vendedor deverá confirmar as informações por meio de documento e fazendo 
uma ligação no local de trabalho do cliente;
o Todas as informações da ficha precisam ser preenchidas.
O QUE SÃO REGRAS DE 
NEGÓCIO???
• Agora vamos pensar em 
desenvolver um sistema 
para esse cliente;
• Vamos considerar as 
regras de negócios como 
requisitos de software (o 
software terá que 
atender a essas 
funcionalidades);
• Poderíamos ainda estabelecer alguns requisitos funcionais:
o No campo cidade deve existir uma lista de municípios para seleção;
Ou melhor....
o Ao preencher o CEP, os campos cidade e endereço sejam preenchidos 
automaticamente (para isso devemos segregar o campo endereço em logradouro, 
número e complemento).
O QUE SÃO REGRAS DE 
NEGÓCIO???
Diferença de Requisito Funcional e Regra de Negócio
A diferença entre requisito funcional e regra de negócio, 
conceitualmente falando, é que o REQUISITO FUNCIONAL refere-se 
à O QUE O SISTEMA DEVERÁ FAZER, enquanto a REGRA DE 
NEGÓCIO refere-se a COMO O SISTEMA DEVERÁ FAZER. 
Do ponto de vista do negócio (negócio do cliente para o qual o 
sistema está sendo feito), ambos são necessidades (requisito 
funcional e Regra de Negócio), mas cada uma com um foco 
diferente.
Concluindo, sempre que tiver dúvida se o que você está 
escrevendo é uma Regra de Negócio ou um Requisito de 
Software, seja funcional ou não funcional, faça este 
exercício: Tire o software e veja se o que você está 
escrevendo acontecerá sem ele.
Se sim, é uma regra de 
negócio, se não, é um 
requisito de software.
https://www.youtube.com/watch?v=QyJDkR1Ejt4
https://www.youtube.com/watch?v=QyJDkR1Ejt4
Requisitos Funcionais
Requisitos não Funcionais
❑ Definem propriedades e restrições do sistema como 
tempo, espaço, linguagens de programação, versões do
compilador, SGBD, Sistema Operacional, método de
desenvolvimento, etc. 
✓ Uma dica importante é que os requisitos não funcionais 
são geralmente mensuráveis e assim devemos 
preferencialmente associar uma medida ou referência 
para cada requisito não funcional. 
❑RUP
• Abreviação de Rational Unified Process , tornou-se um 
processo proprietário da Rational Software Corporation.
❑2003
• IBM compra a Rational e o processo passar a ser chamado 
de IRUP.
• Todo o framework IRUP é mantido e fornecido pela IBM.
Processo Unificado Histórico
➢O processo é uma tentativa de aproveitar as 
melhores práticas e as melhores características dos 
processos tradicionais.
➢Dedica grande foco em
✓Dar importância à comunicação com o cliente; 
✓Métodos racionalizados (sequenciados) para descrever a visão do cliente sobre um 
sistema – Casos de Uso;
✓Enfatizar a importância do papel da arquitetura de software (ajuda o arquiteto a 
manter o foco nas metas corretas: compreensibilidade, confiança em mudanças 
futuras e reutilização);
✓Sugerir um fluxo de processo iterativo e incremental, proporcionando a sensação 
evolucionária.
Processo Unificado
Rational Unified Process
• É suportado por ferramentas que automatizam
grande parte das atividades de desenvolvimento.
• É processo configurável. 
• Dificilmente um único processo é adequado para o 
desenvolvimento de todos os tipos de software. 
• Ele pode ser ajustado (customizado) para pequenas equipes 
de desenvolvimento bem como para grandes organizações. 
• Captura as melhores práticas de desenvolvimento da Engenharia de 
Software.
Fases do Processo Unificado
Pressman
Fases do Processo Unificado
Concepção
• O objetivo dessa fase é estabelecer um 
Business Case para o sistema.
• Identifica-se todas as Entidades Externas (inclui 
pessoas e sistemas) que irão interagir com o sistema a 
ser construído, definindo também suas interações.
• As informações são usadas para avaliar a contribuição do sistema 
com o negócios para entendimento da viabilidade do sistema (deve-se 
seguir em frente com o projeto?)
Fases do Processo Unificado
Concepção
• Protótipo pode ser desenvolvido 
para validação do cliente.
• As iterações devem ser definidas quanto: quantidade / objetivos.
• O planejamento identifica RECURSOS, AVALIA RISCOS, define um 
CRONOGRAMA e estabelece uma base para as fases que serão 
aplicadas à medida que o incremento de software é desenvolvido.
Fases do Processo Unificado
Elaboração
• OBJETIVO:
✓ Um modelo de requisitos para o sistema;
✓ Uma descrição de arquitetura;
✓ Um plano de desenvolvimento para o 
software.
• Essa fase envolve atividades de comunicação e modelagem.
• Nela devem ser desenvolvidas os casos práticos iniciais levantados na fase 
anterior (concepção). 
• Nessa fase é essencial chegar a um entendimento do domínio do problema.
Fases do Processo Unificado
Elaboração
• Essa etapa amplia a representação da 
arquitetura para o sistema.
• Deve buscar complementar o levantamento (documentação dos 
casos de uso), voltado para a arquitetura do sistema.
• Revisar a modelagem do negócio para os projetos.
• Deve buscar o entendimento de:
-O plano do projeto é confiável?
- Custos são admissíveis?
Fases do Processo Unificado
Construção
• Relacionada principalmente às 
atividades de programação e testes 
do sistema.
• Ao concluir essa fase:
- Deve-se ter um sistema de software em funcionamento e a 
documentação associada pronta para ser liberada para os 
usuários do sistema.
• As partes do sistema são desenvolvidas paralelamente e 
integradas durante essa fase do PU.
Fases do Processo Unificado
Construção
• A fase de construção do PU é idêntica à 
atividade de construção definida para o 
processo de software genérico.
• A entrada para a fase de construção é Modelo de Arquitetura.
• A fase de construção desenvolve ou adquire componentes de software.
• Esses componentes farão com que cada caso prático se torne operacional para os 
usuários finais.
• Os modelos de requisitos e de projeto (iniciados na fase de elaboração), são 
completados para refletir a versão final do incremento de software.
Fases do Processo Unificado
• Ao final dessa fase:
-Deverá ter um sistema de software 
- Documentado
- Funcionando Corretamente
- Documentação e Software devem ser disponibilizados no 
ambiente operacional.
Transição
• Transferência do sistema do “Ambiente 
de Desenvolvimento” para o “Ambiente 
de Produção”.
• Go Live no ambiente real!
Fases do Processo Unificado
Transição
• Essa fase ainda possui os últimos estágios da Construção.
• Entrega-se o software aos usuários finais para testes beta e 
o feedback dos usuários relata defeitos e mudanças 
necessárias.
• Além disso, a equipe de software elabora material com as 
informações de apoio (por exemplo, manuais para o usuário, guias 
para resolução de problemas, procedimentos
de instalação) que são necessárias para lançamento da versão. 
• Na conclusão da fase de transição, o incremento torna-se uma versão 
do software utilizável.
Fases do Processo Unificado
❖ Nesse modelo, é provável que
▪ Ao mesmo tempo em que as fases de construção, transição e 
produção estejam sendo conduzidas.
-Já se tenha iniciado o incremento de software seguinte. 
▪ Isso significa que as cinco fases do PU não ocorrem em sequência, 
mas sim concorrentemente.
Produção
• Durante essa fase
- Monitora-se o uso contínuo do software
- Disponibiliza-se suporte para o ambiente operacional
- Realiza-se e avalia-se relatórios de defeitos e 
solicitações de mudanças.
As duas Dimensõesdo RUP
❑O processo unificado pode ser descrito por 
duas dimensões, ao longo de dois eixos:
• Eixo horizontal representa o tempo e mostra o aspecto dinâmico do processo. 
Ele é expresso em termos de ciclos, fases, iterações e marcos. (Fases)
• Eixo vertical representa o aspecto estático do processo. Ele é descrito em 
termos de atividades, artefatos, papéis e fluxos. (Disciplinas)
1. Iniciação ou Concepção: ênfase no escopo do sistema;
2. Elaboração: ênfase na arquitetura;
3. Construção: ênfase no desenvolvimento;
4. Transição: ênfase na implantação.
As fases indicam a 
ênfase que é dada no 
projeto em um dado 
instante.

Mais conteúdos dessa disciplina