Construcción de software Producto Académico N° 01
Producto Académico N° 01
Lea atentamente los enunciados y desarrolle:
a) Elaborar un mapa conceptual sobre la reutilización del software. (5 ptos.)
Reutilizacion de software
Es el proceso de creacion de sistemas de
software a partir de un software existente
Beneficios Ventajas y desventajas Modelos de Niveles de reutilizacion
reutilizacion
Tiempo y costo Calidad Estandarizacion Ventajas:
Individual Reutilizacion de codigo:
- Reducir tiempo de
desarrollo. - Libreria de funciones.
- Reducir los costos.
Oportunista
Cualquier Los - Facilitar la
La reutilizacion de comoponentes comparticion de -El ingeniero de software reutiliza
optmizacion, piezas que el sabe que se ajustan al
software es una dentro de un productos del ciclo de Reutilizacion de
refactorizacion y problema
excelente manera de dominio dado, vida. diseños:
pruebas hechas en
ahorrar costos y componentes requieren cierta - Patrones de diseño e
esfuerzos de - Mayor eficiencia.
reutilizables ya han clase de Sistematico arquitectonicos.
desarrollo. sido completados. estandarizacion
para hacerlos - Implica inversiones iniciales para
compatibles con recoger frutos en el futuro.
otros Desventajas:
- Diseñar componentes genericos para
componentes. - Necesidad de invertir que sean reutilizados con facilidad. Reutilizacion de
antes de obtener especificaciones:
resultados.
- Debe estar asociada a
- Necesidad de formar la generacion
al personal. Bottom-up automatica de los
- Dificultad para - Se desarrollan pequeños componentes elementos de diseño e
institucionalizar los para una determinada aplicacion. implementacion.
procesos.
top- Down
- Se determinan las piezas necesarias que encajan unas
con otras.
1|Página
Construcción de software Producto Académico N° 01
b) Elaborar un mapa conceptual sobre los estándares de construcción de software.
(5 ptos.)
Estructura el documento Proceso a seguir para la
Estandares de de requerimientos a produccion del documento
documentos producir Estandares del
proceso de
documentacion
Documentos formales para
desarrollos posteriores o para
entregar a los clientes
Estructura y presentacion
Estandares de Se aplica al Estandares de de los documentos
producto software a documento
desarrollar Unica forma tangible de
(externos) Estandar de representar el software y el
documentacion proceso del software
Aseguran que todas las
copias electronicas de los
documentos sean
compatibles.
Estandares para el
Estandares en la intercambio de
construccion de documentos
software
Utilizacion de herramientas
concretas para elaborar los
Estandares de Como utilizar correctamente documentos, hojas de calculo,
codificacion un lenguaje de programacion. herramientas de
diagramacion,etc.
Define los procesos de
Estandares de especificacion y analisis, diseño,
proceso validacion, descripcion de los
(internos) documentos a generar en cada uno
de estos procesos.
2|Página
Construcción de software Producto Académico N° 01
Estándares y normas Aplicable a
Mejora de procesos de construcción de software y
CMMI proyectos TI.
PSP/ISO Permite estimar cuanto se tarda un individuo en realizar
una aplicación de software
PSP-TSP/ISO Predice el tiempo y tamaño del software administrando su
calidad.
Establecen un modelo de calidad para el producto del
ISO 25000 software, además de definir la evaluación de la calidad
del producto.
IEEE Es un método de establecimiento y mejora del trabajo en
equipo para procesos de software
3|Página
Construcción de software Producto Académico N° 01
c) Elegir un ciclo de vida de desarrollo de software y mencionar cómo se realiza la construcción de software en el ciclo de
vida elegido. (5 ptos.)
Software basado en componentes:
El desarrollo basado en componentes es una aplicación de la técnica de 𝑑𝑖𝑣𝑖𝑑𝑒 & 𝑐𝑜𝑛𝑞𝑢𝑒𝑟 para manejar la complejidad. La diferencia principal con los
métodos estructurados es principalmente que el análisis y diseño es realizado dentro del mismo paradigma que la implementación. Esta implementación
queda relegada a un segundo plano, siendo importante dar una solución lógica al problema, previo a su codificación.
Los componentes son unidades de software que se rigen por ciertos principios. Éstos son los mismos que los presentes en el paradigma de orientación a
objetos: unificación de datos y comportamiento, identidad y encapsulamiento. A estos principios se le agrega el del uso obligatorio de interfaces. Cada
cliente de un componente depende exclusivamente de la especificación del componente y no de su implementación.
4|Página
Construcción de software Producto Académico N° 01
Esta importante separación es la clave para reducir el acoplamiento y el buen manejo de las dependencias.
La metodología propuesta está basada en casos de uso y está centrada en la arquitectura. Estos lineamientos generales, propuestos por el
𝑅𝑎𝑡𝑖𝑜𝑛𝑎𝑙 𝑈𝑛𝑖𝑓𝑖𝑒𝑑 𝑃𝑟𝑜𝑐𝑐𝑒𝑠𝑠, encajan fuertemente con los objetivos.
Características
El modelo de desarrollo basado en componentes incorpora muchas de las características del modelo espiral.
Conduce a la reutilización del software, y la reutilización proporciona beneficios a los ingenieros de software. Según estudios de reutilización,
𝑄𝑆𝑀 𝐴𝑠𝑠𝑜𝑐𝑖𝑎𝑡𝑒𝑠 Informa que el ensamblaje de componentes lleva a una reducción del 70 % del ciclo de desarrollo y un 84% del coste del proyecto.
Se puede considerar a un componente como un proveedor de servicios independiente.
Es una entidad ejecutable independiente. El código fuente no está disponible, por lo que el componente no tiene que ser compilado antes de que sea usado
por otros componentes del sistema.
Los servicios ofrecidos por componentes están disponibles a través de una interfaz, y todas las interacciones son a través de esa interfaz.
Los componentes se definen por sus interfaces y puede considerarse que tienen dos interfaces relacionadas.
5|Página
Construcción de software Producto Académico N° 01
Interfaz que proporciona: Define los servicios que proporciona el componente, lo que se conoce como el API del componente. Define los métodos que
pueden ser llamados por el usuario del componente
Interfaz que requiere: Específica que servicios son necesarios para que el componente funcione, estos son requeridos de otros componentes del sistema.
Esto no altera la independencia del componente, debido a que los servicios que se requieren no son solicitados a un componente especifico
6|Página
Construcción de software Producto Académico N° 01
Objetivos de la ingeniería de software basado en componentes
la reducción del costo y tiempo para construir grandes y complicados sistemas: el objetivo principal del enfoque basado en componentes es
construir complicados sistemas de software mediante la utilización de componentes de estante de modo que el tiempo para construir el software
disminuye drásticamente. La relación de costo a eficacia del método actual puede ser analizada mediante punto de función u otros métodos.
mejorar la calidad del software: la calidad del software puede ser mejorado mediante la mejora de la calidad del componente. A pesar de que el
concepto no es cierto en general. A veces la calidad de los sistemas integrados puede no estar directamente relacionados con la calidad del
componente en el sentido de que la mejora de la calidad de los componentes no necesariamente implica el mejoramiento de los sistemas.
detección de defectos dentro de los sistemas: enfoque de componentes ayuda al sistema para encontrar su defecto fácilmente mediante la
comprobación de los componentes. Pero la fuente de defectos es difícil de encontrar en el caso del enfoque de desarrollo de componentes.
Beneficios del Desarrollo de Software basado en Componentes
En esencia, un componente es una pieza de código pre elaborado que encapsula alguna funcionalidad expuesta a través de interfaces estándar.
Los componentes son los "ingredientes de las aplicaciones", que se juntan y combinan para llevar a cabo una tarea.
Es algo muy similar a lo que podemos observar en el equipo de música que tenemos en nuestra sala. Cada componente de aquel aparato ha sido
diseñado para acoplarse perfectamente con sus pares, las conexiones son estándar y el protocolo de comunicación está ya preestablecido.
7|Página
Construcción de software Producto Académico N° 01
Ventajas
El paradigma de ensamblar componentes y escribir código para hacer que estos componentes funcionen se conoce como Desarrollo de Software Basado
en Componentes. El uso de este paradigma posee algunas ventajas:
Reutilización del software. Nos lleva a alcanzar un mayor nivel de reutilización de software.
Simplifica las pruebas. Permite que las pruebas sean ejecutadas probando cada uno de los componentes antes de probar el conjunto completo de
componentes ensamblados.
Simplifica el mantenimiento del sistema. Cuando existe un débil acoplamiento entre componentes, el desarrollador es libre de actualizar y/o agregar
componentes según sea necesario, sin afectar otras partes del sistema.
Mayor calidad. Dado que un componente puede ser construido y luego mejorado continuamente por un experto u organización, la calidad de una aplicación
basada en componentes mejorará con el paso del tiempo.
De la misma manera, el optar por comprar componentes de terceros en lugar de desarrollarlos, posee algunas ventajas:
Ciclos de desarrollo más cortos. La adición de una pieza dada de funcionalidad tomará días en lugar de meses o años.
Mejor ROI. Usando correctamente esta estrategia, el retorno sobre la inversión puede ser más favorable que desarrollando los componentes uno mismo.
Funcionalidad mejorada. Para usar un componente que contenga una pieza de funcionalidad, solo se necesita entender su naturaleza, más no sus detalles
internos. Así, una funcionalidad que sería impráctica de implementar en la empresa, se vuelve ahora completamente asequible.
Desventajas
Genera mucho tiempo.
Genera mucho trabajo adicional
Confiabilidad de los componentes.
Los componentes son cajas negras de unidades de programas, y el código de los componentes puede no estar disponible para los usuarios de dichos
componentes.
8|Página
Construcción de software Producto Académico N° 01
d) Explicar la necesidad de realizar métricas en la construcción del software. (5 ptos.)
La creación de un software contrae muchas interrogantes si está bien desarrollado cumplirá bien su función entonces al realizar métricas en la construcción
del software nos ayuda a:
- Conocer el tiempo y esfuerzo que nos tomara la construcción del software.
- El costo económico y documentación que ello requiera.
- Conocer cuánto código ha sido creado y cuanto procede de desarrollos anteriores.
- Medir el tamaño y la capacidad que tiene tu software.
- Calcular el número de errores detectados y permitirte repararlos.
Permitiendo medir su capacidad y su funcionalidad adecuados a los requerimientos de un buen diseño teniendo en cuenta los parámetros y calidad exigidos
por los ISOS/IEE, valorando el costo y rentabilidad que esta produzca.
9|Página
Construcción de software Producto Académico N° 01
Bibliografía
Terreros, J. C. (s.f.). Desarrollo de Software basado en Componentes
10 | P á g i n a