Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Engenharia de Software Aula 01 – Introdução à Engenharia de Software Software Sistemas de software: abstratos e intangíveis. Sem restrições físicas, mas podem ser complexos, difíceis de entender e caros para alterar. Existem sistemas de software de naturezas diversas (sistemas corporativos, controlador para um instrumento científico ou um jogo). Técnicas de desenvolvimento diferentes, mas todas utilizando a engenharia de software. 2 Engenharia de Software Aula 01 – Introdução à Engenharia de Software Software Não se refere apenas aos programas de computador, mas também a todos os dados de documentação e configuração associados, necessários para que um programa opere corretamente. 3 Engenharia de Software Aula 01 – Introdução à Engenharia de Software Tipos de Produtos de Software 1.Produtos genéricos: Sistemas do tipo stand-alone, desenvolvidos por uma organização e vendidos no mercado a qualquer pessoa que queira comprá-los. 2.Produtos sob encomenda ou personalizados: São aqueles desenvolvidos especialmente para um determinado cliente. 4 Engenharia de Software Aula 01 – Introdução à Engenharia de Software Atributos essenciais a um bom software Manutenibilidade: o software deve ser elaborado de forma que possa evoluir, a fim de atender aos requisitos do cliente. Confiança e proteção: confiança envolve características como confiabilidade, proteção e segurança; em caso de falha de sistema, o software confiável não causa prejuízos econômicos ou físicos; sistema não é acessado por pessoas mal intencionadas, de forma a prejudicar o sistema. 5 Engenharia de Software Aula 01 – Introdução à Engenharia de Software Atributos essenciais a um bom software Eficiência: software não deve desperdiçar recursos do sistema. Portanto, eficiência está relacionada com capacidade de resposta, tempo de processamento, uso de memória, entre outros. Aceitabilidade: software deve ser aceitável pelo usuário que dele necessita: compreensível; usável; compatível. 6 Engenharia de Software Aula 01 – Introdução à Engenharia de Software Conceitos Engenharia de Software Disciplina de engenharia relacionadas com os aspectos de produção de software. Atividades da Engenharia de Software Especificação de software. Desenvolvimento de software. Validação de software. Evolução de software. 7 Engenharia de Software Aula 01 – Introdução à Engenharia de Software Conceitos Engenharia de Software X Ciência da Computação Ciência da Computação: preocupa-se com a teoria e os fundamentos. Engenharia de Software: preocupada com o lado prático do desenvolvimento e entrega de software. Engenharia de Sistemas X Engenharia de Software Preocupação com os aspectos do desenvolvimento de sistemas computacionais (hardware, software, processo) Engenharia de Software: trata de uma parte mais específica desse processo. 8 Engenharia de Software Aula 01 – Introdução à Engenharia de Software Conceitos Desafios da Engenharia de Software Aumento da diversidade. Diminuição do tempo de entrega. Desenvolvimento de código confiável. Custos da Engenharia de Software 60% com desenvolvimento. 40% com testes. Software customizado: custos de evolução maiores que os custos de desenvolvimento. 9 Engenharia de Software Aula 01 – Introdução à Engenharia de Software Importância da Engenharia de Software Produção de sistemas confiáveis, de forma rápida e econômica, devido ao crescente número de pessoas que dependem dos sistemas de software avançados. O uso de métodos e técnicas da engenharia de software é, a longo prazo, mais barato; manutenções no software depois que ele entra em produção são mais caras. 10 Engenharia de Software Aula 01 – Introdução à Engenharia de Software Processo de Software Sequência de atividades para produzir um software. Qualquer processo de software tem as seguintes fases: Especificação: definição do software a ser produzido, bem como das restrições de sua operação. Desenvolvimento: o software é projetado e implementado. Validação: garantia de que o software faz o que o cliente quer. Evolução: o software é modificado para atender aos requisitos do cliente. 11 Engenharia de Software Aula 01 – Introdução à Engenharia de Software Aspectos que afetam os diferentes tipos de software Heterogeneidade: a necessidade de que os softwares operem em diferentes plataformas (computadores, dispositivos móveis), integração de softwares mais novos com os mais antigos e diferentes linguagens de programação exigem o desenvolvimento de técnicas que levem à construção se softwares mais confiáveis. 12 Engenharia de Software Aula 01 – Introdução à Engenharia de Software Aspectos que afetam os diferentes tipos de software Mudança de negócio e social: desenvolvimento de técnicas que permitam o rápido desenvolvimento de software, ou mesmo sua alteração, para atender de forma rápida ao cliente. Segurança e confiança: refere-se, essencialmente, aos softwares que são acessados pela Internet. 13 Engenharia de Software Aula 01 – Introdução à Engenharia de Software Tipos de aplicações Aplicações stand-alone: executadas em um computador local. Aplicações interativas baseadas em transações: executadas em um computador remoto e acessadas por usuários, a partir de seus computadores. Sistemas de controle embutidos: controlam dispositivos de hardware (celulares, microondas, antitravamento de freios, entre outros). 14 Engenharia de Software Aula 01 – Introdução à Engenharia de Software Tipos de aplicações Sistemas de processamento de lotes: processamento de grande volume de dados de entrada Sistemas de entretenimento: de utilização pessoal, com objetivo de entretenimento do usuário (jogos). Sistemas para modelagem e simulação: utilizados para modelar situações físicas, que requerem alto desempenho para executar. 15 Engenharia de Software Aula 01 – Introdução à Engenharia de Software Tipos de aplicações Sistemas de coleta de dados: interação do software com sensores, normalmente colocados em ambiente hostil (dentro de uma máquina ou em algum lugar remoto). Sistemas de sistemas: sistemas compostos por outros sistemas. Sistemas para modelagem e simulação: utilizados para modelar situações físicas, que requerem alto desempenho para executar. Diferentes tipos de aplicações requerem diferentes técnicas de engenharia de software. 16 Engenharia de Software Aula 01 – Introdução à Engenharia de Software Fundamentos da Engenharia de Software Aplicados a todos os Sistemas Desenvolvidos em um processo gerenciado e compreendido. Todos devem ter desempenho e serem confiáveis. É preciso saber, sempre, o que o usuário espera do software. Devem ser entregues no prazo estipulado. Reutilizar o software sempre que possível. 17 Engenharia de Software Aula 01 – Introdução à Engenharia de Software Responsabilidade Profissional e Ética Engenharia de Software está dentro de uma estrutura de condições legais e sociais que limita a liberdade dos engenheiros. Estes devem admitirque o seu trabalho implica responsabilidades mais amplas do que a aplicação de habilidades técnicas. Os engenheiros devem se comportar de forma responsável ética e moralmente, a fim de serem respeitados como profissionais (confidencialidade, competência, direitos sobre propriedade intelectual, mau uso de computadores). 18 Engenharia de Software Aula 01 – Introdução à Engenharia de Software Fonte: Engenharia de Software – Ian Sommerville – 9ª ed.
Compartilhar