Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Teoria de Engenharia de Software Aula 2 Ciclo de Vida de Software Prof. Rafael Targino rtargino@unicarioca.edu.br 2 O conteúdo desta aula foi parcialmente baseado nos slides disponíveis do livro: Engenharia de Software Engenharia de Software – Conceitos e Práticas Raul Sidnei Wazlawick, Elsevier, 1a edição, 2013 Lista de Exercício 1 Entrega daqui a 2 semanas 2 3 Conteúdo da Aula • Grandes Fases do Desenvolvimento de Software • O que é um Processo? Engenharia de Software 4 Papéis Envolvidos na Construção de Software Usuário Cliente Analista de Negócio Gerente de Produto Engenharia de Software Testador Analista de Sistema Programador Desenvolvedor 3 5 Construindo Software • O software a ser construído pode ser de diversos tamanhos e complexidades... Engenharia de Software • Equipes Pequenas • Uma pessoa diz o que precisa • Duas pessoas entendem, programam e testam o software • Utilizado em trabalhos de faculdade e trabalhos free lancers para pequenos comércios 6 Construindo Software • O software a ser construído pode ser de diversos tamanhos e complexidades... Engenharia de Software • Equipes Grandes • Diversas pessoas dizem o que querem – Nem sempre elas concordam entre si • Diversas pessoas entendem e documentam o seu entendimento – Nem sempre elas entendem de forma correta • Diversas pessoas programam e testam o software – Nem sempre elas programam o que realmente é o certo 4 7 Diferentes Níveis de Complexidade Engenharia de Software 8 Processo de Desenvolvimento de Software Engenharia de Software Análise de Requisitos Projeto de Sistemas Codificação Testes Processo de Desenvolvimento de Software 5 9 Exercício – Casa dos Sonhos • Você ganhou na loteria e vai construir a casa dos seus sonhos • O que você gostaria de ter nesta casa? Engenharia de Software 10 Análise de Requisitos • Fornecem o que o sistema deve fazer • Quais são as necessidades do usuário • Qual o problema está sendo resolvido • Identificar – desejos, intenções, procedimentos atuais e dados; • Organizá-los de forma coerente • Definir de uma forma geral – o que será tratado pelo software – interface com o que fica de fora do software • Entendimento e Representação – Domínio do problema – Conceitos – Funcionalidades – Casos de uso Engenharia de Software Desejos Intenções Procedimentos Dados Requisitos do Software 6 11 Requisitos de Negócio • Uma condição ou capacidade necessária que o software deve possuir para que o usuário possa resolver um problema ou atingir um objetivo • Expressam as características e restrições do produto de software do ponto de vista de satisfação das necessidades do usuário Engenharia de Software 12 Exemplos de Requisitos • O sistema deve calcular o salário do funcionário considerando as suas faltas e todos os impostos devidos • O sistema deve permitir que o usuário emita seus pedido de compra diretamente • O sistema deve possuir a possibilidade de aprovação de pedidos de empréstimo por parte do analista de crédito • O sistema deve permitir que os fornecedores incluam os preços dos seus produtos por uma interface via Internet Engenharia de Software 7 13 Projeto de Software • A fase de projeto enfatiza a proposta de uma solução que atenda os requisitos da análise. • Indica COMO será feito o software • Se a analise é uma investigação para tentar descobrir o que o cliente quer, o projeto consiste em propor uma solução com base no conhecimento adquirido na análise. • Projetar o Software – Arquitetura – Interfaces – Estrutura de Dados – Procedimentos Engenharia de Software Requisitos do Software Arquitetura Interfaces Estrutura de Dados Detalhes dos Procedimentos Projeto do Software 14 Utilização de Modelos • O processo de raciocínio humano necessita de modelos 8 Da Análise ao Projeto 16 Construção do Código • Implementação • Programação do código • Tecnologia – Linguagem – Ambiente Engenharia de Software Arquitetura Interfaces Estrutura de Dados Detalhes dos Procedimentos Projeto do Software Código Software 9 17 Testes • Estou construindo um sistema correto? • Estou construindo o sistema certo? – Teste de código – Teste de sistema – Testes com usuários Engenharia de Software 18 Implantação do Software • Pôr o Software em operação – Entrada de dados – Conversões de dados – Treinamento de operadores – Disponibilização de Manuais – Suporte à operação • Help Desk – Acompanhar • Também chamado de Ambiente de Produção Engenharia de Software Software Software Dados Conversões Pronto para operar 10 19 Manutenção de Software • Manutenção – Tipos • Corretiva • Novos Requisitos • Novas Tecnologias – Alto Custo • Podem requerer mudanças nas fases iniciais do desenvolvimento Engenharia de Software Software Em Operação Erros Software Nova Versão Requisitos 20 Conteúdo da Aula • Grandes Fases do Desenvolvimento de Software • O que é um Processo? Engenharia de Software 11 21 Exemplo de Processo - Receita de Bolo 1. Bata as claras em neve e reserve 2. Bata bem as gemas com a margarina e o açúcar 3. Adicione o leite e farinha aos poucos sem parar de bater 4. Por último agregue as claras em neve e o fermento 5. Unte uma forma grande de furo central com manteiga e farinha 6. Coloque a massa na forma 7. Asse em forno médio, pré - aquecido, por aproximadamente 40 minutos Engenharia de Software 22 Representação Receita de Bolo em Diagrama Engenharia de Software Bater as Claras Bater as Gemas Adicionar o Leite e Farinha Adicionar as Claras Untar Forma Colocar no Forno 12 23 Qual a Vantagem de se ter uma Receita de Bolo? • Ensinar como se faz o bolo • Diminuir o risco de dar alguma coisa errada • O produto final sempre ser o mesmo (ou muito parecido) • Se o bolo ficar muito bom, a receita pode ser compartilhada com outras pessoas Engenharia de Software 24 Qual a vantagem de um Processo de Desenvolvimento de Software? • Ensinar como se faz o software • Diminuir o risco de dar alguma coisa errada • O produto final sempre ser o mesmo – no caso, sempre ser um produto de qualidade de acordo com as especificações do usuário • Se o software for desenvolvido no tempo e custo esperado, o processo pode ser seguido em outros projetos Engenharia de Software 13 25 Exercício – De Acordar até Agora • Quais foram todas as coisas que vocês fizeram hoje desde a hora que acordaram até a hora de estarem aqui? Engenharia de Software 26 • Um processo na Engenharia de Software é formado por um conjunto de passos (atividades) parcialmente ordenados, relacionados com artefatos, pessoas, recursos, estruturas organizacionais e restrições, tendo como objetivo produzir e manter os produtos de software finais requeridos. O que é um Processo ? Engenharia de Software 14 27 Atividades - Um Conjunto de Passos parcialmente ordenados • Uma descrição, que deve dizer em palavras simples e diretas o que deve ser feito para que a atividade seja realizada • Normalmente produz um artefato de saída a partir dos artefatos de entrada Engenharia de Software Atividade 28 Artefatos • Qualquer subproduto produzido durante o desenvolvimento do software • Pode ser um documento, uma lista, um diagrama, um desenho, um códigofonte, um relatório de teste, etc. Engenharia de Software Artefatos de Entrada Artefatos de Saída Atividade 15 29 Pessoas • Cada uma das atividades são executadas por uma ou mais pessoas desempenhando um Papel específico • Uma pessoa pode assumir vários Papéis Engenharia de Software Atividade Artefatos de Entrada Artefatos de Saída Pessoas 30 Recursos • O que será utilizado na execução de uma atividade – Consumíveis – Não Consumíveis Engenharia de Software Atividade Artefatos de Entrada Artefatos de Saída Recursos Pessoas 16 31 Restrições • Restrições sobre como as atividades podem ser executadas • Estabelecem limites Engenharia de Software Atividade Artefatos de Entrada Artefatos de Saída Recursos Restrições Pessoas Representar e Descrever Processos Engenharia de Software Diagrama Documento Estruturado 17 33 Exercícios • No contexto dos usuários finais de um sistema de gestão acadêmica universitária, informe uma pessoa que pode assumir dois papéis diferentes na utilização do sistema • Considerando o professor na atividade de “Ministrar Aula” defina exemplos de: – Artefatos de Entrada – Responsável pela Atividade (pessoa) – Participante da Atividade (pessoa) – Recursos – Restrições – Artefatos de Saída Engenharia de Software 34 Exercício em dupla/trio • Represente um processo de fazer a vistoria de um carro no Detran. Comece pelo início e não esqueça nenhuma atividade. • Informe: – Nome da Atividade – Papel que executa a atividade – Entradas – Saídas – Recursos Utilizados Engenharia de Software
Compartilhar