aula info (2)
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
*
- O mundo real composto por objetos. Cada objeto tem propriedades
e comportamentos. Ento porqu no desenvolver programas que simulem
no computador os objetos do mundo real com suas propriedades e
comportamentos?
Anlise Orientada a Objetos
*
- Nos mtodos tradicionais de anlise, o comportamento do sistema e
seus dados eram considerados separadamente. Com orientao a objetos,
comportamento e dados so integrados, assim encapsulando detalhes
internos de um objeto dos demais.
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. - Mtodos de um objetorepresenta o comportamento do objetomuda o
estado do objetoexemploEm um automvel temosligar/desligar
acelerarfreiarvirar p/ esquerdavirar p/ direita
OO
- Eventos de um Objetoso acontecimentos que fazem o objeto
responder de determinada maneiraalteram o estado e mudam o
comportamentoexemploEm um automvel temosusurio... pisa no
acelerador ou no freiovira o volante para esquerda ou direitavira a
chave na ignio para ON ou OFF
OO
- Classe de ObjetosDefinio de um tipo de objetosDefine a forma de
se criar objetos uma fbrica de objetosTodos os objetos de uma
classe tm uma estrutura idntica, mas cada objeto ter seus prprios
atributosExemploClasse: CARROS (cor, portas, placa, posio,
velocidade, etc.)Objeto: carro vermelho/2
pts/XXX9999/(100,10)/100km/h...
OO
- Porque usar Objetos ?Simplicidade: os objetos escondem a
complexidade do cdigo. Pode-se criar aplicaes sem se conhecer a
complexidade do cdigo.Reutilizao de cdigo: um objeto, depois de
criado, pode ser reutilizado por outras aplicaes, e at extender
suas funes.Incluso dinmica: objetos podem ser includos dinmicamente
durante a execuo, reduzindo o tamanho do arquivo final.
OO
- Princpios bsicos de uma linguagem 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
- Princpios bsicos de uma linguagem 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
- Princpios bsicos de uma linguagem 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
- Princpios bsicos de uma linguagem 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
- Programao OO (Orientada a Objetos)Os objetos so a base da
tecnologiaConsistem de modelos (abstraes) de objetos reaisPreservam
as caractersticas essenciais de um objeto real: suas propriedades e
seu comportamento (mtodos)Exemplos de linguagens OOC++, Delphi,
Java, etc.
OO