Escolar Documentos
Profissional Documentos
Cultura Documentos
Engenharia de Software
Diferentes conjuntos de etapas que envolvem mtodos, ferramentas e procedimentos utilizados no desenvolvimento de software
Requisitos no funcionais
Os requisitos no-funcionais de sistema, tambm conhecidos como atributos de qualidade, que determinam como um sistema ira se comportar. Cada sistema nico devido a natureza do negcio que ele suporta.
Engenharia de Software
Engenharia de Software
Ciclo de Vida Clssico Prototipao Modelo Espiral Tcnicas de Quarta Gerao Combinao de Paradigmas
Codificao Teste
Manuteno
Prof. Claudiney Sanches Jnior
Anlise de Sistemas
Documentao dos requisitos, visando a compreenso da natureza do sistema a ser construdo Reviso desses requisitos com o cliente
Projeto
Mltiplos passos, visando: estrutura de dados, arquitetura de software, detalhes procedimentais e caracterizao da interface Quando documentado, torna-se parte da configurao do software
Codificao
Traduo do projeto para linguagem de mquina Se o projeto for executado detalhadamente, pode ser feita mecanicamente
Teste
Avaliao de aspectos lgicos internos do software e aspectos funcionais externos Visa descobrir erros e garantir que os resultados gerados sejam condizentes com os esperados
9
Manuteno
Modificaes no software (correo de erros, adaptao e mudanas no ambiente externo, incluso de funcionalidades)
10
Engenharia de Software
Projetos reais raramente seguem o fluxo seqencial que o modelo prope difcil para o cliente declarar todas as exigncias explicitamente Exige pacincia do cliente (uma verso de trabalho do programa disponibilizada apenas as fases finais do cronograma) Imediato e Simultneo
11
Prototipao
Engenharia de Software
O cliente definiu um conjunto de objetivos gerais para o software, mas no identificou requisitos de entrada, processamento e sada detalhados O desenvolvedor no tem certeza da eficincia de um algoritmo, da adaptabilidade de um SO ou da forma que a interao homem-mquina deve assumir
12
Prototipao
Engenharia de Software
Processo que capacita o desenvolvedor a criar um modelo do software que ser implementado
13
Prototipao
Engenharia de Software
um prottipo em papel ou modelo baseado em PC que retrata a interao homem-mquina de forma que capacita o usurio a entender quanta interao ocorrer um prottipo de trabalho que implementa algum subconjunto da funo exigida do software desejado um programa existente que executa parte ou toda a funo desejada, mas que tem outras caractersticas que sero melhoradas em um novo esforo de desenvolvimento
14
Prototipao
Coleta e refinamento dos requisitos Engenharia do Produto Projeto Rpido Construo do Prottipo
Incio
Fim
Engenharia de Software
Refinamento do Prottipo
15
Prototipao
O prottipo pode servir como o primeiro sistema, que deveria ser descartado Problemas
Engenharia de Software
O cliente v o prottipo como uma verso de trabalho do software, e pode no gostar de saber que o produto precisa ser reconstrudo O desenvolvedor pode utilizar algoritmos ou linguagem de programao imprprios, e depois de algum tempo familiarizar-se com essas opes
16
Modelo Espiral
Engenharia de Software
Desenvolvido para abranger as melhores caractersticas do ciclo de vida clssico e da prototipao, acrescentando, ao mesmo tempo, um novo elemento: A anlise de riscos
17
Modelo Espiral
Coleta inicial dos requisitos e planejamento do projeto Planejamento baseado nos comentrios do cliente Avaliao do cliente
Prottipo no nvel seguinte
Planejamento
Engenharia de Software
Anlise dos riscos baseada na reao do cliente Deciso de prosseguir/no prosseguir Prottipo de software inicial
Sistema construdo
Anlise do cliente
Engenharia
18
Modelo Espiral
Engenharia de Software
Planejamento: determinao dos objetivos, alternativas e restries Anlise dos riscos: anlise de alternativas e identificao/resoluo dos riscos Engenharia: desenvolvimento do produto no nvel seguinte Avaliao feita pelo cliente: avaliao dos resultados da engenharia
Prof. Claudiney Sanches Jnior
19
Modelo Espiral
Engenharia de Software
A cada iterao ao redor da espiral, verses progressivamente mais completas do software so construdas uma abordagem bem mais realista para o desenvolvimento de sistemas e de software em grande escala
20
Modelo Espiral
Problemas
Engenharia de Software
Pode ser difcil convencer grandes clientes de que a abordagem evolutiva controlvel Exige experincia na avaliao de riscos e fia-se nessa experincia para o sucesso Relativamente novo
21
Engenharia de Software
Ferramentas de software que possibilitam ao desenvolvedor que especifique alguma caracterstica do software num nvel elevado A ferramenta, ento, gera o cdigo-fonte automaticamente, tendo como base a especificao do desenvolvedor
Prof. Claudiney Sanches Jnior
22
Engenharia de Software
Linguagens no procedimentais para consulta de banco de dados, gerao de relatrios, interao e definio de telas, gerao de cdigo, capacidade grfica de alto nvel e capacidade de planilhas eletrnicas Ferramentas para domnios especficos
23
Estratgia de Projeto
Implementao usando 4GL
Engenharia de Software
Testes
24
4GLs
Engenharia de Software
Database query languages FOCUS Oracle PL/SQL NATURAL Progress 4GL SQL Report generators BuildProfessional GEMBase IDL-PV/WAVE LINC Metafont NATURAL Oracle Reports PostScript Progress 4GL Query/Results RPG-II S Gauss Mathematica
Linguagens de manipulao de dados, anlise e criao de reports Clarion Programming Language Ab Initio ABAP Aubit-4GL DASL FOCUS GraphTalk Informix-4GL NATURAL Nomad Progress 4GL Ramis SAS Synon CorVision LANSA XML
Linguagens para Data-stream APE AVS Iris Explorer Geradores de Ecrs Oracle Forms Oracle WEB Forms Progress 4GL ProVision Unify Accell Criao de GUI 4th Dimension (Software) Delphi programming language eDeveloper MATLAB's GUIDE Progress 4GL AppBuilder Revolution programming language Visual Basic's form editor Windows Forms (part of the .NET Framework) OpenROAD
25
Engenharia de Software
Coleta de requisitos: o cliente descreve os requisitos, e estes so traduzidos diretamente num prottipo operacional (idealmente) Estratgia de Projeto: necessrio para projetos maiores, pode ser dispensada em projetos pequenos
Prof. Claudiney Sanches Jnior
26
Engenharia de Software
Implementao em Linguagem de Quarta Gerao (4GL): o desenvolvedor representa os resultados desejados de forma que o cdigo seja gerado automaticamente Testes: desenvolvimento de testes cuidadosos e documentao para que se resulte num produto
Prof. Claudiney Sanches Jnior
27
Engenharia de Software
Prs: reduo no tempo de desenvolvimento, aumento de produtividade Contras: as ferramentas atuais no so muito mais fceis de se usar do que linguagens de programao, o cdigo gerado pelas ferramentas ainda ineficiente, a manutenibilidade de sistemas grandes questionvel
28
Combinao de Paradigmas
Engenharia de Software
Paradigmas so abordagens complementares Engenharia de Software Paradigmas podem e devem ser combinados para que as potencialidades de cada um sejam obtidas
29
Combinao de Paradigmas
Obteno preliminar dos requisitos
Anlise dos requisitos Projeto Modelo Espiral Prototipao Prototipao n-sima iterao 4 GL 4 GL 4 GT
Engenharia de Software
Sistema em operao
Manuteno
Prof. Claudiney Sanches Jnior
30
Combinao de Paradigmas
Engenharia de Software
A natureza da aplicao deve ditar a abordagem a ser tomada O todo pode ser maior do que a soma das partes
31
Desenvolvimento de Sistemas
Engenharia de Software
Independente do paradigma adotado, da rea de aplicao, do tamanho ou da complexidade do projeto, o desenvolvimento de software apresenta trs etapas distintas:
Desenvolvimento de Sistemas
Definio (O qu)
Engenharia de Software
Identificao de quais informaes precisam ser processadas Identificao de funo e desempenho desejados Definio de Interfaces Definio de restries de projeto, critrios de validao
33
Desenvolvimento de Sistemas
Definio
Planejamento do Projeto de Software Anlise de Requisitos Reviso
Prof. Claudiney Sanches Jnior
Reviso
34
Desenvolvimento de Sistemas
Desenvolvimento (Como)
Engenharia de Software
Definio de estruturas de dados Projeto da arquitetura do software Implementao de detalhes procedimentais Definio de como o projeto ser traduzido em uma linguagem de programao (ou linguagem no-procedimental) Definio de testes
35
Arquitetura de software
Engenharia de Software
Arquitetura de software de um sistema: Componentes de software, suas propriedades externas, e seus relacionamentos com outros softwares. A documentao da arquitetura do software facilita:
A comunicao entre os stakeholders; Registra as decises iniciais acerca do projeto de altonvel; Permite o reuso do projeto dos componentes e padres entre projetos.
36
Componentes de Software
Engenharia de Software
Componentes de Software o termo utilizado para descrever o elemento de software que encapsula uma srie de funcionalidades. Um componente uma unidade independente, que pode ser utilizado com outros componentes para formar um sistema mais complexo. Em programao orientada a objetos um componente o objeto que implementa uma interface e autnomo em relao a outros componentes do sistema. Um sistema de software pode ser formado inteiramente somente por componentes, pois estes se interligam atravs de suas interfaces. Este processo de comunicao entre componentes denominado composio.
Prof. Claudiney Sanches Jnior
37
Desenvolvimento de Sistemas
Desenvolvimento
Projeto de Software Codificao
Converso para linguagem de programao ou linguagem noprocedimental
Engenharia de Software
Testes
Definio de possveis defeitos funo lgica e de implementao
38
Desenvolvimento de Sistemas
Manuteno (Mudanas)
Engenharia de Software
Correo de erros Adaptaes exigidas em relao ao ambiente e variao das exigncias do cliente (manuteno adaptativa) Melhoramento funcional (manuteno perfectiva)
39