Upload
truongquynh
View
219
Download
0
Embed Size (px)
Citation preview
Introdução a Engenharia de Software
“Engenharia é a arte, a ciência e a técnica de bem conjugar os conhecimentos especializados (cient í ficos) de uma dada área do saber com a sua viabilidade t é cnico-econ ô mica, para produzir novas utilidades e/ou transformar a natureza, em conformidade com idéias bem planejadas.”
(SOFTEX, 2010)
Introdução a Engenharia de Software
Uma pesquisa da IBM, em 1994, constatou o seguinte:
55% dos sistemas custam mais do que o esperado 68% ultrapassam o cronograma do projeto 88% tiveram que ser substancialmente reprojetados
(SOFTEX, 2010)
Introdução a Engenharia de Software
Para cada 6 novos sistemas colocados em opera ç ã o, 2 s ão cancelados;
A probabilidade de cancelamento chega a 50% para os maiores sistemas;
Em m é dia, os projetos ultrapassam o cronograma em 50% do tempo;
Os sistemas t ê m 3/4 de seu todo tidos como “falhas operacionais”.
(Bureau of Labor Statistics, 1997 )
Introdução a Engenharia de Software
Therac-25 (1985-87)
Máquina de radioterapia com software controlador: O dispositivo responsável por sincronizar o hardware
é removido, mas o software não possui sincronismo. O software falha na tarefa de manter invariantes
essenciais: o feixe de elétrons ou o feixe mais forte de radiação e a chapa se interferem na geração de raios X.
O problema só foi detectado três semanas depois de várias vítimas fatais.
Introdução a Engenharia de Software
O foguete explodiu 40 segundos após a sua decolagem; Foi aproveitado um pacote de software de navegação do Ariane 4
que não tinha erros: No módulo Sistema de Referencial Inercial uma conversão de
valores de 64-bits para 16-bits causou um operando inv álido que o interrompeu.
A falha no SRI levou o computador de bordo a modificar a trajetória do foguete levando à ruptura de juntas e isto causou a ativação da auto-destruição.
Introdução a Engenharia de Software
Sistema de Triagem
Aeroporto de Denver Custo do projeto: US$ 4,9 bilhões 100 passageiros por dia 1200 vôos 53 milhas quadradas 94 portões de embarque e desembarque 6 pistas de pouso / decolagem
Introdução a Engenharia de Software
Erros no sistema automático de transporte de bagagens Custo: US$ 193 milhões Atraso na abertura do aeroporto. Custo total estimado em
US$ 360 milhões. Inauguração prevista para outubro de 1993 Em junho de 1994 o sistema ainda não estava funcionando,
causando um prejuízo estimado de US$ 1,1 milhão/dia No começo de 1995 foi instalado um controle manual de
bagagem. US$ 86 milhões para consertar o sistema.
Introdução a Engenharia de SoftwareAtividade
Problemas causados por Software Erros de Software Causas Prejuízos Valores Empresa
Envio por email Título: Problemas causados por software Nome da Dupla Sem anexos
Dupla Debate em Sala
Introdução a Engenharia de Software
O que é software?
“Programas de computador e documentação associada.”
Cliente Específico Mercado em Geral
(SOMMERVILLE, 2011)
Introdução a Engenharia de Software
Características de Software
ComplexidadeMuitas regras, diversos desenvolvedores!Software é mais complexo do que qualquer outro produto construídos por
seres humanos.
Invisibilidade e intangibilidadeO que se vê são as consequências da execução do software.
18
Introdução a Engenharia de Software
Produção sob medida e Conformidade
Cada usuário é um cliente, que usa o software à sua maneira.
O software deve ser desenvolvido conforme o ambiente. N ã o é o ambiente que deve se adaptar ao software.
19
Introdução a Engenharia de Software
MutabilidadeExiste sempre uma pressão para se fazer mudanças em um software.
Não tem prazo de validadeNão é sens ível a problemas ambientais. A Obsolescência ocorre devido à
evolução do hardware e, consequetemente da tecnologia.
O custo final do software é basicamente o custo do projeto de desenvolvimento.
20
Introdução a Engenharia de Software
Tipos de Software
BÁSICO: coleção de programas escritos para dar apoio a outros programas
TEMPO REAL: software que monitora, analisa e controla eventos do mundo real
Introdução a Engenharia de Software
Tipos de Software
CIENT Í FICO E DE ENGENHARIA: S ã o softwares que auxiliam as aplicações cient í ficas. Caracterizado por algoritmos de processamento de números
COMERCIAL ou EMPRESARIAL: sistemas de opera ç ões comerciais e tomadas de decisões administrativas
22
Introdução a Engenharia de Software
Tipos de Software
EMBUTIDO ou EMBARCADO: usado para controlar produtos e sistemas para os mercados industriais e de consumo
DE COMPUTADOR PESSOAL: envolve processamento de textos, planilhas eletrônicas, diversões, etc.
Introdução a Engenharia de Software
Tipos de Software
DE INTELIGÊNCIA ARTIFICIAL: faz uso de algoritmos n ão num é ricos para resolver problemas que n ã o sejam favor á veis à computação ou à análise direta
Introdução a Engenharia de Software
Mitos do Software
O estabelecimento de objetivos gerais é suficiente para se começar a escrever programas.
Dê a uma pessoa técnica um bom livro de programação e você terá um programador.
Mudan ç as no software podem ser feitas facilmente porque ele é "flexível".
Introdução a Engenharia de Software
Mitos do Software
Até que o programa esteja "rodando" não é possível verificarmos a sua qualidade.
Uma vez que o programa esteja escrito e funcionando, nosso trabalho está feito.
Um projeto é bem sucedido se conseguirmos um programa funcionando corretamente.
Introdução a Engenharia de Software
Categorias de Tamanho de Softwares
Win 95: teve 11 milhões de linhas e 200 programadores Nestscape: teve 3 milhões de linhas e 120 programadores
Introdução a Engenharia de Software
Categorias de Tamanho de Softwares
Win 95: teve 11 milhões de linhas e 200 programadores
Nestscape: teve 3 milhões de linhas e 120 programadores
Introdução a Engenharia de Software
Atributos de um Software de Qualidade
O software que satisfaz os requisitos solicitados pelo usu ário. Deve ser fácil de manter, ter boa performance, ser confiável e fácil de usar.
Introdução a Engenharia de Software
Atributos de um Software de Qualidade
Integridade
O Software deve garantir que a informa ç ã o manipulada mantenha todas as características originais estabelecidas pelo proprietário da informação, incluindo controle de mudanças e garantia do seu ciclo de vida (nascimento,manutenção e destruição).
Disponibilidade
O Software deve resistir a falhas mantendo serviços disponibilizados o máximo de tempo possível.
Introdução a Engenharia de Software
Atributos de um Software de Qualidade
Eficiente
O software não deve desperdiçar os recursos do sistema.
Usabilidade ou Aceitabilidade
O software deve ser fácil de usar pelos usuários para os quais ele foi projetado.
Introdução a Engenharia de Software
Atributos de um Software de Qualidade
Manutenibilidade
O software deve evoluir para atender os requisitos que mudam.
Reusabilidade
Processo de se utilizar cópias ou extensão de funcionalidades de um componente do software pré-existente em várias outras partes do sistema.
Introdução a Engenharia de Software
Atributos de um Software de Qualidade
Interoperabilidade
Software deve ser capaz de ser executado em qualquer plataforma de hardware ou software de forma transparente.
Extensibilidade
Capacidade que o sistema tem em crescer pela adi ç ã o de novos componentes externos.
Introdução a Engenharia de Software
Atributos de um Software de Qualidade
Adaptabilidade
Refere-se à propriedade de um produto mudar suas caracter ísticas automaticamente de acordo com a “percepção” do Usuário.
Conformidade
O software deve está exatamente como foi projetado.
Introdução a Engenharia de Software
E porque aplicar Engenharia em Software é bom?
Controle sobre o desenvolvimento de software dentro de custos, prazos e níveis de qualidade desejados;
Produtividade no desenvolvimento, opera ç ã o e manuten ç ã o de software;
Qualidade versus Produtividade; Permitir que profissionais tenham controle sobre o
desenvolvimento de software dentro de custos, prazos e n íveis de qualidade desejados.
Introdução a Engenharia de Software
Características da Engenharia de Software
A Engenharia de Software se refere a software (sistemas) desenvolvidos por grupos ao invés de indivíduos;
Usa princípios de engenharia ao invés de arte; Inclui tanto aspectos técnicos quanto não técnicos.
Introdução a Engenharia de Software
Definições sobre Engenharia de Software
“É uma disciplina de engenharia que se preocupa com todos os aspectos de produção de software.”
(SOMMERVILLE, 2011)
Introdução a Engenharia de Software
“ É a disciplina que lida com a constru ç ã o de sistemas de software flex íveis, modulares, robustos, confiáveis, usáveis e adequados ao contexto sociot é cnico onde estes sistemas estão inseridos.”
(SOFTEX, 2010)
“Uma disciplina que lida com a construção de sistemas de software que são tão grandes que são construídos por um ou vários times de engenheiros.”
(GHEZZI, JAZAYERI, MANDRIOLI)
41
Introdução a Engenharia de Software
“Uma disciplina cujo objetivo é a produção de software sem falhas, entregue dentro de prazo e or ç amento e satisfazendo as necessidades dos usu á rios. Al é m disso, o software precisa ser facilmente modificável quando as necessidades do usuário mudam.”
(SCHACH)
“O estabelecimento e uso de só lidos princ ípios de engenharia para que se possa obter economicamente software que seja confiável e que funcione eficientemente em máquinas reais.”
(BAUER)
Introdução a Engenharia de Software
Desafios da Engenharia de Software
Lidar com o aumento de diversidade; Demandas pela diminuição do tempo para entrega; Desenvolvimento de software confiável.
Sommerville (2011)
43
Introdução a Engenharia de Software
Como a Engenharia tenta resolver os problemas?
Adotando uma abordagem sistemática e organizada para seu trabalho e usar ferramentas e técnicas/mé todos apropriados dependendo do problema a ser solucionado, das restri ç õ es de desenvolvimento e dos recursos disponíveis.
Introdução a Engenharia de Software
Método ou Técnica
Procedimento formal para produzir algum resultado.
Introdução a Engenharia de Software
Ferramentas
Instrumento ou sistema automatizado utilizado para realizar uma tarefa da melhor maneira.
Introdução a Engenharia de Software
Procedimento
É como uma receita: a combinação de ferramentas e técnicas que, em harmonia, produzem um resultado específico.
Introdução a Engenharia de Software
Exercício
Individual Entrega e Discussão aula que vem!
Identifique os Atributos de Qualidade no Problema e Justifique.
Introdução a Engenharia de Software
Visa-se resolver problemas de uma empresa do Varejo, existem alguns pontos que o software deve prover.
A loja não pode deixar de cobrar por produtos comprados pelo consumidor;A loja não pode parar de vender;O consumidor não pode esperar;A empresa quer investir pouco em recursos computacionais (CPU, memória, rede);A empresa quer investir pouco em treinamento;A empresa tem sempre novos requisitos (para ontem!);A empresa quer o software customizado do seu jeito (interface, teclado, idioma, moeda, etc.);Várias empresas precisam usar partes de um mesmo sistema;A empresa já tem controle de estoque, fidelização, etc.;A empresa opta por uma determinada plataforma;A empresa tem um grande número de PDVs.