visão geral da engenharia de software
DESCRIPTION
Visão Geral da Engenharia de Software. Prof. Jalves Nicácio. Alguns problemas na construção de software. A nível industrial, algumas questões que caracterizaram as preocupações com o processo de desenvolvimento de software foram: por que o software demora tanto para ser concluído? - PowerPoint PPT PresentationTRANSCRIPT
VISÃO GERAL DA ENGENHARIA DE SOFTWAREProf. Jalves Nicácio
ALGUNS PROBLEMAS NA CONSTRUÇÃO DE SOFTWARE A nível industrial, algumas questões que
caracterizaram as preocupações com o processo de desenvolvimento de software foram: por que o software demora tanto para ser
concluído? por que os custos de produção têm sido tão
elevados? por que não é possível detectar todos os erros
antes que o software seja entregue ao cliente? por que é tão difícil medir o progresso durante o
processo de desenvolvimento de software?
PROBLEMA DE COMUNICAÇÃO ENTRE CLIENTE E FORNECEDOR a insatisfação do cliente com o sistema
"concluído" ocorre freqüentemente, devido, principalmente, ao fato de que os projetos de desenvolvimento são baseados em informações vagas sobre as necessidades e desejos do cliente;
FALTA DE TESTE a qualidade do software é quase sempre
suspeita, problema resultante da pouca atenção que foi dada, historicamente, às técnicas de teste de software (até porque o conceito de qualidade de software é algo relativamente recente);
PROGRAMAÇÃO SEM CONTROLES a “cultura de programação” que ainda é
difundida e facilmente aceita por estudantes e profissionais de Ciências da Computação;
COMO REDUZIR OU RESOLVER ESTES PROBLEMAS? Em primeiro lugar, é preciso estar ciente
também de que não existe uma abordagem mágica que seja a melhor para a solução destes problemas
É importante e desejável que estes métodos sejam suportados por um conjunto de ferramentas que permita automatizar o desenrolar destas etapas do projeto
É preciso uma definição clara de critérios de qualidade e produtividade de software
São estes aspectos que caracterizam a ENGENHARIA DE SOFTWARE
Na literatura, pode-se encontrar diversas definições da Engenharia de Software: "O estabelecimento e uso de sólidos princípios
de engenharia para que se possa obter economicamente um software que seja confiável e que funcione eficientemente em máquinas reais" [NAU 69].
“Conjunto de métodos, técnicas e ferramentas necessárias à produção de software de qualidade para todas as etapas do ciclo de vida do produto.” [Krakowiak, 85]
MODELOS DE DESENVOLVIMENTO DE SOFTWARE Modelo Cascata (Modelo
Queda d’Água) Engenharia de sistemas
objetivo é ter uma visão global do sistema como um todo (incluindo hardware, software,equipamentos e as pessoas envolvidas) como forma de definir precisamente o papel do software neste contexto.
Análise de requisitos Projeto Codificação Teste e Integração Operação e Manutenção
PROTOTIPAÇÃO é um modelo de desenvolvimento
interessante para alguns sistemas de grande porte os quais representem um certo grau de dificuldade para exprimir rigorosamente os requisitos;
através da construção de um protótipo do sistema, é possível demonstrar a realizabilidade do mesmo;
é possível obter uma versão, mesmo simplificada do que será o sistema, com um pequeno investimento inicial.
PROTOTIPAÇÃO
VISÃO GERAL DA ENGENHARIA DE SOFTWARE De um modo geral, pode-se organizar o
processo de desenvolvimento de um software a partir de três grandes fases: a fase de definição, a fase de desenvolvimento e a fase de manutenção
FASE DE DEFINIÇÃO A fase de definição está associada à
determinação do que vai ser feito Esta fase é caracterizada pela realização de três
etapas específicas: a Análise (ou Definição) do Sistema, a qual vai
permitir determinar o papel de cada elemento (hardware, software, equipamentos, pessoas) no sistema, cujo objetivo é determinar, como resultado principal, as funções atribuídas ao software;
o Planejamento do Projeto de Software, no qual, a partir da definição do escopo do software, será feita uma análise de riscos e a definição dos recursos, custos e a programação do processo de desenvolvimento;
a Análise de Requisitos, que vai permitir determinar o conjunto das funções a serem realizadas assim como as principais estruturas de informação a serem processadas.