• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

Share "As 10 Áreas da Engenharia de Software, Conforme o SWEBOK. Jorge H C Fernandes 2004"

Copied!
41
0
0

Texto

(1)

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

(2)

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

(3)

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

(4)

Origens do Corpo de Conhecimentos

da Engenharia de Software

• Matemática

• Ciência da

Computação

• Administração de

Projetos

• Ciências Cognitivas

e Fatores Humanos

• Engenharia de

Computadores

• Administração e

Ciências

Administrativas

• Engenharia de

Sistemas

(5)

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

(6)

10 Áreas da Engenharia de

Software

Requisitos de software

Aquisição, análise, especificação e gestão de requisitos de software.

Design de software

Transformação de requisitos (de software), tipicamente estabelecidos em termos

relevantes ao domínio do problema, em uma descrição explicando como solucionar os aspectos do problema relacionados com software

Construção de Software

Construção de programas funcionais e coerentes através da codificação, auto-validação, e teste unitário.

Teste de Software

Verificação dinâmica do comportamento do programa através do uso de um conjunto finito de casos de teste - adequadamente

selecionados de um domínio de execuções usualmente infinito - contra o comportamento esperado deste

Manutenção de Software

Atividades de suporte custo-efetivo a um sistema de software, que pode ocorrer antes e 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.

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.

Gerência de Engenharia de Software

Gerencia projetos de desenvolvimento de software. Processo de Engenharia de Software

Define, implementa, mede, gerencia, modifica e aperfeiçoa o processo de desenvolvimento de software

Ferramentas e Métodos

Ferramentas de software automatizam o processo de engenharia de software

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.

Qualidade de Software

Conjunto de atividades relacionadas com garantia de qualidade de software, entre estas as atividades de verificação e validação.

(7)

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

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)

(8)

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

(9)

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

(10)

Descrever Estruturas de uma

aplicação

(11)

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

Descrever Comportamentos…

(12)

Edições Java 2 e

Seus Dispositivos

(13)

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

Aplicação/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

Aplicação/Applet,

HTML Browser

java.net

Cliente Java

Aplicação/Applet,

HTML Browser

java.net

java.net, javax.servlet

(14)

Arquiteturas Multi-Camadas com

Enterprise Java Beans (EJBs)

Two-Tier

Cliente Java

Aplicação/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

Aplicação/Applet

Cliente Java

Aplicação/Applet,

HTML Browser

java.net

java.rmi, javax.jndi

java.rmi, javax.jndi

java.rmi,

javax.jndi

(15)

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

Objeto

A p p l e t 1 A p p l e t 2 A p p l e t 3

Página HTML

Sandbox

Classe Applet

Objeto Applet

(16)

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

SUITE 3

SUITE 1

Classe

A p p l e t 1 A p p l e t 2 A p p l e t 3

Página HTML

Descritor de Aplicação (JAD)

Arquivos (Imagens, etc)

Sandbox

Repositório

Web

(17)

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

Arquitetura

de Sistemas

de TV

(18)

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

(19)

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

Estruturas de

Controle

Concorrência e

tratamento de exceções

Subrotinas

herança de implementações

Classes

alocação de memória

Objetos

classes-módulos-interfaces

Herança

estruturas de controle e

subrotinas

variáveis e

tipos de dados

(20)

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.

(21)

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

Plano de Teste

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>

Plano de Teste: <APLICACAO> <VERSÃO-DO-PLANO> Autor: <AUTOR-PLANO>

(22)

Log de 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?>

Log de Teste: <APLICACAO> <VERSÃO-DO-PLANO>

Testador: <TESTADOR>

Configuração sob teste: <DESCRIÇÃO-CONFIG><VERSÃO-CONFIG>

(23)

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

(24)

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

(25)

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

(26)

Leis de Lehman Aplicáveis à Manutenção de

Software e Sistemas de Grande Porte

• Lei da Mudança

Contínua

• Lei da Complexidade

Crescente

• Leis da

Auto-Regulação

• Lei Conservação da

Estabilidade

Organizacional

• Lei da Conservação da

Familiaridade

• Lei Crescimento

Contínuo

• Lei da Qualidade em

Declínio

(27)

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.

(28)

Gerência de Engenharia de

Software

• Gerencia projetos de desenvolvimento de

software.

(29)

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

(30)
(31)

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]

(32)

Á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

(33)

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

(34)

PESSOAS

TREINAMENTO

METODOS

FERRAMENTAS

PROCESSO PRODUTIVO DE

SOFTWARE E SISTEMAS

SOFTWARE

HARDWARE

PRODUTOS

E SERVIÇOS

REQUISITOS

SOLUÇÕES

CONSUMO

CLIENTES

Organização Produtora

(35)

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

(36)

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

(37)

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).

(38)

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.

(39)

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

Organização do RUP

Dimensão Temporal

(40)

Qualidade de Software

• Conjunto de atividades relacionadas com

garantia de qualidade de software, entre

estas as atividades de verificação e

(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

Referências

Documentos relacionados

REFERENCIAS BIBLIOGRAFICAS 110... The C++

Cortes histológicos e ultra-estruturais do vaso dorsal de Scaptotrigona postica Latreille, 1807: 1, aspecto geral do sinus pericárdico em operária campeira; 2, corte longitudinal

1) As Operadoras obrigam-se a cumprir o que foi declarado na CPI da Telefonia Móvel em Santa Catarina quanto à execução de investimentos previstos nos termos do Plano de Melhoria

Já o Ministério do Turismo (2010), divulga não apenas as atribuições gerais que o guia deve cumprir, mas também as atribuições específicas de acordo com a

Essencial para conversão da energia gerada pelos módulos fotovoltaicos de CC para CA, nos parâmetros adequados para conexão com o sistema elétrico local.. » Duas entradas

A origem do nome Açaí é que nós justamente tivemos o trabalho né, foi o processo foi feito com o SEBRAE né, foi dado as aulas pra nós, aí então, lá no curso ela pediu pra

A função gerente de obras torna-se cada vez mais necessária na construção civil, pois o setor está cada vez mais desenvolvendo e aprimorando a área de coordenação

Na Nova Zelândia em sistemas pastoris as vacas produzem em média 17 litros de leite ao dia, enquanto nos produtores analisados neste estudo a média de