Engenharia de Software – Introdução - Início — UNIVASF … · 2015-12-11 · Engenharia de...

of 61/61
Engenharia de Software Introdução Ricardo Argenton Ramos [email protected] Engenharia de Software I – 2015.2
  • date post

    03-Dec-2018
  • Category

    Documents

  • view

    212
  • download

    0

Embed Size (px)

Transcript of Engenharia de Software – Introdução - Início — UNIVASF … · 2015-12-11 · Engenharia de...

  • Engenharia de

    Software Introduo

    Ricardo Argenton Ramos

    [email protected]com

    Engenharia de Software I 2015.2

  • Tpicos

    Apresentao da Disciplina

    A importncia do Software

    Software

    Aplicaes de Software

    Paradigmas de Projetos

    Mitos de Software

    Processo de Software

    Modelos de Processo de Software

  • Ementa da Disciplina

    EMENTA: Conceitos gerais de Engenharia de Software; Modelos de Processo:

    Cascata, Prototipao, Espiral, Desenvolvimento gil e outros.

    Modelar um projeto seguindo as etapas de um modelo de processo;

    Engenharia de Requisitos (Plano de Negcio, Planejamento estratgico, Requisitos bsicos do Software, Prototipao; Estudar os principais paradigmas de projeto (Fluxo de Dados, Estruturado, Tempo Real, Baseado em Funes e OO);

    Etapa de Projeto: Desenvolver a etapa de projeto preliminar e detalhado utilizando uma ferramenta Case.

    Estudar as principais etapas de Apoio para o desenvolvimento de Software com Qualidade (Reviso, Validao e Teste).

    REFERNCIAS: PRESSMAN, Roger. Engenharia de Software. Rio de Janeiro:

    McGraw Hill, 2006. SOMERVILLE, Ian. Engenharia de Software. Addison Wesley

    Editora, 2007.

  • A importncia do Software

  • A Importncia do SOFTWARE

    INSTRUES: que quando executadas produzem a funo com desempenho desejados.

    ESTRUTURAS DE DADOS: que possibilitam que os programas manipulem a informao de maneira adequada e segura.

    DOCUMENTOS : descrio das operaes e o do uso dos programas.

  • Caractersticas do software

    No se desgasta com o tempo, mas pode se deteriorar;

    Pode ser desenvolvido ou projetado pela engenharia, no manufaturado no sentido clssico;

    Principal destaque na melhoria da performance de uma Empresa.

  • Hardware

    Curva de desgaste

    mortalidade

    infantildesgaste

    Tempo

    ndice de

    Falhas

  • ndice

    de

    Falhas

    MudanaCurva Real

    Curva

    Idealizada

    Tempo

    Software

    Curva de Desgaste

  • Caractersticas - Software

    A maioria feita sob medida em vez de ser montada a partir de componentes existentes;

    Grande parte dos softwares produzidos no passado no possuem documentao e nem planejamento.

  • Aplicaes dos Softwares

    BSICO coleo de programas escritos para dar apoio a outros programas;

    TEMPO REAL software que monitora, analisa e controla eventos do mundo real;

    CIENTFICO E DE ENGENHARIAcaracterizado por algoritmos de processamento de nmeros

  • Aplicaes dos Softwares

    COMERCIAL ou EMPRESARIALsistemas de operaes comerciais e tomadas de decises administrativas;

    EMBUTIDO ou EMBARCADOusado para controlar produtos e sistemas para os mercados industriais e de consumo

    DE COMPUTADOR PESSOALenvolve processamento de textos, planilhas eletrnicas, diverses, etc.

  • Aplicaes dos Softwares

    DE INTELIGNCIA ARTIFICIALfaz uso de algoritmos no numricos para resolver problemas que no sejam favorveis computao ou anlise direta;

  • A Evoluo do Software

    1950

    1965

    1975

    1990

    Atual

    O hardware sofreu contnuas

    mudanas;

    O software era uma arte

    "secundria" para a qual havia

    poucos mtodos sistemticos;

    O hardware era de propsito

    geral;

    O software era especfico para

    cada aplicao;

    No havia documentao;

  • A Evoluo do Software

    1950

    1965

    1975

    1990

    Atual

    Multiprogramao e sistemas

    multiusurios;

    Tcnicas interativas;

    Sistemas de tempo real

    1a gerao de SGBDs;

    Produto de software -

    software houses;

    Bibliotecas de Software.

  • A Evoluo do Software

    1950

    1965

    1975

    1990

    Atual

    Cresce o nmero de sistemas

    baseado em computador

    Manuteno quase impossvel

    CRISE DO

    SOFTWARE

  • A Evoluo do Software

    1950

    1965

    1975

    1995

    Atual

    Sistemas distribudos;

    Redes locais e globais;

    Uso generalizado de

    microprocessadores -

    produtos inteligentes;

    Hardware de baixo custo;

    Impacto de consumo.

  • A Evoluo do Software(Quarta era da evoluo)

    1950

    1965

    1975

    1995

    Atual

    Tecnologias orientadas o

    objetos;

    Sistemas especialistas e

    software de inteligncia artificial

    usados na prtica;

    Software de rede neural artificial

    Computao Paralela

  • Crise do Software

    Refere-se a um conjunto de problemas encontrados no

    desenvolvimento de software e na etapa de Manuteno.

  • Crise de Software

    Problemas

    1- As estimativas de prazo e de custo freqentemente so imprecisas

    Falta de dedicao na etapa de coletas de dados no processo de desenvolvimento de software

    Vaga indicao de produtividade no se pode avaliar com preciso a eficcia de novas ferramentas, mtodos ou padres

  • Crise de Software

    Problemas

    2- Insatisfao do cliente com o sistema concludo

    Projetos de desenvolvimento de software so efetuados com um vago indcio das exigncias do cliente

  • Crise de Software

    Problemas

    3- A qualidade de software s vezes menos que adequada

    S recentemente comeam a surgir conceitos quantitativos slidos de garantia de qualidade de software

  • Crise de Software

    Problemas

    A tarefa de manuteno devora o oramento destinado ao software

    A facilidade de manuteno no foi enfatizada como um critrio importante

    4- O software existente muito difcil de manter (Sem Mantenabilidade)

  • Problemas associados a Crise

    do Software

    1- CARATERSTICAS PRPRIAS DO SOFTWARE

    O software um elemento de sistema lgico e no fsico. Conseqentemente o sucesso medido pela qualidade de uma nica entidade e no pela qualidade de muitas entidades manufaturadas

    O software no se desgasta, mas se deteriora com o tempo.

  • Problemas associados a Crise

    do Software

    2- FALHAS DAS PESSOAS RESPONS-VEIS PELO DESENVOLVIMENTO DE SOFTWARE

    Gerentes sem nenhum background em

    software

    Profissionais da rea de software tm pouco treinamento formal em novas tcnicas para o desenvolvimento de software

    Resistncia a mudanas

  • Problemas associados a Crise

    do Software

    3- MITOS DO SOFTWARE

    Falta de Planejamento e Comunicao

    administrativos

    cliente

    profissional

  • Mitos do software

    Administrativo Mito 1

    J temos um manual repleto de padres e procedimentos para a construo de software.

    Isso no oferecer ao meu pessoal tudo o que eles precisam saber?

  • Mitos do software

    Realidade - Mito 1:

    Ser que o manual usado?

    Os profissionais sabem que ele existe?

    Ele reflete a prtica moderna de desenvolvimento de software?

    Ele completo?

  • Mitos do software

    Administrativo Mito 2 : Meu pessoal tem

    Ferramentas de desenvolvimento de software de ltima gerao.

    Realidade:

    preciso muito mais do que os mais recentes computadores e as melhores ferramentas para se fazer um desenvolvimento de software de alta qualidade.

  • Mitos do software

    Administrativo Mito 3: Se ns estamos atrasados nos

    prazos, podemos adicionar mais programadores e recuperar o atraso

    Realidade:

    O desenvolvimento de software no um processo mecnico igual manufatura. Acrescentar pessoas em um projeto torna-o ainda mais atrasado.

    Pessoas podem ser acrescentadas, mas somente de uma forma planejada.

  • CLIENTE: Mito 1: Uma declarao geral dos objetivos suficiente

    para comear a escrever programas - podemos preencher os detalhes mais tarde.

    Mitos do software

  • Realidade:

    Uma definio inicial ruim a principal causa de fracassos dos esforos de desenvolvimento de software.

    Mitos do software

    fundamental uma descrio formal e detalhada do domnio da informao, funo, desempenho, interfaces, restries de projeto e critrios de validao.

    Os requisitos de usurio incluem 400 caracterstica

    Voc percebe que nenhum humano seria capaz de usar um produto com esse nvel de complexidade

    Bom ponto. melhor eu adicionar "fcil de usar" lista.

  • CLIENTE: Mito 2:

    Os requisitos de projeto modificam-se continuamente, mas as mudanas podem ser facilmente acomodadas, porque o software flexvel.

    Mitos do software

  • Realidade:

    Uma mudana, quando solicitada tardiamente num projeto, pode ser maior do que a ordem de magnitude mais dispendiosa da mesma mudana solicitada nas fases iniciais.

    CLIENTE:Mitos do software

  • MAGNITUDE DAS MUDANAS

    FASES CUSTO DE MANUTENO

    DEFINIO 1 x

    DESENVOLVIMENTO 1.5 - 6x

    MANUTENO 60 - 100x

    Mitos do software

  • PROFISSIONAL: Mito 1:

    Assim que escrevermos o programa e o colocarmos em funcionamento nosso trabalho estar completo.

    Mitos do software

  • Realidade:PROFISSIONAL:

    Mitos do software

  • PROFISSIONAL: Mito 2 :

    Enquanto no tiver o programa "funcionando", eu no terei realmente nenhuma maneira de avaliar sua qualidade.

    Mitos do software

  • Realidade:

    Um programa funcionando somente uma parte de uma Configurao de Software que inclui todos os itens de informao produzidos durante a construo e manuteno do software.

    PROFISSIONAL:

    Mitos do software

  • Evoluo do Software

    CRISE DE SOFTWARERefere-se a um conjunto de

    problemas encontrados no desenvolvimento de software

  • Resposta Crise de Software

    A aplicao de uma abordagemsistemtica, disciplinada e possvel de ser medida para o desenvolvimento, operao e manuteno do software (IEEE).

    PROCESSO DE SOFTWARE

  • Abrange um conjunto de trs elementos

    fundamentais: Mtodos, Ferramentas

    e Procedimentos para projetar,

    construir e manter grandes sistemas de

    software de forma profissional

    O Processo de Software

  • O Processo de Software

    MTODOS: fornecem os detalhes sobre como

    fazer para construir o software

    Planejamento e estimativa de projeto

    Anlise de requisitos de software e de sistemas

    Projeto da estrutura de dados

    Algoritmos de processamento

    Codificao

    Teste

    Manuteno

  • O Processo de Software

    FERRAMENTAS: do suporte

    automatizado aos mtodos.

    Existem atualmente ferramentas para sustentar cada mtodo

    Quando as ferramentas so integradas, estabelecido um sistema de suporte ao desenvolvimento de software chamado CASE - Computer AidedSoftware Engineering

  • O Processo de Software

    PROCEDIMENTOS: constituem o elo de ligao entre os mtodos e as ferramentas Seqncia em que os mtodos sero

    aplicados Produtos que se exige que sejam entregues Controles que ajudam assegurar a

    qualidade e coordenar as alteraes Marcos de referncia que possibilitam

    administrar o progresso do software.

  • Um Processo de Software com

    Qualidade

    A Qualidade do Processo de Softwareest relacionada extenso na qual um processo de software especfico eficiente e explicitamente definido, gerenciado, medido e controlado.

    A Qualidade de Processo de Softwaretambm implica em um potencial paracrescimento na capacidade do processode software e a consistncia com a qual ele aplicado em projetos por toda a organizao.

    Teremos uma aula sobre Padres de Qualidade

  • Um Processo de Software com

    Qualidade (SOMMERVILLE)

    Inteligibilidade o processo definido e inteligvel

    Visibilidade o progresso do processo visvel externamente

    Suportabilidade o processo pode ser apoiado por ferramentas CASE

    Que pode ser facilmente compreendido

  • Um Processo de Software com

    Qualidade (SOMMERVILLE)

    Aceitabilidade

    o processo aceito por todos envolvidos nele

    Confiabilidade

    os erros do processo so descobertos antes que resultem em erros no produto

    Robustez

    o processo pode continuar a despeito de problemas inesperados

  • Um Processo de Software com

    Qualidade (SOMMERVILLE)

    Manutenibilidade o processo pode evoluir para atender

    alteraes de necessidades organizacionais

    Velocidade quo rpido o sistema pode ser

    produzido

  • Fases Genricas dos Modelos

    de Processo de ENGENHARIA

    Especificao - estabelecer os requisitos e restries do sistema

    Projeto - produzir um modelo documentado do sistema

    Implementao - construir o sistema Teste - verificar se o sistema atende s

    especificaes requeridas Instalao (ou implantao) - liberar o

    sistema para o cliente e garantir que ele se torne operacional

    Manuteno eliminar defeitos e evoluir o sistema conforme demanda.

  • Fases Genricas dos Modelos

    de Processo de SOFTWARE

    Independentemente da natureza do projeto e aplicao os modelos de processo de software possuem:

    fase de definio fase de desenvolvimento fase de manuteno atividades de apoio

  • Fase de Definio do Processo

    de Software

    que informao vai ser processada que funo e desempenho so desejados que comportamento pode ser esperado do sistema que interfaces vo ser estabelecidas que restries de projeto existem que critrios de validao so exigidos para definir um

    sistema bem sucedido que tarefas sero realizadas

    focaliza "o que" ser desenvolvido

  • Fase de Desenvolvimento do

    Processo de Software

    como os dados vo ser estruturados como a funo vai ser implementada em uma arquitetura de

    software como os detalhes procedimentais vo ser implementados como as interfaces vo ser caracterizadas como o projeto ser traduzido em uma linguagem de programao como os testes sero efetuados

    Focaliza "como" o software ser desenvolvido

  • Fase de Manuteno do

    Processo de Software

    A fase de manuteno reaplica os passos das fases de definio e desenvolvimento, mas faz isso no contexto de um software existente.

    focaliza as "mudanas" que ocorrero depois que

    o software for liberado para uso operacional

  • Fase de Manuteno do

    Processo de Software

    As mudanas esto associadas com:

    correo de erros/defeitos

    adaptaes exigidas conforme o ambiente

    do software evolui

    Aperfeioamentos para incluir funes

    adicionais que traro benefcios para os

    clientes

    Modificaes preventivas para evitar erros e

    facilitar modificaes futuras.

  • Atividades de Apoio ao

    Processo de Software

    As atividades de apoio so aplicadas durante toda a engenharia do software

    As trs fases genricas do processo de software so complementadas por uma srie de atividades de apoio.

  • Atividades de Apoio ao

    Processo de Software

    Controle e Acompanhamento do Projeto de Software Revises Tcnicas Formais Garantia de Qualidade de Software

    Atividades tpicas de Apoio so:

    Gesto de Configurao de Software Preparao e Produo de Documentos Gesto de reutilizao Medies Gesto de risco

  • Exerccio

    Baseando-se nas atividades Genricas de um processo de Software, que acabamos de ver, crie um modelo para a seguinte situao:

    Uma equipe iniciante de desenvolvedores de Software de 15 pessoas.

    Um cliente pede para construir um software para o controle de estoque e de vendas da empresa. A empresa considerada de mdio porte, com cerca de 800 funcionrios.

    O prazo de entrega de 6 meses Para lembrar das fases:

    fase de definio fase de desenvolvimento fase de manuteno atividades de apoio

    Descreva as fases do seu Modelo e faa uma figura para ilustrar o fluxo de uma fase para a outra

  • Modelos de Processo de

    Software

  • Modelos de Processo de

    Software

    Cada um representa uma tentativa de colocar ordem em uma atividade inerentemente catica

    Existem vrios modelos de processo de software (ou paradigmas de engenharia de software)

  • Modelos de Processo de Software

    Processo Unificado

    O Modelo Seqencial Linear(tambm chamado Ciclo de Vida Clssico ou Modelo Cascata)

    O Paradigma de Prototipao

    O Modelo EspiralO Modelo Baseado em Componentes