METODOLGIA EM ANÁLISE E PROJETO DE SISTEMAS TECNOLOGIA EM PROC. DE DADOS INTRODUÇÃO À ENGENHARIA DE SOFTWARE Prof. José Eduardo Freire INTRODUÇÃO Hoje em dia, o software está presente, explicitamente ou mesmo sem se fazer notar, em todos os aspectos de nossa vida, inclusive nos sistemas críticos que afetam a nossa saúde e o nosso bem-estar. Neste contexto a Engenharia de Software é muito importante, pois deve assegurar que o software tenha uma contribuição positiva em nossas vidas. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall INTRODUÇÃO De forma moderna, a Engenharia de Software caminha em paralelo com os sistemas de informação, ambos temas destinados às organizações, para auxiliar as mesmas a tomarem decisões sob o foco de seu negócio empresarial ou de sua atividade pública. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall O que é Engenharia de Software? Primeiro é essencial entender a natureza do problema, pois não devemos impor máquinas e técnicas computacionais a toda questão que aparecer em nosso caminho. Deve-se começar a investigação analisando o problema, isto é, dividindo-o em partes que sejam capazes de entender e manipular. Vejamos a figura a seguir que mostra O Processo de Análise. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall O que é Engenharia de Software? Analisado o problema, deve-se elaborar a solução a partir de componentes que resolvam vários de seus aspectos. Vejamos a seguir a figura que ilustra O Processo de Síntese. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall O que é Engenharia de Software? Qualquer técnica de solução de problemas deve ter duas partes: a análise do problema para determinar a sua natureza; síntese da solução com base em nossa análise. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall O que é Engenharia de Software? Para ajudar a resolver um problema utilizamos uma variedade de métodos, ferramentas, procedimentos e paradigmas. Você sabe o que é métodos ou técnicas, ferramentas, procedimentos e paradigmas? Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall O que é Engenharia de Software? Método ou técnica: procedimento para a produção de um resultado Ferramenta: instrumento ou sistema automatizado para realizar uma tarefa da melhor maneira (preciso, eficiente, produtivo) Procedimento: combinação de ferramentas e técnicas, que em harmonia, produzem um resultado específico. Paradigma: estilo de fazer algo, representa uma abordagem ou filosofia em particular para a construção do software (AOO e Procedural). Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall O que é Engenharia de Software? Como você define Engenharia de Software? Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall O que é Engenharia de Software? Para Sommerville a Engenharia de software envolve questões técnicas e não técnicas, tais como a especificação do conhecimento, técnicas de projeto e implementação, conhecimentos dos fatores humanos pelo engenheiro de software e ainda, gestão de projetos. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Atuação dos Profissionais na Engenharia de Software Utilizam dos computadores e linguagem de programação como ferramentas, no projeto e na implementação da solução de um problema Veja a figura a seguir que mostra a relação entre a ciência da computação e a engenharia de software. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Grau de Sucesso da Engenharia de SW Os cientistas da computação e pesquisadores da engenharia de software estudam os mecanismos dos computadores e teorizam sobre como torná-los mais produtivos e eficientes. Eles também projetam sistemas computacionais e escrevem programas para realizar tarefas nesses sistemas, uma prática que envolve arte, originalidade e técnica. A engenharia de software trata do projeto e do desenvolvimento de software de alta qualidade. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Grau de Sucesso da Engenharia de SW Os produtos de software não estão isentos de problemas. defeitos erros e falhas Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Grau de Sucesso da Engenharia de SW Um defeito ocorre quando uma pessoa comete um engano, chamado de erro, na realização de alguma atividade relacionada a um software. EXEMPLO: um projetista pode não compreender corretamente um requisito e criar um projeto que não condiz com a verdadeira intenção do analista de requisitos e do usuário. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Grau de Sucesso da Engenharia de SW Uma falha é uma divergência entre o comportamento requerido para o sistema e o comportamento real. Um defeito é uma visão interna do sistema, observada pelo ponto de vista dos desenvolvedores, enquanto uma falha é vista a partir de um referencial externo ao sistema, ou seja, um problema que o usuário vê. Veja a figura a seguir que mostra como o erro humano causa um falha. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Grau de Sucesso da Engenharia de SW Não se pode negar que os produtos de software têm apoiado avanços na medicina, agricultura, transportes, educação, robótica, telefonia e outros setores. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall O que é um bom software? Da mesma maneira que os fabricantes buscam modos de assegurar a qualidade dos produtos que produzem, os engenheiros de software também procuram métodos que assegurem que seus produtos são de qualidade e utilidade aceitáveis. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Perspectivas de Garvin sobre qualidade Visão transcendental: algo que podemos reconhecer, mas não definir Visão do usuário: conveniência para propósito pretendido Visão do fabricante: conformidade com especificação Visão do produto: relação com as características inerentes ao produto Visão do mercado: dependência de quanto os consumidores estão dispostos a pagar Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Considerações da Qualidade para Kitchenham e Pfleeger Qualidade do Produto Qualidade do Processo Qualidade no contexto do ambiente de negócios Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Qualidade do Produto Freqüentemente constrói modelos com o objetivo de relacionar a visão externa que o usuário tem do software com a visão interna dos desenvolvedores. Veja na figura a seguir os fatores de qualidade externo (lado esquerdo)que se relacionam com os critérios de qualidade do produto (lado direito). Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Figura 1.5 Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Qualidade do Processo Uma das vantagens de se modelar o processo é que isso nos permite examiná-lo e procurar meios de aprimorá-lo. Algumas questões que podem ajudar: Onde e quando é mais provável encontrarmos um tipo de defeito? Como podemos encontrar defeitos o mais cedo possível no processo de desenvolvimento? Como podemos incluir tolerância a defeitos de maneira que minimizemos a probabilidade de um defeito se tornar uma falha? Existem atividades alternativas que podem tornar nosso processo mais efetivo ou eficiente com relação à garantia da qualidade? Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Qualidade no contexto do ambiente de negócios Treinamento Cronograma Risco Qualidade Produtividade Processo Cliente Custos Negócios Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall EXERCÍCIO Leia o artigo da Tampico do Brasil e descreva sobre a QUALIDADE do software apresentado pela empresa. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Participantes da Engenharia de Software Cliente Desenvolvedor Usuário. Veja a relação entre eles na figura a seguir: Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Figura 1.7 Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Abordagem de Sistemas É importante estabelecer o contexto de cada projeto conhecendo suas fronteiras, ou seja, o que está incluído no projeto e o que não está. Veja o exemplo a seguir: Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Figura 1.9 Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Abordagem de sistemas Identificar atividades e objetos. Definir as relações e fronteiras do sistema. Considerar sistemas inter-relacionados. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Uma abordagem de Engenharia (CASA X SISTEMA) Identificar e analisar os requisitos Produzir e documentar todo o projeto Detalhar as especificações Identificar e projetar os componentes Construir cada componente Testar cada componente Integrar os componentes Fazer as modificações finais Manutenção contínua Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Análise e definição dos requisitos Projeto do sistema Projeto do programa Escrever os programas Testes das unidades Teste de integração Teste do sistema Entrega do sistema Manutenção Prentice Hall Membros de uma equipe de desenvolvimento Vejamos a participação de todos que compõem uma equipe de desenvolvimento de software. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Figura 1.11 Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Fatores-chave que mudaram a prática da engenharia de software (Wasserman) Aspecto crítico do tempo para entrega do produto ao mercado, no caso de produtos comerciais Mudanças na economia da computação (redução dos custos de hardware e aumento nos custos de desenvolvimento e manutenção) Disponibilidade poderosa da computação em desktops Aumento das redes locais e remotas Disponibilidade e adoção da tecnologia orientada a objetos Uso de interfaces gráficas Imprevisibilidade do modelo de desenvolvimento de software cascata Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Disciplina de engenharia de software de Wasserman Abstração Métodos e notações de análise e projeto Protótipo da interface com o usuário Arquitetura de software Processo de software Reuso Medição Ferramentas e ambientes integrados Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Abstração É de um problema com um nível de generalização que nos permite concentrar nos principais aspectos do problema, sem nos perdermos nos detalhes. A abstração envolve a identificação de classes de objetos que nos permitem agrupálos, podendo lidar com menos coisas e nos concentrar no que os itens de cada classe têm em comum. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Métodos e notações de análise e projeto Os métodos de análise de projetos nos oferecem mais do que um meio de comunicação, eles nos permitem construir modelos e avaliar a completeza e a consistência. Pode-se ainda reutilizar prontamente requisitos e componentes de projetos de desenvolvimento anteriores, aumentando a produtividade e qualidade com relativa facilidade. Proporcionam os detalhes de “como fazer” para construir o software. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Protótipo da interface com o usuário Significa construir uma versão de um sistema, com funcionalidade limitada. Ajuda o usuário ou cliente a definir os principais requisitos de um sistema. Demonstra a viabilidade do projeto ou de uma abordagem. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Arquitetura de software É importante não somente para facilitar a implementação e o teste do sistema, mas também para a rapidez e eficiência com que poderão ser realizadas alterações e manutenções. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Processo de software Muitos engenheiros de software têm prestado bastante atenção ao processo de desenvolvimento de software, assim como aos produtos resultantes desse processo, pois estes contribuem com a qualidade e rapidez de seu desenvolvimento. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Reuso Empresas investem em itens reutilizáveis e têm benefícios quando esses itens são utilizados de novo em outros projetos. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Medição Aspecto-chave para a boa prática da engenharia de software. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Ferramentas e ambientes integrados Integração da plataforma: a habilidade da ferramentas de operar em redes heterogênea. Integração da apresentação: padronização da interface com o usuário. Integração do processo: união entre as ferramentas e o processo de desenvolvimento. Integração de dados: o modo como as ferramentas compartilham os dados. Integração do controle: habilidade de uma ferramenta em notificar e iniciar a ação de uma outra. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Ferramentas e ambientes integrados São os instrumentos que proporcionam os detalhes de “como fazer” para construir o software. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall Bibliografia PFLEEGER, SHARI LAWRENCE. Engenharia de software: teoria e prática. Ed: Prentice Hall. São Paulo, 2004. Cap 01: Porque Engenharia de software. REZENDE, DENIS ALCIDES. Engenharia de software e sistemas de informação. Ed: Brasport. Rio de Janeiro, 2005. Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 1 Prentice Hall