Kategorien: Alle - componentes - interfaces - reutilización - arquitectura

von Kevyn Guzmán Zambrano Vor 3 Jahren

378

Organigrama arbol

La ingeniería de software basada en componentes se centra en el diseño y desarrollo de sistemas a través de la descomposición en componentes funcionales o lógicos con interfaces de comunicación bien definidas.

Organigrama arbol

Diferencia de desarrollo

descripción símbolo

descripción símbolo

Bibliografía

https://sites.google.com/site/lawebdelsoftware/ingenieria-de-software-1/unidad-vi https://tognuhome.files.wordpress.com/2020/02/cap17.pdf http://www.softwcare.com/pdf/publicaciones/calidade2003.pdf http://idsuba.blogspot.com/2014/06/sistemas-criticos.html http://software-unesr-2013.blogspot.com/p/definicion-el-software-esun-de.html#:~:text=El%20t%C3%A9rmino%20%E2%80%9Cevoluci%C3%B3n%E2%80%9D%20del%20software,din%C3%A1mica%20de%20crecimiento%20del%20software.&text=Durante%20los%20primeros%20a%C3%B1os%20de,la%20misma%20persona%20u%20organizaci%C3%B3n.

Evolución de Software

La evolución del software es importante porque las organizaciones invierten grandes cantidades de dinero en él y en la actualidad son completamente dependientes de dichos sistemas. Sus sistemas se consideran activos empresariales críticos, por lo que tienen que invertir en el cambio del sistema para mantener el valor de estos activos. En consecuen- cia, las compañías más grandes gastan más en conservar los sistemas existentes que en el desarrollo de sistemas nuevos
Importancia del software

La importancia del software radica también en que permite una comunicación entre el usuario y la máquina, e incluso una interacción entre ambos. Un ejemplo muy sencillo seria, al pulsar un botón del teclado, se activa automáticamente una serie de órdenes, que permiten identificar que botón se ha pulsado, traducirlo a lenguaje de máquina, mostrarlo en pantalla para el usuario y almacenarlo. Así, el software que está instalado en el ordenador se ha ocupado de todo eso ante un simple gesto del usuario. Esta es precisamente otra de sus grandes funciones, facilitar las tareas a los usuarios.

Características

El software es inmune a los males ambientales que desgasten el hardware.

El Software se puede actualizar a medida que existan nuevas versiones.

El Software no se desgasta.

El Software se desarrolla o se construye.

Mantenimiento de software

El mantenimiento del software es el proceso general de cambiar un sistema después de que éste se entregó. El término usualmente se aplica a software personalizado, en el que gru- pos de desarrollo separados intervienen antes y después de la entrega. Los cambios rea- lizados al software van desde los simples para corregir errores de codificación, los más extensos para corregir errores de diseño, hasta mejorías significativas para corregir errores de especificación o incorporar nuevos requerimientos. Los cambios se implementan modi- ficando los componentes del sistema existentes y agregándole nuevos componentes donde sea necesario

Existen tres tipos de mantenimiento de software:

Adición de funcionalidad: Este tipo de mantenimiento es necesario cuando varían los requerimientos del sistema, en respuesta a un cambio organizacional o empresarial. La escala de los cambios requeridos en el software suele ser mucho mayor que en los otros tipos de mantenimiento.

Adaptación ambiental: Este tipo de mantenimiento se requiere cuando algún aspecto del entorno del sistema, como el hardware, la plataforma operativa del sistema u otro soporte, cambia el software. El sistema de aplicación tiene que modificarse para lidiar con dichos cambios ambientales.

Reparaciones de fallas: Los errores de codificación por lo general son relativamente baratos de corregir; los errores de diseño son más costosos, ya que quizás impliquen la reescritura de muchos componentes del programa. Los errores de requerimientos son los más costosos de reparar debido a que podría ser necesario un extenso rediseño del sistema.

Procesos de evolución

Los procesos de evolución del software varían dependiendo del tipo de software que se mantiene. En algunas organizaciones, la evolución es un proceso informal, donde las solicitudes de cambios provienen sobre todo de conversaciones entre los usuarios del sistema y los desarrolladores. En otras compañías, se trata de un proceso formalizado con documentación estructurada generada en cada etapa del proceso. Los procesos de identificación de cambios y evolución del sistema son cíclicos y continúan a lo largo de la vida de un sistema. Las propuestas de cambio deben vincularse con los componentes del sistema que se van a modificar para implementar dichas propuestas. Esto permite que el costo y el impacto del cambio logren valorarse.

Desarrollo de sistemas críticos

Los sistemas sociotécnicos son tan complejos que es prácticamente imposible entenderlos como un todo. Tales capas constituyen la columna de los sistemas sociotécnicos
La capa de aplicaciones

Entrega la funcionalidad específica de la aplicación que se requiere. En esta capa puede haber varios programas de aplicación diferentes.

La capa de comunicación y gestión de datos

Extiende las facilidades del sistema operativo y ofrece una interfaz que permite la interacción con funcionalidad más extensa, como acceso a sistemas remotos, a una base de datos de un sistema, etc. En ocasiones, esto se llama middleware, pues se halla entre la aplicación y el sistema operativo.

La capa de sistema operativo

Ésta interactúa con el hardware y ofrece un con- junto de facilidades comunes para capas de software superiores en el sistema

La capa de equipo

Está compuesta de dispositivos de hardware, algunos de los cuales pueden ser computadoras.

En un sistema de cómputo, el software y el hardware son interdependientes. Sin hard- ware, un sistema de software sería una abstracción, es decir, sería simplemente una representación o idea de cierto conocimiento humano. Mientras que sin el software, el hardware es sólo un conjunto de dispositivos electrónicos inertes
Subtopic

Ingeniería en Software basada en componentes

Mitigación de complejidad técnica: Los componentes mitigan la complejidad por medio del uso de contenedores de componentes y sus servicios. Ejemplos de servicios de componentes incluyen activación de componentes, gestión de la vida de los componentes, gestión de colas de mensajes para métodos del componente y transacciones.
Facilidad de desarrollo: Los componentes implementan un interface bien definida para proveer la funcionalidad definida permitiendo el desarrollo sin impactar otras partes del sistema.
Costos reducidos: El uso de componentes de terceros permite distribuir el costo del desarrollo y del mantenimiento.
Facilidad de Instalación: Cuando una nueva versión esté disponible, usted podrá reemplazar la versión existente sin impacto en otros componentes o el sistema como un todo.
ARQUITECTURA BASADA EN COMPONENTES.
Una arquitectura basada en componentes describe una aproximación de ingeniería de software al diseño y desarrollo de un sistema. Esta arquitectura se enfoca en la descomposición del diseño en componentes funcionales o lógicos que expongan interfaces de comunicación bien definidas.

El estilo de arquitectura basado en componentes tiene las siguientes características:

Pone énfasis en la descomposición del sistema en componentes lógicos o funcionales que tienen interfaces bien definidas.

Es un estilo de diseño para aplicaciones compuestas de componentes individuales.

Principios de diseño de la Ingeniería de Software Basada en Componentes
§Las plataformas de componentes son compartidas para un menor costo de desarrollo
La comunicación es a través de interfaces bien definidas
Se oculta la implementación de los componentes.
Los componentes son independientes, así que no existe interferencia entre ellos.
Permite reutilizar piezas de código preelaborado que permiten realizar diversas tareas, conllevando a diversos beneficios como las mejoras a la calidad, la reducción del ciclo de desarrollo y el mayor retorno sobre la inversión. Al comparar la evolución del ambiente de IT con el crecimiento de las metrópolis actuales, podemos entender el origen de muchos problemas que se han presentado históricamente en la construcción de software y vislumbrar las posibles y probables soluciones que nos llevarán hacia la industrialización del software moderno.

Reutilización de software

Desventajas
El ingeniero de software reutiliza piezas que él sabe que se ajustan al problema.
Diseñar componentes genéricos para que sean reutilizados con facilidad.
Reutilización de sistemas de aplicación .
Dificultad para institucionalizar los procesos.
Necesidad de invertir antes de obtener resultados.
Ventajas
Mayor fiabilidad
Facilitar la compartición de productos del ciclo de vida.
Incrementar la productividad.
Reducir el tiempo de desarrollo.
Categorías
Componentes nuevos
Con experiencia Parcial
Componentes ya experimentados
Componentes ya desarrollados
Beneficios
Estandarización

Los componentes dentro de un dominio dado (área de aplicación), requieren cierta clase de estandarización para hacerlos compatibles con otros componentes. Esto puede llevar a hacer estándares de interfaces de componentes, así como de código y documentación. Estas entidades animan a mejores prácticas de desarrollo.

Calidad

Cualquier optimización, refactorización y pruebas hechas en componentes reutilizables ya han sido completados. Todas las lecciones aprendidas al producir el componente están implícitamente incluidas dentro de esto y son automáticamente llevadas al siguiente proyecto. Consecuentemente, los proyectos desarrollados son de una mayor calidad

Tiempo y costo

La reutilización de software es una excelente manera de ahorrar costos y esfuerzos de desarrollo. De forma ideal, el tiempo de desarrollo es reducido debido a que los componentes reutilizables relevantes pueden ser aplicables al proyecto dado en un marco de tiempo menor que desarrollar desde cero.

Niveles de reutilización
De especificaciones
De diseño
De código
Elementos que intervienen
Documentación detallada y actualizada
Estructura de software bien definido
Orientación a servicio
Personal calificado
Cronogramas de pruebas
Diseños previamente definidos
Requerimientos previos analizados
Código probado
Empaquetados de software
Conceptos de reutilización
Es una alternativa de desarrollo

Reutilizar y no crear lo que ya existe

Adaptar lo ya existente

Métodos necesarios

Desarrollo con reutilización

Desarrollo para la reutilización