Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 02
Ciclo de Vida de um Produto de Software Processos de Software Modelos de Ciclo de Vida
Comprar
Quando se encontra um produto que atende aos requisitos desejados, uma boa soluo. Nesse caso, no h processo de desenvolvimento, mas existiro atividades de:
Aquisio Implantao Adaptao Integrao com outros sistemas
Dependendo dos casos, esse conjunto de processos pode ser mais sofisticado e caro Caso se utilize Software Livre, o custo pode ser reduzido, mas tome cuidado com as customizaes
Slide 2
Desenvolver
Se no for este o caso e precisar desenvolver internamente ou externamente (fbricas de software), preciso gerenciar o desenvolvimento interno ou acompanhar o desenvolvimento externo. Entretanto assume-se os riscos envolvidos no desenvolvimento de software.
Slide 3
O que necessrio para garantir o desenvolvimento no prazo, custo, qualidade e escopo desejados?
Slide 4
Pessoa fsica ou jurdica que contrata a execuo de um projeto, u um seu representante autorizado, com poder de aceitao de propostas e produtos. Pessoa que efetivamente usar um produto. Pode ser: cliente, funcionrio, departamento de marketing...
Usurio
Slide 5
concebido, a partir de uma necessidade especificado construdo, tornando-se um conjunto de itens Entra em operao, sujeito a um processo de negcio Sofre manutenes e acrscimos retirado de operao, ao final de sua vida til
Slide 6
Slide 7
Ms 01: Concepo Ms 02-03: Elaborao Ms 04-05: Construo Ms 06: Transio Ms 07: Realizao do Evento Ms 08: Retirada do sistema (fim do ciclo de vida)
Slide 8
Ms 01-03: Concepo Ms 04-09: Elaborao Ms 10-15: Construo Ms 16: Transio (verso 1.0) Ms 17: Operao Assistida (verso 1.0) Ms 19: Pacote de correes (verso 1.1) Ms 27: Pacote de correes (verso 1.2) Ms 36: Novo mdulo (verso 2.0) Ms 56: Novo Mdulo (verso 3.0) Ms 78: Retirada do sistema (fim do ciclo de vida)
Slide 9
Processo
Conjunto de passos parcialmente ordenados, constitudos por atividades, mtodos, prticas e transformaes, usados para atingir uma meta [Paula Filho, 2002]. Conjunto de atividades executadas para transformar um conjunto de requisitos de cliente em um sistema [Scott, 2003]. Os processos so o elo entre os mtodos e as ferramentas, definindo a ordem em que eles sero usados [Pressman, 2002]
Slide 10
Descrever quem est fazendo o que, como e quando. Prover uma diretriz para a organizao e sequncia das atividades da equipe. Especificar quais artefatos devem ser desenvolvidos e em quais momentos. Direcionar as tarefas de desenvolvedores individuais e de toda a equipe. Oferecer critrios para monitorar e medir os produtos e atividades do projeto.
Slide 11
Slide 12
O processo o adesivo que mantm unidas as camadas, definindo uma estrutura para um conjunto de reas chave. Quando o processo envolve a elaborao de um produto de software, pode ser referido como ciclo de vida do software, descrevendo a vida do produto desde a sua concepo at a implementao, entrega, utilizao e manuteno. Alguns autores destacam a sutileza entre processo e modelo de processo...
Slide 13
Prescrevem as suas principais atividades. Utilizam recursos, est sujeito a um conjunto de restries (como um cronograma) e gera produtos intermedirios e finais. Podem ser compostos de subprocessos de algum modo relacionados. Pode ser definido em uma hierarquia de processos. Cada atividade de um processo tem critrios de entrada e sada, de modo a definir o incio e fim do processo. Podem ser aplicados controles a atividades, recursos ou produtos de um processo.
Slide 14
Estabelece uma estrutura genrica para as principais atividades, entradas, sadas e restries de um projeto. O processo especfico escolhido com base na natureza do projeto, dos mtodos e ferramentas a ser utilizadas e nos controles e produtos requeridos. Ciclo de desenvolvimento genrico:
Codifica-remenda Cascata Sashimi Prototipagem Evolutiva Entrega por Estgios Entrega Evolutiva (Evolucionrio) Espiral Iterativo e Incremental Desenvolvimento orientado por componentes Desenvolvimento orientado por servios Desenvolvimento orientado por processos de negcio (BPM) Dirigido por Ferramenta (CASE)
Slide 16
Codifica-Remenda (Catico)
Slide 17
Codifica-Remenda (Catico)
Partindo apenas de uma especificao (ou nem isso), os desenvolvedores comeam imediatamente a codificar, remendando medida que os erros vo sendo descobertos provavelmente o mais utilizado, pois no exige sofisticao tcnica ou gerencial. Facilidade. Desvantagens:
no utiliza um processo definido modelo de alto risco no permite assumir compromissos confiveis
Slide 18
Cascata
Slide 19
Cascata
Fortemente documental Fases bem definidas e bem delimitadas Interao reduzida Validao e verificao apenas no final do processo
O modelo cascata determina que cada estgio deve estar concludo antes do prximo estgio comear Vantagens:
Slide 20
Cascata
Desvantagens:
Projetos reais raramente seguem o fluxo sequencial. Modificaes podem gerar confuso. Exige que o cliente estabelea previa e explicitamente os requisitos. Baixa visibilidade para o cliente. Uma verso executvel do programa s estar disponvel ao final do projeto. Processo rgido e burocrtico (nem todos os detalhes de um projeto podem ser previstos para a fase de projeto) Os riscos aumentam no final do projeto, uma vez que a correo de erros nesta etapa muito grande Em grandes projetos, cada fase pode levar muito tempo
Slide 21
Sashimi
Slide 22
Sashimi
Variante do modelo Cascata que permite superposio entre fases e a realimentao de correes. Vantagens:
existncia de pontos de controle processo mais flexvel, permitindo sobreposio diminuio dos riscos no final do projeto dificuldade em gerenciar projetos baseados nesse modelo baixa visibilidade para o cliente
Desvantagens:
Slide 23
Prototipagem Evolutiva
Slide 24
Prototipagem Evolutiva
Slide 25
Prototipagem Evolutiva
Variante do modelo em Espiral, onde a espiral utilizada para gerar uma srie de verses (prottipos) ao invs do produto completo Vantagens:
permite que os requisitos sejam definidos progressivamente apresenta alta flexibilidade e visibilidade para os clientes diminuio dos riscos
O desenvolvedor faz concesses na implementao a fim de conseguir rapidamente um prottipo executvel o desenho deve ser de excelente qualidade, para que a estrutura do produto no se degenere ao longo dos prottipos
Slide 26
Desvantagens:
Slide 27
Variante do modelo de Cascata. Realiza a entrega de liberaes parciais do produto ao cliente Vantagens:
aumenta a visibilidade do projeto mesmas do modelo em Cascata o desenho deve ser de excelente qualidade, com mdulos bem especificados para realizao das liberaes
Desvantagens:
Slide 28
Slide 29
uma combinao dos modelos de Cascata e Prototipagem Evolutiva. Permite que, em pontos bem definidos, os usurios possam avaliar partes do produto e fornecer feedback quanto s decises tomadas Vantagens:
minimizao dos riscos apresenta alta flexibilidade e visibilidade para os clientes facilita o acompanhamento do progresso de cada projeto tanto por gerentes quanto pelo cliente
Desvantagens:
deve produzir uma arquitetura de produto robusta que se mantenha ntegra ao longo dos ciclos de liberaes parciais
Slide 30
Espiral
um modelo iterativo Cada loop na espiral representa uma fase do processo de software. O loop mais interno pode estar relacionado viabilidade do sistema; o prximo loop, definio de requisitos; o prximo loop, ao projeto do sistema, e assim por diante. O foco est na eliminao dos riscos Cada loop na espiral est dividido em quatro setores:
Planejamento (definio de objetivos, alternativas e restries) Avaliao e reduo de riscos Engenharia, desenvolvimento e validao Avaliao e plano da prxima fase
Exige competncia gerencial inclusive para avaliar riscos O produto desenvolvido em uma srie de iteraes. A equipe pode trabalhar em todo o ciclo de vida.
Slide 31
Slide 32
Espiral
Vantagens:
Liberaes de verses mais frequentes (maior visibilidade para o cliente) Feedback maior do cliente, detectando os problemas mais rpido Atividades de manuteno so usadas para identificar problemas e definir os requisitos das prximas liberaes Riscos diminuem consideravelmente A escala e complexidade do trabalho podem ser descobertas mais cedo Mudanas de tecnologia podem ser incorporadas mais cedo Maior controle do projeto Requer gesto sofisticada para ser sempre visvel e confivel
Slide 33
Desvantagens:
Iterativo e Incremental
Os clientes no precisam esperar at a entrega do sistema inteiro para se beneficiar dele. Podem usar os incrementos iniciais e ganhar experincia, fornecer feedback. Utiliza a regra de Pareto: os servios de prioridade mais alta so entregues primeiro, e os incrementos posteriores so integrados a eles. Pode ser do tipo time boxed (dirigido por prazo), ou seja, o produto aquilo que se consegue fazer dentro de determinado prazo (2 a 4 semanas - Sprint).
Slide 34
Slide 35
Iterativo e Incremental
Slide 36
Iterativo e Incremental
Slide 37
Iterativo e Incremental
Vantagens:
Liberaes de verses mais frequentes (maior visibilidade para o cliente) Feedback maior do cliente, detectando os problemas mais rpido Riscos diminuem consideravelmente A escala e complexidade do trabalho podem ser descobertas mais cedo Mudanas de tecnologia podem ser incorporadas mais cedo Entrega-se valor e obtm feedback mais rpido o produto das iteraes apenas um resultado parcial, mais iteraes sero necessrias para concluir o produto Maior refatorao e retrabalho (arquitetura emergente)
Slide 38
Desvantagens:
Esta abordagem baseia-se na existncia de um nmero significativo de componentes reusveis. O processo de desenvolvimento do sistema enfoca a integrao desses componentes, e vez de desenvolv-lo a partir do zero. Outro modelo de ciclo de vida pode ser utilizado em conjunto nesta abordagem
Slide 39
Essencialmente, as arquiteturas orientadas a servios (SOA Service-Oriented Architectures) so um caminho para o desenvolvimento de sistemas distribudos nos quais os componentes desses sistemas so servios dedicados. Esta abordagem utiliza tcnicas de descoberta, criao, reutilizao e gesto de servios (Governana de Servios). Entretanto, nem tudo um servio (exige avaliao criteriosa) Outro modelo de ciclo de vida pode ser utilizado em conjunto nesta abordagem
Slide 40
O desenvolvimento orientado por processos de negcio procura estreitar o lao entre a rea de negcio e TI, utilizando uma linguagem de notao entendia por ambas as partes (BPMN) Esta abordagem utiliza tcnicas de mapeamento de processos (AS-IS e TO-BE), simulao de processos, alm da utilizao de servios e formulrios relacionados ao processo. Exige menos interveno da rea de TI, pois as ferramentas atuais so mais acessveis (BPMS) Normalmente se utiliza uma metodologia prpria para o desenvolvimento
Slide 41
desenvolvimento altamente padronizado devido imposio de padres de projeto, produtos tem maior qualidade facilidade de gerncia do processo
Desvantagens:
algumas ferramentas impem processos rgidos dependncia do fornecedor da ferramenta qualidade do produto depende da qualidade da ferramenta
Slide 42
A maturidade de uma organizao em engenharia de software mede seu grau de competncia tcnica e gerencial, para produzir software de boa qualidade, dentro do prazo e custos razoveis e previsveis. Para tornar uma organizao mais madura e capacitada, preciso melhorar a qualidade de seus processos. Um modelo de capacitao um paradigma de melhoria que serve de referncia para avaliar a maturidade dos processos de uma organizao. Ex: CMMI e MPS.BR
Slide 43
Sintomas de imaturidade
Os projetos no so definidos com clareza e atividades de desenvolvimento so disfaradas de manuteno. As pessoas no recebem o treinamento necessrio ou escolhem arbitrariamente. As ferramentas no ajudam realmente a resolver os problemas. Os procedimentos e padres, quando existem, so definidos e seguidos de forma burocrtica.
Slide 44
O processo atual deve ser conhecido. O processo deve ter forte apoio da alta administrao da organizao. Os gerentes dos projetos devem ter participao ativa no processo. Todos os que usaro o processo devem ser envolvidos. Investimentos significativos devem ser feitos. O processo deve ter estgios intermedirios bem definidos, em que so localizados os pontos de controle.
Slide 45
Prticas favorveis
Formao de grupos cuja atividade-fim a melhoria dos processos. Formao de estruturas organizacionais adequadas e estveis para criao, evoluo e suporte de processos. Desenvolvimento de recursos de apoio a processos (padres, modelos, exemplos, documentos de referncia, base de dados, etc.). Realizao de programas de treinamento, orientao. Estabelecimento de medies do grau de progresso. Estabelecimento de mecanismos de controle e verificao.
Slide 46
Conselho
Diretoria de Gesto
Diretoria de Infra-Estrutura
...
Superitendncia
Superintendncia
Gerncia de Processo
Equipe 01
Equipe 03
Equipe 02
Equipe 04
Slide 47
Modelo IDEAL
Modelo de programa de melhoria proposto pelo SEI em 1996. estruturado em cinco fases:
Initiating (iniciao - lanar bases para o programa): Motivao, patrocnio e infra-estrutura. Diagnosing (diagnstico - determinar onde se est e aonde se quer chegar): Aferio e recomendaes. Estabilishing (estabelecimento - planejar detalhes): Priorizao, abordagem e planejamento. Acting (aes - realizar planos): Criao da soluo, testespiloto, refinamento e implantao completa. Leveraging (aprendizado - aprender com a experincia): Anlise, validao e proposies de aes futuras.
Slide 48
Aula 02
Dvidas?