Fundamentos de ingenieria de software

795 views
676 views

Published on

Material para clase de Fundamentos de Ingeniería del Software, unidad 1

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
795
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
35
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Fundamentos de ingenieria de software

  1. 1. INSTITUTO TECNOLÓGICO SUPERIOR DE GUASAVE.FUNDAMENTOS DE INGENIERÍA DE SOFTWARE. UNIDAD 1.INGENIERÍA DE SOFTWAREEl proceso de desarrollo de software puede definirse como un conjunto de herramientas,métodos y prácticas que se emplean para producir software. Como cualquier otraorganización, las dedicadas al desarrollo de software mantienen entre sus principales fines,la producción de software de acuerdo con la planificación inicial realizada, además de unaconstante mejora con el fin de lograr los tres objetivos últimos de cualquier proceso deproducción: alta calidad y bajo coste, en el mínimo tiempo.DEFINICIÓN DE SOFTWAREEl software es la suma total de los programas de computadora, procedimientos, reglas, ladocumentación asociada y los datos que pertenecen a un sistema de cómputo.En esta contexto, la ingeniería de Software (SE, del inglés Software Engineering) es unenfoque sistemático del desarrollo, operación, mantenimiento y retiro del software, seconsidera que “la Ingeniería de Software es la rama de la ingeniería que aplica losprincipios de la ciencia de la computación y las matemáticas para lograr solucionescosto-efectivas (eficaces en costo o económicas) a los problemas de desarrollo desoftware", es decir, "permite elaborar consistentemente productos correctos, utilizables ycosto-efectivos".El proceso de ingeniería de software se define como "un conjunto de etapas parcialmenteordenadas con la intención de logra un objetivo, en este caso, la obtención de un productode software de calidad”. El proceso de desarrollo de software "es aquel en que lasnecesidades del usuario son traducidas en requerimientos de software, estos requerimientostransformados en diseño y el diseño implementado en código, el código es probado,documentado y certificado para su uso operativo".INGENIERÍA DEL SOFTWARE"Software es la suma total de los programas de computadora, procedimientos, reglas, ladocumentación asociada y los datos que pertenecen a un sistema de cómputo".1 En estecontexto, la Ingeniería de Software (SE del inglés Software Engineering) es un enfoquesistemático del desarrollo, operación, mantenimiento y retiro del software.Se considera que "la Ingeniería de Software es la rama de la ingeniería que aplica losprincipios de la ciencia de la computación y las matemáticas para lograr solucionescosto-efectivas (eficaces en costo o económicas) a los problemas de desarrollo de software,permite elaborar consistentemente productos correctos, utilizables y costo-efectivos". Material de Lectura Desarrollado por MSI. José Antonio Sandoval Acosta Página 1 de 15
  2. 2. INSTITUTO TECNOLÓGICO SUPERIOR DE GUASAVE.FUNDAMENTOS DE INGENIERÍA DE SOFTWARE. UNIDAD 1.“La ingeniería de software es una disciplina de la ingeniería a la que le conciernen todoslos aspectos de la producción del software, no solo el proceso técnico del desarrollo, sinotambién la administración del proyecto y el desarrollo de herramientas, entre otras cosasque involucra la producción de software” (Sommerville, 2011).El proceso de ingeniería de software se define como "un conjunto de etapas parcialmenteordenadas con la intención de logra un objetivo, en este caso, la obtención de un productode software de calidad". El proceso de desarrollo de software "es aquel en que lasnecesidades del usuario son traducidas en requerimientos de software, estos requerimientostransformados en diseño y el diseño implementado en código, el código es probado,documentado y certificado para su uso operativo".El proceso de desarrollo de software requiere por un lado un conjunto de conceptos, unametodología y un lenguaje propio. A este proceso también se le llama el ciclo de vida delsoftware.EL PAPEL EVOLUTIVO DEL SOFTWAREEl software es tanto un producto como el vehículo para su entrega. Es el transformador dela información. El papel del software de computadora ha experimentado un cambiosignificativo en un periodo un poco mayor a 50 años.Las mejorías sustanciales en el desempeño del hardware, los cambios profundos en lasarquitecturas de cómputo, los enormes incrementos en las capacidades de memoria yalmacenamiento, y la amplia variedad de opciones de salida y de entrada han propiciado elsurgimiento de sistemas más elaborados y complejos basados en computadoras.Nadie sabe en realidad el futuro de los sistemas que día a día se construyen, más sinembargo sin importar el lugar en el que resida el software, ya sea en un celular o dentro deuna computadora central, el software realiza la producción, el manejo, la adquisición, lamodificación, el despliegue o la transmisión de la información que puede ser tan simplecomo un solo bit o tan compleja como una presentación multimedia. En su papel devehículo para la entrega de un producto, el software actúa como la base para el control de lacomputadora (sistemas operativos), la comunicación de información (redes) y la creación yel control de otros programas (utilerías de software y ambientes).El software entrega el producto más importante de nuestro tiempo: información.Transforma los datos personales, por ejemplo las transacciones financieras de un individuo,de modo que los datos sean más útiles en un contexto local. Maneja información de negociopara mejorar la competitividad, proporciona una vía para las redes de informaciónalrededor del mundo (Internet) y proporciona los medios para adquirir información en todassus formas (páginas web). Material de Lectura Desarrollado por MSI. José Antonio Sandoval Acosta Página 2 de 15
  3. 3. INSTITUTO TECNOLÓGICO SUPERIOR DE GUASAVE.FUNDAMENTOS DE INGENIERÍA DE SOFTWARE. UNIDAD 1.LA NATURALEZA CAMBIANTE DEL SOFTWAREEn la actualidad existen siete grandes categorías del software de computadora quepresentan retos continuos para los ingenieros de software.  Software de sistemas: colección de programas escritos para servir a otros programas. Ejemplo: los compiladores, editores y utilerías para la administración de archivos, los cuales procesar estructuras de información complejas pero determinadas. Otras aplicaciones de sistemas como los componentes del sistema operativo, controladores, software de red, procesadores para telecomunicaciones, procesan datos indeterminados.  Software de aplicación: son programas independientes que resuelven una necesidad de negocios específica. Ejemplo: el procesamiento de transacciones en los puntos de venta.  Software científico y de ingeniería: se caracteriza por algoritmos. Abarca desde la astronomía hasta la vulcanología, desde el análisis de la tensión automotriz hasta la dinámica orbital de los transbordadores espaciales, y desde la biología molecular hasta la manufactura automatizada. Diseño asistido por computadora.  Software empotrado o incrustado o embebido: reside en la memoria de solo lectura del sistema y con él se implementan y controlan características y funciones para el usuario final y el sistema mismo. Ejemplo: control del teclado de un horno microondas, las funciones digitales de un automóvil, como el control de combustible, los sistemas de frenado, entre otros.  Software de línea de productos: diseñado para proporcionar una capacidad específica y la utilización de muchos clientes diferentes, se puede enfocar en un nicho de mercado limitado. Ejemplo: productos para el control de inventarios, hojas de cálculos, multimedia, entretenimiento, manejo de BD, administración de personal y finanzas en los negocios.  Aplicación basada en Web: las “WebApps” engloban un espectro amplio de aplicaciones. En su forma más simple, las WebApps son apenas un poco más que un conjunto de archivos de hipertexto ligados que presentan información mediante texto y algunas gráficas. Actualmente estas aplicaciones están integradas con base de datos y aplicaciones de negocios, ya que proporcionan características que les permite evolucionar hacia ambientes computacionales sofisticados.  Software de inteligencia: utiliza algoritmos no numéricos en la resolución de problemas complejos que es imposible abordar por medio de un análisis directo. Incluye la robótica, el reconocimiento de patrones (imagen y voz), los juegos de computadoras, entre otros. Material de Lectura Desarrollado por MSI. José Antonio Sandoval Acosta Página 3 de 15
  4. 4. INSTITUTO TECNOLÓGICO SUPERIOR DE GUASAVE.FUNDAMENTOS DE INGENIERÍA DE SOFTWARE. UNIDAD 1. Existen otras dos categorías de software que engloban todas las anteriores de una forma más sencilla:  Software genérico o de paquete: este tipo busca crear software que sea utilizado tal cual fue creado. Un ejemplo es la suite de Microsoft Office o bien los productos de Macromedia.  Software personalizado o a la medida: este tipo busca crear software que cumpla las necesidades específicas de la empresa que lo necesita. Un ejemplo sería una universidad que desarrolla su propio sistema de inscripciones.ETAPAS DEL SOFTWAREEl proceso de desarrollo de software requiere por un lado un conjunto de conceptos, unametodología y un lenguaje propio. A este proceso también se le llama el ciclo de vida delsoftware que comprende cuatro grandes fases:  Concepción  Elaboración  Construcción y  Transición.La concepción define el alcance del proyecto y desarrolla un caso de negocio. Laelaboración define un plan del proyecto, especifica las características y fundamenta laarquitectura. La construcción crea el producto y la transición transfiere el producto a losusuarios.En la siguiente figura se muestra la estructura del proceso Unificado: Figura 1. Estructura del proceso unificado Material de Lectura Desarrollado por MSI. José Antonio Sandoval Acosta Página 4 de 15
  5. 5. INSTITUTO TECNOLÓGICO SUPERIOR DE GUASAVE.FUNDAMENTOS DE INGENIERÍA DE SOFTWARE. UNIDAD 1.EL CICLO DE VIDATodo proyecto de ingeniería tiene unos fines ligados a la obtención de un producto, procesoo servicio que es necesario generar a través de diversas actividades. Al conjunto de las fasesempleadas se le denomina “ciclo de vida”.La definición de un ciclo de vida facilita el control sobre los tiempos en que es necesarioaplicar recursos de todo tipo (personal, equipos, suministros, etc.) al proyecto.Un ciclo de vida para un proyecto se compone de fases sucesivas compuestas por tareasplanificables. Figura 2: Fases del ciclo de vidaA continuación se muestran los distintos elementos que integran un ciclo de vida:  Fases. Una fase es un conjunto de actividades relacionadas con un objetivo en el desarrollo del proyecto. Se construye agrupando tareas (actividades elementales) que pueden compartir un tramo determinado del tiempo de vida de un proyecto. Cuanto más grande y complejo sea un proyecto, mayor detalle se necesitará en la definición de las fases para que el contenido de cada una siga siendo manejable.  Entregables. Son los productos intermedios que generan las fases. Los entregables permiten evaluar la marcha del proyecto mediante comprobaciones de su adecuación o no a los requisitos funcionales y de condiciones de realización previamente establecidos. Cada una de estas evaluaciones puede servir, además, para la toma de decisiones a lo largo del desarrollo del proyecto. Material de Lectura Desarrollado por MSI. José Antonio Sandoval Acosta Página 5 de 15
  6. 6. INSTITUTO TECNOLÓGICO SUPERIOR DE GUASAVE.FUNDAMENTOS DE INGENIERÍA DE SOFTWARE. UNIDAD 1. Figura 3: Esquema general de operación de una faseMODELOS DE CICLO DE VIDA  El alcance dependiendo de hasta dónde llegue el proyecto correspondiente. Un proyecto puede comprender un simple estudio de viabilidad del desarrollo de un producto, o su desarrollo completo o, llevando la cosa al extremo, toda la historia del producto con su desarrollo, fabricación, y modificaciones posteriores hasta su retirada del mercado.  Las características de las fases en que dividen el ciclo. Esto puede depender del propio tema al que se refiere el proyecto, o de la organización.  La estructura de la sucesión de las fases que puede ser lineal, con prototipado, en espiral.TECNOLOGÍAS DE SOFTWAREEn la presente sección pasaremos revista a dos grandes grupos de tecnologías de softwareanalizando las principales características de sus componentes en el momento actual yseñalando las tendencias observadas. Las tecnologías identificadas son: a) Tecnologías de desarrollo estructurado. b) Tecnologías orientadas a objetos.TECNOLOGÍAS DE DESARROLLO ESTRUCTURADOLas tecnologías de desarrollo estructurado son las más convencionales de las empleadashoy día. Han surgido de la evolución de las ideas de programación estructurada (hace másde veinticinco años) hacia las fases iniciales del ciclo de vida.En su formulación actual, las notaciones empleadas en las primeras fases del ciclo de vida(especificación de requisitos de usuario y sistema) suelen estar constituidas por lenguajes Material de Lectura Desarrollado por MSI. José Antonio Sandoval Acosta Página 6 de 15
  7. 7. INSTITUTO TECNOLÓGICO SUPERIOR DE GUASAVE.FUNDAMENTOS DE INGENIERÍA DE SOFTWARE. UNIDAD 1.gráficos que permiten: identificar el sistema y el entorno; representar el flujo deinformación entre los elementos; y, describir los datos y las actividades del sistema.La idea base de esta tecnología es que es posible estructurar el modelo de un sistema desoftware en base a funciones que procesan información que reciben de otras funciones (odel exterior) y dirigen la información procesada a otros módulos funcionales (o al exterior).El enfoque seguido, por tanto, es el de pensar en las funciones del sistema necesarias(extraídas de los requisitos del sistema) y luego en los datos que requieren.Entre las más utilizadas para análisis y especificación de requisitos se encuentra SA/RT(Análisis Estructurado con extensiones para tiempo real). Surgió como un lenguaje gráficocapaz de representar las actividades que deberá realizar el sistema, los intercambios deinformación entre ellos, etc. La descripción del comportamiento se realiza mediantediagramas de transición de estados.Existen otras notaciones basadas en conceptos muy similares y el utilizar una u otra es másbien un problema de gusto. Las diferencias entre ellos provienen más de la forma de usarlaque de la potencia expresiva del lenguaje.Como evolución de las técnicas de análisis estructurado, en la fase de diseño se hanutilizado variantes de SA/RT: SD/RT (Diseño Estructurado con extensiones para TiempoReal). Al igual que SA/RT consta de un lenguaje gráfico no ejecutable e incorporanconceptos tales como: tarea, procesador, colas de mensajes, mecanismos de sincronizaciónentre tareas, etc. que son conceptos necesarios en la fase de diseño.En una línea diferente y para evitar los problemas de la explosión de estados se definieronpor Harel [14] los «statecharts» (variante de los diagramas de estado). Con ellos, se lograbacompactar el espacio de estados que resultaba al describir sistemas de gran complejidad alpermitir jerarquización de estados y descomposición en componentes. En base a ellos se hadesarrollado una tecnología estructurada adaptada a sistemas de control denominadaStatemate.Para la fase de análisis y especificación de requisitos, las herramientas están asociadas a laconstrucción de modelos del sistema (modelos lógicos con diagramas de estado asociados).Estas herramientas no son genéricas sino que soportan métodos concretos. Suelen constarde: A. Editores gráfico-textuales de la notación asociada a un método (tanto para describir las funciones como para describir el comportamiento mediante diagramas de estado). B. Comprobadores de consistencia en la información relativa a refinamientos del modelo (nombres, tipos, uso, etc. de los elementos definidos en los diagramas). Material de Lectura Desarrollado por MSI. José Antonio Sandoval Acosta Página 7 de 15
  8. 8. INSTITUTO TECNOLÓGICO SUPERIOR DE GUASAVE.FUNDAMENTOS DE INGENIERÍA DE SOFTWARE. UNIDAD 1. C. Sistema de gestión de la información almacenada (en ocasiones basada en bases de datos relacionales u orientadas a objetos para gestionar el acceso a la información). D. Generadores de prototipos (normalmente de interfaz gráfica) con objeto de evaluar los modelos lógicos o de diseño.En las fases de diseño del sistema se dispone del mismo tipo de herramientas aunque eneste caso se suele disponer también de: analizadores temporales y estimadores de tiemposde ejecución, generadores de código (más o menos completos) o facilidades para lautilización de componentes genéricos contenidos en bibliotecas menos comunes pero cadavez más conocidas son herramientas como las de animación gráfica de modelos. Estasherramientas aparecen como extensión de las que permiten editar y validar modelos deespecificación y diseño estructurado de sistemas de software.Finalmente, las herramientas que soportan la fase de implementación son las más conocidasdado que han estado en su mayor parte presentes desde los comienzos de la programación:editores (conociendo la sintaxis del lenguaje en algunos casos), compiladores e intérpretes,generadores/optimizadores de código, ejecutores de casos de prueba, depuradoressimbólicos, etc. Figura 4. Componentes de la tecnología de software estructurada Material de Lectura Desarrollado por MSI. José Antonio Sandoval Acosta Página 8 de 15
  9. 9. INSTITUTO TECNOLÓGICO SUPERIOR DE GUASAVE.FUNDAMENTOS DE INGENIERÍA DE SOFTWARE. UNIDAD 1.TECNOLOGÍAS ORIENTADAS A OBJETOSLas tecnologías de desarrollo estructurado han demostrado sus limitaciones a la hora deorganizar y facilitar la evolución de sistemas de software complejos. La descomposición enfunciones hace difícil al diseñador mantener la relación con los objetos del mundo realsobre los que se modifican generalmente los requisitos del usuario.Los métodos de descomposición orientada a objetos constituyen la tendencia másinfluyente observada en la ingeniería de sistemas de software en los últimos años. Con ellosnos referimos a un conjunto de métodos (aún en fase de desarrollo o evolución) quepermiten al analista y diseñador concebir su sistema identificando clases de objetos,operaciones permitidas y relaciones entre ellos como base para la estructura del sistema adiseñar.En ellas, un objeto es un conjunto de datos y funciones de manipulación de los mismosencapsulados en una unidad que es posible tratar como un todo (crear, copiar, destruir,etc.). Un objeto posee unas operaciones visibles a otros objetos aunque éstos no conocencómo están implementadas. El diseñador reconoce inicialmente clases de objetos de las quese derivan los objetos concretos que utilizará en el diseño.Un objeto puede construirse jerárquicamente empleando, a su vez, a otros objetos mássimples. Una clase implica una generalización del concepto de objeto (identificandosimilitudes entre objetos similares) y constituye la base a partir de las cuales se construye elsistema.Existen varias tecnologías orientadas a objetos que, aunque similares en su potenciaexpresiva, ofrecen algunas diferencias que las hacen más adecuadas para algún tipoconcreto de sistemas.Podemos mencionar como una de las más representativas a OMT. OMT está soportada pormuchas herramientas CASE comerciales. Corresponde a una notación gráfica que permiterepresentar las clases de objetos, sus relaciones y la creación de ejemplares de los mismos.Aunque básicamente empleada para la fase de análisis de requisitos del sistema puedetambién emplearse para las primeras fases del diseño.La descripción del comportamiento se realiza generalmente asociando a los objetosdiagramas de transición de estados similares a los empleados en las tecnologías de softwareestructuradas (con los mismos problemas de la explosión de estados). En Booch puedeverse una idea general de su tecnología orientada a objetos. Los métodos de diseñoorientados a objetos suelen facilitar el desarrollo de una implementación en un lenguaje deprogramación orientado a objetos (C++, Ada95 o Eiffel). No obstante, la elección dellenguaje de implementación no es realmente importante y esta elección está condicionadapor muchas otras razones. Material de Lectura Desarrollado por MSI. José Antonio Sandoval Acosta Página 9 de 15
  10. 10. INSTITUTO TECNOLÓGICO SUPERIOR DE GUASAVE.FUNDAMENTOS DE INGENIERÍA DE SOFTWARE. UNIDAD 1.Justo es reconocer, sin embargo, que ha sido la Programación Orientada a Objetos la que haimpulsado también la difusión de estas técnicas.Las herramientas que acompañan a las tecnologías orientadas a objetos y disponibles ensistemas CASE comerciales no se diferencian en esencia de las que aparecen en lastecnologías estructuradas. El único aspecto destacable es la proliferación de catálogos declases para aplicaciones determinadas y los mecanismos de recuperación y personalizaciónasociados. Figura 5. Componentes de una Tecnología Orientada a Objetos Material de Lectura Desarrollado por MSI. José Antonio Sandoval Acosta Página 10 de 15
  11. 11. INSTITUTO TECNOLÓGICO SUPERIOR DE GUASAVE.FUNDAMENTOS DE INGENIERÍA DE SOFTWARE. UNIDAD 1.¿QUÉ SON LAS HERRAMIENTAS CASE?Definición de las Herramientas CASE: Se puede definir a las Herramientas CASE comoun conjunto de programas y ayudas que dan asistencia a los analistas, ingenieros desoftware y desarrolladores, durante todos los pasos del Ciclo de Vida de desarrollo de unsoftware. Como es sabido, los estados en el Ciclo de Vida son: Investigación Preliminar,Análisis, Diseño, Implementación e Instalación.CASE (Computer Aided Software Engineering) se define también como:  Conjunto de métodos, utilidades y técnicas que facilitan la automatización del ciclo de vida del desarrollo de sistemas de información, completamente o en alguna de sus fases.  La sigla genérica para una serie de programas y una filosofía de desarrollo de software que ayuda a automatizar el ciclo de vida de desarrollo de los sistemas.  Una innovación en la organización, un concepto avanzado en la evolución de tecnología con un potencial efecto profundo en la organización. Se puede ver al CASE como la unión de las herramientas automáticas de software y las metodologías de desarrollo de software formales.HISTORIA DE LAS HERRAMIENTAS CASELas Herramientas CASE tienen su inicio con el simple procesador de palabras que fueusado para crear y manipular documentación. Los setentas vieron la introducción detécnicas gráficas y diagramas de flujo de estructuras de datos. Sobre este punto, el diseño yespecificaciones en forma pictórica han sido extremadamente complejos y consumíanmucho tiempo para realizar cambios.La introducción de las herramientas CASE para ayudar en este proceso ha permitido quelos diagramas puedan ser fácilmente creados y modificados, mejorando la calidad de losdiseños de software. Los diccionarios de datos, un documento muy usado que mantiene losdetalles de cada tipo de dato y los procesos dentro de un sistema, son el resultado directo dela llegada del diseño de flujo de datos y análisis estructural, hecho posible a través de lasmejoras en las Herramientas CASE.Pronto se reemplazaron los paquetes gráficos por paquetes especializados que habilitan laedición, actualización e impresión en múltiples versiones de diseño. Eventualmente, lasherramientas gráficas integradas con diccionarios de base de datos para producir poderososdiseños y desarrollar herramientas, podrían sostener ciclos completos de diseño dedocumentos. Material de Lectura Desarrollado por MSI. José Antonio Sandoval Acosta Página 11 de 15
  12. 12. INSTITUTO TECNOLÓGICO SUPERIOR DE GUASAVE.FUNDAMENTOS DE INGENIERÍA DE SOFTWARE. UNIDAD 1.Como un paso final, la verificación de errores y generadores de casos de pruebas fueronincluidos para validar el diseño del software. Todos estos procesos pueden saberseintegrados en una simple herramienta CASE que soporta todo el ciclo de desarrollo.La primera herramienta comercial se remonta a 1982, aunque algunos especialistas indicanque algunos ejemplos de herramientas para diagramación ya existían.No fue sino hasta 1985 en que las herramientas CASE se volvieron realmente importantesen el proceso de desarrollo de software. Los proveedores prometieron a la Industria quemuchas actividades serían beneficiadas por la ayuda de las CASE. Estos beneficiosconsistían, por ejemplo, en el aumento en la productividad. El objetivo en 1985 paramuchos vendedores era producir software más rápidamente. Las herramientas del CASEserían una familia de métodos favorablemente estructurados para planeamiento, análisis ydiseño. Esto llevaría a la generación automática de código para desarrollo de software víauna especificación formalmente diseñada. Esto traería como beneficio:  Una mejora en la calidad, fiabilidad, utilidad y rendimiento.  El entorno de producción de documentación para software mejora la comunicación, mantenimiento y actualización.  Hace el trabajo de diseño de software más fácil y agradable.  La promesa futura de reemplazar realmente a los ingenieros de software especializados.  Reducción del costo de producción de software.Con estos objetivos en mente, la industria destinó millones en producción de HerramientasCASE.Así como esta enorme suma de dinero fue gastada en Herramientas CASE, hubo tambiéntrabajo de investigación a nivel mundial en diferentes instituciones como Universidades,Instituciones Gubernamentales y de Defensa. La industria de Herramientas CASE estácreciendo y está tomando cada vez mayor importancia.EVOLUCIÓN DE LAS HERRAMIENTAS CASEA inicios de los 80’s Ayuda en la documentación por computadora. Diagramación asistida por computadora. Herramientas de análisis y diseño.A mediados de los 80’s Diseño automático de análisis y pruebas. Repositorios automáticos de información de sistemas.Al final de los 80’s Generación automática de código desde especificaciones de diseño.A inicios de los 90’s Metodología Inteligente. Interface de Usuario reusable como una metodología de desarrollo. Material de Lectura Desarrollado por MSI. José Antonio Sandoval Acosta Página 12 de 15
  13. 13. INSTITUTO TECNOLÓGICO SUPERIOR DE GUASAVE.FUNDAMENTOS DE INGENIERÍA DE SOFTWARE. UNIDAD 1.CLASIFICACIÓN DE LAS HERRAMIENTAS CASENo existe una única clasificación de herramientas CASE y, en ocasiones, es difícilincluirlas en una clase determinada. Podrían clasificarse atendiendo a:  Las plataformas que soportan.  Las fases del ciclo de vida del desarrollo de sistemas que cubren.  La arquitectura de las aplicaciones que producen.  Su funcionalidad.Las herramientas CASE, en función de las fases del ciclo de vida abarcadas, se puedenagrupar de la forma siguiente: 1. Herramientas integradas, I-CASE (Integrated CASE, CASE integrado): abarcan todas las fases del ciclo de vida del desarrollo de sistemas. Son llamadas también CASE workbench. 2. Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior) o front-end: orientadas a la automatización y soporte de las actividades desarrolladas durante las primeras fases del desarrollo: análisis y diseño. 3. Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior) o back-end: dirigidas a las últimas fases del desarrollo: construcción e implantación. 4. Juegos de herramientas o CASE Toolkits: son el tipo más simple de herramientas CASE. Automatizan una fase dentro del ciclo de vida. Dentro de este grupo se encontrarían las herramientas orientadas a la fase de mantenimiento.Ventajas y Desventajas Tipo de Ventajas Desventajas Case I – Case Integra el ciclo de vida. No es tan eficiente para soluciones Permite lograr importantes simples, sino para soluciones mejoras de productividad a complejas. mediano plazo. Depende del Hardware y del Permite un eficiente soporte al Software. mantenimiento de sistemas. Es costoso. Mantiene la consistencia de los sistemas a nivel corporativo.Upper Case Se utiliza en plataforma PC, es Permite mejorar la calidad de los aplicable a diferentes entornos, sistemas, pero no mejora la Menor costo productividad. No permite la integración del ciclo de vida.Lower Case Permite lograr importantes No garantiza la consistencia de los Material de Lectura Desarrollado por MSI. José Antonio Sandoval Acosta Página 13 de 15
  14. 14. INSTITUTO TECNOLÓGICO SUPERIOR DE GUASAVE.FUNDAMENTOS DE INGENIERÍA DE SOFTWARE. UNIDAD 1. mejoras de productividad a corto resultados a nivel corporativo. plazo. No garantiza la eficiencia del Permite un eficiente soporte al Análisis y Diseño. mantenimiento de sistemas. No permite la integración del ciclo de vida.GLOSARIO DE DEFINICIONES BÁSICAS DE CASE  CASE: Ayuda por Computadora a la Ingeniería de Software.  TECNOLOGÍA CASE: Una tecnología del software que mantiene una disciplina de la ingeniería automatizada para el desarrollo de software, mantenimiento y dirección de proyecto, incluye metodologías estructuradas automatizadas y herramientas automatizadas.  HERRAMIENTA CASE: Una herramienta del software que automatiza (por lo menos en parte) una parte del ciclo de desarrollo de software.  SISTEMA CASE: Un conjunto de herramientas CASE integradas que comparten una interface del usuario común y corren en un ambiente computacional común.  KIT DE HERRAMIENTAS CASE: Un conjunto de herramientas CASE integradas que se han diseñado para trabajar juntas y automatizar (o proveer ayuda automatizada al ciclo de desarrollo de software, incluyendo el análisis, diseño, codificación y pruebas.  METODOLOGÍA CASE: Un automatizable metodología estructurada que define una disciplina e ingeniería como un acercamiento a todos o algunos aspectos del desarrollo y mantenimiento de software.  PUESTO DE TRABAJO PARA CASE: Una estación de trabajo técnica, diseñada a 32 bits o computadora personal equipada con Herramientas Case que automatiza varias funciones del ciclo.  PLATAFORMA DE HARDWARE PARA CASE: Una arquitectura de hardware con uno, dos o tres sistemas puestos en línea, que proveen una plataforma operativa para las Herramientas Case. Material de Lectura Desarrollado por MSI. José Antonio Sandoval Acosta Página 14 de 15
  15. 15. INSTITUTO TECNOLÓGICO SUPERIOR DE GUASAVE.FUNDAMENTOS DE INGENIERÍA DE SOFTWARE. UNIDAD 1.LITERATURA CONSULTADA1 Lewis G. “What is Software Engineering?” DataPro (4015). Febrero 19942 Cota A. 1994 “Ingenieria de Software”. Soluciones Avanzadas. Julio 1994.3 Jacobson, I. 1998. “Applying UML in the Unified Process” Presentation. Rational Software.4 León G. Ingeniería de Sistemas de Software. Isdefe. España. Mayo 1996. E-book. Consulta en: http://es.scribd.com/doc/454427/39/Tecnologias-de-desarrollo- estructurado Material de Lectura Desarrollado por MSI. José Antonio Sandoval Acosta Página 15 de 15

×