1ES-aula2-3

download 1ES-aula2-3

of 41

Transcript of 1ES-aula2-3

  • Engenharia de Software I

    Prof. Josu Froner

  • Introduo

    Objetivo: apresentar conceitos sobre ciclo de vida do software, reutilizao, medio, ferramentas e ambientes integrados, trabalhar a distino entre engenharia de software e cincia da computao;

  • Elementos fundamentais

    Mtodos

    Ferramentas

    Procedimentos

    metas: melhorar a qualidade de produtos de software, aumentar a produtividade do pessoal tcnico e aumentar a satisfao do cliente

  • Mtodos

    Detalhes de como fazer para construir software

    Tarefas bsicas: Planejamento e estimativa de projeto;

    Anlise de requisitos de software e de sistemas;

    Projeto da estrutura de dados;

    Arquitetura de programa;

    Algoritmo de processamento;

    Codificao;

    Testes;

    Manuteno.

  • Ferramentas

    Suporte, apoio aos mtodos;

    Computer Aided Software Engineering

    CASE combinao de software, hardware e BD sobre ES

  • Procedimento

    Ligao entre ferramentas e mtodos;

    Definem a seqncia de aplicao dos mtodos, a exigncia de entrega de produtos, o controle relacionados a qualidade

    Mtodos, Ferramentas e Procedimento esto presentes em etapas da engenharia de software, assim como Paradigmas

  • Uma abordagem de sistema

    Um projeto composto por hardware e software interagindo com: usurios, partes de hardware, BD, sistemas computadorizados

    CLIENTE

    DESENVOLVEDOR USURIO

    Financia o

    desenvolvimento do

    sistema

    necessidades Obrigaes contratuais

    necessidades

    Sistema de software

    Utiliza o

    sistema

  • Uma abordagem de sistema

    Identificar, conhecer os elementos de um sistema: nomear as partes do sistema

    Verificar como as partes se relacionam

    Podemos chamar os elementos de objetos ou entidades

    Conhecer as relaes e fronteiras do sistema

    Verificar se h sistemas inter-relacionados (fronteiras)

    Auxilia o conhecimento sobre o projeto

  • Projeto de Software um processo

    Processo : conjunto de tarefas ordenadas, etapas que envolvem atividades, restries e recursos almejando um fim;

    Descrio da principais atividades;

    Utilizao de recursos, tempo de uso e finalizaes, gerao de produtos intermedirios e finais;

    Pode ser subdivido, ter hierarquia, sequenciao de atividades e seus objetivos;

    As atividades desenvolvidas devem ser controladas, assim como o suo de recursos

  • Concepo implementao entrega utilizao manuteno

    Fator importante pois d consistncia e estrutura a um conjunto de atividades

    Conjunto de procedimentos Sequenciao de execuo reutilizao

    Experincia para o futuro

    Documentao facilitada

    Processo ciclo de vida

  • Paradigmas de ES

    Abordagem filosfica da construo de soft.

    Ciclo de vida clssico;

    Prototipao;

    Modelo Espiral;

    Tcnicas de 4 Gerao

    Combinao de Paradigmas

    ou processo de software

  • O paradigma est relacionado

    A natureza do projeto e da aplicao

    Aos mtodos e ferramentas a serem usados

    Aos controles e produtos que precisam ser entregues

  • Ciclo de vida Clssico

    Conhecido como modelo em cascata-linear e sequencial;

    modelo mais antigo e o mais amplamente usado da engenharia de software

    modelado em funo do ciclo da engenharia convencional

    requer uma abordagem sistemtica, seqencial ao desenvolvimento de software

  • Cascata

    Engenharia de

    Sistemas Anlise de

    Requisitos Projeto

    Codificao

    Testes

    Manuteno

    Levantamento de requisitos

    Compreenso do domnio da informao, funo, desempenho e interface

    Mltiplos passos: est. Dados, arquit, procedim e caract. de interface documentao

    Lgicos e funcionais

    Reaplicao do processo

  • Detalhes modelo cascata

    ANLISE E ENGENHARIA DE SISTEMAS

    envolve a coleta de requisitos em nvel do sistema, pequena quantidade de projeto e anlise de alto nvel

    viso essencial quando o software deve fazer interface com outros elementos (hardware, pessoas e banco de dados

    ANLISE DE REQUISITOS DE SOFTWARE

    processo de coleta dos requisitos intensificado e concentrado especificamente no software

    deve-se compreender o domnio da informao, a funo, desempenho e interfaces exigidos

    os requisitos (para o sistema e para o software) so documentados e revistos com o cliente

  • PROJETO se concentra em 4 atributos do programa:

    Estrutura de Dados, Arquitetura de Software, Detalhes Procedimentais e caracterizao de Interfaces;

    traduo dos requisitos do software para um conjunto de representaes que possam ser avaliadas quanto qualidade, antes que a codificao se inicie. documental;

    CODIFICAO transformao das representaes do projeto para

    uma linguagem computacional resultando em instrues e procedimentos executveis pelo computador

  • TESTES aspectos lgicos internos do software, garantir

    teste das instrues; aspectos funcionais externos, para descobrir erros

    e garantir que a entrada produza resultados esperados

    MANUTENO o software dever sofrer mudanas depois que for

    entregue ao cliente causas das mudanas: erros, adaptao do

    software para acomodar mudanas em seu ambiente externo e exigncia do cliente para acrscimos funcionais e de desempenho

  • Problemtica levantada

    projetos reais raramente seguem o fluxo seqencial que o modelo prope

    logo no incio difcil estabelecer explicitamente todos os requisitos. No comeo dos projetos sempre existe uma incerteza natural

    o cliente deve ter pacincia. Uma verso executvel do software s fica disponvel numa etapa avanada do desenvolvimento

  • Prototipao

    processo que possibilita que o desenvolvedor crie um modelo do software que deve ser construdo.

    idealmente, o modelo (prottipo) serve como um mecanismo para identificar os requisitos de software.

    apropriado para quando o cliente definiu um conjunto de objetivos gerais para o software, mas no identificou requisitos de entrada, processamento e sada com detalhes

  • Demonstrao Prototipao

    fim

    incio

    construo

    produto

    refinamento

    prottipo

    avaliao

    prottipo

    construo

    prottipo

    projeto

    rpido

    obteno

    dos

    requisitos

  • Prototipao: atividades

    Obteno dos Requisitos: desenvolvedor e cliente definem os objetivos gerais do software, identificam quais requisitos so conhecidos e as reas que necessitam de definies adicionais

    Projeto Rpido: representao dos aspectos do software que so visveis ao usurio (abordagens de entrada e formatos de sada

    Construo Prottipo: implementao do projeto rpido

    Avaliao do Prottipo: cliente e desenvolvedor avaliam o prottipo

  • Refinamento dos Requisitos: cliente e desenvolvedor refinam os requisitos do software a ser desenvolvido.

    Ocorre neste ponto um processo de iterao que pode conduzir a 1a. atividade at que as necessidades do cliente sejam satisfeitas e o desenvolvedor compreenda o que precisa ser feito

    Construo Produto: identificados os requisitos, o prottipo deve ser descartado e a verso de produo deve ser construda considerando os critrios de qualidade.

  • Problemtica levantada

    desenvolvedor freqentemente faz uma implementao comprometida (utilizando o que est disponvel) com o objetivo de produzir rapidamente um prottipo. Depois de um tempo ele familiariza com essas escolhas, e esquece que elas no so apropriadas para o produto final.

    cliente no sabe que o software que ele v no considerou, durante o desenvolvimento, a qualidade global e a manutenibilidade a longo prazo. No aceita bem a idia que a verso final do software vai ser construda e "fora" a utilizao do prottipo como produto final.

  • Espiral

    engloba as melhores caractersticas do ciclo de vida Clssico e da Prototipao, adicionando um novo elemento: a Anlise de Risco

    segue a abordagem de passos sistemticos do Ciclo de Vida Clssico incorporando-os numa estrutura iterativa que reflete mais realisticamente o mundo real

    usa a Prototipao, em qualquer etapa da evoluo do produto, como mecanismo de reduo de riscos

  • Espiral - grfico

    Anlise dos riscos

    Engenharia Avaliao do cliente

    Planejamento

    Avaliao do cliente

    Planejamento baseado nos comentrios do cliente

    Coleta inicial dos requisitos e planejamento do projeto

    Anlise dos riscos baseada nos requisitos iniciais

    Anlise dos riscos baseada na reao do cliente

    DECISO

    Prottipo de software inicial

    Nvel seguinte do prottipo

    Sistema finalizado

  • Fases - Espiral

    Planejamento: determinao dos objetivos, alternativas e restries

    Anlise de Risco: anlise das alternativas e identificao / resoluo dos riscos

    Construo: desenvolvimento do produto no nvel seguinte

    Avaliao do Cliente: avaliao do produto e planejamento das novas fases

  • Observaes

    , atualmente, a abordagem mais realstica para o desenvolvimento de software em grande escala;

    usa uma abordagem que capacita o desenvolvedor e o cliente a entender e reagir aos riscos em cada etapa evolutiva;

    pode ser difcil convencer os clientes que uma abordagem "evolutiva" controlvel;

    exige considervel experincia na determinao de riscos e depende dessa experincia para ter sucesso;

    o modelo relativamente novo e no tem sido amplamente usado

  • Tcnicas de 4 Gerao

    Concentra-se na capacidade de se especificar o software a uma mquina em um nvel que esteja prximo linguagem natural.

    Engloba um conjunto de ferramentas de software que possibilitam que:

    o sistema seja especificado em uma linguagem de alto nvel e

    o cdigo fonte seja gerado automaticamente a partir dessas especificaes

  • Grfico F4G

    Obteno dos

    Requisitos Estratgia do

    Projeto Implementao

    usando 4GL Testes

  • Modelo Incremental

    O projeto de software constitui-se da possibilidade de entregar ao cliente um conjunto mnimo do sistema que seja usvel, sendo que o processo continuar ao longo do ciclo de vida do software atravs de incrementos adicionados ao software.

    Obs: as vantagens incluem fornecer logo ao cliente ma sistema e novas verses de trabalho

  • Modelo de processo de software-MPS

    Composto por:

    Tarefas

    Artefatos (arquivos, dados...)

    Atores

    Decises

    Modelagem de utiliza notao como elipse, retngulos, figuras e losangos formando fluxograma e/ou diagramas

  • Combinando Paradigmas obteno dos requisitos

    preliminares

    modelo espiral

    tcnicas

    4G

    protomodelagem

    anlise dos

    requisitos

    projeto

    codificao

    testes

    manuteno

    protomodelagem

    no. interao

    protomodelagem

    no. interao

    tcnicas

    4G

    modelo espiral

    no. interao

    sistema completo

  • Atividades do Ciclo de Vida

    Viabilidade desenvolvimento proposto vivel; Anlise de mercado existe mercado potencial para

    o produto? Requisitos quais funcionalidades o software dever

    ter? refinamento dos requisitos obtem-se os requisitos

    do usurio Anlise de domnio quais tarefas e estruturas so

    comuns ao problema? Planejamento do projeto como o software ser

    desenvolvido Estimativas de custo qual o custo do projeto Cronograma cronologia de datas do

    desenvolvimento;

  • Mais atividades

    Garantia da qualidade determina atividades que iro auxiliar a garantir a qualidade do produto;

    Estrutura de decomposio de trabalho determinao de subtarefas no decorrer do desenvolvimento;

    Projeto determina como o software dever prover as funcionalidades;

    Projeto arquitetural projeta a estrutura do sistema;

    Projeto de interface especifica as interfaces entre as partes do sistema;

    Detalhamento do projeto projeta os algoritimos para cada parte

  • Mais atividades

    Implementao construo do software atravs de cdigo;

    Teste: de unidade, de integrao, do sistema, alpha, beta, de aceitao, de regresso;

    Entrega o cliente recebe um software eficiente que soluciona suas necessidades;

    Instalao disponibiliza o software no ambiente operacional do cliente;

    Treinamento ensina a operao aos usurios;

    Help desk responde a questes do usurio;

    Manuteno atualizao e evoluo garantia de usabilidade constante

  • Documentos gerados

    Contrato de trabalho,

    especificao dos requisitos de software,

    modelagem de objetos,

    cenrios de casos de uso,

    cronograma do projeto,

    plano de testes de software,

    testes de aceitao,

    projeto de software,

    projeto arquitetural,

    projeto detalhado,

    plano da garantia da qualidade do software (SQA),

    manual do usurio,

    cdigo fonte,

    relatrio de teste,

    relatrio de falhas

  • MTODO E METODOLOGIA

    No so sinnimos;

    metodologia envolve princpios filosficos que guiam uma gama de mtodos que utilizam ferramentas e prticas diferenciadas para realizar algo

  • exemplificando

    A exemplo disso, pode-se citar a Metodologia Estruturada, a qual composta por vrios mtodos, tal como Anlise Estruturada e Projeto Estruturado (muitas vezes denominados SA/SD), e Anlise Essencial. E tanto a Anlise Estruturada quanto a Anlise Essencial utilizam-se da ferramenta Diagrama de Fluxos de Dados para modelar o funcionamento do sistema.

  • Metodologias Estruturadas

    Anlise Estruturado

    Projeto Estruturado

    Anlise Essencial

    SADT

    Outras Metodologias

    Rational Unified Process (RUP)

    Microsoft Solution Framework (MSF

    Metodologias geis

    Feature Driven Development (FDD)

    Enterprise Unified Process (EUP)

    Scrum

    Crystal (Crystal Clear, Crystal Orange, Crystal Orange Web)

    Programao Extrema (XP) Outras Metodologias Rational Unified Process (RUP) Microsoft Solution Framework

    (MSF Metodologias geis Feature Driven Development

    (FDD) Enterprise Unified Process (EUP) Scrum Crystal (Crystal Clear, Crystal

    Orange, Crystal Orange Web) Programao Extrema (XP)

  • Referncias

    PRESSMAN, ROGER.S.ENGENHARIA DE SOFTWARE. SO PAULO: MAKRON, 2006

    JURAN, J. GRYNA, FRANK. CONTROLE DA QUALIDADE: COMPONENTES BSICOS DA FUNO QUALIDADE - V.2 - SO PAULO : MAKRON, 1991.

    PFLEEGER, SHARI L. ENGENHARIA DE SOFTWARE: TEIORIA E PRTICA. 2.ED.SO PAULO: PRENTICE HALL, 2004.

    FAIRLEY, RICHARD. SOFTWARE ENGINEERING CONCEPTS. SINGAPORE: MCGRAW-HILL, 1985.

    http://www.er.les.inf.puc-rio.br/

    http://www.sei.cmu.edu/ e http://www.sei.cmu.edu/pub/documents/92.reports/pdf/tr34.92.pdf

    http://engenhariadesoftware.blogspot.com/2007/02/o-que-software.html

  • Tarefa

    Para cada um dos seguinte documento, indique a fase do ciclo de vida do software - modelo cascata - em que so desenvolvidos: manual final do usurio, projeto arquitetural, plano de SQA, especificao de mdulos, cdigo fonte, seqncia de trabalho, plano de teste, manual de usurio preliminar, projeto detalhado, estimativas de custo, plano de projeto, relatrio de teste, documentaes.