VinBR

Reuso de Software 07/03/2012

Mar 14th, 2012
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.67 KB | None | 0 0
  1.  
  2. # # # # # # # # # # # # #
  3. # Reuso de Software #
  4. # Prof Eduardo Figueiredo #
  5. # notasdogarcia.blog.com #
  6. # # # # # # # # # # # # #
  7.  
  8. // Ele citou um pouco da bibliografia.
  9.  
  10. Hoje vamos falar de vários pontos gerais sobre o curso.
  11.  
  12. Reuso de software é uma abordagem de desenvolvimento com o objetivo de máximar o uso de softwares já existentes.
  13.  
  14. Várias ferramentas foram criadas para facilitar o reuso de softwares:
  15. - Bibliotecas.
  16. - Classes de objetos.
  17. - Componentes.
  18.  
  19. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  20.  
  21. O tipo mais comum de re-uso é o reuso de funções e objetos.
  22.  
  23. O reuso de componentes diz respeito a um bloco maior da estrutura de um programa, que pode ser re-aproveitada.
  24.  
  25. Reuso de sistema inteiro é reutilizar todo o código de um programa.
  26.  
  27. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  28.  
  29. Vantagens do reuso:
  30. - Redução de custos e tempo de entrega.
  31. - Maior confiabilidade do produto (ele já foi testado antes).
  32. - Do ponto de vista do cliente há um menor risco de atrazo no desenvolvimento.
  33. - Voce pode gerar interfaces padrões reutilizaveis facilitando o uso do software.
  34.  
  35. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  36.  
  37. Potenciais Problemas:
  38. - Na questão de manutenção, um componente re-usado pode não ser compátivel com alguma atualização futura, e editar o código que voce não fez será mais dificil.
  39. - Falta de apoio ferramental, não existem ferramentas voltadas para isso.
  40. - É caro manter uma biblioteca para reuso, pois é dificil encontrar e entender o software desejado.
  41.  
  42. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  43.  
  44. Planejamento para reuso.
  45.  
  46. - O reuso exige um planejamento de toda empresa.
  47. - Muitas empresas podem criar vários sistemas com base em um mesmo conjunto de componentes.
  48.  
  49. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  50.  
  51. Cronograma e Ciclo de Vida
  52. - Se o cronograma é aperdado pode não valer a pena fazer um software reutilizável, mas pode valer a pena re-usar.
  53. - Se o software vai ser utilizado por muito tempo pode ser inteligente fazer o software sem reuso de outros softwares.
  54. Pois componentes de terceiros podem ser de díficil manutenção.
  55. - Por outro lado a manutenção pode ficar mais fácil se seu código for feito para re-uso.
  56.  
  57. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  58.  
  59. Equipe e Domínio
  60. - Conhecimento e experiencia na equipe é importante, pois é uma tarefa complexa.
  61. - Deve ser considerado que em alguns dominios pode ser mais fácil ou mais difícil encontrar bibliotecas para reuso.
  62.  
  63. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  64.  
  65. Abordagens de Reuso:
  66. // Aqui foram citadas vários itens importantes na área, e destacou as que ele vai citar no curso.
  67. // Pode copiar isso do slide.
  68.  
  69. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  70.  
  71. Blibliotecas de Software são uma forma bem comum de reuso.
  72. Geralmente implementam coisas como acesso a recusos e banco de dados, conversão de dados entre formatos, estruturas de dados abstratos, como fila, pilha, arvore etc.
  73.  
  74. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  75.  
  76. Framework
  77. - Um framework é uma aplicação incompleta, onde o conjunto de classes e interfaces geram uma estrutura generica.
  78. - Um sistema é implementado pela adição de componentes para preencher partes do projeto.
  79.  
  80. // Na vida real nem todo framework é exatamente incompleto, alguns funcionam mesmo sem adição de novo código.
  81.  
  82. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  83.  
  84. Tipos de Framework:
  85. - Frameworks de infra-estrutura, como comunicação, interfaces de usuário e compiladores.
  86. - Frameworks de integração que apoiam a troca de informação entre componentes.
  87. - Frameworks de aplicações, por exemplo uma que facilite o desenvolvimento de aplicações Web.
  88.  
  89. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  90.  
  91. Frameworks devem ser usados atravez de estensão.
  92.  
  93. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  94.  
  95. Principal problema:
  96.  
  97. Frameworks são complexos e levam um longo tempo para serem compreendidos.
  98. As vezes voce quer uma funcionalidade simples de um framework complexo então talvez valha mais apena implementar voce mesmo.
  99.  
  100. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  101.  
  102. Padrão de projeto e Padrão de arquitetura
  103.  
  104. CONCEITO
  105. Padrão de projeto são um conjunto de boas soluções para prroblemas recorrentes, que permitem o fácil reuso
  106. e servem como uma linguagem comum entre códigos diferentes.
  107.  
  108. Todo padrão é composto por:
  109. - Nome (para a comunicação entre programadores).
  110. - Descrição do problema.
  111. - Descrição da solução padrão.
  112. - Vantagens/Desvantagens do uso.
  113.  
  114. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  115.  
  116. Exemplo de um padrão:
  117.  
  118. Observadores: Imagina que voce quer publicar uma estatistica em mais de um tipo de gráfico.
  119. Voce pode adicionar uma lista de funções de atualização à estrutura estatistica, que chama as funções em questão sempre que um valor for alterado.
  120.  
  121. Nome: Observer
  122. Descrição do problema: Atualização de dados em vários locais.
  123. Descrição da solução padrão: Uma lista de referencias para serem atualizadas, contidas no objeto estatistico.
  124.  
  125. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  126.  
  127. Padrões Arquiteturais:
  128.  
  129. CONCEITO:
  130. São padrões mais baixo nível que descrevem as estruturas básicas de seu programa.
  131.  
  132. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  133.  
  134. Exemplo de Padrão de Arquitetura:
  135.  
  136. Arquitetura em Camadas:
  137. - Orgnaniza o sistema em camadas, onde cada camada só se comunica com as camadas superior e inferior, e repassa as informações necessárias de cima para baixo.
  138.  
  139. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  140.  
  141. Exemplo de arquitetura em camadas:
  142. Camada de Interface.
  143. Camada de Processamento.
  144. Camada de Dados.
  145.  
  146. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  147.  
  148. Reuso de Modelos e geração de código:
  149.  
  150. A proposta do re-uso de modelos é a idéia de que voce re-usa modelos, e após montar seu modelo real voce implementa o código.
  151. A vantagem é que um modelo é mais abstrato e portanto mais estável tendo um tempo de vida mais longo.
  152. Também é de compreensão mais fácil e permite melhor comunicação.
  153.  
  154. Reuso ainda é uma técnica pouco adotada, porém é uma aposta que pode dar certo, já que hoje os softwares são mais complexos e exigem maior abstração.
  155.  
  156. Um modelo deveria ser independente da linguagem assim como uma linguagem é independente do hardware.
  157.  
  158. Assim seria possível criar um compilador de modelos.
  159. // Já existem coisas próximas disso, mas não literalmente isso, os que existem geram apenas os modelos.
  160.  
  161. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  162.  
  163. Problemas potenciais:
  164. - Imaturidade do MDD hoje.
  165. - Falta de suporte de ferramentas.
  166. - Isso tira um pouco o papel do programador, o que pode gerar uma resistencia.
  167.  
  168. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  169.  
  170. // O professor pulou a parte sobre componentes para não atrasar o horário.
  171.  
  172. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  173.  
  174. Linhas de Produtos:
  175. Quando uma empresa cria vários aplicativos semelhantes, porque não reaproveitar a maior parte, e criar uma base comum de reaproveitamento.
  176.  
  177. Extração de linha:
  178. Este é o termo usado para a criação de uma linha de produtos, já que voce precisa encontrar a parte que é comum em seu vários produtos
  179. e extrai-la para ser usada nos próximos produtos.
  180.  
  181. // Ou seja isso é o processo inverso, ao invés de criar partes reusáveis, voce cria e depois vê o que está efetivamente sendo re-usado e extrai isso.
  182.  
  183. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  184.  
  185. Os Componentes de uma Linha de Produtos são:
  186. - Os mandatórios (todos tem)
  187. - Os opicionais (depende por exemplo do interesse do cliente)
  188.  
  189. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  190.  
  191. // Fim da aula.
  192. // Prox aula vamos falar mais de reuso de objetos e funções bibliotecas e frame works.
Advertisement
Add Comment
Please, Sign In to add comment