Engenharia de Software. Produção de Software 1- Instruções Passos que, em execução, produzem a...

Post on 17-Apr-2015

110 views 0 download

Transcript of Engenharia de Software. Produção de Software 1- Instruções Passos que, em execução, produzem a...

Engenharia de Software

Produção de Software

1- InstruçõesPassos que, em execução, produzem a função e o desempenho desejados.

2 - Estruturas de DadosArmazenamento e manipulação adequada da informação necessária às instrução.

3 - DocumentosDescrição da operação e do uso dos programas.

2

Características do Software

1. Projetado.

2. Não se desgasta mas se deteriora.

3. Demanda exigem, em grande parte das vezes, elaboração sob medida.

3

Conceito: É uma das áreas da Engenharia que trata dos

aspectos de produção de software.

Engenharia de software envolve a aplicação prática de conhecimento científico para o projeto e construção de programas de computador e a documentação associada necessária para desenvolvê-los, operá-los e mantê-los. (Boehm)

Engenharia de Software

4

Objetivo: O seu objetivo é estabelecer uma

sistemática abordagem de desenvolvimento, através de ferramentas e técnicas apropriadas, dependendo do problema a ser abordado, considerando restrições e recursos disponíveis.

Engenharia de Software

5

Fundamentos: Métodos: detalhes de como fazer para construir o

software

Ferramentas: suporte automatizado aos métodos

Procedimentos: ligação entre os métodos e ferramentas

Principais metas: melhorar a qualidade de produtos de software

aumentar a produtividade do pessoal técnico

aumentar a satisfação do cliente.

Engenharia de Software

6

Ciclo de vida

O Ciclo de vida do produto de software = Etapas

Começa na concepção do problema (solicitação do usuário).

Termina quando o sistema sai de uso.

7

Alguns modelos de ciclos de vida mais conhecidos são:

• Clássico: Cascata

• Evolutivo: Prototipação

• Modelo Espiral

Ciclo de vida - Modelos

8

Ciclo de Vida Clássico (Cascata)

modelo mais antigo e o mais amplamente usado da engenharia de software

modelado em função do ciclo da engenharia convencional

requer uma abordagem sistemática, seqüencial ao desenvolvimento de software

9

Engenharia de SistemasEngenharia de Sistemas

Análise de Requisitos Análise de Requisitos

Projeto Projeto

Codificação Codificação

Testes Testes

Manutenção Manutenção

Cascata

10

Atividades do Ciclo de Vida Clássico

ANÁLISE E ENGENHARIA DE SISTEMAS

envolve a coleta de requisitos em nível do sistema, pequena quantidade de projeto e

análise de alto nível

Engenharia de Sistemas

Análise de Requisitos

Projeto

Codificação

Testes

Manutenção

visão essencial quando o software deve fazer interface com

outros elementos (hardware, pessoas e banco de dados)

11

Atividades do Ciclo de Vida Clássico

ANÁLISE DE REQUISITOS DE SOFTWARE

processo de coleta dos requisitos é intensificado e concentrado especificamente no software

deve-se compreender o domínio da informação, a função, desempenho e interfaces exigidos

os requisitos (para o sistema e para o software) são documentados e revistos com o

cliente

Engenharia de Sistemas

Análise de Requisitos

Projeto

Codificação

Testes

Manutenção

12

Atividades do Ciclo de Vida Clássico

PROJETO

tradução dos requisitos do software para um conjunto de representações que podem ser avaliadas quanto à qualidade, antes que a

codificação se inicieEngenharia de Sistemas

Análise de Requisitos

Projeto

Codificação

Testes

Manutenção

13

Atividades do Ciclo de Vida Clássico

CODIFICAÇÃO

tradução das representações do projeto para uma linguagem

“artificial” resultando em instruções executáveis pelo

computador

Engenharia de Sistemas

Análise de Requisitos

Projeto

Codificação

Testes

Manutenção

14

Atividades do Ciclo de Vida Clássico

TESTES

Concentram-se:

nos aspectos lógicos internos do software,

garantindo que todas as instruções tenham sido

testadas

nos aspectos funcionais externos, para descobrir

erros e garantir que a entrada definida produza resultados

que concordem com os esperados.

Engenharia de Sistemas

Análise de Requisitos

Projeto

Codificação

Testes

Manutenção

15

Atividades do Ciclo de Vida Clássico

MANUTENÇÃO

o software poderá sofrer mudanças depois que for entregue ao cliente

Engenharia de Sistemas

Análise de Requisitos

Projeto

Codificação

Testes

Manutenção

causas das mudanças: erros, adaptação do

software para acomodar mudanças em seu

ambiente externo e exigência do cliente para acréscimos funcionais e

de desempenho

16

Prototipação

processo que possibilita que o desenvolvedor crie um modelo do software que deve ser construído.

idealmente, o modelo (protótipo) serve como um mecanismo para identificar os requisitos de software.

apropriado para quando o cliente definiu um conjunto de objetivos gerais para o software, mas não identificou requisitos de entrada, processamento e saída com detalhes.17

fim

início

construção produto

refinamento protótipo

avaliação protótipo

construção protótipo

projeto rápido

obtenção dos

requisitos

Prototipação

18

Atividades da Prototipação

Obtenção dos Requisitos: desenvolvedor e cliente definem os objetivos gerais do software, identificam quais requisitos são

conhecidos e as áreas que necessitam de definições

adicionais

Projeto Rápido: representação dos aspectos do software que são

visíveis ao usuário (abordagens de entrada e formatos de saída)

fim

início

construção produto

refinamento protótipo

avaliação protótipo

construção protótipo

projeto rápido

obtenção dos

requisitos

19

Construção Protótipo: implementação do projeto

rápido

Avaliação do Protótipo: cliente e desenvolvedor

avaliam o protótipo

Atividades da Prototipação

fim

início

construção produto

refinamento protótipo

avaliação protótipo

construção protótipo

projeto rápido

obtenção dos

requisitos

20

Refinamento dos Requisitos: cliente e desenvolvedor refinam os requisitos do

software a ser desenvolvido.

Ocorre neste ponto um processo de iteração que

conduzirá a atividade até que as necessidades do cliente

sejam satisfeitas e o desenvolvedor compreenda o

que precisa ser feito.

Atividades da Prototipação

fim

início

construção produto

refinamento protótipo

avaliação protótipo

construção protótipo

projeto rápido

obtenção dos

requisitos

21

Construção Produto:

identificados os requisitos, o protótipo deve ser

descartado e a versão de produção deve ser

construída considerando os critérios de qualidade.

fim

início

construção produto

refinamento protótipo

avaliação protótipo

construção protótipo

projeto rápido

obtenção dos

requisitos

Atividades da Prototipação

22

Ciclo de Vida em Espiral

engloba as melhores características do ciclo de vida Clássico e da Prototipação, adicionando um novo elemento: a Análise de Risco

segue a abordagem de passos sistemáticos do Ciclo de Vida Clássico incorporando-os numa estrutura iterativa que reflete mais realisticamente o mundo real

usa a Prototipação, em qualquer etapa da evolução do produto, como mecanismo de redução de riscos

23

decisão de continuar ou não

direção de um sistema concluídoavaliação

do cliente engenharia

análise dos riscos

planejamento

Espiral

24

Atividades do Ciclo de Vida em Espiral

Planejamento: determinação dos objetivos, alternativas e restrições

Análise de Risco: análise das alternativas e identificação / resolução dos riscos

Construção: desenvolvimento do produto no nível seguinte

Avaliação do Cliente: avaliação do produto e planejamento das novas fases

avaliação do cliente engenharia

análise dos riscos

planejamento

25

Engenharia de SoftwareMetodologias

Crise do Software (~1970)

Desenvolvimento de Software de forma “artesanal” através do desenho de telas e arquivos

Constantes erros de execução Pouco tempo para coletar dados Não cumprimento de prazos Problemas de custos inesperados relacionados a

correção de erros e adaptação do código Código/documentação ilegível ou inexistente Comunicação durante o desenvolvimento muito fraca Falta de testes complexos Insatisfação de usuários

27

Surgimento das Metodologias de Desenvolvimento de Sistemas

28

Definição de Objetos Dados, Controles

e Processos

Análise OO

Middle - Out (Lista de Eventos)

Controles, Processos

e Dados

Análise Essencial

Top-Down (Decomposição Funcional)

Processos e Dados Análise Estruturada

AbordagemEnfoqueTécnica

Evolução

29

Análise Estruturada O mais amplamente usado dos métodos de

modelagem de requisitos Modelos que retratam fluxo e o conteúdo da

informação (dados e controle) O sistema é dividido em partições funcionais e

comportamentais e descrevemos a essência do que deve ser construído

Enfatiza a perspectiva das funções, com ênfase nos processos.

Utiliza as seguintes ferramentas:

Diagrama de Fluxo de Dados

Dicionário de Dados

Especificação da Lógica de Processos

30

Exemplo: DFD

DFD – Diagrama de Fluxo de Dados Técnica gráfica que descreve o fluxo da

informação e as transformações sofridas por esta Pode ser utilizado para representar um sistema

em qualquer nível de abstração Notação simples

31

E1Departamentode produção

E2Fornecedores

P1Escolher

fornecedor

P2Pedir

materiais

D1 Fornecedores

Lista_materiaisnecessários

Pedido_preços

Preços_material

Nota_encomenta

Lista

Dados_fornecedor

Dados_fornecedor

Entidade externa

Fluxo de dadosDepósitoDe dados

Processo

Exemplo: DFD

32

Análise Essencial

É uma evolução da Análise Estruturada por

adicionar a preocupação com o controle.

Usa uma lista de eventos externos como base

para o particionamento do sistema.

O modelo essencial é construído sem considerar

restrições de implementação (assume uma

tecnologia perfeita) – essência do sistema

33

Diagrama de Contexto

34

Constrói um DFD para cada evento (DFD de resposta a eventos). A partir dele é feito o agrupamento para formar os diagramas superiores e inferiores.

Lista de eventos

35

Análise Essencial

36

O mundo real é composto por objetos.

Cada objeto tem propriedades e comportamentos.

Então porquê não desenvolver programas que

simulem no computador os objetos do mundo real

com suas propriedades e comportamentos?

Análise Orientada a Objetos

37

Nos métodos tradicionais de análise, o

comportamento do sistema e seus dados eram

considerados separadamente. Com orientação a

objetos, comportamento e dados são integrados,

assim encapsulando detalhes internos de um objeto

dos demais.Análise

Estruturadae Essencial

Orientada aObjetos

Enfoque

Conjunto de programas que executam processosSobre dados

Conjunto de “entidades” que têm características e Comportamentos próprios

Foco

Sistema

Objeto

Análise Orientada a Objetos

38

UML

UML (Unified Modeling Language) – Linguagem de

Modelagem Unificada

É uma linguagem de modelagem (visual), não

uma linguagem de programação

Permite a utilização de diagramas padronizados

para especificação e visualização de um sistema

39

Diagramas UML

Estrutural (Estática) Diagrama de Classes Diagramas de Objetos Diagrama de Caso de Uso Diagrama de

Componentes

Dinâmica Diagrama de Estados Diagrama de

Atividades Diagrama de

Colaboração Diagrama de

Seqüência

Representação Gráfica de um Conjunto de Elementos

40

Diagrama de Caso de Uso Usado geralmente nas fases de Levantamento e

Análise de Requisito do Sistema, mostra como o sistema irá se comportar.

41

Diagrama de Classes

42

Define a estrutura de classes do sistema e estabelece como elas se relacionam.

43

Classes Uma classe é composta por três seções

Nome da Classe DVD

Atributos

Operações

HoraStatus estrutura

comportamento

Voltar()Pausar()Adiantar()Parar()Tocar()

Diagrama de Objetos

44

Exibe os valores armazenados pelos objetos de um Diagrama de Classes

Conceito de Orientação a Objetos

OO

O que é um Objeto ? é a representação de um objeto real é uma abstração tudo que é manipulável e/ou manufaturável coisa, peça, artigo de compra e venda pode ser uma composição de outros objetos

Exemplos automóvel, pessoa, elevador, janela, etc..

OO

Propriedades de um Objeto é o estado do objeto são atribuitos da “coisa” exemplo

Em um automóvel temos ligado/desligado posição velocidade marca/modelo cor, placa, número de portas, etc.

Métodos de um objeto representa o comportamento do objeto muda o estado do objeto exemplo

Em um automóvel temos ligar/desligar acelerar freiar virar p/ esquerda virar p/ direita

OO

Eventos de um Objeto são acontecimentos que fazem o objeto

responder de determinada maneira alteram o estado e mudam o comportamento exemplo

Em um automóvel temos usuário...

pisa no acelerador ou no freio vira o volante para esquerda ou direita vira a chave na ignição para ON ou OFF

OO

Classe de Objetos Definição de um tipo de objetos Define a forma de se criar objetos É uma fábrica de objetos Todos os objetos de uma classe têm uma estrutura

idêntica, mas cada objeto terá seus próprios atributos

Exemplo Classe: CARROS (cor, portas, placa, posição, velocidade,

etc.) Objeto: carro vermelho/2

pts/XXX9999/(100,10)/100km/h...

OO

Porque usar Objetos ? Simplicidade: os objetos escondem a

complexidade do código. Pode-se criar aplicações sem se conhecer a complexidade do código.

Reutilização de código: um objeto, depois de criado, pode ser reutilizado por outras aplicações, e até extender suas funções.

Inclusão dinâmica: objetos podem ser incluídos dinâmicamente durante a execução, reduzindo o tamanho do arquivo final.

OO

Princípios básicos de uma linguagem OO1) Abstração é o processo de extrair as características

essenciais de um objeto a abstração de um objeto é diferente de

acordo com a visão de cada pessoa ex: livro

Livraria: autor, título, assunto, editora, preço Transportadora: número de páginas, formato e

tipo de capa (=>peso)

OO

Princípios básicos de uma linguagem OO2) Encapsulamento é o processo de combinar dados e funções

relacionadas em um único bloco de organização agrupa o estado do objeto e as funções que ele é

capaz de executar, e que alteram seu próprio estado

esconde a complexidade do código exemplo: radio.ligar := true;

radio.gravar(musica);

OO

Princípios básicos de uma linguagem OO3) Herança é o aproveitamento e extensão das características

de uma classe existente uma classe mais sofisticada herda as

características e funcionalidades de uma classe básica

exemplo: Classe CARROS_ESPORTIVOS

como herança da Classe CARROS

* Novos Atributos: turbo, barra de proteção, rádio intercomunicador, temperatura do óleo, etc.

OO

Princípios básicos de uma linguagem OO4) Polimorfismo é a propriedade de se utilizar um mesmo nome ou

forma para fazer coisas diferentes muito útil para escrever programas versáteis, que

possam lidar com vários tipos diferentes de objetos exemplo: triângulo.Desenhe;

retângulo.Desenhe;círculo.Desenhe;reta.Desenhe;

Sobreposição de métodos

OO

Programação OO (Orientada a Objetos) Os objetos são a base da tecnologia Consistem de modelos (abstrações) de objetos

reais Preservam as características essenciais de um

objeto real: suas propriedades e seu comportamento (métodos)

Exemplos de linguagens OO C++, Delphi, Java, etc.

OO