Fundamentos de Engenharia de Software

Slides:



Advertisements
Apresentações semelhantes
Introdução à Análise de Sistemas
Advertisements

DISCIPLINA: Introdução à Computação
ENGENHARIA DE SOFTWARE Garantia de Qualidade de Software
Engenharia de Software
ISO Processos do Ciclo de Vida do Software
Gerência de Projetos Wesley Peron Seno Introdução
Prof.ª Adriana dos Santos Caparróz Carvalho
Introdução à Engenharia de Software
Engenharia de Software
Tipos de sistemas de Lehman
Processos de Software Introdução
Tópicos Motivação para teste Por que algumas empresas não testam
Professor Sílder Lamas Vecchi
Engenharia de Software Engenharia de Software Prof. Inês Ap. Gasparotto Boaventura 1. Semestre/2001.
INTRODUÇÃO A INFORMÁTICA
FACULDADE DOS GUARARAPES
Mitos e Problemas Relacionados ao Software
Faculdade de Ciências Sociais de Aplicadas de Petrolina – FACAPE
Faculdade de Ciências Sociais e 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,
ENGENHARIA DE SOFTWARE: INTRODUÇÃO
Reutilização de Software
Gerenciamento de Projetos Introdução
Noções de Engenharia de Software 1. 1 O problema do software 1
Análise e Projeto de Sistemas Centro Federal de Educação Tecnológica da Paraíba Coordenação de Informática Desenvolvimento de Software para a Internet.
Engenharia de Software
Engenharia de Software
Como Desenvolver Sistemas de Informação
Engenharia de Software
Engenharia de Software
ENGENHARIA DE SOFTWARE
Engenharia de Software
Prof.Alfredo Parteli Gomes
Planejamento e Gerenciamento de Projetos
Fundamentos de Engenharia de SW
ENGENHARIA DE SOFTWARE José Manuel de Sacadura Rocha
Metolodogia de Desenvolvimento de Data Warehouse
IFSul – Campus Venâncio Aires
Engenharia de Software I
Engenharia de Software
Engenharia de Software
Software e Engenharia de Software ENGENHARIA DE SOFTWARE - PRESSMAN
Engenharia de Software
Fase de Concepção (Início, Planejamento)
Análise e Projeto de Sistemas de Informação 2o. Semestre de 2014
Introdução à Engenharia de Software
Analises de sistemas ESTRUTURADA Analise de sistema estruturada.
DISCIPLINA Pesquisa de Tecnologias Emergentes - PTE Profa. Eliane
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Engenharia de Software
Engenharia de software I
Objetivos do Capítulo Explicar a importância da implementação de processos e tecnologias de gerenciamento de dados numa organização. Explicar as vantagens.
Engenharia de Software
Engenharia de Software
METODOLOGIA, MÉTODOS E FERRAMENTAS
Técnicas e Projeto de Sistemas
1. Como a engenharia de software pode contribuir no desenvolvimento de sistemas? 1.1 O problema do software 1.2 A velha crise do software 1.3 Os velhos.
1 Cap 1 – Produto de Software Ricardo L Schneider FES – 2002/1.
Gestão de Projetos de Software
Engenharia de Software
Engenharia de Software
Gerenciamento de Requisitos e Modelagem de sistemas
Engenharia de Software
Engenharia de Software
Qualidade de Software O que é ‘Qualidade de Software’?
Engenharia de Software 68 horas/aula
Apresentação Leonardo Brussolo de Paula
Softwares Faculdade de Ciências Aplicadas e Sociais de Petrolina - FACAPE Ciência da Computação Professora: Cynara Carvalho
1 Projeto Piloto Conclusão em Agenda Projeto Piloto –Descrição –Execução da aplicação –Implementação de requisitos funcionais e não- funcionais.
Engenharia de Software Conceitos e elementos 1. Engenharia   Resolução de problemas através de soluções economicamente viáveis  Motivacão: Limitação.
Transcrição da apresentação:

Fundamentos de Engenharia de Software Willamys Araújo

Motivação Quando um Software é bem sucedido? Possui as necessidades das pessoas que o usam (who use it) Executa perfeitamente em um longo período de tempo (long period of time) Fácil de modificar e utilizar PODE E MUDA COISAS PARA MELHOR Quando um Software falha? Usuários estão insatisfeitos Erros ocorrem Difícil de modificar e utilizar COISAS RUIM PODEM E ACONTECEM

Forma de Avaliação Prova Escrita Projeto – Estudo de Caso - Software Seminário

Projeto Os projetos visam aplicar os conceitos da ES no desenvolvimento de um software - vivenciando um estudo de caso. Construir o plano de desenvolvimento, análise, projeto, programação (protótipo) e testes utilizando metodologia orientada a objetos. Os Grupos devem ser de 2 ou 3 alunos Os grupos devem definir o tema de pesquisa e desenvolvimento do Software A avaliação do Projeto é subdivida em 5 fases. Cada uma tem data a ser finalizada.

Fases de Desenvolvimento do Software F1 - Definição do Tema e do Documento de Especificação do Sistema. F2 - Modelos de Análise (Especificação de Requisitos e Modelos). F3 - Modelos de Projeto. F4 - Protótipo do Software (Implementação). F5 - Proposta de Teste/Manutenção.

Seminários As apresentações dos seminários iniciam aproximadamente no início de outubro. Após definidos os grupos será divulgado o horário de cada apresentação. As apresentações devem ter no máximo 45min de duração Os grupos devem entregar como parte da avaliação do seminário um artigo (segundo estrutura definida) de no máximo 10 páginas sobre o tema explorado. O artigo deve ser entregue como parte da avaliação do seminário e no máximo uma semana após a realização do mesmo.

Temas Fábrica de Software Teste e Depuração de Software Qualidade e Gestão de Configuração de Software Métricas no desenvolvimento do software Modelos de Melhoria de Processo de Software

Bibliografia Pressman, Roger S. Engenharia de Software. McGraw-Hill. 2006. Sommerville, Ian. Engenharia de Software. Prentice Hall. 2003. Cardoso, Caíque. UML na Prática. Ciência Moderna. 2003. Conallen, Jim. Desenvolvendo Aplicações Web com UML. Editora Campus, 2003. Gustafson, David A.Teoria e problemas de engenharia de software. Porto Alegre : Bookman, 2003. Brooks Jr., Frederick P. The mythical man-month   essays on software engineering . Reading; Menlo Park :   Addison-Wesley, 1975.

O Software 1950 -1970: Desafio principal era desenvolver Hardware reduzir o custo de processamento e armazenamento de dados Hoje: Reduzir o custo e melhorar a qualidade dos Softwares (potencial da computação) Funcionalidade Human-Friendly

O que é Software?

Definição Software Dicionário Aurélio: Programa Aquilo que pode ser executado por um equipamento (o hardware) Um produto comercializado que consiste em um sistema de rotinas e funções

Definição Software 1- INSTRUÇÕES (programas de computador) que quando executadas produzem a função e o desempenho desejados 2 - ESTRUTURAS DE DADOS que possibilitam que os programas manipulem adequadamente a informação 3 - DOCUMENTOS que descrevem a operação e o uso dos programas

 Definição Software Definição mais exata Analisar as características que o tornam diferente dos outros produtos Hardware: produto em forma física Software: elemento de sistema lógico 

Características do Software 1. desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico (industrial) sucesso é medido pela qualidade e não quantidade

Características do Software 2. não se “desgasta”, mas se deteriora devido as mudanças tempo “desgaste” “mortalidade infantil” índice de falhas Defeitos de projeto e manufatura Problemas Ambientais (poeira, vibração, abuso, temperaturas, ...) Curva de falhas para o hardware

Características do Software mudanças índice de falhas curva real curva idealizada tempo Curva de falhas do software

Falhas Hardware/software Quando um componente de hardware se desgasta é substituído por uma “peça de reposição” Não existe “peça de reposição” para software Toda falha indica um erro no projeto ou no processo de tradução para o código executável Manutenção do software é mais complexa do que a do hardware

Como Desenvolver um Software? Aplicado a qualquer problema em que um conjunto previamente de passos procedimentais tiver sido definido (algoritmo) Exceção: Softwares de Inteligência Artificial

Aplicações SOFTWARE BÁSICO coleção de programas escritos para apoiar outros programas. Forte interação com o hardware sistema operacional, compiladores, ... SOFTWARE DE TEMPO REAL software que monitora, analisa e controla eventos do mundo real sistema de controle de tráfego aéreo, relógio digital, ... SOFTWARE COMERCIAL sistemas de operações comerciais e tomadas de decisões administrativas folha de pagamentos, contas a pagar e a receber, ...

Aplicações SOFTWARE CIENTÍFICO E DE ENGENHARIA caracterizado por algoritmos de processamento de números astronomia, vulcanologia, análise de fadiga da mecânica de automóveis, biologia molecular, projeto CAD, ... SOFTWARE EMBUTIDO usado para controlar produtos e sistemas para os mercados industriais e de consumo controle de microondas, de combustível, sistemas de freio

Aplicações SOFTWARE DE COMPUTADOR PESSOAL envolve processamento de textos, planilhas eletrônicas, computação gráfica, diversões, etc. 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 sistemas especialistas, reconhecimento de padrões, jogos, ...

Evolução do Software Hardware: maior desempenho, menor tamanho e custo A terceira era Sistemas Distribuídos “Inteligência” embutida Hardware de baixo custo (PCs) workstation Impacto de consumo A segunda era Multiusuário Tempo real Banco de Dados Software Houses A quarta era Tecnologia O. O. Sistemas Especialistas Redes Neurais Computação Paralela Os primeiros anos Orientação batch Distribuição limitada Software customizado 1950 1960 1970 1980 1990 2000

A Crise do Software

Crise do Software Refere-se a um conjunto de problemas encontrados no desenvolvimento de software: (problemas não se limitam a softwares que não funcionam adequadamente) 1 - As estimativas de prazo e de custo freqüentemente são imprecisas “Não dedicamos tempo para coletar dados sobre o processo de desenvolvimento de software” “Estimativas são feitas a olho, com resultados ruins”

Crise do Software “Os prazos arrastam-se por meses” “Causa insastifação para o cliente e falta de confiança” “Sem nenhuma indicação sólida de produtividade, não podemos avaliar com precisão a eficácia de novas ferramentas, métodos ou padrões”

Crise do Software 2 - A produtividade das pessoas da área de software não tem acompanhado a demanda por seus serviços “Os projetos de desenvolvimento de software normalmente são efetuados apenas com um vago indício das exigências do cliente” “A comunicação entre o cliente e o desenvolvedor de software é muito fraca”

Crise do Software 3- A qualidade de software às vezes é menos que adequada Não uso de técnicas de teste sistemáticas e completas Só recentemente começam a surgir conceitos quantitativos sólidos de garantia de qualidade de software

Crise do Software 4- O software existente é muito difícil de manter A tarefa de manutenção devora o orçamento destinado ao software A facilidade de manutenção não foi enfatizada como um critério importante Esses problemas podem ser corrigidos Abordagem de engenharia de software aliada a técnicas e ferramentas

Causas da Crise do Software 1- PRÓPRIO CARÁTER DO SOFTWARE O software é um elemento de sistema lógico e não físico. Consequentemente o sucesso é medido pela qualidade de uma única entidade e não pela qualidade de muitas entidades manufaturadas O software não se desgasta, mas se deteriora

Causas da Crise do Software 2- FALHAS DAS PESSOAS RESPONSÁVEIS PELO DESENVOLVIMENTO DE SOFTWARE Gerentes sem nenhum background em software Os profissionais da área de software têm recebido pouco treinamento formal em novas técnicas para o desenvolvimento de software Resistência a mudanças.

Causas da Crise do Software 3- MITOS DO SOFTWARE “Não oferecem lições humanas” Muitas causas da crise de software podem ser localizadas pela mitologia que surgiu durante a história do desenvolvimento do software Propagaram desinformação e confusão Mitos Administrativos, do Cliente e do Profissional

Engenharia de Software Qual é a Solução? Reconhecer os problemas e suas causas e desmascarar os mitos do software são os primeiros passos Métodos e Técnicas para o disciplinar o processo de desenvolvimento do software Engenharia de Software

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 “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção do software e o estudo das abordagens para tal”

Definição Engenharia de Software Arndt Von Staa, 1987 “O desenvolvimento e a aplicação de ciência, matemática, técnicas, métodos e ferramentas para o desenvolvimento e a manutenção econômica de sotfware de qualidade preditível e controlável, operando de modo econômico em máquinas e ambientes reais”

Engenharia de Software “Uma disciplina da Ciência da Computação que oferece Métodos, Técnicas e Ferramentas para desenvolver e manter softwares com alta qualidade para a resolução de problemas”. (Anneliese Mayrhauser, 1990)