Engenharia de Software: Uma Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1 o semestre de 2017

Documentos relacionados
Tópicos. Engenharia de Software: Uma Visão Geral

Engenharia de Software

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

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

ANÁLISE E PROJETO DE SISTEMAS

Definições e ciclo de vida

Prof. Luiz A. Nascimento

Princípios da Engenharia de Software aula 03

Engenharia de Software Processo de Desenvolvimento de Software

Modelos de Processo de Software. SSC Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

S12 - Software e Engenharia de Software

ENGENHARIA DE SOFTWARE

Normas ISO:

Organização para Realização de Teste de Software

QUALIDADE DE SOFTWARE

Características do Software

Engenharia de Software

Software: na visão da ES

QUALIDADE DE SOFTWARE. Princípios de Engenharia de Software

TESTES DE SOFTWARE Unidade 1 Importância do Teste de Software. Luiz Leão

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

As 10 Áreas da Engenharia de Software, Conforme o SWEBOK Prof. Elias Ferreira

Fundamentos de Teste de Software

Ciclo de vida do software

Engenharia de Software I: Introdução. Graduação em Informática 2009 Profa. Itana Gimenes

TS03. Teste de Software ESTÁGIOS DO TESTE DE SOFTWARE. COTI Informática Escola de Nerds

UNIVERSIDADE FEDERAL DO PARANÁ UFPR BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

Escolhendo um Modelo de Ciclo de Vida

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

ENGENHARIA DE SOFTWARE PROFA. REANE FRANCO GOULART

PRINCÍPIOS DA ENGENHARIA DE SOFTWARE- AULA 06. Prof.: Franklin M. Correia

Engenharia de Software II

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

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

3. Engenharia dos requisitos de software

Introdução a Sistemas de Informação

O Processo de Desenvolvimento de Software. Engenharia de Software

a) Computador b) Estrutura do sistema i. Hardware ii.software c) Linguagens de Programação i. Paradigmas e Programação 1.

Análise e Projeto de Sistemas

LIVRO ENGENHARIA DE SOFTWARE FUNDAMENTOS, MÉTODOS E PADRÕES

Ainda que muitos modelos sejam semelhantes entre os modelos de ciclo de vida, existem alguns aspectos que os diferenciam:

Engenharia de Software II

Informática, ética e sociedade

Modelagem De Sistemas

Tecnologia da Informação

Introdução à Computação: Máquinas Multiníveis

Modelos de Processo de Software. Profª Jocelma Rios

QUESTÕES TESTES. Questão 1. O modelo de ciclo de vida em cascata:

Engenharia de Software II

S13 - Software e Engenharia de Software - Continuação

INF014 Análise e Projeto de Sistemas Ciclos de vida e Processos de Software

ENGENHARIA DE SOFTWARE II

Planejamento e Desempenho de Custos. Disciplina: Gerenciamento de Projetos Docente: Cristina Almeida

ROTARY INTERNACIONAL ORGANIZAÇÃO MULTIDISTRITAL DE INFORMAÇÕES DE ROTARACT CLUBS - BRASIL EQUIPE DE PROJETOS GUIA BÁSICO PARA ELABORAÇÃO DE PROJETOS

Requisitos de Sistemas

Verificação e Validação. Ewelton Yoshio Fabrício Araújo

Verificação e Validação

Manufatura por FMS e CIM

Métricas de Software

Engenharia de Software

ESPECIFICAÇÃO DE PROJETO AUTOR(ES) : João

Cadeira: Análise de Sistemas

Planejamento - 2. Definição de atividades Sequenciamento das atividades. Mauricio Lyra, PMP

A ciência do Projeto de Software. Profa. Reane Franco Goulart

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Guia do Processo de Teste Metodologia Celepar

Padrões de Qualidade de Software

Processo devem incorporar uma estratégia desenvolvimento

Falta Erro Falha. Motivação. Teste de Software. Falha, Falta e Erro. Falha, Falta e Erro. Falha, Falta e Erro. Falha, Falta e Erro 6/6/11

Mo#vação. Objec#vo. Estudar uma abordagem de desenvolvimento de so9ware orientada pelos objectos. Linguagens usadas: UML (Unified Modeling Language)

Engenheiros de software (algumas vezes conhecidos no mundo da TI como engenheiros de sistemas ou analistas ) e outros interessados no projeto

Gerenciamento do Escopo do Projeto (PMBoK 5ª ed.)

Plano de testes. Norma ANSI/IEEE para Documentação de Teste de Software define plano de testes como:

Engenharia de Software I. Curso de Desenvolvimento de Software Prof. Alessandro J de Souza

Processos de Gerenciamento de Projetos. Parte 02. Gerenciamento de Projetos Espaciais CSE-301. Docente: Petrônio Noronha de Souza

UNIVERSIDADE FEDERAL DO PARANÁ - UFPR BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

Processos de software Leitura: Cap3 Sommerville / Cap1: Pressman - Ariadne

1. Conceitos Fundamentais

Estrutura e Funcionamento dos Computadores (Conceitos Básicos)

Introdução. O Modelo CMM/SEI. Roteiro da Apresentação. Conceitos básicos de qualidade. Conceitos básicos de qualidade de software

Engenharia de Software

Elementos Fundamentais para a Melhoria da Qualidade de Software nas Organizações de TI

Engenharia de Software II

Processo de gerenciamento de capacidade

SUMÁRIO REGIMENTO INTERNO E ESTRUTURA CURRICULAR DO MESTRADO PROFISSIONALIZANTE EM CIÊNCIA DA COMPUTAÇÃO

PSP: Personal Software Process. PSP- Personal Software Process. PSP: Personal Software Process. PSP: Personal Software Process

Engenharia de Software. Projeto de Software. Projeto: definição. Profa. Dra. Lúcia V. L. Filgueiras Profa. Dra. Selma Shin Shimizu Melnikoff

Introdução à Computação: Sistemas de Computação

GERENCIAMENTO DE TAREFAS. Prof. Me. Hélio Esperidião

Metodologias de PETI. Prof. Marlon Marcon

Planejamento integrado em 4D. Metodologia BIM de planejamento e controle de obras, com integração através do REVIT, PRIMAVERA e NAVISWORKS

TS04. Teste de Software PLANOS DE TESTE. COTI Informática Escola de Nerds

Tomada de Decisão Estratégica

Engenharia de Software. Ciclos de Vida do Software. 1. Sistemas

Requisitos. Silvério Sirotheau

Projeto Físico e Lógico de Redes de Processamento. Kleber A. Ribeiro

2. Processos em Engenharia de Software

Transcrição:

Engenharia de Software: Uma Visão Geral Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1 o semestre de 2017

2 Software e Engenharia de Software TÓPICOS l A importância do Software l Software l Aplicações de Software l Mitos de Software l Processo de Software l Modelos de Processo de Software

3 SOFTWARE l INSTRUÇÕES que quando executadas produzem a função e o desempenho desejados l ESTRUTURAS DE DADOS que possibilitam que os programas manipulem adequadamente a informação l DOCUMENTOS que descrevem a operação e o uso dos programas

4 Características do Software l Desenvolvido ou projetado por engenharia l Não manufaturado no sentido clássico l Não se desgasta, mas se deteriora

5 Características do Software l desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico índice mortalidade desgaste l não de se desgasta infantil mas se deteriora falhas tempo CURVA DE FALHAS DO HARDWARE

6 Características do Software l desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico índice de falhas mudança l não se desgasta mas se curva deteriora real curva idealizada tempo CURVA DE FALHAS DO SOFTWARE

7 Características do Software l Desenvolvido ou projetado por engenharia l Não manufaturado no sentido clássico l Não se desgasta mas se deteriora l A maioria é feita ainda sob medida, em vez de ser montada a partir de componentes existentes

8 Aplicações do Software l BÁSICO l DE TEMPO REAL l COMERCIAL l CIENTÍFICO E DE ENGENHARIA l EMBUTIDO l DE COMPUTADOR PESSOAL l DE INTELIGÊNCIA ARTIFICIAL l...

9 Aplicações do Software l BÁSICO coleção de programas escritos para dar apoio a outros programas l DE TEMPO REAL software que monitora, analisa e controla eventos do mundo real l COMERCIAL sistemas de operações comerciais e tomadas de decisões administrativas

10 Aplicações do Software l CIENTÍFICO E DE ENGENHARIA caracterizado por algoritmos de processamento de números l EMBUTIDO usado para controlar produtos e sistemas para os mercados industriais e de consumo l DE COMPUTADOR PESSOAL envolve processamento de textos, planilhas eletrônicas, diversões, etc.

11 Aplicações do Software l 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

12 Evolução do Software (1950-1965) ð O hardware sofreu contínuas mudanças ð O software era uma arte "secundária" para a qual havia poucos métodos sistemáticos ð O hardware era de propósito geral ð O software era específico para cada aplicação ð Não havia documentação

13 Evolução do Software (1965-1975) ð Multiprogramação e sistemas multiusuários ð Sistemas de tempo real ð 1 a geração de SGBD s ð Produto de software - software houses ð Bibliotecas de software

14 Evolução do Software (1965-1975) ð Cresce o número de sistemas baseado em computador ð Manutenção quase impossível... CRISE DE SOFTWARE

15 Evolução do Software (1975 - hoje) ð Sistemas distribuídos ð Redes locais e globais ð Uso generalizado de microprocessadores - produtos inteligentes ð Hardware de baixo custo ð Impacto de consumo

16 Evolução do Software Atualmente ð Tecnologias orientadas o objetos ð Sistemas especialistas e software de inteligência artificial usados na prática ð Software de rede neural artificial ð Computação paralela ð Várias outras tecnologias

17 Evolução do Software (1965-1975) ð Cresce o número de sistemas baseado em computador AFLIÇÃO CRÔNICA CRISE DE SOFTWARE ð Manutenção quase impossível Refere-se a um conjunto de problemas encontrados no... CRISE desenvolvimento DE SOFTWARE de software

18 Crise de Software - problemas 1- Estimativas de prazo e de custo frequentemente são imprecisas Não dedicamos tempo para coletar dados sobre o processo de desenvolvimento de software 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

19 Crise de Software - problemas 2- Insatisfação do cliente com o sistema concluído Os projetos de desenvolvimento de software normalmente são efetuados apenas com um vago indício das exigências do cliente

20 Crise de Software - problemas 3- Qualidade de software às vezes é menos que adequada Só recentemente começam a surgir conceitos quantitativos sólidos de garantia de qualidade de software

21 Crise de Software - problemas 4- 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

Causas dos problemas associados à crise de software 22 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 Software não se desgasta, mas se deteriora

23 Causas dos problemas associados à crise de software 2- FALHAS DAS PESSOAS RESPONSÁ- VEIS PELO DESENVOLVIMENTO DE SOFTWARE l l l Gerentes sem nenhum background em software Profissionais da área de software têm pouco treinamento formal em novas técnicas para o desenvolvimento de software Resistência às mudanças

24 Causas dos problemas associados à crise de software 3- MITOS DO SOFTWARE Propagaram desinformação e confusão administrativos cliente profissional

25 Mitos do software ADMINISTRATIVOS: Mito 1: l Já temos um manual repleto de padrões e procedimentos para a construção de software. l Isso não oferecerá ao meu pessoal tudo o que eles precisam saber?

26 Mitos do software ADMINISTRATIVOS: Mito Realidade: 1: l Já Será temos que um o manual repleto é usado? de padrões e procedimentos Os profissionais para sabem a construção que ele de software. existe? l Isso Ele não reflete oferecerá a prática ao meu moderna pessoal de tudo o que desenvolvimento eles precisam de saber? software? Ele é completo?

27 Mitos do software ADMINISTRATIVOS: Mito 2: l Meu pessoal tem ferramentas de desenvolvimento de software de última geração.

28 Mitos do software ADMINISTRATIVOS: Mito Realidade: 2: l Meu pessoal tem ferramentas de É preciso muito mais do que os mais desenvolvimento de software de última recentes computadores e ferramentas geração; afinal lhes compramos os mais para se fazer um desenvolvimento de novos software computadores. de alta qualidade.

29 Mitos do software ADMINISTRATIVOS: Mito 3: l Se nós estamos atrasados nos prazos, podemos adicionar mais programadores e tirar o atraso

30 Mitos do software ADMINISTRATIVOS: Mito Realidade: 3: l Se O nós desenvolvimento estamos atrasados de software nos prazos, não é podemos um processo adicionar mecânico mais programadores igual à manufatura. Acrescentar pessoas em e tirar o atraso um projeto torna-o ainda mais atrasado. Pessoas podem ser acrescentadas, mas somente de uma forma planejada.

31 Mitos do software CLIENTE: Mito 1: l Uma declaração geral dos objetivos é suficiente para se começar a escrever programas. Podemos preencher os detalhes mais tarde.

32 Mitos do software CLIENTE: Mito Realidade: 1: Uma definição inicial ruim é a principal l Uma declaração geral dos objetivos é causa de fracassos dos esforços de suficiente desenvolvimento para começar de software. a escrever programas - podemos preencher os É fundamental uma descrição formal e detalhes detalhada mais do tarde. domínio da informação, função, desempenho, interfaces, restrições de projeto e critérios de validação.

33 Mitos do software CLIENTE: Mito 2: l Os requisitos de projeto modificam-se continuamente, mas as mudanças podem ser facilmente acomodadas, porque o software é flexível.

34 Mitos do software CLIENTE: Mito Realidade: 2: l Os Uma requisitos mudança, de projeto quando modificam-se solicitada continuamente, tardiamente num mas projeto, as mudanças pode ser podem ser maior facilmente do que acomodadas, a ordem de magnitude porque o software mais dispendiosa é flexível. da mesma mudança solicitada nas fases iniciais.

35 Mitos do software MAGNITUDE DAS MUDANÇAS FASES D EFINIÇÃO D ESENVOLVIMENTO M ANUTENÇÃO CUSTO DE MANUTENÇÃO 1 x 1.5-6x 60-100x

36 Mitos do software PROFISSIONAL: Mito 1: l Assim que escrevermos o programa e o colocarmos em funcionamento, nosso trabalho estará completo.

37 Mitos do software PROFISSIONAL: Mito Realidade: 1: l Assim Os dados que escrevermos da indústria o indicam programa que e o colocarmos entre 50 e em 70% funcionamento de todo esforço nosso gasto trabalho num programa estará completo. serão despendidos depois que ele for entregue pela primeira vez ao cliente.

38 Mitos do software PROFISSIONAL: Mito 2: l Enquanto não tiver o programa "funcionando", eu não terei realmente nenhuma maneira de avaliar sua qualidade.

39 Mitos do software PROFISSIONAL: Mito Realidade: 2: l Enquanto Um programa não tiver funcionando o programa é somente "funcionando", uma parte de eu uma não Configuração terei realmente de nenhuma Software maneira que inclui de todos avaliar os sua itens de qualidade. informação produzidos durante a construção e manutenção do software.

40 Resposta à Crise de Software A aplicação de uma abordagem sistemática, disciplinada e possível de ser medida para o desenvolvimento, operação e manutenção do software (IEEE)

41 Resposta à Crise de Software PROCESSO DE SOFTWARE A aplicação de uma abordagem sistemática, disciplinada e possível de ser medida para o desenvolvimento, operação e manutenção do software (IEEE)

42 Processo de Software l Abrange um conjunto de três elementos fundamentais: Métodos, Ferramentas e Procedimentos para projetar, construir e manter grandes sistemas de software de forma profissional

43 Processo de Software l MÉTODOS: proporcionam os detalhes de como fazer para construir o software F Planejamento e estimativa de projeto F Análise de requisitos de software e de sistemas F Projeto da estrutura de dados F Algoritmo de processamento F Codificação F Teste F Manutenção

44 Processo de Software l FERRAMENTAS: dão suporte automatizado aos métodos. Existem atualmente ferramentas para sustentar cada um dos métodos Quando as ferramentas são integradas, é estabelecido um sistema de suporte ao desenvolvimento de software chamado CASE - Computer Aided Software Engineering

45 Processo de Software l PROCEDIMENTOS: constituem o elo de ligação entre os métodos e ferramentas Sequência em que os métodos serão aplicados Produtos que se exige que sejam entregues Controles que ajudam assegurar a qualidade e coordenar as alterações Marcos de referência que possibilitam administrar o progresso do software.

Um Processo de Software com Qualidade 46 l A Qualidade do Processo de Software está relacionada à extensão na qual um processo de software específico é eficiente e é explicitamente definido, gerenciado, medido e controlado. l A Qualidade de Processo de Software também implica em um potencial para crescimento na capacidade do processo de software e a consistência com a qual ele é aplicado em projetos por toda a organização.

Um Processo de Software com Qualidade (SOMMERVILLE) 47 l Inteligibilidade o processo é definido e inteligível l Visibilidade o progresso do processo é visível externamente l Suportabilidade o processo pode ser apoiado por ferramentas CASE

Um Processo de Software com Qualidade (SOMMERVILLE) 48 l Aceitabilidade o processo é aceito por todos envolvidos nele l Confiabilidade os erros do processo são descobertos antes que resultem em erros no produto l Robustez o processo pode continuar a despeito de problemas inesperados

Um Processo de Software com Qualidade (SOMMERVILLE) 49 l Manutenibilidade o processo pode evoluir para atender alterações de necessidades organizacionais l Velocidade quão rápido o sistema pode ser produzido

Um Processo de Software com Qualidade 50 medido gerenciado controlado PROCESSO DE SOFTWARE eficiente definido MODELOS DE PROCESSO DE SOFTWARE

Fases Genéricas dos Modelos de Processo de ENGENHARIA 51 l Especificação - estabelecer os requisitos e restrições do sistema l Projeto - produzir um modelo documentado do sistema l Implementação - construir o sistema l Teste - verificar se o sistema atende às especificações requeridas l Instalação - liberar o sistema para o cliente e garantir que ele seja operacional l Manutenção eliminar defeitos e evoluir o sistema conforme demanda.

Fases Genéricas dos Modelos de Processo de SOFTWARE 52 l Independentemente da natureza do projeto e aplicação os modelos de processo de software possuem: fase de definição fase de desenvolvimento fase de manutenção atividades de apoio

Fase de Definição do Processo de Software 53 focaliza "o que" será desenvolvido l que informação vai ser processada l que função e desempenho são desejados l que comportamento pode ser esperado do sistema l que interfaces vão ser estabelecidas l que restrições de projeto existem l que critérios de validação são exigidos para definir um sistema bem sucedido l que tarefas serão realizadas

Fase de Definição do Processo de Software 54 focaliza "o que" será desenvolvido l que três informação tarefas principais vai ser processada ocorrem de alguma l que função e desempenho forma: são desejados l que comportamento engenharia pode sistemas ser esperado do sistema planejamento do projeto de software l que interfaces vão ser estabelecidas análise de requisitos l que restrições de projeto existem l que critérios de validação são exigidos para definir um sistema bem sucedido

Fase de Desenvolvimento do Processo de Software 55 Focaliza "como" o software será desenvolvido l como os dados vão ser estruturados l como a função vai ser implementada como uma arquitetura de software l como os detalhes procedimentais vão ser implementados l como as interfaces vão ser caracterizadas l como o projeto será traduzido em uma linguagem de programação l como os testes serão efetuados

Fase de Desenvolvimento do Processo de Software 56 l Focaliza "como" o software será desenvolvido l como três os tarefas dados técnicas vão ser específicas estruturados deverão l como a função ocorrer vai ser implementada sempre: como uma arquitetura de software projeto de software l como os detalhes procedimentais vão ser geração de código implementados l como as Inspeção interfaces e vão teste ser de caracterizadas software l como o projeto será traduzido em uma linguagem de programação l como os testes serão efetuados

Fase de Manutenção do Processo de Software 57 focaliza as "mudanças" que ocorrerão depois que o software for liberado para uso operacional l A fase de manutenção reaplica os passos das fases de definição e desenvolvimento, mas faz isso no contexto de um software existente.

Fase de Manutenção do Processo de Software 58 l focaliza as "mudanças" que ocorrerão depois As que mudanças o software estão for associadas liberado para com uso correção de erros/defeitos operacional l A adaptações fase de manutenção exigidas conforme reaplica o os ambiente passos das fases do software de definição evolui e desenvolvimento, mas faz isso mudanças no contexto devido de a um melhoramentos software existente ocorridos por alterações nos requisitos dos clientes

Atividades de Apoio ao Processo de Software 59 l As três fases genéricas do processo de software são complementadas por uma série de atividades de apoio. l As atividades de apoio são aplicadas durante toda a engenharia do software

Atividades de Apoio ao Processo de Software 60 Atividades l As três fases típicas genéricas nessa categoria do processo são: de software são complementadas por uma série l Controle e Acompanhamento do Projeto de Software de atividades de apoio. l l Revisões As atividades Técnicas de apoio Formais são aplicadas durante toda a engenharia do software l Garantia de Qualidade de Software l Gerenciamento de Configuração de Software l Preparação e Produção de Documentos l Gerenciamento de Reusabilidade l Medidas

61 Modelos de Processo de Software l Existem vários modelos de processo de desenvolvimento de software (ou paradigmas de engenharia de software) l Cada um representa uma tentativa de colocar ordem em uma atividade inerentemente caótica l Pode-se citar os seguintes modelos de processo de desenvolvimento de software

62 Modelos de Processo l O Modelo Sequencial Linear l Existem (também chamado vários Ciclo modelos Vida de Clássico processo ou Modelo Cascata) software l O Paradigma de Prototipação l Técnicas l Cada um de Quarta representa Geração uma tentativa de l O Modelo colocar RAD ordem (Rapid em Application uma atividade Development) l Modelos inerentemente de Métodos caótica Formais l Modelos Evolutivos de Processo de Software l Pode-se citar os seguintes modelos de O Modelo Incremental processo de software O Modelo Espiral O Modelo de Montagem de Componentes O Modelo de Desenvolvimento Concorrente