PDF de programación - Desarrollo de software basado en reutilización

Imágen de pdf Desarrollo de software basado en reutilización

Desarrollo de software basado en reutilizacióngráfica de visualizaciones

Publicado el 28 de Junio del 2018
328 visualizaciones desde el 28 de Junio del 2018
9,5 MB
130 paginas
Creado hace 7a (30/07/2012)
Desarrollo de
software basado
en reutilización


Macario Polo Usaola

PID_00184467

CC-BY-NC-ND • PID_00184467

Desarrollo de software basado en reutilización

Los textos e imágenes publicados en esta obra están sujetos –excepto que se indique lo contrario– a una licencia de
Reconocimiento-NoComercial-SinObraDerivada (BY-NC-ND) v.3.0 España de Creative Commons. Podéis copiarlos, distribuirlos
y transmitirlos públicamente siempre que citéis el autor y la fuente (FUOC. Fundación para la Universitat Oberta de Catalunya),
no hagáis de ellos un uso comercial y ni obra derivada. La licencia completa se puede consultar en http://creativecommons.org/
licenses/by-nc-nd/3.0/es/legalcode.es

CC-BY-NC-ND • PID_00184467

Índice

Desarrollo de software basado en reutilización


Introducción...............................................................................................

Objetivos.......................................................................................................

1.

Introducción a la reutilización......................................................
1.1. Un poco de historia ....................................................................
1.2. Reutilización de conocimiento: patrones de diseño ...................
1.3.
Beneficios y costes de la reutilización ........................................
1.3.1.

El impacto positivo de la reutilización en el proceso
de mantenimiento .........................................................
Los costes de reutilizar ..................................................

1.3.2.


2. Reutilización en diseño de software orientado a objetos........
2.1.
Introducción ................................................................................
2.2. Abstracción, encapsulación y ocultamiento ...............................
2.3. Herencia y polimorfismo ............................................................


3. Reutilización a pequeña escala: soluciones técnicas de

reutilización........................................................................................
3.1.
Introducción ................................................................................
3.2. Una historia ilustrativa ...............................................................
Librerías .......................................................................................
3.3.
Librerías de enlace estático ............................................
3.3.1.
3.3.2.
Librerías de enlace dinámico .........................................
3.3.3. Otras librerías .................................................................
3.4. Clases ...........................................................................................
Patrones arquitectónicos .............................................................
3.5.
3.5.1. Arquitectura multicapa ..................................................
3.5.2. Arquitectura de pipes and filters (tuberías y filtros) .........
3.5.3. Arquitecturas cliente-servidor ........................................
3.5.4. Arquitecturas P2P (peer-to-peer, de igual a igual) ............
Patrones de diseño ......................................................................
Patrones de Gamma ......................................................
3.6.1.
3.6.2.
Patrones de Larman .......................................................
El patrón modelo-vista-controlador ..............................
3.6.3.
3.7. Componentes ..............................................................................
3.7.1.
Ingeniería del software basada en componentes ...........
3.7.2. Componentes y clases ...................................................
3.7.3. Desarrollo de componentes ...........................................
Frameworks....................................................................................

3.6.

3.8.

5

6

7
9
12
13

14
15

17
18
21
23

26
26
26
28
29
29
31
31
32
33
34
35
36
37
38
47
52
52
53
58
59
59

CC-BY-NC-ND • PID_00184467

Desarrollo de software basado en reutilización

3.8.1.

3.8.2.

Framework para la implementación de interfaces de
usuario ............................................................................
Frameworks de persistencia para “mapeo” objeto-
relacional ........................................................................
3.8.3.
Framework para el desarrollo de aplicaciones web .........
Servicios .......................................................................................
3.9.1.
Introducción a los servicios web ...................................
3.9.2. Desarrollo de servicios web ...........................................
3.9.3. Desarrollo de clientes ....................................................
3.9.4.
Tipos de datos ................................................................

3.9.


4. Reutilización a gran escala / Soluciones metodológicas de

reutilización........................................................................................
4.1.
Introducción ................................................................................
Ingeniería del software dirigida por modelos .............................
4.2.
4.2.1. Diferentes aproximaciones: metamodelos propios y

metamodelos estándares ................................................
4.2.2. UML como lenguaje de modelado en MDE ..................
4.2.3.
Soporte automático ........................................................
Lenguajes de dominio específico (DSL: domain-specific
languages) .....................................................................................
4.3.1. Definición de DSL .........................................................
Línea de producto de software ...................................................
4.4.1.
Ingeniería de dominio ...................................................
Ingeniería del software para líneas de producto
4.4.2.
basada en UML ..............................................................
Programación generativa ............................................................
Ingeniería de dominio ...................................................
4.5.1.
4.5.2.
Tecnologías .....................................................................
Fábricas de software ....................................................................

4.3.

4.4.

4.5.

4.6.


Resumen.......................................................................................................

Actividades..................................................................................................

Ejercicios de autoevaluación..................................................................

Solucionario................................................................................................

Glosario........................................................................................................

Bibliografía.................................................................................................

60

61
63
65
65
66
68
69

70
70
70

72
76
80

82
83
84
86

92
93
95
96
102

104

105

107

109

128

130

CC-BY-NC-ND • PID_00184467

Introducción

5

Desarrollo de software basado en reutilización

Todo el que haya programado alguna vez habrá sentido, en algún momento,
la necesidad de recuperar alguna función o algún bloque de código que tenía
escrito de algún proyecto previo para incorporarlo en el que le esté ocupando
en ese momento. Las posibilidades que nos dan el Copy & Paste nos permiten
aprovechar de esta manera el esfuerzo que dedicamos en momentos anteriores.

Sin embargo, esta utilización de elementos predesarrollados no casa comple-
tamente con el concepto de reutilización en el sentido de la ingeniería del
software, donde reutilizar tiene un significado más relacionado con:

1) La encapsulación de funcionalidades (previamente desarrolladas y proba-
das) en elementos que, posteriormente, podrán ser directamente integrados
en otros sistemas.

2) El desarrollo de estas funcionalidades mediante métodos de ingeniería de
software.

3) El aprovechamiento del conocimiento y la experiencia producidos durante
décadas de práctica en la construcción de software.

Este módulo se estructura en cuatro partes: en la primera se presenta una vi-
sión general de la reutilización, poniéndose algunos ejemplos y haciendo un
breve repaso por su historia. Las aportaciones a la reutilización de la orienta-
ción a objetos, que ha desempeñado un papel importantísimo en este campo,
se describen e ilustran en la segunda parte. Algunas soluciones técnicas, mu-
chas de ellas evoluciones casi naturales de la orientación a objetos, se presen-
tan en la tercera parte. La cuarta y última parte se enfoca más a soluciones
metodológicas para desarrollo de software, que toman la reutilización como
un valor esencial.

CC-BY-NC-ND • PID_00184467

Objetivos

6

Desarrollo de software basado en reutilización

Al finalizar este curso, el alumno debe:

1. Ser consciente de la conveniencia de reutilizar software y de desarrollar

software reutilizable.

2. Conocer las principales técnicas para desarrollo de software reutilizable.

3. Conocer técnicas para integrar software reutilizable en los proyectos nue-

vos.

4. Conocer metodologías que permitan el desarrollo de proyectos que hagan

un uso intensivo de la reutilización.

CC-BY-NC-ND • PID_00184467

7

Desarrollo de software basado en reutilización

1. Introducción a la reutilización

La conferencia se organizó en la ciudad de
Garmish (Alemania), del 7 al 11 de octubre de
1968. Sus actas se han escaneado y procesado
mediante OCR y se encuentran publicadas
en Internet: http://homepages.cs.ncl.ac.uk/
brian.randell/NATO/nato1968.PDF

La primera vez que se introdujo de forma pública y relevante la idea de la re-
utilización del software fue en 1968, en un célebre congreso sobre ingeniería
del software que organizó el Comité de Ciencia de la OTAN. En este encuen-
tro, además de acuñarse también el término ingeniería
  • Links de descarga
http://lwp-l.com/pdf12197

Comentarios de: Desarrollo de software basado en reutilización (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad