Top Banner

of 46

Aula 01 ES

Jul 05, 2018

Download

Documents

Joyce da Matta
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 8/16/2019 Aula 01 ES

    1/46

  • 8/16/2019 Aula 01 ES

    2/46

    22

    EMENTA DA DISCIPLINA

     A crise do software e os requisitos dos produtos de software. Ciclo devida e paradigmas de desenvolvimento de software. Os conceitos demetodologia, técnica e ferramenta em engenharia de software. Oprocesso de engenharia de software.

  • 8/16/2019 Aula 01 ES

    3/46

    33

    CONTEÚDO PROGRAMÁTICO

    1. Introdução à Engenharia de Software1.1. O que é Engenharia de Software.

    1.2. Objetivo da Engenharia de Software: Qualidade e Produtividade1.3. Produto e Processo de Software1.4. Qualidade de Produto e Qualidade de Processo de Software

    2. Processo de Software2.1. Conceitos2.2. Modelos de Ciclo de Vida (Modelos de Processo)

    2.2.1 Modelo em Cascata2.2.2 Modelos Incrementais2.2.3 Modelos Evolucionários

    3. CMM, CMMI4. MPS.BR5. Metodologias ágeis6. Especificação e Análise de Requisitos

    6.1 Requisitos (Conceito e tipos)6.2. O Processo de Engenharia de Requisitos6.3. Levantamento de Requisitos6.4. Análise de Requisitos

    7. Projeto de Sistemas

    8. Implementação e testes8.1. Implementação8.2. Estratégias e tipos de testes

    9. Entrega e manutenção9.1. Entrega e manutenção9.2. Tipos de manutenção

    10. Gerência de Projetos de Software11. Gerência da Qualidade de Software12. Reengenharia de Software

    12.1 Processo de Reengenharia de Software12.2 Ferramentas de apoio a Reengenharia de Software

  • 8/16/2019 Aula 01 ES

    4/46

    44

    Exposições, discussão de textos, análise de estudos decaso

     Atividades extra-classe

    RECURSOS UTILIZADOS NO DESENVOLVIMENTO DADISCIPLINA

    Computador 

    Datashow

    Quadro Branco

    AVALIAÇÃO DA DISCIPLINA

    Frequência

     Atividades em sala e extra-classe

     Avalia ões individuais

    MÉTODOS E TÉCNICAS PARA O DESENVOLVIMENTO DADISCIPLINA

  • 8/16/2019 Aula 01 ES

    5/46

    5

    BIBLIOGRAFIA

    10.1. Básica

    GUSTAFSON, D. Teoria e Problemas de Engenharia de Software, Bookman, 2003(Coleção Schaum).

    PAULA FILHO, W. de P. Engenharia de Software – Fundamentos, Métodos ePadrões. LTC, 2001

    PFLEEGER, Shari Lawrence. Engenharia de Software - Teoria e Prática, 2ª Edição,Makron Books, 2004.PRESSMAN, R. S. Engenharia de Software, 5ª Edição, Rio de Janeiro: McGraw-Hill2002.

    SOMMERVILLE, Ian. Engenharia de Software, 8ª Edição, São Paulo: Addison-Wesley,

    2007.

  • 8/16/2019 Aula 01 ES

    6/46

    6

    BIBLIOGRAFIA

    10.2. Complementar 

    CARVALHO, A.M.B.R. e CHIOSSI, T.C.S. Uma Introdução a Engenharia de Software. SãoPaulo: Editora da Unicamp, 2001.

    McCONNELL, S. Code Complete: um Guia Completo para Construção de Software.Porto Alegre: Bookman, 2000.

    REZENDE, D. A. Engenharia de Software e Sistemas de Informações. Brasport, 1999.

  • 8/16/2019 Aula 01 ES

    7/46

    • Elaborar e apresentar um artigo. – Entrega e apresentações (2/02/15 e 09/02/15)

    • Desenvolver o projeto de uma aplicação. – Será desenvolvido durante o semestre

    (Avaliações Progressivas)

     – Sugestão (utilizar este projeto como atividade

    de POO)

    7

     AtA ATIVIDADES

  • 8/16/2019 Aula 01 ES

    8/46

    88

    INTRODUÇÃO DE

    ENGENHARIA DESOFTWATE

    INTRODUÇÃO DE

    ENGENHARIA DESOFTWATE

  • 8/16/2019 Aula 01 ES

    9/46

    99

    SOFTWARE - PAPEL DA

    SOCIEDADE

    Produtos de software fazem parte do nosso cotidiano eexercem papel estratégico para o alcance dos nossosobjetivos individuais, coletivos e corporativos(organizacionais).

  • 8/16/2019 Aula 01 ES

    10/46

    10

    Iniciantes da área na Ciência daComputação costumam confundir o

    desenvolvimento de software comprogramação.

  • 8/16/2019 Aula 01 ES

    11/46

    1111

    Perguntas Importantes:

    Você já participou de um projeto

    cujo software resultante não terminouou nunca foi utilizado?

    Na sua opinião, quais foram osproblemas deste projeto?

  • 8/16/2019 Aula 01 ES

    12/46

    1212

    Prováveis problemas no projeto deSoftware...

    Desvio do escopo original.

    Problemas de integração.Reescrita constante do código fonte.Estimativas de prazos, custo e esforço refeitosconstantemente.Modificações na concepção do projeto e reescritado código durante os testes.Falta de documentação (atualizada) relatando asdecisões de projeto

  • 8/16/2019 Aula 01 ES

    13/46

    1313

     Alguns dados de projetos (1)...

    O desenvolvimento de aplicações, especialmenteas grandes, envolve vários riscos.Por exemplo, riscos de cancelamento ou atrasosaumentam à medida que aumenta o tamanho globaldo aplicativo.Em uma pesquisa de 8000 projetos, verificou-seque 30% deles foram cancelados.Estes projetos estavam em média 1 ano atrasadose excederam em 200% o custo estimado.

  • 8/16/2019 Aula 01 ES

    14/46

    14

     Alguns dados de projetos (2)...

    Nos projetos concluídos, 2/3 foram executados comatraso e com custo acima do previsto.

    Nos projetos concluídos, 2/3 passaram por  problemas de confiabilidade em relação àsfuncionalidades oferecidas e apresentaramproblemas de qualidade no primeiro ano de uso.

    Segundo outro levantamento, foram registradasocorrências de 0.5 a 3.0 defeitos por 1000 linhascódigo.

  • 8/16/2019 Aula 01 ES

    15/46

    15

    QUESTIONAMENTOS IMPORTANTES

    Por que leva tanto tempo para concluir o software?

    Por que os custos de desenvolvimento são tãoaltos?

    Por que gastamos tanto tempo e esforço mantendoprogramas existentes?

    Por que não podemos achar todos os erros antesde entregar o software aos clientes?

    (Pressman,2010)

  • 8/16/2019 Aula 01 ES

    16/46

    16

    O que é Engenharia de

    Software?

    O intuito da engenharia de software

    é fornecer uma estrutura paraconstrução de software com altaqualidade.

  • 8/16/2019 Aula 01 ES

    17/46

    17

    O que é Engenharia deSoftware?

     A Engenharia de Software trata de aspectos relacionadosao estabelecimento de processos, métodos, técnicas,

    ferramentas e ambientes de suporte ao desenvolvimentode software.

    De acordo com o [IEEE, 93] a engenharia é aplicaçãode uma abordagem sistemática, disciplinada e

    quantificável, para o desenvolvimento, operação emanutenção do software; isto é, a aplicação daengenharia ao software.

  • 8/16/2019 Aula 01 ES

    18/46

    18

    Objetivos da Engenharia de Software

    Melhorar a qualidade dos produtos de

    software desenvolvidos.

    Mas , o que seria qualidade de software?

  • 8/16/2019 Aula 01 ES

    19/46

    19

    Qualidade de Software A qualidade de software é um conceito com Múltiplas facetas:

    Perspectiva do usuário : para um usuário um produto de software éde boa qualidade se ele satisfizer suas necessidades, sendo fácil deusar, eficiente e confiável. (perspectiva externa pelo uso do produto)

    Perspectiva do desenvolvedor : para um desenvolvedor um produtode boa qualidade tem de ser fácil de manter , de compreender e incluirnovas funcionalidades. (perspectiva interna)

    Perspectiva do cliente: o produto de software deve agregar valor aoseu negócio. (qualidade em uso)

    Todas essas perspectivas estão focadas noproduto de software !!!!!

  • 8/16/2019 Aula 01 ES

    20/46

    Envolve diferentes características:

    Usabilidade

    Confiabilidade

    Manutenibildade

    Eficiência

    PortabilidadeSegurança

    Produtividade 20

    Qualidade de Software

  • 8/16/2019 Aula 01 ES

    21/46

    21

     A qualidade do produto de software dependefortemente da qualidade dos processos usados

    para desenvolvê-lo e mantê-los.

    Qualidade de Software

  • 8/16/2019 Aula 01 ES

    22/46

    22

    Processos de Software

    Para se construir um produto ou sistema é necessário seguir uma série depassos previsíveis, isto é, um guia que ajude a chegar a um resultado dequalidade dentro do tempo previsto(Falbo, 2005).

    Um conjunto de atividades, métodos, práticas e transformações queguiam pessoas na produção de software. (Falbo, 2005)

  • 8/16/2019 Aula 01 ES

    23/46

    23

    Processos de Software

    Segundo Pressman engloba um conjunto de atividades guarda-chuva que sãoaplicáveis à grande maioria dos projetos de software. Pode-se considerar umarcabouço de processo genérico.

    Comunicação

    Planejamento

    Modelagem

    Construção

    Implantação

    Comunicação com cliente, abrange levantamento de

    requisitos.

    Desenvolver um plano de trabalho , com as tarefastécnicas, os risco prováveis, os recursos necessários,os produtos de trabalho , cronograma.

     Atividade que envolve a criação de modelos, que vai

    permitir o desenvolvedor, cliente, entender melhor osrequisitos do software.

    Combina geração do código e os testes que revelamerros no código

    O software finalmente é entregue ao cliente, avalia oproduto entregue (feedback).

  • 8/16/2019 Aula 01 ES

    24/46

    24

    Processos de SoftwareRicardo Falbo (2005)destaca que o ciclo de vida de um software envolve pelo

    menos as seguinte fases.

    Planejamento  Análise e Especificaçãode Requisitos Projeto

    Implementação Testes Entrega eImplantação

    Operação Manutenção

  • 8/16/2019 Aula 01 ES

    25/46

    25

    Processos de Software: Modelosde Ciclo de Vida

    No geral os modelos de processo contemplam asfases Análise e Especificação de Requisitos,

    Projeto, Implementação, Testes , Entrega eImplantação.

  • 8/16/2019 Aula 01 ES

    26/46

    26

    Modelos de Ciclo de Vida

    Podem ser agrupados em trêscategorias :

    Modelos sequencias Modelos incrementais

    Modelos evolutivos

  • 8/16/2019 Aula 01 ES

    27/46

    27

     A escolha de um modelo de processo depende:

    • Tipo de software• Paradigma de desenvolvimento (estruturado, orientado a

    objetos, etc)

    • Tamanho e complexidade do sistema

    • Características da equipe

    • Estabilidade dos requisitos

    Modelos de Ciclo de Vida

  • 8/16/2019 Aula 01 ES

    28/46

    28

    Modelos Sequenciais

    Modelo em cascata

    Modelo em V

  • 8/16/2019 Aula 01 ES

    29/46

    29

    Modelo em Cascata

    Modelo de ciclo de vida mais antigo e mais amplamente usado.

  • 8/16/2019 Aula 01 ES

    30/46

    30

    Modelo em Cascata

    Requisitos são bem definidos e razoavelmenteestáveis.  A fase seguinte não deve começar antes que

    a fase anterior tenha terminado. Uma das grandes vantagens consiste nadocumentação produzida. A entrega do sistema completo acontece em

    um único marco ao final da entrega eimplantação.

  • 8/16/2019 Aula 01 ES

    31/46

    31

    Modelo em Cascata

    Principais desvantagens:

    O usuário precisa ter paciência , pois ele só vai ter  contato com uma versão operacional do software ao finaldo projeto.

    Os requisitos devem ser estabelecidos de maneira clara, objetiva e completa logo no início do projeto, mas é difícilo usuário colocar todos os requisitos explicitamente. Ousuário nunca saber definir realmente o que deseja.

    Forte dependência na realização das tarefas

    Projetos reais muitas vezes não seguem o fluxosequencial que o modelo propõe.

  • 8/16/2019 Aula 01 ES

    32/46

    32

    Modelo em VVariação do modelo em cascata que procura enfatizar a estreita relação entre

    as atividades de teste (teste de unidade, teste de integração, teste de sistemae teste de aceitação) e as demais fases do processo.

    Implica que, caso sejamencontrados problemas

    em uma atividade deteste, as fases do ciclo devida podem ter de ser  executadas novamentepara corrigir ou melhorar os problemas.

  • 8/16/2019 Aula 01 ES

    33/46

    E quando é inviável esperar , e sobretudo quando

    se tem a necessidade de disponibilizar

    rapidamente uma versão operacional do software

     para o usuário ?

    33

  • 8/16/2019 Aula 01 ES

    34/46

    34

    Modelos Incrementais

    O Modelo Incremental

    O Modelo RAD

  • 8/16/2019 Aula 01 ES

    35/46

    35

    O Modelo IncrementalO sistema é dividido em subsistemas ou módulos. Os incrementos ou

    versões são definidos começando com um pequeno subsistema funcionalque, a cada ciclo, é acrescido de novas funcionalidades.

    Variações do Modelo Incremental

  • 8/16/2019 Aula 01 ES

    36/46

    36

     A cada ciclo ou interação uma versão operacional dosistema será produzido e entregue para uso e avaliaçãodetalhada do cliente.

    Geralmente a primeira versão contém as funcionalidadecentrais, tratando dos requisitos básicos. Podem até ser considerados como versões simplificadas do produto final.

    O Modelo Incremental

  • 8/16/2019 Aula 01 ES

    37/46

    37

    Menor custo e menos tempo são necessários para seentregar a primeira versão

    O risco associados ao desenvolvimento de umincremento é menor, devido ao tamanho reduzido

     A gerência de projetos é mais complexa, sobretudoquando a divisão em subsistemas feita inicialmente não

    for boa.

    O Modelo Incremental

  • 8/16/2019 Aula 01 ES

    38/46

    38

    O Modelo RAD (Rapid Application Development)

     Assim como no modelo incremental o sistema é subdividido emsubsistemas e incrementos são realizados, a diferença é os incrementossão desenvolvidos em paralelo por equipes distintas e apenas uma únicaentrega é feita.

  • 8/16/2019 Aula 01 ES

    39/46

    39

    O Modelo RAD (Rapid Application Development)

    O ciclo de desenvolvimento é curto pode variar de 60 a 90dias.

    Se o sistema for muito grande , o número de equipes

    crescerá e o desenvolvimento e a integração acabará ficandocomplexo.

    Os requisito também tem de ser bem definidos e o objetivodo projeto for restrito.

    Para adotar este modelo a organização tem que possuirrecursos humanos suficiente para acomodar várias equipes.

  • 8/16/2019 Aula 01 ES

    40/46

    40

    Modelos Evolucionários

    Evoluem ao longo do tempo.

    Requisitos instáveis

    Modelo que lida com incertezas e acomodamas contínuas mudanças

    Utilizado quando o problema não está bemdefinido e não pode ser totalmente especificadono inicio do desenvolvimento.

  • 8/16/2019 Aula 01 ES

    41/46

    41

    Modelos Evolucionários x

    Incrementais

    Modelos Evolucionário Incrementais

    Os primeiros ciclos podemproduzir protótipos ouapenas modelos e nãonecessariamente versõesoperacionais do sistemas.

    Desde o primeiro cicloentrega versõesoperacionais do sistema

    Requisitos não definidos, einstáveis

    Requisitos estáveis edefinidos

  • 8/16/2019 Aula 01 ES

    42/46

    42

    Modelos Evolucionários

    O Modelo Espiral

  • 8/16/2019 Aula 01 ES

    43/46

    43

    Modelo Espiral

    Em vez de representar o processo de software como uma seqüência deatividades, o processo é representado como uma espiral. Cada loop naespiral representa uma fase do processo de software.

  • 8/16/2019 Aula 01 ES

    44/46

    44

    Modelo Espiral

    Nos primeiros ciclos nem sempre todas as atividadessão realizadas, um loop mais interno pode estarrelacionado a definição de requisitos, o próximo loop aanálise, o próximo ao projeto e assim por diante.

     As passadas subsequentes ao longo da espiralpodem desenvolver protótipos, chegandoprogressivamente a versões operacionais do software,até se obter o produto completo.

    A abordagem cíclica aumenta incrementalmente o grau dedefinição e implementação de um sistema enquanto diminui

    o grau de risco.

  • 8/16/2019 Aula 01 ES

    45/46

    45

    Prototipação

    È uma técnica para ajudar engenheiros de software eclientes a entender o que está sendo construído quandoos requisitos não muito claros.

    Pode ser implementada dentro do contexto de qualquerum dos modelos de processos de software.

  • 8/16/2019 Aula 01 ES

    46/46

     Atividade

    • Resenha do artigo: Flexible andDistributed Software Processes: OldPetunias In New Bowls?

    • Entrega dia 03/11/14 – Formatação ABNT

     – Máximo 3 páginas

    OBS: O artigo está disponível no Dropbox.

    46