APS Processo Desenvolvimento

download APS Processo Desenvolvimento

of 27

Transcript of APS Processo Desenvolvimento

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    1

    PrincPrincpios de Anpios de Anlise lise

    e Projeto de Sistemase Projeto de Sistemas

    com UMLcom UML22 ediedioo

    Eduardo Bezerra

    Editora Campus/Elsevier

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    2

    Captulo 2

    Processo de Desenvolvimento de Software

    Quanto mais livros voc leu (ou escreveu), mais as aulas voc assistiu (ou lecionou), mais linguagens de programao voc aprendeu (ou projetou),

    mais software OO voc examinou (ou produziu), mais documentos derequisitos voc tentou decifrar (ou tornou decifrvel), mais padres de projeto voc aprendeu (ou catalogou), mais reunies voc assistiu (ou

    conduziu), mais colegas de trabalho talentosos voc teve (ou contratou), mais projetos voc ajudou (ou gerenciou), tanto mais voc estar equipado

    para lidar com um novo desenvolvimento. - Bertrand Meyer

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    3

    Software is hard

    Porcentagem de projetos que terminam dentro do prazo estimado: 10%

    Porcentagem de projetos que so descontinuados antes de chegarem ao fim: 25%

    Porcentagem de projetos acima do custo esperado: 60% Atraso mdio nos projetos: um ano.

    Fonte: Chaos Report (1994)Fonte: Chaos Report (1994)

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    4

    Processo de desenvolvimento

    Tentativas de lidar com a complexidade e de minimizar os problemas envolvidos no desenvolvimento de software envolvem a definio de processos de desenvolvimento de software.

    Um processo de desenvolvimento de software (PDS)compreende todas as atividades necessrias para definir,desenvolver, testar e manter um produto de software.

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    5

    Processo de desenvolvimento

    Exemplos de processos de desenvolvimento existentes: ICONIX RUP EUP XP OPEN

    Alguns objetivos de um processo de desenvolvimento so: Definir quais as atividades a serem executadas ao longo do projeto; Definir quando, como e por quem tais atividades sero executadas; Prover pontos de controle para verificar o andamento do

    desenvolvimento; Padronizar a forma de desenvolver software em uma organizao.

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    6

    2.1 Atividades tpicas de um PDS2.2 O componente humano em um PDS

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    7

    Foco do livro

    Atividades tpicas de um PDS

    Levantamento de requisitos Anlise de requisitos Projeto Implementao Testes Implantao

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    8

    Participantes do processo

    Gerentes de projeto Analistas Projetistas Arquitetos de software Programadores Clientes Avaliadores de qualidade

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    9

    Participao do usurio

    A participao do usurio durante o desenvolvimento de um sistema extremamente importante.

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    10

    2.3 Modelos de ciclo de vida

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    11

    Modelo de ciclo de vida

    Um ciclo de vida corresponde a um encadeamento especfico das fases para construo de um sistema.

    Dois modelos de ciclo de vida: modelo em cascata modelo iterativo e incremental.

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    12

    Modelo em cascata

    Esse modelo apresenta uma tendncia para a progresso seqencial entre uma fase e a seguinte.

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    13

    Modelo em cascata

    Projetos reais raramente seguem um fluxo seqencial. Assume que possvel declarar detalhadamente todos os

    requisitos antes do incio das demais fases do desenvolvimento. propagao de erros pelas as fases do processo.

    Uma verso de produo do sistema no estar pronta atque o ciclo do projeto de desenvolvimento chegue ao final.

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    14

    Modelo de iterativo e incremental

    Divide o desenvolvimento de um produto de software em ciclos.

    Em cada ciclo de desenvolvimento, podem ser identificadas as fases de anlise, projeto, implementao e testes.

    Cada ciclo considera um subconjunto de requisitos. Esta caracterstica contrasta com a abordagem clssica, na

    qual as fases so realizadas uma nica vez.

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    15

    Modelo iterativo e incremental

    Desenvolvimento em mini-cascatas.

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    16

    Modelo iterativo e incremental

    Iterativo: o sistema de software desenvolvido em vrios passos similares.

    Incremental: Em cada passo, o sistema estendido com mais funcionalidades.

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    17

    Modelo iterativo e incremental vantagense desvantagens

    Incentiva a participao do usurio. Riscos do desenvolvimento podem ser mais bem

    gerenciados. Um risco de projeto a possibilidade de ocorrncia de algum

    evento que cause prejuzo ao processo de desenvolvimento, juntamente com as conseqncias desse prejuzo.

    Influncias: custos do projeto,cronograma, qualidade do produto, satisfao do cliente, etc.

    Mais difcil de gerenciar

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    18

    Ataque os riscos

    Se voc no atacar os riscos [do projeto] ativamente, ento estes iro ativamente atacar voc. (Tom Gilb). A maioria dos PDS que seguem o modelo iterativo e incremental aconselha

    que as partes mais arriscadas sejam consideradas inicialmente.

    Riscos no gerenciados

    PDS

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    19

    2.4 Utilizao da UML no modeloiterativo e incremental

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    20

    UML no modelo iterativo e incremental

    A UML independente do processo de desenvolvimento. Vrios processos podem utilizar a UML para modelagem de

    um sistema OO. Os artefatos de software construdos atravs da UML

    evoluem medida que o as iteraes so realizadas. A cada iterao, novos detalhes so adicionados a esses artefatos. Alm disso, a construo de um artefato fornece informaes para adicionar

    detalhes a outros.

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    21

    2.5 Prototipagem

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    22

    Prototipagem

    A prototipagem uma tcnica aplicada quando: h dificuldades no entendimento dos requisitos do sistema h requisitos que precisam ser mais bem entendidos.

    A construo de prottipos utiliza ambientes com facilidades para a construo da interface grfica.

    Procedimento geral da prototipagem: Aps o LR, um prottipo construdo para ser usado na validao. Usurios fazem crticas... O prottipo ento corrigido ou refinado O processo de reviso e refinamento continua at que o prottipo seja

    aceito. Aps a aceitao, o prottipo descartado ou utilizado como uma

    verso inicial do sistema.

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    23

    Prototipagem

    Note que a prototipagem NO um substituto construo de modelos do sistema. A prototipagem uma tcnica complementar construo dos

    modelos do sistema. Mesmo com o uso de prottipos, os modelos do sistema devem

    ser construdos. Os erros detectados na validao do prottipo devem ser

    utilizados para modificar e refinar os modelos do sistema.

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    24

    2.6 Ferramentas de suporte

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    25

    Ferramentas de suporte

    O desenvolvimento de um software pode ser facilitado atravs do uso de ferramentas que auxiliam: na construo de modelos, na integrao do trabalho de cada membro da equipe, no gerenciamento do andamento do desenvolvimento, etc.

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    26

    Ferramentas de suporte

    H diversos sistemas de software que so utilizados para dar suporte ao desenvolvimento de outros sistemas.

    Um tipo bastante conhecido de ferramenta de suporte so as ferramentas CASE. CASE: Computer Aided Software Engineering

    Alm das ferramentas CASE, outras ferramentas importantes so as que fornecem suporte ao gerenciamento. desenvolver cronogramas de tarefas, definir alocaes de verbas, monitorar o progresso e os gastos, gerar relatrios de gerenciamento, etc.

  • Princpios de Anlise e Projeto de Sistemas com UML - 2 edio

    27

    Ferramentas de suporte

    Criao e manuteno da consistncia entre estes diagramas Round-trip engineering Depurao de cdigo fonte Relatrios de testes Testes automticos Gerenciamento de verses Verificao de desempenho Verificao de erros em tempo de execuo Gerenciamento de mudanas nos requisitos Prototipagem