Fundamentos de Ingeniería de software



6477008329930Agosto – Diciembre 2017?|?21 de agosto de 20171154000Agosto – Diciembre 2017?|?21 de agosto de 2017center508000center4500452120Fundamentos de Ingeniería de software11540067000Fundamentos de Ingeniería de softwarecenterbottomIngeniería en sistemas computacionales?|?5 IS1 | Juan Francisco Guzmán Gutiérrez1154000Ingeniería en sistemas computacionales?|?5 IS1 | Juan Francisco Guzmán Gutiérrezcenter790007945755Conceptos básicosJosé gustavo zimbrón lara1154000Conceptos básicosJosé gustavo zimbrón lararight23002311402017760098002017?Qué es la ingeniería de software?La ingeniería de software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento de software, y el estudio de estos enfoques, es decir, el estudio de las aplicaciones de la ingeniería al software. ? Integra matemáticas, ciencias de la computación y prácticas cuyos orígenes se encuentran en la ingeniería.Se citan las definiciones más reconocidas, formuladas por prestigiosos autores:Ingeniería de software es el estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software (Zelkovitz, 1978).Ingeniería de software es la aplicación práctica del conocimiento científico al dise?o y construcción de programas de computadora y a la documentación asociada requerida para desarrollar, operar y mantenerlos. Se conoce también como desarrollo de software o producción de software (Bohem, 1976).La ingeniería de software trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en máquinas reales (Bauer, 1972).La ingeniería de software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación, y mantenimiento del software.NotacionesUML o LUM (Lenguaje Unificado de Modelado)Es un lenguaje de modelado muy reconocido y utilizado actualmente que se utiliza para describir o especificar métodos. También es aplicable en el desarrollo de software.Las siglas UML significan lenguaje unificado de modelado esto quiere decir que no pretende definir un modelo estándar de desarrollo, sino únicamente un lenguaje de modelado.Un lenguaje de modelado consta de vistas, elementos de modelo y un conjunto de reglas sintácticas, semánticas y pragmáticas que indican cómo utilizar los elementos.En esta materia nos encontramos con varios diagramas que se pueden usar tales como: casos de uso, de clases, componentes, despliegue, etc.BPMN (notación para el modelado de procesos de negocios)El objetivo de la notación para el modelado de procesos de negocios es proporcionar de una manera fácil de definir y analizar los procesos de negocios públicos y privados simulando un?diagrama de flujo. La notación ha sido dise?ada específicamente para coordinar la secuencia de los procesos y los mensajes que fluyen entre los participantes del mismo, con un conjunto de actividades relacionadas. Características básicas de los elementos de BPMNObjetos de flujo: eventos, actividades, rombos de control de flujo (gateways).Objetos de conexión: flujo de secuencia, flujo de mensaje, asociación.Swimlanes (carriles de piscina): pool, lane.Artefactos: objetos de datos, grupo, anotación.Diagrama de flujo de Datos (DFD)Un?diagrama de flujo de datos?permite representar el movimiento de datos a través de un sistema por medio de modelos que describen los flujos de datos, los procesos que transforman o cambian los datos, los destinos de datos y los almacenamientos de datos a la cual tiene acceso el sistema.Su inventor fue?Larry Constantine, basado en el modelo de computación de Martin y Estrin: flujo gráfico de datos. Con los diagramas de flujo de datos determina la manera en que cualquier sistema puede desarrollarse, ayuda en la identificación de los datos de la transacción en el modelo de datos y proporciona al usuario una idea física de cómo resultarán los datos a última instancia.Conceptos BásicosSoftware:Programas de cómputo y su documentación asociada: requerimientos, modelos de dise?o y manuales de usuarioEl software puede ser desarrollado para un cliente en particular o para un mercado generalEl software puede ser:Genérico: desarrollado para venderse a múltiples clientes (Excel, Word, etc.)A la medida: desarrollado bajo demanda del cliente a un desarrollador específicoEl software nuevo puede ser creado desarrollando nuevos programas, configurando sistemas de software genérico o reutilizando software existenteDiferencia entre Ingeniería de Software y Ciencias ComputacionalesLas Ciencias Computacionales conciernen a la teoría y fundamentos de cualquier sistema de cómputo (hardware o software).La Ingeniería de software concierne los aspectos prácticos del desarrollo y puesta en marcha de productos útiles de software.La Ingeniería de Software aún está lejos de ser considerada una ciencia como los son la química o la física.Diferencia entre Ingeniería de Software e Ingeniería de SistemasLa Ingeniería de Sistemas concierne a todos los aspectos del desarrollo de sistemas basados en cómputo incluyendo hardware, software y la ingeniería de procesos. La Ingeniería de Software es una parte de este proceso que comprende el desarrollo de software, control, aplicaciones y bases de datos del sistema.Los ingenieros de software son los encargados de la especificación del sistema, del dise?o de la arquitectura, la integración y la puesta en marcha.Proceso:Un conjunto estructurado de actividades cuya meta es el desarrollo o evolución de un software.Algunas actividades genéricas en todos los procesos de software son: Especificación, qué debe hacer el software y cuáles son sus especificaciones de desarrollo.Desarrollo, producción del sistema de software Validación, verificar que el software cumple con lo solicitado por el cliente.Evolución, cambiar/adaptar el software a las nuevas demandas.Estas actividades varían dependiendo de la organización y del tipo de sistema a desarrollarseProceso de software:Representación formal y simplificada de un proceso de software, presentada desde una perspectiva específica.Ejemplos de perspectivas del proceso de software: Flujo de trabajo, secuencia de actividades.Flujo de datos, flujo de la información.Rol/acción, quién realiza qué.Modelos Genéricos: Cascada, separar en distintas fases de especificación y desarrollo.Desarrollo Iterativo, la especificación, desarrollo y validación están interrelacionados.Prototipado, un modelo sirve de prototipo para la construcción del sistema final.Basado en componentes, asume que partes del sistema ya existen y se enfoca a su integración.Proceso de software:Un conjunto estructurado de actividades cuya meta es el desarrollo o evolución de un software.Modelos de Software:Representación formal y simplificada de un proceso de software, presentada desde una perspectiva específica.Ejemplos de perspectivas del proceso de software: Flujo de trabajo, secuencia de actividades.Flujo de datos, flujo de la información.Rol/acción, quién realiza qué.CASE (Computer-Aided Software Engineering)Programas que son usados para dar soporte automatizado a las actividades del proceso de software:Análisis de requerimientos, modelado del sistema, pruebas y depuración (debugging)Las herramientas CASE son comúnmente usadas para dar soporte a los métodos de softwareEditores para la notación del método.Módulos de análisis que verifican que las reglas del método se cumplan.Generadores de reportes que facilitan la creación de la documentación del sistema.Generadores de código a partir del modelo del sistemaAtributos de Software de CalidadEl software debe proveer la funcionalidad y desempe?o requeridos por el usuario y debe ser mantenible, confiable y aceptable.Mantenible, el software debe poder evolucionar para continuar cumpliendo con las especificaciones.Confiable, el software no debe causar da?os físicos o económicos en el caso de que falle.Eficiente, el software no debe desperdiciar los recursos del sistema.Aceptable, el software debe ser aceptado por los usuarios para los que fue dise?ado. Debe ser entendible, utilizable y compatible con otros sistemas.Retos de la ingeniería de softwareHeterogeneidadDesarrollar técnicas para construir software que pueda hacer frente a plataformas y ambientes de ejecución heterogéneos (diferentes tipos de Hw y Sw).Tiempos de entregaDesarrollar técnicas que permitan reducir los tiempos de entrega del software sin comprometer la calidad.ConfianzaDesarrollar técnicas que permitan que los usuarios confíen plenamente en el software.Referencias:Wikipedia ()Cinestav () ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download