Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE Aula 1- Fundamentos do Desenvolvimento de Software Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE O Software é a parte programável de um SI Sistemas de Informação Tecnologias Pessoas Procedimentos Hardware Software Redes B.D. Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE O SOFTWARE • O Valor de um Sistema de Informação depende da qualidade de seus componentes. • Cada um dos elementos pode por em cheque a confiabilidade e usabilidade de um SI. • O Software é um elemento (componente) central • Viabiliza as funcionalidades que as pessoas precisam • Excelentes algoritmos trarão funções eficientes e otimizadas, com informações confiáveis e precisas. • Possui uma estrutura interna • Qualidade do processamento (algoritmos) • Possui uma estrutura externa • Usabilidade do software • Possui íntima relação com demais tecnologias (redes, internet, banco de dados, hardware). Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE O SOFTWARE - PROBLEMAS • É a porção lógica (não é tangível) que comanda a operação dos demais componentes da Tecnologia (Hw, Redes e BD) • Tenha em mente: TECNOLOGIA não faz milagre e exige • Pessoas Qualificadas • Processos e Procedimentos adequados • Tecnologia adequada • Do contrário, teremos problemas no software • Pessoas que não sabem operar o sistema. • Processos e procedimentos que são mal definidos e formatados • Tecnologias ineficientes, que não realizam a tarefa que lhes cabe. Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE O SOFTWARE - HOJE • Responsável por prover informação para toda a empresas • Todas as áreas • Todos os níveis (operacional, gerencial e estratégico) • O SW é a Tecnologia mais complexa de ser desenvolvida • Manufaturado – pessoas desenvolvem – pouca ou nenhuma automação no processo • Grandes (toda as áreas) e complexos (Todos os níveis) • Mudanças rápidas (influência do meio) Fornecedores Clientes Concorrentes Acionistas Agencias Reguladoras Governo MKT e Vendas Compras Financeiro Fábrica / Serviço Estoque Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE O PROCESSO DE FABRICAÇÃO DO HW X SW • O processo de desenvolvimento (fabricação) do Hardware evoluiu muito em 70 anos padronização da indústria. • O do Software pouco evoluiu. POR QUE? Hardware Software Fabricação padronizada Manufaturado Falhas no início e fim da vida Falhas ao ser alterado Falha: Substituição de peças Falha: alteração Montagem: componentes padronizados Montagem: difícil padronizar para reutilização Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE O PROCESSO DE DESENVOLVIMENTO DO SOFTWARE • O desenvolvimento do SW depende MUITO do componente humano. Há pouca automação no desenvolvimento. Visão de projeto inadequada. Histórico: gestor de TI sem formação em ADM. Gestão (planejamento, organização e controle) ineficiente de prazos e custos Pressão dos usuários/clientes: rapidez. • Daí os problemas Prazos, Custos, Comunicação Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE HISTÓRICO DO DESENVOLVIMENTO DE SOFTWARE • No início • Sistemas pequenos e poucas mudanças • Usuário - Analista/Programador • Fases: Levantamento de dados – programação • Hoje • Sistemas grandes e muitas mudanças • Usuário Analista Equipe de desenvolv. • Fases: análise, projeto, programação, testes, implantação e manutenção • Ciclo de Vida do desenvolvimento (CVD) • Ciclo de Vida do Software = CVD + manutenção *********** Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE COMO TUDO COMEÇA ALTO NÍVEL DE ABSTRAÇÃO A distância entre idealizar e concretizar ******** Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE CICLO DE VIDA DO DESENVOLVIMENTO - FASES • Cada empresa pode definir seu próprio ciclo de vida de desenvolvimento • Fases e subfases, definindo atividades de cada uma • As fases e a maneira como são ordenadas e realizadas Processo de desenvolvimento Concepção Requisitos Análise Projeto Programação Testes Implantação Operação Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE CICLO DE VIDA DO DESENVOLVIMENTO - FASES • Organização das fases, estabelecendo: • Quais são elas? • Finalidade de cada uma? • Ordem e ligação entre elas? • Funcionamento do processo • Documentação e modelos de cada fase Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE CICLO DE VIDA DO DESENVOLVIMENTO - FASES Concepção Análise Desenho Implementação Testes Implantação Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE DESENVOLVIMENTO DE SOFTWARE DEMANDAM PROJETOS • O desenvolvimento de software deve ser feito dentro de um PROJETO e será / terá • Evento inédito o sistema é único • Data de Inicio, Data de Fim • Equipe (chefe: gerente de processo) • Recursos: humanos, R$ e Tempo • O Projeto vai gerenciar as fases do processo • Cada fase tem resultados: documento, diagrama (modelos), parte do produto do SW • O Software pronto deriva do resultado associado ao marco do projeto. Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE RISCOS NO PROJETO DO DESENVOLVIMENTO DO SOFTWARE • Todo projeto tem riscos. Com SW não é diferente. • Fases iniciais: incertezas maiores – Maior Risco A gestão dos riscos é fundamental • Planejamento dos riscos • Riscos identificados podem ser geridos • Análise dos riscos • Probabilidade de ocorrência + natureza + grau de impacto • Postura: Riscos x Oportunidades • Exemplo: aceitar prazo apertado ou baixo custo Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE REQUISITOS = CARACTERÍSTICAS DO SOFTWARE • Os softwares devem ter características para atender as necessidades de seus usuários • Essas características chamam-se requisitos • Existem 2 tipos de requisitos • Funcionais: representam o comportamento que o sistema deve apresentar. São as funcionalidades que o sistema possui. • Não Funcionais: quantificam determinados aspectos do comportamento. • Em um sistema, os tipos de transações (funções) suportadas são os requisitos funcionais • A facilidade de uso, o tempo de resposta e sua confiabilidade são requisitos não funcionais Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE ESPECIFICAÇÃO DOS REQUISITOS - FUNDAMENTAL • Os requisitos podem ser: • Explícitos: descritos em um documento de Especificação de requisitos • Normativos: descritos em leis, normas, regulamentos.. • Implícitos: expectativas dos clientes e usuários, e serão cobrados, embora não documentados • Implícitos: são Indesejáveis Não documentados não considerados no desenvolvimento• Resultado: Mesmo que sistema atenda aos requisitos explícitos e normativos, não atenderá as expectativas • Mesmo requisitos documentados podem resultar em problemas: incompletos, inconsistentes, ambíguos, • Além de requisitos irreais levantamento ruim Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE ENGENHARIA DOS REQUISITOS • É a base de um bom conjunto de requisitos: completos e verdadeiros é o uso de técnicas adequadas e eficientes de levantamento, análise de dados e documentação • Bom levantamento Requisitos implícitos são minimizados • Boa técnica de Análise ajuda a produzir especificações mais precisas e inteligíveis • Boa Documentação facilidade da equipe entender o projeto como um todo, ao longo do tempo • Engenharia de Requisitos = Levantamento + Análise + documentação Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE ENGENHARIA DOS REQUISITOS – CONSCIENTIZAÇÃO • Boas especificações são fundamentais porém custa tempo e dinheiro (Clientes, Gerente projeto...) • Especificações mal elaborada custa mais dinheiro e mais tempo • Importante: identificação dos requisitos reais • Participação dos usuários em todo processo. • Problema: Instabilidade dos Requisitos • Usuários solicitam novos ou pedem alteração de requisitos em fase avançada do desenvolvimento. • Consequencias: alto custo e retrabalho. • A boa engenharia de requisitos minimiza a Instabilidade Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE PROBLEMAS, PRAZOS E CUSTOS Fatos reais - Problemas + 30% dos projetos – CANCELADOS + 70% dos projetos – FALHAM as funcionalidades O software não faz o que deviam Tem baixa qualidade: erros, lentos, difíceis de usar Orçamento e Custo EXTRAPOLAM Custos – em mais de 180% a previsão Prazos – em mais de 200% o cronograma Custos do DESENVOLVIMENTO 80% - identificar e corrigir defeitos de programação Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE REALISMO DOS PRAZOS E CUSTOS • Estimar prazos faz parte da rotina de desenvolver software (técnicos e gestores) • SW Viável = Projeto com sucesso = SW atendendo ao que se deseja dele, no prazo e custo previstos • Se não for possível • SW NÃO é viável • Preferível outro produto, mesmo que sejam sacrificados alguns requisitos. • Problemas: ausência de • Técnicas de estimativas • Experiência Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE REQUISITOS X PRAZOS X CUSTOS Requisitos Prazos Custos • Aumento de Requisitos • Aumento Custo ou • Aumento Prazo ou • Aumento de ambos • Redução de Requisitos • Redução de Prazo • Redução de custos • NEM Sempre !!!! • Cumprir prazos: técnicas estimativas e análise • Tamanho, esforço, prazo e risco Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE QUALIDADE NO SOFTWARE • Estar de acordo com os requisitos • Requisitos Previstos x Realizados • Requisitos não atendidos = falhas (defeitos) SW • Defeitos podem ser inseridos em qualquer fase do processo de desenvolvimento • Solução: Garantir a qualidade em todo processo de desenvolvimento de software • Pior caso: defeito chega ao produto Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE QUALIDADE NO SOFTWARE • Nível de defeitos (erros) dentro do processo de desenvolvimento de software Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE FRASES SOBRE SOFTWARE • Usuário não conhece as suas necessidades • Usuário muda de idéia (requisito) toda hora • Cliente sempre quer o sistema para ontem • Cliente nunca quer pagar o quanto o sistema vale • A equipe de desenvolvimento não documentou o software em seu desenvolvimento • Pessoal o tempo está se esgotando, precisamos contratar mais gente • Pessoal vamos pula a fase de testes, o tempo esgotou • O usuário testa o sistema para nós ******** Processos de Desenvolvimento de Software– AULA1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE PRINCIPAIS CONCEITOS APRESENTADOS NA AULA. • O SW é o elemento central de tecnologia de um SI • O SW moderno é grande e complexo muitos problemas em seu desenvolvimento • O desenvolvimento do SW é manufaturado e sem muita padronização e automação • O processo de desenvolvimento é dividido em fases, cada qual com finalidades e marcos claros. • O desenvolvimento de SW demanda um projeto • Fundamental avaliar os riscos do desenvolvimento • Boa Engenharia de Requisitos é fundamental (levantamento + analise + documentação) • Requisitos x custos x prazo dificuldade em estimar • Qualidade = estar de acordo com requisitos • Avaliada ao longo do processo de desenvolvimento
Compartilhar