Sunteți pe pagina 1din 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


Indicações de que a engenharia de
software está se tornando uma
atividade de engenharia (SWEBOK)
• Cursos de graduação em universidades dos
EUA, Reino Unido, Austrália, Canadá e Brasil
• ISO e CMM/CMMI usados para certificar
empresas de desenvolvimento de software
• Código de ética
• Registro e Certificação da profissão!?

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


Características de uma
Engenharia (SWEBOK, 1999)
• Educação de iniciação profissional validada e
legitimada pela sociedade
• Registro da adequação à prática através de
certificação voluntária ou licenciamento compulsório
• Desenvolvimento de habilidades especializadas e
educação profissional continuada
• Suporte através de sociedades profissionais
• Compromisso a normas de conduta freqüentemente
estabelecidas em um código 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
• Matemática • Engenharia de
• Ciência da Computadores
Computação • Administração e
• Administração de Ciências
Projetos Administrativas
• Ciências 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
• Abstração
• Métodos e Notações de Análise e Design
• Prototipação de Interface com Usuário
• Modularidade e Arquitetura
• Ciclo de Vida e Processo de Software
• Reuso
• Métricas
• 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
Aquisição, análise, especificação e gestão de
Software requisitos de software.
Design de software
Gerência de Configuração de Software Transformação de requisitos (de software),
Identifica a configuração do sistema (características tipicamente estabelecidos em termos
documentadas do hardware e software que o relevantes ao domínio do problema, em uma
compõem) em pontos discretos no tempo, de modo a descrição explicando como solucionar os
controlar sistematicamente suas mudanças e manter aspectos do problema relacionados com
sua integridade e rastreabilidade durante o ciclo de software
vida do sistema. Construção de Software
Gerência de Engenharia de Software Construção de programas funcionais e
Gerencia projetos de desenvolvimento de software. coerentes através da codificação, auto-
Processo de Engenharia de Software validação, e teste unitário.
Define, implementa, mede, gerencia, modifica e Teste de Software
aperfeiçoa o processo de desenvolvimento de Verificação dinâmica do comportamento do
software programa através do uso de um conjunto finito
Ferramentas e Métodos de casos de teste - adequadamente
Ferramentas de software automatizam o processo selecionados de um domínio de execuções
de engenharia de software usualmente infinito - contra o comportamento
esperado deste
Métodos impõem estrutura sobre a atividade de
desenvolvimento e manutenção de software com o Manutenção de Software
objetivo de torna-la sistemática e mais propensa ao Atividades de suporte custo-efetivo a um
sucesso. sistema de software, que pode ocorrer antes e
Qualidade de Software após a entrega do software.
Conjunto de atividades relacionadas com garantia Após a entrega do software são feitas
de qualidade de software, entre estas as atividades modificações com o objetivo de corrigir falhas,
de verificação e validação. melhorar seu desempenho ou adapta-lo a um
ambiente modificado.
Antes da entrega do software são feitas
As 10 Áreas da Engenharia de Software, Conforme o SWEBOK, porde
atividades Jorge H C Fernandes, Dez/2004
planejamento.
Requisitos de Software
• Aquisição, análise, especificação e gestão de requisitos de
software
• Dividido em seis tarefas interativas
– Engenharia de Requisitos
– Elicitação (captura, descoberta, aquisição) de requisitos
– Análise de Requisitos
• detecção e resolução de conflitos, descoberta dos limites e interações
do sistema com o ambiente (mapeamento dos requisitos do sistema
para requisitos do software)
– Especificação de requisitos (estrutura, qualidade e verificação do
documento de requisitos)
– Validação de requisitos (verificação de omissões, conflitos e
ambiguidades) + adequação às normas de qualidade.
– Gestão de requisitos (gestão de mudanças, manutenção da
consistência 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 descrição de
solução sob o ponto de vista do software
• Decomposição e organização em
componentes, com descrição de interfaces
entre estes componentes
• Refina a descrição em nível de detalhe
adequado à construção

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
– padrões de design
– famílias de programas e frameworks
– Análise e avaliação de qualidade de design
• atributos de qualidade, análise de qualidade
• ferramentas de avaliação
• métricas
• Notações de design (estruturais e comportamentais)
• Estratégias e métodos de design
– estratégias gerais
– design orientado a funções
– design orientado a objetos
– design centrado em estruturas de dados
– outros métodos

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


Descrever Estruturas de uma
aplicação

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


Edições 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
Aplicação/Applet, Aplicação/Applet, Aplicação/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
Aplicação/Applet, Aplicação/Applet Aplicação/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

Página 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))

Repositório 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
Página HTML
Descritor de Aplicação (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


Construção (implementação)
de Software
• Implementação de software funcional e
completo através da codificação, auto-
validação e auto-teste (teste unitário).
• Duas visões complementares
– Estilos de construção de interfaces
• linguístico, formal e visual
• Formalismos: Linguagem de Especificação Formal Z,
linguagem de programação funcional Haskell, ML, LISP-
Scheme.
– princípios de organização
• redução de complexidade, antecipação à diversidade,
estruturação para validação 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
Organização Semântica
Concorrência e
tratamento de exceções

herança de implementações

alocação de memória
Estruturas de
Controle
classes-módulos-interfaces
Subrotinas
estruturasClasses
de controle e
subrotinas
Objetos
Herança
variáveis e
tipos de dados

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


Teste de Software
• Verificação dinâmica do comportamento de
um programa através de uma seqüência
finita de casos de tese, adequadamente
retirada de um domínio usualmente infinito de
execuções.
• Técnicas de teste
– baseados na intuição, baseados em
especificação, baseado em código, baseado em
falhas, baseado no uso ou conforme a natureza
da aplicação.
– 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> <VERSÃO-DO-PLANO>
Autor: <AUTOR-PLANO>
Configuração sob teste: <DESCRIÇÃO-CONFIG><VERSÃO-CONFIG>
Histórico de Alterações: <DT-CRIACÃO> <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> <VERSÃO-DO-PLANO>
Testador: <TESTADOR>
Configuração sob teste: <DESCRIÇÃO-CONFIG><VERSÃO-CONFIG>
Data: <DATA DE REALIZACAO DO TESTE>
Casos de Teste
CASO 1 Objetivo: <OBJETIVO DO CASO DE TESTE-1>
Passos: Resultado Esperado Observações
<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
• Análise da satisfação dos requisitos do sistema, definidos
por cliente e usuário, feitas por uma máquina constrúida
sob coordenação de um software
– Se qualquer parte da máquina muda a análise deve ser repetida
• Software
• Hardware
• SGBD
• Rede
• Pessoal
– Se os requisitos mudam, a máquina 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 Limitações do Teste de
Software
1 – Você não pode testar o software em todos
os sistemas nos quais ele será carregado
Solução: testar em (configurações) de
sistemas padronizadas
2 – Você não pode dialogar com a máquina
até a exaustão, porque a linguagem é finita,
mas os diálogos são infinitos
Solução: técnicas de cobertura de testes

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


Manutenção de Software
• Totalidade das atividades requeridas para prover suporte custo-
efetivo a um sistema de software, que pode ocorrer antes ou
após a entrega do software.
• Após a entrega do software são feitas modificações com o
objetivo de corrigir falhas, melhorar seu desempenho ou
adapta-lo a um ambiente modificado.
• Antes da entrega do software são feitas atividades de
planejamento.
• Atividades de Manutenção de Software
– Implementação do processo de manutenção
– Análise do problema e modificações
– Implementação da Modificação
– Revisão e aceitação da manutenção
– Migração ou Descontinuação
As 10 Áreas da Engenharia de Software, Conforme o SWEBOK, por Jorge H C Fernandes, Dez/2004
Leis de Lehman Aplicáveis à Manutenção de
Software e Sistemas de Grande Porte
• Lei da Mudança • Lei da Conservação da
Contínua Familiaridade
• Lei da Complexidade • Lei Crescimento
Crescente Contínuo
• Leis da Auto-
• Lei da Qualidade em
Regulação
Declínio
• Lei Conservação da
Estabilidade
Organizacional

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


Gerência de Configuração de
Software
• Identifica a configuração do sistema
(características documentadas do hardware
e software que o compõem) em pontos
discretos no tempo, de modo a controlar
sistematicamente suas mudanças 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


Gerência 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 Gestão de Projetos
• Gestão de Integração
• Gestão de Escopo
• Gestão de Tempo
• Gestão de Custos
• Gestão de Qualidade
• Gestão de Recursos Humanos
• Gestão de Comunicações
• Gestão de Riscos
• Gestão de Aquisições
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 aperfeiçoa 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 SERVIÇOS

REQUISITOS SOLUÇÕES

PROCESSO PRODUTIVO DE
SOFTWARE E SISTEMAS

PESSOAS

METODOS TREINAMENTO FERRAMENTAS


SOFTWARE HARDWARE
Organização 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
– Automação de Processo
• Por onde começar?

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
Métodos
• Impõem estrutura sobre a atividade de
desenvolvimento e manutenção de software com o
objetivo de torna-la sistemática e mais propensa ao
sucesso.
• Componentes de um Método
– Notação + vocabulário
– 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


Dimensão Espacial Organização do RUP

Dimensão 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 verificação e
validação.

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

S-ar putea să vă placă și