Engenharia de Software
Roteiro Software Evolução do Software Engenharia de Software Modelo Espiral
Software
Software Definição Conjunto de instruções que manipulam estruturas de dados (informação) Composição Instruções quando executadas produzem a função e o desempenho desejado Estruturas de dados possibilitam que os softwares manipulem adequadamente a informação Documentos descrevem a operação e o uso dos softwares
Software (cont.) Considerações Importantes O software não se desgasta, mas se deteriora; A maioria é feita sob medida em vez de ser montado a partir de componentes existentes; Custo, adequação do prazo e qualidade são os principais responsáveis pela competitividade de um software.
Software (cont.) Aplicações Comercial (Controle de estoque, etc...) Municipal (Contabilidade, Educação, Tributação, etc...) Científica (Mapeamento de genoma, etc...) Etc...
Evolução do Software
Evolução do Software 1ª Fase O Software era considerado um produto secundário Hardware de propósito geral Nenhum processo de engenharia de software
Evolução do Software (cont.) 2ª Fase Sistemas multi-usuários 1ª Geração de SGBD s Software house / Bibliotecas de Software Primeiras metodologias de análise de sistemas Manutenção quase impossível
Evolução do Software (cont.) 3ª Fase Sistemas distribuídos Redes locais e globais Uso de microprocessadores Hardware de baixo custo Processo maduros para a engenharia de software
Evolução do Software (cont.) 4ª Fase Tecnologia Orientada a Objetos Sistemas Especialistas (IA) Internet...
Engenharia de Software
Engenharia de Software Definição Área da informática que se preocupa com todos os aspectos da produção de software. ferramentas métodos processo foco na qualidade
Engenharia de Software (cont.) ferramentas métodos processo foco na qualidade Instrumento Dão suporte automatizado ou semi-automatizado ao processo e aos métodos; quando as ferramentas se integram tem-se um sistema denominado CASE (Computer Aided Software Engineering)
Engenharia de Software (cont.) ferramentas métodos processo foco na qualidade Como fazer Engloba um conjunto de tarefas: análise de requisitos, projeto, construção de programas, teste e manutenção.
Engenharia de Software (cont.) Fundação ferramentas métodos processo foco na qualidade É um conjunto de atividades e resultados associados que levam à produção de um produto de software.
Engenharia de Software (cont.) Solo ferramentas métodos processo foco na qualidade O gerenciamento da qualidade produz uma mudança cultural que permite o desenvolvimento crescente de abordagens mais maduras para a ES.
Engenharia de Software (cont.) Métodos Analise de Requisitos Envolve a coleta de requisitos (Engenharia de Requisitos) mais intensificada e concentrada no software a ser desenvolvido Tradução das representações em uma linguagem de programação Projeto Tradução dos requisitos do software para um conjunto de representações Codificação Efetua os testes, se necessário os diagnósticos e a correção de defeitos. Teste e Manutenção
Engenharia de Software (cont.) Seqüencial linear Prototipação Evolucionários Modelo de Processos Incremental Espiral Montagem de componentes Desenvolvimento concorrente
Modelo Espiral
Modelo Espiral (evolucionário)
Modelo Espiral (cont.) Planejamento: define recursos, referências de tempo e outras informações de projeto. Análise de Risco: levantamento de riscos técnicos e de gerenciamento. Engenharia: constrói uma ou mais representações da aplicação. Construção e release: constrói, testa, instala e dá suporte ao usuários (por exemplo: documentação e treinamento) Avaliação do cliente: obter feedback com base na representação do software criado durante a fase de engenharia e implementado na fase de construção.
Modelo Espiral (cont.) Atualmente, a abordagem mais realística; Desenvolvedor e cliente tem capacidade de entender e reagir aos riscos em cada etapa; Exige experiência na determinação de riscos e disso depende o sucesso do projeto.