Engenharia de Software

Slides:



Advertisements
Apresentações semelhantes
Projeto Qualified Curriculum
Advertisements

Introdução a Algoritmos
AUTOMAÇÃO DE ESCRITÓRIOS
Engenharia de Software
Noções de Sistemas Operacionais
Gerenciamento de Projetos
ISO Processos do Ciclo de Vida do Software
Introdução à Engenharia de Software Discussões Finais
Engenharia de Software
Engenharia de Software
Tipos de sistemas de Lehman
Sistemas Operacionais de Rede Professor: João Paulo de Brito Gonçalves
Engenharia de Software
João Carlos Porto Orientadora: Prof.ª Dr.ª Junia Coutinho Anacleto 26/03/2010 Projeto de interceo.
Prof. Dra. Maria Virginia Llatas
Gerenciamento do escopo do projeto
INTRODUÇÃO A INFORMÁTICA
Mitos e Problemas Relacionados ao Software
Faculdade de Ciências Sociais de Aplicadas de Petrolina – FACAPE
CK 119: Engenharia de Software DC/CC/UFC © Rossana Andrade, Setembro CK119: Engenharia de Software Rossana Andrade Ph.D, SITE, University of Ottawa,
Análise de Requisitos Use Case Renata Araujo Ricardo Storino
Interação Cliente Servidor
Engenharia de Requisitos
Como Desenvolver Sistemas de Informação
TSDD Teste de segurança durante o desenvolvimento.
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Engenharia de Software
Engenharia de Software
Classes e objetos Modelagem
Configuração de manutenção
Análise e Desenvolvimento de Sistemas
José Roberto Blaschek Gerência do Escopo José Roberto Blaschek.
Engenharia de Software
Técnicas e Projeto de Sistemas
Prof.Alfredo Parteli Gomes
Gerenciamento de Configuração
Universidade São Marcos Curso: Gestão de Negócios Internacionais
PMBOK 5ª Edição Capítulo 3
ENGENHARIA DE SOFTWARE José Manuel de Sacadura Rocha
IFSul – Campus Venâncio Aires
Sistema de Informação Pós graduação em gestão de RH
Sistemas Operacionais
Módulo: Gerenciamento de Incidentes e
Arquitetura de computadores
GESTÃO DE PROJETOS Aula 5 1.
GERENCIAMENTO DE REDES UTILIZANDO O PROTOCOLO SNMP
Prof. Alexandre Vasconcelos
Noções de Software Escola Almirante Soares Dutra
Engenharia de Software
Aula 4: Áreas de Conhecimento em Gerenciamento de Projeto, Escopo
Técnicas e Projeto de Sistemas
Por que estudar sistemas de informação?
Análise e Projeto de Sistemas de Informação 2o. Semestre de 2014
Processo de Aquisição Adilson de Almeida Cezar Meriguetti
O Processo de desenvolvimento de software
Introdução à Engenharia de Software
Engenharia de Software
Qualidade de Software Aula 4
Engenharia de software I
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Engenharia de Software
Engenharia de Software
1 Cap 1 – Produto de Software Ricardo L Schneider FES – 2002/1.
Engenharia de Software
Engenharia de Software
Engenharia de Software
Engenharia de Software
Elementos de Informática
Engenharia de Software
CMMI Capability Maturity Model Integration
Transcrição da apresentação:

Engenharia de Software FATEC - Engenharia de Software I Material cedido por: Profa. Dra. Ana Paula Gonçalves Serra Engenharia de Software Software e Engenharia de Software Capítulo 1 Profa. Dra. Ana Paula Gonçalves Serra

O Papel Evolutivo do Software Globalização Sociedade da Informação Internet ... Passado Programador solitário Atualmente Equipe de Especialistas em software, cada um se concentrando em uma parte da tecnologia necessária para produzir um sistema. Mas as mesmas questões continuam... Por que leva tanto tempo para construir um software? Por que os custos de desenvolvimento são tão latos? Por que não podemos achar todos os erros antes de entregar o software aos clientes? Por que gastamos tanto tempo e esforço mantendo programas existentes? ... Essas são preocupações que a engenharia de software aborda, tenta responder e minimiza os problemas.

Evolução do software 1. sistemas batch distribuição limitada software dedicado 3. sistemas distribuídos hardware de baixo custo inteligência local impacto de consumo 2. sistemas multiusuário tempo real bancos de dados produto de software 4. tecnologia orientada a objetos computação paralela Internet “onda” do desktop Sistemas especialistas e redes neurais artificiais 5. computação ubíqua sistemas portáteis computação nas nuvens 5 4 3 2 1 1950 1960 1970 1980 1990 2000

O que é software? Algumas definições básicas de software... São instruções (programas de computadores) que quando executadas fornecem as características , funções e desempenho desejado; Estrutura de dados que permitem aos programas manipular adequadamente a informação Documentos que descrevem a operação e o uso dos programas Todos concordam com essas definições? Cada uma delas realmente expressa o que é software?

O que é software? Software não é somente o programa, mas também conjuntos de dados, arquivos de configuração e documentação necessários para que o software funcione corretamente.

Características do Software Software é desenvolvido e não fabricado. Software não “se desgasta”. Apesar da tendência de utilização de componentes, uma grande parte dos softwares continua sendo construída sob encomenda.

Curva da Falhas para o Software Como seria a curva de falhas para hardware?

Categorias de Software – Atuais Software de Sistemas São softwares utilizados por outros softwares. Ex: compiladores, sistemas operacionais, componentes,... Software de Aplicação São softwares que tem como objetivo resolver um problema específico de negócio. Ex: sistema de folha de pagamento, sistema de gestão de informações, ... Software de Tempo Real São softwares de aplicação, mas que monitoram, analisam e controlam eventos de tempo real. Ex: sistema do metrô, sistema de aviação, ...

Categorias de Software – Atuais Software Científico e de Engenharia Antigamente eram caracterizado apenas por softwares que processavam números. Ex: sistema de astronomia, análise automotiva de tensão à dinâmica orbital do ônibus espacial, sistema de manufatura automatizada, sistema de análise molecular, ... Atualmente softwares de apoiado por computadores, simulação de sistemas e outras aplicações interativas podem ser classificadas como esse tipo de software.

Categorias de Software – Atuais Software Embutido São softwares que residem dentro de um produto, sistema ou memória ROM. Ex: controle do teclado forno microondas, controle de combustível de automóvel,... Software para linha de produtos (prateleira) São softwares que atendem uma necessidade específica para ser utilizado por vários usuários diferentes. Ex: sistema de multimídia (jogos), planilhas, editores de texto,...

Categorias de Software – Atuais Software para Web São softwares desenvolvido para serem disponibilizados em browser. Ex: sites de conteúdo, E-Commerce, E-Business, E-Learning, .... Software para Inteligência Artificial São softwares que utilizam algoritmos não numéricos para resolver problemas complexos que não são passíveis de computação ou análise direta. Ex: robótica, sistemas especialistas, sistema de reconhecimento de padrão (voz, imagens), redes neurais, ...

Categorias de Software – Atuais/Futuras Computação ubíqua São softwares de aplicação que permitem que pequenos dispositivos móveis, como PDAs e celulares, computadores e sistemas empresariais se comuniquem através de diferentes tipos de redes através da computação distribuída. Ex: acesso a informações via celular, TV digital, multimídia conferência móvel, ... Software Aberto São softwares de aplicação com código aberto, que resulta na distribuição de código fonte, de modo que os usuários possam fazer modificações locais. Ex: sistema de operacionais, sistemas de banco de dados, sistemas de E-learning.

Algumas questões... Forneça exemplo de sistemas que trabalham com uma ou mais categorias de software. O que são softwares legados? Qual sua relação com o desenvolvimento de software? Quais são os possíveis problemas de um software legados?

Crise do Software Início em 1968 em uma conferência organizada para discutir a chamada “crise do software” Desenvolvimento de Software informal não era suficiente Atrasos constantes Custos maiores do que previsto Não eram confiáveis Difícil manutenção Desempenho inferior ao esperado Declive do custo de hardware Evoluiu-se muito a capacidade de produzir software (preocupação com qualidade, compreensão das atividades de desenvolvimento, criação de técnicas e notações, ... )

Crise do Software Crise de tecnologia - hardware caminha mais rápido que o software Crise de oferta - demanda é maior que a capacidade de desenvolvimento Crise de manutenção - projeto mal feito e recursos escassos não permitem manutenção.

Crise e Futuro do Software Ainda vivemos em crise de software? Ver as próximas transparências... Qual é o futuro do software?

Alguns Exemplos de Problemas de Software Explosão do foguete Arianne V que possuía na sua codificação uma rotina destinada ao Ariana IV, e que não deveria ser ativada. Aeroporto de Denver, que ficou fechado durante anos esperando o funcionamento do sistema de bagagens, o que poderia ser detectado em um sistema de simulação.

Alguns Exemplos de Problemas de Software Explosão do foguete Arianne V (1996) em 40 segundo após decolagem que possuía na sua codificação uma rotina do Ariane IV, que não deveria ser utilizada. A rotina convertia valor flutuante em inteiro e que recebeu como entrada um valor que estava fora da faixa permitida e fez com que os computadores principais e de backup dessem “shut-down” ao mesmo tempo. Projeto da Agência Espacial Européia que custou: 10 anos U$ 8 Bilhões U$ 500 milhões de carga do foguete

Alguns Exemplos de Problemas de Software Aeroporto de Denver, que ficou fechado durante anos esperando o funcionamento do sistema de bagagens, o que poderia ser detectado em um sistema de simulação.

Problemas de Software Por que os programas não ficam prontos rapidamente? Por que os custos de desenvolvimento são tão altos? Por que os erros não são detectados antes da entrega aos consumidores? Por que é difícil medir o progresso durante o desenvolvimento?

Mitos de Software Sob o ponto de vista do gerente Aumentar o tamanho da equipe resolve o problema de um projeto atrasado. Terceirizar resolve os problemas de gerência. Sob o ponto de vista da equipe de desenvolvimento Não há como avaliar a qualidade do software até que ele seja efetivamente colocado em produção. O único produto que realmente interessa é o código executável. Uma vez que o programa está pronto, acabou o trabalho do “engenheiro de software”.

FATEC - Engenharia de Software I Mitos de Software Sob o ponto de vista do usuário/cliente Basta uma visão geral dos objetivos para se iniciar o desenvolvimento do software. É fácil acomodar as mudanças de requisitos durante o desenvolvimento do software. Realidade do impacto da modificação: Profa. Dra. Ana Paula Gonçalves Serra

Engenharia de Software em Camadas Qualidade: É a camada que suporta a engenharia de software, tendo como foco um software total com qualidade. Um maior detalhamento será descrito no material de Qualidade e discutido. Processo: É um conjunto de atividades e resultados associados que geram um produto de software. Há quatro atividades de processo fundamentais comuns a todos os processos de software. 1. Especificação do software: as funcionalidades (requisitos funcionais), as restrições tecnológicas (requisitos não-funcionais ou atributos) e as restrições de negócio (requisitos de domínio) devem ser definidas. 2. Desenvolvimento do software: detalhamento, solução e codificação devem ser realizadas de modo que atenda as especificações. 3. Validação do software: o software tem de ser validado para garantir que ele realize o que foi especificado 4. Evolução do software: O software deve evoluir para atender às necessidade mutáveis do cliente/usuário. Um maior detalhamento será descrito no material de Modelos de Processos de Software e discutido. Profa. Dra. Ana Paula Gonçalves Serra – Engenharia de Software I

Engenharia de Software em Camadas Métodos: São abordagens para o desenvolvimento de software, que incluem: modelos, notações, regras, recomendações e diretrizes. É a camada que fornece a técnica de como fazer para construir softwares, ou seja a maneira de conduzir um processo. Ferramentas: É a camada que proporciona apoio automatizado aos processos e métodos, como por exemplo às ferramentas CASE (Computer Aided Software Engineering). Profa. Dra. Ana Paula Gonçalves Serra – Engenharia de Software I

Exercício Exercício-Aula 1.pdf

Agradecimento Material cedido por: Profa. Dra. Ana Paula Gonçalves Serra Copyright © 2013-2014 Profa. Ana Paula Gonçalves Serra. Todos direitos reservados. Reprodução ou divulgação total ou parcial deste documento é expressamente proibido sem o consentimento formal, por escrito, da Profa. Ana Paula Gonçalves Serra.

Bibliografia Engenharia de Software Roger Pressman 6ª edição – McGrawHill