Post on 02-Oct-2015
transcript
Engenharia de Software
Produo de Software
1- Instrues
Passos que, em execuo, produzem a funo e o desempenho desejados.
2 - Estruturas de Dados
Armazenamento e manipulao adequada da informao necessria s instruo.
3 - Documentos
Descrio da operao e do uso dos programas.
*
*
Caractersticas do Software
1. Projetado.
2. No se desgasta mas se deteriora.
3. Demanda exigem, em grande parte das vezes, elaborao sob medida.
*
*
Conceito:
uma das reas da Engenharia que trata dos aspectos de produo de software.
Engenharia de software envolve a aplicao prtica de conhecimento cientfico para o projeto e construo de programas de computador e a documentao associada necessria para desenvolv-los, oper-los e mant-los. (Boehm)
Engenharia de Software
*
Objetivo:
O seu objetivo estabelecer uma sistemtica abordagem de desenvolvimento, atravs de ferramentas e tcnicas apropriadas, dependendo do problema a ser abordado, considerando restries e recursos disponveis.Engenharia de Software
*
Fundamentos:
Mtodos: detalhes de como fazer para construir o software
Ferramentas: suporte automatizado aos mtodos
Procedimentos: ligao entre os mtodos e ferramentas
Principais metas:
melhorar a qualidade de produtos de software
aumentar a produtividade do pessoal tcnico
aumentar a satisfao do cliente.
Engenharia de Software
*
Ciclo de vida
O Ciclo de vida do produto de software = Etapas Comea na concepo do problema (solicitao do usurio).Termina quando o sistema sai de uso.*
*
Alguns modelos de ciclos de vida mais conhecidos so:
Clssico: CascataEvolutivo: Prototipao Modelo EspiralCiclo de vida - Modelos
*
Ciclo de Vida Clssico (Cascata)
modelo mais antigo e o mais amplamente usado da engenharia de software modelado em funo do ciclo da engenharia convencionalrequer uma abordagem sistemtica, seqencial ao desenvolvimento de software*
Cascata
*
Engenharia de Sistemas
Anlise de Requisitos
Projeto
Codificao
Testes
Manuteno
Atividades do Ciclo de Vida Clssico
ANLISE E ENGENHARIA DE SISTEMAS
envolve a coleta de requisitos em nvel do sistema, pequena quantidade de projeto e anlise de alto nvel
viso essencial quando o software deve fazer interface com outros elementos (hardware, pessoas e banco de dados)
*
Engenharia de Sistemas
Anlise de Requisitos
Projeto
Codificao
Testes
Manuteno
Atividades do Ciclo de Vida Clssico
ANLISE DE REQUISITOS DE SOFTWARE
processo de coleta dos requisitos intensificado e concentrado especificamente no software
deve-se compreender o domnio da informao, a funo, desempenho e interfaces exigidos
os requisitos (para o sistema e para o software) so documentados e revistos com o cliente
*
Engenharia de Sistemas
Anlise de Requisitos
Projeto
Codificao
Testes
Manuteno
Atividades do Ciclo de Vida Clssico
PROJETO
traduo dos requisitos do software para um conjunto de representaes que podem ser avaliadas quanto qualidade, antes que a codificao se inicie
*
Engenharia de Sistemas
Anlise de Requisitos
Projeto
Codificao
Testes
Manuteno
Atividades do Ciclo de Vida Clssico
CODIFICAO
traduo das representaes do projeto para uma linguagem artificial resultando em instrues executveis pelo computador
*
Engenharia de Sistemas
Anlise de Requisitos
Projeto
Codificao
Testes
Manuteno
Atividades do Ciclo de Vida Clssico
TESTES
Concentram-se:
nos aspectos lgicos internos do software, garantindo que todas as instrues 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
Anlise de Requisitos
Projeto
Codificao
Testes
Manuteno
Atividades do Ciclo de Vida Clssico
MANUTENO
o software poder sofrer mudanas depois que for entregue ao cliente
causas das mudanas: erros, adaptao do software para acomodar mudanas em seu ambiente externo e exigncia do cliente para acrscimos funcionais e de desempenho
*
Engenharia de Sistemas
Anlise de Requisitos
Projeto
Codificao
Testes
Manuteno
Prototipao
processo que possibilita que o desenvolvedor crie um modelo do software que deve ser construdo. idealmente, o modelo (prottipo) 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 no identificou requisitos de entrada, processamento e sada com detalhes.*
Prototipao
*
fim
incio
construo produto
refinamento prottipo
avaliao prottipo
construo prottipo
projeto rpido
obteno dos requisitos
Atividades da Prototipao
Obteno dos Requisitos: desenvolvedor e cliente definem os objetivos gerais do software, identificam quais requisitos so conhecidos e as reas que necessitam de definies adicionais
Projeto Rpido: representao dos aspectos do software que so visveis ao usurio (abordagens de entrada e formatos de sada)
*
fim
incio
construo produto
refinamento prottipo
avaliao prottipo
construo prottipo
projeto rpido
obteno dos requisitos
Construo Prottipo: implementao do projeto rpido
Avaliao do Prottipo: cliente e desenvolvedor avaliam o prottipo
Atividades da Prototipao
*
fim
incio
construo produto
refinamento prottipo
avaliao prottipo
construo prottipo
projeto rpido
obteno dos requisitos
Refinamento dos Requisitos: cliente e desenvolvedor refinam os requisitos do software a ser desenvolvido.
Ocorre neste ponto um processo de iterao que conduzir a atividade at que as necessidades do cliente sejam satisfeitas e o desenvolvedor compreenda o que precisa ser feito.
Atividades da Prototipao
*
fim
incio
construo produto
refinamento prottipo
avaliao prottipo
construo prottipo
projeto rpido
obteno dos requisitos
Construo Produto:
identificados os requisitos, o prottipo deve ser descartado e a verso de produo deve ser construda considerando os critrios de qualidade.
Atividades da Prototipao
*
fim
incio
construo produto
refinamento prottipo
avaliao prottipo
construo prottipo
projeto rpido
obteno dos requisitos
Ciclo de Vida em Espiral
engloba as melhores caractersticas do ciclo de vida Clssico e da Prototipao, adicionando um novo elemento: a Anlise de Risco
segue a abordagem de passos sistemticos do Ciclo de Vida Clssico incorporando-os numa estrutura iterativa que reflete mais realisticamente o mundo real
usa a Prototipao, em qualquer etapa da evoluo do produto, como mecanismo de reduo de riscos
*
Espiral
*
deciso de continuar ou no
direo de um sistema concludo
avaliao do cliente
engenharia
anlise dos riscos
planejamento
Atividades do Ciclo de Vida em Espiral
Planejamento: determinao dos objetivos, alternativas e restriesAnlise de Risco: anlise das alternativas e identificao / resoluo dos riscosConstruo: desenvolvimento do produto no nvel seguinteAvaliao do Cliente: avaliao do produto e planejamento das novas fases*
avaliao do cliente
engenharia
anlise dos riscos
planejamento
Engenharia de Software
Metodologias
Crise do Software (~1970)
Desenvolvimento de Software de forma artesanal atravs do desenho de telas e arquivosConstantes erros de execuoPouco tempo para coletar dadosNo cumprimento de prazosProblemas de custos inesperados relacionados a correo de erros e adaptao do cdigoCdigo/documentao ilegvel ou inexistenteComunicao durante o desenvolvimento muito fracaFalta de testes complexosInsatisfao de usurios*
Surgimento das Metodologias de Desenvolvimento de Sistemas
*
Evoluo
*
Definio de Objetos
Dados, Controles
e Processos
Anlise OO
Middle - Out (Lista de Eventos)
Controles, Processos
e Dados
Anlise Essencial
Top-Down (Decomposio Funcional)
Processos e Dados
Anlise Estruturada
Abordagem
Enfoque
Tcnica
Anlise Estruturada
O mais amplamente usado dos mtodos de modelagem de requisitosModelos que retratam fluxo e o contedo da informao (dados e controle)O sistema dividido em parties funcionais e comportamentais e descrevemos a essncia do que deve ser construdoEnfatiza a perspectiva das funes, com nfase nos processos.Utiliza as seguintes ferramentas:Diagrama de Fluxo de Dados
Dicionrio de Dados
Especificao da Lgica de Processos
*
Exemplo: DFD
DFD Diagrama de Fluxo de Dados Tcnica grfica que descreve o fluxo da informao e as transformaes sofridas por esta Pode ser utilizado para representar um sistema em qualquer nvel de abstraoNotao simples*
E1
Departamento
de produo
E2
Fornecedores
P1
Escolher
fornecedor
P2
Pedir
materiais
Lista_materiais
necessrios
Pedido_preos
Preos_material
Nota_encomenta
Lista
Dados_fornecedor
Dados_fornecedor
Entidade
externa
Fluxo de dados
Depsito
De dados
Processo
Exemplo: DFD
*
D1 Fornecedores
Anlise Essencial
uma evoluo da Anlise Estruturada por adicionar a preocupao com o controle.Usa uma lista de eventos externos como base para o particionamento do sistema.O modelo essencial construdo sem considerar restries de implementao (assume uma tecnologia perfeita) essncia do sistema*
Diagrama de Contexto
*
Constri 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
*
Anlise Essencial
*
Anlise Orientada a Objetos
*
Foco
Sistema
Objeto
Anlise Orientada a Objetos
*
Anlise
Estruturada
e Essencial
Orientada a
Objetos
Enfoque
Conjunto de programas que executam processos
Sobre dados
Conjunto de entidades que tm caractersticas e
Comportamentos prprios
*
UML
UML (Unified Modeling Language) Linguagem de Modelagem Unificada uma linguagem de modelagem (visual), no uma linguagem de programaoPermite a utilizao de diagramas padronizados para especificao e visualizao de um sistema*
Diagramas UML
Estrutural (Esttica)Diagrama de ClassesDiagramas de ObjetosDiagrama de Caso de UsoDiagrama de ComponentesDinmicaDiagrama de EstadosDiagrama de AtividadesDiagrama de ColaboraoDiagrama de SeqnciaRepresentao Grfica de um Conjunto de Elementos*
Diagrama de Caso de Uso
Usado geralmente nas fases de Levantamento e Anlise de Requisito do Sistema, mostra como o sistema ir se comportar.*
Diagrama de Classes
*
Define a estrutura de classes do sistema e estabelece como elas se relacionam.
*
Classes
Uma classe composta por trs seesNome da Classe
DVD
Atributos
Operaes
Hora
Status
estrutura
comportamento
Voltar()
Pausar()
Adiantar()
Parar()
Tocar()
Diagrama de Objetos
*
Exibe os valores armazenados pelos objetos de um Diagrama de Classes
Conceito de Orientao a Objetos
OO
O que um Objeto ? a representao de um objeto real uma abstraotudo que manipulvel e/ou manufaturvelcoisa, pea, artigo de compra e vendapode ser uma composio de outros objetosExemplosautomvel, pessoa, elevador, janela, etc..OO
Propriedades de um Objeto o estado do objetoso atribuitos da coisaexemploEm um automvel temosligado/desligadoposiovelocidademarca/modelocor, placa, nmero de portas, etc.OO
OO
OO
OO
1) Abstrao
o processo de extrair as caractersticas essenciais de um objetoa abstrao de um objeto diferente de acordo com a viso de cada pessoaex: livroLivraria: autor, ttulo, assunto, editora, preo
Transportadora: nmero de pginas, formato e
tipo de capa (=>peso)
OO
2) Encapsulamento
o processo de combinar dados e funes relacionadas em um nico bloco de organizaoagrupa o estado do objeto e as funes que ele capaz de executar, e que alteram seu prprio estadoesconde a complexidade do cdigoexemplo: radio.ligar := true;radio.gravar(musica);
OO
3) Herana
o aproveitamento e extenso das caractersticas de uma classe existenteuma classe mais sofisticada herda as caractersticas e funcionalidades de uma classe bsicaexemplo:Classe CARROS_ESPORTIVOScomo herana da Classe CARROS
* Novos Atributos: turbo, barra de proteo, rdio intercomunicador, temperatura do leo, etc.
OO
4) Polimorfismo
a propriedade de se utilizar um mesmo nome ou forma para fazer coisas diferentesmuito til para escrever programas versteis, que possam lidar com vrios tipos diferentes de objetosexemplo:tringulo.Desenhe;retngulo.Desenhe;
crculo.Desenhe;
reta.Desenhe;
Sobreposio
de mtodos
OO
OO