Faculdade Salesiana Dom Bosco de Piracicaba Curso Sistemas de Informação Análise e Projeto de Sistemas de Informação 2o. Semestre de 2014 Material criado por Prof. Edinelson Revisão e atualização: Prof. Gustavo Gonzalez Todos os projetos são desenvolvidos no prazo e custos estabelecidos? E a qualidade? Porque os projetos falham? Falhas de desenvolvimento 1. 2. 3. Uma breve estatística (fonte Chaos Report-Standish Group - 1995) O “Relatório do Caos” - The Chaos Report – do Standish Group, um marco na história de estudos de falhas de projetos de tecnologia da informação, de 1995 identificou: O escopo das falhas de projetos de software Os principais fatores que causam as falhas de projetos de software Os ingredientes – chave que pode reduzir as falhas de projetos de software Os principais resultados alcançados pelo estudo foram: 31.1% dos projetos seriam cancelados antes de estarem completados/terminados 52.7% dos projetos custariam 189% de suas estimativas originais 16.2% de todos os projetos de software são completados ontime and on-budget. Nas grandes empresas, somente 9% de todos os projetos de software são completados on-time and on-budget. Nas grandes empresas, apenas 42% dos produtos de software contêm as funcionalidades e funções originalmente propostas. O mais importante aspecto desta pesquisa foi descobrir porque os projetos falham. Para isto, o Standish Group entrevistou gerentes executivos de TI sobre suas opiniões sobre porque os projetos obtêm sucesso. As três maiores razões para o sucesso de um projetos são: o envolvimento do usuário, o suporte dos executivos e gestores e uma declaração/definição clara de requisitos. Há outros fatores de sucesso, mas com estes três elementos juntos, a chance de sucesso aumenta muito. Sem eles, a chande de falhar aumenta dramaticamente. Fatores de sucesso de um projeto Porque isto acontece? Ainda segundo o Chaos Report, a maioria dos projetos falham não por falta de recursos financeiros ou acesso à tecnologia, mas sim por falta de conhecimento em gestão de projetos. Para viabilizar o atendimento a estas necessidades em relação ao desenvolvimento e manutenção de sistemas de informação, surgem as metodologias de desenvolvimento de sistemas (análise e projeto). Boas práticas de desenvolvimento Engenharia de Software Vantagens da aplicação de uma metodologia de Análise e Projeto de Sistemas Padronização de técnicas, ferramentas e métodos para que toda a organização "fale a mesma língua". Existe uma padronização da forma de trabalho em toda a organização, e uma adesão às técnicas, ferramentas e métodos propostos. Como conseqüência, torna-se mais fácil a integração interna entre as equipes e com outras áreas da empresa, além de facilitar a tarefa de manutenção dos sistemas em produção. O que é um projeto? O que é um projeto? Quais são os pilares que garantem um projeto executado com sucesso? Objetivo Metodologia Controle Mas, o que é um PROJETO? A palavra projeto tem origem no latim “projectu” que signfica “lançado para diante”. É uma tarefa ou conjunto de ações com objetivo comum. Diversos tipos de projetos: Projeto de lei, projetos de engenharia, paisagístico, etc. O que é um projeto? O trabalho em equipe é a essência do projeto. O gerente tem como meta controlar e garantir que a idéia principal seja cumprida e evitar distorções. Exemplo de projeto: Objetivo: publicar um livro Metodologia: editora fornece uma série de regras (fontes, espaçamentos...) Controle: enviar de tempos em tempos as novas páginas para ser verificado se as regras estão sendo cumpridas. Ciclo de Vida de um Projeto Três grandes fases: O início A maturidade A conclusão Sem o apoio de uma metodologia, a equipe de desenvolvimento terá sempre a tendência de cair nos mesmos erros de projetos anteriores. As fases inicial e final de qualquer projeto são repletos de dificuldades e situações delicadas. No início as atividades e os recursos não estão bem definidos No final também existirão situações críticas, pois quase sempre não é formalizado o final do projeto. As pessoas não sabem se o projeto realmente acabou. Pode-se considerar um projeto bem sucedido aquele que foi desenvolvido/realizado: • • • • No prazo e orçamento previstos; Dentro das especificações técnicas e qualidade previstas; Cliente/usuário satisfeito com o produto/serviço recebido; Produto/serviço obtido é usado em sua totalidade. O que é análise Análise A análise enfatiza a investigação do problema. O objetivo da análise é levar o analista a investigar e a descobrir. Para que esta etapa seja realizada em menos tempo e de forma mais precisa, deve-se ter um bom método de trabalho. Análise Pode-se dizer que o resultado da análise é o enunciado do problema, e que o projeto será a sua resolução. Problemas mal enunciados podem até ser resolvidos, mas a solução não corresponderá às expectativas. Análise A qualidade do processo de análise é importante porque um erro de concepção resolvido na fase de análise tem um custo; na fase de projeto tem um custo maior; na fase de implementação maior ainda, e na fase de implantação do sistema tem um custo relativamente astronômico. O que é Análise? Estuda um problema com o propósito de modelar um sistema para que ele possa ser entendido. Você deve conhecer todo o sistema o qual irá interagir. Projeto A fase de projeto enfatiza a proposta de uma solução que atenda os requisitos da análise. Então, se a análise é uma investigação para tentar descobrir o que o cliente quer, o projeto consiste em propor uma solução com base no conhecimento adquirido na análise. Por que fazer Análise e Projeto? Diagramas são figuras bonitas e o usuário quer o software executando corretamente! Por que perder o tempo projetando se podemos começar logo a programar? Por que fazer Análise? Gerenciamento da complexidade. Comunicação entre as pessoas envolvidas. Redução dos custos no desenvolvimento. Predição do comportamento futuro do sistema. Por que fazer Análise? Entender o que o usuário realmente quer ou necessita para resolver um problema. Diferenças entre análise e projeto Tem mais do que uma definição empregada. Primeira Alternativa: A análise modela o problema e consiste das atividades necessárias para entender o domínio do problema (o que deve ser feito). É uma atividade de investigação. O projeto modela a solução e consiste das atividades de criação (como pode ser feito) Diferenças entre análise e projeto Segunda Alternativa A análise consiste de todas as atividades feitas com ou para o conhecimento do cliente. A informação produzida é aquela que o cliente deve discutir e aprovar. O projeto inclui as atividades que resultam em informação que interessa apenas ao programador. Com essa definição, a análise invade um pouco o “lado da solução”, pois o cliente deve discutir alguns tipos de interações que ocorrerão na interface do usuário, etc. Os projetos de desenvolvimento de software apresentam um desafio diferente comparado à maioria dos outros tipos de projetos como projetos de engenharia ou manufatura. Nesses casos, quase sempre se conhece a priori todos os requisitos claramente. Além disso, projetos deste tipo possuem as seguintes características: Não são sujeitos a freqüentes mudanças; É bastante raro que, quando uma parte do produto apresente algum tipo funcionamento inadequado, ocorram efeitos colaterais em outros pontos do produto que sejam de difícil diagnóstico. Esse não é o caso na grande maioria dos projetos de software, embora muitos tentem aproximar a indústria de software à da construção civil ou às indústrias de manufatura. Hoje existem as "fábricas de software"! A crença tem sido de que a construção de software é similar à construção de prédios ou de bons produtos manufaturados. Na opinião do professor, infelizmente, nada poderia ser tão distante da realidade. Não é normal na construção civil ou nas indústrias tradicionais as especificações e design serem alteradas nas fases de construção ou produção. Quando isso ocorre os estouros de orçamento são, em geral, monstruosos. Essa "fluidez" nos requisitos é o maior desafio para o sucesso no gerenciamento de projetos de software. Gerentes que usam a construção ou a produção industrial como referência, freqüentemente subestimam os problemas que são causados para a equipe e também para os custos do projeto o congelamento prematuro dos requisitos. Projetos Executar projetos de informática é bastante peculiar Pela complexidade do empreendimento Pela constante dificuldade de visualizar claramente o produto que está sendo desenvolvido Pelas dificuldades de comunicação entre executor e usuário ou cliente Então: Desenvolver Sistemas é uma Arte ou Processo de Engenharia? Desenvolver Sistemas é uma Arte ou Processo de Engenharia? A quase totalidade do software produzido criada como objeto de arte é o construtor é um artista ou artesão criatividade é a grande ferramenta. O ideal seria que o software estivesse sendo desenvolvido como artefato de manufatura o construtor é um técnico e o rigor científico - as bases de seu desenvolvimento - sua principal ferramenta.