03 Mar
Concepto de Software
Software: programas de cómputo y documentación asociada. Se desarrolló para un cliente particular o mercado general.
Software: conjuntos de programas que permiten ejecutar distintas tareas.
Software: conjunto de instrucciones que una computadora debe seguir.
Los ingenieros desarrollan productos software.
- Producto genéricos: desarrollo para empresa para mercado libre
- Productos personalizados: desarrollo para un cliente particular.
Características del Software
Características | Descripción |
Mantenimiento | El software debe escribirse de forma que pueda evolucionar con las necesidades del cliente. |
Confiabilidad y Seguridad | Fiabilidad, seguridad y protección. No debe causar daño. |
Eficiencia | No debe desperdiciar recursos. Capacidad de respuestas, memoria, etc. |
Aceptación | Debe ser aceptable para el usuario y compatible con los sistemas que usan ellos. |
Ingeniería de Software
Se interesa por todos los aspectos de la producción de software, de la primera etapa hasta su mantenimiento.
Fases claves:
- Disciplina de ingeniería
- Aspectos asociados a la producción de software
Proceso de Software
- Especificación de software, cliente e ingeniero definen el software que se producirá y las restricciones.
- Desarrollo del software, se diseña y programa el software.
- Validación del software, se verifica el software para asegurar lo que requiere el cliente.
- Evolución de software, se modifica el software que refleja los requerimientos cambiantes del cliente.
Diversidad de la Ingeniería de Software
- Es un enfoque sistemático para la producción de software, que cuenta los temas de costos, fecha y confiabilidad, así como las necesidades del cliente.
- No existen métodos y técnicas universales adecuadas para todos los sistemas y compañías.
Factores de Determinación de Métodos
- Aplicaciones independientes.
- Aplicaciones interactivas basadas en transacción.
- Sistema de control embebido.
- Sistemas de procesamiento en lotes.
- Sistemas de entretenimiento.
- Sistema de modelado y simulación.
- Sistemas de adquisición de datos.
- Sistemas de sistemas.
Fundamentos Aplicados a Todos los Sistemas
- Deben llevarse a cabo utilizando un proceso de desarrollo administrado y comprendido.
- Confiabilidad y desempeño.
- Comprender y gestionar los requerimientos.
- Uso efectivo de recursos.
Ingeniería de Software y la Web
- Desarrollo orientado a web.
- Desarrollo de servicios.
- Software como servicio o SaaS.
- Cambios en la ingeniería de software
- Reutilización de software.
- Desarrollo progresivo.
- Interfaces de usuario.
Ética en la Ingeniería de Software
- Aspecto importantes a considerar
- Confiabilidad.
- Competencia.
- Derechos de propiedad intelectual.
- Mal uso de recursos.
Código de Ética y Práctica Profesional
- Público: deben actuar consecuente con el interés público.
- Cliente y empleador: tienen que comportarse de tal forma que fomente el mejor interés para cliente y empleador.
- Productos: deben garantizar que sus productos y modificaciones satisfagan los estándares más altos posibles.
- Juicio: mantener integridad e independencia en sus juicios personales.
- Gestión: los administradores y líderes de ingeniería deben promover un enfoque ético a la gestión y mantenimiento del software.
- Profesión: fomentar la integridad y la reputación de la profesión al interés públicos.
- Colegas: deben ser justos con sus colegas y apoyarlos.
- Uno mismo: tienen que intervenir en el aprendizaje para toda la vida, cuento en la práctica y promover la ética.
Proceso de Software
Es una serie de actividades que conducen a la elaboración de un producto de software.
Está contempla cuatro actividades básicas:
-Especificación
-Diseño
-Validación
-Evolución
Las descripciones incluyen:
-Productos
-Roles
-Precondiciones
-Postcondiciones
Consideración
-No hay software ideal.
-Algunas organizaciones tienen sus propios diseños.
-Evolucionan dependiendo de las capacidades de las personas y de las características del sistema en desarrollo.
-Estructurado.
-Flexible.
Modelos de Proceso de Desarrollo
-Cascada(waterfall)
-Incremental
-Orientada a reutilización
Cascada:
Definición → Diseño → Implementación y prueba de la unidad → Integración y prueba del sistema → Operación y mantenimiento
Principales características:
Análisis y definición de requerimientos.
Diseño del sistema y software.
Implementación y prueba.
Integración y prueba.
Operación y mantenimiento.
Consideraciones del modelo:
-El resultado de cada fase consiste en uno o más documentos que se autorizaron.
-La siguiente fase no comienza hasta que termine la anterior.
-Las etapas se traslapan o retroalimentan.
-En sus fases se descubren errores y omisiones en los requerimientos.
Desarrollo Incremental
Bosquejo
- Especificación
- Versión inicial
- Desarrollo
- Versión intermedia
- Validación
- Versión Final
-Es fundamental de los enfoques ágiles.
– Es barato y fácil.
-Cada incorporación agrega algo.
-La primera versión es importante.
-Se evalúa el desarrollo de cada versión.
Tres Beneficios Importantes:
Reduce costes al adaptar los cambios del cliente.
Feedback sencillo de obtener.
Entregas útiles rápidas.
Desventajas:
El proceso no es visible.
La estructura no tiende a degradarse.
Reutilización de Software
Especificación de req. → Análisis de componentes → Modificación de req. → Diseño de sistema → Desarrollo e integración → Validación del sistema
Etapas intermedias que difieren de otros:
-Análisis de componentes.
-Modificación de req.
-Diseño de sistema con reutilización.
-Desarrollo e integración.
Existen 3 Tipos de Componentes que se Pueden Usar
-Servicios web se desarrollan conforme para atender los servicios estándares y para la invocación remota.
-Colección de objetos que se desarrollan como paquete para integrarse como un marco de paquete.
-El software independiente se configura para su uso de manera particular.
Especificación de Software
Corresponde a la ingeniería de requerimientos, comprender y definir los servicios, restricciones y desarrollo que requiere el sistema.
-Estudio de factibilidad
- Tecnologías de software
- Costo-beneficio
- Presupuesto
-Obtención y análisis de requerimientos.
-Especificación de req.
-Validación de req.
Proceso:
Estudio de Factibilidad:
- Informe de fact.
- Obtención y análisis de req.
- Especificación de req. → Obtención …… req.
- Validación del sistema → Especi……..req.
- Doc. de req
- Requerimiento del usuario y sistema
- Doc. de req.
- Validación del sistema → Especi……..req.
- Modelos del sistema
- Doc. de req.
- Especificación de req. → Obtención …… req.
Actividades del Proceso
- D. Arquitectónico
- D. Interfaz
- D. Componente.
- D. Base de datos.
Entradas de Diseño:
- Plataforma de info.
- Especificación de req.
- Descripción de datos.
↡
Actividades de Diseño
- D. Arquitectónico →
- D. de interfaz. → -D. Base de datos.
- D. de componentes. →
↡
Salida de Diseño
- Arq. del sistema.
- Especificación de bd
- Especi. de interfaz
- Especifi. de compo.
Actividades para Demostrar que Funciona:
- Ejecución de pruebas.
- Procesos de comprobación
Etapas del Proceso de Pruebas
- P. de desarrollo.
- P. Sistema.
- P. Aceptación.
Resumen del Proceso
Servicios
Especificación de req. → ⬆
↡ 〉 Plan de pruebas → Prueba de aceptación
Especificación del sistema → ⬆
↡ 〉 Plan de prueba de integración → Prueba de integración
Diseño del sistema → ⬆
↡ 〉Plan prueba integra de subsistemas → plan de integración del subsistema
Diseño detallado →
↳ Modulo de código de unidad y prueba ⤴
Enfrentar el Cambio:
- El cambio como factor es inevitable.
- No se pueden prever los cambios de las tecnologías.
- Aumenta los costos.
- Enfoques a la administración del cambio
- Evitar el cambio mediante actividades que lo anticipen como prototipos.
- Tolerar el cambio a modo que los cambios sean de bajo costo.
Prototipo
Versión inicial del sistema.
Su uso permite anticipar cambios.
- Ayuda en la validación de req. y selección.
- Ayuda para buscar soluciones específicas.
Características:
- Permite obtener ideas nuevas de req.
- Pueden revelar errores y omisiones de req.
- Permiten visualizar el desarrollo de interfaces.
- Validan los requerimientos funcionales.
- Demuestran la factibilidad de la app.
Establecer objetivos del prototipo. → P. de creación del prototipo
↡
Def. de funcionalidad del prototipo → Bosquejo de def.
↡
Desarrollo del prototipo → Proto ejecutable
↡
Evaluación de proto → Reporte de proto
Entrega Incremental
Durante el proceso:
- Los clientes identifican los servicios que provee el sistema.
- Los servicios más importantes y menos significativos.
Esto permite:
- Definir número de incrementos.
- LAS FUNCIONALIDADES DE CADA INCREMENTO.
- Priorizar “ ” en las primeras entregas.
- Los clientes usan incrementos como prototipos para los informes de req pos incrementos del sistema.
- Los clientes no deben esperar hasta la entrega completa del sistema.
- Es difícil identificar recursos comunes a todos los incrementos.
- Los clientes no usan un sistema incompleto.
- No existe una espe. completa.
Modelo Espiral
Sectores
- Establecer objetivos.
- Valoración y reducción del riesgo.
- Desarrollo y validación.
- Validación.
RUP
Derivado del UML y el proceso de software unificado.
Híbrido.
Está estrechamente vinculada con preocupaciones técnicas.
Se describen 3 perspectivas:
- Dinámica que muestra el modelo a través del tiempo.
- Estática presenta las actividades del proceso que se establece.
- La práctica sugiere buenas prácticas a usar durante el proceso.
Visión Dinámica
- Concepción.
- Elaboración.
- Construcción.
- Transición.
Flujos de Trabajo Estáticos
Modelado del negocio: Utiliza casos de uso de la empresa
requerimientos: identificación de interacción del sistema y su desarrollo de de casos de uso para los requerimientos.
Análisis y diseño: creación y documentación de modelos arquitectónicos, componentes, objetos y secuencias.
Implementación: Implementación y estructuración de los componentes del sistema en subsistemas de implementación.
Pruebas: proceso iterativo en conjunto con la implementación
Despliegue: liberación del producto para su uso en el lugar de trabajo.
Administración de configuración de cambio: flujo que gestiona los cambios del sistema
Admin. del proyecto: Flujo de apoyo que gestiona el desarrollo del sistema
Entorno: se dispone el equipo de desarrollo y las herramientas.
Deja un comentario