(Guide to the Software Engineering Body of Knowledge) IEEE Computer Society IEEE Computer Society Professor Jos Eduardo A. de O. Teixeira - Slide 1 IEEE IEEE Institute of Eletric and Eletronic Engineers Associao profissional mundial sem fins lucrativos para suporte ao avano da tecnologia. Misso: O IEEE promove o processo de engenharia, i d d l d i t d tilh d criando, desenvolvendo, integrando, compartilhando e aplicando conhecimento sobre tecnologia eletroeletrnica tecnologia da informao e cincias eletroeletrnica, tecnologia da informao e cincias, para o benefcio da humanidade e da carreira (The IEEE promotes the engineering process of creating, p g g p g, developing, integrating, sharing, and applying knowledge about electro and information technologies and sciences f th b fit f h it d th f i ) Professor Jos Eduardo A. de O. Teixeira - Slide 2 for the benefit of humanity and the profession). IEEE C t S i t IEEE Computer Society Aproximadamente 100.000 membros. Organizao de suporte aos profissionais da computao, provendo informao tcnica, servios a comunidade e aos provendo informao tcnica, servios a comunidade e aos profissionais. Fundada em 1946. A maior das 39 sociedades do IEEE. Dedicada ao avano terico, prtico e aplicao de computadores e tecnologia da informao. e tecnologia da informao. Aproximadamente 40% dos membros vive e trabalha fora dos EUA, fomentando a comunicao internacional, a cooperao e a t d i f troca de informao. Tem um escritrio central de servios em Tokyo, J apo; um escritrio de publicao em Los Alamitos, California; e a sede em Professor Jos Eduardo A. de O. Teixeira - Slide 3 p Washington, DC. Th G id t th SWEBOK The Guide to the SWEBOK No o conhecimento em si, mas uma sntese e uma referncia ao material disponvel em diversas bli l t f publicaes que se complementam para formar o corpo de conhecimento. Descreve que parte do conhecimento geralmente Descreve que parte do conhecimento geralmente aceito pela comunidade profissional. Organiza o conhecimento Organiza o conhecimento. Prov acesso por tpicos. Patrocinado por empresas como: Rational (IBM) SAP Patrocinado por empresas como: Rational (IBM), SAP, Boeing, entre outras. Professor Jos Eduardo A. de O. Teixeira - Slide 4 Categorizao do Conhecimento G l t A it Geralmente Aceito Professor Jos Eduardo A. de O. Teixeira - Slide 5 Obj ti Objetivos 1. Promover uma viso consistente da engenharia de software em todo o mundo (500 revisores de 42 pases na fase Stoneman verso Trial e 120 revisores de 21 na fase Stoneman, verso Trial, e 120 revisores de 21 pases na fase Ironman, verso 2004). 2 Definir as fronteiras de atuao da engenharia de 2. Definir as fronteiras de atuao da engenharia de software e as reas de interseo com outras disciplinas como: engenharia da computao, cincia da g p , computao, gesto de negcios, matemtica, gerenciamento de projetos, gesto da qualidade, i ( ibilid d bilid d ) h i ergonomia (acessibilidade e usabilidade) e engenharia de sistemas (SWEBOK, captulo 12). Professor Jos Eduardo A. de O. Teixeira - Slide 6 Obj ti (C ti ) Objetivos (Continuao) 3. Caracterizar o contedo da disciplina engenharia de software, subdividindo-o hierarquicamente em reas de conhecimento (o Apndice A descreve como as AC conhecimento (o Apndice A descreve como as AC devem ser organizadas). 4 Prover acesso por tpicos a base de conhecimento da 4. Prover acesso por tpicos a base de conhecimento da engenharia de software (material de referncia e matriz em cada AC). ) 5. Fornecer um alicerce para desenvolvimento do currculo, certificao individual e licenciamento de material (conhecimento geralmente aceito: aplica-se a maioria dos projetos e das equipes pelo consenso e pela efetividade) Professor Jos Eduardo A. de O. Teixeira - Slide 7 efetividade). M t i l d R f i M t i Material de Referncia e Matriz Exemplo de matriz que relaciona os tpicos de cada AC com as fontes recomendadas. Professor Jos Eduardo A. de O. Teixeira - Slide 8 M t i l d R f i M t i Material de Referncia e Matriz E l d f i d d d AC Exemplo de referncias recomendadas em cada AC. Professor Jos Eduardo A. de O. Teixeira - Slide 9 d C h i t (AC) reas de Conhecimento (AC) 1. Software Requirements (Requisitos) 2. Software Design (Desenho / Projeto) 3 S f C (C / ) 3. Software Construction (Construo / Implementao) 4. Software Testing (Testes) 5 S ft M i t (M t ) 5. Software Maintenance (Manuteno) 6. Software Configuration Management (Configurao) 7 Software Engineering Management (Gerenciamento) 7. Software Engineering Management (Gerenciamento) 8. Software Engineering Process (Processo) 9 Software Engineering Tools and Methods (Ferramentas 9. Software Engineering Tools and Methods (Ferramentas e Mtodos) 10. Software Quality (Qualidade) Professor Jos Eduardo A. de O. Teixeira - Slide 10 y ( ) Requisitos (SWEBOK, Captulo 2) So problemas do mundo real que devem ser explicitados para serem solucionados (O que ser feito!). A AC est dividida em sete subreas. 1. Fundamentos dos Requisitos 2 P d R i it 2. Processo de Requisitos 3. Declarao de Requisitos 4. Anlise de Requisitos 4. Anlise de Requisitos 5. Especificao de Requisitos 6. Validao de Requisitos 7. Consideraes Prticas Professor Jos Eduardo A. de O. Teixeira - Slide 11 Requisitos (O que pode acontecer!?) Professor Jos Eduardo A. de O. Teixeira - Slide 12 Desenho (SWEBOK, Captulo 3) o processo de definio da arquitetura, dos componentes, da interface e de outras caractersticas dos componentes do sistema e do resultado esperado dos componentes do sistema e do resultado esperado, para resolver o problema identificado na fase de requisitos (Como ser feito!). A AC est dividida em seis subreas: 1. Fundamentos do Desenho de Software 2. Questes Chave no Desenho de Software 3. Estrutura e Arquitetura de Software 4 E l A li d Q lid d d D h d S ft 4. Evoluo e Anlise de Qualidade do Desenho de Software 5. Notaes do Desenho de Software 6 Estratgias e Mtodos para o Desenho de Software Professor Jos Eduardo A. de O. Teixeira - Slide 13 6. Estratgias e Mtodos para o Desenho de Software (SWEBOK C t l 4) Construo (SWEBOK, Captulo 4) Refere-se a criao do conjunto de programas que compe o software e a verificao de conformidade com d h d f i lid d i di id l (t t it i ) o desenho, da funcionalidade individual (teste unitrio), da funcionalidade integrada e a depurao de erros. A AC est dividida emtrs subreas: A AC est dividida em trs subreas: 1. Fundamentos da Construo de Software 2. Gerenciamento da Construo de Software 2. Gerenciamento da Construo de Software 3. Consideraes Prticas (e padres) da Construo de Software Professor Jos Eduardo A. de O. Teixeira - Slide 14 (SWEBOK C t l 5) Teste (SWEBOK, Captulo 5) Consiste na verificao do comportamento de um programa ou grupo de programas, a partir de um conjunto de casos selecionados no domnio de negcio conjunto de casos selecionados no domnio de negcio, comparando-o ao comportamento esperado, definido na especificao de requisitos. A AC est dividida em cinco subreas: 1. Fundamentos do Teste de Software 2 Nveis de Teste de Software 2. Nveis de Teste de Software 3. Tcnicas de Teste de Software 4. Medidas de Teste de Software 5. Processo de Teste e Consideraes Prticas Professor Jos Eduardo A. de O. Teixeira - Slide 15 Manuteno (SWEBOK, Captulo 6) Um vez em operao, anomalias so descobertas, ambientes operacionais mudam e novos requisitos A f d t i i i ti d surgem. A fase de manuteno inicia-se a partir da entrega, mas as atividades de manuteno comeam antes mesmo da entrega antes mesmo da entrega. A AC est dividida em quatro subreas: 1. Fundamentos da Manuteno de Software 1. Fundamentos da Manuteno de Software 2. Questes Chave sobre Manuteno de Software 3. Processo de Manuteno de Software 4. Tcnicas de Manuteno de Software Professor Jos Eduardo A. de O. Teixeira - Slide 16 M t (C t i ) Manuteno (Categorias) Correo Evoluo P ti Correo Evoluo Pr-ativa Reativa Professor Jos Eduardo A. de O. Teixeira - Slide 17 M t (Ati id d ) Manuteno (Atividades) Professor Jos Eduardo A. de O. Teixeira - Slide 18 M t (P ) Manuteno (Processo) Professor Jos Eduardo A. de O. Teixeira - Slide 19 Gerenciamento de Configurao (SWEBOK, Captulo 7) Consiste emidentificar a configurao do software em Consiste em identificar a configurao do software em diferentes momentos com o propsito de controlar sistematicamente as mudanas ocorridas e garantir a i t id d t bilid d d fi d t d integridade e a rastreabilidade das configuraes de todos os artefatos ao longo do ciclo de vida do software. A AC est dividida em seis subreas: 1. Processo de Gerenciamento de Configuraes 2. Identificao da Configurao 3 C t l d C fi 3. Controle da Configurao 4. Registro do Estado da Configurao 5. Auditoria da Configurao 6. Entrega e Gerenciamento de Verses Professor Jos Eduardo A. de O. Teixeira - Slide 20 Gerenciamento de Projeto de Software (SWEBOK, Captulo 8) Consiste no gerenciamento (PDCA) da engenharia de software. Gerenciamento um aspecto f d t l t t d AC t fundamental e presente em todas as AC, mas nesta AC so apresentados os tpicos especficos sobre o gerenciamento gerenciamento. A AC est dividida em seis subreas: 1 Iniciao e Definio de Escopo 1. Iniciao e Definio de Escopo 2. Planejamento do Projeto 3. Declarao do Plano de Projeto 4. Monitoramento e Controle 5. Fechamento Professor Jos Eduardo A. de O. Teixeira - Slide 21 Gerenciamento de Projeto de Software (Projeto, segundo o PMBOK) umempreendimento temporrio que tempor um empreendimento temporrio que tem por finalidade criar um produto, servio ou resultado nico. Caractersticas: No repetitivo (incio, meio e fim) Seqncia lgica de eventos (ciclo de vida) Seqncia lgica de eventos (ciclo de vida) Acompanhamento e controle Objetivo claro e definido Conduzido por pessoas Conduzido por pessoas Parmetros pr-definidos (tempo, recursos e qualidade). bem-sucedido quando atende s expectativas dos stakeholders. Para saber se temos umprojeto perguntamos: Para saber se temos um projeto, perguntamos: 1. nico? 2. Tem prazo limitado? 3 Existe uma maneira de saber se est concludo? Professor Jos Eduardo A. de O. Teixeira - Slide 22 3. Existe uma maneira de saber se est concludo? 4. possvel saber se os stakeholders esto satisfeitos? Gerenciamento de Projeto de Software (reas de Conhecimento do PMBOK) Professor Jos Eduardo A. de O. Teixeira - Slide 23 Gerenciamento de Projeto de Software (Grupos de Processos do PMBOK) Origens D ti Origens Destinos Professor Jos Eduardo A. de O. Teixeira - Slide 24 Gerenciamento de Projeto de Software (Ciclo PlanDoControlAct do PMBOK) Professor Jos Eduardo A. de O. Teixeira - Slide 25 Gerenciamento de Projeto de Software (GP x AC do PMBOK) Iniciao Planejamento Execuo Monitoramento Encerramento Iniciao Planejamento Execuo Monitoramento e Controle Encerramento Integrao XX X X XX X Escopo Tempo XXX XX XXXXX X Custos Qualidade XX X X X X Comunicao Recursos Humanos X X XX X X XX Aquisies Riscos XXXXX XX XX X X X Professor Jos Eduardo A. de O. Teixeira - Slide 26 Gerenciamento de Projeto de Software (Ciclo Genrico) Professor Jos Eduardo A. de O. Teixeira - Slide 27 Gerenciamento de Projeto de Software (Ciclo Genrico Detalhado) Professor Jos Eduardo A. de O. Teixeira - Slide 28 Gerenciamento de Projeto de Software (Exemplo) Professor Jos Eduardo A. de O. Teixeira - Slide 29 Gerenciamento de Projeto de Software (Relao Tempo x Custos) Mito das Hordas de Mongis Professor Jos Eduardo A. de O. Teixeira - Slide 30 Processo de Software (SWEBOK, Captulo 9) Consiste na definio implementao avaliao Consiste na definio, implementao, avaliao, medio, gerenciamento, mudanas e evoluo do prprio processo de software uma abstrao do prprio processo de software. uma abstrao do projeto de software; uma definio de como o projeto ser dividido em suas diversas fases e atividades (metodologia). A AC est dividida em quatro subreas: 1. Mudana e Implementao do Processo 2. Definio do Processo 3 Avaliao do Processo 3. Avaliao do Processo 4. Medidas de Produtos e Processos Professor Jos Eduardo A. de O. Teixeira - Slide 31 Processo de Software (Exemplos) Processo Unificado (J acobson Booch Rumbaugh) Processo Unificado (J acobson, Booch, Rumbaugh) RUP Rational Unifided Process (Rational/IBM) PRAXIS PRocesso para Aplicativos eXtensveis PRAXIS PRocesso para Aplicativos eXtensveis InterativoS (Wilson de Pdua Paula Filho) Para projetos realizados individualmente ou por pequenas i d d i equipes, com durao de seis meses a um ano. XP eXtreme Programming Projetos cujos requisitos mudamcommuita freqncia Projetos cujos requisitos mudam com muita freqncia, orientados a objetos, desenvolvido por equipes de at 12 desenvolvedores, com processo incremental (ou interativo). interativo). SEA UP (SEA Tecnologia) MetoDeS Desenvolvida por Alunos como TCC Professor Jos Eduardo A. de O. Teixeira - Slide 32 p Ferramentas e Mtodos (SWEBOK, Captulo 10) Classifica ferramentas e mtodos para a Engenharia de Software. Na sub-rea Ferramentas, h uma tpico para cada uma das outras nove AC. N b Mt d h t t i Na sub-rea Mtodos, h trs tpicos: I. Heursticos*, para a abordagem informal II Matemticos para a abordagemformal II. Matemticos, para a abordagem formal III. Prottipos, para a abordagem do software baseada em formulrios * Metodologia, ou algoritmo, usado para resolver problemas por mtodos que, embora no rigorosos, geralmente refletem o conhecimento humano e permitem obter uma soluo satisfatria. Professor Jos Eduardo A. de O. Teixeira - Slide 33 g p Qualidade de Software (SWEBOK, Captulo 11) Relaciona-se com a qualidade de software e transcende o ciclo de vida do seu desenvolvimento. Como a lid d t t t d preocupao com qualidade est presente toda a engenharia de software (e em toda a gesto de projetos) tambm observada emtodas as outras AC projetos), tambm observada em todas as outras AC. A AC est dividida em trs subreas: 1. Fundamentos da Qualidades de Software 1. Fundamentos da Qualidades de Software 2. Processo de Gerenciamento da Qualidade de Software 3. Consideraes Prticas sobre a Qualidade de Software Professor Jos Eduardo A. de O. Teixeira - Slide 34 Disciplinas Relacionadas (SWEBOK, Captulo 12) 1. Engenharia da Computao 2 Cincia da Computao 2. Cincia da Computao 3. Gesto de Negcios 4. Matemtica 5. Gerenciamento de Projetos j 6. Gesto da Qualidade 7 Ergonomia (acessibilidade e usabilidade) 7. Ergonomia (acessibilidade e usabilidade) 8. Engenharia de Sistemas Professor Jos Eduardo A. de O. Teixeira - Slide 35 Hierarquia das Cinco Primeiras reas de Conhecimento Professor Jos Eduardo A. de O. Teixeira - Slide 36 Hierarquia das Cinco ltimas reas de Conhecimento e Disciplinas Professor Jos Eduardo A. de O. Teixeira - Slide 37