Engenharia 1
Engenharia 1
Engenharia 1
Engenharia de Software I
Competências específicas
•Analisar as áreas funcionais da empresa e suas
necessidades em relação aos sistemas de informação.
LIN-200 Inglês II
Engenharia de Software I
Objetivo: Aplicar os princípios e conceitos da Engenharia de Software na
implementação do componente software, como parte dos Sistemas de
Informação e iniciar a modelagem de software (requisitos).
Bibliografia básica:
PRESSMAN, R. S. Engenharia de software. 6.ed. McGraw-Hill, 2006.
SOMMERVILLE, I. Engenharia de software. 8.ed. Addison Wesley, 2007.
6
Método de Ensino
Objetivo das Aulas:
- Fundamentação Teórica
- Atividades práticas de desenvolvimento
Forma de avaliação:
- Conforme regimento interno.
- A nota do bimestre será composta pela média das atividades
(40%) e Nota da Avaliação oficial (60%)
- Caso não hajam atividades programadas pelo Professor, a média
do Bimestre será equivalente a nota da prova oficial.
Método de Ensino
Entrega de atividades individuais ou em grupo:
- Por email: afs.software@gmail.com
Assunto: Fatec-ADSVA2-99-RA-RA-RA....
onde: 99 – nº da Atividade
RA – nº do RA do aluno
Corpo do email:
RA, Nome dos alunos
Instruções (caso necessário)
Anexos: No formato original. (sem compactar)
*** O Professor vai enviar uma resposta confirmando o recebimento.
Método de Ensino
A Jornada se inicia.....
10
TI aplicada aos negócios
11
Casos de sucesso com software
Reid Hoffmann
Orkut Buyukkoten Mark Zuckerberg Fonte: http://guizone.blogspot.com/2011/07/os-10-
Fonte: http://valterandrade.blogspot.com/2010/06/o- Fonte: http://guizone.blogspot.com/2011/07/os-10-nerds- nerds-mais-bem-sucedidos-da.html
criador-da-rede-social-orkut.html mais-bem-sucedidos-da.html 12
Evolução da Internet e dos
dispositivos de computação
13
Dispositivos móveis
14
Só para Entretenimento?
15
TI aplicada aos negócios
16
TI aplicada aos negócios
17
Tecnologias para construção de software?
18
Como construir software sem defeitos?
19
Objetivos, Conceitos e
Evolução da Engenharia
de Software
Problemas com o Software
Não funcionam como o esperado
Custo maior que o estimado
Mudanças geram problemas
- Grupo de 4 alunos
22
Modelagem
É atividade de construir modelos que facilitam o
entendimento e compreensão das características ou
comportamento de um software ou sistema de software.
Exemplo: Programação
Exemplo: Banco de dados
Exemplo: Análise de Requisitos
Análise Estruturada de Sistemas (DFD)
Exemplo: Análise de Requisitos
Análise orientada a objetos (UML)
Engenharia de Software
Uma Tecnologia em camadas
Ferramentas
Métodos
Processos
Foco na qualidade
Métodos
Ferramentas
Processos
Sequencial
linear Processo
Unificado
Espiral
XP
Scrum
Vantagens
- Simplicidade
- Etapas de trabalho bem definidas
Desvantagens
- O trabalho é visível para o usuário apenas na entrega.
- Requisitos “não podem” mudar
35
Paradigmas de desenvolvimento de Software - 35
Modelo de Prototipagem
Vantagem
- Obtenção e validação dos requisitos através de interações
entre desenvolvedor e usuário do sistema para avaliar o
protótipo.
Desvantagem
-O desenvolvedor tende a não considerar aspectos que
foram desconsiderados para facilitar a construção do
protótipo.
Paradigmas de desenvolvimento de Software - 37
Modelo incremental
Sistema pronto
Fonte: Sommerville (2007)
Processos de Engenharia de Software - 38
Modelo incremental
Aplicação
- Em situações onde a exigência para entrega é alta e a
compreensão do usuário sobre o problema não é
satisfatória.
Vantagem
- Obtenção e validação dos requisitos através de interações
entre desenvolvedor e usuário do sistema que subsidiam a
construção de uma parte do sistema.
Desvantagem
- Dificuldades para o desenvolvedor efetuar a integração
com outros sistemas.
Processos ágeis
Exemplos
Extreme
programming
DAS
DSDM
FDD
SCRUM
CRYSTAL
Processos ágeis
XP – Extreme Programming
Projeto simples, cartões CRC Soluções de ponta, protótipos
Histórias do usuário, valores,
critérios de teste de aceitação,
plano de iteração
Projeto
Planejamento Refatoração
Codificação
Teste
Programação em pares
Teste unitário
Incremento de software Teste de aceitação integração contínua
velocidade calculada do
projeto
Processos ágeis
Scrum
Fases
• Planejamento
• Sprints Reunião diária
do Scrum 24h
• Encerramento
Acúmulo de
tarefas pela 30 dias
equipe
Sprint Backlog
Nova demonstração
Levantamento de de funcionalidade
prioridades do produto
Fonte: Santos e Luz (2002)
Processos de Engenharia de Software - 44
Referencias
Engenharia de Software I