I Processos de desenvolvimento de SW profa. Denise Neves profa.denise@hotmail.com 2018
Projeto Um projeto é um empreendimento temporário empreendido para alcançar um único conjunto de objetivos. (PMI,PMBOK Guide)
Projeto Projeto de TI Projetos de desenvolvimento de Softwares, podem ser de desenvolvimento de um novo projeto ou a atualização de programas existentes; A seleção, aquisição e implementação de pacotes de Softwares, os quais podem incluir aspectos de customização; A seleção, aquisição e implementação de Softwares, o que pode incluir equipamento de mainframe, servidores, estações de trabalho e outros equipamentos de suporte;
Projeto Projeto de TI Produtos de redes e telecomunicações e a seleção de serviços, aquisição ou implementação; Integração de sistemas ; e Alguma combinação dos itens acima
Sistema É um conjunto de elementos que se relacionam logicamente entre si, para atingir um objetivo. Características : Objetivo: é a razão pela qual o sistema existe. Elementos: são as partes que compõem o sistema. Estrutura: é a forma como os elementos se relacionam entre si.
Sistema de Informação É um conjunto de elementos que integram logicamente entre si, com a finalidade de gerar informação para a tomada de decisão. Exemplos: TIA, Sistema de Folha de Pagamento, Sistema de Controle de Estoque, Jornal, Televisão. Características de um Sistema de Informação: Objetivo: gerar informação em nível estratégico, tático e operacional. Elementos: dados, sistema de processamento de dados e meios de comunicação. Estrutura: maneira pela qual, diversos sistemas de informação se relacionam entre si.
Diariamente, todos nós interagimos com Sistemas de Informação, tanto pessoal como profissionalmente. Atualmente vivemos em uma economia de informação (pense na internet, quanto vale o cadastro de um usuário de um site de E- Commerce?). Os computadores e sistemas de informação mudarão para sempre nossa sociedade, nossas relações comerciais, nossa vida.
Conceitos Básicos Ciclo de Vida do Software O ciclo de vida de um software descreve as fases pelas quais o software passa desde a sua concepção até ficar sem uso algum.
Conceitos Básicos Fases do Ciclo de Vida de Sistemas Fase de definição Análise e Especificação Estudo de Viabilidade Estimativas Planejamento Fase de desenvolvimento Design Implementação e integração Verificação e Validação
Conceitos Básicos Fases do Ciclo de Vida Fase de operação Distribuição, Instalação e Configuração Utilização e administração Manutenção corretiva, evolutiva e adaptativa Fase de retirada Migração, reengenharia, engenharia reversa
Conceitos Básicos Fases de Definição Deve-se analisar os requisitos, recursos e restrições para apresentar soluções, estudar a viabilidade, planejar e gerenciar o desenvolvimento a partir de estimativas e análise de riscos que se utilizam de métricas Esta fase encerra-se com o contrato de desenvolvimento.
Conceitos Básicos Fase de desenvolvimento Design de Software Design conceitual, design da interface de usuário, design da arquitetura de software, design de algoritmos e estruturas de dados Implementação e integração Codificação, compilação, integração e verificação de programas (testes, inspeção, depuração) Verificação da qualidade Testes beta, avaliação de usabilidade, avaliação de desempenho, etc.
Conceitos Básicos Fase de Operação Distribuição e entrega Instalação e configuração Utilização Manutenção corretiva correção de erros evolutiva ou adaptativa novas versões Novos requisitos - novas situações de operação hardware - sistemas operacionais
Conceitos Básicos FASE DE RETIRADA Evolução do software - Sistemas legado - Reengenharia de Software
Conceitos Processos de Software Conjunto coerente de atividades para especificar, projetar, implementar e testar sistemas de software
Processos Objetivos : Apresentar os modelos de processo de software Descrever os diferentes modelos de processos e quando eles podem ser utilizados Descrever em formas gerais os modelos de processo para engenharia de requisitos, desenvolvimento de software, testes e evolução Apresentar a tecnologia CASE para apoiar atividades do processo de software
Processos Modelos genéricos de modelos de processo de software O modelo cascata Fases de especificação e desenvolvimento separadas e distintas Desenvolvimento evolucionário Especificação e desenvolvimento são interfoliadas Desenvolvimento formal de sistemas Um modelo matemático do sistema é transformado formalmente em uma implementação Desenvolvimento baseado em reuso O sistema é montado a partir de componentes existentes
Processos Fases do modelo Cascata Definição e análise de requisitos Projeto do sistema e do software Implementação e testes de unidade Integração e testes do sistema Operação e manutenção A desvantagem do modelo cascata é a dificuldade de acomodar as mudanças após o processo ter sido iniciado
Modelo Cascata[sommerville]
Processos Problemas da fase do modelo cascata Particionamento inflexível do projeto em fases distintas Isso torna difícil responder a requisitos do usuário que mudam Portanto, esse modelo é apropriado somente quando os requisitos são bem compreendidos
Processos Desenvolvimento Evolucionário Desenvolvimento exploratório O objetivo é trabalhar com os clientes e evoluir um sistema final a partir de uma especificação genérica inicial. O desenvolvimento se inicia com as partes do sistema que estão compreendidas. Fazer protótipos descartáveis O objetivo é compreender os requisitos do sistema. O protótipos e concentra em fazer experimentos com partes dos requisitos que estejam mal compreendidas
Evolucionários [summerville]
Desenvolvimento Evolucionário Problemas - Falta de visibilidade do processo - Os sistemas freqüentemente possuem pouca estrutura Podem ser exigidas habilidades especiais (p.ex.em linguagens para desenvolvimento rápido) Aplicabilidade -Para sistemas interativos pequenos ou de médio porte -Para partes de sistemas grandes (p.ex., a interface com o usuário) -Para sistemas de vida curta
Processos Desenvolvimento formal de sistemas Baseia-se na transformação de uma especificação matemática por meio de diferentes representações para um programa executável As transformações 'preservam a corretude', de tal forma que possa ser diretamente mostrado que o programa está de acordo com a sua especificação Embutida na abordagem de desenvolvimento de software chamada Cleanroom
Desenvolvimento Formal
Desenvolvimento Formal Problemas Necessidade de habilidades especiais e treinamento para aplicar a técnica Dificuldade de especificar formalmente alguns aspectos do sistema, tais como a interface com o usuário Aplicabilidade Sistemas críticos, especialmente aqueles onde um estudo de segurança deve ser feito antes de pôr o sistema em operação
Processos Desenvolvimento orientado ao reuso Baseia-se no reuso sistemático, onde sistemas são integrados a partir de componentes existentes ou sistemas COTS (Commercial-off-the-shelf) Estágios do processo Análise dos componentes Modificação de requisitos Projeto do sistema com reuso Desenvolvimento e integração Esta abordagem está se tornando mais importante, mas ainda há uma experiência limitada com ela
Desenvolvimento orientado ao reuso
Conceitos Básicos Objetivos da Aplicação de teoria, modelos, formalismos, técnicas e ferramentas da ciência da computação e áreas afins para o desenvolvimento sistemático de software. Aplicação de métodos, técnicas e ferramentas para o gerenciamento do processo de desenvolvimento. Produção da documentação formal destinada a comunicação entre os membros da equipe de desenvolvimento bem como aos usuários.
Conceitos Básicos Aspectos Históricos 1968 Conferência da OTAN, Garmisch Objetivo: resolver a Crise do Software Software é entregue Atrasado Com orçamento estourado Com falhas residuais Custo do hardware decrescente e custo do software em ascensão
Bibliografia Roger Pressman 7ª edição McGraw-Hill