SlideShare a Scribd company logo
1 of 42
Download to read offline
Processos	
  de	
  So*ware	
  

  Centro	
  de	
  Informá-ca	
  -­‐	
  Universidade	
  Federal	
  de	
  Pernambuco	
  
                            Sistemas	
  de	
  Informação	
  
                            Vinicius	
  Cardoso	
  Garcia	
  
                                      vcg@cin.ufpe.br	
  
                                                      	
  
                        Slides	
  originais	
  elaborados	
  por	
  Ian	
  Sommerville	
  
                 O	
  autor	
  permite	
  o	
  uso	
  e	
  a	
  modificação	
  dos	
  slides	
  para	
  fins	
  didá-cos	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


O	
  processo	
  de	
  so*ware	
  
•  Um	
  conjunto	
  estruturado	
  de	
  a-vidades,	
  
   procedimentos,	
  artefatos	
  e	
  ferramentas	
  
   necessários	
  para	
  o	
  desenvolvimento	
  de	
  um	
  
   sistema	
  de	
  soGware	
  
    –  A-vidades:	
  Especificação,	
  Projeto,	
  Validação,	
  
       Evolução	
  
•  Exemplos:	
  Processo	
  Unificado	
  (RUP),	
  
   Programação	
  Extrema,	
  UML	
  Components	
  
•  Um	
  modelo	
  de	
  processo	
  de	
  soGware	
  apresenta	
  a	
  
   descrição	
  de	
  um	
  processo	
  de	
  uma	
  perspec-va	
  
   par-cular,	
  normalmente	
  focando	
  apenas	
  em	
  
   algumas	
  a-vidades.	
  

                                                                                                                                  2	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Modelos	
  genéricos	
  de	
  processo	
  de	
  so*ware	
  
•  O	
  modelo	
  cascata	
  
    –  Fases	
  separadas	
  e	
  dis-ntas	
  de	
  especificação	
  e	
  
       desenvolvimento.	
  
•  Engenharia	
  de	
  soGware	
  baseada	
  em	
  componentes	
  
    –  O	
  sistema	
  é	
  montado	
  a	
  par-r	
  de	
  componentes	
  existentes.	
  
•  Desenvolvimento	
  itera-vo	
  
    –  Sistema	
  desenvolvido	
  através	
  de	
  várias	
  etapas	
  
•  Existem	
  muitas	
  variantes	
  destes	
  modelos	
  
    –  Ex:	
  desenvolvimento	
  formal	
  onde	
  um	
  processo	
  
       semelhante	
  ao	
  cascata	
  é	
  usado,	
  mas	
  a	
  especificação	
  
       formal	
  é	
  refinada	
  durante	
  os	
  vários	
  estágios	
  para	
  um	
  
       projeto	
  implementável.	
  

                                                                                                                                               3	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


       Modelo	
  cascata	
  
                                                                                                 Resposta	
  ao	
  modelo	
  code-­‐and-­‐fix	
  vigente	
  na	
  
                                                                                                 década	
  de	
  70	
  




Ian	
  Sommerville,	
  Engenharia	
  de	
  SoGware,	
  8ª.	
  	
  edição.	
  Capítulo	
  4	
  
                                                                                                                                                                                                       4	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Fases	
  do	
  modelo	
  cascata	
  
•    Análise	
  e	
  definição	
  de	
  requisitos	
  
•    Projeto	
  de	
  sistema	
  e	
  soGware	
  
•    Implementação	
  e	
  teste	
  de	
  unidade	
  
•    Integração	
  e	
  teste	
  de	
  sistema	
  
•    Operação	
  e	
  manutenção	
  

•  Primeiro	
  modelo	
  a	
  organizar	
  as	
  a-vidades	
  de	
  desenv.	
  
•  Uma	
  fase	
  tem	
  de	
  estar	
  completa	
  antes	
  de	
  passar	
  para	
  
   a	
  próxima.	
  
      –  Saídas	
  das	
  fases	
  são	
  acordadas	
  contratualmente!	
  
•  Todas	
  as	
  fases	
  envolvem	
  a-vidades	
  de	
  validação	
  

                                                                                                                                           5	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Problemas	
  do	
  modelo	
  cascata	
  
•  ParEcionamento	
  inflexível	
  do	
  projeto	
  em	
  
   estágios	
  	
  
   –  Dificulta	
  a	
  resposta	
  aos	
  requisitos	
  de	
  mudança	
  do	
  
      cliente.	
  
•  Documentos	
  “completamente	
  elaborados”	
  são	
  
   necessários	
  para	
  fazer	
  as	
  transições	
  entre	
  
   estágios	
  
•  Apropriado	
  somente	
  quando	
  os	
  requisitos	
  são	
  
   bem	
  compreendidos	
  e	
  quando	
  as	
  mudanças	
  são	
  
   raras	
  
   –  Poucos	
  sistemas	
  de	
  negócio	
  têm	
  requisitos	
  estáveis.	
  

                                                                                                                                         6	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Desenvolvimento	
  evolucionário	
  
•  Implementação	
  inicial,	
  exposição	
  do	
  resultado	
  
   aos	
  comentários	
  do	
  usuário	
  e	
  refinamento	
  
   desse	
  resultado	
  em	
  versões	
  
•  Especificação,	
  desenvolvimento	
  e	
  validação	
  
   são	
  intercaladas	
  
•  Dois	
  -pos	
  
   –  Desenvolvimento	
  exploratório:	
  explora	
  requisitos	
  
      e	
  entrega	
  um	
  sistema	
  final	
  
   –  Proto-pação	
  throwaway:	
  obje-vo	
  é	
  compreender	
  
      os	
  requisitos	
  do	
  cliente	
  

                                                                                                                            7	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Desenvolvimento	
  evolucionário	
  
•  Vantagem:	
  especificação	
  desenvolvida	
  de	
  
   forma	
  incremental	
  
•  Problemas:	
  
   –  Processo	
  não	
  é	
  visível	
  
   –  Sistemas	
  podem	
  ser	
  mal	
  estruturados	
  devido	
  à	
  
      mudança	
  coninua	
  




                                                                                                                                   8	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Desenvolvimento	
  Exploratório	
  
•  Idéia	
  geral:	
  
    –  Desenvolvimento	
  da	
  primeira	
  versão	
  do	
  sistema	
  o	
  
       mais	
  rápido	
  possível	
  
    –  Modificações	
  sucessivas	
  até	
  que	
  o	
  sistema	
  seja	
  
       considerado	
  adequado	
  
    –  Após	
  o	
  desenvolvimento	
  de	
  cada	
  uma	
  das	
  versões	
  
       do	
  sistema	
  ele	
  é	
  mostrado	
  aos	
  usuários	
  para	
  
       comentários	
  
•  Adequado	
  para	
  o	
  desenvolvimento	
  de	
  
   sistemas	
  onde	
  é	
  dijcil	
  ou	
  impossível	
  se	
  fazer	
  
   uma	
  especificação	
  detalhada	
  do	
  sistema	
  
                                                                                                                                    9	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


ProtoEpação	
  Descartável	
  
•  Como	
  na	
  programação	
  exploratória,	
  a	
  primeira	
  
   fase	
  prevê	
  o	
  desenvolvimento	
  de	
  um	
  programa	
  
   para	
  o	
  usuário	
  experimentar	
  	
  
    –  No	
  entanto,	
  o	
  obje-vo	
  aqui	
  é	
  estabelecer	
  os	
  
       requisitos	
  do	
  sistema	
  
    –  O	
  soGware	
  deve	
  ser	
  reimplementado	
  na	
  fase	
  seguinte	
  
•  A	
  construção	
  de	
  protó-pos	
  com	
  os	
  quais	
  os	
  
   usuários	
  possam	
  brincar	
  é	
  uma	
  idéia	
  bastante	
  
   atra-va:	
  
    –  Para	
  sistemas	
  grandes	
  e	
  complicados	
  
    –  Quando	
  não	
  existe	
  um	
  sistema	
  anterior	
  ou	
  um	
  
       sistema	
  manual	
  que	
  ajude	
  a	
  especificar	
  os	
  requisitos	
  

                                                                                                                                       10	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


ProtoEpação	
  Descartável	
  
•  Os	
  obje-vos	
  do	
  protó-po	
  devem	
  estar	
  bem	
  
   claros	
  antes	
  do	
  início	
  da	
  codificação.	
  	
  Possíveis	
  
   obje-vos:	
  	
  
    –  Entender	
  os	
  requisitos	
  dos	
  usuários	
  
    –  Definir	
  a	
  interface	
  com	
  os	
  usuários	
  
    –  Demonstrar	
  a	
  viabilidade	
  do	
  sistemas	
  para	
  os	
  
       gerentes.	
  	
  
•  Uma	
  decisão	
  importante	
  a	
  ser	
  tomada	
  é	
  escolher	
  
   o	
  que	
  será	
  e	
  o	
  que	
  não	
  será	
  parte	
  do	
  protó-po	
  
    –  Não	
  é	
  economicamente	
  viável	
  implementar	
  todo	
  o	
  
       sistema!	
  	
  
    –  Os	
  obje-vos	
  do	
  protó-po	
  são	
  o	
  ponto	
  de	
  par-da	
  

                                                                                                                                       11	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Engenharia	
  de	
  so*ware	
  baseada	
  em	
  componentes	
  

•  Baseado	
  em	
  reuso	
  sistemá-co	
  onde	
  sistemas	
  são	
  
   integrados	
  a	
  par-r	
  de	
  componentes	
  existentes	
  ou	
  
   de	
  sistemas	
  COTS	
  (Commercial-­‐of-­‐the-­‐shelf)	
  
•  Estágios	
  do	
  processo	
  
    –  Análise	
  de	
  componentes;	
  
    –  Modificação	
  de	
  requisitos;	
  
    –  Projeto	
  de	
  sistema	
  com	
  reuso;	
  
    –  Desenvolvimento	
  e	
  integração.	
  
•  Esta	
  abordagem	
  está	
  se	
  tornando	
  cada	
  vez	
  mais	
  
   usada	
  à	
  medida	
  que	
  padrões	
  de	
  componentes	
  
   têm	
  surgido.	
  
•  Reuso	
  acidental	
  vs.	
  Reuso	
  planejado	
  
                                                                                                                                    12	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Processos	
  IteraEvos	
  
•  Requisitos	
  de	
  sistema	
  SEMPRE	
  evoluem	
  no	
  curso	
  
   de	
  um	
  projeto	
  	
  
•  Algum	
  retrabalho	
  é	
  necessário	
  
•  A	
  abordagem	
  iteraEva	
  pode	
  ser	
  aplicada	
  a	
  
   qualquer	
  um	
  dos	
  modelos	
  genéricos	
  de	
  processo	
  
•  Duas	
  abordagens	
  (relacionadas)	
  	
  
   –  Entrega	
  incremental;	
  
   –  Desenvolvimento	
  espiral.	
  
•  Essência:	
  especificação	
  desenvolvida	
  em	
  
   conjunto	
  com	
  o	
  soGware	
  

                                                                                                                             13	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Entrega	
  incremental	
  
•  O	
  sistema	
  é	
  entregue	
  ao	
  cliente	
  em	
  incrementos	
  
    –  Cada	
  incremento	
  fornece	
  parte	
  da	
  funcionalidade	
  	
  
•  Os	
  requisitos	
  são	
  priorizados	
  
    –  Requisitos	
  de	
  prioridade	
  mais	
  alta	
  são	
  incluídos	
  nos	
  
       incrementos	
  iniciais.	
  
•  Uma	
  vez	
  que	
  o	
  desenvolvimento	
  de	
  um	
  
   incremento	
  é	
  iniciado,	
  os	
  requisitos	
  são	
  
   congelados	
  
    –  Os	
  requisitos	
  para	
  os	
  incrementos	
  posteriores	
  podem	
  
       con-nuar	
  evoluindo	
  (e	
  incluir	
  requisitos	
  já	
  
       implementados!)	
  

                                                                                                                                         14	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


       Desenvolvimento	
  incremental	
  




Ian	
  Sommerville,	
  Engenharia	
  de	
  SoGware,	
  8ª.	
  	
  edição.	
  Capítulo	
  4	
  
                                                                                                                                                                              15	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Vantangens	
  do	
  desenvolvimento	
  incremental	
  

•  Incrementos	
  podem	
  ser	
  entregues	
  
   regularmente	
  ao	
  cliente	
  e,	
  desse	
  modo,	
  a	
  
   funcionalidade	
  de	
  sistema	
  é	
  disponibilizada	
  
   mais	
  cedo.	
  
•  Os	
  incrementos	
  iniciais	
  agem	
  como	
  protóEpos	
  
   para	
  	
  elicitar	
  os	
  requisitos	
  para	
  incrementos	
  
   posteriores	
  do	
  sistema.	
  
•  Riscos	
  menores	
  de	
  falha	
  geral	
  do	
  projeto.	
  
•  Os	
  serviços	
  de	
  sistema	
  de	
  mais	
  alta	
  prioridade	
  
   tendem	
  a	
  receber	
  mais	
  testes.	
  
                                                                                                                               16	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Problemas	
  do	
  desenvolvimento	
  incremental	
  

•  Incrementos	
  pequenos	
  exigem	
  mapeamento	
  
   entre	
  requisitos	
  e	
  incremento	
  de	
  tamanho	
  
   adequado	
  

•  Dificuldade	
  de	
  iden-ficar	
  os	
  recursos	
  comuns	
  
   exigidos	
  por	
  todos	
  os	
  incrementos	
  




                                                                                                                         17	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Extreme	
  programming	
  
•  Uma	
  abordagem	
  baseada	
  no	
  desenvolvimento	
  
   e	
  na	
  entrega	
  de	
  incrementos	
  de	
  
   funcionalidade	
  muito	
  pequenos.	
  

•  Baseia-­‐se	
  no	
  aprimoramento	
  constante	
  do	
  
   código,	
  em	
  testes	
  automa-zados,	
  no	
  
   envolvimento	
  do	
  usuário	
  na	
  equipe	
  e	
  no	
  
   desenvolvimento	
  em	
  pares.	
  


                                                                                                                           18	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Desenvolvimento	
  espiral	
  
•  O	
  processo	
  é	
  representado	
  como	
  uma	
  espiral	
  
   ao	
  invés	
  de	
  uma	
  sequência	
  de	
  a-vidades	
  com	
  
   realimentação.	
  
•  Cada	
  loop	
  na	
  espiral	
  representa	
  uma	
  fase	
  no	
  
   processo.	
  
•  Sem	
  fases	
  definidas,	
  tais	
  como	
  especificação	
  
   ou	
  projeto	
  –	
  os	
  loops	
  na	
  espiral	
  são	
  escolhidos	
  
   dependendo	
  do	
  que	
  é	
  requisitado.	
  
•  Os	
  riscos	
  são	
  explicitamente	
  avaliados	
  e	
  
   resolvidos	
  ao	
  longo	
  do	
  processo.	
  
                                                                                                                                  19	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


       Modelo	
  espiral	
  do	
  processo	
  de	
  so*ware	
  




Ian	
  Sommerville,	
  Engenharia	
  de	
  SoGware,	
  8ª.	
  	
  edição.	
  Capítulo	
  4	
  
                                                                                                                                                                              20	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Setores	
  do	
  modelo	
  espiral	
  
•  Definição	
  de	
  obje-vos	
  
     –  Obje-vos	
  específicos	
  para	
  a	
  fase	
  são	
  iden-ficados.	
  
•  Avaliação	
  e	
  redução	
  de	
  riscos	
  
     –  Riscos	
  são	
  avaliados	
  e	
  a-vidades	
  são	
  realizadas	
  para	
  reduzir	
  os	
  
        riscos-­‐chave.	
  
•  Desenvolvimento	
  e	
  validação	
  
     –  Um	
  modelo	
  de	
  desenvolvimento	
  para	
  o	
  sistema,	
  que	
  pode	
  ser	
  
        qualquer	
  um	
  dos	
  modelos	
  genéricos,	
  é	
  escolhido.	
  
•  Planejamento	
  
     –  O	
  projeto	
  é	
  revisado	
  e	
  a	
  próxima	
  fase	
  da	
  espiral	
  é	
  planejada.	
  

•  Processo	
  de	
  Desenvolvimento	
  vs.	
  Processo	
  de	
  
   Gerenciamento	
  


                                                                                                                                                         21	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Transformação	
  Formal	
  
•  Idéia	
  geral:	
  
    –  Uma	
  especificação	
  formal	
  (definição	
  matemá-ca,	
  
       não	
  ambígua)	
  do	
  soGware	
  é	
  desenvolvida	
  e	
  
       posteriormente	
  “transformada”	
  em	
  um	
  programa	
  
       através	
  de	
  regras	
  que	
  preservam	
  a	
  corretude	
  da	
  
       especificação	
  

          esp.	
  1	
         esp.	
  2	
                           implement.	
  




                                                                                                                                  22	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Transformação	
  Formal	
  
•  A	
  grande	
  mo-vação	
  por	
  trás	
  da	
  idéia	
  de	
  
   refinamento	
  formal	
  é	
  a	
  possibilidade	
  de	
  gerar	
  
   programas	
  que	
  são	
  corretos	
  por	
  construção	
  
    –  O	
  próprio	
  processo	
  de	
  desenvolvimento	
  deve	
  
       garan-r	
  que	
  o	
  programa	
  faz	
  exatamente	
  o	
  que	
  foi	
  
       especificado	
  
•  Este	
  modelo	
  tem	
  sido	
  aplicado	
  ao	
  
   desenvolvimento	
  de	
  sistemas	
  crí-cos,	
  
   especialmente	
  naqueles	
  onde	
  a	
  segurança	
  é	
  
   um	
  fator	
  crí-co	
  (ex:	
  sistema	
  de	
  controle	
  de	
  
   ferrovias)	
  
                                                                                                                                     23	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


AEvidades	
  de	
  um	
  processo	
  de	
  desenvolvimento	
  

•  Especificação	
  de	
  soGware	
  	
  

•  Projeto	
  e	
  implementação	
  de	
  soGware	
  

•  Validação	
  de	
  soGware	
  

•  Evolução	
  de	
  soGware	
  


                                                                                                                             24	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Especificação	
  de	
  so*ware	
  
•  O	
  processo	
  para	
  definir	
  quais	
  serviços	
  são	
  
   necessários	
  e	
  iden-ficar	
  as	
  restrições	
  de	
  
   operação	
  e	
  de	
  desenvolvimento	
  do	
  sistema.	
  
•  Processo	
  de	
  engenharia	
  de	
  requisitos	
  
    –  Estudo	
  de	
  viabilidade;	
  
         •  Realizado	
  antes	
  do	
  projeto	
  ser	
  iniciado	
  
    –  Elicitação	
  e	
  análise	
  de	
  requisitos;	
  
    –  Especificação	
  de	
  requisitos;	
  
         •  Requisitos	
  do	
  usuário	
  (mais	
  abstrato)	
  e	
  requisitos	
  do	
  sistema	
  
            (descrição	
  detalhada	
  de	
  funcioalidades)	
  
    –  Validação	
  de	
  requisitos.	
  

                                                                                                                                                  25	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


       O	
  processo	
  de	
  engenharia	
  de	
  requisitos	
  




                                                                                                  Também	
  pode	
  envolver	
  a	
  
                                                                                                 protoEpação	
  de	
  partes	
  do	
  
Ian	
  Sommerville,	
  Engenharia	
  de	
  SoGware,	
  8ª.	
  	
  edição.	
  Capítulo	
  4	
  
                                                                                                                       sistema!	
                                                         26	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Projeto	
  e	
  implementação	
  de	
  so*ware	
  
•  É	
  o	
  processo	
  de	
  conversão	
  da	
  especificação	
  em	
  
   um	
  sistema	
  de	
  soGware	
  
•  Projeto	
  de	
  soGware	
  
    –  Projetar	
  uma	
  estrutura	
  de	
  soGware	
  que	
  atenda	
  à	
  
       especificação.	
  
•  Implementação	
  
    –  Transformar	
  essa	
  estrutura	
  em	
  um	
  programa	
  
       executável.	
  
•  As	
  a-vidades	
  de	
  projeto	
  e	
  implementação	
  são	
  
   fortemente	
  relacionadas	
  e	
  podem	
  ser	
  
   intecaladas.	
  
                                                                                                                                       27	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


AEvidades	
  do	
  processo	
  de	
  projeto	
  
•  Projeto	
  de	
  arquitetura	
  
     –  Subsistemas	
  e	
  relacionamento	
  
•  Especificação	
  abstrata	
  
     –  Especificação	
  abstrata	
  de	
  serviços	
  e	
  restrições	
  de	
  
        subsistemas	
  
•    Projeto	
  de	
  interfaces	
  entre	
  componentes	
  
•    Projeto	
  de	
  componente	
  
•    Projeto	
  de	
  estrutura	
  de	
  dados	
  
•    Projeto	
  de	
  algoritmo	
  
                                                                                                                                    28	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Métodos	
  estruturados	
  
•  Abordagens	
  sistemáEcas	
  para	
  projetar	
  sistemas	
  
   de	
  soGware	
  
    –  Project	
  (gerenciamento)	
  vs.	
  Design	
  
       (desenvolvimento)	
  
•  O	
  projeto	
  é,	
  em	
  geral,	
  documentado	
  como	
  um	
  
   conjunto	
  de	
  modelos	
  gráficos	
  
•  Modelos	
  possíveis	
  
    –  Modelo	
  de	
  objeto;	
  
    –  Modelo	
  de	
  sequência;	
  
    –  Modelo	
  de	
  transição	
  de	
  estado;	
  
    –  Modelo	
  estruturado;	
  
    –  Modelo	
  de	
  fluxo	
  de	
  dados.	
  

                                                                                                                                      29	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Programação	
  e	
  depuração	
  
•  É	
  a	
  transformação	
  de	
  um	
  projeto	
  em	
  um	
  
   programa	
  e	
  a	
  remoção	
  de	
  defeitos	
  desse	
  
   programa.	
  
•  Programação	
  é	
  uma	
  a-vidade	
  pessoal	
  –	
  não	
  
   há	
  processo	
  genérico	
  de	
  programação.	
  
   –  Há	
  algumas	
  prá-cas,	
  porém,	
  que	
  são	
  
      universalmente	
  consideradas	
  boas	
  
•  Programadores	
  realizam	
  alguns	
  testes	
  para	
  
   descobrir	
  defeitos	
  no	
  programa	
  e	
  removem	
  
   esses	
  defeitos	
  no	
  processo	
  de	
  depuração	
  

                                                                                                                                  30	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Validação	
  de	
  so*ware	
  
•  Verificação	
  e	
  validação	
  (V	
  &	
  V)	
  têm	
  a	
  intenção	
  de	
  
   mostrar	
  que	
  um	
  sistema	
  está	
  em	
  conformidade	
  com	
  a	
  
   sua	
  especificação	
  e	
  que	
  atende	
  aos	
  requisitos	
  do	
  
   cliente	
  
•  Verificação:	
  “construímos	
  o	
  sistema	
  corretamente?”	
  
    –  Exs:	
  inspeção	
  de	
  código,	
  análise	
  está-ca	
  
•  Validação:	
  “construímos	
  o	
  sistema	
  correto?”	
  	
  
    –  Exs:	
  testes,	
  animação	
  de	
  especificações	
  
•  Testes	
  envolvem	
  a	
  execução	
  do	
  sistema	
  com	
  casos	
  de	
  
   teste	
  que	
  são	
  derivados	
  da	
  especificação	
  do	
  sistema	
  e	
  
   de	
  dados	
  reais	
  a	
  ser	
  processados	
  por	
  ele.	
  


                                                                                                                                            31	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Estágios	
  de	
  teste	
  
•  Teste	
  de	
  componente	
  ou	
  unidade	
  
    –  Os	
  componentes	
  individuais	
  são	
  testados	
  
       independentemente;	
  
    –  Esses	
  componentes	
  podem	
  ser	
  funções	
  ou	
  classes	
  de	
  
       objetos,	
  ou	
  grupos	
  coerentes	
  dessas	
  en-dades.	
  
•  Teste	
  de	
  sistema	
  
    –  Teste	
  de	
  sistema	
  como	
  um	
  todo.	
  O	
  teste	
  das	
  propriedades	
  
       emergentes	
  é	
  par-cularmente	
  importante.	
  
    –  Busca	
  erros	
  que	
  resultam	
  de	
  interações	
  não	
  previstas	
  
       entre	
  componentes	
  	
  
•  Teste	
  de	
  aceitação	
  
    –  Teste	
  com	
  dados	
  do	
  cliente	
  para	
  verificar	
  se	
  o	
  sistema	
  
       atende	
  às	
  suas	
  necessidades,	
  ou	
  seja,	
  pode	
  revelar	
  
       problemas	
  de	
  requisitos	
  

                                                                                                                                                32	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


       Fases	
  de	
  teste	
  




Ian	
  Sommerville,	
  Engenharia	
  de	
  SoGware,	
  8ª.	
  	
  edição.	
  Capítulo	
  4	
  
                                                                                                                                                                              33	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Evolução	
  de	
  so*ware	
  
•  O	
  soGware	
  é	
  inerentemente	
  flexível	
  e	
  pode	
  
   mudar	
  
•  Requisitos	
  mudam	
  devido	
  a	
  diversos	
  fatores	
  e	
  o	
  
   soGware	
  deve	
  acompanhar	
  essas	
  mudanças	
  
•  Processos	
  an-gos	
  separavam	
  explicitamente	
  
   desenvolvimento	
  de	
  evolução	
  
    –  Processos	
  e	
  métodos	
  itera-vos	
  (XP,	
  RUP,	
  Espiral)	
  
       normalmente	
  não	
  fazem	
  uma	
  sepação	
  explícita	
  	
  
•  Evolução	
  pode	
  se	
  dever	
  a	
  diversas	
  razões:	
  
    –  Correções	
  (patches)	
  
    –  Mudanças	
  de	
  requisitos	
  
    –  Melhoria	
  de	
  funcionalidades	
  pré-­‐existentes	
  

                                                                                                                                      34	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


       Evolução	
  de	
  so*ware	
  




Ian	
  Sommerville,	
  Engenharia	
  de	
  SoGware,	
  8ª.	
  	
  edição.	
  Capítulo	
  4	
  
                                                                                                                                                                              35	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


(RaEonal)	
  Unified	
  Process	
  
•  É	
  um	
  (“modelo	
  de”?)	
  processo	
  moderno	
  baseado	
  
   na	
  	
  UML	
  
   –  Tenta	
  cobrir	
  todos	
  os	
  aspectos	
  do	
  desenvolvimento	
  
      de	
  soGware	
  
•  Fortemente	
  focado	
  na	
  documentação	
  do	
  sistema	
  
•  Normalmente	
  descrito	
  a	
  par-r	
  de	
  três	
  
   perspec-vas:	
  
   –  Uma	
  perspec-va	
  dinâmica	
  que	
  mostra	
  as	
  fases	
  ao	
  
      longo	
  do	
  tempo;	
  
   –  Uma	
  perspec-va	
  está-ca	
  que	
  mostra	
  aEvidades	
  de	
  
      processo;	
  
   –  Uma	
  perspec-va	
  prá-ca	
  que	
  sugere	
  bons	
  princípios	
  e	
  
      práEcas	
  de	
  desenvolvimento	
  
                                                                                                                                    36	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


       Modelo	
  de	
  fases	
  do	
  RUP	
  
       Centrado	
  no	
  gerenciamento	
  de	
  projetos	
  




Ian	
  Sommerville,	
  Engenharia	
  de	
  SoGware,	
  8ª.	
  	
  edição.	
  Capítulo	
  4	
  
                                                                                                                                                                              37	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Fases	
  do	
  RUP	
  
•  Concepção	
  
   –  Estabelecer	
  o	
  business	
  case	
  para	
  o	
  sistema.	
  
•  Elaboração	
  
   –  Desenvolver	
  um	
  entendimento	
  do	
  domínio	
  do	
  
      problema,	
  arquitetura	
  do	
  sistema	
  e	
  iden-ficar	
  riscos	
  
•  Construção	
  
   –  Projeto,	
  programação,	
  teste	
  de	
  sistema	
  e	
  
      documentação	
  
•  Transição	
  
   –  Implantar	
  o	
  sistema	
  no	
  seu	
  ambiente	
  operacional.	
  

                                                                                                                                        38	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Boas	
  práEcas	
  do	
  RUP	
  
•  Desenvolver	
  o	
  soGware	
  itera-vamente	
  

•  Gerenciar	
  requisitos	
  

•  Usar	
  arquiteturas	
  baseadas	
  em	
  componentes	
  

•  Modelar	
  o	
  soGware	
  visualmente	
  

•  Verificar	
  a	
  qualidade	
  de	
  soGware	
  

•  Controlar	
  as	
  mudanças	
  do	
  soGware	
  
                                                                                                                                   39	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


       Workflows	
  estáEcos	
  




Ian	
  Sommerville,	
  Engenharia	
  de	
  SoGware,	
  8ª.	
  	
  edição.	
  Capítulo	
  4	
  
                                                                                                                                                                              40	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


Leituras	
  recomendadas	
  
•  SOMMERVILLE,	
  I.	
  Engenharia	
  de	
  SoGware.	
  9ª.	
  
   Ed.	
  São	
  Paulo:	
  Pearson	
  Educa-on,	
  2011	
  
   –  Capítulo	
  4	
  


•  Referência	
  adicional	
  
   –  Barry	
  W.	
  Boehm.	
  A	
  Spiral	
  Model	
  of	
  So*ware	
  
      Development	
  and	
  	
  Enhancement.	
  IEEE	
  Computer,	
  
      vol.	
  21,	
  número	
  5,	
  Maio	
  de	
  1988.	
  
       •  h|p://dx.doi.org/10.1109/2.59	
  


                                                                                                                              41	
  
[if977]	
  Engenharia	
  de	
  So*ware	
  -­‐	
  SI	
  -­‐	
  CIn	
  -­‐	
  UFPE	
  


AEvidades	
  
•  Projeto	
  
   – Definição	
  de	
  equipes	
  e	
  projetos,	
  
     montagem	
  da	
  infraestrutura	
  da	
  fábrica	
  
     (site)	
  -­‐	
  até	
  20/03	
  




                                                                                                                    42	
  

More Related Content

What's hot

Modelos de Processo de Software Parte 2
Modelos de Processo de Software Parte 2Modelos de Processo de Software Parte 2
Modelos de Processo de Software Parte 2Elaine Cecília Gatto
 
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Renato Leal
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testesIsaias Silva
 
Interação Humano Computador Capítulo 9 - Design
Interação Humano Computador Capítulo 9 - DesignInteração Humano Computador Capítulo 9 - Design
Interação Humano Computador Capítulo 9 - DesignWellington Oliveira
 
Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Elaine Cecília Gatto
 
Saa s software como serviço (slides)
Saa s   software como serviço (slides)Saa s   software como serviço (slides)
Saa s software como serviço (slides)Daniela Nunes
 
Modelos de Processo de Software - INCREMENTAL
Modelos de Processo de Software - INCREMENTALModelos de Processo de Software - INCREMENTAL
Modelos de Processo de Software - INCREMENTALVitória Pavan
 
Software livre por que usar? slide
Software livre por que usar?   slideSoftware livre por que usar?   slide
Software livre por que usar? slideJosé Nascimento
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareElaine Cecília Gatto
 
História da informática
História da informáticaHistória da informática
História da informáticaAron Sporkens
 
RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)Elen Arantza
 
Requirements engineering processes
Requirements engineering processesRequirements engineering processes
Requirements engineering processessommerville-videos
 

What's hot (20)

Modelos de Processo de Software Parte 2
Modelos de Processo de Software Parte 2Modelos de Processo de Software Parte 2
Modelos de Processo de Software Parte 2
 
Ferramentas case
Ferramentas caseFerramentas case
Ferramentas case
 
Aula 2 - Modelos de processos
Aula 2 -  Modelos de processosAula 2 -  Modelos de processos
Aula 2 - Modelos de processos
 
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testes
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Circuitos integrados
Circuitos integradosCircuitos integrados
Circuitos integrados
 
Interação Humano Computador Capítulo 9 - Design
Interação Humano Computador Capítulo 9 - DesignInteração Humano Computador Capítulo 9 - Design
Interação Humano Computador Capítulo 9 - Design
 
Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1
 
Scratch cap-1
Scratch cap-1Scratch cap-1
Scratch cap-1
 
Modelo Espiral
Modelo EspiralModelo Espiral
Modelo Espiral
 
Saa s software como serviço (slides)
Saa s   software como serviço (slides)Saa s   software como serviço (slides)
Saa s software como serviço (slides)
 
Aula 01 instalação de hardware
Aula 01 instalação de hardwareAula 01 instalação de hardware
Aula 01 instalação de hardware
 
Modelos de Processo de Software - INCREMENTAL
Modelos de Processo de Software - INCREMENTALModelos de Processo de Software - INCREMENTAL
Modelos de Processo de Software - INCREMENTAL
 
Software livre por que usar? slide
Software livre por que usar?   slideSoftware livre por que usar?   slide
Software livre por que usar? slide
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de Software
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
História da informática
História da informáticaHistória da informática
História da informática
 
RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)
 
Requirements engineering processes
Requirements engineering processesRequirements engineering processes
Requirements engineering processes
 

Similar to Processos de Software

Aula 3 - Processos de Software.pdf
Aula 3 - Processos de Software.pdfAula 3 - Processos de Software.pdf
Aula 3 - Processos de Software.pdfFChico2
 
Aula 2 modelo de processo de software1
Aula 2   modelo de processo de software1Aula 2   modelo de processo de software1
Aula 2 modelo de processo de software1Tiago Vizoto
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração ContínuaScrumHalf Tool
 
09 gerenciamento de_configuracao_e_mudanca
09 gerenciamento de_configuracao_e_mudanca09 gerenciamento de_configuracao_e_mudanca
09 gerenciamento de_configuracao_e_mudancaLuisinho Menard
 
FES_SENAIPR_Processos.pdf
FES_SENAIPR_Processos.pdfFES_SENAIPR_Processos.pdf
FES_SENAIPR_Processos.pdfFChico2
 
Engenharia de Requisitos - Recomendações para desenvolvimento de solução BIS.
Engenharia de Requisitos - Recomendações para desenvolvimento de solução BIS.Engenharia de Requisitos - Recomendações para desenvolvimento de solução BIS.
Engenharia de Requisitos - Recomendações para desenvolvimento de solução BIS.Otávio Souza
 
Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...William Melchior Jablonski, CTFL
 
Visual Studio Summit 2014 - Profiling de Aplicações .NET
Visual Studio Summit 2014 - Profiling de Aplicações .NETVisual Studio Summit 2014 - Profiling de Aplicações .NET
Visual Studio Summit 2014 - Profiling de Aplicações .NETFernando Henrique
 
Modelos de desenvolvimento de software (dino brasilis)
Modelos de desenvolvimento de software (dino brasilis)Modelos de desenvolvimento de software (dino brasilis)
Modelos de desenvolvimento de software (dino brasilis)djadrianodez
 
Aula 1 introdução à engenharia de software1 (1)
Aula 1   introdução à engenharia de software1 (1)Aula 1   introdução à engenharia de software1 (1)
Aula 1 introdução à engenharia de software1 (1)Tiago Vizoto
 
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Cloves da Rocha
 
aula1introducaoarquitetura.pdf
aula1introducaoarquitetura.pdfaula1introducaoarquitetura.pdf
aula1introducaoarquitetura.pdfAntonio Lobato
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppCloves da Rocha
 
Aula 04 qs - sistemas embarcados
Aula 04   qs - sistemas embarcadosAula 04   qs - sistemas embarcados
Aula 04 qs - sistemas embarcadosJunior Gomes
 

Similar to Processos de Software (20)

Aula 3 - Processos de Software.pdf
Aula 3 - Processos de Software.pdfAula 3 - Processos de Software.pdf
Aula 3 - Processos de Software.pdf
 
Fábrica de Software
Fábrica de SoftwareFábrica de Software
Fábrica de Software
 
347842.ppt
347842.ppt347842.ppt
347842.ppt
 
Capitulo 02 sommerville
Capitulo 02 sommervilleCapitulo 02 sommerville
Capitulo 02 sommerville
 
ES4.ppt
ES4.pptES4.ppt
ES4.ppt
 
Aula 2 modelo de processo de software1
Aula 2   modelo de processo de software1Aula 2   modelo de processo de software1
Aula 2 modelo de processo de software1
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
09 gerenciamento de_configuracao_e_mudanca
09 gerenciamento de_configuracao_e_mudanca09 gerenciamento de_configuracao_e_mudanca
09 gerenciamento de_configuracao_e_mudanca
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
FES_SENAIPR_Processos.pdf
FES_SENAIPR_Processos.pdfFES_SENAIPR_Processos.pdf
FES_SENAIPR_Processos.pdf
 
Engenharia de Requisitos - Recomendações para desenvolvimento de solução BIS.
Engenharia de Requisitos - Recomendações para desenvolvimento de solução BIS.Engenharia de Requisitos - Recomendações para desenvolvimento de solução BIS.
Engenharia de Requisitos - Recomendações para desenvolvimento de solução BIS.
 
Apresentação RUP
Apresentação RUPApresentação RUP
Apresentação RUP
 
Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...
 
Visual Studio Summit 2014 - Profiling de Aplicações .NET
Visual Studio Summit 2014 - Profiling de Aplicações .NETVisual Studio Summit 2014 - Profiling de Aplicações .NET
Visual Studio Summit 2014 - Profiling de Aplicações .NET
 
Modelos de desenvolvimento de software (dino brasilis)
Modelos de desenvolvimento de software (dino brasilis)Modelos de desenvolvimento de software (dino brasilis)
Modelos de desenvolvimento de software (dino brasilis)
 
Aula 1 introdução à engenharia de software1 (1)
Aula 1   introdução à engenharia de software1 (1)Aula 1   introdução à engenharia de software1 (1)
Aula 1 introdução à engenharia de software1 (1)
 
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
 
aula1introducaoarquitetura.pdf
aula1introducaoarquitetura.pdfaula1introducaoarquitetura.pdf
aula1introducaoarquitetura.pdf
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
 
Aula 04 qs - sistemas embarcados
Aula 04   qs - sistemas embarcadosAula 04   qs - sistemas embarcados
Aula 04 qs - sistemas embarcados
 

Recently uploaded

2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxkellyneamaral
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaHELENO FAVACHO
 

Recently uploaded (20)

2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docx
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 

Processos de Software

  • 1. Processos  de  So*ware   Centro  de  Informá-ca  -­‐  Universidade  Federal  de  Pernambuco   Sistemas  de  Informação   Vinicius  Cardoso  Garcia   vcg@cin.ufpe.br     Slides  originais  elaborados  por  Ian  Sommerville   O  autor  permite  o  uso  e  a  modificação  dos  slides  para  fins  didá-cos  
  • 2. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   O  processo  de  so*ware   •  Um  conjunto  estruturado  de  a-vidades,   procedimentos,  artefatos  e  ferramentas   necessários  para  o  desenvolvimento  de  um   sistema  de  soGware   –  A-vidades:  Especificação,  Projeto,  Validação,   Evolução   •  Exemplos:  Processo  Unificado  (RUP),   Programação  Extrema,  UML  Components   •  Um  modelo  de  processo  de  soGware  apresenta  a   descrição  de  um  processo  de  uma  perspec-va   par-cular,  normalmente  focando  apenas  em   algumas  a-vidades.   2  
  • 3. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Modelos  genéricos  de  processo  de  so*ware   •  O  modelo  cascata   –  Fases  separadas  e  dis-ntas  de  especificação  e   desenvolvimento.   •  Engenharia  de  soGware  baseada  em  componentes   –  O  sistema  é  montado  a  par-r  de  componentes  existentes.   •  Desenvolvimento  itera-vo   –  Sistema  desenvolvido  através  de  várias  etapas   •  Existem  muitas  variantes  destes  modelos   –  Ex:  desenvolvimento  formal  onde  um  processo   semelhante  ao  cascata  é  usado,  mas  a  especificação   formal  é  refinada  durante  os  vários  estágios  para  um   projeto  implementável.   3  
  • 4. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Modelo  cascata   Resposta  ao  modelo  code-­‐and-­‐fix  vigente  na   década  de  70   Ian  Sommerville,  Engenharia  de  SoGware,  8ª.    edição.  Capítulo  4   4  
  • 5. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Fases  do  modelo  cascata   •  Análise  e  definição  de  requisitos   •  Projeto  de  sistema  e  soGware   •  Implementação  e  teste  de  unidade   •  Integração  e  teste  de  sistema   •  Operação  e  manutenção   •  Primeiro  modelo  a  organizar  as  a-vidades  de  desenv.   •  Uma  fase  tem  de  estar  completa  antes  de  passar  para   a  próxima.   –  Saídas  das  fases  são  acordadas  contratualmente!   •  Todas  as  fases  envolvem  a-vidades  de  validação   5  
  • 6. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Problemas  do  modelo  cascata   •  ParEcionamento  inflexível  do  projeto  em   estágios     –  Dificulta  a  resposta  aos  requisitos  de  mudança  do   cliente.   •  Documentos  “completamente  elaborados”  são   necessários  para  fazer  as  transições  entre   estágios   •  Apropriado  somente  quando  os  requisitos  são   bem  compreendidos  e  quando  as  mudanças  são   raras   –  Poucos  sistemas  de  negócio  têm  requisitos  estáveis.   6  
  • 7. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Desenvolvimento  evolucionário   •  Implementação  inicial,  exposição  do  resultado   aos  comentários  do  usuário  e  refinamento   desse  resultado  em  versões   •  Especificação,  desenvolvimento  e  validação   são  intercaladas   •  Dois  -pos   –  Desenvolvimento  exploratório:  explora  requisitos   e  entrega  um  sistema  final   –  Proto-pação  throwaway:  obje-vo  é  compreender   os  requisitos  do  cliente   7  
  • 8. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Desenvolvimento  evolucionário   •  Vantagem:  especificação  desenvolvida  de   forma  incremental   •  Problemas:   –  Processo  não  é  visível   –  Sistemas  podem  ser  mal  estruturados  devido  à   mudança  coninua   8  
  • 9. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Desenvolvimento  Exploratório   •  Idéia  geral:   –  Desenvolvimento  da  primeira  versão  do  sistema  o   mais  rápido  possível   –  Modificações  sucessivas  até  que  o  sistema  seja   considerado  adequado   –  Após  o  desenvolvimento  de  cada  uma  das  versões   do  sistema  ele  é  mostrado  aos  usuários  para   comentários   •  Adequado  para  o  desenvolvimento  de   sistemas  onde  é  dijcil  ou  impossível  se  fazer   uma  especificação  detalhada  do  sistema   9  
  • 10. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   ProtoEpação  Descartável   •  Como  na  programação  exploratória,  a  primeira   fase  prevê  o  desenvolvimento  de  um  programa   para  o  usuário  experimentar     –  No  entanto,  o  obje-vo  aqui  é  estabelecer  os   requisitos  do  sistema   –  O  soGware  deve  ser  reimplementado  na  fase  seguinte   •  A  construção  de  protó-pos  com  os  quais  os   usuários  possam  brincar  é  uma  idéia  bastante   atra-va:   –  Para  sistemas  grandes  e  complicados   –  Quando  não  existe  um  sistema  anterior  ou  um   sistema  manual  que  ajude  a  especificar  os  requisitos   10  
  • 11. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   ProtoEpação  Descartável   •  Os  obje-vos  do  protó-po  devem  estar  bem   claros  antes  do  início  da  codificação.    Possíveis   obje-vos:     –  Entender  os  requisitos  dos  usuários   –  Definir  a  interface  com  os  usuários   –  Demonstrar  a  viabilidade  do  sistemas  para  os   gerentes.     •  Uma  decisão  importante  a  ser  tomada  é  escolher   o  que  será  e  o  que  não  será  parte  do  protó-po   –  Não  é  economicamente  viável  implementar  todo  o   sistema!     –  Os  obje-vos  do  protó-po  são  o  ponto  de  par-da   11  
  • 12. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Engenharia  de  so*ware  baseada  em  componentes   •  Baseado  em  reuso  sistemá-co  onde  sistemas  são   integrados  a  par-r  de  componentes  existentes  ou   de  sistemas  COTS  (Commercial-­‐of-­‐the-­‐shelf)   •  Estágios  do  processo   –  Análise  de  componentes;   –  Modificação  de  requisitos;   –  Projeto  de  sistema  com  reuso;   –  Desenvolvimento  e  integração.   •  Esta  abordagem  está  se  tornando  cada  vez  mais   usada  à  medida  que  padrões  de  componentes   têm  surgido.   •  Reuso  acidental  vs.  Reuso  planejado   12  
  • 13. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Processos  IteraEvos   •  Requisitos  de  sistema  SEMPRE  evoluem  no  curso   de  um  projeto     •  Algum  retrabalho  é  necessário   •  A  abordagem  iteraEva  pode  ser  aplicada  a   qualquer  um  dos  modelos  genéricos  de  processo   •  Duas  abordagens  (relacionadas)     –  Entrega  incremental;   –  Desenvolvimento  espiral.   •  Essência:  especificação  desenvolvida  em   conjunto  com  o  soGware   13  
  • 14. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Entrega  incremental   •  O  sistema  é  entregue  ao  cliente  em  incrementos   –  Cada  incremento  fornece  parte  da  funcionalidade     •  Os  requisitos  são  priorizados   –  Requisitos  de  prioridade  mais  alta  são  incluídos  nos   incrementos  iniciais.   •  Uma  vez  que  o  desenvolvimento  de  um   incremento  é  iniciado,  os  requisitos  são   congelados   –  Os  requisitos  para  os  incrementos  posteriores  podem   con-nuar  evoluindo  (e  incluir  requisitos  já   implementados!)   14  
  • 15. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Desenvolvimento  incremental   Ian  Sommerville,  Engenharia  de  SoGware,  8ª.    edição.  Capítulo  4   15  
  • 16. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Vantangens  do  desenvolvimento  incremental   •  Incrementos  podem  ser  entregues   regularmente  ao  cliente  e,  desse  modo,  a   funcionalidade  de  sistema  é  disponibilizada   mais  cedo.   •  Os  incrementos  iniciais  agem  como  protóEpos   para    elicitar  os  requisitos  para  incrementos   posteriores  do  sistema.   •  Riscos  menores  de  falha  geral  do  projeto.   •  Os  serviços  de  sistema  de  mais  alta  prioridade   tendem  a  receber  mais  testes.   16  
  • 17. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Problemas  do  desenvolvimento  incremental   •  Incrementos  pequenos  exigem  mapeamento   entre  requisitos  e  incremento  de  tamanho   adequado   •  Dificuldade  de  iden-ficar  os  recursos  comuns   exigidos  por  todos  os  incrementos   17  
  • 18. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Extreme  programming   •  Uma  abordagem  baseada  no  desenvolvimento   e  na  entrega  de  incrementos  de   funcionalidade  muito  pequenos.   •  Baseia-­‐se  no  aprimoramento  constante  do   código,  em  testes  automa-zados,  no   envolvimento  do  usuário  na  equipe  e  no   desenvolvimento  em  pares.   18  
  • 19. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Desenvolvimento  espiral   •  O  processo  é  representado  como  uma  espiral   ao  invés  de  uma  sequência  de  a-vidades  com   realimentação.   •  Cada  loop  na  espiral  representa  uma  fase  no   processo.   •  Sem  fases  definidas,  tais  como  especificação   ou  projeto  –  os  loops  na  espiral  são  escolhidos   dependendo  do  que  é  requisitado.   •  Os  riscos  são  explicitamente  avaliados  e   resolvidos  ao  longo  do  processo.   19  
  • 20. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Modelo  espiral  do  processo  de  so*ware   Ian  Sommerville,  Engenharia  de  SoGware,  8ª.    edição.  Capítulo  4   20  
  • 21. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Setores  do  modelo  espiral   •  Definição  de  obje-vos   –  Obje-vos  específicos  para  a  fase  são  iden-ficados.   •  Avaliação  e  redução  de  riscos   –  Riscos  são  avaliados  e  a-vidades  são  realizadas  para  reduzir  os   riscos-­‐chave.   •  Desenvolvimento  e  validação   –  Um  modelo  de  desenvolvimento  para  o  sistema,  que  pode  ser   qualquer  um  dos  modelos  genéricos,  é  escolhido.   •  Planejamento   –  O  projeto  é  revisado  e  a  próxima  fase  da  espiral  é  planejada.   •  Processo  de  Desenvolvimento  vs.  Processo  de   Gerenciamento   21  
  • 22. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Transformação  Formal   •  Idéia  geral:   –  Uma  especificação  formal  (definição  matemá-ca,   não  ambígua)  do  soGware  é  desenvolvida  e   posteriormente  “transformada”  em  um  programa   através  de  regras  que  preservam  a  corretude  da   especificação   esp.  1   esp.  2   implement.   22  
  • 23. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Transformação  Formal   •  A  grande  mo-vação  por  trás  da  idéia  de   refinamento  formal  é  a  possibilidade  de  gerar   programas  que  são  corretos  por  construção   –  O  próprio  processo  de  desenvolvimento  deve   garan-r  que  o  programa  faz  exatamente  o  que  foi   especificado   •  Este  modelo  tem  sido  aplicado  ao   desenvolvimento  de  sistemas  crí-cos,   especialmente  naqueles  onde  a  segurança  é   um  fator  crí-co  (ex:  sistema  de  controle  de   ferrovias)   23  
  • 24. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   AEvidades  de  um  processo  de  desenvolvimento   •  Especificação  de  soGware     •  Projeto  e  implementação  de  soGware   •  Validação  de  soGware   •  Evolução  de  soGware   24  
  • 25. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Especificação  de  so*ware   •  O  processo  para  definir  quais  serviços  são   necessários  e  iden-ficar  as  restrições  de   operação  e  de  desenvolvimento  do  sistema.   •  Processo  de  engenharia  de  requisitos   –  Estudo  de  viabilidade;   •  Realizado  antes  do  projeto  ser  iniciado   –  Elicitação  e  análise  de  requisitos;   –  Especificação  de  requisitos;   •  Requisitos  do  usuário  (mais  abstrato)  e  requisitos  do  sistema   (descrição  detalhada  de  funcioalidades)   –  Validação  de  requisitos.   25  
  • 26. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   O  processo  de  engenharia  de  requisitos   Também  pode  envolver  a   protoEpação  de  partes  do   Ian  Sommerville,  Engenharia  de  SoGware,  8ª.    edição.  Capítulo  4   sistema!   26  
  • 27. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Projeto  e  implementação  de  so*ware   •  É  o  processo  de  conversão  da  especificação  em   um  sistema  de  soGware   •  Projeto  de  soGware   –  Projetar  uma  estrutura  de  soGware  que  atenda  à   especificação.   •  Implementação   –  Transformar  essa  estrutura  em  um  programa   executável.   •  As  a-vidades  de  projeto  e  implementação  são   fortemente  relacionadas  e  podem  ser   intecaladas.   27  
  • 28. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   AEvidades  do  processo  de  projeto   •  Projeto  de  arquitetura   –  Subsistemas  e  relacionamento   •  Especificação  abstrata   –  Especificação  abstrata  de  serviços  e  restrições  de   subsistemas   •  Projeto  de  interfaces  entre  componentes   •  Projeto  de  componente   •  Projeto  de  estrutura  de  dados   •  Projeto  de  algoritmo   28  
  • 29. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Métodos  estruturados   •  Abordagens  sistemáEcas  para  projetar  sistemas   de  soGware   –  Project  (gerenciamento)  vs.  Design   (desenvolvimento)   •  O  projeto  é,  em  geral,  documentado  como  um   conjunto  de  modelos  gráficos   •  Modelos  possíveis   –  Modelo  de  objeto;   –  Modelo  de  sequência;   –  Modelo  de  transição  de  estado;   –  Modelo  estruturado;   –  Modelo  de  fluxo  de  dados.   29  
  • 30. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Programação  e  depuração   •  É  a  transformação  de  um  projeto  em  um   programa  e  a  remoção  de  defeitos  desse   programa.   •  Programação  é  uma  a-vidade  pessoal  –  não   há  processo  genérico  de  programação.   –  Há  algumas  prá-cas,  porém,  que  são   universalmente  consideradas  boas   •  Programadores  realizam  alguns  testes  para   descobrir  defeitos  no  programa  e  removem   esses  defeitos  no  processo  de  depuração   30  
  • 31. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Validação  de  so*ware   •  Verificação  e  validação  (V  &  V)  têm  a  intenção  de   mostrar  que  um  sistema  está  em  conformidade  com  a   sua  especificação  e  que  atende  aos  requisitos  do   cliente   •  Verificação:  “construímos  o  sistema  corretamente?”   –  Exs:  inspeção  de  código,  análise  está-ca   •  Validação:  “construímos  o  sistema  correto?”     –  Exs:  testes,  animação  de  especificações   •  Testes  envolvem  a  execução  do  sistema  com  casos  de   teste  que  são  derivados  da  especificação  do  sistema  e   de  dados  reais  a  ser  processados  por  ele.   31  
  • 32. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Estágios  de  teste   •  Teste  de  componente  ou  unidade   –  Os  componentes  individuais  são  testados   independentemente;   –  Esses  componentes  podem  ser  funções  ou  classes  de   objetos,  ou  grupos  coerentes  dessas  en-dades.   •  Teste  de  sistema   –  Teste  de  sistema  como  um  todo.  O  teste  das  propriedades   emergentes  é  par-cularmente  importante.   –  Busca  erros  que  resultam  de  interações  não  previstas   entre  componentes     •  Teste  de  aceitação   –  Teste  com  dados  do  cliente  para  verificar  se  o  sistema   atende  às  suas  necessidades,  ou  seja,  pode  revelar   problemas  de  requisitos   32  
  • 33. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Fases  de  teste   Ian  Sommerville,  Engenharia  de  SoGware,  8ª.    edição.  Capítulo  4   33  
  • 34. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Evolução  de  so*ware   •  O  soGware  é  inerentemente  flexível  e  pode   mudar   •  Requisitos  mudam  devido  a  diversos  fatores  e  o   soGware  deve  acompanhar  essas  mudanças   •  Processos  an-gos  separavam  explicitamente   desenvolvimento  de  evolução   –  Processos  e  métodos  itera-vos  (XP,  RUP,  Espiral)   normalmente  não  fazem  uma  sepação  explícita     •  Evolução  pode  se  dever  a  diversas  razões:   –  Correções  (patches)   –  Mudanças  de  requisitos   –  Melhoria  de  funcionalidades  pré-­‐existentes   34  
  • 35. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Evolução  de  so*ware   Ian  Sommerville,  Engenharia  de  SoGware,  8ª.    edição.  Capítulo  4   35  
  • 36. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   (RaEonal)  Unified  Process   •  É  um  (“modelo  de”?)  processo  moderno  baseado   na    UML   –  Tenta  cobrir  todos  os  aspectos  do  desenvolvimento   de  soGware   •  Fortemente  focado  na  documentação  do  sistema   •  Normalmente  descrito  a  par-r  de  três   perspec-vas:   –  Uma  perspec-va  dinâmica  que  mostra  as  fases  ao   longo  do  tempo;   –  Uma  perspec-va  está-ca  que  mostra  aEvidades  de   processo;   –  Uma  perspec-va  prá-ca  que  sugere  bons  princípios  e   práEcas  de  desenvolvimento   36  
  • 37. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Modelo  de  fases  do  RUP   Centrado  no  gerenciamento  de  projetos   Ian  Sommerville,  Engenharia  de  SoGware,  8ª.    edição.  Capítulo  4   37  
  • 38. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Fases  do  RUP   •  Concepção   –  Estabelecer  o  business  case  para  o  sistema.   •  Elaboração   –  Desenvolver  um  entendimento  do  domínio  do   problema,  arquitetura  do  sistema  e  iden-ficar  riscos   •  Construção   –  Projeto,  programação,  teste  de  sistema  e   documentação   •  Transição   –  Implantar  o  sistema  no  seu  ambiente  operacional.   38  
  • 39. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Boas  práEcas  do  RUP   •  Desenvolver  o  soGware  itera-vamente   •  Gerenciar  requisitos   •  Usar  arquiteturas  baseadas  em  componentes   •  Modelar  o  soGware  visualmente   •  Verificar  a  qualidade  de  soGware   •  Controlar  as  mudanças  do  soGware   39  
  • 40. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Workflows  estáEcos   Ian  Sommerville,  Engenharia  de  SoGware,  8ª.    edição.  Capítulo  4   40  
  • 41. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   Leituras  recomendadas   •  SOMMERVILLE,  I.  Engenharia  de  SoGware.  9ª.   Ed.  São  Paulo:  Pearson  Educa-on,  2011   –  Capítulo  4   •  Referência  adicional   –  Barry  W.  Boehm.  A  Spiral  Model  of  So*ware   Development  and    Enhancement.  IEEE  Computer,   vol.  21,  número  5,  Maio  de  1988.   •  h|p://dx.doi.org/10.1109/2.59   41  
  • 42. [if977]  Engenharia  de  So*ware  -­‐  SI  -­‐  CIn  -­‐  UFPE   AEvidades   •  Projeto   – Definição  de  equipes  e  projetos,   montagem  da  infraestrutura  da  fábrica   (site)  -­‐  até  20/03   42