Você está na página 1de 41

As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004

As 10 reas da Engenharia de
Software, Conforme o SWEBOK
Jorge H C Fernandes
2004
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Indicaes de que a engenharia de
software est se tornando uma
atividade de engenharia (SWEBOK)
Cursos de graduao em universidades dos
EUA, Reino Unido, Austrlia, Canad e Brasil
ISO e CMM/CMMI usados para certificar
empresas de desenvolvimento de software
Cdigo de tica
Registro e Certificao da profisso!?
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Caractersticas de uma
Engenharia (SWEBOK, 1999)
Educao de iniciao profissional validada e
legitimada pela sociedade
Registro da adequao prtica atravs de
certificao voluntria ou licenciamento compulsrio
Desenvolvimento de habilidades especializadas e
educao profissional continuada
Suporte atravs de sociedades profissionais
Compromisso a normas de conduta freqentemente
estabelecidas em um cdigo de tica
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Origens do Corpo de Conhecimentos
da Engenharia de Software
Matemtica
Cincia da
Computao
Administrao de
Projetos
Cincias Cognitivas
e Fatores Humanos
Engenharia de
Computadores
Administrao e
Cincias
Administrativas
Engenharia de
Sistemas
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Conceitos Fundamentais de
Engenharia de Software
Abstrao
Mtodos e Notaes de Anlise e Design
Prototipao de Interface com Usurio
Modularidade e Arquitetura
Ciclo de Vida e Processo de Software
Reuso
Mtricas
Suporte Automatizado
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
10 reas da Engenharia de
Software
Requisitos de software
Aquisio, anlise, especificao e gesto de
requisitos de software.
Design de software
Transformao de requisitos (de software),
tipicamente estabelecidos em termos
relevantes ao domnio do problema, em uma
descrio explicando como solucionar os
aspectos do problema relacionados com
software
Construo de Software
Construo de programas funcionais e
coerentes atravs da codificao, auto-
validao, e teste unitrio.
Teste de Software
Verificao dinmica do comportamento do
programa atravs do uso de um conjunto finito
de casos de teste - adequadamente
selecionados de um domnio de execues
usualmente infinito - contra o comportamento
esperado deste
Manuteno de Software
Atividades de suporte custo-efetivo a um
sistema de software, que pode ocorrer antes e
aps a entrega do software.
Aps a entrega do software so feitas
modificaes com o objetivo de corrigir falhas,
melhorar seu desempenho ou adapta-lo a um
ambiente modificado.
Antes da entrega do software so feitas
atividades de planejamento.
Gerncia de Configurao de Software
Identifica a configurao do sistema (caractersticas
documentadas do hardware e software que o
compem) em pontos discretos no tempo, de modo a
controlar sistematicamente suas mudanas e manter
sua integridade e rastreabilidade durante o ciclo de
vida do sistema.
Gerncia de Engenharia de Software
Gerencia projetos de desenvolvimento de software.
Processo de Engenharia de Software
Define, implementa, mede, gerencia, modifica e
aperfeioa o processo de desenvolvimento de
software
Ferramentas e Mtodos
Ferramentas de software automatizam o processo
de engenharia de software
Mtodos impemestrutura sobre a atividade de
desenvolvimento e manuteno de software com o
objetivo de torna-la sistemtica e mais propensa ao
sucesso.
Qualidade de Software
Conjunto de atividades relacionadas com garantia
de qualidade de software, entre estas as atividades
de verificao e validao.
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Requisitos de Software
Aquisio, anlise, especificao e gesto de requisitos de
software
Dividido em seis tarefas interativas
Engenharia de Requisitos
Elicitao (captura, descoberta, aquisio) de requisitos
Anlise de Requisitos
deteco e resoluo de conflitos, descoberta dos limites e interaes
do sistema com o ambiente (mapeamento dos requisitos do sistema
para requisitos do software)
Especificao de requisitos (estrutura, qualidade e verificao do
documento de requisitos)
Validao de requisitos (verificao de omisses, conflitos e
ambiguidades) + adequao s normas de qualidade.
Gesto de requisitos (gesto de mudanas, manuteno da
consistncia com as fases posteriores)
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Design de Software
Transforma requisitos em uma descrio de
soluo sob o ponto de vista do software
Decomposio e organizao em
componentes, com descrio de interfaces
entre estes componentes
Refina a descrio em nvel de detalhe
adequado construo
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Sub-reas do Design de Software
Arquitetura de software
estruturas e pontos de vista
estilos arquiteturais
padres de design
famlias de programas e frameworks
Anlise e avaliao de qualidade de design
atributos de qualidade, anlise de qualidade
ferramentas de avaliao
mtricas
Notaes de design (estruturais e comportamentais)
Estratgias e mtodos de design
estratgias gerais
design orientado a funes
design orientado a objetos
design centrado em estruturas de dados
outros mtodos
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Descrever Estruturas de uma
aplicao
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Descrever Comportamentos
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Edies Java 2 e
Seus Dispositivos
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Arquiteturas Multi-Camadas com
Servlets
Two-Tier
Cliente Java
Aplicao/Applet,
HTML Browser
java.net
A B C
SGBD Relacional
Middleware
HTTP
N-Tier
Servlets
HTTP
Three-Tier
Middleware
HTTP
javax.servlet
java.sql
Servlets
java.servlet
Servlets
javax.servlet
Cliente Java
Aplicao/Applet,
HTML Browser
java.net
Cliente Java
Aplicao/Applet,
HTML Browser
java.net
java.net, javax.servlet
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Arquiteturas Multi-Camadas com
Enterprise Java Beans (EJBs)
Two-Tier
Cliente Java
Aplicao/Applet,
java.rmi, javax.jndi
A B C
SGBD Relacional
Middleware
RMI, JNDI
N-Tier
Servlets
HTTP
N-Tier
Middleware
RMI, JNDI
javax.ejb
java.sql
EJBs
javax.ejb
EJBs
javax.servlet
Cliente Java
Aplicao/Applet
Cliente Java
Aplicao/Applet,
HTML Browser
java.net
java.rmi, javax.jndi
java.rmi, javax.jndi
java.rmi,
javax.jndi
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Applet 1
Applet 2
Applet 3
Interface Browser
WWW
(HTTP(s))
Web Browser
Web Server
Funcionamento dos Applets
Applet 1
Applet 2
Applet 3
Classe
Obj eto
A p p l e t 1
A p p l e t 2
A p p l e t 3
Pgina HTML
Sandbox Classe Applet
Obj eto Applet
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004 Obj eto MIDlet
WWW
(HTTP(s))
Funcionamento dos MIDlets
SUITE 1
SUITE 2
SUITE 3
Web Server
SUITE 2
SUITE 1
SUITE 3
MIDlet B
MIDlet A
SUITE 2
SUITE 1
SUITE 3
MIDlet B
MIDlet A
MIDlet C
S
U
I
T
E

3
S
U
I
T
E

1
Classe
Obj eto
A p p l e t 1
A p p l e t 2
A p p l e t 3 Pgina HTML
Descritor de Aplicao (J AD)
Arquivos (Imagens, etc)
Sandbox
Repositrio
Web
RecordStore
Classe MIDlet
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Arquitetura
de Sistemas
de TV
Digital
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Construo (implementao)
de Software
Implementao de software funcional e
completo atravs da codificao, auto-
validao e auto-teste (teste unitrio).
Duas vises complementares
Estilos de construo de interfaces
lingustico, formal e visual
Formalismos: Linguagem de Especificao Formal Z,
linguagem de programao funcional Haskell, ML, LISP-
Scheme.
princpios de organizao
reduo de complexidade, antecipao diversidade,
estruturao para validao e uso de normas
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Java: Um Modelo de
Organizao Semntica
Estruturas de
Controle
Concorrncia e
tratamento de excees
Subrotinas
herana de implementaes
Classes
alocao de memria
Objetos
classes-mdulos-interfaces
Herana
estruturas de controle e
subrotinas
variveis e
tipos de dados
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Teste de Software
Verificao dinmica do comportamento de
um programa atravs de uma seqncia
finita de casos de tese, adequadamente
retirada de um domnio usualmente infinito de
execues.
Tcnicas de teste
baseados na intuio, baseados em
especificao, baseado em cdigo, baseado em
falhas, baseado no uso ou conforme a natureza
da aplicao.
Black-box e white-box
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Plano de Teste
Histrico de Alteraes: <DT-CRIACO> <ALT-1> <ALT-2>,, <ALT-N>
Caso de Teste
CASO 1 Objetivo: <OBJETIVO DO CASO DE TESTE-1>
Passos: Resultado Esperado
<PASSO-1-1> <RESULTADO-1-1>
<PASSO-1-2> <RESULTADO-1-2>
<PASSO-1-n> <RESULTADO-1-n>
CASO 2 Objetivo: <OBJETIVO DO CASO DE TESTE-2>
Passos: Resultado Esperado
<PASSO-1-1> <RESULTADO-1-1>
<PASSO-1-2> <RESULTADO-1-2>
<PASSO-1-n> <RESULTADO-1-n>
Plano de Teste: <APLICACAO> <VERSO-DO-PLANO>
Autor: <AUTOR-PLANO>
Configurao sob teste: <DESCRIO-CONFIG><VERSO-CONFIG>
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Log de Teste
Casos de Teste
CASO 1 Objetivo: <OBJETIVO DO CASO DE TESTE-1>
Passos: Resultado Esperado Observaes
<PASSO-1-1> <RESULTADO-OBTIDO> <ERRO? Ou ACERTO?>
<PASSO-1-2> <RESULTADO-OBTIDO> <ERRO? Ou ACERTO?>
<PASSO-1-n> <RESULTADO-OBTIDO> <ERRO? Ou ACERTO?>
CASO 2 Objetivo: <OBJETIVO DO CASO DE TESTE-2>
Passos: Resultado Esperado
<PASSO-1-1> <RESULTADO-OBTIDO> <ERRO? Ou ACERTO?>
<PASSO-1-2> <RESULTADO-OBTIDO> <ERRO? Ou ACERTO?>
<PASSO-1-n> <RESULTADO-OBTIDO> <ERRO? Ou ACERTO?>
Log de Teste: <APLICACAO> <VERSO-DO-PLANO>
Testador: <TESTADOR>
Configurao sob teste: <DESCRIO-CONFIG><VERSO-CONFIG>
Data: <DATA DE REALIZACAO DO TESTE>
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Teste de software
Anlise da satisfao dos requisitos do sistema, definidos
por cliente e usurio, feitas por uma mquina constrida
sob coordenao de um software
Se qualquer parte da mquina muda a anlise deve ser repetida
Software
Hardware
SGBD
Rede
Pessoal
Se os requisitos mudam, a mquina mudar para atend-los, e deve
ser testada novamente
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Grandes Limitaes do Teste de
Software
1 Voc no pode testar o software em todos
os sistemas nos quais ele ser carregado
Soluo: testar em (configuraes) de
sistemas padronizadas
2 Voc no pode dialogar com a mquina
at a exausto, porque a linguagem finita,
mas os dilogos so infinitos
Soluo: tcnicas de cobertura de testes
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Manuteno de Software
Totalidade das atividades requeridas para prover suporte custo-
efetivo a um sistema de software, que pode ocorrer antes ou
aps a entrega do software.
Aps a entrega do software so feitas modificaes com o
objetivo de corrigir falhas, melhorar seu desempenho ou
adapta-lo a um ambiente modificado.
Antes da entrega do software so feitas atividades de
planejamento.
Atividades de Manuteno de Software
Implementao do processo de manuteno
Anlise do problema e modificaes
Implementao da Modificao
Reviso e aceitao da manuteno
Migrao ou Descontinuao
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Leis de Lehman Aplicveis Manuteno de
Software e Sistemas de Grande Porte
Lei da Mudana
Contnua
Lei da Complexidade
Crescente
Leis da Auto-
Regulao
Lei Conservao da
Estabilidade
Organizacional
Lei da Conservao da
Familiaridade
Lei Crescimento
Contnuo
Lei da Qualidade em
Declnio
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Gerncia de Configurao de
Software
Identifica a configurao do sistema
(caractersticas documentadas do hardware
e software que o compem) em pontos
discretos no tempo, de modo a controlar
sistematicamente suas mudanas e manter
sua integridade e rastreabilidade durante o
ciclo de vida do sistema.
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Gerncia de Engenharia de
Software
Gerencia projetos de desenvolvimento de
software.
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Ciclo de Vida do Projeto [PMBOK, 1996]
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Categorias de Processos [PMBOK, 1996]
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Consumo de Recursos por Grupo
de Processo [PMBOK, 1996]
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
reas da Gesto de Projetos
Gesto de Integrao
Gesto de Escopo
Gesto de Tempo
Gesto de Custos
Gesto de Qualidade
Gesto de Recursos Humanos
Gesto de Comunicaes
Gesto de Riscos
Gesto de Aquisies
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Processo de Engenharia de
Software
Define, implementa, mede, gerencia,
modifica e aperfeioa o processo de
desenvolvimento de software
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
PESSOAS
TREINAMENTO METODOS FERRAMENTAS
PROCESSO PRODUTIVO DE
SOFTWARE E SISTEMAS
SOFTWARE HARDWARE
PRODUTOS
E SERVIOS
REQUISITOS
SOLUES
CONSUMO
CLIENTES
Organizao Produtora
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Processos de Software
Processo disciplina
Individual
Grupal
Organizacional
Abordagens
Qualidade de Processo
Estrutura de Processo
Automao de Processo
Por onde comear?
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Ferramentas de Engenharia de
Software
Ferramentas
Automatizam as tarefas do processo de
engenharia de software
Ambientes de desenvolvimento de software
Ferramentas computadorizadas que auxiliam ao
processo de desenvolvimento de software
Automatizam tarefas repetitivas e bem definidas
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Ambiente para
Desenvolvimento
MHP em Equipe
(Frolich, 2002).
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Mtodos
Impem estrutura sobre a atividade de
desenvolvimento e manuteno de software com o
objetivo de torna-la sistemtica e mais propensa ao
sucesso.
Componentes de um Mtodo
Notao + vocabulrio
Lista de atividades e procedimentos para realiz-las
Guias para avaliar produto e processo.
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Organizao do RUP
Dimenso Temporal
D
i
m
e
n
s

o

E
s
p
a
c
i
a
l
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Qualidade de Software
Conjunto de atividades relacionadas com
garantia de qualidade de software, entre
estas as atividades de verificao e
validao.
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
As 10 reas da Engenharia de
Software, Conforme o SWEBOK
Jorge H C Fernandes
2004

Você também pode gostar