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 Exercício – Telefone sem fio • No dia 22 de novembro as 20:00hs, na rua Francisco da Rocha, um carro a caminho do aeroporto, colidiu com um ônibus da linha 572. • Estavam no interior do carro, o motorista, um senhor de cabelo grisalho, e mais 2 passageiros, sendo 1 criança. • Não houve vítimas. A polícia chegou, registrou a ocorrência e liberou os motoristas 14 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 8 15 Utilização de Modelos • O processo de raciocínio humano necessita de modelos Da Análise ao Projeto 9 17 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 18 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 10 19 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 20 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 11 21 Problemas • Porque leva tanto tempo para terminar programas e sistemas? • Porque os custos são tão altos? • Porque temos dificuldade de medir o progresso do desenvolvimento do software? • Porque não conseguimos detectar todos os erros antes de entregar o software aos nossos clientes? • Porque os usuários estão sempre insatisfeitos com o software entregue? Engenharia de Software 22 Todos esses problemas geraram alguns mitos no Desenvolvimento de Software 12 23 Uma lista de intenções é suficiente para começar a produzir o software Minhas necessidades vão mudar… Mas mudanças são fáceis de introduzir porque software é bastante flexível Custo de mudanças é muito altoA Especificação do Software é a fase mais crítica do processo Erros na fase inicial têm um custo muito alto de correção Mitos do Software… …do Cliente Engenharia de Software 24 Programa escrito e testado! Acabei! Até que o programa esteja “rodando” não há como medir sua qualidade O único produto de um projeto de software é o conjunto de programas Quanto mais cedo você escrever o código, mais tempo irá demorar para completá-lo De 50 a 70 % do custo de produção de um software vai ser gasto para operacionalizá- lo para o usuário Revisões anteriores à codificação Especificação, projeto, plano de trabalho Mitos do Software… …do Programador Engenharia de Software 13 25 Mitos do Software… …da Gerência Manuais de Regras e Procedimentos resolvem os problemas Ferramentas modernas de software e hardware são suficientes Estamos atrasados… Vamos alocar mais gente ao projeto! Desatualizados, obsoletos O uso eficiente de ferramental exige conhecimento Custos de treinamento, gerência e entendimento do processo de trabalho Engenharia de Software 26 Conteúdo da Aula • Grandes Fases do Desenvolvimento de Software • O que é um Processo? Engenharia de Software 14 27 Exemplo de Processo - Receita de Bolo 1. Bata as clarasem 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 28 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 15 29 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 30 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 16 31 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 32 • 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 17 33 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 34 Artefatos • Qualquer subproduto produzido durante o desenvolvimento do software • Pode ser um documento, uma lista, um diagrama, um desenho, um código fonte, um relatório de teste, etc. Engenharia de Software Artefatos de Entrada Artefatos de Saída Atividade 18 35 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 36 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 19 37 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 20 39 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 40 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