10AreasDaEngenhariaDeSoftware

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 • 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

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

Conforme o SWEBOK. por Jorge H C Fernandes.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. Dez/2004 .

modifica e aperfeiçoa o processo de desenvolvimento de Verificação dinâmica do comportamento do software programa através do uso de um conjunto finito de casos de teste . 10 Áreas da Engenharia de Software . Construção de Software Gerência de Engenharia de Software Construção de programas funcionais e Gerencia projetos de desenvolvimento de software. ambiente modificado. de qualidade de software. após a entrega do software. análise. entre estas as atividades melhorar seu desempenho ou adapta-lo a um de verificação e validação. que pode ocorrer antes e sucesso. gerencia. 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. 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.contra o comportamento de engenharia de software esperado deste Métodos impõem estrutura sobre a atividade de Manutenção de Software desenvolvimento e manutenção de software com o Atividades de suporte custo-efetivo a um objetivo de torna-la sistemática e mais propensa ao sistema de software.adequadamente Ferramentas e Métodos selecionados de um domínio de execuções Ferramentas de software automatizam o processo usualmente infinito . porde planejamento. Design de software Gerência de Configuração de Software Transformação de requisitos (de software). Qualidade de Software Após a entrega do software são feitas Conjunto de atividades relacionadas com garantia modificações com o objetivo de corrigir falhas. mede. Conforme o SWEBOK. implementa.Requisitos de software Aquisição. e teste unitário. Antes da entrega do software são feitas As 10 Áreas da Engenharia de Software. Dez/2004 atividades Jorge H C Fernandes. Processo de Engenharia de Software Teste de Software Define. coerentes através da codificação. em uma compõem) em pontos discretos no tempo. autovalidação. especificação e gestão de requisitos de software.

Requisitos de Software • Aquisição. análise. manutenção da consistência com as fases posteriores) As 10 Áreas da Engenharia de Software. Conforme o SWEBOK. – Gestão de requisitos (gestão de mudanças. Dez/2004 . conflitos e ambiguidades) + adequação às normas de qualidade. descoberta. especificação e gestão de requisitos de software • Dividido em seis tarefas interativas – Engenharia de Requisitos – Elicitação (captura. qualidade e verificação do documento de requisitos) – Validação de requisitos (verificação de omissões. 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. aquisição) de requisitos – Análise de Requisitos • detecção e resolução de conflitos. por Jorge H C Fernandes.

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. Dez/2004 . Conforme o SWEBOK.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. por Jorge H C Fernandes.

Conforme o SWEBOK. por Jorge H C Fernandes.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. Dez/2004 . 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.

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. por Jorge H C Fernandes. Dez/2004 . Conforme o SWEBOK.

Dez/2004 . por Jorge H C Fernandes. Conforme o SWEBOK.Edições Java 2 e Seus Dispositivos As 10 Áreas da Engenharia de Software.

Arquiteturas Multi-Camadas com Servlets N-Tier Two-Tier Three-Tier Cliente Java Aplicação/Applet.net.servlet Servlets java.net Middleware HTTP java.servlet SGBD Relacional A B C As 10 Áreas da Engenharia de Software. HTML Browser Cliente Java Aplicação/Applet.servlet Servlets javax.servlet Servlets java. HTML Browser java. javax.net Middleware HTTP HTTP java. HTML Browser Cliente Java Aplicação/Applet. por Jorge H C Fernandes.net java. Dez/2004 . Conforme o SWEBOK.sql javax.

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

Dez/2004 Objeto Applet Objeto . Conforme o SWEBOK. por Jorge H C Fernandes.Funcionamento dos Applets Web Server WWW (HTTP(s)) Web Browser Applet 1 Applet 2 Applet 3 Interface Browser Applet 1 Applet 2 Applet 3 Applet1 Applet2 Página HTML Classe Classe Applet Sandbox Applet3 As 10 Áreas da Engenharia de Software.

Funcionamento dos MIDlets Web Server WWW (HTTP(s)) Repositório Web Sandbox MIDlet 1 SUITE A SUITE 3 MIDlet 2 SUITE B SUITE 3 MIDlet C SUITE 1 SUITE 2 SUITE 3 Applet1 Applet2 Applet3 Página HTML Descritor de Aplicação (JAD) Arquivos (Imagens. etc) Classe MIDlet Classe RecordStore As 10 Áreas da Engenharia de MIDlet Conforme o SWEBOK. por Jorge H C Fernandes. Objeto SUITE 1 . Dez/2004 Objeto Software.

Dez/2004 . por Jorge H C Fernandes.Arquitetura de Sistemas de TV Digital As 10 Áreas da Engenharia de Software. Conforme o SWEBOK.

– princípios de organização • redução de complexidade. Dez/2004 . ML. por Jorge H C Fernandes. antecipação à diversidade. LISPScheme. • Duas visões complementares – Estilos de construção de interfaces • linguístico. Conforme o SWEBOK. autovalidação e auto-teste (teste unitário). linguagem de programação funcional Haskell.Construção (implementação) de Software • Implementação de software funcional e completo através da codificação. formal e visual • Formalismos: Linguagem de Especificação Formal Z. estruturação para validação e uso de normas As 10 Áreas da Engenharia de Software.

Conforme o SWEBOK. por Jorge H C Fernandes.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 estruturas de controle e Classes subrotinas Objetos Herança variáveis e tipos de dados As 10 Áreas da Engenharia de Software. Dez/2004 .

• Técnicas de teste – baseados na intuição. Conforme o SWEBOK. baseado em código. baseado em falhas.Teste de Software • Verificação dinâmica do comportamento de um programa através de uma seqüência finita de casos de tese. baseados em especificação. adequadamente retirada de um domínio usualmente infinito de execuções. – Black-box e white-box As 10 Áreas da Engenharia de Software. baseado no uso ou conforme a natureza da aplicação. Dez/2004 . por Jorge H C Fernandes.

<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.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>. por Jorge H C Fernandes.…. Dez/2004 . Conforme o SWEBOK.

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: Passos: <PASSO-1-1> <PASSO-1-2> <OBJETIVO DO CASO DE TESTE-1> Resultado Esperado <RESULTADO-OBTIDO> <RESULTADO-OBTIDO> Observações <ERRO? Ou ACERTO?> <ERRO? Ou ACERTO?> <ERRO? Ou ACERTO?> <PASSO-1-n> <RESULTADO-OBTIDO> CASO 2 Objetivo: Passos: <PASSO-1-1> <PASSO-1-2> <OBJETIVO DO CASO DE TESTE-2> Resultado Esperado <RESULTADO-OBTIDO> <RESULTADO-OBTIDO> <ERRO? Ou ACERTO?> <ERRO? Ou ACERTO?> <ERRO? Ou ACERTO?> <PASSO-1-n> <RESULTADO-OBTIDO> As 10 Áreas da Engenharia de Software. Dez/2004 . por Jorge H C Fernandes. Conforme o SWEBOK.

e deve ser testada novamente As 10 Áreas da Engenharia de Software. por Jorge H C Fernandes.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. Dez/2004 . a máquina mudará para atendê-los. Conforme o SWEBOK.

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. porque a linguagem é finita. por Jorge H C Fernandes.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. Dez/2004 .

melhorar seu desempenho ou adapta-lo a um ambiente modificado. • 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. Dez/2004 .Manutenção de Software • Totalidade das atividades requeridas para prover suporte custoefetivo a um sistema de software. • Antes da entrega do software são feitas atividades de planejamento. que pode ocorrer antes ou após a entrega do software. por Jorge H C Fernandes. • Após a entrega do software são feitas modificações com o objetivo de corrigir falhas.

Dez/2004 . Conforme o SWEBOK. por Jorge H C Fernandes.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 AutoRegulação • Lei Conservação da Estabilidade Organizacional • Lei da Conservação da Familiaridade • Lei Crescimento Contínuo • Lei da Qualidade em Declínio As 10 Áreas da Engenharia de Software.

Dez/2004 . por Jorge H C Fernandes. As 10 Áreas da Engenharia de Software. Conforme o SWEBOK. de modo a controlar sistematicamente suas mudanças e manter sua integridade e rastreabilidade durante o ciclo de vida do sistema.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.

por Jorge H C Fernandes. Conforme o SWEBOK. Dez/2004 .Gerência de Engenharia de Software • Gerencia projetos de desenvolvimento de software. As 10 Áreas da Engenharia de Software.

Conforme o SWEBOK.Ciclo de Vida do Projeto [PMBOK. Dez/2004 . por Jorge H C Fernandes. 1996] As 10 Áreas da Engenharia de Software.

1996] As 10 Áreas da Engenharia de Software. Conforme o SWEBOK. Dez/2004 . por Jorge H C Fernandes.Categorias de Processos [PMBOK.

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 .

por Jorge H C Fernandes.Á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. Dez/2004 . Conforme o SWEBOK.

mede. por Jorge H C Fernandes.Processo de Engenharia de Software • Define. implementa. modifica e aperfeiçoa o processo de desenvolvimento de software As 10 Áreas da Engenharia de Software. gerencia. Conforme o SWEBOK. Dez/2004 .

por Jorge H C Fernandes.CLIENTES CONSUMO PRODUTOS E SERVIÇOS SOLUÇÕES REQUISITOS 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. Dez/2004 .

Conforme o SWEBOK. Dez/2004 . por Jorge H C Fernandes.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.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. por Jorge H C Fernandes. Dez/2004 .

Conforme o SWEBOK. por Jorge H C Fernandes.Ambiente para Desenvolvimento MHP em Equipe (Frolich. 2002). As 10 Áreas da Engenharia de Software. Dez/2004 .

• Componentes de um Método – Notação + vocabulário – Lista de atividades e procedimentos para realizá-las – Guias para avaliar produto e processo.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. Dez/2004 . Conforme o SWEBOK. As 10 Áreas da Engenharia de Software. por Jorge H C Fernandes.

Conforme o SWEBOK.Organização do RUP Dimensão Espacial Dimensão Temporal As 10 Áreas da Engenharia de Software. Dez/2004 . por Jorge H C Fernandes.

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 .

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

Sign up to vote on this title
UsefulNot useful