Software é um produto conceitual e lógico. Software é mais complexo do que qualquer outro produto construídos por seres humanos



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

Introdução a Engenharia de Software. Aécio Costa

PROJETO DE SISTEMAS. Professora Lucélia

Itens estruturais/caso de uso. Itens estruturais/classe ativa. Itens estruturais/componente. Itens estruturais/artefatos. Itens comportamentais

Teste de Software. Rafael D. Ribeiro, M.Sc.

Engenharia de Software 1

Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Introdução. Prof. MSc. Hugo Souza

Unidade IV GERENCIAMENTO DE SISTEMAS. Prof. Roberto Marcello

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

Curso Superior de Tecnologia em Banco de Dados e Sistemas para Internet Disciplina: Projeto Integrador III Prof.: Fernando Hadad Zaidan

Introdução à Ciência da Computação

Cinco restrições de desenvolvimento/teste que afetam a velocidade, o custo e a qualidade dos seus aplicativos

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

Engenharia de Software I

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

Sistema Datachk. Plano de Projeto. Versão <1.0> Z u s a m m e n a r b e i t I d e i a s C o l a b o r a t i v a s

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Roteiro. MC-102 Aula 01. Hardware e dispositivos. O que é um computador? Primeiro Semestre de A linguagem C

Introduçãoa Engenhariade. Prof. Anderson Cavalcanti UFRN-CT-DCA

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Especialização em Engenharia de Software e Banco de Dados

Engenharia de Software


ZF apresenta soluções para frotas em uma das principais feiras de ônibus da Europa

Projeto de Desenvolvimento de Software. Apresentação (Ementa) e Introdução

Unidade I Conceitos BásicosB. Conceitos BásicosB

c. Técnica de Estrutura de Controle Teste do Caminho Básico

Engenharia de Software Unidade I Visão Geral

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Motorola Phone Tools. Início Rápido

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

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

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

Reaproveitando algoritmos

Introdução à Engenharia de Software. Profª Jocelma Rios

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

Análise e Projeto de Sistemas

ADMINISTRAÇÃO E SERVIÇOS DE REDE

VISÃO Ser a melhor empresa danossa região em gestão e consultoria em telecomunicações.

Sistemas Operacionais. Prof. André Y. Kusumoto

Conceitos e Evolução Capítulos 1 e 2

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

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


Administração de Sistemas de Informação

Sistemas de Informação

Organização de Computadores Software

Objetivos do Curso. Você será capaz de:

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

QUALIDADE DE SOFTWARE

Sistemas Operacionais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

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

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

Desenvolvimento de Sistemas Tolerantes a Falhas

SOLUÇÕES DA ELIPSE CONFEREM AGILIDADE À OPERAÇÃO E TOMADA DE DECISÕES NO COD DA ELEKTRO

Introdução a Banco de Dados Aula 03. Prof. Silvestri

Processo de Desenvolvimento de Software. Engenharia de Software.

Gerenciamento de Requisitos Gerenciamento de Requisitos

ÁREA DISCIPLINAR DE CIÊNCIA E TECNOLOGIA DA PROGRAMAÇÃO. Tem sob a sua responsabilidade as seguintes unidades curriculares:

Engenharia de Requisitos

Fred s. Cadeia regional de varejo atualiza seu software de abastecimento de pedidos sem interrupções durante a transição ESTUDO DE CASO

Qualidade de Software

BREVE HISTÓRIA DA LINGUAGEM FORTRAN

agility made possible

Vantagens do software open-source instanciando o caso da solução integrada de bibliotecas Koha. Workshop Nacional sobre o Koha

Curso Técnico em Informática Organização Curricular. A carga horária total dos módulos é oferecida conforme quadro síntese abaixo:

Manual do Desktop Sharing. Brad Hards Tradução: Marcus Gama

Qualidade de Software

Engenharia de Software

No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano.

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

7 perguntas para fazer a qualquer fornecedor de automação de força de vendas

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

Introdução à Computação

Abstrações e Tecnologias Computacionais. Professor: André Luis Meneses Silva /msn: andreluis.ms@gmail.com Página: orgearq20101.wordpress.

MODELIX SYSTEM SOFTWARE DE PROGRAMAÇÃO DE ROBÔS

Engenharia de Software

ARQUITECTURA DO WINDOWS

Prof. Vitório Bruno Mazzola INE/CTC/UFSC 1. INTRODUÇÃO

EM1010 R6 Adaptador de Rede USB 10/100 Mbps

Bancode Dados. Evolução e Conceitos Gerais. Wireless-Optical Broadband Acess Network

Metodologia de Desenvolvimento de Sistemas

2. Conceitos e Arquitetura de Bancos de Dados

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: Arquitetura de Software Aula 03

Engenharia de Software 1

RELATÓRIO REFERENTE AO SUPORTE DO MÊS JUNHO/2013.

Condições de Prestação do Serviço

Soluções para gerenciamento de clientes e Impressão móvel

Engenharia de Software II

Diagrama de Estrutura Composta

GBD PROF. ANDREZA S. AREÃO

Primeiros passos das Planilhas de Obra v2.6

PLANO DE ATUALIZAÇÃO E MANUTENÇÃO DOS EQUIPAMENTOS

GARANTIA LIMITADA DO FABRICANTE NOKIA PARA NOKIA COM WINDOWS PHONE

Cópia de Segurança e Recuperação Manual do utilizador

Aprimoramento através da integração

A importância do Software Livre no mundo de hoje

Transcrição:

O que é software? São programas de computadores, em suas diversas formas, e a documentação associada. Um programa é um conjunto de soluções algorítmicas, codificadas numa linguagem de programação, executado numa máquina real. Os produtos de software podem ser desenvolvidos para um cliente em particular ou para o mercado geral. Genérico (COTS Commercial Off-The Shelf) Personalizado sob encomenda Software é um produto conceitual e lógico. Características [Brooks, F. No Silver Bullet] Invisibilidade Software é invisível e invisualizável Complexidade Software é mais complexo do que qualquer outro produto construídos por seres humanos Mutabilidade Existe sempre uma pressão para se fazer mudanças em um software Conformidade O software deve ser desenvolvido conforme o ambiente. Não é o ambiente que deve se adaptar ao software. Se o software esta conforme os requisitos (o ambiente) todo o suporte operacional deve se adaptar ao software.

Formas do software Código fonte Código objeto Class a int x; char v; Func(a,b Class b... Produto final Código executável Codificação Compilação e Ligação Instalação Import Import java.awt.graphics; java.awt.graphics; Class Class HelloWorld HelloWorld extends extends java,applet.applet java,applet.applet public public void void paint paint (Graphics (Graphics g) g) g.drawstring( Hello, g.drawstring( Hello, World!, World!, 10, 10, 10); 10); Código executando Mitos do software [Pressman 2006] 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". 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.

Falhas Famosas de Software - Ariane Ariane 5, 1996 O foguete explodiu 40 segundos após a sua primeira decolagem. Prejuízo de U$ 500 milhões Foi aproveitado um pacote de software de navegação do Ariane 4 que não tinha erros. No módulo Sistema de Referencia 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 causo a ativação da auto-destruição. No Ariane 5, o módulo SRI só deveria ter sido utilizado antes do lançamento. Falhas Famosas de Software - LAS London Ambulance System - despacho de ambulâncias em Londres, 1992. Morte de pessoas que não foram socorridas em tempo. Problema de Gerência de Software: Responsáveis contrataram uma empresa desconhecida cujo valor cobrado era menor que os cobrados pelas empresas de renome. Colocaram o sistema no ar sem os devidos testes. Não foi feita uma migração correta do sistema antigo para o novo.

Falhas Famosas de Software Therac-25 Máquina de radioterapia com software controlador (1985-87). O controle de segurança feito pelo hardware em máquinas anteriores foi removido e passou a ser feito pelo software. O software falhou na tarefa de, ao mesmo tempo, manter invariantes essenciais: o feixe de elétrons e o dispositivo que controla a concentração do feixe em níveis seguros. Diversas mortes em decorrência de queimaduras. O programador não tinha experiência em programação concorrente. Falhas Famosas de Software Denver Sistema de triagem/controle de bagagem do aeroporto internacional de Denver (EUA) Atrasou a inauguração do aeroporto. Custo do sistema: US$ 193 milhões Inauguração estava prevista para Out/1993. Em Junho/1994 o sistema ainda não estava funcionando e causava prejuízos de US$ 1,1 milhão/dia No começo de 1995 um controle MANUAL de bagagem foi instalado para que o aeroporto pudesse ser inaugurado (com atraso de mais de um ano) Problema de planejamento e gerenciamento.

A Evolução do Software Os primeiros anos (1950 a início dos 60) Aplicações científicas e de engenharia A segunda era (1960 a meados de 80) Aplicações comerciais em grande-porte (sistemas de informação BD) A terceira era (meados de 70 e década de 80) Aplicativos pessoais em microcomputadores A quarta era (meados de 80 a meados de 90) Aplicativos com Interfaces Gráficas Redes e Arquitetura Cliente- Servidor A quinta era (de meados de 90 a???) Software Distribuídos, Internet, Groupwares e Intranets Sexta era?? Computação Pervasiva, Móvel e Ubíqua Categorias de Tamanho de Softwares Categoria Tamanho da Equipe Duração Tamanho do Fonte (linhas de código) Trivial 1 1-4 semanas 500 Pequeno 1 1-6 meses 1000 a 2000 Médio 2-5 1-2 anos 5 mil a 50 mil Grande 5-20 2-3 anos 50 mil a 100 mil Muito grande 100-200 4-5 anos 1 milhão Extremamente grande 2000-5000 5-10 anos 1 a 10 milhões ex: O Win 95: teve 11 milhões de linhas e 200 programadores O Nestscape teve 3 milhões de linhas e 120 programadores

Desafios para a indústria de software Sistemas legados Sistemas antigos, mas de extrema importância para uma organização e que funcionam bem. Linguagens antigas falta de pessoal Específico de plataformas obsoletas Heterogeneidade Os sistemas são distribuídos e incluem diversidade de hardware e plataforma operacional Entrega Existe sempre uma pressão forte para diminuir o tempo de entrega.