Você está na página 1de 41

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 Engenharia de
Cincia da Computadores
Computao Administrao e
Administrao de Cincias
Projetos Administrativas
Cincias Cognitivas Engenharia de
e Fatores Humanos 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 Requisitos de software
Aquisio, anlise, especificao e gesto de
Software requisitos de software.
Design de software
Gerncia de Configurao de Software Transformao de requisitos (de software),
Identifica a configurao do sistema (caractersticas tipicamente estabelecidos em termos
documentadas do hardware e software que o relevantes ao domnio do problema, em uma
compem) em pontos discretos no tempo, de modo a descrio explicando como solucionar os
controlar sistematicamente suas mudanas e manter aspectos do problema relacionados com
sua integridade e rastreabilidade durante o ciclo de software
vida do sistema. Construo de Software
Gerncia de Engenharia de Software Construo de programas funcionais e
Gerencia projetos de desenvolvimento de software. coerentes atravs da codificao, auto-
Processo de Engenharia de Software validao, e teste unitrio.
Define, implementa, mede, gerencia, modifica e Teste de Software
aperfeioa o processo de desenvolvimento de Verificao dinmica do comportamento do
software programa atravs do uso de um conjunto finito
Ferramentas e Mtodos de casos de teste - adequadamente
Ferramentas de software automatizam o processo selecionados de um domnio de execues
de engenharia de software usualmente infinito - contra o comportamento
esperado deste
Mtodos impem estrutura sobre a atividade de
desenvolvimento e manuteno de software com o Manuteno de Software
objetivo de torna-la sistemtica e mais propensa ao Atividades de suporte custo-efetivo a um
sucesso. sistema de software, que pode ocorrer antes e
Qualidade de Software aps a entrega do software.
Conjunto de atividades relacionadas com garantia Aps a entrega do software so feitas
de qualidade de software, entre estas as atividades modificaes com o objetivo de corrigir falhas,
de verificao e validao. melhorar seu desempenho ou adapta-lo a um
ambiente modificado.
Antes da entrega do software so feitas
As 10 reas da Engenharia de Software, Conforme o SWEBOK, porde
atividades Jorge H C Fernandes, Dez/2004
planejamento.
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
Two-Tier
Servlets
Three-Tier N-Tier
Cliente Java Cliente Java Cliente Java
Aplicao/Applet, Aplicao/Applet, Aplicao/Applet,
HTML Browser HTML Browser HTML Browser
java.net java.net java.net
Middleware Middleware HTTP
HTTP HTTP
java.servlet javax.servlet javax.servlet
Servlets Servlets
Servlets
java.sql java.net, javax.servlet

SGBD Relacional

A B C
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Arquiteturas Multi-Camadas com
Enterprise
Two-Tier
Java
N-Tier
Beans (EJBs)
N-Tier
Cliente Java Cliente Java Cliente Java
Aplicao/Applet, Aplicao/Applet Aplicao/Applet,
HTML Browser
java.rmi, javax.jndi java.rmi, javax.jndi java.net
Middleware Middleware HTTP
RMI, JNDI RMI, JNDI
javax.ejb javax.ejb javax.servlet
EJBs Servlets
EJBs java.rmi,
javax.jndi java.sql java.rmi, javax.jndi

SGBD Relacional

A B C
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Funcionamento dos Applets
Web Server
Web Browser
WWW
(HTTP(s)) Applet 1

Applet 2

Applet 3

Interface Browser

Applet 1

Applet 2

Applet 3

Pgina HTML
Applet1

Applet2

Applet3

Classe Classe Applet Sandbox


As 10Objeto Objeto
reas da Engenharia Applet Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
de Software,
Funcionamento dos MIDlets
Web Server
WWW
(HTTP(s))

Repositrio Sandbox
Web
MIDlet
SUITE 1A

MIDlet
SUITE 2B

SUITE 3
SUITE C
MIDlet 3

SUITE 1

SUITE 2

SUITE 3 SUITE 1
Applet1

Applet2

Applet3
Pgina HTML
Descritor de Aplicao (JAD)
Arquivos (Imagens, etc)
Classe Classe MIDlet
AsObjeto Objeto
10 reas da Engenharia de MIDlet RecordStore
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
Concorrncia e
tratamento de excees

herana de implementaes

alocao de memria
Estruturas de
Controle
classes-mdulos-interfaces
Subrotinas
estruturasClasses
de controle e
subrotinas
Objetos
Herana
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
Plano de Teste: <APLICACAO> <VERSO-DO-PLANO>
Autor: <AUTOR-PLANO>
Configurao sob teste: <DESCRIO-CONFIG><VERSO-CONFIG>
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>
As 10 reas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Log de Teste
Log de Teste: <APLICACAO> <VERSO-DO-PLANO>
Testador: <TESTADOR>
Configurao sob teste: <DESCRIO-CONFIG><VERSO-CONFIG>
Data: <DATA DE REALIZACAO DO 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?>

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 Lei da Conservao da
Contnua Familiaridade
Lei da Complexidade Lei Crescimento
Crescente Contnuo
Leis da Auto-
Lei da Qualidade em
Regulao
Declnio
Lei Conservao da
Estabilidade
Organizacional

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


CONSUMO PRODUTOS
CLIENTES E SERVIOS

REQUISITOS SOLUES

PROCESSO PRODUTIVO DE
SOFTWARE E SISTEMAS

PESSOAS

METODOS TREINAMENTO FERRAMENTAS


SOFTWARE HARDWARE
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


Dimenso Espacial Organizao do RUP

Dimenso Temporal
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

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

Você também pode gostar