Baixe o app para aproveitar ainda mais
Prévia do material em texto
Profa. Fabrícia Damando Santos fabriciadamando@gmail.com Engenharia de Sofwtare Aula 1 - Introdução O que é um Software? Aurélio: Um sistema computacional, o conjunto dos componentes informacionais, que não fazem parte do equipamento físico e inclui os programas e os dados associados a eles Didática: Estruturas de dados que possibilitam manipular os dados que estão sendo tratados Instruções que executam funções e ações desejadas Documentos que descrevem a operação de programas Linguagens computacionais desenvolvidas para que um conjunto de dados gera informações e funções necessárias para executar determinadas ações. É muito mais que código!!!! Para desenvolver um SW • Conhecer as funções do computador • Teorias Computacionais quais estão descritas nos fundamentos da ciência da computação • Problema do cliente • Necessidade do cliente Técnicas e Ferramentas de Engenharia de Software Características do SW O Software é desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico: Custos são concentrados no trabalho de engenharia. Projetos não podem ser geridos como projetos de manufatura. “Fábrica de Software!” Características do SW Software não “se desgasta” , mas sofrem atualizações! Software não é sensível aos problemas ambientais que fazem com que o hardware se desgaste. Falhas para HW e SW (deterioração com modificações) Manutenção do SW é mais complexa Características do SW Maior parte do SW continua a ser construída sob demanda Diferentemente do HW Componentes de software reutilizáveis podem encapsular estruturas de dados ou processamento sobre dados Permitem a criação de novas aplicações a partir de partes “reusáveis” Orientação a Objetos Open Source Evolução do SW Os primeiros anos (1950 – 1960) Orientação batch Distribuição limitada Software customizado Não havia documentação Segunda geração (1960-1980) Multiusuário Tempo real Banco de dados Produto de software Terceira geração (1980 – 1990) Sistemas distribuídos Inteligência “embutida” Hardware de baixo custo Quarta geração (1990 – 2000) Sistema de desktop poderosos Orientação a objetos Sistemas especialistas Redes neurais artificiais Desenvolver SW? Automatizar processos Otimizar informações Gerenciamento e tomada de decisões Engenharia de Software? O conceito de Engenharia de Software: “Uma disciplina que reúne metodologias, métodos e ferramentas a ser utilizados, desde a percepção do problema até o momento em que o sistema desenvolvido deixa de ser operacional, visando resolver problemas inerentes ao processo de desenvolvimento e ao produto de software” Métodos Proporcionam os detalhes de “como fazer” para construir o software. Envolvem um conjunto de tarefas: - Planejamento e estimativa de projeto. - Análise de requisitos de software e de sistemas. - Projeto de estrutura de dados. - Programas e algoritmos de processamento. - Codificação. -Teste. - Manutenção. Ferramentas Proporciona apoio automatizado ou semi-automatizado aos métodos. Engenharia de software auxiliada por computador. CASE (Computer - Aided Software Engeneering). São ferramentas integradas de forma que a informação criada por uma ferramenta possa ser utilizada por outra ferramenta. brModelo DBdesigner Jude Workbanch Git hub Procedimentos Constituem o elo de ligação que mantém juntos os métodos e as ferramentas. Definem : - A seqüência em que os métodos serão aplicados. - Os produtos que ajudam a assegurar a qualidade e coordenar as mudanças. - Marcos de referência que possibilitam os gerentes de software avaliar o progresso. Engenharia de Software Engenharia de Software compreende um conjunto de etapas que envolve : Métodos, Ferramentas e Procedimentos. Essas etapas são conhecidas como componentes do Ciclo de Vida do Software. Ciclos de Vida mais conhecidos : Ciclo de Vida Clássico; Prototipação; Modelo Espiral; Técnicas de quarta geração Métodos ágeis Fases de Desenvolvimento de Sistemas Mitos do SW – Gerência Um manual oferece tudo que se precisa saber. Computadores de última geração solucionam problemas de desenvolvimento. Se estamos atrasados, basta adicionar programadores e tirar o atraso Mitos do SW – Cliente Uma declaração geral é suficiente para começar a escrever programas. Mudanças podem ser facilmente acomodadas em um projeto Mitos do SW – Programador Um programa está terminado ao funcionar. Quanto mais cedo escrever o código, mais rápido terminarei o programa. Só posso avaliar a qualidade de um programa em funcionamento. A única coisa a ser entregue em um projeto é o programa funcionando Problemas... desenvolvimento de SW Estimativas de custo e prazos imprecisas Produtividade das pessoas não acompanham as demandas por serviços Qualidade do software inadequada Não é dedicado tempo suficiente para coletar dados Poucos dados históricos para guiar estimativas Comunicação entre a equipe e entre equipe-cliente ineficaz Falta de metodologias de desenvolvimento Deficiência em técnicas de teste Manutenção exaustiva Desenvolvimento de Software Desenvolver software é uma tarefa complexa e sujeita a erros: Não cumprimento dos prazos Módulos que quando integrados não operam corretamente. Dificuldade de operação do software pelo usuário. Programas que param de funcionar Problemas desde a década de 70 Dificuldades Começam nas etapas iniciais: Delimitar o escopo de um sistema Volatilidade dos requisitos Mudanças das necessidades do usuário Pode repercutir em vários elementos da estrutura do programa Métodos e Ferramentas Métodos e Ferramentas de Engenharia de Software servem: Garantir ou facilitar a obtenção do objetivo de ter a qualidade nos programas É preciso definir: O alvo a ser atingido Discutir como aplicar requisitos de qualidade eficazes Qualidade do Software Para Pressman: “ Satisfação de requisitos funcionais e de desempenho explicitamente declarados, normas de desenvolvimento explicitamente documentadas e as características implícitas que são esperadas de todo software desenvolvido profissionalmente.” Objetivos da Engenharia de Software Desenvolvimento sistemático de SW Gerenciamento do processo de desenvolvimento, aplicando métodos, técnicas e ferramentas Produção da documentação formal para comunicação entre membros da equipe e aos usuários Porque engenharia de SW? Software mal construído pode causar danos irreparáveis! Metodologias, procedimentos, técnicas e ferramentas tem ganhado espaço nas empresas “Programadores” estão sendo substituídos pelos Engenheiros de Software Etapas da Eng. SW? 1. Construção de um produto: o software 2. Utilização de algum processo para construir esse produto 3. O processo usado envolve o projeto e verificação das qualidades desejáveis do produto 4. Utilização de mecanismo para gerenciamento do processo de construção do software 5. Utilização de ferramentas de apoio ao desenvolvimento do processo e do produto Etapas da Eng. SW Métodos Proporcionam os detalhes de “como fazer” para construir o SW Ferramentas Fornecem suporte automatizado ou semi- automatizado aos métodos Processos É a fundação - promove a sustentação Qualidade Foco na qualidade do SW gerado Processo de Software Determina ações práticas a serem realizadas pela equipe, com prazos definidos Abrange atividades fundamentais, como especificação, projeto, implementação, validação e evolução de software Atividades podem utilizar ferramentas de apoio diversas – ferramentas CASE Existem vários Modelos de Processo ou Paradigmas para representar genericamente um processo sob uma perspectiva Modelos de Processo Descrevem a estrutura de um Processo de forma abstrata, mas não os detalhes Existem dezenas de Paradigmas diferentes: Modelo em Cascata ou Ciclo de Vida Clássico ou Modelo Sequencial Linear Modelo de Prototipagem Modelo Espiral Modelo Concorrente Modelo Incremental Modelo RAD Desenvolvimento Baseado em Componentes Modelo de Métodos Formais Téçnicas de Quarta Geração (4GT) outros Atividades 1. Pesquisar as diferentes aplicações de Sw: SW de tempo real SW comercial Sw embarcado SW inteligente 2. Diferencie linguagem compilada de interpretada
Compartilhar