370 likes | 500 Views
Técnicas e Projeto de Sistemas. Técnico Subsequente Ana Paula Alves de Lima. REVISÃO GERAL. Introdução à Engenharia de Software Definições. Sistemas Software Projeto Engenharia de Software. Sistemas. Sistemas: é uma ligação entre componentes comuns, com objetivos comuns.
E N D
Técnicas e Projeto de Sistemas Técnico Subsequente Ana Paula Alves de Lima Técnicas e Projeto de Sistemas – Técnico Subsequente
REVISÃO GERAL Técnicas e Projeto de Sistemas – Técnico Subsequente
Introdução à Engenharia de SoftwareDefinições • Sistemas • Software • Projeto • Engenharia de Software
Sistemas • Sistemas: é uma ligação entre componentes comuns, com objetivos comuns. • Exemplos: sistema solar, sistema respiratório...
Software • Conjunto de procedimentos que controlam o funcionamento de uma máquina. Sistema == Software??? Técnicas e Projeto de Sistemas – Técnico Subsequente
Software • O Software é um tipo de sistema para auxiliar, agilizar um processo por vários motivos. Aumentar velocidade, diminuir custos, otimizar recursos, etc. • São programas de computador, junto com manuais, especificações, planos de teste, etc. • Então está claro a diferença? Software X Sistema
Projeto • Envolve a antecipação de algo desejável que ainda não foi realizado, traz a idéia de pensar uma realidade que ainda não aconteceu. O processo de projetar implica analisar o presente como fonte de possibilidades futuras (FREIRE e PRADO, 1999). • Exemplos: • Construção de uma casa; • Desenvolvimento de uma página da internet.
Engenharia de Software • Aplicação da disciplina de técnicas no desenvolvimento e manutenção de software. Produto de Software Contexto (Problema) E.S. Técnicas e Projeto de Sistemas – Técnico Subsequente
Introdução à Engenharia de Software • A Engenharia de Software objetiva: • Prover métodos (“como fazer”), ferramentas e procedimentos (sequênciaem que os métodos serão aplicados) para o desenvolvimento de softwarede maneira que ele atinja seus objetivos. Técnicas e Projeto de Sistemas – Técnico Subsequente
A IMPORTÂNCIA DA ENGENHARIA DE SOFTWARE Técnicas e Projeto de Sistemas – Técnico Subsequente
Introdução à Engenharia de Software • Por que devemos nos preocupar com o processo de desenvolvimento do software? • O estudioso Pressman afirma que o softwarede computador é a tecnologia mais importante atualmente no mundo, pois: • Alterou modelos de negócios (e-commerce); • Aumentou perspectivas da ciência (genética); • Potencializou as telecomunicações; • Revolucionou a indústria cinematográfica. Técnicas e Projeto de Sistemas – Técnico Subsequente
Introdução à Engenharia de Software • As potências econômicas são dependentes de software; • Como consequência, mais e mais empresas dependem de softwarepara obter sucesso na sua área de atuação; Técnicas e Projeto de Sistemas – Técnico Subsequente
Introdução à Engenharia de Software • O softwareé diferente de outros produtos pois: • Possui invisibilidade, uma vez que não pode ser representado por estruturas geométricas ou embutido em um espaço físico: • É visto como um produto de pensamentos e de fácil alteração; • Requer boa habilidade dos projetistas para extrair informações dos clientes; • Necessita de boa comunicação entre os desenvolvedores para que o “mesmo software” seja desenvolvido por todos. Técnicas e Projeto de Sistemas – Técnico Subsequente
Roteiro da aula 3 • Tema: Processo de Desenvolvimento de Software. • Engenharia de Software; • Processo de Desenvolvimento de Software; • Ciclos de Desenvolvimento de Software; Técnicas e Projeto de Sistemas – Técnico Subsequente
Relembrando: • Definição de Engenharia de Software:
Introdução à Engenharia de Software • A Engenharia de Software objetiva: • Prover métodos (“como fazer”), ferramentas e procedimentos (sequênciaem que os métodos serão aplicados) para o desenvolvimento de softwarede maneira que ele atinja seus objetivos. Técnicas e Projeto de Sistemas – Técnico Subsequente
Engenharia de Software • Um software deve, de forma geral, atender os seguintes objetivos: • Funcionalidade; • Custo; • Tempo; • Desempenho; • Padrões; • Leis; • Atender as partes interessadas (stakeholders). Técnicas e Projeto de Sistemas – Técnico Subsequente
Engenharia de Software Mas como posso atingir todos esses objetivos??? Técnicas e Projeto de Sistemas – Técnico Subsequente
Engenharia de Software Seguindo um processo de desenvolvimento de software!! Técnicas e Projeto de Sistemas – Técnico Subsequente
Processo de Desenvolvimento de Software • Processo: • É uma sequência de passos que devem ser seguidos para se atingir determinado objetivo. • Processo de desenvolvimento de software: • Também chamado simplesmente de processo de software; • Objetiva a construção de um software; • Sub processos: • Requisitos, análise, desenho, implementação e teste. Técnicas e Projeto de Sistemas – Técnico Subsequente
Processo de Desenvolvimento de Software • O ponto de partida então é seguir um ciclo de vida: • É uma interação entre os processos; descreve as fases que o software vai passar; • Baseado em: • Complexidade; • Risco; • Tamanho da equipe; • Necessidade do cliente. Técnicas e Projeto de Sistemas – Técnico Subsequente
Introdução à Engenharia de Software • Principais modelos de ciclo de vida do software: • Codifica-remenda; • Cascata; • Prototipagem evolutiva ou incremental; • Espiral; • Entrega evolutiva; Técnicas e Projeto de Sistemas – Técnico Subsequente
Ciclos de Vida de Software • Codifica-remenda: • Partindo de uma especificação incompleta • Alto risco; • Impossível de gerenciar; • Não permite assumir compromissos confiáveis Produto Especificação??? Técnicas e Projeto de Sistemas – Técnico Subsequente
Codifica-remenda Partindo de uma especificação incompleta, ou mesmo ausente, inicia-se a codificação do software, que por sua vez tende a gerar “algo”. Esse “algo gerado”, na grande maioria das vezes não é o que o cliente deseja, mas vai sendo alterado e consertado até que o produto atinja um estágio que permita seu uso. Nenhum processo é seguido nessa iteração.
Ciclos de Vida de Software • Clássico ou Cascata: • Foi o primeiro modelo a ser conhecido em engenharia de software e está na base de muitos ciclos de vida utilizados nos dias de hoje. • Cada passo deve ser completado antes que o próximo passo possa ser iniciado.
Ciclos de Vida de Software • Clássico ou Cascata: • Sequencial; • Rígido; • Burocrático; • Não prevê correções nas fases posteriores; • O cliente só vê o resultado no final do projeto; • Indicado para projetos pequenos. Técnicas e Projeto de Sistemas – Técnico Subsequente
Ciclos de Vida de Software Clássico ou Cascata: início Requisitos Análise Desenho Implementação Teste Final Técnicas e Projeto de Sistemas – Técnico Subsequente
Ciclos de Vida de Software • Espiral: • O modelo espiral é mais adequado para sistemas complexos e que exijam um alto nível de interações com os usuários, a fim de possibilitar a abordagem de todos os problemas desse sistema. • Usado com mais frequência em grandes projetos. • Maior controle sobre os riscos do projeto, tornando o processo de construção de um produto complexo mais seguro.
Ciclos de Vida de Software • Espiral: 1 2 3 4 Técnicas e Projeto de Sistemas – Técnico Subsequente
Ciclos de Vida de Software • Prototipagem evolutiva ou incremental: • Baseado no modelo espiral; • Ao final de cada volta o usuário tem acesso a um protótipo; • Útil para aprovações de ideias e coleta de novos requisitos; • Desvantagem: • Cliente insiste que o protótipo seja, com ligeiras modificações, a versão final do produto. Técnicas e Projeto de Sistemas – Técnico Subsequente
Ciclos de Vida de Software • Prototipagem evolutiva: Técnicas e Projeto de Sistemas – Técnico Subsequente
Ciclos de Vida de Software • Entrega evolutiva: • Segue o modelo espiral somente a partir da fase desenho detalhado; • Modelo bastante utilizado na prática; • Exige uma boa fase de requisitos, análise e desenho alto nível. Técnicas e Projeto de Sistemas – Técnico Subsequente
Ciclos de Vida de Software • Entrega evolutiva: início Requisitos Análise Desenho de alto nível Desenho detalhado Implementação Teste Não Produto completo? Sim Final Técnicas e Projeto de Sistemas – Técnico Subsequente
Ciclos de Vida de Software • Quase-espiral: • Bastante aceito na prática; • É utilizado como base para outros modelos; • Mais próximo da realidade. Técnicas e Projeto de Sistemas – Técnico Subsequente
Ciclos de Vida de Software • Quase-espiral: início Visão Geral Requisitos Análise Desenho Produto completo? Implementação Sim Não Teste Final Técnicas e Projeto de Sistemas – Técnico Subsequente
Técnicas e Projeto de Sistemas Técnico Subsequente Ana Paula Alves de Lima Técnicas e Projeto de Sistemas – Técnico Subsequente