Engenharia de Software

Documentos relacionados
Engenharia de Software 1

Engenharia de Software

Engenharia de Software 1

Introdução à Engenharia de Software. Prof.ª Erika E. Freire Miranda

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Engenharia de Software

Teste de Software. Prof. Wylliams Barbosa Santos Laboratório de Programação

Sistemas de Informação I

Introdução à. Engenharia de Software. Givanaldo Rocha de Souza

IIH Introdução à Informática e Hardware

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Engenharia de Software Unidade I Visão Geral

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

ANÁLISE E PROJETO DE SISTEMAS

Engenharia de Software 01 - Introdução. Márcio Daniel Puntel marciopuntel@ulbra.edu.br

Engenharia de Software

Introdução à Computação

Engenharia de Requisitos

Introdução à Engenharia de Software

Termo de Abertura Sistema de Vendas de Pizzas Online (PizzaWeb) - Versão 1.0

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Fundamentos de Engenharia de Software. Josino Rodrigues

Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva.

Desempenho e Segurança em Sistemas de Informação. Profa.: Me. Christiane Zim Zapelini christianezapelini@nwk.edu.br

Proposta de um método para auditoria de projetos de desenvolvimento de software iterativo e incremental

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

Projeto de Sistemas I

Apostila da disciplina Introdução à Engenharia de Software Professor: Sandro Melo Faculdades São José Curso de Tecnologia de Sistemas de Informação

QUALIDADE DE SOFTWARE

Introdução aos Sistemas de Informação. Departamento de Engenharia Rural Centro de Ciências Agrárias - UFES Bruno Vilela Oliveira bruno@cca.ufes.

Engenharia de Software. Tema 1. Introdução à Engenharia de Software Profa. Susana M. Iglesias

15/09/2015. Gestão e Governança de TI. Modelo de Governança em TI. A entrega de valor. A entrega de valor. A entrega de valor. A entrega de valor

UML - Unified Modeling Language

ENGENHARIA DE SOFTWARE

Universidade Federal do ABC Rua Santa Adélia, Bairro Bangu - Santo André - SP - Brasil CEP Telefone/Fax:

Introdução a Computação

Apresentação do Curso de Engenharia de Software 2

EMENTAS DAS DISCIPLINAS

Departamento de Ciências e Tecnologias

Uma Introdução à Engenharia de Software

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

REQUISITOS. Prof. Msc. Hélio Esperidião

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

Engenharia de Software

Introdução a Engenharia de Software. Alterações na aula do Prof. Reinaldo Bianchi Alterado por: Antonio Carlos Souza ADS - IFBA

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Projeto Pedagógico do Bacharelado em Ciência da Computação. Comissão de Curso e NDE do BCC

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Processos de Desenvolvimento de Software

Engenharia de Sistemas Computacionais

DCC / ICEx / UFMG. O que é anunciado. Falha de Comunicação no Desenvolvimento de Software. Eduardo Figueiredo.

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Introdução a computação móvel. Middlewares para Rede de Sensores sem Fio. Uma avaliação na ótica de Adaptação ao Contexto

Tipos de teste de software

EMENTAS DAS DISCIPLINAS

Um Framework para definição de processos de testes de software que atenda ao nível 3 do TMM-e

Engenharia de Software

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

Convergência TIC e Projetos TIC

Comunicado à Imprensa

PLANEJAMENTO E PROJETOS. Lílian Simão Oliveira

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Universidade Paulista

P L A N O D E E N S I N O

IntroduçãoaoGuia SWEBOK. Ernani Lopes Isensee 2014

FACULDADE DE TECNOLOGIA DE TAQUARITINGA PLANO DE ENSINO º SEMESTRE DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Ciência da Computação ENGENHARIA DE SOFTWARE. Recursos e Cronograma

PROCESSOS DE CRIAÇÃO DE APLICATIVOS

APRESENTAÇÃO DA DISCIPLINA QUALIDADE DE SOFTWARE. Isac Aguiar isacaguiar.com.br

ENGENHARIA DE SOFTWARE I

Sistemas de Gerenciamento de Banco de Dados

Profa. Dra. Ana Paula Gonçalves Serra

Fábrica de Software 29/04/2015

Ciência da Computação ENGENHARIA DE SOFTWARE. Análise dos Requisitos de Software

Pós Graduação Engenharia de Software

Engenharia de Software

MODELAGEM DE SISTEMAS DE INFORMAÇÃO

GERÊNCIA DE CONFIGURAÇÃO. Isac Aguiar isacaguiar.com.br

O Processo de Desenvolvimento de Software. Engenharia de Software

Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva.

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Modernização e Evolução do Acervo de Software. Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br

Fundamentos de Engenharia de Software Professor Rafael Escalfoni

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Transcrição:

Departamento de Engenharia Rural Centro de Ciências Agrárias Engenharia de Software Prof. Bruno Vilela Oliveira bruno@cca.ufes.br http://www.brunovilela.webnode.com.br

Aula 00 Apresentação da disciplina Ementa Avaliação Datas importantes Referências

Definição: Engenharia de Software Fritz Bauer - 1969 O estabelecimento e uso de sólidos princípios de engenharia para que se possa obter economicamente um software que seja confiável e que funcione eficientemente em máquinas reais

Definição: Engenharia de Software IEEE Std 610.12 (1990) A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção do software; isto é, a aplicação da engenharia ao software. Qualquer abordagem de engenharia deve se apoiar num compromisso com a qualidade.

Engenharia de Software A economia de todas as nações desenvolvidas se tornou dependente de software. Mais e mais sistemas são controlados por softwares. Engenharia de software relaciona-se à teorias, métodos e ferramentas para o desenvolvimento profissional de software. Despesas com software representam uma fração significativa do PIB em todos os países desenvolvidos.

Engenharia de Software Custos com software geralmente são os mais altos em sistemas de computação. O custo de um software em um PC é geralmente maior que o custo do hardware. Gasta-se mais para manter o software que para desenvolvê-lo. Nos sistemas de longa vida útil, os custos de manutenção podem ser várias vezes maiores que os custos de seu desenvolvimento. A engenharia de software leva em consideração o desenvolvimento de software com relação custo benefício adequada.

Objetivos: Engenharia de Software Qualidade de software. 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.

Engenharia de Software no CCA-UFES

Apresentação da disciplina Programação de computadores

Onde está a computação? Existem diversas possibilidades para se aplicar a computação. Vários negócios bem sucedidos estão relacionados à empresas da tecnologia:

Programas feitos na Universidade Necessidades muito bem definidas 1-10 KLOCS Prazos razoáveis Equipes pequenas Mão de obra gratuita Não entra em produção Não há um cliente real O software não evolui - manutenção

Software mundo real Tipos de software Software de Sistema: Coleção de programas escritos para servir outros programas. Características: Interação intensa com hardware do computador Uso intenso por múltiplos usuários Compartilhamento de Recursos Ex: Compiladores, editores e componentes de sistemas operacionais

Software mundo real Tipos de software Software Comercial: Processamento de Informações comercial Aplicações dessa área reestruturam os dados existentes de modo a facilitar operações comerciais ou tomada de decisão de gestão de negócios Ex: Folha de pagamentos, contas a pagar/receber, controle estoque e outros.

Software mundo real Tipos de software Software Científico e de engenharia: Esse tipo de software é caracterizado por processar números Simulação de sistemas Ex: Astronomia, biologia molecular

Software mundo real Tipos de software Software para Inteligência Artificial Faz uso de algoritmos não numéricos para resolver problemas complexos que não são passiveis de computação ou analise direta. Ex: Sistemas Especialistas, também chamados sistemas baseados em conhecimento, de reconhecimento de padrões (de imagem e de voz)

Software mundo real Tipos de software Outros E-commerce (B2B, B2C, B2M, e outros) Aplicações móveis (iphone, ipad, Tablets em geral, Android) Jogos e entretenimento Robótica Sistemas de Hipermídia (Exemplo: mídias ricas) Redes sociais

Software mundo real Fatores que devem ser considerar no desenvolvimento/evolução de software do mundo real : Escopo Custo Prazo Qualidade Dependendo do tamanho do software, tais fatores se tornam mais difíceis de garantir.

Software mundo real Eclipse Indigo - 46MLoc Facebook - 9.2MLoc Debian 5.0 324MLoc Windows XP: 40 MLOCs 1800 desenvolvedores 2200 testadores

O que representa Assuma que: uma folha A4 tem em torno de 50 linhas. uma pilha de 1000 folhas A4 tem em torno de 10 centímetros de altura Logo, 1.000.000 de LOCs, caso impresso = uma pilha de 2 metros de altura! Caso todo o código do Debian 5.0 fosse impresso, teria a altura de um prédio de ~216 andares = ~1100 metros!!! Torre Burj Dubai (~800m - 160 andares) Maior prédio do mundo (04/01/2010)

Engenharia de Software The Curious Case of the CHAOS Report 2009 1994 1996 1998 2000 2002 2004 2006 2009 Successful 16% 27% 26% 28% 34% 29% 35% 32% Challenged 1 53% 33% 46% 49% 51% 53% 46% 44% Failed 2 31% 40% 28% 23% 15% 18% 19% 24% 1 - (late, over budget and/or with less than the required features and functions) 2 - (cancelled prior to completion or delivered and never used) http://www.projectsmart.co.uk/the-curious-case-of-the-chaos-report-2009.html

Software = arte? Parte arte, parte engenharia... Se o cantor/ator/pintor errar, a audiência fica chateada Se o engenheiro civil errar o prédio pode cair Se o médico errar o paciente pode morrer Caso o desenvolvedor/equipe de software errar(em), o que pode acontecer?

Tragédias envolvendo software 1º Caso real Ariane 5 - Foguete lançador de satélites Problema O foguete se autodestruiu 40 segundos após o lançamento Principais causas Software reutilizado sem ser adaptado para o novo hardware. Ausência de testes em solo deste software; Defeito apresentado em voo. Consequências Prejuízo de mais de US$ 370.000.000,00 em 1996

Tragédias envolvendo software 2º Caso real Therac-25 Therac-25 era uma máquina de radioterapia controlada por computador; Problema Emissão de doses indevidas de radiação; Principais causas O código do software não havia sido revisado/testado; O projeto do software não havia sido documentado com detalhes suficientes para permitir o entendimento dos erros; A documentação do sistema fornecida aos usuários não explicava o significado dos códigos de erro que a máquina retornava...

Tragédias envolvendo software 2º Caso real Therac-25 Principais causas (continuação) O software de modelos mais antigos havia sido reutilizado sem se considerar as diferenças no hardware O software considerava que os sensores sempre funcionavam corretamente, e não havia como verificar isto; O sistema de controle não operava sincronizado com a interface usada pelo operador da máquina, e caso o operador mudasse a configuração da máquina muito rapidamente, o sistema não atribuía os valores digitados para os controles (o que levava a aplicação das doses letais); Consequências Houve uma série de pelo menos 6 acidentes entre 1985 e 1987, nos quais os pacientes receberam overdose de radiação; Pelo menos cinco mortes aconteceram devido aos acidentes;

Tragédias envolvendo software 3º Caso real Desastre com AirBus 320 Problema Navio US Vicennes derrubou um Airbus 320 em 1988 Principais causas Falha no software de reconhecimento, confundindo o avião com um F-14 Consequências 290 mortes

Tragédias envolvendo software 2º Caso real Game - O Rei Leão animado Problema O jogo não funcionava em uma variedade de modelos de computadores Principais causas Os desenvolvedores da Disney testaram o jogo apenas naqueles computadores próximos aos que os eles usaram no desenvolvimento. Consequências Enorme prejuízo para empresa, com devolução de dinheiro aos clientes e reformulação do game.

Outros casos reais http://www.net-security.org/secworld.php?id=12098 22 people wrongly arrested in Australia due to failures in new NZ $54.5 million courts computer system A new NZ $54.5 million ($42.7 million or 26.8 million) computer system linking New South Wales courts and allowing documents to be lodged electronically led to damages claims for unlawful arrest and malicious prosecution, after 3,600 defects in the electronic transfer of data from the courts to the police s database led to the wrongful arrest of 22 individuals. Army computer glitches hinder co-ordinated efforts in insurgent tracking An army computing system designed to share realtime intelligence with troops on the front line has hindered troops by being unable to perform simple analytical tasks. The $2.7 billion cloud-based computing network system runs slowly when multiple users are on the system at the same time and the system s search tool made finding the reports difficult as the information mapping software was not compatible with the army s existing search software.

Desenvolvimento - Problemas de comunicação

Outras definições Pressman, visão em camadas Foco na qualidade: base Processo: alicerce; adesivo Métodos: conjunto de tarefas; como fazer Ferramentas: apoio automatizado ou semi-automatizado para o processo e para os métodos. Ferramentas Métodos Processo Foco na qualidade Pessoas

Ementa Processos de desenvolvimento de software. Modelos de processo de software. Planejamento e gerenciamento de projeto de software. Condições de contingência (Riscos). Análise de requisitos. Garantia da qualidade de software. Normas de qualidade de produtos e processos de software. Modelos de melhoria de processo de software. Gerência de configuração. Validação, verificação e testes de programas e sistemas. Manutenção e implantação de sistemas de software.

Objetivos Conhecer Ciclo de Vida e Modelos de processo de software Adaptar e definir modelos de processo de software aderentes à sua realidade Ter uma visão geral de planejamento, gerenciamento, riscos, projeto, engenharia de requisitos e qualidade de software PSP - Processo pessoal de software Selecionar soluções de ferramentas de apoio para o trabalho com Engenharia de Software Ter uma visão geral dos tipos de testes e seu desenvolvimento Conhecer o framework CMMI Conhecer os principais conceitos de gerência de configuração e manutenção de software Criar e Adaptar atividades gestão de configuração e manutenção em modelos de processo de software

Bibliografia Pressman, R. S.; Engenharia de Software. 6ed, Ed. McGraw Hill, 2006. ISBN: 8586804576. Sommerville, I.; Engenharia de Software. 8ed, Ed. Addison Wesley, 2007. ISBN: 9788588639287. Pfleeger, S. L.; Atlee, J. M.; Software Engineering. 3ed, Ed. Prentice Hall, 2005. ISBN: 9780131469136. Rosenberg, D.; Stephens, M.; Use Case Driven Object Modeling with UML: Theory and Practice. Ed. Apress, 2007. ISBN: 9781590597743. Fox, C.; Introduction to Software Engineering Design: Processes, Principles and Patterns with UML2. 1ed, Ed. Addison Wesley, 2006. ISBN: 9780321410139

Critérios de avaliação 2 provas totalizando 60% (30% cada) n Trabalhos práticos e teóricos totalizando 40% Datas sugeridas Prova 1-04/05/2012 Prova 2-29/06/2012 Data definida Prova final 12/07/2012

Local das aulas Quinta-feira 10:00 as 12:00 Sala 10 - Prédio Novo Quinta-feira 13:30 as 15:30 LAB3 - Chiuchiu

Engenharia de Software O que é Software? O que é engenharia de software? Qual a diferença entre engenharia de software e ciência da computação? Qual a diferença entre engenharia de software e engenharia de sistemas? O que é um processo de software? O que é um modelo de processo d

Engenharia de Software Quais são os custos da engenharia de software? Quais são os métodos de engenharia de software? O que é uma CASE ( Engenharia de Software Apoiada por Computador) Quais são os atributos de um bom software? Quais são os principais desafios da engenharia de software?