Escolar Documentos
Profissional Documentos
Cultura Documentos
Engenharia de Software
Prof. Msc. Thiago Salhab Alves
Conceitos Gerais de Engenharia de Software
5
Conceitos Gerais de Engenharia de Software
7
Conceitos Gerais de Engenharia de Software
O que é software?
•Muitas pessoas associam o termo software aos
programas de computadores.
•Este é uma visão muito restritiva.
•Software não é apenas o programa, mas todos os
dados de documentação e configuração
associados, necessários para que o programa
opere.
•Um sistema de software consiste, geralmente, de
um conjunto de programas separados; arquivos de
configuração; documentação do usuário.
8
Conceitos Gerais de Engenharia de Software
9
Conceitos Gerais de Engenharia de Software
10
Conceitos Gerais de Engenharia de Software
• Validação de software: na qual o software é
verificado para garantir que é o que o cliente deseja.
• Evolução de software: o software é modificado para
se adaptar às mudanças dos requisitos do cliente e
do mercado.
11
Conceitos Gerais de Engenharia de Software
12
Conceitos Gerais de Engenharia de Software
Paradigmas de desenvolvimento de
software
• Modelo em cascata: especificação de requisitos;
projeto de software; implementação; teste;
• Desenvolvimento iterativo: intercala as
atividades de especificação, desenvolvimento e
validação. Um sistema inicial é desenvolvido
rapidamente e refinado com as informações do
cliente, para produzir um sistema que satisfaça
as necessidades. O sistema, pode então, ser
entregue.
13
Conceitos Gerais de Engenharia de Software
14
Conceitos Gerais de Engenharia de Software
15
Conceitos Gerais de Engenharia de Software
16
Conceitos Gerais de Engenharia de Software
17
Conceitos Gerais de Engenharia de Software
18
Conceitos Gerais de Engenharia de Software
20
Conceitos Gerais de Engenharia de Software
Engenharia de Sistemas
• É a atividade de especificação, projeto,
implementação, validação implantação e
manutenção do sistema.
Definição de Desativação do
requisitos sistema
Projeto do Evolução do
sistema sistema
Desenvolvimento Instalação do
de subsistemas sistema
Integração do
sistema 21
Conceitos Gerais de Engenharia de Software
Processos de Software
• É um conjunto de atividades que leva à
produção de um produto de software.
• Os processos de software são complexos e,
como todos os processos intelectuais e
criativos, dependem do julgamento humano.
• A ferramentas de engenharia de software
(CASE – Computer Aided Software Engineering)
podem apoiar algumas atividades do processo.
22
Conceitos Gerais de Engenharia de Software
23
Conceitos Gerais de Engenharia de Software
Modelos de processo de software
•Modelo em cascata: considera as atividades
fundamentais do processo, compreendendo
especificação, desenvolvimento, validação e
evolução, e as representa como fases de processos
separadas.
•Desenvolvimento evolucionário: intercala as
atividades de especificação, desenvolvimento e
validação. Um sistema inicial é desenvolvido
rapidamente baseado em especificações abstratas. O
sistema é refinado com as entradas do cliente para
produzir um sistema que satisfaça as necessidades.
24
Conceitos Gerais de Engenharia de Software
25
Conceitos Gerais de Engenharia de Software
Modelo em Cascata
• É o primeiro modelo de processo de
desenvolvimento de software publicado.
26
Conceitos Gerais de Engenharia de Software
28
Conceitos Gerais de Engenharia de Software
29
Conceitos Gerais de Engenharia de Software
Desenvolvimento Evolucionário
• Baseia-se na ideia de desenvolvimento de uma
implementação inicial, expondo o resultado aos
comentários do usuário e refinando esse
resultado por meio de várias versões at;e que
seja desenvolvido um sistema adequado.
30
Conceitos Gerais de Engenharia de Software
31
Conceitos Gerais de Engenharia de Software
32
Conceitos Gerais de Engenharia de Software
33
Conceitos Gerais de Engenharia de Software
34
Conceitos Gerais de Engenharia de Software
35
Conceitos Gerais de Engenharia de Software
36
Conceitos Gerais de Engenharia de Software
38
Conceitos Gerais de Engenharia de Software
Iteração de processo
•Mudanças são inevitáveis em todos os projetos
de grande porte.
•Os requisitos de sistema mudam à medida que a
empresa que está adquirindo o sistema responde
às pressões externas.
•Quando novas tecnologias se tornam disponíveis,
projetos e implementações mudam.
39
Conceitos Gerais de Engenharia de Software
Entrega Incremental
• A entrega incremental é uma abordagem
intermediária que combina as vantagens do
modelo em cascata.
• Em um processo de desenvolvimento
incremental, o cliente identifica, em linhas
gerais, os serviços a serem fornecidos pelo
sistema.
40
Conceitos Gerais de Engenharia de Software
Desenvolver
incremento de Validar incremento Integrar incremento
sistema
Validar sistema
Sistema incompleto
Sistema
final
41
Conceitos Gerais de Engenharia de Software
44
Conceitos Gerais de Engenharia de Software
Desenvolvimento em espiral
• O modelo em espiral do processo de software
foi orieginalmente proposto por Boehm.
• Em vez de apresentar o processo de software
como uma sequência de atividades com algum
retorno entre uma atividade e outra, o processo
é representado como um espiral.
• Cada loop na espiral representa uma fase do
processo de software.
46
Conceitos Gerais de Engenharia de Software
48
Conceitos Gerais de Engenharia de Software
49
Conceitos Gerais de Engenharia de Software
50
Conceitos Gerais de Engenharia de Software
Especificação de software
•A especificação de software ou engenharia de
requisitos é o processo para compreender e definir
quais serviços são necessários e identificar as
restrições de operação e de desenvolvimento do
sistema.
•A engenharia de requisitos é um estágio
particularmente crítico do processo de software,
pois os erros conduzem inevitavelmente a
problemas posteriores no projeto e na
implementação do sistema.
51
Conceitos Gerais de Engenharia de Software
52
Conceitos Gerais de Engenharia de Software
53
Conceitos Gerais de Engenharia de Software
54
Conceitos Gerais de Engenharia de Software
55
Conceitos Gerais de Engenharia de Software
56
Conceitos Gerais de Engenharia de Software
57
Conceitos Gerais de Engenharia de Software
58
Conceitos Gerais de Engenharia de Software
• Projeto de Interface: para cada subsistema é projetada
e documentada a interface com outros subsistemas. A
especificação de interface não deve ser ambígua pois
ela permite que o subsistema seja usado sem que se
tenha conhecimento da sua operação.
• Projeto de componente: os serviços alocados aos
componente e as interfaces desses componentes são
projetadas.
• Projeto de estruturas de dados: as estruturas de dados
usadas são projetadas.
• Projeto de algoritmo: os algoritmos usados são
projetados.
59
Bibliografia
60