Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas de Informação Profa. Ivre Marjorie Engenharia de Software Aula baseada em material cedido pelo Profº Tadeu Faria e profa. Sandra Silveira Leitura Indicada Capítulo 2 – Engenharia de Software PRESSMAN, Roger. Engenharia de software. 8. Porto Alegre, AMGH, 2016. recurso online Capítulo 1 – Introdução SOMMERVILLE, Ian. Engenharia de software. 10. ed. São Paulo (SP): Pearson Prentice Hall, c2019. xii, 756 SOMMERVILLE, Ian. Engenharia de software. 9ª. ed., São Paulo: Pearson Prentice Hall, c2011, capítulo 1. recurso online Capítulo 1 – Engenharia de Requisitos VAZQUEZ, Carlos Eduardo; SIMÕES, Guilherme Siqueira. Engenharia de requisitos: software orientado ao negócio. Rio de Janeiro (RJ): Brasport, c2016. 302 p. recurso online. Introdução - Problemas de Software Por que concluir um software leva tanto tempo? Por que os custos de desenvolvimento são tão altos? Por que não conseguimos encontrar todos os erros antes de entregarmos o software aos clientes? Por que gastamos tanto tempo e esforço mantendo programas existentes? Por que continuamos a ter dificuldade em medir o progresso enquanto o software está sendo desenvolvido e mantido? (Pressman, 2016) Engenharia de Software “A aplicação de um método sistemático, disciplinado e quantificável ao desenvolvimento, operação e manutenção de software; isto é, a aplicação da engenharia ao software.” (IEEE Standard Computer Dictionary) Engenharia de Requisitos disciplina parte da Engenharia de Software Principais modelos de referência Processo Unificado da Rational/IBM (RUP) Corpo de conhecimento da Engenharia de Software do IEEE (SWEBOK) Áreas de processo de modelo de maturidade CMMI Engenharia de Software Requisitos de Software Projeto de Software Construção de Software Teste de Software Manutenção de Software Gerência de Configuração de Software Gerência de Engenharia de Software Processo de Engenharia de Software Ferramentas e Métodos da Engenharia de Software Qualidade de Software 6 Taxa de sucesso de projetos Estatísticas em projetos de software 37% Atendimento às expectativas iniciais 42% Não funcionam como planejado ou nunca serão usados 21% fracassam integralmente Qualidade 57% dos sistemas são entregues sabendo-se que têm defeitos Prazo 68% dos projetos são entregues com atraso Custo 50% dos projetos custam mais do que o planejado Histórico de sucesso, mudanças e falhas de projetos de TI Analogia: A cada 10 pontes construídas, 2 cairiam.... Fonte: Standish Group, CHAOS Manifesto 2015. Frequência da utilização de software O cliente para se prevenir... pede mais do que precisa, pois pede tudo de uma vez! Problemas/Dificuldades no Desenvolvimento de Software Estimativas de prazo, esforço e custo imprecisas. Sistemas informatizados: sendo entregues com atraso; custando mais caro do que o previsto. 10 Profº Tadeu Faria - Engenharia de Requisitos Qualidade do software às vezes é menor que a adequada; causando insatisfação do usuário final, pois o sistema informatizado entregue: não faz o que deveria fazer; é pouco confiável; é lento; é difícil de usar; 11 Problemas/Dificuldades no Desenvolvimento de Software Profº Tadeu Faria - Engenharia de Requisitos Qualidade do software 12 Problemas/Dificuldades no Desenvolvimento de Software Profº Tadeu Faria - Engenharia de Requisitos Aumento da demanda por novos softwares; Demandas diferentes: softwares devem ser construídos e entregues mais rapidamente; softwares maiores e mais complexos. Documentação insuficiente; Falta de processos e métodos; 13 Problemas/Dificuldades no Desenvolvimento de Software Profº Tadeu Faria - Engenharia de Requisitos Empresas dependentes de sistemas legados que necessitam de modificações; mas possuem código e/ou documentação ilegíveis ou inexistentes. Manutenção difícil, cara e demorada de software já existente. Coleta de dados sobre produtividade inexistente ou insuficiente; comprometendo as estimativas de prazo, esforço e custo; não permitindo a avaliação de novas ferramentas, técnicas e padrões. 14 Problemas/Dificuldades no Desenvolvimento de Software Profº Tadeu Faria - Engenharia de Requisitos Crise do Software Causas da Crise do Software: Projetos estourando o orçamento; Projetos estourando o prazo; Software de baixa qualidade; Software muitas vezes não atingiam os requisitos; Projetos ingerenciáveis e o código difícil de manter. As questões apresentadas demonstram a preocupação que tem levado à adoção da prática da Engenharia de Software!!! (Pressman, 2016) 1960 a 1985: estouros de orçamentos e cronogramas: OS/360: tempo do projeto: 10 anos (1960 a 1970); equipe: 1.000 programadores. danos materiais: falhas de segurança. mortes: Therac-25: (1985 a 1987) 6 acidentes envolvendo doses altíssimas de radiação; dose terapêutica: 200-rad; dose do Therac-25: 15.000 a 20.000-rad (radiation absorbed dose). A Crise do Software 16 Profº Tadeu Faria - Engenharia de Requisitos Questão para Discussão Os problemas e dificuldades citados para o desenvolvimento de software já ocorrem há muitos anos. A empresa em que você trabalha passa por esses problemas? Solução? Área de pesquisa Engenharia de Software 17 Profº Tadeu Faria - Engenharia de Requisitos Possíveis Práticas para Diminuir os Problemas/ Dificuldades Métodos para todas as fases do desenvolvimento do software. Melhores técnicas para a garantia da qualidade. Controle do progresso do projeto. 18 Profº Tadeu Faria - Engenharia de Requisitos “Uma disciplina da Engenharia que se ocupa de todos os aspectos da produção de software, desde os estágios iniciais de especificação do sistema até a manutenção desse sistema, depois que ele entrou em operação.” (Sommerville, 2019) Engenharia de Software Segundo a IEEE (Institute of Electric... (1) A aplicação de uma abordagem sistemática, disciplinada e quantificável no desenvolvimento, na operação e na manutenção do software; isto é, a aplicação de engenharia ao software Engenharia de Software Referência completa para todo o corpo de conhecimento da ES: Software Engineering Body of Knowledge(SWEBOK) Como a Engenharia de Software se diferencia de outras Engenharias? A Engenharia de Software desenvolve ou projeta um software; não o fabrica no sentido clássico. Software é um produto lógico e não físico. Custos concentram-se no desenvolvimento e não na produção. Reuso de componentes na criação de novos produtos. Software não se desgasta; se deteriora. 21 Profº Tadeu Faria - Engenharia de Requisitos Engenharia de Software Três elementos fundamentais: métodos; padrões; ferramentas. Auxiliam: controle do processo de desenvolvimento do software; construção de software de alta qualidade. Não existe um método ou uma técnica universal de engenharia de software que se aplique a todos os tipos software. 22 Profº Tadeu Faria - Engenharia de Requisitos Áreas da ES Especificação dos requisitos Boas especificações de requisitos são indispensáveis; Custam tempo e dinheiro A ausência custa MUITO MAIS tempo e dinheiro. São investimentos! Não representam custos supérfluos, mas investimentos necessários que se pagam com altos juros. Áreas da ES Gestão dos requisitos “Disciplina da engenharia de software que procura manter sob controle o conjunto dos requisitos de um produto, mesmo diante de algumas alterações inevitáveis.” Instabilidade dos requisitos Áreas da ES Gestão de projetos Para cumprir prazos e custos, os compromissos precisam ser assumidos com base em requisitos bem levantados, analisados e documentados. Os planos de projeto realizados com boas técnicasde estimativa e análise de tamanho, esforços, prazos e riscos. Prazos políticos implicam em desenvolvedores stressados e com má qualidade de vida, gerentes com prejuízo e desacreditados na TI e clientes produtos de má qualidade, mais caros e atrasados. A Gestão de Projetos é uma disciplina da Engenharia de Software. Capacidade em gestão de contratos: Especificar correta e completamente o produto a ser desenvolvido; Fazer uma boa seleção entre os candidatos a subcontratado, avaliando grau de realismo das suas propostas; Acompanhar o desempenho do subcontratado, sem interferir no seu trabalho, mas detectando sintomas de problemas; Planejar e executar os procedimentos de aceitação do produto. Áreas da ES Gestão de Contratos “Riscos são eventos incertos cuja ocorrência provoca efeitos nos objetivos de um projeto, geralmente negativos”. Mapeados e analisados os riscos pode-se determinar uma postura em relação a eles: aceitá-los tendo em vista as oportunidades ou planejar contramedidas preventivas. Áreas da ES Gerenciamento de Riscos “Grau de conformidade com os requisitos”. Cada requisito não-atendido é um defeito. A qualidade é consequência dos processos, das pessoas e da tecnologia. É muito mais fácil controlar requisitos que qualidade. Atividades de garantia da qualidade: revisões, testes e auditorias. Defeitos ocorrem por limitações humanas: erros lógicos, de interpretação, desconhecimento de técnicas, falta de atenção e de motivação. Quanto mais tarde um defeito é corrigido, mais cara é a correção. Somos mais eficazes para achar os defeitos dos outros do que os nossos próprios. Devem ser utilizados testadores independentes. A garantia da qualidade funciona melhor quando é coordenada por um grupo da organização independente dos projetos e com acesso a alta direção. Áreas da ES Qualidade Um projeto de software é composto por artefatos, sejam eles códigos, modelos, relatórios e documentos. Os artefatos evoluem e não podem ser perdidos. Gestão de configurações trata de organizar e controlar a proliferação dos artefatos. Áreas da ES Gestão de Configurações Engenharia de software Pontos chaves... Entenda o problema antes de elaborar uma solução Projetar é uma atividade fundamental Qualidade e facilidade de manutenção são resultantes de um projeto bem feito. Existem vários tipos de sistemas de informação. Todas as aplicações precisam de engenharia de software embora não necessitem das mesmas técnicas. A engenharia de software tem por objetivo apoiar o desenvolvimento profissional de software, mais do que a programação individual. Engenharia de software Pontos chaves... Todos os tipos de aplicações devem ser desenvolvidas em um processo gerenciado e compreendido. Confiança e desempenho são importantes para todos os tipos de sistema. É importante gerenciar a especificação e os requisitos do software. Utilizar recursos existentes. A Ciência da Computação se preocupa com as teorias e com os métodos fundamentais A Engenharia de Software se dedica aos problemas práticos da produção de software Qual é a diferença entre Engenharia de Software e Ciência da Computação 32 A Engenharia de Software não se confunde com a Ciência da Computação e nem é uma disciplina desta. A ES usa resultados da Ciência da Computação e fornece problemas para estudo desta. Diferenças entre as áreas de conhecimento. ..\..\..\..\Comum\Videos\Diferença entre cursos de TI.mp4 Engenharia de Software ../../../../Comum/Videos/Diferença entre cursos de TI.mp4 Engenharia de Requisitos 34 Engenharia de Requisitos “Conjunto de processos e atividades empregadas para descobrir, detalhar, documentar, gerenciar o conjunto de requisitos de um software. O uso da palavra “Engenharia” pressupõe o uso sistemático e repetível de técnicas de forma a garantir que o conjunto de requisitos seja completo, correto, consistente, etc.” Profº Marcelo Werneck - Engenharia de Requisitos (Sommerville, 2019) Engenharia de Requisitos “Disciplina da Engenharia de Software que consiste no uso sistemático e repetitivo de técnicas para cobrir atividades de obtenção, documentação e manutenção de um conjunto de requisitos para software que atendam aos objetivos de negócio e sejam de qualidade.” O uso do termo “Engenharia” é o mais adequado tendo em vista que a ER está intimamente ligada à aquisição e aplicação de conhecimento para criação, aperfeiçoamento e a implantação de SI. (Vasquez, 2016, p.1) Engenharia de Requisitos 37 Analista de Requisitos “Realiza o levantamento de requisitos e especificação de projetos de TI, desenvolvendo soluções para processos, mapeamento e análise de requisitos de softwares e status report para gestão de projetos”. Outros nomes: Analista de negócios de TI, Analista de sistemas, Analista de informações, Engenheiro de Requisitos (IREB) (Catho apud Vasquez, 2016, p.13) Analista de Requisitos 39 Bibliografia PRESSMAN, Roger. Engenharia de software. 8. Porto Alegre, AMGH, 2016. recurso online SOMMERVILLE, Ian. Engenharia de software. 10. ed. São Paulo (SP): Pearson Prentice Hall, c2019. xii, 756 SOMMERVILLE, Ian. Engenharia de software. 9ª. ed., São Paulo: Pearson Prentice Hall, c2011, capítulo 1. recurso online VAZQUEZ, Carlos Eduardo; SIMÕES, Guilherme Siqueira. Engenharia de requisitos: software orientado ao negócio. Rio de Janeiro (RJ): Brasport, c2016. 302 p. recurso online.
Compartilhar