Universidade São Judas Tadeu Prof. André Luiz Ribeiro Prof. Jorge Luis Pirolla Introdução à Computação Engenharia de Software Tópicos O que é Engenharia de Software? Engenharia de Software em camadas Processo de Desenvolvimento de Software Modelos de Processos de Software Perguntas e Definições O que é Engenharia de Software A engenharia de software é uma disciplina da computação, cuja meta é produzir software com uma boa relação custo/benefício. 1
Engenharia de Software em Camadas Engenharia de Software em Camadas Qualidade: É a camada que suporta a engenharia de software, tendo como foco um software total com qualidade; Processos: É a camada que constitui o elo que mantém juntos os métodos e as ferramentas, definindo a sequência que os métodos serão aplicados, controlando a qualidade e coordenando as mudanças de requisitos; Engenharia de Software em Camadas Métodos: É a camada que fornece a técnica de como fazer para construir softwares. Os métodos envolvem um amplo conjunto de tarefas que incluem: análise de requisitos, projeto, programas, testes etc; Ferramentas: É a camada que proporciona apoio automatizado aos processos e métodos, como por exemplo as ferramentas CASE (Computer Aided Software Engineering). 2
Processo de Desenvolvimento de Software O processo de desenvolvimento é um conjunto de atividades coerentes e consistentes para especificar, projetar, implementar e testar um software. O modelo de processo de desenvolvimento é uma representação abstrata de como será realizada a construção do software. Para que um processo? Para definir as atividades a serem conduzidas no projeto; Para uniformizar o entendimento dos envolvidos em relação ao desenvolvimento de sistemas; Para manter a consistência entre sistemas desenvolvidos em uma mesma empresa; Para viabilizar pontos de controle para a gerência. Modelos de Processos de Software Modelo Cascata; Modelo Prototipação; Modelo Espiral; Modelo Incremental; Modelo RUP; Modelo XP; Outros Modelos. 3
Modelo Cascata ENGENHARIA DE SISTEMAS Modelo original (Royce) ANÁLISE PROJETO CODIFICAÇÃO TESTE MANUTENÇÃO Como desenvolver Sistemas? 1º. Passo - Planejamento: Entendimento do Sistema Necessidades (requisitos) do sistema e planejamento dos demais passos. 2º. Passo Análise: Detalhamento do Sistema Análise detalhada do que o sistema deve fazer. 3º. Passo Projeto: Proposta de solução do Sistema Geralmente utiliza-se modelos (diagramas). Como desenvolver Sistemas? 4º. Passo Codificação: Implementação do modelo programação. 5º. Passo Teste: Testes do sistema já implementado verificação do funcionamento do sistema. 6º. Passo Manutenção: Manutenção do sistema possíveis correções, melhorias, novos requisitos. 4
Fazendo um comparativo com os programas realizados em laboratório... Fases do Sistema Objetivo Paralelo simples com a codificação de um programa Planejamento Especificar o sistema Enunciado do programa Análise Analisar como deve ser feito o sistema Leitura/entendimento do programa Projeto Esquematizar o sistema, geralmente através de alguma notação de gráfica (diagramas) Diagrama N/S, portugol ou fluxograma Implementação Codificar o sistema Programar.NET, Java etc... Testes Testar o sistema Verificar se o programa está funcionando de forma adequada Implantação Implantar/instalar o sistema Copiar o programa para outro computador Manutenção Realizar modificações no sistema Modificações no programa Perguntas e Definições Por que construir modelos? Comunicar a estrutura e o comportamento desejado do sistema; Visualizar e controlar a arquitetura do sistema; Compreender melhor o sistema; Reutilizar em sistemas idênticos; Gerenciar Riscos. 5
Objetivos dos modelos? Os modelos ajudam a visualizar o sistema como é e/ou como desejamos que seja; Os modelos permitem especificar a estrutura ou o comportamento de um sistema; Os modelos proporcionam um guia para a construção do sistema e Os modelos documentam as decisões tomadas. Por que utilizar notação gráfica para representar os modelos? UML (Unified Modeling Language) A UML (Unified Modeling Language) é uma linguagem padrão para a elaboração da estrutura de projetos de software, que surgiu em meados da década de 90. Pode-se definir UML como uma linguagem de modelagem usada para especificar, visualizar, construir e documentar sistemas orientados a objetos. 6