Professional Documents
Culture Documents
Rosario Girardi
UFMA
2002
Tabela de contedo
CAPTULO 1 -
7
7
7
8
8
8
9
11
11
12
13
14
15
16
17
CAPTULO 2 -
MODELOS DE DESENVOLVIMENTO
18
18
18
19
19
19
20
20
20
21
22
22
23
23
23
24
24
25
25
26
26
26
27
2
2.11.2
2.11.3
DESENVOLVIMENTO
MANUTENO
CAPTULO 3 -
ENGENHARIA DE SISTEMAS
ENGENHARIA DE REQUISITOS
PRINCIPAIS CONCEITOS
TIPOS DE REQUISITOS
PROBLEMAS DOS REQUISITOS
E.R. MOTIVAO
QUESTES MAIS FREQENTEMENTE PERGUNTADAS SOBRE REQUISITOS (FAQS)
A ENGENHARIA DE REQUISITOS E AS OUTRAS FASES DO CICLO DE
DESENVOLVIMENTO
4.7 FUNDAMENTOS DA ANLISE DE REQUISITOS
4.8 TAREFAS DA ANLISE DE REQUISITOS
4.8.1 RECONHECIMENTO DO PROBLEMA
4.8.2 COMPREENSO E REPRESENTAO DE DOMNIO
27
28
29
29
29
30
32
32
32
33
33
34
35
36
37
37
38
38
39
39
40
40
41
41
42
43
44
45
45
46
46
47
47
47
48
48
48
49
3
5.1.6 HIPERTEXTO
5.1.7 ORIGENS
5.1.7.1 Psicologia cognitiva
5.2 EVOLUO
5.3 REQUERIMENTOS DE UMA INTERFACE
5.3.1 REQUERIMENTOS DE UMA GUI
5.4 O SOM NA INTERAO
5.4.1 SISTEMAS DE RECONHECIMENTO DE VOZ
5.4.1.1 Sintetizadores da fala
5.5 PERCEPO NA INTERAO
5.5.1 PERCEPO VISUAL
CAPTULO 6 -
O PROJETO DE SOFTWARE
6.1 MODULARIDADE
6.2 FASES DO PROJETO DE SOFTWARE
6.2.1 O PROJETO GLOBAL
6.2.1.1 Diagramas de estrutura
6.3 TCNICAS DE PROJETO
6.3.1 PROJETO ESTRUTURADO
6.3.1.1 Mtodo do projeto estruturado
6.3.2 PROJETO DETALHADO
CAPTULO 7 SOFTWARE
49
49
50
51
53
53
54
54
55
55
55
57
58
58
59
59
60
61
61
64
7.1 INTRODUO
7.2 FUNDAMENTOS DOS PROJETOS
7.2.1 COMO CONDUZIR UM PROJETO DE SOFTWARE?
7.2.2 COMO INICIAR UM PROJETO DE SOFTWARE?
7.2.3 O QUE CONSIDERAR NO PLANEJAMENTO DE PROJETO DE SOFTWARE?
7.2.4 OS ASPECTOS COMUNS QUE DEVEM SER CONSIDERADOS NAS TCNICAS
ADMINISTRATIVAS:
7.2.5 PREVISO DE RISCOS
7.2.6 DETERMINAO DOS PRAZOS
7.2.7 MONITORAO E CONTROLE
66
66
67
68
68
69
69
70
70
70
73
73
74
75
76
76
76
76
4
A REUTILIZAO DE SOFTWARE
76
77
77
79
79
79
79
80
80
80
81
81
82
82
82
83
83
83
83
84
84
84
85
85
86
86
87
87
87
88
88
88
88
89
89
90
91
91
91
92
92
93
93
94
5
8.5.2.5
8.5.2.6
8.5.2.7
8.5.2.8
8.5.2.9
Esquemas de software
Geradores de aplicaes
Linguagens de muito alto nvel (VHLL)
Sistemas de transformao
Arquiteturas
Engenharia de Software
Prof. Rosrio Girardi
96
97
98
99
100
Captulo 1 -
Melhorar a qualidade
Engenharia de Software
Prof. Rosrio Girardi
1.4 O qu o software?
SOFTWARE = PROGRAMAS (instrues) + ESTRUCTURAS DE DATOS +
ESPECIFICACOES + MANUAIS DE USO
As instrues, quando se executam, subministram o comportamento esperado do
sistema. As estruturas de dados armazenam a informao que os programas
manipulam. Os manuais descrevem a operao e o uso dos programas. As
especificaes descrevem os software nas diferentes fases de desenvolvimento
(anlise, projeto e implementao).
O software composto por dos tipos de componentes: componentes no
executveis, como especificaes de requerimentos e de projeto e componentes
executveis, como o cdigo de um programa.
1.5.1
Elementos de um SC
Engenharia de Software
Prof. Rosrio Girardi
1.5.2
Isto deu origem crise do software.A diminuio de custos dos dispositivos de armazenamento em disco permitiu
desenvolver SGDB (Sistemas de gerncia de bases de dados)
Comeam a surgir novas modalidades de interao homem-computador, como as
interfaces de comando
Como conseqncia disso, as aplicaes de software se tornam cada vez mais
sofisticadas
Nesta era tambm comea a se desenvolver a capacidade de comunicao de
dados. Aparecem os sistemas de teleprocessamento. Estes sistemas possuem 3
funes combinadas:
processamento das BD
Engenharia de Software
Prof. Rosrio Girardi
10
sistemas distribudos
sistemas de controle
1.5.3
educao,
comercio
eletrnico,
jogos,
Processamento centralizado
Engenharia de Software
Prof. Rosrio Girardi
11
Importncia do CPD
Administradores do CPD
centros de poder
distinguir de descentralizao
redundncia de atividades
1.5.3.2
Processamento distribudo
Engenharia de Software
Prof. Rosrio Girardi
processamento
distribudo
foi
12
Substituio de
teleprocessamento
transferencia
fsica
de
dados
(papel)
por
reas geogrficas
Grupos funcionais
Funes do PD
Modelos de desenvolvimento
Ciclo de vida
Engenharia de Software
Prof. Rosrio Girardi
13
Ferramentas - Aplicaes de software que do suporte automtico ou semiautomtico a mtodos ou metodologias para o desenvolvimento de software
Ambientes de desenvolvimento
mortalidade infantil
deterioro
Engenharia de Software
Prof. Rosrio Girardi
14
Curva real
cambio
Curva idealizada
Software de sistemas
Software de tempo real - mede, analisa e/o controla sucessos do mundo real
na medida que ocorrem. Distinguir entre software de tempo real e software
interativo. Um sistema de tempo real deve responder dentro de limites estritos
de tempo. O tempo de resposta em um sistema interativo pode ser superado
sem que se produza nenhum desastre.
Engenharia de Software
Prof. Rosrio Girardi
15
falta de documentao
quantidade e qualidade
Qual a soluo?
Engenharia de Software
Prof. Rosrio Girardi
16
Confiabilidade do software
Engenharia de Software
Prof. Rosrio Girardi
17
Paradigma da prototipao
Combinao de paradigmas
hardware
Engenharia de Software
Prof. Rosrio Girardi
18
software
pessoas
instalaes
2.1.2
Funciones requeridas
Rendimentos
Interfaces
2.1.3
Projeto
2.1.4
Codificao
19
um o mais programas
2.1.5
Prova
2.1.6
Integrao
2.1.7
Manuteno
Engenharia de Software
Prof. Rosrio Girardi
20
Engenharia de
sistemas
Engenharia de
requisitos
Projeto
Codificao
Integrao
e prova
Manuteno
Engenharia de Software
Prof. Rosrio Girardi
21
Engenharia de
requisitos
PROTOTIPO
CONSTRUIDO
experimental
sistema final
Projeto
rpido
Construo
do prottipo
Usar e avaliar
o prottipo
Prottipo
satisfatorio?
NAO
Engenharia de Software
Prof. Rosrio Girardi
22
2.4.1
Quando aplica-lho
2.4.2
Vantagens da prototipao
2.4.3
Problemas da prototipao
Engenharia de Software
Prof. Rosrio Girardi
23
Engenharia de
requisitos
Estrategia
de projeto
Implementao
usando L4G
Aplicao
24
Engenharia de Software
Prof. Rosrio Girardi
25
2.10 Groupware
Trabalho em grupo no desenvolvimento de software assistido por computador
Necessrio para o desenvolvimento de grandes aplicaes
Ferramentas
tormenta de idias (brainstorming)
planificao
resoluo de conflitos
inspeo de software
Engenharia de Software
Prof. Rosrio Girardi
26
Definio
Desenvolvimento
Manuteno
2.11.1 Definio
O qu
Qu informao se processa
Qu funo e rendimento se deseja
Qu qual ser a interface com o usurio
Qu critrios de avaliao se utilizaro para provar a correo do sistema
Fases
Anlise do sistema
Planejamento
Anlise de requerimentos
2.11.2 Desenvolvimento
O como
Como se projetaro as estruturas de dados
Como se projetara a arquitetura do software
Como se detalham os procedimentos
Fases
Engenharia de Software
Prof. Rosrio Girardi
27
projeto
Codificao
Prova
2.11.3 Manuteno
Cmbios que necessrios introduzir ao sistema por:
Engenharia de Software
Prof. Rosrio Girardi
28
Criar uma especificao do sistema que seja a base para tudo o trabalho
posterior
3.1.1
29
A tecnologia disponvel;
3.1.2
Estudo de viabilidade
Manuteno da informao
Consulta da informao
Anlise e simulao
Custos
Acondicionamento de instalaes
Engenharia de Software
Prof. Rosrio Girardi
30
Capital
Custos
Benefcios
Ponto de igualdade
Custos
Anos
Perodo de amortizao
Viabilidade operativa
Avaliao do impacto da introduo do sistema na organizao
Viabilidade tcnica
Avaliao da existncia de tecnologia e recursos humanos para a cosntruo do
sistema
Viabilidade legal
Determinar possveis infraes que possam surgir com a construo do sistema
Alternativas
Avaliao de possveis alternativas para o desenvolvimento do sistema
Engenharia de Software
Prof. Rosrio Girardi
31
Engenharia de Software
Prof. Rosrio Girardi
32
Engenharia de Software
Prof. Rosrio Girardi
33
34
ENGENHARIA
ENGENHARIA PROJETO
DE
DE
SISTEMAS
REQUISITOS
Refinamento das
atribuies realizadas
ao software
Engenharia de Software
Prof. Rosrio Girardi
Representao da informao
e funes requeridas
35
Engenharia de
sistemas
Especificao
de requisitos
Engenharia de
requisitos
Projeto
Codificao
Manuteno
Integrao
e prova
software
Participao ativa de
Analista
Usurio/cliente
Dificuldades na comunicao
M interpretao
Falta de informao
Engenharia de Software
Prof. Rosrio Girardi
36
Reconhecimento do problema
Reviso
4.8.1
Reconhecimento do problema
CLIENTE/USURIO
Consulta
Pergunta ANALISTA
Especifica
Projeta em
alto nvel
EQUIPE
DE
DESENVOLVIMENTO
Constri
Elabora
Consulta
Consulta
Modifica
Plano do projeto
Prottipo
Especificao de requisitos
Figura 10 - Canais de comunicao
Engenharia de Software
Prof. Rosrio Girardi
37
4.8.2
O domnio da informao
o Fluxo
o Contedo
o Estrutura
4.8.2.1.1 Fluxo da informao
Armazm
de dados
Dados
de
entrada
Transformao 1
Dados
intermedirios
Transformao 2
Dados
de
sada
38
NMERO
NOME
ENDEREO
SALRIO
4.8.2.1.3 Estrutura da informao
Estudante
Disciplina
4.9.1
Decomposio do problema
SISTEMA DE BIBLIOTECA
Detalhamento
COMPRAR
EMPRESTAR
VERIFICAR
DISPONIBILIDADE
RESERVAR
REGISTRAR
EMPRSTIMO
Decomposio
Engenharia de Software
Prof. Rosrio Girardi
39
4.9.2
LOGICA
FISICA
Atribuio a elementos do SC
Abstrao (modelo)
situao real o imaginada
documento (descries grficas e ling.natural)
prottipo (especificao executvel)
representao formal (especificao executvel, validao)
Mtodos e ferramentas
L4G, geradores de aplicaes
Reuso de componentes
Programao automtica
Engenharia de Software
Prof. Rosrio Girardi
40
41
Gerentes de Projeto
Usam os documentos de requisitos para planejarem uma proposta para o sistema
e o processo de desenvolvimento do sistema.
Engenheiros de Sistema
Usam os requisitos para entenderem o sistema em construo.
Engenheiros de teste do sistema
Usam os requisitos para desenvolverem testes de validao do sistema.
Engenheiros de manuteno do sistema
Usam os requisitos para entenderem o sistema.
Engenharia de Software
Prof. Rosrio Girardi
42
4.10.3.1
Adaptando um padro
Introduo
Define o produto no qual o software est embutido, seu uso esperado e apresenta um resumo da
funcionalidade do software de controle.
Glossrio
Define todos os termos tcnicos e abreviaes usadas no documento.
Especificao de Hardware
Parte opcional que especifica o hardware que o software dever controlar. Poder ser omitido se
uma plataforma padro de instrumento for ser utilizada.
43
Engenharia de Software
Prof. Rosrio Girardi
44
Engenharia de
requisitos
PROTOTIPO
CONSTRUIDO
experimental
sistema final
Projeto
rpido
Construo
do prottipo
Usar e avaliar
o prototipo
(cliente/usuario)
SIM
Prottipo
satisfatorio?
NAO
3 - Descrio funcional
a - Texto explicativo de cada funo
b - Restries/limitaes
c - Requisitos de desempenho
d - Diagramas
Engenharia de Software
Prof. Rosrio Girardi
45
Engenharia de Software
Prof. Rosrio Girardi
46
Captulo 5 -
5.1.1
Importncia da HCI
diminuio de custos
incremento da produtividade
Engenharia de Software
Prof. Rosrio Girardi
47
5.1.2
reas de aplicao
Ambientes de desenvolvimento
software, CAD/CAM)
5.1.3
controle
de
processos,
realidade
virtual,
Interface usurio
5.1.4
Fatores humanos
Engenharia de Software
Prof. Rosrio Girardi
48
5.1.5
Metforas
5.1.6
Hipertexto
5.1.7
Origens
49
Cincia de a computao
Sicologa cognitiva
Sicologa social
Psicologia da percepo
Lingstica
Inteligncia artificial
Antropologia
5.1.7.1
Psicologia cognitiva
Mente
Procesador
de
informacin
Engenharia de Software
Prof. Rosrio Girardi
50
5.2 Evoluo
A evoluo da HCI tem se caracterizado por longos perodos de estabilidade
seguidos de rpidos cmbios. Podemos distinguir quatro geraes:
Engenharia de Software
Prof. Rosrio Girardi
51
Hipertexto e hipermdia
Realidade virtual
Interfaces post-WIMP
Interfaces adaptativas
Engenharia de Software
Prof. Rosrio Girardi
52
5.3.1
Metfora apropriada
Organizao apropriada de dados, funes, tarefas e roles
Esquema de navegao eficiente
Qualidade da aparncia (como se v)
Seqncia de interao efetiva (como se sente)
Engenharia de Software
Prof. Rosrio Girardi
53
5.4.1
Engenharia de Software
Prof. Rosrio Girardi
54
Estagio atual
reconhecimento de voz discreto (pausas)
reconhecimento de voz contnuo para reas especficas
fim e comeo de palavra
Problemas
interferncia da fala com a execuo de tarefas requerendo o uso de memria
temporal
fala e lingstica competem por os mesmos recursos cognitivos
RVoz e PNL - compreenso
5.4.1.1
Sintetizadores da fala
"text to speech"
texto ASCII como entrada
leitura do texto como sada
processamento de morfemas
simples e econmico
5.5.1
Percepo visual
objetos relacionados
leis
semelhana - objetos similares como pertencentes a grupo
Engenharia de Software
Prof. Rosrio Girardi
55
Engenharia de Software
Prof. Rosrio Girardi
56
Engenharia
de sistemas
Especificao
de requisitos
Engenharia de
requisitos
Especificao
de projeto
Projeto
Codificao
Integrao
e prova
Figura 14 - A fase de projeto no processo de desenvolvimento de software
Especificao do
problema (requisitos)
Soluo computacional
Engenharia de Software
Prof. Rosrio Girardi
57
P1
P2
P3
S1
P4
S3
P5
Definio do problema
(Especificao de requisitos)
S2
S4
S5
Subproblemas resolvidos
atravs de um ou mais
mdulos do software
6.1 Modularidade
O atributo de software que permite abordar sua complexidade
E mais fcil resolver um problema complexo quando ele dividido em partes mais
simples
Independncia funcional
Atributo principal de um bom projeto
Critrios para medir a independncia funcional
Coeso: fora funcional relativa de um mdulo
Acoplamento (conexo): Interdependncia relativa entre mdulos
58
Projeto de dados
6.2.1
O projeto global
Diagramas de estrutura
P
S1
S4
S5
S3
S4
S1
S2 S3 S4 S5
Estrutura 1
S1
S3
S2
S5
S2
Estrutura 3
Estrutura 2
Engenharia de Software
Prof. Rosrio Girardi
59
Estabelece hierarquia de
controle entre os mdulos
que compem o software
A
D
H
B
F
E
I
No estabelece
detalhes de
processos
Leque de sada
A
D
H
B
F
E
I
Leque
de
entrada
Engenharia de Software
Prof. Rosrio Girardi
60
?
P
Especificao do
problema (requisitos)
Soluo computacional
6.3.1
Projeto estruturado
Constantes
vitais
Paciente
Dados
do paciente
Monitorar
localmente
Enfermaria
Monitorar
centralmente
Lim
ite
sd
os
pac
ien
tes
S4
Mensagem
de aviso
Relatrio
Da
pac dos d
ien e
te
Gerao
de
relatrio
e
sd
do
Da iente
pac
S1
Dados
do paciente
a atualizar
Dados de paciente
Atualizao
de informao
DFD
S2
S5
S3
Diagrama de estrutura
6.3.1.1
Expandir DFD
Engenharia de Software
Prof. Rosrio Girardi
61
Anlise de transformao
Determinar tipo de fluxo de informao
Indicar os limites do fluxo
Gerar mapa estruturado a partir do DFD
Aplicar fatorizao
Refinar mapa estruturado utilizando heursticas de bom projeto
ME
MC
Mdulo
controlador
MT
MS
S
Primeiro nvel de
fatorizao
Controlador
Controlador
Controlador
sadas
chegadas
transformaes
Engenharia de Software
Prof. Rosrio Girardi
62
Mdulo
controlador
MC
A
ME
C
B
MT
MS
C
A
Segundo nvel de
fatorizao
Figura 22 - -Anlise de transformao Segundo nvel de fatorizao
Heursticas de projeto
Independncia funcional
Reduzir conexo e melhorar coeso
A
BCD
EF
Engenharia de Software
Prof. Rosrio Girardi
63
6.3.2
Projeto detalhado
Produtos:
Detalhes de processamento de cada modulo
Projeto de dados
M o d u lo K
C
G
Figura 24
Seqncia
Repetio
Extenso IF-THEN_ELSE
(DO WHILE)
Seleo de caso
T
F
Condio (IF-THEN_ELSE)
F
(REPEAT UNTIL)
T
F
F
T
T
F
Figura 25 -Construes da programao
estruturada
T
Engenharia de Software
Prof. Rosrio Girardi
64
IF-THEN-ELSE
Seqncia
1eira tarefa
2da tarefa
3eira tarefa
Condio
Parte
ELSE
Parte
THEN
Repetio
Condio
Parte
DO
WHILE
Parte
REPEAT
UNTIL
Seleo
Condio do
CASE
T
Valor
Valor
Parte
CASE
Condio
Engenharia de Software
Prof. Rosrio Girardi
65
Engenharia de Software
Prof. Rosrio Girardi
66
gerncia fraca;
prazos finais impossveis de serem cumpridos;
insatisfao dos usurios;
aumentos dos custos;
aumento na demanda de manuteno.
7.2.1
67
7.2.3
Engenharia de Software
Prof. Rosrio Girardi
68
7.2.5
Previso de riscos
Identificao;
Avaliao;
Disposio por ordem de prioridades;
Estratgias de administrao;
Resoluo;
Monitorao.
Os passos de administrao de riscos esto organizados num Plano de
Administrao e Monitoramento dos Riscos PAMR, que documenta todo o
trabalho executado como parte da anlise de riscos e usado pelo gerente de
projetos como parte do Plano de Projeto Global.
Engenharia de Software
Prof. Rosrio Girardi
69
7.2.6
Anlise
e
Projeto
Atividade
de testes
e depurao
Codificao
7.2.7
Monitorao e controle
70
Medidas diretas
Medidas Indiretas:
Funcionalidade;
qualidade;
complexidade;
eficincia;
confiabilidade;
Manutenibilidade.
As mtricas de software podem, ainda, ser divididas nas seguintes categoria:
Engenharia de Software
Prof. Rosrio Girardi
71
Mtricas tcnicas
Mtricas de qualidade
Mtricas de produtividade
Mtricas orientadas
ao tamanho
Mtricas orientadas
funo
Mtricas orientadas
A seres humanos
Produtividade =
kloc
Pessoa ms
Qualidade =
defeitos
kloc
72
$
kloc
Documentao =
Pginas de documentao
7.3.1
Engenharia de Software
Prof. Rosrio Girardi
73
Produtividade =
FP
Pessoa Ms
Qualidade =
Defeito
FP
Custo =
$
FP
Documentao=Pg. de documentao
FP
Mtricas de qualidade
74
Tamanho do programa.
As mtricas usadas aps a entrega concentram-se:
Manutenibilidade do sistema.
Engenharia de Software
Prof. Rosrio Girardi
de
75
Porque planificar?
7.4.2
Quando planificar?
7.4.3
Baseada em estimaes
tamanho do projeto
7.4.4
Engenharia de Software
Prof. Rosrio Girardi
76
Escopo do software
7.4.5
Estimao de recursos
Recursos humanos
tec
Grau de
participao
no projeto
GERENTES
PL. AR PG PD
Engenharia de Software
Prof. Rosrio Girardi
TU
TI
Fases do
desenvolvimento77
Engenharia de Software
Prof. Rosrio Girardi
78
Captulo 8 -
A Reutilizao de software
8.1.2
79
8.1.3
8.1.5
Tamanho repositrio
Browsing vs recuperao direta
Sistemas de recuperao de software baseados em palavras chaves
Vocabulrio controlado
Efetividade depende de qualidade e flexibilidade
Trabalhoso processo de consulta - seleo manual de trminos
Vocabulrio livre
Processo de consulta
simples
Engenharia de Software
Prof. Rosrio Girardi
80
Efetividade limitada
keyword barrier
8.1.6
8.1.7
classificao automtica
Conhecimento de domnio e regras de inferncia para compreenso da LN
Engenharia de Software
Prof. Rosrio Girardi
81
8.1.8
Reusabilidade
8.1.9
C d igo
A b s t r a c c i o n e s d e s o f t w a r e d e a l t o n iv e l
a r c h ite c t u r e s , f r a m e w o r k s
dom ain analysis
Figura 29
Engenharia de Software
Prof. Rosrio Girardi
82
8.1.13 Tcnicas
Composicional (blocos de construo)
Gerativa
8.1.14 Alcance
Reutilizao vertical
na mesma rea
lnhas de produo
Reutilizao horizontal
componentes genricos
aplicveis em mltiplas reas
Engenharia de Software
Prof. Rosrio Girardi
83
8.1.15 Modalidades
Black-box, as-is
White-box, modified
8.2 Evoluo
Praticada informalmente desde que a programao foi inventada
algoritmos, fragmentos de cdigo
colees funcionais
adaptao de sistemas existentes a novos requerimentos
experincias de desenvolvimento
Nascimento da reutilizao formal
Mc Ilroe of Bell Labs, 1968
8.2.1
84
Custos
Benefcios
Ponto de igualdade
Custos
Anos
Perodo de amortizao
8.3.1
Engenharia de Software
Prof. Rosrio Girardi
85
8.3.2
Qualificao e generalizao
Generalizao
Obteno de componentes genricos a partir de componentes especficos
Tecnicas
abstraction
reverse engineering
domain analysis
Custo de construo
utilidade
funcionalidade reutilizvel
variedade de funes
Qualidade
corretitude
compreenso
testabilidade
facilidade de modificao
desempenho
8.3.2.1
Classificao
conjunto de trminos
indices
Engenharia de Software
Prof. Rosrio Girardi
86
8.3.2.2
disponvel
para
compreenso
adaptao
dos
Refazer o projeto dos componentes do repositrio (ou sus hierarquias) para fazelos mais reusveis
Incluir:
8.3.3
8.3.3.1
Recuperao
Engenharia de Software
Prof. Rosrio Girardi
87
Recuperao
Adaptao
Um componente de propsito
requerimentos especficos
general
especializado
para
satisfazer
Tcnicas:
Instanciao de parmetros
Herna (simples, mltipla)
Transformaes
Refinamento
8.3.3.4
Composio
Engenharia de Software
Prof. Rosrio Girardi
88
Q u e faz
E s p e c ific a o
C o m o o faz
R e a liz a o
Figura 30
Especificao
Primeiro nvel
Realizao A
EspecificaoB
Segundo nvel
8.4.2
... V
n
Fixed part
Hidden
Fixed
partpart
V1
Especificao
Realizao
Hidden part
Figura 32 - Partes de uma abstrao
Parte fixa
caractersticas invariantes da realizao
visivel na especificao
Parte varivel
caractersticas variveis da realizao
visivel na especificao
da origem a um conjunto de realizaes alternativas
Engenharia de Software
Prof. Rosrio Girardi
90
Parte oculta
detalhes da realizao
no visvel na especificao
Distancia cognitiva
Efetividade de abstraes
Aplicabilidade das abstraes
Recuperao
Adaptao
Integrao
8.5.1.1
Distancia cognitiva
Engenharia de Software
Prof. Rosrio Girardi
91
8.5.2
Especificao
construes do HLL
Realizao
padres em linguagem de mquina
Recuperao
manuais, memria do programador
Adaptao
preenchido de slots em construes parametrizadas da linguagem
Integrao
regras de interconexo de mdulos do HLL
Efetividade das HLL
Boas abstraes
Mapeamento automtico - compilador
Engenharia de Software
Prof. Rosrio Girardi
92
Esp. informal
conceitos de projeto adquiridos atravs da experincia
na memria dos desenvolvedores
Realizao
fragmentos de cdigo fonte
Recuperao
manual, memria dos programadores
Adaptao
edio manual
conhecimento de detalhes de baixo nvel
Integrao
adaptao de fragmentos e, possivelmente, al contexto
Componentes de cdigo
Especificao
descries de componentes em um repositrio
Engenharia de Software
Prof. Rosrio Girardi
93
Realizao
mdulos, subsistemas, classes
Recuperao
dependente
qualidade abstraes
tcnicas de classificao e recuperao
Adaptao
requere componentes genricos de boa qualidade
Integrao
composicional
linguagens de interconexo de mdulos
Efetividade da reutilizao de componentes de cdigo
Aplicabilidade restringida
repositrios de domnios especficos
Adequada em domnios
bem conhecidos
estveis
colees funcionais
Distancia cognitiva pode ser grande
8.5.2.4
Objeto
Classe
Mensagens
Herna
Reutilizao
Engenharia de Software
Prof. Rosrio Girardi
94
Objeto
Entidade independente com:
estado interno (atributos, variveis de instancia)
memria donde pode armazenar-se e atualizar-se informao (estrutura de dados)
comportamento (mtodos, servios e funes)
conjunto de funes para
atender demandas de processamento de outros objetos
solicitar processamento a outros objetos
instancia de uma classe
classe
Descreve uno ou ms objetos com as mesmas variveis de instancias e
comportamento
Tanto a estrutura como ou comportamento descrita na classe
os objetos de uma classe diferem por ou valor de sus variveis de instancia
Exemplos
Class = Number, Objet = 4
Class = Mouse, Objet = Mickee Mouse
Troca de mensagens
Mecanismo de comunicao entre objetos
Solicita a execuo de um mtodo
O objeto receptor executa ou mtodo e retorna informao ao objeto que o
solicitou
Exemplo:
Message: 4 fatorial
Answer: 24
95
herana
Mecanismo para definir uma nova classe a partir de outra classe
Subclasse/superclasse
subclasse
Herda a estrutura de dados e os mtodos da superclasse
pode agregar variveis de instncia a estrutura de dados
pode agregar novos mtodos
pode cambiar a implementao dos mtodos herdados
hierarquia de classes
subclases que so superclasses de outras classes
Esquemas de software
Especificao
descrio formal de um algoritmo ou estrutura de dados (esquema)
Realizao
esquema instanciado em cdigo fonte
Recuperao
ferramentas do repositrio
Engenharia de Software
Prof. Rosrio Girardi
96
Adaptao
instanciao de parmetros
Integrao
composicional
linguagens de interconexo de mdulos
algoritmos de Knuth, PARIS, LIL
Geradores de aplicaes
Especificao
descrio de todas as partes do domnio que podem ser modeladas por ou
gerador
Realizao
sistemas executveis produzidos por ou gerador
Artefatos reutilizados
arquitetura global dos sistemas
projeto arquitetnico e detalhado
97
Integrao automtica
analise de domnio
til em domnios donde
muitos sistemas similares necessitam ser desarrolhados
sistemas que evolucionam rapidamente
so necessrios prottipos
Metageradores
Exemplos de geradores
DBMS
geradores de informes
geradores de interface-usuario
geradores de parsers e compiladores
Lex and Yacc
Efetividade dos geradores de aplicaes
Mapeamento automtico
Abstraes do domnio
Distancia cognitiva mnima
o maior parte das atividades do ciclo de desenvolvimento automatizado
Aplicabilidade limitada
8.5.2.7
Especificao
construes do VHLL
Realization
construes do HHL
Recuperao
Engenharia de Software
Prof. Rosrio Girardi
98
memria do programador
manuais
Adaptao
preenchido de parmetros nas construes da linguagem
exemplos:
SETL
Ainda muito ineficientes
Efetividade das HLL
Mapeamento automtico
linguagens de especificao executveis
Amplia aplicabilidade
Abstraes independentes do domnio
Abstraes matemticas de alto nvel
8.5.2.8
Sistemas de transformao
Seqncia de transformaes
especificao formal a implementao executvel
Especificao
regras de transformao
Realizao
seqncia de transformaes
Recuperao
biblioteca de transformaes
Adaptao
irrelevante
Engenharia de Software
Prof. Rosrio Girardi
99
exemplos
PADDLE , Glitter
Efetividade
Amplia aplicabilidade
8.5.2.9
Arquiteturas
100
Engenharia de Software
Prof. Rosrio Girardi
101
do
do
do
da
Bibliografia :
Pressman, Roger, Software Engineering: a Practitioner's Approach. Ed. McGraw Hill. 4a. Edio, 1997.
Engenharia de Software
Prof. Rosrio Girardi
102