¿Qué es ingeniería de software? Disciplina de la ingeniería que concierne a todos los aspectos de la producción de software.
Diferencia entre ingeniería de software y computación
La computación: concierne a la teoría y fundamentos de cualquier sistema de cómputo, sea el hardware o el software. La ingeniería del software: concierne a todos los aspectos del desarrollo del sistema basado en cómputo. ¿Qué es software? Es un programa de cómputo y su documentación. Características de los productos de software Mantenibles: debe de ser posible que el software evolucione Confiabilidad: no debe causar danos físico o económico Eficiencia: no debe desperdiciar los recursos Utilización adecuada: adecuada interfaz, documentación Que contiene el software: lenguaje de programación, instrucciones de computadoras, descripción de estructura de datos, algoritmos, procesamiento y funciones, software. Tipos de software Por su estructura Funcionales, orientado a objetos, orientado a listas, orientado a componentes Por su función Sistemas de usuarios, interfaz hombre-máquina, herramienta de software, librerías, sistemas web Plataforma de computo Embebidos, computo distribuido, paralelo, tiempo real Proceso de software: conjunto estructurado de actividades requeridas para desarrollar e so o sfw Proceso genérico del software: Especificación: establece los requerimientos y restricciones Diseño: produce un modelo en papel del diseño Manufactura: construcción del sistema Prueba: verifica si el sistema cumple con las especificaciones requeridas Instalación: entrega del sistema al usuario y asegurar su operatividad Mantenimiento: reparar fallos Características del proceso Entendible: se encuentra el proceso bien definido Visible: visible al exterior Soportable: puede ser adoptado por la herramienta case Aceptable: aceptado por los involucrados en el Confiable: los errores son descubiertos antes que se conviertan en errores de producto Robusto: puede continuar el proceso a pesar de problemas inesperados Sostenible: puede el proceso evolucionar para cumplir con los objetivos organizacionales Rapidez: que tan rápido puede producir el sistema Requerimiento del software Requerimiento: condición, característica o restricción que debe cumplir un SO. Ingeniería de requerimientos: disciplina que se encarga de definir los requerimientos del SO Características para ser de alta calidad>correcto sin errores, consistente, no ambiguos, completos, son realistas, verificables, rastreables. Tipos de requerimientos Funcionales: una función es algo que hará el sistema No funcionales: describe restricciones que limitan las opciones de solucionar el problema Seudorequerimientos: impuestos por el cliente que restringe la implementación. Proceso: se encarga de capturar, documentar condiciones y características que debe cumplir SO. obtención de requerimiento: captura de requerimientos documentación de requerimientos: requerimientos reflejados en un documento. Validación: se determina si la especificación es consistente Modelo de procesos: descomposición de modelos modelos atómicos. Prototipado: modelo de SO eventual para demostrar las características de lo que el SO puede ofrecer, para demostrar viabilidad. Validación de requerimientos: proceso por el cual se determina si la especificación es consistente. Modelo de negocio vs modelo de proceso de negocios Primero utiliza área de ingeniería de software y el segundo área de ingeniería de procesos Modelo: representación de una realidad compleja Proceso: entrada, proceso, salida Requerimiento: requerimiento(entrada) transformación(recuros), resultados(salida) Diagramar: modelar un proceso Modelado=adquisición + representación de conocimientos Modelo de objeto(simboliza) conocimiento del objeto(refiere) objeto de estudio (representa) Uml: modela sistemas mediante el uso de objetos Uml: lenguaje unificado de modelado basado en notación gráfica. Modelo: captura vista del sistema del mundo real Diagrama: representación gráfica de una colección de elementos Vista de casos de uso: comportamiento del sistema como es percibido Vista diseño: comprende vocabulario del problema y la solución Vista proceso: procesos que forman mecanismos de sincronización Vista despliegue: nodos que forman la topología hardware sobre el sistema Vista implementación: componentes y archivos que se usan para ensamblar y hacer disponible el sistema físico Ciclo de vida del software Comunicación>inicio del proyecto Planeación>estimación, programación, seguimiento Modelado>análisis y diseño Construcción> código, pruebas Despliegue>entrega, asistencia, retroalimentación