Você está na página 1de 39

Paradigmas para Desenvolvimento de Software

Paradigmas de Engenharia de Software

Engenharia de Software

Diferentes conjuntos de etapas que envolvem mtodos, ferramentas e procedimentos utilizados no desenvolvimento de software

Prof. Claudiney Sanches Jnior

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

Compatibilidade; Extensibilidade; Confiabilidade; Manutenabilidade; Disponibilidade; Segurana; Usabilidade.

Prof. Claudiney Sanches Jnior

Paradigmas de Engenharia de Software


Engenharia de Software

Ciclo de Vida Clssico Prototipao Modelo Espiral Tcnicas de Quarta Gerao Combinao de Paradigmas

Prof. Claudiney Sanches Jnior

Ciclo de Vida Clssico (Cascata)


Engenharia de Sistemas
Engenharia de Software

Anlise de Sistemas Projeto

Codificao Teste
Manuteno
Prof. Claudiney Sanches Jnior

Ciclo de Vida Clssico (Cascata)


Anlise de Sistemas Engenharia de Software

Anlise de Sistemas

Documentao dos requisitos, visando a compreenso da natureza do sistema a ser construdo Reviso desses requisitos com o cliente

Prof. Claudiney Sanches Jnior

Ciclo de Vida Clssico (Cascata)

Projeto Engenharia de Software

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

Prof. Claudiney Sanches Jnior

Ciclo de Vida Clssico (Cascata)

Codificao Engenharia de Software

Codificao

Traduo do projeto para linguagem de mquina Se o projeto for executado detalhadamente, pode ser feita mecanicamente

Prof. Claudiney Sanches Jnior

Ciclo de Vida Clssico (Cascata)

Teste Engenharia de Software

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

Prof. Claudiney Sanches Jnior

Ciclo de Vida Clssico (Cascata)

Manuteno Engenharia de Software

Manuteno

Modificaes no software (correo de erros, adaptao e mudanas no ambiente externo, incluso de funcionalidades)

Prof. Claudiney Sanches Jnior

10

Ciclo de Vida Clssico (Cascata)

o paradigma mais antigo e amplamente usado na engenharia de software Alguns problemas:

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

Prof. Claudiney Sanches Jnior

11

Prototipao

Considere duas situaes-exemplo:

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

Prof. Claudiney Sanches Jnior

Prototipao

Engenharia de Software

Processo que capacita o desenvolvedor a criar um modelo do software que ser implementado

Prof. Claudiney Sanches Jnior

13

Prototipao

Modelo pode ser:

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

Prof. Claudiney Sanches Jnior

Prototipao
Coleta e refinamento dos requisitos Engenharia do Produto Projeto Rpido Construo do Prottipo

Incio

Fim
Engenharia de Software

Refinamento do Prottipo

Avaliao do Prottipo pelo cliente


Prof. Claudiney Sanches Jnior

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

Prof. Claudiney Sanches Jnior

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

Prof. Claudiney Sanches Jnior

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

Anlise dos riscos Anlise dos

riscos baseada nos requisitos iniciais

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

Prof. Claudiney Sanches Jnior

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

Prof. Claudiney Sanches Jnior

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

Prof. Claudiney Sanches Jnior

21

Tcnicas de Quarta Gerao

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

Tcnicas de Quarta Gerao

Atualmente este paradigma inclui:

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

Prof. Claudiney Sanches Jnior

23

Tcnicas de Quarta Gerao


Coleta de requisitos

Estratgia de Projeto
Implementao usando 4GL

Engenharia de Software

Testes

Prof. Claudiney Sanches Jnior

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

Prof. Claudiney Sanches Jnior

25

Tcnicas de Quarta Gerao

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

Tcnicas de Quarta Gerao

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

Tcnicas de Quarta Gerao

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

Prof. Claudiney Sanches Jnior

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

Prof. Claudiney Sanches Jnior

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

Codificao Realizao de testes

Modelo Espiral n-sima iterao

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

Prof. Claudiney Sanches Jnior

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:

Definio Desenvolvimento Manuteno


32

Prof. Claudiney Sanches Jnior

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

Prof. Claudiney Sanches Jnior

Desenvolvimento de Sistemas

Definio
Planejamento do Projeto de Software Anlise de Requisitos Reviso
Prof. Claudiney Sanches Jnior

Anlise do Sistema Engenharia de Software

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

Prof. Claudiney Sanches Jnior

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

Prof. Claudiney Sanches Jnior

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

Representaes grficas, tabelas, pseudo-cdigo da estrutura de dados, algoritmo, interface

Prof. Claudiney Sanches Jnior

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)

Prof. Claudiney Sanches Jnior

39

Você também pode gostar