CAPÍTULO 1: Introducción La Ingeniería Del Software - Ecotec

Transcription

CAPÍTULO 1:Introducción la Ingeniería delSoftwareIng. Alejandra Colina V.Enero, 2019

Objetivo del capítulo Reconocer los elementos que conforman la Ingeniería delSoftware y sus principales componentes de estudio.

ContenidoIngeniería de software:definición y capasSoftware: definición, características,dominios de aplicación y softwareheredados.Modelos de ingeniería desoftwareProceso de Ingeniería desoftwareMétodos de ingeniería desoftware

Introducción la Ingeniería del SoftwareEl software de computadora sigue siendo la tecnología más importante enla escena mundial.Se considera una tecnología indispensable para los negocios, ciencias eingeniería.Amplia tecnologías existentesCrea nuevas tecnologíasCambio radical de tecnologías antiguasProductoEn la actualidad, el software tiene un papel dual.Transformador de informaciónVehículo para entregarproductoDistribuir el producto

¿Qué tipo de desarrollador se ve en la ilustración?

Definición de Software

Introducción la Ingeniería del SoftwareSegún Pressman (2010) el software es:1) instrucciones (programas de cómputo) que cuando se ejecutanproporcionan las características, función y desempeño buscados;2) estructuras de datos que permiten que los programas manipulen enforma adecuada la información, y3) información descriptiva tanto en papel como en formas virtuales quedescriben la operación y uso de los programas

Características del Software

El software se desarrolla o modifica con intelecto; no se manufacturaen el sentido clásico.El software no se “desgasta”.Aunque la industria se mueve hacia la construcción basada encomponentes, la mayor parte del software se construye para un usoindividualizado.

Dominios de aplicación del software

Existen siete grandes categorías de software de computadora como retoscontinuos a los ingenieros de softwareSoftware e deaplicación (Basesde datos y sistemasde gestión deinformación)Software de líneade productos(Control deinventario)Software deingeniería yciencias(Aplicaciones en laastronomía, físicacuántica,)Aplicaciones web(Webapps)Software incrustado(Tablero derefrigeradores, demicroondas)Software deinteligencia artificial(Elaboración dealgoritmosnuméricos)

SOFTWARE HEREDADOS

DefiniciónLos sistemas de software heredado programas que han sido desarrolladoshace varias décadas y modificados de manera continua para quesatisfagan los cambios en los requerimientos de los negocios yplataformas de computación (Pressman, 2010).Se convierten en dolores de cabeza para las organizaciones grandes, soncostoso mantenerlos y riesgoso hacerlos evolucionar.

¿QUÉ HAGO SI ENCUENTRO UN SISTEMAHEREDADO DE MALA CALIDAD?

Un software HEREDADO es de mala calidad cuando:‒ No son susceptibles de extenderse‒ Código confuso‒ Documentación mala o inexistente‒ Casos de pruebas y resultados nunca se archivaron‒ Historia de los cambios mal administrada.Sin embargo, AUN dan apoyo a las “funciones básicas delnegocio y son indispensables para éste”.¿Qué hacer?

¿QUÉ TIPOS DE CAMBIOS SE HACEN A LOSSISTEMAS HEREDADOS?

‒ El software debe adaptarse para que cumpla las necesidades de losnuevos ambientes del cómputo y de la tecnología.‒ El software debe ser mejorado para implementar nuevos requerimientosdel negocio.‒ El software debe ampliarse para que sea operable con otros sistemas obases de datos modernos.‒ La arquitectura del software debe rediseñarse para hacerla viable dentrode un ambiente de redes.

Taller1. Muchas aplicaciones modernas cambian con frecuencia, antes deque se presenten al usuario final y después de que la primeraversión ha entrado en uso. Sugiera algunos modos de elaborarsoftware para detener el deterioro que produce el cambio.2. Considere las siete categorías de software. ¿Piensa que puedeaplicarse a cada una el mismo enfoque de ingeniería de software?Explique su respuesta.

Ingeniería de Software

DefiniciónEs el establecimiento y uso de principios fundamentales de laingeniería con objeto de desarrollar en forma económica software quesea confiable y que trabaje con eficiencia en máquinas reales.Es la aplicación de un enfoque sistemático, disciplinado y cuantificableal desarrollo, operación y mantenimiento de software; es decir, laaplicación de la ingeniería al software (IEEE).

CapasLa ingeniería de software es una tecnología multicapa, cualquierenfoque de ingeniería debe apoyarse sobre un compromiso deorganización de calidad.

CapasHERRAMIENTAS: Soporte de ayuda para construir el software, proporciona unenfoque automático o semiautomático para el proceso y para los métodos.MÉTODO: cómo se debe construir técnicamente el software. abarcan una grangama de tareas, que incluyen: Análisis de requisitos. Diseño. Construcción deprogramas. Pruebas. Mantenimiento.HerramientaPROCESO: definen las actividades para poder realizar elsoftware.ENFOQUE DE CALIDAD: comprende la gestión paraobtener un software de calidad, y hace revisiones parahacer mejoras al producto.MétodoProcesoEnfoque de calidad

¿Cuáles son los elementos de un proceso desoftware?

ProcesoEs un conjunto de actividades, acciones y tareas que se ejecutancuando va a crearse algún producto del trabajo.ActividadPretende lograr un objetivo amplio y se desarrolla sin importar eldominio de la aplicación, tamaño del proyecto, complejidad del esfuerzoo grado de rigor con el que se usará la ingeniería de software.AcciónConjunto de tareas que producen un producto importante del trabajo.

TareaCentra en un objetivo pequeño pero bien que produce un resultadotangible.En el contexto de la INGENIERÍA DE SOFTWARE un proceso NO esuna prescripción rígida de cómo elaborar software de cómputo.Es un enfoque adaptable que permite que las personas que hacen eltrabajo busquen y elijan el conjunto apropiado de acciones y tareaspara el trabajo.Un proceso de software es una serie de actividades relacionadas queconduce a la elaboración de un producto de software .

Proceso de Ingeniería de software

Se define proceso del software como una estructura para lasactividades, acciones y tareas que se requieren a fin deconstruir software de alta calidad (Pressman, 2010).

ESTRUCTURA DEUN PROCESODEL SOFTWAREFuente: Pressman (2010).

Los procesos de software se clasifican: Dirigidos por un plan: son aquellos donde todas las actividadesdel proceso se planean por anticipado y el avance se mide contradicho plan Procesos ágiles: la planeación es incremental y fácil modificar elproceso para reflejar los requerimientos cambiantes del cliente.

¿Cuáles son las cinco actividadesestructurales del proceso?

Comunicación. Entender los objetivos de los participantes respecto del proyecto, y reunir losrequerimientos que ayuden a definir las características y funciones del software.Planeación. Define el trabajo de ingeniería de software al describir las tareas técnicas porrealizar, los riesgos probables, los recursos que se requieren, los productos deltrabajo que se obtendrán y una programación de las actividades.Modelado. Un ingeniero de software hace lo mismo al crear modelos a fin de entendermejor los requerimientos del software y el diseño que los satisfará.

Construcción. Esta actividad combina la generación de código y laspruebas que se requieren para descubrir errores en éste.Despliegue. El software se entrega al consumidor que lo evalúa y quele da retroalimentación, misma que se basa en dichaevaluación.

Un flujo de proceso lineal ejecuta cada una de las cincoactividades estructurales en secuencia, comenzando por lacomunicación y terminando con el despliegue. Un flujo de proceso iterativo repite una o más de las actividadesantes de pasar a la siguiente.

Un flujo de proceso evolutivo realiza las actividades en forma“circular”. A través de las cinco actividades, cada circuito lleva auna versión más completa del software.

Un flujo de proceso paralelo ejecuta una o más actividades enparalelo con otras

¿Qué acciones son apropiadas para una actividad estructural,dados la naturaleza del problema por resolver, las características delas personas que hacen el trabajo y los participantes que patrocinanel proyecto? Para un proyecto de software pequeño solicitado. Para proyecto de software grande.Diferentes proyectos demandan diferentes conjuntos detareas.El equipo de software elige el conjunto de tareas conbase en las características del problema y el proyecto.

Evaluación y Mejora del Proceso

¿De qué técnicas formales sedispone para evaluar el proceso delsoftware?

Método de evaluación del estándar CMMI parael proceso de mejora (SCAMPI, por sus siglas eninglés): Proporciona un modelo de cinco fases para evaluar el proceso:inicio, diagnóstico, establecimiento, actuación y aprendizaje.Evaluación basada en CMM para la mejora delproceso interno (CBA IPI, por sus siglas eninglés): Proporciona una técnica de diagnóstico para evaluar la madurezrelativa de una organización de software; usa el SEI CMM como labase de la evaluación.

SPICE (ISO/IEC 15504): Define un conjunto de requerimientos para la evaluación delproceso del software. Cuyo objetivo es ayudar a las organizacionesa desarrollar una evaluación objetiva de cualquier proceso delsoftware definido.ISO9001:2000 para software: Estándar genérico que se aplica a cualquier organización que deseemejorar la calidad general de los productos, sistemas o serviciosque proporciona.

BIBLIOGRAFÍAIan Sommerville, Software Engineering. 9th edition, 2011, AddisonWesleyRoger Pressman, Ingeniería de Software: Un Enfoque Práctico.Séptima Edición, 2010, McGraw-Hill.

Un proceso de software es una serie de actividades relacionadas que conduce a la elaboración de un producto de software . Proceso de Ingeniería de software. Se define proceso del software como una estructura para las actividades, acciones y tareas que se requieren a fin de construir software de alta calidad (Pressman, 2010). ESTRUCTURA DE