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