Baixe o app para aproveitar ainda mais
Prévia do material em texto
Engenharia de Software IEngenharia de Software I Professor Dr. Gilleanes Thorwald Professor Dr. Gilleanes Thorwald Araujo GuedesAraujo Guedes Engenharia de Software I Engenharia de Software I BibliografiaBibliografia SOMMERVILLE, Ian. Engenharia de Software SOMMERVILLE, Ian. Engenharia de Software –– 66ªª EdiEdiçção. Addison Wesley. 2003. ão. Addison Wesley. 2003. PAULA, Wilson de PPAULA, Wilson de Páádua. Engenharia de Software dua. Engenharia de Software –– 22ªª EdiEdiçção. Livros Tão. Livros Téécnicos e Cientcnicos e Cientííficos. 2003.ficos. 2003. PRESSMAN, Roger. PRESSMAN, Roger. Engenharia de SoftwareEngenharia de Software. . Makron Books. 1995.Makron Books. 1995. GUEDES, Gilleanes. UML 2 GUEDES, Gilleanes. UML 2 –– Uma Abordagem Uma Abordagem PrPráática. Novatec, 2009.tica. Novatec, 2009. GUEDES, Gilleanes. UML 2 GUEDES, Gilleanes. UML 2 –– Guia de Consulta Guia de Consulta RRáápida. Novatec, 2005.pida. Novatec, 2005. Engenharia de Software I Engenharia de Software I BibliografiaBibliografia BOOCH, Grady, RUMBAUGH, James, BOOCH, Grady, RUMBAUGH, James, JACOBSON, Ivar. UML Guia do UsuJACOBSON, Ivar. UML Guia do Usuáário rio –– 1010ªª EdiEdiçção. Campus. 2000.ão. Campus. 2000. BEZERRA, Eduardo. PrincBEZERRA, Eduardo. Princíípios de Anpios de Anáálise e Projeto lise e Projeto de Sistemas com UML. Campus. 2002de Sistemas com UML. Campus. 2002 BENNETT, Simon, SKELTON, John, LUNN, Ken. BENNETT, Simon, SKELTON, John, LUNN, Ken. UML. SchaumUML. Schaum’’s Outlines. 2001s Outlines. 2001 MELO, Ana Cristina. Desenvolvendo AplicaMELO, Ana Cristina. Desenvolvendo Aplicaçções ões com UML. Brasport. 2002com UML. Brasport. 2002 Engenharia de Software I Engenharia de Software I BibliografiaBibliografia MATOS, A. V. de. Unified Modeling Language MATOS, A. V. de. Unified Modeling Language UML PrUML Práático e Descomplicado. tico e Descomplicado. ÉÉrica. 2002.rica. 2002. FURLAN, J. D. Modelagem de objetos atravFURLAN, J. D. Modelagem de objetos atravéés da s da UML. São Paulo: Makron Books, 1998.UML. São Paulo: Makron Books, 1998. SILVA, D. M. da. UML SILVA, D. M. da. UML –– Guia de Consulta RGuia de Consulta Ráápida. pida. NOVATEC. 2001.NOVATEC. 2001. ALTER, S. Information Systems ALTER, S. Information Systems –– Fourth Edition. Fourth Edition. Pearson Education. 2002.Pearson Education. 2002. Engenharia de Software I Engenharia de Software I -- EmentaEmenta PrincPrincíípios da Engenharia de Software. pios da Engenharia de Software. Processo de desenvolvimento de software. Processo de desenvolvimento de software. Projeto de Software. EspecificaProjeto de Software. Especificaçção de ão de requisitos. Trequisitos. Téécnicas de planejamento e cnicas de planejamento e gerenciamento de software. Verificagerenciamento de software. Verificaçção, ão, teste e validateste e validaçção. Manutenão. Manutençção. Qualidade ão. Qualidade de software. Padrões de projeto. de software. Padrões de projeto. Engenharia Engenharia reversa. Reengenharia. Engenharia de reversa. Reengenharia. Engenharia de Software Apoiada por Computador.Software Apoiada por Computador. Engenharia de Software I Engenharia de Software I -- ObjetivosObjetivos Objetivo Geral:Objetivo Geral: Introduzir o aluno nos conceitos da Engenharia de Introduzir o aluno nos conceitos da Engenharia de Software, permitindo que este seja capaz de Software, permitindo que este seja capaz de elaborar e executar projetos de software, atravelaborar e executar projetos de software, atravéés s de tde téécnicas e linguagens de modelagem atuais.cnicas e linguagens de modelagem atuais. Objetivos EspecObjetivos Especííficos:ficos: Compreender as etapas da Engenharia de Compreender as etapas da Engenharia de Software;Software; Dominar ferramentas CASE e linguagens de Dominar ferramentas CASE e linguagens de modelagem, especificamente UML;modelagem, especificamente UML; Elaborar e modelar projetos de software;Elaborar e modelar projetos de software; Engenharia de Software I Engenharia de Software I Procedimentos de AvaliaProcedimentos de Avaliaççãoão Provas teProvas teóóricas sobre a matricas sobre a matééria vista (no ria vista (no mmíínimo 1, provavelmente 2) com peso 10;nimo 1, provavelmente 2) com peso 10; Trabalho PrTrabalho Práático onde um software sertico onde um software seráá analisado e projetado utilizandoanalisado e projetado utilizando--se uma se uma ferramenta CASE e a linguagem de ferramenta CASE e a linguagem de modelagem UML, com peso 20.modelagem UML, com peso 20. MMéédia composta pela soma das notas e sua dia composta pela soma das notas e sua divisão pelo total de avaliadivisão pelo total de avaliaçções ões mais um.mais um. SoftwareSoftware ““Conjunto de instruConjunto de instruçções que quando ões que quando executadas produzem a funexecutadas produzem a funçção e o ão e o desempenho desejadosdesempenho desejados””;; Conceitos de Engenharia de Conceitos de Engenharia de SoftwareSoftware ““O estabelecimento e uso de sO estabelecimento e uso de sóólidos lidos princprincíípios de engenharia para que se possa pios de engenharia para que se possa obter economicamente um software que seja obter economicamente um software que seja conficonfiáável e que funcione eficientementevel e que funcione eficientemente”” ““Estudo ou aplicaEstudo ou aplicaçção de abordagens ão de abordagens sistemsistemááticas, econômicas e quantificticas, econômicas e quantificááveis veis para o desenvolvimento, operapara o desenvolvimento, operaçção e ão e manutenmanutençção de software de qualidadeão de software de qualidade”” Objetivos da Engenharia de Objetivos da Engenharia de SoftwareSoftware Qualidade de Software;Qualidade de Software; DocumentaDocumentaçção de Software;ão de Software; Produtividade no desenvolvimento, Produtividade no desenvolvimento, operaoperaçção e manutenão e manutençção de software;ão de software; Manter o controle de desenvolvimento Manter o controle de desenvolvimento dentro de custos, prazos e ndentro de custos, prazos e nííveis de veis de qualidade desejados.qualidade desejados. O Impacto do SoftwareO Impacto do Software Atualmente imprescindivel para qualquer Atualmente imprescindivel para qualquer pessoa e para a maioria das pessoas, o pessoa e para a maioria das pessoas, o software superou hsoftware superou háá muito o hardware em muito o hardware em importância;importância; Hoje em dia, o software atua em Hoje em dia, o software atua em praticamente todas as praticamente todas as ááreas, sendo usado reas, sendo usado para auxiliar o ensino, as comunicapara auxiliar o ensino, as comunicaçções, as ões, as finanfinançças, enfim, praticamente todas as as, enfim, praticamente todas as ááreas reas onde os seres humanos atuam.onde os seres humanos atuam. O Impacto do SoftwareO Impacto do Software O surgimento do software foi um dos O surgimento do software foi um dos fatores que possibilitaram o surgimento da fatores que possibilitaram o surgimento da era da informaera da informaçção. Nos dias hoje, o ão. Nos dias hoje, o software e a forma como ele gere a software e a forma como ele gere a informainformaçção ão éé um dos principais fatores que um dos principais fatores que determinam o sucesso ou o fracasso de uma determinam o sucesso ou o fracasso de uma empresa.empresa. CaracterCaracteríísticas do Softwaresticas do Software O software O software éé projetado por engenharia não projetado por engenharia não manufaturado no sentido clmanufaturado no sentido cláássico;ssico; O software não se desgasta como o O software não se desgasta como o hardware;hardware; CaracterCaracteríísticas do Softwaresticas do Software Curva do HardwareCurva do Hardware CaracterCaracteríísticas do Softwaresticas do Software Curva Idealizada do SoftwareCurva Idealizada do Software CaracterCaracteríísticas do Softwaresticas do Software Curva RealCurva Real Componentes de SoftwareComponentesde Software MMóódulos fonte ou mdulos fonte ou móódulos dulos executexecutááveis/interpretados;veis/interpretados; Reusabilidade;Reusabilidade; A Crise do Software A Crise do Software -- ProblemasProblemas As estimativas de prazo e de custo As estimativas de prazo e de custo freqfreqüüentemente são imprecisas. Sem dados entemente são imprecisas. Sem dados histhistóóricos bem documentados não hricos bem documentados não háá como como determinar os prazos e os custos com determinar os prazos e os custos com precisão.precisão. A produtividade das pessoas da A produtividade das pessoas da áárea de rea de software não tem acompanhado a demanda software não tem acompanhado a demanda por seus servipor seus serviçços;os; A Crise do Software A Crise do Software -- ProblemasProblemas A qualidade de software A qualidade de software ààs vezes s vezes éé menos menos que adequada. A insatisfaque adequada. A insatisfaçção do cliente com ão do cliente com o sistema o sistema ““concluconcluíídodo”” ocorre com ocorre com freqfreqüüência. Os projetos são levados a efeito ência. Os projetos são levados a efeito apenas com um vago indapenas com um vago indíício das exigências cio das exigências do cliente. A comunicado cliente. A comunicaçção entre o cliente e ão entre o cliente e o desenvolvedor normalmente o desenvolvedor normalmente éé fraca.fraca. A Crise do Software A Crise do Software -- ProblemasProblemas A qualidade do software freqA qualidade do software freqüüentemente entemente éé suspeita. Ssuspeita. Sóó recentemente comerecentemente começçamos a amos a entender a importância dos testes de entender a importância dos testes de software sistemsoftware sistemááticos e tecnicamente ticos e tecnicamente completos.completos. O software existente pode ser muito difO software existente pode ser muito difíícil cil para manter. A tarefa de manutenpara manter. A tarefa de manutençção de ão de software software éé responsresponsáável por 40 a 60% do vel por 40 a 60% do custo total do projetocusto total do projeto Mitos do SoftwareMitos do Software Mitos AdministrativosMitos Administrativos Gerentes sob pressão para manter Gerentes sob pressão para manter ororççamentos, prazos e qualidade.amentos, prazos e qualidade. Mito: Existência de um manual de padrões e Mito: Existência de um manual de padrões e procedimentos.procedimentos. Realidade: Ele Realidade: Ele éé usado? Existe usado? Existe conhecimento de sua existência? Ele estconhecimento de sua existência? Ele estáá atualizado? atualizado? ÉÉ completo?completo? Mitos do SoftwareMitos do Software Mitos AdministrativosMitos Administrativos Mito: Ferramentas de Hardware de Mito: Ferramentas de Hardware de úúltima ltima gerageraçção.ão. Realidade: Hardware sRealidade: Hardware sóó não adianta, hnão adianta, háá a a necessidade de ferramentas de engenharia necessidade de ferramentas de engenharia de software auxiliada por computador de software auxiliada por computador (CASE (CASE –– ComputerComputer--Aided Software Aided Software Engineering).Engineering). Mitos do SoftwareMitos do Software Mitos do ClienteMitos do Cliente Mito: Em caso de atraso, contratamMito: Em caso de atraso, contratam--se mais se mais programadores (horda mongol).programadores (horda mongol). Realidade: Acrescentar pessoas a um projeto Realidade: Acrescentar pessoas a um projeto atrasado tornaatrasado torna--o mais atrasado ainda.o mais atrasado ainda. Mitos do Cliente: Falsas expectativas e Mitos do Cliente: Falsas expectativas e insatisfainsatisfaçção.ão. Mitos do SoftwareMitos do Software Mitos do ClienteMitos do Cliente Mito: Uma declaraMito: Uma declaraçção geral ão geral éé suficiente para suficiente para iniciar o desenvolvimento.iniciar o desenvolvimento. Realidade: DefiniRealidade: Definiçções errôneas são a principal ões errôneas são a principal causa do fracasso. Descricausa do fracasso. Descriçções formais e detalhadas ões formais e detalhadas do domdo domíínio da informanio da informaçção, funão, funçção, desempenho, ão, desempenho, interfaces, restriinterfaces, restriçções de projeto e critões de projeto e critéérios de rios de validavalidaçção são fundamentais. Isto são são fundamentais. Isto sóó pode ser pode ser determinado depois de cuidadosa comunicadeterminado depois de cuidadosa comunicaçção.ão. Mitos do SoftwareMitos do Software Mitos do ClienteMitos do Cliente Mito: O software Mito: O software éé flexflexíível vel ààs mudans mudançças do as do projeto.projeto. Realidade: O impacto que a mudanRealidade: O impacto que a mudançça a causarcausaráá iriráá depender do tempo em que ela depender do tempo em que ela ocorrerocorreráá. Se for no in. Se for no iníício, o impacto cio, o impacto éé relativamente pequeno (5%), caso contrrelativamente pequeno (5%), caso contráário rio o aumento do custo o aumento do custo éé muito grande.muito grande. Mitos do SoftwareMitos do Software Mitos do ProfissionalMitos do Profissional Mitos do profissional:Mitos do profissional: Mito: Nosso trabalho acaba ao colocar o Mito: Nosso trabalho acaba ao colocar o programa em funcionamento.programa em funcionamento. Realidade: 50 a 70% de todo o esforRealidade: 50 a 70% de todo o esforçço sero seráá dispendido apdispendido apóós a entrega.s a entrega. Mito: Não se pode avaliar a qualidade do Mito: Não se pode avaliar a qualidade do software enquanto ele não estiver software enquanto ele não estiver funcionando.funcionando. Mitos do SoftwareMitos do Software Mitos do ProfissionalMitos do Profissional Realidade: PodeRealidade: Pode--se garantir a qualidade do se garantir a qualidade do software por meio de revisões tsoftware por meio de revisões téécnicas cnicas formais.formais. Mito: A Mito: A úúnica coisa a ser entregue nica coisa a ser entregue éé o o software.software. Realidade: A documentaRealidade: A documentaçção garante um ão garante um desenvolvimento bem sucedido e fornece desenvolvimento bem sucedido e fornece um guia para a manutenum guia para a manutençção.ão. Ciclo de Vida do SistemaCiclo de Vida do Sistema Modelo em CascataModelo em Cascata Modelo em Cascata Modelo em Cascata -- DefeitosDefeitos Algumas atividades poderiam ser realizadas Algumas atividades poderiam ser realizadas em paralelo;em paralelo; Todos os requisitos precisam ser declarados Todos os requisitos precisam ser declarados detalhadamente no indetalhadamente no iníício da modelagem, o cio da modelagem, o que pode acarretar que um requisito mal que pode acarretar que um requisito mal especificado sespecificado sóó seja descoberto quando o seja descoberto quando o sistema for implantado;sistema for implantado; O sistema sO sistema sóó poderpoderáá ser implantado quando ser implantado quando todo o ciclo estiver conclutodo o ciclo estiver concluíído.do. Abordagem Incremental e Abordagem Incremental e IterativaIterativa Abordagem Incremental e Abordagem Incremental e IterativaIterativa ÉÉ desenvolvido em vdesenvolvido em váários passos similares rios passos similares (iterativo);(iterativo); Em cada passo o sistema ganha novas Em cada passo o sistema ganha novas funcionalidades (incremental);funcionalidades (incremental); Incentiva a participaIncentiva a participaçção do usuão do usuáário, o que rio, o que diminui a possibilidade de interpretadiminui a possibilidade de interpretaçções ões errôneas.errôneas. Abordagem Incremental e Abordagem Incremental e IterativaIterativa Divide o projeto de desenvolvimento em Divide o projeto de desenvolvimento em ciclos;ciclos; Cada ciclo considera um subCada ciclo considera um sub--conjunto de conjunto de requisitos;requisitos; No ciclo seguinte, um outro subNo ciclo seguinte, um outro sub--conjunto de conjunto de requisitos requisitos éé considerado, produzindo um considerado, produzindo um novo incremento do sistema, contendo novo incrementodo sistema, contendo extensões e refinamentos sobre o sistema extensões e refinamentos sobre o sistema anterior.anterior. Abordagem Incremental e Abordagem Incremental e IterativaIterativa Esta abordagem somente Esta abordagem somente éé posspossíível se vel se existir um mecanismo para dividir os existir um mecanismo para dividir os requisitos do sistema em partes, alocando requisitos do sistema em partes, alocando cada parte a um ciclo de desenvolvimento;cada parte a um ciclo de desenvolvimento; A alocaA alocaçção ão éé realizada em funrealizada em funçção da ão da prioridade (importância para o cliente) e o prioridade (importância para o cliente) e o risco do requisito (os requisitos que risco do requisito (os requisitos que apresentam risco maior);apresentam risco maior); Levantamento de RequisitosLevantamento de Requisitos Nesta etapa, o engenheiro de software busca Nesta etapa, o engenheiro de software busca compreender as necessidades do usucompreender as necessidades do usuáário e o rio e o que ele deseja que o sistema a ser que ele deseja que o sistema a ser desenvolvido realize.desenvolvido realize. Esta etapa Esta etapa éé realizada principalmente por realizada principalmente por meio de entrevistas com os clientes.meio de entrevistas com os clientes. Levantamento de RequisitosLevantamento de Requisitos Durante as entrevistas o engenheiro deve Durante as entrevistas o engenheiro deve auxiliar o cliente a definir quais auxiliar o cliente a definir quais informainformaçções deverão ser produzidas, quais ões deverão ser produzidas, quais informainformaçções deverão ser fornecidas e qual o ões deverão ser fornecidas e qual o nníível de desempenho exigido do software.vel de desempenho exigido do software. Principal problema: ComunicaPrincipal problema: Comunicaççãoão Levantamento de RequisitosLevantamento de Requisitos Na maioria das vezes os usuNa maioria das vezes os usuáários não têm rios não têm realmente certeza do que querem e não realmente certeza do que querem e não conseguem enxergar a real capacidade do conseguem enxergar a real capacidade do software. software. Em geral os engenheiros de software Em geral os engenheiros de software precisam sugerir muitas caracterprecisam sugerir muitas caracteríísticas e sticas e funfunçções do sistema que o cliente não sabia ões do sistema que o cliente não sabia como formular ou sequer havia imaginado. como formular ou sequer havia imaginado. Levantamento de RequisitosLevantamento de Requisitos Na realidade, muitas vezes, os engenheiros Na realidade, muitas vezes, os engenheiros de software precisam reestruturar a maneira de software precisam reestruturar a maneira como as informacomo as informaçções são geridas pela ões são geridas pela empresa e apresentar maneiras de combinempresa e apresentar maneiras de combináá-- las e apresentlas e apresentáá--las de forma a serem melhor las de forma a serem melhor aproveitadas.aproveitadas. Em muitos casos Em muitos casos éé realmente isso que os realmente isso que os usuusuáários esperam dos engenheiros de rios esperam dos engenheiros de software, em outros, no entanto, encontram software, em outros, no entanto, encontram fortes resistências.fortes resistências. AnAnáálise de Requisitoslise de Requisitos Examinar os requisitos enunciados pelos Examinar os requisitos enunciados pelos usuusuáários;rios; Verificar se estes foram especificados Verificar se estes foram especificados corretamente e se foram realmente corretamente e se foram realmente compreendidos;compreendidos; Determinar as reais necessidades do Determinar as reais necessidades do sistema;sistema; Como saber se as necessidades dos usuComo saber se as necessidades dos usuáários rios foram realmente compreendidas? foram realmente compreendidas? AnAnáálise de Requisitoslise de Requisitos O engenheiro de software deve determinar: O engenheiro de software deve determinar: Se as necessidades do usuSe as necessidades do usuáário foram rio foram entendidas corretamente;entendidas corretamente; Se algum tSe algum tóópico deixou de ser abordado; pico deixou de ser abordado; Se algum item foi especificado Se algum item foi especificado incorretamente;incorretamente; Se algum conceito precisa ser melhor Se algum conceito precisa ser melhor explicado. explicado. AnAnáálise de Requisitoslise de Requisitos Durante a AnDurante a Anáálise de Requisitos, uma lise de Requisitos, uma linguagem de modelagem auxilia a levantar linguagem de modelagem auxilia a levantar questões que não foram concebidas durante questões que não foram concebidas durante as entrevistas iniciais. as entrevistas iniciais. Estas devem ser sanadas o quanto antes, Estas devem ser sanadas o quanto antes, para que o software não tenha que ser para que o software não tenha que ser modificado quando seu desenvolvimento jmodificado quando seu desenvolvimento jáá estiver em andamento. estiver em andamento. PrototipaPrototipaççãoão TTéécnica bastante popular e de fcnica bastante popular e de fáácil cil aplicaaplicaçção;ão; Consiste em desenvolver rapidamente um Consiste em desenvolver rapidamente um ““esboesboççoo”” do que seria o sistema quando este do que seria o sistema quando este estivesse finalizado. estivesse finalizado. PrototipaPrototipaççãoão Um protUm protóótipo normalmente apresenta pouco tipo normalmente apresenta pouco mais do que a interface do sistema, mais do que a interface do sistema, ilustrando como as informailustrando como as informaçções seriam ões seriam inseridas e recuperadas no mesmo e inseridas e recuperadas no mesmo e apresentando alguns exemplos com dados apresentando alguns exemplos com dados fictfictíícios de quais seriam os resultados cios de quais seriam os resultados apresentados pelo software, principalmente apresentados pelo software, principalmente em forma de relatem forma de relatóórios. rios. PrototipaPrototipaççãoão A utilizaA utilizaçção de um protão de um protóótipo pode assim tipo pode assim evitar que, apevitar que, apóós meses ou mesmo anos de s meses ou mesmo anos de desenvolvimento, descubradesenvolvimento, descubra--se ao implantar se ao implantar o sistema, que o software não atende o sistema, que o software não atende completamente as necessidades do cliente completamente as necessidades do cliente devido principalmente a falhas de devido principalmente a falhas de comunicacomunicaçção.ão. PrototipaPrototipaççãoão Hoje em dia podeHoje em dia pode--se desenvolver protse desenvolver protóótipos tipos com relativa rapidez e facilidade por meio com relativa rapidez e facilidade por meio do uso de ferramentas RAD (Rapid do uso de ferramentas RAD (Rapid Application Development Application Development –– Desenvolvimento RDesenvolvimento Ráápido de Aplicapido de Aplicaçções), ões), como a fornecida pelo IDE NetBeans.como a fornecida pelo IDE NetBeans. PrototipaPrototipaççãoão As ferramentas RAD permitem a criaAs ferramentas RAD permitem a criaçção de ão de formulformuláários e a inserrios e a inserçção de componentes ão de componentes nos mesmos de uma forma muito simples, nos mesmos de uma forma muito simples, rráápida e fpida e fáácil, bastando ao usucil, bastando ao usuáário rio selecionar o componente (botões, caixas de selecionar o componente (botões, caixas de texto, labels, etc.), em uma barra de texto, labels, etc.), em uma barra de ferramentas e clicar com o mouse sobre o ferramentas e clicar com o mouse sobre o formulformuláário. rio. PrototipaPrototipaççãoão Estas ferramentas permitem ao usuEstas ferramentas permitem ao usuáário rio mudar a posimudar a posiçção dos componentes apão dos componentes apóós s terem sido colocados no formulterem sido colocados no formuláário rio simplesmente selecionando o componente simplesmente selecionando o componente com o mouse e o arrastando para a posicom o mouse e oarrastando para a posiçção ão desejada. desejada. PrototipaPrototipaççãoão Assim, depois de determinar quais as Assim, depois de determinar quais as modificamodificaçções necessões necessáárias ao sistema, aprias ao sistema, apóós o s o protprotóótipo ter sido apresentado aos usutipo ter sido apresentado aos usuáários, rios, podepode--se modificar a interface de acordo com se modificar a interface de acordo com as novas especificaas novas especificaçções e apresentões e apresentáá--lo lo novamente ao cliente de maneira bastante novamente ao cliente de maneira bastante rráápida.pida. PrototipaPrototipaççãoão A etapa de AnA etapa de Anáálise de Requisitos deve lise de Requisitos deve obrigatoriamente produzir um protobrigatoriamente produzir um protóótipo tipo para demonstrar como se apresentarpara demonstrar como se apresentaráá e e comportarcomportaráá o sistema em essência, bem o sistema em essência, bem como quais informacomo quais informaçções deverão ser ões deverão ser inseridas no sistema e que tipo de inseridas no sistema e que tipo de informainformaçções deverão ser fornecidas pelo ões deverão ser fornecidas pelo software. software. PrototipaPrototipaççãoão A maioria das dA maioria das dúúvidas e erros de vidas e erros de especificaespecificaçção podem ser sanadas, devido ao ão podem ser sanadas, devido ao fato de um protfato de um protóótipo demonstrar: tipo demonstrar: Como funcionarComo funcionaráá o sistema depois de o sistema depois de concluconcluíído;do; Como serComo seráá sua interface;sua interface; De que maneira os usuDe que maneira os usuáários interagirão com rios interagirão com o mesmo;o mesmo; Quais relatQuais relatóórios serão fornecidos;rios serão fornecidos; ProjetoProjeto Determina como o sistema funcionarDetermina como o sistema funcionaráá para para atender aos requisitos de acordo com os atender aos requisitos de acordo com os recursos tecnolrecursos tecnolóógicos existentes;gicos existentes; Considera os aspectos fConsidera os aspectos fíísicos e dependentes sicos e dependentes de implementade implementaçção;ão; AplicaAplicaçção de restrião de restriçções de tecnologia;ões de tecnologia; ProjetoProjeto Aspectos a serem considerados:Aspectos a serem considerados: Linguagem de ProgramaLinguagem de Programaçção a ser utilizada;ão a ser utilizada; Sistema Gerenciador de Banco de Dados;Sistema Gerenciador de Banco de Dados; Padrão de interface grPadrão de interface grááfica;fica; Arquitetura do sistema Arquitetura do sistema –– Principal fase de Principal fase de modelagem do software.modelagem do software. ImplementaImplementaççãoão CodificaCodificaçção do sistema propriamente dita;ão do sistema propriamente dita; TraduTraduçção da modelagem definida na fase de ão da modelagem definida na fase de projeto em linhas de cprojeto em linhas de cóódigo atravdigo atravéés de uma s de uma linguagem de programalinguagem de programaçção.ão. TestesTestes Etapa em que o software deve ser testado Etapa em que o software deve ser testado exaustivamente para determinar se estexaustivamente para determinar se estáá de de acordo com as especificaacordo com as especificaçções do usuões do usuáário e rio e se estse estáá funcionando corretamente;funcionando corretamente; Em sistemas dos quais dependem vidas Em sistemas dos quais dependem vidas humanas (controle de aeroportos, humanas (controle de aeroportos, monitoramonitoraçção de reatores nucleares), os testes ão de reatores nucleares), os testes ocupam de 3 a 5 vezes mais tempo que ocupam de 3 a 5 vezes mais tempo que todas as outras etapas.todas as outras etapas. O problema do programador O problema do programador testar o prtestar o próóprio softwareprio software A atividade de teste A atividade de teste éé o processo de o processo de executar um programa com a intenexecutar um programa com a intençção de ão de descobrir um erro;descobrir um erro; Um bom caso de teste Um bom caso de teste éé aquele que tem uma aquele que tem uma boa probabilidade de revelar um erro ainda boa probabilidade de revelar um erro ainda não descoberto;não descoberto; Um teste bem sucedido Um teste bem sucedido éé aquele que revela aquele que revela um erro ainda não descoberto;um erro ainda não descoberto; Grupo independente de teste.Grupo independente de teste. TestesTestes FunFunçções incorretas ou ausentes;ões incorretas ou ausentes; Erros de interface;Erros de interface; Erros nas estruturas de dados ou no acesso a Erros nas estruturas de dados ou no acesso a bancos de dados externos;bancos de dados externos; Consistências relacionais;Consistências relacionais; ValidaValidaçções;ões; Erros de desempenho;Erros de desempenho; Erros de iniciaErros de iniciaçção e tão e téérmino;rmino; Erros de SeguranErros de Segurançça;a; Testes Testes -- EstratEstratéégiagia Teste de Unidade Teste de Unidade –– Cada mCada móódulo dulo éé testado testado individualmente;individualmente; Teste de Integridade Teste de Integridade –– Se estSe estáá de acordo de acordo com o projeto e se os mcom o projeto e se os móódulos funcionam dulos funcionam unidos entre si;unidos entre si; Teste de ValidaTeste de Validaçção ão –– ComparaComparaçção do que o ão do que o software faz com o que foi requerido pelo software faz com o que foi requerido pelo cliente;cliente; Testes Testes -- EstratEstratéégiagia Teste de SistemaTeste de Sistema Teste de RecuperaTeste de Recuperaçção ão –– Testa a Testa a capacidade do sistema seguir capacidade do sistema seguir funcionando apfuncionando apóós uma falha;s uma falha; Teste de SeguranTeste de Segurançça a –– Verifica se os Verifica se os mecanismos de protemecanismos de proteçção realmente ão realmente protegerão o sistema;protegerão o sistema; Testes Testes -- EstratEstratéégiagia Teste de SistemaTeste de Sistema Teste de Stress Teste de Stress –– Executa o sistema de Executa o sistema de uma forma que exija recursos em uma forma que exija recursos em quantidade, freqquantidade, freqüüência ou volumes ência ou volumes anormais;anormais; Teste de Desempenho Teste de Desempenho –– Mede a Mede a utilizautilizaçção dos recursos pelo sistema para ão dos recursos pelo sistema para descobrir situadescobrir situaçções que levam ões que levam àà degradadegradaçção e possão e possíível falha.vel falha. Testes de Caixa BrancaTestes de Caixa Branca ConhecendoConhecendo--se o funcionamento interno do se o funcionamento interno do produto, testes são realizados para garantir produto, testes são realizados para garantir que as operaque as operaçções internas tenham um ões internas tenham um desempenho de acordo com as desempenho de acordo com as especificaespecificaçções;ões; Testes de Caixa BrancaTestes de Caixa Branca BaseiaBaseia--se em um minucioso exame dos se em um minucioso exame dos detalhes procedimentais. Os caminhos detalhes procedimentais. Os caminhos llóógicos atravgicos atravéés do software são testados s do software são testados pondo pondo àà prova conjuntos especprova conjuntos especííficos de ficos de condicondiçções ou laões ou laçços.os. Testes de Caixa PretaTestes de Caixa Preta ConhecendoConhecendo--se a funse a funçção especão especíífica que um fica que um determinado produto deve executar, testes determinado produto deve executar, testes podem ser realizados para demonstrar que podem ser realizados para demonstrar que cada funcada funçção ão éé totalmente operacional.totalmente operacional. ImplantaImplantaççãoão InstalaInstalaçção do software no ambiente do ão do software no ambiente do usuusuáário;rio; ElaboraElaboraçção dos manuais do sistema;ão dos manuais do sistema; Treinamento dos usuTreinamento dos usuáários;rios; PossPossíível conversão de dados prvel conversão de dados préé--existentes.existentes. Fatores que Influenciam a Fatores que Influenciama Qualidade de SoftwareQualidade de Software Requisitos de SoftwareRequisitos de Software Prazos e Custos;Prazos e Custos; Manutenibilidade;Manutenibilidade; Reusabilidade;Reusabilidade; DocumentaDocumentaçção;ão; Qualidade de SoftwareQualidade de Software com Relacom Relaçção ão àà RequisitosRequisitos Os requisitos são a base a partir da qual a Os requisitos são a base a partir da qual a qualidade de um software qualidade de um software éé medida.medida. A falta de conformidade aos requisitos A falta de conformidade aos requisitos significa falta de qualidade.significa falta de qualidade. Qualidade de SoftwareQualidade de Software Prazos e CustosPrazos e Custos Como determinar o prazo real de entrega de Como determinar o prazo real de entrega de um software? um software? Quantos profissionais deverão trabalhar no Quantos profissionais deverão trabalhar no projeto? projeto? Qual serQual seráá o custo total de desenvolvimento? o custo total de desenvolvimento? Qual deverQual deveráá ser o valor estipulado para ser o valor estipulado para produzir o sistema? produzir o sistema? Como determinar a real complexidade de Como determinar a real complexidade de desenvolvimento do sistema?desenvolvimento do sistema? Qualidade de SoftwareQualidade de Software Prazos e CustosPrazos e Custos A estimativa de tempo A estimativa de tempo éé realmente um realmente um ttóópico extremamente complexo da pico extremamente complexo da Engenharia de Software;Engenharia de Software; Por melhor modelado que um sistema tenha Por melhor modelado que um sistema tenha sido, ainda assim fica difsido, ainda assim fica difíícil determinar os cil determinar os prazos;prazos; Qualidade de SoftwareQualidade de Software Prazos e CustosPrazos e Custos Uma boa modelagem ajuda a determinar a Uma boa modelagem ajuda a determinar a complexidade de desenvolvimento do complexidade de desenvolvimento do sistema e isso por sua vez ajuda a sistema e isso por sua vez ajuda a determinar prazos;determinar prazos; No entanto, No entanto, éé preciso possuir diversos preciso possuir diversos sistemas jsistemas jáá desenvolvidos e bem desenvolvidos e bem documentados, com ndocumentados, com nííveis de dificuldade e veis de dificuldade e caractercaracteríísticas semelhantes ao software que sticas semelhantes ao software que estestáá para ser construpara ser construíído, para determinar do, para determinar com maior exatidão os prazos de entrega.com maior exatidão os prazos de entrega. Qualidade de SoftwareQualidade de Software Prazos e CustosPrazos e Custos A documentaA documentaçção deve possuir registro das ão deve possuir registro das datas de indatas de iníício e tcio e téérmino dos projetos rmino dos projetos concluconcluíídos anteriormente, bem como o dos anteriormente, bem como o custo real de desenvolvimento que estes custo real de desenvolvimento que estes projetos acarretaram; projetos acarretaram; O tempo de desenvolvimento influencia O tempo de desenvolvimento influencia diretamente o custo de desenvolvimento do diretamente o custo de desenvolvimento do sistema e logicamente o valor a ser pedido sistema e logicamente o valor a ser pedido pelo software. pelo software. Qualidade de SoftwareQualidade de Software Prazos e CustosPrazos e Custos Se a estimativa de prazo estiver errada, cada Se a estimativa de prazo estiver errada, cada dia a mais de desenvolvimento do projeto dia a mais de desenvolvimento do projeto acarretaracarretaráá prejuprejuíízos para a empresa que zos para a empresa que desenvolve o sistema, decorrentes, por desenvolve o sistema, decorrentes, por exemplo:exemplo: De pagamento de salDe pagamento de saláários aos profissionais rios aos profissionais envolvidos no projeto, que não haviam sido envolvidos no projeto, que não haviam sido previstos;previstos; Desgaste dos equipamentos utilizados;Desgaste dos equipamentos utilizados; Qualidade de SoftwareQualidade de Software Prazos e CustosPrazos e Custos Manter diversos profissionais ocupados em Manter diversos profissionais ocupados em projetos que jprojetos que jáá deveriam estar concludeveriam estar concluíídos dos deixando de trabalhar em novos projetos;deixando de trabalhar em novos projetos; InsatisfaInsatisfaçção dos clientes por não receberem ão dos clientes por não receberem o produto no prazo estimado.o produto no prazo estimado. Qualidade de SoftwareQualidade de Software ManutenibilidadeManutenibilidade Alguns autores afirmam que a manutenAlguns autores afirmam que a manutençção ão de um software pode representar de 40 a de um software pode representar de 40 a 60% do custo total do projeto.60% do custo total do projeto. Causas:Causas: Erros de implementaErros de implementaçção;ão; Desejos de melhorias do usuDesejos de melhorias do usuáário;rio; MudanMudançças estratas estratéégicas da empresa;gicas da empresa; MudanMudançças em leis, alas em leis, alííquotas, impostos. quotas, impostos. Qualidade de SoftwareQualidade de Software ManutenibilidadeManutenibilidade Na maioria dos casos a manutenNa maioria dos casos a manutençção de um ão de um software software éé inevitinevitáável, por mais bem vel, por mais bem modelado que esteja.modelado que esteja. As necessidades de uma empresa são As necessidades de uma empresa são dinâmicas e elas mudam constantemente, o dinâmicas e elas mudam constantemente, o que faz surgir novas necessidades que não que faz surgir novas necessidades que não existiam na existiam na éépoca em que o software foi poca em que o software foi projetado.projetado. Qualidade de SoftwareQualidade de Software ManutenibilidadeManutenibilidade A modelagem não serve unicamente para A modelagem não serve unicamente para diminuir a necessidade de futuras diminuir a necessidade de futuras manutenmanutençções, mas tambões, mas tambéém para facilitar a m para facilitar a compreensão do sistema por quem tiver que compreensão do sistema por quem tiver que mantêmantê--lo;lo; Em geral a manutenEm geral a manutençção de um sistema ão de um sistema éé considerada uma tarefa ingrata pelos considerada uma tarefa ingrata pelos profissionais de desenvolvimento;profissionais de desenvolvimento; Qualidade de SoftwareQualidade de Software ManutenibilidadeManutenibilidade Normalmente exigem que o profissional Normalmente exigem que o profissional despenda grandes esfordespenda grandes esforçços para os para compreender ccompreender cóódigos escritos por outros digos escritos por outros profissionais com estilos de profissionais com estilos de desenvolvimento diferentes e que desenvolvimento diferentes e que normalmente não se encontram mais na normalmente não se encontram mais na empresa. empresa. São os chamados São os chamados ““ccóódigos aliendigos alieníígenasgenas””. . Uma variaUma variaçção disso são os ão disso são os ““ccóódigos digos legadoslegados””. . Qualidade de SoftwareQualidade de Software ManutenibilidadeManutenibilidade ÉÉ extremamente comum que, apextremamente comum que, apóós manter s manter um software, outros mum software, outros móódulos do sistema dulos do sistema que antes funcionavam perfeitamente que antes funcionavam perfeitamente passem a apresentar erros ou simplesmente passem a apresentar erros ou simplesmente deixem de funcionar, são os chamados deixem de funcionar, são os chamados ““efeitos colateraisefeitos colaterais”” da manutenda manutençção. ão. Qualidade de SoftwareQualidade de Software ManutenibilidadeManutenibilidade Uma modelagem correta aliada a uma Uma modelagem correta aliada a uma documentadocumentaçção complementar bastante ão complementar bastante profunda e completa de um sistema de profunda e completa de um sistema de informainformaçção torna mais rão torna mais ráápido o processo de pido o processo de manutenmanutençção e impede que erros sejam ão e impede que erros sejam cometidosdurante a mesmo;cometidos durante a mesmo; Qualidade de SoftwareQualidade de Software ManutenibilidadeManutenibilidade Qualquer manutenQualquer manutençção que precisar ser ão que precisar ser operada em um sistema, deve ser tamboperada em um sistema, deve ser tambéém m modelada e documentada, para não modelada e documentada, para não desatualizar a documentadesatualizar a documentaçção do sistema e ão do sistema e prejudicar futuras manutenprejudicar futuras manutençções. ões. Qualidade de SoftwareQualidade de Software ReusabilidadeReusabilidade O software precisa ser modelado e O software precisa ser modelado e desenvolvido de maneira que suas rotinas desenvolvido de maneira que suas rotinas possam ser reaproveitados em projetos possam ser reaproveitados em projetos futuros;futuros; A modelagem e documentaA modelagem e documentaçção de um ão de um software permitem encontrar algoritmos, software permitem encontrar algoritmos, rotinas e mrotinas e móódulos com facilidade, aldulos com facilidade, aléém de m de facilitar sua compreensão.facilitar sua compreensão. Qualidade de SoftwareQualidade de Software ReusabilidadeReusabilidade Onde estão as rotinas? Onde estão as rotinas? Para que foram utilizadas? Para que foram utilizadas? Em que projetos estão documentadas? Em que projetos estão documentadas? Elas são adequadas ao software atualmente Elas são adequadas ao software atualmente desenvolvido? desenvolvido? Qual o nQual o níível necessvel necessáário de adaptario de adaptaçção das ão das rotinas para que estas possam ser utilizadas rotinas para que estas possam ser utilizadas no sistema atual?no sistema atual? Qualidade de SoftwareQualidade de Software DocumentaDocumentaççãoão Como a empresa pode afirmar se estComo a empresa pode afirmar se estáá evoluindo ou não? evoluindo ou não? O processo de desenvolvimento tornouO processo de desenvolvimento tornou--se se mais mais áágil? gil? As metodologias atualmente adotadas são As metodologias atualmente adotadas são superiores superiores ààs prs prááticas aplicadas ticas aplicadas anteriormente? anteriormente? A qualidade do software produzido estA qualidade do software produzido estáá melhorando? melhorando? Qualidade de SoftwareQualidade de Software DocumentaDocumentaççãoão A empresa necessita de um registro A empresa necessita de um registro detalhado de cada um de seus sistemas jdetalhado de cada um de seus sistemas jáá desenvolvidos para determinar:desenvolvidos para determinar: A mA méédia de manutendia de manutençções que um sistema ões que um sistema sofre normalmente dentro de um sofre normalmente dentro de um determinado perdeterminado perííodo de tempo;odo de tempo; Qual a mQual a méédia de custo de modelagem; dia de custo de modelagem; Qual a mQual a méédia de custo de desenvolvimento;dia de custo de desenvolvimento; Qualidade de SoftwareQualidade de Software DocumentaDocumentaççãoão Qual a mQual a méédia de tempo despendido atdia de tempo despendido atéé a a finalizafinalizaçção do projeto;ão do projeto; Quantos profissionais foi necessQuantos profissionais foi necessáário rio envolver no projeto;envolver no projeto; Estas informaEstas informaçções são computadas nos ões são computadas nos ororççamentos de desenvolvimento de novos amentos de desenvolvimento de novos softwares e são de grande auxsoftwares e são de grande auxíílio no lio no momento de determinar prazos e custos momento de determinar prazos e custos mais prmais próóximos da realidade.ximos da realidade. Engenharia de RequisitosEngenharia de Requisitos ““EngenhariaEngenharia de Requisitos de Requisitos éé o ramo da o ramo da engenharia de software que se dedica a engenharia de software que se dedica a determinar os objetivos do mundo real, as determinar os objetivos do mundo real, as funfunçções e as restriões e as restriçções do software, bem ões do software, bem como em determinar o relacionamento como em determinar o relacionamento destes fatores para especificadestes fatores para especificaçções precisas ões precisas do comportamento do software e suas do comportamento do software e suas evoluevoluçções ao longo do tempo e entre as ões ao longo do tempo e entre as famfamíílias de lias de softwaresoftware”” ZaveZave (1997).(1997). Engenharia de RequisitosEngenharia de Requisitos JJáá segundo segundo BerenbachBerenbach (2009), a engenharia (2009), a engenharia de requisitos envolve todas as atividades do de requisitos envolve todas as atividades do ciclo de vida devotadas ciclo de vida devotadas àà identificaidentificaçção de ão de requisitos de usurequisitos de usuáário, anrio, anáálise dos requisitos lise dos requisitos para derivar requisitos adicionais, para derivar requisitos adicionais, documentadocumentaçção dos requisitos como uma ão dos requisitos como uma especificaespecificaçção e validaão e validaçção dos requisitos ão dos requisitos documentados de acordo com as documentados de acordo com as necessidades do usunecessidades do usuáário, bem como os rio, bem como os processos que suportam estas atividades.processos que suportam estas atividades. Engenharia de RequisitosEngenharia de Requisitos Sommerville (2003) define Engenharia de Sommerville (2003) define Engenharia de Requisitos como Requisitos como ““O conjunto de tO conjunto de téécnicas cnicas empregadas para levantar, detalhar, empregadas para levantar, detalhar, documentar e validar os requisitos de um documentar e validar os requisitos de um produto forma a Engenharia de Requisitosproduto forma a Engenharia de Requisitos””;; Engenharia de RequisitosEngenharia de Requisitos XiaoXiao (2003), declara que por meio da (2003), declara que por meio da compreensão das crencompreensão das crençças dos interessados as dos interessados ((stakeholdersstakeholders), a engenharia de requisitos ), a engenharia de requisitos especifica um problema a ser solucionado, especifica um problema a ser solucionado, identifica os limites do sistema, analisa identifica os limites do sistema, analisa propriedades do ambiente e caracteriza os propriedades do ambiente e caracteriza os comportamentos do software resultante;comportamentos do software resultante; As atividadesAs atividades centrais da engenharia de centrais da engenharia de requisitos são:requisitos são: Engenharia de RequisitosEngenharia de Requisitos ExtraExtraçção (ão (elicitaelicitaççãoão) de requisitos, onde ) de requisitos, onde procuraprocura--se determinar o problema a ser se determinar o problema a ser solucionado e identificar os limites do solucionado e identificar os limites do sistema;sistema; Análise e modelagem de requisitos, onde constrói-se descrições abstratas passíveis de interpretação; Engenharia de RequisitosEngenharia de Requisitos ComunicaComunicaçção de requisitos, onde os ão de requisitos, onde os requisitos são comunicados entre os requisitos são comunicados entre os interessados (interessados (stakeholdersstakeholders);); A forma como os requisitos são A forma como os requisitos são documentados desempenha um papel documentados desempenha um papel importante em garantir que estes podem ser importante em garantir que estes podem ser lidos, analisados, relidos, analisados, re--escritos e validados.escritos e validados. Engenharia de RequisitosEngenharia de Requisitos ConcordânciaConcordância de requisitos, onde tentade requisitos, onde tenta--se se resolver conflitos entre os interessados, resolver conflitos entre os interessados, quando estes têm objetivos quando estes têm objetivos divergentes;divergentes; EvoluEvoluççãoão de requisitos, onde de requisitos, onde éé necessnecessáário rio gerenciar a documentagerenciar a documentaçção dos requisitos ão dos requisitos quando estes mudam em novas versões ou quando estes mudam em novas versões ou mesmo na versão atual, quando o impacto mesmo na versão atual, quandoo impacto destas mudandestas mudançças e o risco ao projeto devem as e o risco ao projeto devem ser monitoradas e controladas.ser monitoradas e controladas. Engenharia de RequisitosEngenharia de Requisitos Segundo Segundo BerenbachBerenbach (2009), estudos (2009), estudos indicam que cerca de metade dos fatores indicam que cerca de metade dos fatores associados com o sucesso de projetos estão associados com o sucesso de projetos estão relacionados aos requisitos e que o sucesso relacionados aos requisitos e que o sucesso de um projeto de software estde um projeto de software estáá diretamente diretamente ligado ligado àà qualidade dos mesmos;qualidade dos mesmos; Engenharia de RequisitosEngenharia de Requisitos Isto Isto éé corroborado por corroborado por HullHull (2005) e (2005) e Pressman (1995) que afirmam que a Pressman (1995) que afirmam que a definidefiniçção incorreta dos requisitos do sistema ão incorreta dos requisitos do sistema éé um dos principais fatores para a falha de um dos principais fatores para a falha de um projeto;um projeto; JJáá segundo segundo RegnelRegnel (1999), a (1999), a elicitaelicitaççãoão, , ananáálise e documentalise e documentaçção de requisitos em ão de requisitos em sistemas complexos sistemas complexos éé uma tarefa crucial e uma tarefa crucial e nãonão--trivial. trivial. Engenharia de RequisitosEngenharia de Requisitos E, segundo E, segundo SommervilleSommerville (2003), casos de (2003), casos de uso são de interesse especial na engenharia uso são de interesse especial na engenharia de requisitos, uma vez que se mostraram de requisitos, uma vez que se mostraram valiosos para valiosos para elicitarelicitar, documentar e analisar , documentar e analisar requisitos. requisitos. Engenharia de RequisitosEngenharia de Requisitos VVáários autores como Rodriguez (2011), rios autores como Rodriguez (2011), BerenbachBerenbach (2009), (2009), SommervilleSommerville (2003), (2003), PapasimeonPapasimeon (2003), Bezerra (2002), Melo (2003), Bezerra (2002), Melo (2002), (2002), BoochBooch (2000) e (2000) e RegnelRegnel (1999), (1999), sugerem a aplicasugerem a aplicaçção do diagrama de casos ão do diagrama de casos de uso da UML para a modelagem de de uso da UML para a modelagem de requisitos.requisitos. Engenharia de RequisitosEngenharia de Requisitos AlAléém disso, segundo m disso, segundo RegnelRegnel (1999), casos (1999), casos de uso tambde uso tambéém permitem a m permitem a rastreabilidaderastreabilidade de requisitos nas fases de projeto, de requisitos nas fases de projeto, implementaimplementaçção e verificaão e verificaçção e validaão e validaçção.ão. HullHull (2005) afirma que requisitos são a base (2005) afirma que requisitos são a base de todo projeto, definindo o que os de todo projeto, definindo o que os stakeholdersstakeholders necessitam de um sistema e o necessitam de um sistema e o que o sistema deve fazer de forma a que o sistema deve fazer de forma a satisfazer esta necessidade. satisfazer esta necessidade. Engenharia de RequisitosEngenharia de Requisitos HullHull (2005) destaca ainda que requisitos (2005) destaca ainda que requisitos formam a base para planejamento de formam a base para planejamento de projeto, gerenciamento de risco, teste de projeto, gerenciamento de risco, teste de aceitaaceitaçção, ão, tradeofftradeoff (escolha entre op(escolha entre opçções ões conflitantes)conflitantes) e controle de mudane controle de mudançça.a. Engenharia de RequisitosEngenharia de Requisitos De De acordo comacordo com BerenbachBerenbach (2009), as (2009), as caractercaracteríísticas de um bom requisito são que sticas de um bom requisito são que ele seja possele seja possíível, vvel, váálido, lido, unambunambííguoguo, , verificverificáável, modificvel, modificáável, consistente, vel, consistente, completo e que possa ser completo e que possa ser rastrerastreáávelvel.. Engenharia de RequisitosEngenharia de Requisitos O Fluxo de Requisitos reO Fluxo de Requisitos reúúne as atividades ne as atividades que visam a obter o enunciado completo, que visam a obter o enunciado completo, claro e preciso dos requisitos de um produto claro e preciso dos requisitos de um produto de software;de software; Esses requisitos devem ser levantados pela Esses requisitos devem ser levantados pela equipe do projeto, em conjunto com equipe do projeto, em conjunto com representantes do cliente, usurepresentantes do cliente, usuáários chaves e rios chaves e outros especialistas da outros especialistas da áárea de aplicarea de aplicaçção ão (Stakeholders).(Stakeholders). Engenharia de RequisitosEngenharia de Requisitos O resultado principal do fluxo dos requisitos O resultado principal do fluxo dos requisitos éé um documento de Especificaum documento de Especificaçção de ão de Requisitos de Software (ERSw);Requisitos de Software (ERSw); Requisitos de alta qualidade são claros, Requisitos de alta qualidade são claros, completos, não ambcompletos, não ambííguos, implementguos, implementááveis, veis, consistentes e testconsistentes e testááveis;veis; Os requisitos que não apresentam essas Os requisitos que não apresentam essas qualidades são problemqualidades são problemááticos: Eles devem ticos: Eles devem ser revistos e renegociados com os clientes ser revistos e renegociados com os clientes e usue usuáários.rios. Engenharia de RequisitosEngenharia de Requisitos As caracterAs caracteríísticas que devem estar contidas sticas que devem estar contidas na Especificana Especificaçção dos Requisitos do ão dos Requisitos do Software incluem:Software incluem: Funcionalidades: O que o software deverFuncionalidades: O que o software deveráá fazer;fazer; Interfaces externas: Como o software Interfaces externas: Como o software interage com as pessoas, com o hardware do interage com as pessoas, com o hardware do sistema, com outros sistemas e com outros sistema, com outros sistemas e com outros produtos?produtos? Engenharia de RequisitosEngenharia de Requisitos Desempenho: Qual a velocidade de Desempenho: Qual a velocidade de processamento, o tempo de resposta e processamento, o tempo de resposta e outros parâmetros de desempenho outros parâmetros de desempenho requeridos pela natureza da aplicarequeridos pela natureza da aplicaçção?ão? Outros atributos: Quais as consideraOutros atributos: Quais as consideraçções ões sobre portabilidade, manutenibilidade e sobre portabilidade, manutenibilidade e confiabilidade que devem ser observadas?confiabilidade que devem ser observadas? Engenharia de RequisitosEngenharia de Requisitos RestriRestriçções impostas pela aplicaões impostas pela aplicaçção: Existem ão: Existem padrões e outros limites a serem padrões e outros limites a serem obedecidos, como linguagem de obedecidos, como linguagem de implementaimplementaçção, ambientes de operaão, ambientes de operaçção, ão, limites de recursos, etc?limites de recursos, etc? Engenharia de RequisitosEngenharia de Requisitos A especificaA especificaçção dos requisitos do software ão dos requisitos do software deve ser escrita por membros da equipe de deve ser escrita por membros da equipe de desenvolvimento com a participadesenvolvimento com a participaçção ão obrigatobrigatóória de um ou mais usuria de um ou mais usuáários chaves;rios chaves; UsuUsuáários chave (stakeholders) são aqueles rios chave (stakeholders) são aqueles indicados pelo cliente como pessoa indicados pelo cliente como pessoa capacitada a definir requisitos do produto, capacitada a definir requisitos do produto, escolhidos entre profissionais experientes escolhidos entre profissionais experientes das das ááreas que usarão o produto.reas que usarão o produto. Engenharia de RequisitosEngenharia de Requisitos Os usuOs usuáários chaves devem ser devidamente rios chaves devem ser devidamente informados e treinados sobre as tinformados e treinadossobre as téécnicas e cnicas e notanotaçções que serão utilizadas no fluxo de ões que serão utilizadas no fluxo de requisitos;requisitos; Geralmente, nem desenvolvedores nem Geralmente, nem desenvolvedores nem clientes ou usuclientes ou usuáários são qualificados para rios são qualificados para escrever por si sescrever por si sóós a especificas a especificaçção dos ão dos requisitos do software, porque:requisitos do software, porque: Engenharia de RequisitosEngenharia de Requisitos Os clientes nem sempre entendem os Os clientes nem sempre entendem os processos de desenvolvimento de software processos de desenvolvimento de software em grau suficiente para produzir uma em grau suficiente para produzir uma especificaespecificaçção de requisitos de ão de requisitos de implementaimplementaçção vião viáável;vel; Os desenvolvedores nem sempre entendem Os desenvolvedores nem sempre entendem a a áárea de aplicarea de aplicaçção de forma suficiente para ão de forma suficiente para produzir uma especificaproduzir uma especificaçção de requisitos ão de requisitos satisfatsatisfatóória.ria. Engenharia de RequisitosEngenharia de Requisitos Qualidade dos RequisitosQualidade dos Requisitos Para servir de base a um produto de boa Para servir de base a um produto de boa qualidade, a Especificaqualidade, a Especificaçção de Requisitos ão de Requisitos deve satisfazer uma sdeve satisfazer uma séérie de caracterrie de caracteríísticas sticas de qualidade;de qualidade; Uma EspecificaUma Especificaçção de Requisitos deve ser:ão de Requisitos deve ser: Correta: Todo requisito presente realmente Correta: Todo requisito presente realmente éé um requisito do produto a ser construum requisito do produto a ser construíído;do; Engenharia de RequisitosEngenharia de Requisitos Qualidade dos RequisitosQualidade dos Requisitos Precisa: Todo requisito presente possui Precisa: Todo requisito presente possui apenas uma apenas uma úúnica interpretanica interpretaçção, aceita tanto ão, aceita tanto pelos desenvolvedores quanto pelos pelos desenvolvedores quanto pelos usuusuáários chaves;rios chaves; ModificModificáável: Sua estrutura e estilo vel: Sua estrutura e estilo permitem a mudanpermitem a mudançça de qualquer requisito, a de qualquer requisito, de maneira fde maneira fáácil, completa e consistente.cil, completa e consistente. Engenharia de RequisitosEngenharia de Requisitos Qualidade dos RequisitosQualidade dos Requisitos Completa: Reflete todas as decisões de Completa: Reflete todas as decisões de especificaespecificaçção que foram tomadas, não ão que foram tomadas, não contendo pendências. Uma Especificacontendo pendências. Uma Especificaçção de ão de Requisitos deve:Requisitos deve: Conter todos os requisitos significativos Conter todos os requisitos significativos relativos a funcionalidade, desempenho, relativos a funcionalidade, desempenho, restrirestriçções de desempenho, atributos e ões de desempenho, atributos e interfaces externas.interfaces externas. Engenharia de RequisitosEngenharia de Requisitos Qualidade dos RequisitosQualidade dos Requisitos Definir as respostas do software para todas Definir as respostas do software para todas as entradas possas entradas possííveis, vveis, váálidas e invlidas e inváálidas, lidas, em todas as situaem todas as situaçções possões possííveis;veis; Conter um glossConter um glossáário de todos os termos rio de todos os termos ttéécnicos e unidades de medida, assim como cnicos e unidades de medida, assim como referências completas a todos os diagramas, referências completas a todos os diagramas, figuras e tabelas.figuras e tabelas. Engenharia de RequisitosEngenharia de Requisitos Qualidade dos RequisitosQualidade dos Requisitos Consistente: Não hConsistente: Não háá conflitos entre nenhum conflitos entre nenhum dos subconjuntos de requisitos presentes. dos subconjuntos de requisitos presentes. Existem três tipos comuns de conflitos entre Existem três tipos comuns de conflitos entre requisitos:requisitos: Conflito entre caracterConflito entre caracteríísticas de objetos do sticas de objetos do mundo real como formatos de relatmundo real como formatos de relatóórios, rios, cores, padrões de interface;cores, padrões de interface; Engenharia de RequisitosEngenharia de Requisitos Qualidade dos RequisitosQualidade dos Requisitos Conflito lConflito lóógico ou temporal entre agico ou temporal entre açções, por ões, por exemplo, um requisito diz que a aexemplo, um requisito diz que a açção A ão A deve ser realizada antes da B, e outro deve ser realizada antes da B, e outro requisito diz o contrrequisito diz o contráário;rio; Uso de termos diferentes para designar o Uso de termos diferentes para designar o mesmo objeto do mundo real, como mesmo objeto do mundo real, como ““avisoaviso”” e e ““mensagemmensagem””.. Engenharia de RequisitosEngenharia de Requisitos Qualidade dos RequisitosQualidade dos Requisitos Priorizada: Cada requisito Priorizada: Cada requisito éé classificado de classificado de acordo com a sua importância, estabilidade acordo com a sua importância, estabilidade e complexidade. e complexidade. A estabilidade estima a probabilidade de A estabilidade estima a probabilidade de que o requisito venha a ser alterado no que o requisito venha a ser alterado no decorrer do projeto, com base na decorrer do projeto, com base na experiência de projetos correlatos. experiência de projetos correlatos. Engenharia de RequisitosEngenharia de Requisitos Qualidade dos RequisitosQualidade dos Requisitos A priorizaA priorizaçção classifica o requisito de ão classifica o requisito de acordo com um dos seguintes graus:acordo com um dos seguintes graus: Requisito essencial, sem cujo atendimento o Requisito essencial, sem cujo atendimento o produto produto éé inaceitinaceitáável;vel; Requisito desejRequisito desejáável, cujo atendimento vel, cujo atendimento aumenta o valor do produto, mas cuja aumenta o valor do produto, mas cuja ausência pode ser relevada em caso de ausência pode ser relevada em caso de necessidade;necessidade; Engenharia de RequisitosEngenharia de Requisitos Qualidade dos RequisitosQualidade dos Requisitos Requisito opcional, requisito a ser cumprido Requisito opcional, requisito a ser cumprido se houver prazo e orse houver prazo e orççamento, depois de amento, depois de atendidos os demais requisitos.atendidos os demais requisitos. VerificVerificáável: Um requisito vel: Um requisito éé verificverificáável se vel se existir um processo finito com custo existir um processo finito com custo compensador, que possa ser executado por compensador, que possa ser executado por uma pessoa ou muma pessoa ou mááquina, e que mostre a quina, e que mostre a conformidade do produto final com o conformidade do produto final com o requisito.requisito. Engenharia de RequisitosEngenharia de Requisitos Qualidade dos RequisitosQualidade dos Requisitos RastreRastreáável: Permite a fvel: Permite a fáácil determinacil determinaçção ão dos antecedentes e das consequências de dos antecedentes e das consequências de todos os requisitos. todos os requisitos. Existem dois tipos de Rastreabilidade:Existem dois tipos de Rastreabilidade: Rastreabilidade para trRastreabilidade para tráás: deve ser posss: deve ser possíível vel localizar a origem de cada requisito.localizar a origem de cada requisito. Engenharia de RequisitosEngenharia de Requisitos Qualidade dos RequisitosQualidade dos Requisitos DeveDeve--se sempre saber por que existe cada se sempre saber por que existe cada requisito, e quem ou o que o originou.requisito, e quem ou o que o originou. Isso Isso éé importante para que se possa avaliar o importante para que se possa avaliar o impacto da mudanimpacto da mudançça daquele requisito, e a daquele requisito, e dirimir ddirimir dúúvidas de interpretavidas de interpretaçção.ão. Engenharia de RequisitosEngenhariade Requisitos Qualidade dos RequisitosQualidade dos Requisitos Rastreabilidade para a frente: Rastreabilidade para a frente: Deve ser possDeve ser possíível localizar quais os vel localizar quais os resultados do desenvolvimento que serão resultados do desenvolvimento que serão afetados por cada requisito. Isso afetados por cada requisito. Isso éé importante para garantir que os itens de importante para garantir que os itens de ananáálise, desenho, clise, desenho, cóódigo e testes abranjam digo e testes abranjam todos os requisitos, e para localizar os itens todos os requisitos, e para localizar os itens que serão afetados por uma mudanque serão afetados por uma mudançça nos a nos requisitos.requisitos. Gerenciamento de ProjetosGerenciamento de Projetos O gerenciamento de projeto O gerenciamento de projeto éé uma das uma das distindistinçções que diferenciam o ões que diferenciam o desenvolvimento profissional e o amador;desenvolvimento profissional e o amador; Gerentes de software são responsGerentes de software são responsááveis por veis por planejar o desenvolvimento do projeto, planejar o desenvolvimento do projeto, supervisionando o trabalho para assegurar supervisionando o trabalho para assegurar que ele seja realizado em conformidade com que ele seja realizado em conformidade com os padrões requeridos;os padrões requeridos; Gerenciamento de ProjetosGerenciamento de Projetos AlAléém de monitorar o progresso para m de monitorar o progresso para verificar se o desenvolvimento estverificar se o desenvolvimento estáá dentro dentro do prazo e do ordo prazo e do orççamento;amento; O bom gerenciamento não O bom gerenciamento não éé uma garantia uma garantia absoluta do sucesso do projeto, porabsoluta do sucesso do projeto, poréém o m o mau gerenciamento acarreta com certeza mau gerenciamento acarreta com certeza atrasos na entrega, aumento do custo oratrasos na entrega, aumento do custo orççado ado e inconformidade com os requisitos.e inconformidade com os requisitos. DiferenDiferençças entre a Engenharia de as entre a Engenharia de Software e outras EngenhariasSoftware e outras Engenharias O produto O produto éé intangintangíível: Um projeto de vel: Um projeto de construconstruçção fão fíísico apresenta seu progresso de sico apresenta seu progresso de forma que ele possa ser observado forma que ele possa ser observado fisicamente, no entanto um projeto de fisicamente, no entanto um projeto de software possui uma abstrasoftware possui uma abstraçção muito maior, ão muito maior, sendo difsendo difíícil determinar a evolucil determinar a evoluçção de ão de desenvolvimento do software devido a desenvolvimento do software devido a incapacidade de medir com precisão qual incapacidade de medir com precisão qual serseráá a complexidade do restante.a complexidade do restante. DiferenDiferençças entre a Engenharia de as entre a Engenharia de Software e outras EngenhariasSoftware e outras Engenharias Não hNão háá processo de softwareprocesso de software--padrão: Cada padrão: Cada novo grande projeto normalmente constitui novo grande projeto normalmente constitui um novo desafio, não existindo uma receita um novo desafio, não existindo uma receita de bolo de como desenvolvêde bolo de como desenvolvê--lo.lo. Constante evoluConstante evoluçção tecnolão tecnolóógica: A gica: A constante evoluconstante evoluçção tecnolão tecnolóógica, gica, principalmente na principalmente na áárea de software, anula rea de software, anula muito da experiência de desenvolvimento muito da experiência de desenvolvimento anterior do engenheiro.anterior do engenheiro. Atividades de GerenciamentoAtividades de Gerenciamento O gerente de software O gerente de software éé responsresponsáável por vel por todas ou algumas das seguintes atividades:todas ou algumas das seguintes atividades: ElaboraElaboraçção de propostas;ão de propostas; Planejamento de projetos;Planejamento de projetos; Custo do projeto;Custo do projeto; Monitoramento e revisões do projeto;Monitoramento e revisões do projeto; SeleSeleçção e avaliaão e avaliaçção de pessoal;ão de pessoal; ElaboraElaboraçção de relatão de relatóórios e apresentarios e apresentaçções.ões. ElaboraElaboraçção de Propostasão de Propostas ConstituiConstitui--se no primeiro estse no primeiro estáágio de um gio de um projeto. projeto. A proposta deve descrever os objetivos do A proposta deve descrever os objetivos do projeto e como ele serprojeto e como ele seráá realizado, incluindo realizado, incluindo estimativas de custo e prazo, por esse estimativas de custo e prazo, por esse motivo deve ser muito bem elaborado.motivo deve ser muito bem elaborado. Planejamento de ProjetosPlanejamento de Projetos Se ocupa em identificar as atividades, os Se ocupa em identificar as atividades, os marcos e os documentos a serem produzidos marcos e os documentos a serem produzidos em um projeto;em um projeto; A estimativa de custos A estimativa de custos éé uma atividade que uma atividade que se ocupa em estimar os recursos requeridos se ocupa em estimar os recursos requeridos para realizar o projeto.para realizar o projeto. Monitoramento de ProjetosMonitoramento de Projetos ÉÉ uma atividade contuma atividade contíínua. O gerente deve nua. O gerente deve acompanhar o andamento do projeto e acompanhar o andamento do projeto e comparar os progressos e custos reais com comparar os progressos e custos reais com os que foram planejados.os que foram planejados. O monitoramento informal pode prever O monitoramento informal pode prever problemas em potencial no projeto, problemas em potencial no projeto, revelando dificuldades revelando dificuldades àà medida em que medida em que elas ocorrem.elas ocorrem. SeleSeleçção de Pessoalão de Pessoal O ideal O ideal éé que uma equipe hque uma equipe háábil com bil com experiência esteja disponexperiência esteja disponíível, no entanto vel, no entanto nem sempre isso nem sempre isso éé posspossíível, por motivos vel, por motivos como:como: O orO orççamento do projeto pode não ser amento do projeto pode não ser suficiente para contratar profissionais suficiente para contratar profissionais experientes;experientes; Não existe pessoal experiente disponNão existe pessoal experiente disponíível;vel; SeleSeleçção de Pessoalão de Pessoal A organizaA organizaçção pode querer treinar seu ão pode querer treinar seu prpróóprio pessoal, ganhando experiência com prio pessoal, ganhando experiência com projetos considerados não tão importantes.projetos considerados não tão importantes. Se não houver ao menos alguns Se não houver ao menos alguns profissionais experientes muitos erros profissionais experientes muitos erros simples podem ocorrer.simples podem ocorrer. ElaboraElaboraçção de Relatão de Relatóórios e rios e ApresentaApresentaççõesões Os gerentes devem desenvolver relatOs gerentes devem desenvolver relatóórios rios concisos e coerentes que resumam as concisos e coerentes que resumam as informainformaçções fundamentais do andamento do ões fundamentais do andamento do projeto;projeto; Esses relatEsses relatóórios devem ser apresentados rios devem ser apresentados durante as revisões de andamento do projeto durante as revisões de andamento do projeto aos seus superiores ou aos clientes que aos seus superiores ou aos clientes que solicitaram o software.solicitaram o software. Planejamento de ProjetoPlanejamento de Projeto O gerenciamento eficaz de um projeto de O gerenciamento eficaz de um projeto de software depende de um planejamento software depende de um planejamento acurado do andamento do projeto. acurado do andamento do projeto. O gerente de projeto deve prever os O gerente de projeto deve prever os problemas que podem surgir e preparar problemas que podem surgir e preparar solusoluçções experimentais para estes ões experimentais para estes problemas.problemas.Planejamento de ProjetoPlanejamento de Projeto Um plano traUm plano traççado no inado no iníício do projeto deve cio do projeto deve ser utilizado como guia para o mesmo;ser utilizado como guia para o mesmo; O plano inicial deve ser o melhor possO plano inicial deve ser o melhor possíível, vel, em face das informaem face das informaçções disponões disponííveis, ele veis, ele deve evoluir deve evoluir àà medida que o projeto seja medida que o projeto seja desenvolvido e melhores informadesenvolvido e melhores informaçções se ões se tornem dispontornem disponííveis.veis. Planejamento de ProjetoPlanejamento de Projeto Outros Tipos de PlanosOutros Tipos de Planos Plano de qualidade: Descreve os Plano de qualidade: Descreve os procedimentos para teste de qualidade que procedimentos para teste de qualidade que serão utilizados em um projeto.serão utilizados em um projeto. Plano de validaPlano de validaçção: Descreve a abordagem, ão: Descreve a abordagem, os recursos e os mos recursos e os méétodos utilizados para a todos utilizados para a validavalidaçção do sistema.ão do sistema. Planejamento de ProjetoPlanejamento de Projeto Outros Tipos de PlanosOutros Tipos de Planos Plano de gerenciamento de configuraPlano de gerenciamento de configuraçção: ão: Descreve os procedimentos de Descreve os procedimentos de gerenciamento e as estruturas a serem gerenciamento e as estruturas a serem utilizadas;utilizadas; Plano de manutenPlano de manutençção: Prevê os requisitos de ão: Prevê os requisitos de manutenmanutençção do sistema, os custos de ão do sistema, os custos de manutenmanutençção e o esforão e o esforçço necesso necessáário;rio; Planejamento de ProjetoPlanejamento de Projeto Plano de desenvolvimento de equipe: Plano de desenvolvimento de equipe: Descreve como as habilidades e a Descreve como as habilidades e a experiência dos membros da equipe de experiência dos membros da equipe de projeto serão desenvolvidas.projeto serão desenvolvidas. Planejamento de ProjetoPlanejamento de Projeto IniciaInicia--se com uma avaliase com uma avaliaçção das restrião das restriçções ões que afetam o projeto, como:que afetam o projeto, como: Data de entrega estabelecida;Data de entrega estabelecida; Pessoal disponPessoal disponíível;vel; OrOrççamento total;amento total; Planejamento de ProjetoPlanejamento de Projeto Essa avaliaEssa avaliaçção ão éé realizada em conjunto com realizada em conjunto com uma estimativa dos parâmetros para o uma estimativa dos parâmetros para o projeto, como:projeto, como: Estrutura do projeto;Estrutura do projeto; Tamanho do projeto;Tamanho do projeto; Complexidade do projeto;Complexidade do projeto; DistribuiDistribuiçção de funão de funçções.ões. Planejamento de ProjetoPlanejamento de Projeto A partir dessas avaliaA partir dessas avaliaçções, os marcos de ões, os marcos de progresso e os mprogresso e os móódulos a serem entregues dulos a serem entregues são então definidos.são então definidos. ApApóós o projeto ter sido iniciado, de tempos s o projeto ter sido iniciado, de tempos em tempos o andamento deve ser em tempos o andamento deve ser examinado e as possexaminado e as possííveis discrepâncias veis discrepâncias observadas, havendo possobservadas, havendo possííveis modificaveis modificaçções ões no projeto.no projeto. Planejamento de ProjetoPlanejamento de Projeto Se o projeto estiver atrasado, talvez seja Se o projeto estiver atrasado, talvez seja necessnecessáário renegociar com o cliente as rio renegociar com o cliente as restrirestriçções do projeto e os mões do projeto e os móódulos a serem dulos a serem entregues.entregues. Se a negociaSe a negociaçção não for bem sucedida e a ão não for bem sucedida e a programaprogramaçção não puder ser cumprida, ão não puder ser cumprida, deverdeveráá ser considerada uma revisão tser considerada uma revisão téécnica cnica do projeto.do projeto. Planejamento de ProjetoPlanejamento de Projeto Uma revisão tUma revisão téécnica procura encontrar uma cnica procura encontrar uma abordagem de desenvolvimento alternativa, abordagem de desenvolvimento alternativa, que se limite que se limite ààs restris restriçções do projeto e ões do projeto e cumpra os prazos.cumpra os prazos. O planejamento do projeto deve ser O planejamento do projeto deve ser pessimista, ou seja, problemas ocorrerão. pessimista, ou seja, problemas ocorrerão. DeveDeve--se tentar prever todas as possse tentar prever todas as possííveis veis eventualidades no plano de projeto para que eventualidades no plano de projeto para que as restrias restriçções e os marcos não tenham que ões e os marcos não tenham que ser renegociadas.ser renegociadas. Planejamento de ProjetoPlanejamento de Projeto A maioria dos planos de projeto devem A maioria dos planos de projeto devem incluir:incluir: IntroduIntroduçção: Descreve com brevidade os ão: Descreve com brevidade os objetivos do projeto e definir as restriobjetivos do projeto e definir as restriçções ões que afetam seu gerenciamento;que afetam seu gerenciamento; OrganizaOrganizaçção de projeto: Descreve o modo ão de projeto: Descreve o modo como a equipe de desenvolvimento como a equipe de desenvolvimento éé organizada;organizada; Planejamento de ProjetoPlanejamento de Projeto AnAnáálise de riscos: Descreve os posslise de riscos: Descreve os possííveis veis riscos do projeto, a probabilidade destes riscos do projeto, a probabilidade destes ocorrerem e as estratocorrerem e as estratéégias para contorngias para contornáá--los.los. Requisitos necessRequisitos necessáários de hardware e rios de hardware e software: Se houver necessidade de compra software: Se houver necessidade de compra de hardware ou software estes devem de hardware ou software estes devem obviamente serem computados no obviamente serem computados no ororççamento.amento. Planejamento de ProjetoPlanejamento de Projeto Estrutura analEstrutura analíítica: Descreve a divisão do tica: Descreve a divisão do trabalho em atividades e identifica os trabalho em atividades e identifica os marcos e os mmarcos e os móódulos a serem entregues ao dulos a serem entregues ao ttéérmino de cada atividade;rmino de cada atividade; ProgramaProgramaçção de projeto: Descreve as ão de projeto: Descreve as dependências entre as atividades, o tempo dependências entre as atividades, o tempo estimado necessestimado necessáário para atingir cada marco rio para atingir cada marco e a alocae a alocaçção de pessoas nas atividades.ão de pessoas nas atividades. Planejamento de ProjetoPlanejamento de Projeto Mecanismos de monitoramento e de Mecanismos de monitoramento e de elaboraelaboraçção de relatão de relatóórios: Descreve os rios: Descreve os relatrelatóórios de gerenciamento que devem ser rios de gerenciamento que devem ser produzidos, quando eles devem ser produzidos, quando eles devem ser produzidos e quais mecanismos de produzidos e quais mecanismos de monitoramento são utilizados.monitoramento são utilizados. Marcos e produtos a serem Marcos e produtos a serem entreguesentregues Um marco Um marco éé o ponto final de uma atividade o ponto final de uma atividade de processo de software.de processo de software. A cada marco deve haver uma saA cada marco deve haver uma saíída formal, da formal, como um relatcomo um relatóório, que possa ser rio, que possa ser apresentado para a gerência, podendo ser apresentado para a gerência, podendo ser um breve relatum breve relatóório das realizario das realizaçções em uma ões em uma atividade de projeto.atividade de projeto. Devem representar o final de um estDevem representar o final de um estáágio gio distinto e ldistinto e lóógico de um projeto.gico de um projeto. Marcos e produtos a serem Marcos e produtos a serem entreguesentregues Um produto a ser entregue Um produto a ser entregue éé o resultado do o resultado do projeto entregue
Compartilhar