You are on page 1of 47

FUND. ING.

SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

UNIDAD 1 FUNDAMENTOS DE INGENIERA DE SOFTWARE

CARRERA: Ingeniera en Sistemas computacionales MATERIA: Fundamentos de Ingeniera Software PROFESORA: Ing. Mara Nancy Castro INTEGRANTES DEL EQUIPO: 1. Jos Luis Bautista Gmez 11320513 2. Sergio Guadalupe Galeana Escobar 11320550 3. Daniel Bautista Pea 4. Fabin Alejandro Alegra Valencia 5. Luis Antonio Vizcarra HORARIO: 15:00-16:00 AULA: 706 CICLO ESCOLAR: Enero-Junio 13 de febrero del 2014

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

INDICE
CONTENIDO
Introduccin General.Pgina 3 Unidad 1..Pgina 4 1.1 Conceptos Bsicos.Pgina 5 1.2 Papel evolutivo del SoftwarePgina 10 1.3 Proceso para el desarrollo del software.Pgina 17 1.4 Clasificacin de la tecnologa en el desarrollo de software (Tecnologa Estructurada orientada a objetos)Pgina 22 1.5 Definicin e historia de las herramientas CASEPgina 32 1.6 Clasificacin de las herramientas CASE.Pgina 39 ConclusinPgina 42 Bibliografa GeneralPgina 44

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

INTRODUCCION GENERAL

Con el paso del tiempo el software ha sufrido cambios radicales, que han ido marcando momentos importantes en la historia de la humanidad, es gracias al software que nuestras tareas cotidianas se facilitan, adems las empresas pueden producir en mayor cantidad y llevar un mejor control de sus empleados, es por el que se han desarrollado formas de ayudar al mundo, sin duda esto ha revolucionado nuestra forma de vivir y pensar, no imaginaramos un mundo sin computadoras, sin tecnologa; es gracias a ello que la ingeniera de software se basa en modelos, mtodos y herramientas que sirven como una gua para los ingenieros del software durante el proceso de desarrollo, con la finalidad de mejorar la calidad de los proyectos, procesos y productos mediante la evaluacin y medicin de los mismos. A continuacin se vern una serie de conceptos bsicos referentes a fundamentos de ingeniera de software. Donde aprenderemos a identificar desde su historia, como empez hasta nuestros tiempos

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

UNIDAD 1 FUNDAMENTOS DE INGENIERIA DE SOFTWARE


La ingeniera de software es una disciplina formada por un conjunto de mtodos, herramientas y tcnicas que se utilizan en el desarrollo de los programas informticos (software). Esta disciplina trasciende la actividad de programacin, que es la actividad principal a la hora de crear un software. El ingeniero de software se encarga de toda la gestin del proyecto para que ste se pueda desarrollar en un plazo determinado y con el presupuesto previsto. La ingeniera de software, por lo tanto, incluye el anlisis previo de la situacin, el diseo del proyecto, el desarrollo del software, las pruebas necesarias para confirmar su correcto funcionamiento y la implementacin del sistema. Los Ingenieros de Software deben:

Adoptar un enfoque sistemtico para llevar a cabo su trabajo.

Utilizar las herramientas y tcnicas apropiadas para resolver el problema planteado, de acuerdo a las restricciones de desarrollo y a los recursos disponibles.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

1.1 CONCEPTOS BSICOS


Sin importar cualquiera que sea el tipo de software a ser desarrollado sea de sistemas (Son programas que sirven a otros programas en el trabajo de desarrollo como compiladores, editores) Tiempo real (Software encargado de analizar datos del mundo en forma real tales como anlisis de datos, control automatizado, monitoreo de datos) Gestin (a esta categora se empresarial nminas, inventarios) incluye el software comercial a nivel

Ingeniera y cientfico (es software que posee un amplio manejo numrico usado en biologa, astronoma, CAD) Empotrado (software que se encuentra residente en memoria, tales como: controles automticos en los vehculos, sistemas de background, partes del sistema operativo) Computacin personal (software comercial de uso local como procesadores de texto, hojas electrnicas, navegadores web, calendarios, agendas, recetarios) Inteligencia artificial (software de procesamiento especial sistemas expertos, sistemas basados en el conocimiento, generalmente no usan algoritmos numricos) Todos los tipos de software mencionados requieren que los analistas, diseadores y desarrolladores apliquen caractersticas y elementos de calidad para que se logren productos a las necesidades del usuario, estas necesidades se comienzan a encontrar un camino de solucin a travs de la aplicacin de elementos de calidad, as se presentan dos de los ms valiosos como son la eficiencia y la eficacia. El uso eficiente y eficaz de la tecnologa de los computadores es un objetivo que an est distante. Para representar lo anterior, slo basta sealar los reportes de fracasos y dificultades de muchos proyectos en los que se pretende involucrar a la tecnologa de los computadores. La ingeniera del software pretende utilizar los recursos computacionales de tal manera que se produzcan soluciones eficientes y eficaces a

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

los problemas informticos, el xito de un proyecto involucra elementos como la planeacin, la administracin y la utilizacin de metodologas de desarrollo de software. A travs de la planeacin se determinan los recursos necesarios para el desarrollo del proyecto, la factibilidad del mismo y el tiempo estimado de desarrollo; unido a ello con la administracin se controla, evala y corrige la direccin de acuerdo a las contingencias y dems elementos que se vayan presentando durante el desarrollo; finalmente, a travs del uso de una metodologa se busca lograr el acople de los participantes y la garanta de una determinada calidad. Debe notarse que las metodologas de desarrollo software slo constituyen uno de los mecanismos que actualmente se utilizan para alcanzar software de calidad; no debemos dejar de lado aspectos de la direccin de proyectos que tambin buscan calidad en el proceso de desarrollo y en el producto final. Considerando que la calidad es un trmino bastante impreciso se ha decidido establecer este tema como punto de partida. Como complemento se trata el tema del manejo de la complejidad puesto que es un tpico fundamental dentro de una metodologa, que es la herramienta fundamental con la que se pretende guiar el proceso de elaboracin de un producto software de alta calidad. Persona: El personal debe organizarse en equipos eficaces, motivados para hacer un software de alta calidad y coordinados para alcanzar una comunicacin efectivas. Proceso: Incluye todas las actividades relativas al desarrollo del software. Proyecto: Debe organizarse de una manera que permita el equipo de software tener xito Producto: Los ingenieros de software debern asegurar que sus productos y los innovadores asociados cumplen los ms altas estndares profesionales posibles. Ingeniera: Profesin que posee conocimientos cientficos, actividades y criterios (ingenio) para crear dispositivos, mtodos y sistemas para transformar los recursos y satisfacer mejor las necesidades de una sociedad. Software: Conjunto de programas que se pueden ejecutar en una computadora, as como toda la informacin, utileras y recursos necesarios para su diseo, instalacin, operacin, mantenimiento y refinamiento.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

Ingeniera de software: Disciplina que establece el uso de principios de ingeniera robustos, orientados a obtener software econmico, que sea confiable y funcione de manera eficiente. Perfil del ingeniero de software: Debe ser capaz de encabezar o ser miembro de grupos multidisciplinarios de desarrollo de todo tipo de software y que en equipo logre producir software de alta calidad. Diferencia entre programador e ingeniero de software: La ingeniera de software difiere de la programacin tradicional en que se utilizan tcnicas de ingeniera para especificar, disear, codificar, validar y mantener los productos dentro del tiempo y presupuesto establecidos para el proyecto, adems esta ingeniera se preocupa por aspectos administrativos que quedan fuera del dominio normal de la programacin. El trmino programador se emplea para denominar a la persona preocupada y abocada a las tareas y detalles de la codificacin, empacado y modificacin de los algoritmos y estructuras de datos codificados en algn lenguaje de programacin particular. Los ingenieros de software estn, adems, capacitados para hacer frente a aspectos de anlisis, diseo, verificacin, y prueba de programas, la documentacin, el mantenimiento y la administracin del proyecto.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

Bibliografa 1:

MATERIA Ingeniera AO DE EDICIN2013 N PGINAS586 p. ISBN978-84-9964-215-4 EDITORIALRA-MA EDITORIAL

Qu es Ingenieria de software? Ingenieria del software: Es el estudio de los principios y metodologas para el desarrollo y mantenimiento de sistemas de software. [Zeljoutiz,1978] Es la aplicacin prctica del conocmiento cientfico en el diseo y construccin de programas de computadora y la documentacin asociada requerida para desarrollar, operar (funcionar) y mantenerlos si se conoce como desarrollo produccin de software. [Bohem,1976] Trata del establecimiento de los principios y mtodos a fin de obtener software de modo rentable que sea fiable y trabaje en mquinas reales. [Bauer,1972] Qu es proceso? Un modelo de proceso define como solucionar la problemtica del desarrollo de sistemas de software; para resolver ciertas de su proceso las cuales se conocen con su conjunto como el ciclo de vida del software. Su modelo debe considerar el conjunto de personas, estructuras organizacionales, reglas, polticas, actividades, componentes de software, metodologas herramientas utilizadas. Qu es producto? Debemos establecer los objetivos y el mbito del producto, debe de considerar soluciones e identificar las dificultades tcnicas y de gestin. Tambin se debe definir unas estimaciones del coste, una valoracin efectiva del riesgo. El desarrollador y el cliente deben acordar sus objetivos del producto y su mbito.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

El mbito identifica los datos primarios, funciones y comportamientos que caracterizan al producto. Qu es proyecto? Suele organizarse para que dicho proceso sea organizado estableciendo condicionantes para que el proyecto pueda constar de una serie de actividades establecidas organizadas en fases etapas bajo un calendario de fechas y con recursos materiales. Consta de etapas, actividades, unas flechas de hilos, entrega final, recursos humanos constituidos. La gestin de proyecto comprende las actividades de planificacin de tareas, recursos y calendario. Su seguimiento con los progresos conseguidos los desvos incurridos, y el control del presupuesto y del equipo de proyecto. Qu es personal? La necesidad de contar con personal para el desarrollo del software preparado y motivado se viene discutiendo desde los aos 60, de echo el factor humano ha desarrollado un modelo de madurez de gestin personal definiendo las reas para el personal que desarrolla software, reclutamiento, seleccin,retribucin,desarrollo de la carrera y espritu de equipo.

BIBLIOGRAFIA 2: Ingenieria del software, Roger S. Pressman, Mc Graw-Hill, Capitulo 3. Conceptos sobre Gestin de proyectos 589. Pginas: 25-39

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

1.2

PAPEL EVOLUTIVO DEL SOFTWARE

El modelo ms antiguo era el de codificar y probar, utilizado en los inicios del desarrollo de software, era el que predominaba en la dcada de los 60. Este se basaba en requerimientos ambiguos y sin especificaciones puntuales. Inicialmente se implementaba el cdigo y, a continuacin, se pensaba sobre los requerimientos, el diseo y el mantenimiento. Para sistemas pequeos este modelo puede ser til, pero cuando los sistemas son complejos resulta muy peligroso, ya que no proporciona medios de evaluacin de la calidad o de identificacin de riesgos. Si se est a punto de terminar de codificar y se descubre que el diseo es incorrecto, no hay otra solucin que desechar el trabajo y comenzar de nuevo. Esto resulta muy elevado en costos de los recursos y tiempos de desarrollo.

La dinmica de evolucin del software es el estudio de los cambios del sistema. La mayor contribucin en esta rea fue realizada por Meir M. Lehman y Belady, comenzando en los aos 70 y 80. Su trabajo continu en la dcada de 1990, con Lehman y otros investigadores de relevancia en la realimentacin en los procesos de evolucin (Lehman, 1996; Lehman et al., 1998; lehman et al., 2001). A partir de esos estudios propusieron un conjunto de leyes (conocidas como leyes de Lehman) respecto de los cambios producidos en los sistemas. Estas leyes (en realidad son hiptesis) son invariantes y ampliamente aplicables. Lehman y Belady analizaron el crecimiento y la evolucin de varios sistemas software de gran porte; derivando finalmente, segn sus medidas, las siguientes ocho leyes: 1. Cambio continuo: Un programa que se usa en un entorno real necesariamente debe cambiar o se volver progresivamente menos til en ese entorno. 2. Complejidad creciente: A medida que un programa en evolucin cambia, su estructura tiende a ser cada vez ms compleja. Se deben dedicar recursos extras para preservar y simplificar la estructura. 3. Evolucin prolongada del programa: La evolucin de los programas es un proceso autor regulativo. Los atributos de los sistemas, tales como tamao, tiempo entre entregas y la cantidad de errores documentados son aproximadamente invariantes para cada entrega del sistema.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

4. Estabilidad organizacional: Durante el tiempo de vida de un programa, su velocidad de desarrollo es aproximadamente constante e independiente de los recursos dedicados al desarrollo del sistema. 5. Conservacin de la familiaridad: Durante el tiempo de vida de un sistema, el cambio incremental en cada entrega es aproximadamente constante. 6. Crecimiento continuado: La funcionalidad ofrecida por los sistemas tiene que crecer continuamente para mantener la satisfaccin de los usuarios. 7. Decremento de la calidad: La calidad de los sistemas software comenzar a disminuir a menos que dichos sistemas se adapten a los cambios de su entorno de funcionamiento. 8. Realimentacin del sistema: Los procesos de evolucin incorporan sistemas de realimentacin multiagente y multibucle y estos deben ser tratados como sistemas de realimentacin para lograr una mejora significativa del producto. El software evoluciona sencillamente porque se debe adaptar a los cambios del entorno, sean funcionales (exigencias de usuarios), operativos, de plataforma o arquitectura hardware. Uno de los grandes pasos dados en la industria del software fue el desarrollo del modelo en cascada. Dicho modelo sirvi como base para la formulacin del anlisis estructurado, el cual fue uno de los precursores en este camino hacia la aplicacin de prcticas estandarizadas dentro de la ingeniera de software. Propuesto por Winston Royce en el ao de 1970, este modelo intentaba proponer una analoga de lnea de ensamblaje de manufactura para el proceso de desarrollo de software. El modelo en cascada, que surge como respuesta al modelo de codificar y probar, busca ordenar el proceso de desarrollo de una forma fcil de implementar. El modelo de cascada tuvo un gran aceptacin, la ventaja de este modelo, con respecto al anterior, es que ya tiene cierta disciplina en el desarrollo de sistemas; se introducen la planeacin y administracin, y se deben controlar, es decir que, alguien vigile que el grupo de desarrollo realmente cumple en lo que se ha planeado. El software es el producto derivado del proceso de desarrollo, segn la ingeniera de software. Este producto es intrnsecamente evolutivo durante su ciclo de vida. El software evoluciona, en general, generando versiones cada vez ms completas, complejas, mejoradas, optimizadas en algn aspecto, adecuadas a nuevas plataformas (sean de hardware o sistemas operativos), etc. Cuando un sistema deja de evolucionar, eventualmente cumplir con su ciclo de vida, entrar en obsolescencia e inevitablemente, tarde o temprano, ser reemplazado por un producto nuevo.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

El software es tanto un producto como el vehculo para su entrega. Es el transformador de la informacin. El papel del software de computadora ha experimentado un cambio significativo en un periodo un poco mayor a 50 aos. Las mejoras sustanciales en el desempeo del hardware, los cambios profundos en las arquitecturas de cmputo, los enormes incrementos en las capacidades de memoria y almacenamiento, y la amplia variedad de opciones de salida y de entrada han propiciado el surgimiento de sistemas ms elaborados y complejos basados en computadoras. Nadie sabe en realidad el futuro de los sistemas que da a da se construyen, ms sin embargo sin importar el lugar en el que resida el software, ya sea en un celular o dentro de una computadora central, el software realiza la produccin, el manejo, la adquisicin, la modificacin, el despliegue o la transmisin de la informacin que puede ser tan simple como un solo bit o tan compleja como una presentacin multimedia. En su papel de vehculo para la entrega de un producto, el software acta como la base para el control de la computadora (sistemas operativos), la comunicacin de informacin (redes) y la creacin y el control de otros programas (utileras de software y ambientes) El software entrega el producto ms importante de nuestro tiempo: informacin. Transforma los datos personales, por ejemplo las transacciones financieras de un individuo, de modo que los datos sean ms tiles en un contexto local. Maneja informacin de negocio para mejorar la competitividad, proporciona una va para las redes de informacin alrededor del mundo (Internet) y proporciona los medios para adquirir informacin en todas sus formas (pginas web). Hoy en da, el software tiene un papel dual. Es producto y canal de distribucin de este. Como producto, ofrece la potencia de cmputo presentada como hardware de una computadora o, de manera ms global por una red de computadoras accesible mediante hardware local y de acceso fsico. Sin importar el lugar en que resida el software, ya sea en un celular o dentro de una computadora central, ste es un transformador de informacin; realiza la produccin, el manejo, la adquisicin, la modificacin, el despliegue

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

o la transmisin de la informacin que puede ser tan simple como un solo bit o tan compleja como una presentacin multimedia. En su papel de vehculo para la entrega de un producto, el software acta como la base para el control de la computadora (Sistemas Operativos), la comunicacin de informacin (redes), y la relacin y el control de otros programas (utileras de software y ambientes). El software entrega el producto ms importante de nuestro tiempo: informacin. Transforma los datos personales (por ejemplo, las transacciones financieras de un individuo) de forma que los datos sean ms tiles en un contexto local; maneja informacin alrededor del mundo (Internet) y proporciona los medios para adquirir informacin en todas sus formas. El papel del software de computadora ha experimentado un cambio significativo en un periodo un poco mayor a 50 aos. Las mejoras sustanciales en el desempeo del hardware, los cambios profundos en las arquitecturas de cmputo, los enormes incrementos en las capacidades de memoria y almacenamiento, y la amplia variedad de opciones de salida y entrada han propiciado el surgimiento de sistemas ms elaborados y complejos basados en computadoras. En la actualidad una enorme industria del software se ha convertido en un factor dominante en la economa del mundo industrializado. El programador solitario de la era inicial ha sido sustituido por equipos de especialistas en software, en los que cada uno se enfoca en una parte de la tecnologa requerida para desarrollar una ampliacin compleja. Hasta ahora, las preguntas formuladas al programador solitario son las mismas que se hacen cuando se construyen los sistemas basados en computadoras modernas.

ERA AOS

CARACTERSTICAS Se trabajaba con la idea de Codificar y Corregir.

No exista un planteamiento previo. No exista documentacin de ningn tipo.

11950- 1965

Existencia de pocos mtodos formales y pocos creyentes en ellos.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

Desarrollo a base de prueba y error. Se busca simplificar cdigo.

Aparicin de Multiprogramacin y Sistemas Multiusuarios.

Sistemas de Tiempo Real apoyan la toma de decisiones. 2 1965 - 1972

Aparicin de Software como producto. (Casas de Software).


INICIO DE LA CRISIS DEL SOFTWARE.

Se buscan procedimientos para el desarrollo del Software.


Nuevo Concepto: Sistemas Distribuidos. Complejidad en los Sistemas de Informacin.

1972 - 1989

Aparecen: Redes de rea local y global, y Comunicadores Digitales.


Amplio Uso de Microprocesadores. Impacto Colectivo de Software.

Aparecen: Redes de Informacin, Tecnologas Orientadas a Objetos. 4 1989 - ?

Aparecen: Redes Neuronales, Sistemas Expertos y SW de Inteligencia Artificial.

La informacin como valor preponderante dentro de las Organizaciones.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

LA EVOLUCIN DEL SOFTWARE

Las 4 eras del software 4 era 1 era 2 era 3 era

Se caracteriz caracterizo
La mayora del software se desarrollaba y era utilizado por la misma persona u organizacin.

se

Se caracteriz . el establecimiento Por del software como producto y la llegada de las casas de software. Los patrones de la industria, del gobierno y de la universidad se aprestaban a desarrollar el mejor paquete de software y ganar as mucho dinero

se caracteriz
Por la llegada y el amplio uso de los micro procesadores. El microprocesador ha producido un extenso grupo de productos inteligentes, desde automviles hasta hornos de microondas desde de robots industriales a equipos de diagnsticos. Se aleja de las computadoras individuales y de los programas de computadoras, dirigindose al impacto colectivo de las computadoras y del software. Potentes maquinas personales controladas por sistemas operativos sofisticados en redes globales y locales.

Bibliografa 1:

Ingeniera del software Fuera de coleccin Out of seriesPearson educacin Ian Sommerville, Mara Isabel Alfonso Galipienso, Pearson Educacin, 2005,Pag:587

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

Hoy en da el software tiene un doble papel. Es un producto y, al mismo tiempo, el vehculo para entregarlo. Como producto, hace entrega de la potencia informtica que incorpora el hardware informtico o, ms ampliamente, una red de computadoras que es accesible por hardware local. Si reside dentro de un telfono celular u opera dentro de una computadora central, el software es un transformador de informacin, produciendo, gestionando, adquiriendo, modificando, mostrando o transmitiendo informacin que puede ser tan simple como un solo bit, o tan complejo como una presentacin en multimedia. Como vehculo utilizado para hacer entrega del producto, el software acta como la base de control de la computadora (sistemas operativos), la comunicacin de informacin (redes) y la creacin y control de otros programas (herramientas de software y entornos). El papel del software informtico ha sufrido un cambio significativo durante un periodo de tiempo superior a 50 aos. Enormes mejoras en rendimiento del hardware, profundos cambios de arquitecturas informticas, grandes aumentos de memoria y capacidad de almacenamiento y una gran variedad de opciones de entrada y salida han conducido a sistemas ms sofisticados y ms complejos basados en computadora. La sofisticacin y la complejidad pueden producir resultados deslumbrantes cuando un sistema tiene xito, pero tambin pueden suponer grandes problemas para aquellos que deben construir sistemas complejos. Al comienzo de los aos 90, Toffler describi un cambio de poder en el que las viejas estructuras de poder (gubernamentales, educativas, industriales, econmicas y militares) se desintegraran a medida que las computadoras y el software nos llevaran a la democratizacin del conocimiento. A Yourdon le preocupaba que las compaas en Estados Unidos pudieran perder su competitividad en empresas relativas al software y predijo el declive y la cada del programador americano. Hammer y Champy argumentaron que las tecnologas de informacin iban a desempear el papel principal en la reingeniera de la compaa. El componente de software debera disearse e implementarse para que pueda volver a ser reutilizado en muchos programas diferentes. En los aos 60, se construyeron bibliotecas de subrutinas cientficas reutilizables en una amplia serie de aplicaciones cientficas y de ingeniera. Esas bibliotecas de subrutinas reutilizaban de forma efectiva algoritmos bien definidos, pero

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

tenan un dominio de aplicacin limitado. Hoy en da, hemos extendido nuestra visin de reutilizacin para abarcar no slo los algoritmos, sino tambin estructuras de datos. A medida que la disciplina del software evoluciona, se crea un grupo de componentes de diseo estndar. Tornillos estndar y circuitos integrados preparados para la venta son solamente los dos mil componentes estndar que utilizan ingenieros mecnicos y elctricos cuando disean nuevos sistemas. Los componentes reutilizables se han creado para que el ingeniero pueda concentrarse en elementos verdaderamente innovadores de un diseo, por ejemplo, las partes del diseo que representan algo nuevo. En el mundo del hardware, la reutilizacin de componentes es una parte natural del proceso de ingeniera. En el mundo del software es algo que slo ha comenzado a lograrse en una escala amplia.

BIBLIOGRAFIA 2:

Fundamentos de la Ingeniera del Software Autores: Jos Luis Lpez Cuadrado, Beln Ruiz Mezcua, Israel Gonzlez Carrasco, ngel Garca Crespo

1.3

PROCESO PARA EL DESARROLLO DE SOFTWARE

Un proceso para el desarrollo de software, tambin denominado ciclo de vida del desarrollo de software es una estructura aplicada al desarrollo de un producto de software. Hay varios modelos a seguir para el establecimiento de un proceso para el desarrollo de software, cada uno de los cuales describe un enfoque diferente para diferentes actividades que tienen lugar durante el proceso. Algunos autores consideran un modelo de ciclo de vida un trmino ms general que un determinado proceso para el desarrollo de software. Por ejemplo, hay varios procesos de desarrollo de software especficos que se ajustan a un modelo de ciclo de vida de espiral.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

Generalidades La gran cantidad de organizaciones de desarrollo de software implementan metodologas para el proceso de desarrollo. Muchas de estas organizaciones pertenecen a la industria armamentstica, que en los Estados Unidos necesita un certificado basado en su modelo de procesos para poder obtener un contrato. Durante dcadas se ha perseguido la meta de encontrar procesos reproducibles y predecibles que mejoren la productividad y la calidad. Algunas de estas soluciones intentan sistematizar o formalizar la aparentemente desorganizada tarea de desarrollar software. Otros aplican tcnicas de gestin de proyectos para la creacin del software. Sin una gestin del proyecto, los proyectos de software corren el riesgo de demorarse o consumir un presupuesto mayor que el planeado. Dada la cantidad de proyectos de software que no cumplen sus metas en trminos de funcionalidad, costes o tiempo de entrega, una gestin de proyectos efectiva es algo que a menudo falta. Algunas organizaciones crean un grupo propio (Software Engineering Process Group, abreviado SEPG) encargado de mejorar los procesos para el desarrollo de software en la organizacin. Los proyectos de desarrollo de software se diferencian de los otros proyectos de ingeniera tradicional en la naturaleza lgica del producto software. Recordemos que el software se desarrolla, no se fabrica en un sentido clsico. En todos los proyectos de ingeniera la buena calidad se adquiere mediante un buen diseo, pero en el caso del software, la etapa de construccin incide pobremente en su calidad, no as en la construccin de hardware o de una obra civil. Otra diferencia es que el software no se estropea, el paso del tiempo o males del entorno no inciden en el aumento de la tasa de fallas. As, no se puede gestionar un proyecto de desarrollo de software como si se tratara de un proyecto de fabricacin. La gestin del proyecto de software es el primer nivel del proceso de ingeniera de software, porque cubre todo el proceso de desarrollo. Para conseguir un proyecto de software fructfero se debe comprender el mbito del trabajo a realizar, los riesgos en los que se puede incurrir, los recursos requeridos, las tareas a llevar a cabo, el esfuerzo (costo) a consumir y el plan a seguir.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

Bibliografa 1:
Libro SOFTWARE ENGINEERING. A Practitioners Approach. European Adaptation

Mc GRAW-HILLDNTERAMERICANA DE ESPANA, S. A. U. Copyright O MMI, by the McGraw-Hill Companies ISBN: 84-481-3214-9 Editora: Concepcin Femndez Madrid

Anlisis de requisitos Extraer los requisitos de un producto de software es la primera etapa para crearlo. Mientras que los clientes piensan que ellos saben lo que el software tiene que hacer, se requiere de habilidad y experiencia en la ingeniera de software para reconocer requisitos incompletos, ambiguos o contradictorios. El resultado del anlisis de requisitos con el cliente se plasma en el documento ERS, Especificacin de Requerimientos del Sistema, cuya estructura puede venir definida por varios estndares, tales como CMM-I. Asimismo, se define un diagrama de Entidad/Relacin, en el que se plasman las principales entidades que participarn en el desarrollo del software. La captura, anlisis y especificacin de requisitos (incluso pruebas de ellos), es una parte crucial; de esta etapa depende en gran medida el logro de los objetivos finales. Se han ideado modelos y diversos procesos de trabajo para estos fines. Aunque an no est formalizada, ya se habla de la Ingeniera de Requisitos. La IEEE Std. 8301998 normaliza la creacin de las Especificaciones de Requisitos Software (Software Requirements Specification).

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

Diseo y arquitectura Se refiere a determinar cmo funcionar de forma general sin entrar en detalles. Consiste en incorporar consideraciones de la implementacin tecnolgica, como el hardware, la red, etc. Se definen los Casos de Uso para cubrir las funciones que realizar el sistema, y se transforman las entidades definidas en el anlisis de requisitos en clases de diseo, obteniendo un modelo cercano a la programacin orientada a objetos.

Programacin Reducir un diseo a cdigo puede ser la parte ms obvia del trabajo de ingeniera de software, pero no es necesariamente la porcin ms larga. La complejidad y la duracin de esta etapa est ntimamente ligada al o a los lenguajes de programacin utilizados.

Pruebas Consiste en comprobar que el software realice correctamente las tareas indicadas en la especificacin. Una tcnica de prueba es probar por separado cada mdulo del software, y luego probarlo de forma integral, para as llegar al objetivo. Se considera una buena prctica el que las pruebas sean efectuadas por alguien distinto al desarrollador que la program, idealmente un rea de pruebas; sin perjuicio de lo anterior el programador debe hacer sus propias pruebas. En general hay dos grandes formas de organizar un rea de pruebas, la primera es que est compuesta por personal inexperto y que desconozca el tema de pruebas, de esta forma se evala que la documentacin entregada sea de calidad, que los procesos descritos son tan claros que cualquiera puede entenderlos y el software hace las cosas tal y como estn descritas. El segundo enfoque es tener un rea de pruebas conformada por programadores con experiencia, personas que saben sin mayores indicaciones en qu condiciones puede fallar una aplicacin y que pueden poner atencin en detalles que personal inexperto no considerara.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

Documentacin Todo lo concerniente a la documentacin del propio desarrollo del software y de la gestin del proyecto, pasando por modelaciones (UML), diagramas, pruebas, manuales de usuario, manuales tcnicos, etc.; todo con el propsito de eventuales correcciones, usabilidad, mantenimiento futuro y ampliaciones al sistema.

Mantenimiento Mantener y mejorar el software para enfrentar errores descubiertos y nuevos requisitos. Esto puede llevar ms tiempo incluso que el desarrollo inicial del software. Alrededor de 2/3 de toda la ingeniera de software tiene que ver con dar mantenimiento. Una pequea parte de este trabajo consiste en arreglar errores, o bugs. La mayor parte consiste en extender el sistema para hacer nuevas cosas. De manera similar, alrededor de 2/3 de toda la ingeniera civil, arquitectura y trabajo de construccin es dar mantenimiento.

Bibliografia 2:

Catedrtico: Ma. Mara Guadalupe Rivera Garca Grado y Grupo: IV Semestre mdulo 1. Ingeniera del software, Roger S. Pressman, Mc Graw Hill, Capitulo 5.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

1.4 CLASIFICACION DE LA TECNOLOGIA EN EL DESARROLLO DE SOFTWARE (TECNOLOGIA ESTRUCTURADA Y ORIENTADA A OBJETOS).


Las tecnologas identificadas son: a) Tecnologas de desarrollo estructurado. b) Tecnologas orientadas a objetos.

TECNOLOGAS DE DESARROLLO ESTRUCTURADO


Las tecnologas de desarrollo estructurado son las ms convencionales de las empleadas hoy da. Han surgido de la evolucin de las ideas de programacin estructurada (hace ms de veinticinco aos) hacia las fases iniciales del ciclo de vida. En su formulacin actual, las notaciones empleadas en las primeras fases del ciclo de vida (especificacin de requisitos de usuario y sistema) suelen estar constituidas por lenguajes grficos que permiten: identificar el sistema y el entorno; representar el flujo de informacin entre los elementos; y, describir los datos y las actividades del sistema. La idea base de esta tecnologa es que es posible estructurar el modelo de un sistema de software en base a funciones que procesan informacin que reciben de otras funciones (o del exterior) y dirigen la informacin procesada a otros mdulos funcionales (o al exterior). El enfoque seguido, por tanto, es el de pensar en las funciones del sistema necesarias (extradas de los requisitos del sistema) y luego en los datos que requieren. Entre las ms utilizadas para anlisis y especificacin de requisitos se encuentra SA/RT (Anlisis Estructurado con extensiones para tiempo real). Surgi como un lenguaje grfico capaz de representar las actividades que deber realizar el sistema, los intercambios de informacin entre ellos, etc. La descripcin del comportamiento se realiza mediante diagramas de transicin de estados. Existen otras notaciones basadas en conceptos muy similares y el utilizar una u otra es ms bien un problema de gusto. Las diferencias entre ellos provienen ms de la forma de usarla que de la potencia expresiva del lenguaje. Como evolucin de las tcnicas de anlisis estructurado, en la fase de diseo se han utilizado variantes de SA/RT: SD/RT (Diseo Estructurado con extensiones para Tiempo Real). Al igual que SA/RT consta de un lenguaje grfico no ejecutable e incorporan conceptos tales como: tarea, procesador, colas de

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

mensajes, mecanismos de sincronizacin entre tareas, etc. que son conceptos necesarios en la fase de diseo. En una lnea diferente y para evitar los problemas de la explosin de estados se definieron por Harel, los statecharts (variante de los diagramas de estado). Con ellos, se lograba compactar el espacio de estados que resultaba al describir sistemas de gran complejidad al permitir jerarquizacin de estados y descomposicin en componentes. En base a ellos se ha desarrollado una tecnologa estructurada adaptada a sistemas de control denominada Statemate. Para la fase de anlisis y especificacin de requisitos, las herramientas estn asociadas a la construccin de modelos del sistema (modelos lgicos con diagramas de estado asociados). Estas herramientas no son genricas sino que soportan mtodos concretos. Suelen constar de: A) Editores grfico-textuales de la notacin asociada a un mtodo (tanto para describir las funciones como para describir el comportamiento mediante diagramas de estado). B) Comprobadores de consistencia en la informacin relativa a refinamientos del modelo (nombres, tipos, uso, etc. de los elementos definidos en los diagramas). C) Sistema de gestin de la informacin almacenada (en ocasiones basada en bases de datos relacionales u orientadas a objetos para gestionar el acceso a la informacin). D) Generadores de prototipos (normalmente de interfaz grfica) con objeto de evaluar los modelos lgicos o de diseo.

En las fases de diseo del sistema se dispone del mismo tipo de herramientas aunque en este caso se suele disponer tambin de: analizadores temporales y estimadores de tiempos de ejecucin, generadores de cdigo (ms o menos completos) o facilidades para la utilizacin de componentes genricos contenidos en bibliotecas menos comunes pero cada vez ms conocidas son herramientas como las de animacin grfica de modelos. Estas herramientas aparecen como extensin de las que permiten editar y validar modelos de especificacin y diseo estructurado de sistemas de software. Finalmente, las herramientas que soportan la fase de implementacin son las ms conocidas dado que han estado en su mayor parte presentes desde los comienzos de la programacin: editores (conociendo la sintaxis del lenguaje en algunos casos), compiladores e intrpretes, generadores/optimizadores de cdigo, ejecutores de casos de prueba, depuradores simblicos, etc.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

En resumen, la siguiente figura representa esquemticamente los componentes de la tecnologa de software estructurada.

Aunque este tipo de tecnologas de software an se utilizan y sufren rejuvenecimientos peridicos, se est produciendo un desplazamiento de los usuarios hacia tecnologas orientadas a objetos. nicamente en el caso de sistemas de tiempo real existe una inercia a su abandono puesto que an no se dispone de tecnologas orientadas a objetos validadas industrialmente en ese dominio.

TECNOLOGAS ORIENTADAS A OBJETOS


Las tecnologas de desarrollo estructurado han demostrado sus limitaciones a la hora de organizar y facilitar la evolucin de sistemas de software complejos. La descomposicin en funciones hace dificil al diseador mantener la relacin con los objetos del mundo real sobre los que se modifican generalmente los requisitos del usuario. Los mtodos de descomposicin orientada a objetos constituyen la tendencia ms influyente observada en la ingeniera de sistemas de software en los ltimos aos. Con ellos nos referimos a un conjunto de mtodos (an en fase de desarrollo o

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

evolucin) que permiten al analista y diseador concebir su sistema identificando clases de objetos, operaciones permitidas y relaciones entre ellos como base para la estructura del sistema a disear. En ellas, un objeto es un conjunto de datos y funciones de manipulacin de los mismos encapsulados 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 conocen cmo estn implementadas. El diseador reconoce inicialmente clases de objetos de las que se derivan los objetos concretos que utilizar en el diseo. Un objeto puede construirse jerrquicamente empleando, a su vez, a otros objetos ms simples. Una clase implica una generalizacin del concepto de objeto (identificando similitudes entre objetos similares) y constituye la base a partir de las cuales se construye el sistema. Existen varias tecnologas orientadas a objetos que, aunque similares en su potencia expresiva, ofrecen algunas diferencias que las hacen ms adecuadas para algn tipo concreto de sistemas. Podemos mencionar como una de las ms representativas a OMT. OMT est soportada por muchas herramientas CASE comerciales. Corresponde a una notacin grfica que permite representar las clases de objetos, sus relaciones y la creacin de ejemplares de los mismos. Aunque bsicamente empleada para la fase de anlisis de requisitos del sistema puede tambin emplearse para las primeras fases del diseo. La descripcin del comportamiento se realiza generalmente asociando a los objetos diagramas de transicin de estados similares a los empleados en las tecnologas de software estructuradas (con los mismos problemas de la explosin de estados). En Booch puede verse una idea general de su tecnologa orientada a objetos. Los mtodos de diseo orientados a objetos suelen facilitar el desarrollo de una implementacin en un lenguaje de programacin orientado a objetos (C++, Ada95 o Eiffel). No obstante, la eleccin del lenguaje de implementacin no es realmente importante y esta eleccin est condicionada por muchas otras razones. Justo es reconocer, sin embargo, que ha sido la Programacin Orientada a Objetos la que ha impulsado tambin la difusin de estas tcnicas. Las herramientas que acompaan a las tecnologas orientadas a objetos y disponibles en sistemas CASE comerciales no se diferencian en esencia de las que aparecen en las tecnologas estructuradas. El nico aspecto destacable es la proliferacin de catlogos de clases para aplicaciones determinadas y los mecanismos de recuperacin y personalizacin asociados.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

La siguiente figura representa esquemticamente los componentes tpicos de una tecnologa de software orientada a objetos.

BIBLIOGRAFA N 1
Libro Ingeniera De Sistemas De Software Por Gls. Autor: Gonzalo Len Serrano. Editorial: Closas Orcoyen S.L. Captulo 3 Pginas De 98 103.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

Tecnologa de desarrollo estructurado

Las tecnologas de desarrollo estructurado son las ms convencionales de las empleadas hoy da. Han surgido de la evolucin de las ideas de programacin estructurada (hace ms de veinticinco aos) hacia las fases iniciales del ciclo de vida. En su formulacin actual, las notaciones empleadas en las primeras fases del ciclo de vida (especificacin de requisitos de usuario y sistema) suelen estar construidas por lenguajes grficos que permiten: identificar el sistema y el entorno; representar el flujo de informacin entre los elementos; y, describir los datos y las actividades del sistema. La idea de esta tecnologa es que es estructurar el modelo de un sistema de software en base a funciones que procesan informacin que reciben de otras funciones (o del exterior) y dirigen la informacin procesada a otros mdulos funcionales (o al exterior). El enfoque seguido, es el de pensar en las funciones del sistema necesarias (extradas de los requisitos del sistema) y luego en los datos que requieren. Entre las ms utilizadas para anlisis y especificaciones de requisitos se encuentran SA\RT (Anlisis Estructurado con extensiones para tiempo real).surgi como un lenguaje grafico capaz de representar las actividades que deber realizar el sistema, los intercambios de informacin entre ellos, etc. La descripcin del comportamiento se realiza mediante diagramas de transicin de datos. Existen otras notaciones basadas en conceptos muy similares y el utiliza una u otra s ms bien un problema de gusto. Las diferencias entre ellos provienen ms de la forma de usarla que de potencia expresiva del lenguaje. Como evolucin de las tcnicas de anlisis estructurado, en la fase de diseo se han utilizado variantes de SA\RT:SD\RT (Diseo Estructurado con extensiones para tiempo Real). Al igual que SA\RT consta de un lenguaje grafico no ejecutable e incorpora conceptos tales como: tarea, procesador, colas de mensaje, mecanismos de sincronizacin entre tareas, etc. Que son conceptos necesarios en la fase de diseo.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

En una lnea diferentes y para evitar los problemas de la explosin de estados se definieron por Harel los <<statecharts>> (variantes de los diagramas de estado). Con ellos, se lograba compactar el espacio de estados que resultaba al describir sistemas de gran complejidad al permitir jerarquizacin de estados y descomposicin en componentes. En base a ellos se ha desarrollado una tecnologa estructurada adaptada a sistemas de control denominada statemate. Para la fase de anlisis y especificacin de requisitos, las herramientas estn asociadas a la construccin de (modelos lgicos con diagramas de estado asociados). Estas herramientas no son genricas si no que soportan mtodos concretos. Suelen constar de:

A. Editores grficos textuales de la notacin asociada a un mtodo (tanto para describir las funciones como para describir el comportamiento mediante diagramas de estado).

B. Comprobadores de consistencia en la informacin relativa refinamientos del modelo (nombres, tipo, uso, uso, etc. De los elementos definidos en los diagramas). C. Sistema de gestin de la informacin almacenada (en ocasiones basada en bases de datos relacionales u orientados a objetos para gestionar el acceso a la informacin).

D. Generadores de prototipos (normalmente de interfaz grfica) con objeto de evaluar los modelos lgicos o de diseo. En las fases de diseo del sistema se dispone del mismo tipo de herramientas a un que en este caso se suele disponer tambin de: analizadores temporales y estimadores de tiempo de ejecucin, generadores de cdigo (ms o menos completos) o facilidades para la utilizacin de componentes genricos contenidos en bibliotecas menos comunes pero cada vez ms conocidas son herramientas como las de animacin grafica de modelos. Estas herramientas aparecen como extensin de las que permiten editar y validar modelos de especificacin y diseo estructurado de sistemas de software.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

Finalmente, las herramientas que soporta la fase de implementacin son las ms conocidas dado que han estado en su mayor parte presentes desde los comienzos de la programacin: editores (conociendo la sintaxis del lenguaje en algunos casos), compiladores e intrpretes, generadores\optimizadores de cdigo, ejecutores de casos de prueba, depuradores simblicos, etc. Aunque este tipo de tecnologas d software a un se utilizan y sufren rejuvenecimientos peridicos, se est produciendo un desplazamiento de los usuarios hacia tecnologas orientadas a objetos que abordaremos seguidamente. nicamente en el caso de sistemas de tiempo real existe una inercia a su abandono puesto que an no se dispone de tecnologas orientadas a objetos validas industrialmente en ese dominio.

Tecnologa orientada a objetos.

Las tecnologas de desarrollo estructurado han demostrado sus limitaciones a la hora de organizar y facilitar la evolucin de sistemas de software complejos. La descomposicin en funciones hace difcil al diseador mantener la relacin con los objetos del mundo real sobre los que se modifican generalmente los requisitos del usuario. Los mtodos de descomposicin orientadas a objetos constituyen la tendencia ms influyente observada a la ingeniera de sistemas de software en los ltimos aos. Con ellos nos referimos a un conjunto de mtodos (an en fase de desarrollo o evolucin) que permiten al analista y diseador concebir su sistema

Identificando clases de objetos, operaciones permitidas y relaciones entre ellos como base para la estructura del sistema a disear. En ellas, un objeto es un conjunto de datos y funciones de manipulacin de los mismos encapsulados en una unidas que es posible tratar como un todo (crear, copiar, destruir, etc.). Un objeto posee unas operaciones visibles a otros objetos aunque estos no conocen como estn implementadas. El diseador reconoce inicialmente clases de objetos de las que se derivan los objetivos concretos que utilizara en el diseo. Un objeto puede construirte jerrquicamente empleando, a su vez, a otros objetos ms simples. Una clase implica una generalizacin e

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

concepto de objeto (identificando similitudes entre objetos similares) y constituye a base a partir de las cuales se construye el sistema.

Existen varias tecnologas orientadas a objetos que aunque similares en su potencia expresiva, ofrecen algunas diferencias que las hacen ms adecuadas para algn tipo de concreto de sistemas podemos mencionar como una de las ms representativas o OMT. OMT est soportada por muchas herramientas CASE comerciales. Corresponde a una notacin grafica que permite representar las clases de objetos, sus relaciones y la creacin de ejemplares de los mismos. Aunque bsicamente empleada para la fase de anlisis de requisitos del sistema puede tambin emplearse para las primeras fases del diseo. La descripcin del comportamiento se realiza generalmente asociado a los objetos diagramas de transicin de estados similares a los empleados en las tecnologas de software estructurada (con los mismos problemas de la explosin de estados). En Booch puede verse una idea general de su tecnologa orientada a objetos. Los mtodos de diseo orientados a objetos suelen facilitar el desarrollo de una implementacin en un lenguaje de programacin orientado a objetos(c++, Ada95 o Effel). No obstante, la eleccin del lenguaje e implementacin no es realmente importante y esta eleccin est condicionada por muchas otras razones. Justo es conocer, sin embargo, que asido la programacin orientada a objetos la que ha impulsado tambin la difusin de estas tcnicas.

Las herramientas que acompaan a las tecnologas orientadas a objetos y disponibles en sistemas CASE comerciales no se diferencian en esencia de las que aparecen en las tecnologas estructuradas. El nico aspecto destacable es la proliferacin de catlogos de cases para aplicaciones determinadas y los mecanismos de recuperacin y personalizacin asociados.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

Bibliografia 2:

LIBRO: INGENIERIA DEL SOFWARE, UN ENFOQUE PRODUCTIVO. AUTOR: ROGER S. PRESSMAN. TERCERA EDICION. CAPITULO 7. Y CAPITULO 8 PAG. 240 A 260.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

1.5 DEFINICIN E HISTORIA DE LAS HERRAMIENTAS CASE

Definicin Herramientas Case De acuerdo con Kendall y Kendall la ingeniera de sistemas asistida por ordenador es la aplicacin de tecnologa informtica a las actividades, las tcnicas y las metodologas propias de desarrollo, su objetivo es acelerar el proceso para el que han sido diseadas, en el caso de CASE para automatizar o apoyar una o ms fases del ciclo de vida del desarrollo de sistemas. Cuando se hace la planificacin de la base de datos, la primera etapa del ciclo de vida de las aplicaciones de bases de datos, tambin se puede escoger una herramienta CASE (Computer-Aided Software Engineering) que permita llevar a cabo el resto de tareas del modo ms eficiente y efectivo posible. Una herramienta CASE suele incluir: Un diccionario de datos para almacenar informacin sobre los datos de la aplicacin de bases de datos. Herramientas de diseo para dar apoyo al anlisis de datos. Herramientas que permitan desarrollar el modelo de datos corporativo, as como los esquemas conceptual y lgico. Herramientas para desarrollar los prototipos de las aplicaciones. El uso de las herramientas CASE puede mejorar la productividad en el desarrollo de una aplicacin de bases de datos. Historia En la dcada de los setenta el proyecto ISDOS desarroll un lenguaje llamado "Problem Statement Language" (PSL) para la descripcin de los problemas de usuarios y las necesidades de solucin de un sistema de informacin en un diccionario computarizado. Problem Statement Analyzer (PSA) era un producto asociado que analizaba la relacin de problemas y necesidades. Pero la primera herramienta CASE como hoy la conocemos fue "Excelerator" en 1984, era para PC. Actualmente la oferta de herramientas CASE es muy amplia y tenemos por ejemplo el EASYCASE o WINPROJECT.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

Tecnologa Case La tecnologa CASE supone la automatizacin del desarrollo del software, contribuyendo a mejorar la calidad y la productividad en el desarrollo de sistemas de informacin y se plantean los siguientes objetivos: Permitir la aplicacin prctica de metodologas estructuradas, las cuales al ser realizadas con una herramienta se consigue agilizar el trabajo. Facilitar la realizacin de prototipos y el desarrollo conjunto de aplicaciones. Simplificar el mantenimiento de los programas. Mejorar y estandarizar la documentacin. Aumentar la portabilidad de las aplicaciones. Facilitar la reutilizacin de componentes software. Permitir un desarrollo y un refinamiento visual de las aplicaciones, mediante la utilizacin de grficos. Automatizar: El desarrollo del software La documentacin La generacin del cdigo El chequeo de errores La gestin del proyecto Permitir: La reutilizacin del software La portabilidad del software La estandarizacin de la documentacin

Componentes de una herramienta case

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

De una forma esquemtica podemos decir que una herramienta CASE se compone de los siguientes elementos: Repositorio (diccionario) donde se almacenan los elementos definidos o creados por la herramienta, y cuya gestin se realiza mediante el apoyo de un Sistema de Gestin de Base de Datos (SGBD) o de un sistema de gestin de ficheros. Meta modelo (no siempre visible), que constituye el marco para la definicin de las tcnicas y metodologas soportadas por la herramienta. Carga o descarga de datos, son facilidades que permiten cargar el repertorio de la herramienta CASE con datos provenientes de otros sistemas, o bien generar a partir de la propia herramienta esquemas de base de datos, programas, etc. que pueden, a su vez, alimentar otros sistemas. Este elemento proporciona as un medio de comunicacin con otras herramientas. Comprobacin de errores, facilidades que permiten llevar a cabo un anlisis de la exactitud, integridad y consistencia de los esquemas generados por la herramienta. Interfaz de usuario, que constar de editores de texto y herramientas de diseo grfico que permitan, mediante la utilizacin de un sistema de ventanas, iconos y mens, con la ayuda del ratn, definir los diagramas, matrices, etc. que incluyen las distintas metodologas. Estructura general de una herramienta case

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

La estructura CASE se basa en la siguiente terminologa: CASE de alto nivel son aquellas herramientas que automatizan o apoyan las fases finales o superiores del ciclo de vida del desarrollo de sistemas como la planificacin de sistemas, el anlisis de sistemas y el diseo de sistemas. CASE de bajo nivel son aquellas herramientas que automatizan o apoyan las fases finales o inferiores del ciclo de vida como el diseo detallado de sistemas, la implantacin de sistemas y el soporte de sistemas. CASE cruzado de ciclo de vida se aplica a aquellas herramientas que apoyan actividades que tienen lugar a lo largo de todo el ciclo de vida, se incluyen actividades como la gestin de proyectos y la estimacin. Estado Actual En las ltimas dcadas se ha trabajado en el rea de desarrollo de sistemas para encontrar tcnicas que permitan incrementar la productividad y el control de calidad en cualquier proceso de elaboracin de software, y hoy en da la tecnologa CASE (Computer Aided Software Engineering) reemplaza al papel y al lpiz por el ordenador para transformar la actividad de desarrollar software en un proceso automatizado. La tecnologa CASE supone la informatizacin de la informticaes decir la automatizacin del desarrollo del software--, contribuyendo as a elevar la productividad y la calidad de en el desarrollo de los sistemas de informacin de forma anloga a lo que suponen las tcnicas CAD/CAM en el rea de fabricacin. En este nuevo enfoque que persigue mejorar la calidad del software e incrementar la productividad en el proceso de desarrollo del mismo, se plantean los siguientes objetivos: Permitir la aplicacin prctica de metodologas, lo que resulta muy difcil sin emplear herramientas. Facilitar la realizacin de prototipos y el desarrollo conjunto de aplicaciones. Simplificar el mantenimiento del software. Mejorar y estandarizar la documentacin. Aumentar la portabilidad de las aplicaciones. Facilitar la reutilizacin de componentes de software Permitir un desarrollo y un refinamiento (visual) de las aplicaciones, mediante la utilizacin de controles grficos (piezas de cdigo reutilizables).

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

Bibliografa1: Anlisis Y Diseo De Sistemas 3. Edicin Kendall & Kendall, Pginas 15, 16, 17, 18; Capitulo1.Analisis y Diseo. Las herramientas CASE son un conjunto de programas y ayudas que dan asistencia a los anlisis, ingenieros de software y desarrolladores, durante todos los pasos del Ciclo de Vida de desarrollo de un Software.

PRELIMINAR

Ciclo de Vida de desarrollo de un Un software


DISEO

ANLISIS

IMPLEMENTACIN E INSTALACIN

CASE Conjunto de mtodos, utilidades y tcnicas que facilitan la automatizacin del ciclo de vida del desarrollo de sistemas de informacin, completamente o en algunas de sus fases. La sigla genrica para una seria de programas y una filosofa de desarrollo de software que ayuda a automatizar el ciclo de vida de desarrollo de los sistemas.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

Una innovacin en la organizacin, un concepto avanzado en la evolucin de tecnologa con un potencial efecto profundo en la organizacin. Se puede ver al CASE como la unin de las herramientas automticas de software y las metodologas de desarrollo de software formales.

HISTORIA DE LAS HERRAMIENTAS CASE

Las Herramientas CASE tienen su inicio con el simple procesador de palabras que fue usado para crear y manipular documentacin. Los setentas vieron la introduccin de tcnicas grficas y diagramas de flujo de estructuras de datos. Sobre este punto, el diseo y especificaciones en forma pictrica han sido extremadamente complejos y consuman mucho tiempo para realizar cambios. La introduccin de las herramientas CASE para ayudar en este proceso ha permitido que los diagramas puedan ser fcilmente creados y modificados, mejorando la calidad de los diseos de software. Los diccionarios de datos, un documento muy usado que mantiene los detalles de cada tipo de dato y los procesos dentro de un sistema, son el resultado directo de la llegada del diseo de flujo de datos y anlisis estructural, hecho posible a travs de las mejoras en las Herramientas CASE. Pronto se reemplazaron los paquetes grficos por paquetes especializados que habilitan la edicin, actualizacin e impresin en mltiples versiones de diseo. Eventualmente, las herramientas grficas integradas con diccionarios de base de datos para producir poderosos diseos y desarrollar herramientas, podran sostener ciclos completos de diseo de documentos. Como un paso final, la verificacin de errores y generadores de casos de pruebas fueron incluidos para validar el diseo del software. Todos estos procesos pueden saberse integrados en una simple herramienta CASE que soporta todo el ciclo de desarrollo. La primera herramienta comercial se remonta a 1982, aunque algunos especialistas indican que algunos ejemplos de herramientas para diagramacin ya existan.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

No fue sino hasta 1985 en que las herramientas CASE se volvieron realmente importantes en el proceso de desarrollo de software. Los proveedores prometieron a la Industria que muchas actividades seran beneficiadas por la ayuda de las CASE. Estos beneficios consistan, por ejemplo, en el aumento en la productividad. El objetivo en 1985 para muchos vendedores era producir software ms rpidamente. Las herramientas del CASE seran una familia de mtodos favorablemente estructurados para planeamiento, anlisis y diseo. Esto llevara a la generacin automtica de cdigo para desarrollo de software va una especificacin formalmente diseada.

Esto traera como beneficio: Una mejora en la calidad, fiabilidad, utilidad y rendimiento. El entorno de produccin de documentacin para software mejora la comunicacin, mantenimiento y actualizacin. Hace el trabajo de diseo de software ms fcil y agradable. La promesa futura de reemplazar realmente a los ingenieros de software especializados. Reduccin del costo de produccin de software. Con estos objetivos en mente, la industria destin millones en produccin de Herramientas CASE. As como esta enorme suma de dinero fue gastada en Herramientas CASE, hubo tambin trabajo de investigacin 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.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

Bibliografa 2:

Libro SOFTWARE ENGINEERING. A Practitioners Approach. European Adaptation Mc GRAW-HILLDNTERAMERICANA DE ESPANA, S. A. U. Copyright O MMI, by the McGraw-Hill Companies ISBN: 84-481-3214-9 Editora: Concepcin Femndez Madrid

Catedrtico: Ma. Mara Guadalupe Rivera Garca Grado y Grupo: IV Semestre mdulo 1. Ingeniera en Sistemas Computacional

1.6 CLASIFICACIN DE LAS HERRAMIENTAS CASE


No existe una nica clasificacin de herramientas CASE y, en ocasiones, es difcil incluirlas en una clase determinada. Podran 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.

Herramientas integradas, I-CASE (Integrated CASE, CASE integrado): abarcan todas las fases del ciclo de vida del desarrollo de sistemas. Son llamadas tambin CASE workbench. 2. Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior) o front-end, orientadas a la automatizacin y soporte de las actividades desarrolladas durante las primeras fases del desarrollo: anlisis y diseo.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

3. Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior) o back-end, dirigidas a las ltimas fases del desarrollo: construccin e implantacin. 4. Juegos de herramientas o Tools-Case, son el tipo ms simple de herramientas CASE. Automatizan una fase dentro del ciclo de vida. Dentro de este grupo se encontraran las herramientas de reingeniera, orientadas a la fase de mantenimiento

Las herramientas CASE (Computer Aided Software Engineering) son diversas aplicaciones informticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el costo de las mismas en trminos de tiempo y de dinero. Estas herramientas puede ayudar en todos los aspectos del ciclo de vida de desarrollo del software en tareas como el proceso de realizar un diseo del proyecto, clculo de costos, implementacin de parte del cdigo automticamente con el diseo dado, compilacin automtica, documentacin o deteccin de errores entre otras. Pero poco a poco los mainframes han ido siendo menos utilizados y actualmente el mercado de las Big CASE ha muerto completamente abriendo el mercado de diversas herramientas ms especficas para cada fase del ciclo de vida del software. Podran clasificarse atendiendo a:
LAS FASES DEL CICLO DE VIDA DEL DESARROLLO DE SISTEMAS QUE CUBREN

LAS PLATAFORMAS QUE SOPORTAN

LA ARQUITECTURA DE LAS APLICACIONES QUE PRODUCEN

SU FUNCIONALIDAD

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

1. Herramientas integradas, I-CASE (Integrated CASE, CASE integrado): Abarcan todas las fases del ciclo de vida del desarrollo de sistemas. Son llamadas tambin CASE workbench. 2. Herramientas de alto nivel, U-CASE (Upper CASE CASE superior): O front end, orientadas a la automatizacin y soporte de las actividades desarrolladas durante las primeras fases del desarrollo: anlisis y desarrollo. 3. Herramientas de bajo nivel, L-CASE (Lowe CASE CASE inferior): O back end, dirigidas a las ltimas fases del desarrollo: construccin e implementacin. 4. Juegos de herramientas o Tools-Case, son el tipo ms simple de herramientas CASE. Automatizan una fase dentro del ciclo de vida. Dentro de este grupo se encontraran las herramientas de reingeniera, orientadas a la fase de mantenimiento.

En funcin de las fases del ciclo de vida, se pueden agrupar en:

Bibliografa 1: Libro SOFTWARE ENGINEERING. A Practitioners Approach. European Adaptation Mc GRAW-HILLDNTERAMERICANA DE ESPANA, S. A. U. Copyright O MMI, by the McGraw-Hill Companies ISBN: 84-481-3214-9 Editora: Concepcin Femndez Madrid

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

Nombre: Francisca Coronel Hernndez. Guadalupe Rivera Garca Grado y Grupo: IV Semestre mdulo 1. Ingeniera en Sistemas Computacionales.

Catedrtico: Ma. Mara

CONCLUSION
En esta primera parte de la materia se observaron los mtodos necesarios para el desarrollo de un buen proyecto software. Se muestran los antecedentes evolutivos de cmo se fue implementando la materia hasta el da de hoy. Los desarrolladores de software saben que la implementacin de los programas ha ido variando segn las exigencias de los clientes, lo que ha hecho que el mercado sea ms radical con la competencia. Para la creacin de un software se necesita estar organizado en un equipo de trabajo, tener en cuenta que debe de hacer cada parte de la organizacin si se quiere tener xito en ello; los trabajos de la creacin de programas son minuciosos en su elaboracin, es por eso que se llevan a cabo por etapas, segn el modelado que tenga el equipo programado. Las herramientas y conocimientos son indispensables para saber cmo enfrentar lo posibles conflictos que ha de tener el proyecto durante su transcurso de elaboracin, que complementos son necesarios para su buen funcionamiento, estimar en gastos para reducir fallos en el sistema. Es por eso que en esta unidad es importante el uso de la herramienta CASE para tener una buena asistencia en el majeo del trabajo para la realizacin de proyectos software, aumenta la calidad de este lo hace ms prctico para el pblico que va dirigido, o sea los usuarios que harn uso de el vern que es de su agrado. Todo lo hablado anteriormente har que nuestro software alargue su vida de uso, en cuanto al mantenimiento que va a recibir debe de ser cuando este lo requiera, ya sea una modificacin en el programa por un nuevo requerimiento, plataforma o error, pero siempre debe estar vigente su funcionalidad en el entorno que este se use. La ingeniera de software abarca muchos aspectos que debemos de conocer como lo son las 4(PS) que son el personal, producto, proceso y proyecto.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

El personal abarca desde lo que son los clientes, los usuarios, los patrocinadores y todo aquella persona que tenga que ver con el software que se vaya a desarrollar. El producto es aquella aplicacin o programa que se entrega a quien lo vaya a trabajar. El proceso son las etapas que se deben de seguir para desarrollar con eficacia el software bien el cual debe de ir bien documentado. Po ltimo tenemos el proyecto que es como un ejemplo del software que se muestra antes de llegar a ser producto el cual se especifican que modificaciones va a requerir y que cambios se tienen que realizar. En el proceso evolutivo nos muestran las eras que han ocurrido y como ha cambiado el modo de desarrollar software, porque al comienzo del software antes no se planeaba como iba a funcionar ni se especificaba los requerimientos este software solo era usado por quien lo desarrollaba nicamente. Al ir avanzando el paso de los tiempos ha avanzado la tecnologa y se ha creado la inteligencia artificial para resolver problemas por medio de lgica computacional. La clasificacin de las tecnologas que aprend fueron la estructurada y la Orientada a objetos en la cual la tecnologa estructurada es la mas convencional que las empleadas hoy en da. Esto se debe a que su formulacin actual, las notaciones empleadas en la primera fase del ciclo de vida (especificacin de requisitos de usuario y sistemas) suelen estar constituidas por lenguajes graficos que permiten identificar el entorno, y representar el flujo de informacin. La tecnologa orientada a objetos est compuesta de objetos que interactan los cuales mantienen ellas mismas su estado local y proveen operaciones sobre su estado. Tambin se aprendi acerca de las herramientas CASE (Ingeniera de software asistida por computadora), el objetivo principal de estas herramientas es representar objetos de datos de negocio, sus relaciones y la forma en que fluyen estos datos entre distintas zonas de negocio en el seno de la compaa.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

BIBLIOGRAFIA GENERAL
LIBRO: INGENIERIA DEL SOFWARE, UN ENFOQUE PRODUCTIVO. AUTOR: ROGER S. PRESSMAN. TERCERA EDICION. CAPITULO 7. Y CAPITULO 8 PAG. 240 A 260. 1.1 Conceptos bsicos
Bibliografa 1:

MATERIA Ingeniera AO DE EDICIN2013 N PGINAS586 p. ISBN978-84-9964-215-4 EDITORIALRA-MA EDITORIAL


Bibliografia 2:

Ingenieria del software, Roger S. Pressman, Mc Graw-Hill, Capitulo 3. Conceptos sobre Gestin de proyectos 589. Pginas: 25-39 1.2 Papel Evolutivo del Software
Bibliografa 1: Ingeniera del software Fuera de coleccin Out of seriesPearson educacin Ian Sommerville, Mara Isabel Alfonso Galipienso, Pearson Educacin, 2005,Pag:587 Bibliografia 2: Fundamentos de la Ingeniera del Software Autores: Jos Luis Lpez Cuadrado, Beln Ruiz Mezcua, Israel Gonzlez Carrasco, ngel Garca Crespo

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

1.3 Proceso para el desarrollo de software Bibliografa 1: Libro SOFTWARE ENGINEERING. A Practitioners Approach. European Adaptation Mc GRAW-HILLDNTERAMERICANA DE ESPANA, S. A. U. Copyright O MMI, by the McGraw-Hill Companies ISBN: 84-481-3214-9 Editora: Concepcin Femndez Madrid

Bibliografia 2: Catedrtico: Ma. Mara Guadalupe Rivera Garca Grado y Grupo: IV Semestre mdulo 1. Ingeniera del software, Roger S. Pressman, Mc Graw Hill, Capitulo 5.

1.4 Clasificacin de la tecnologa en el desarrollo de software (Tecnologia estructurada y orientada a objetos)


BIBLIOGRAFA N 1

Libro Ingeniera De Sistemas De Software Por Gls. Autor: Gonzalo Len Serrano. Editorial: Closas Orcoyen S.L. Captulo 3 Pginas De 98 103. Bibliografia 2

LIBRO: INGENIERIA DEL SOFWARE, UN ENFOQUE PRODUCTIVO. AUTOR: ROGER S. PRESSMAN. TERCERA EDICION. CAPITULO 7. Y CAPITULO 8 PAG. 240 A 260.

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

1.5 Definicin e historia de las herramientas CASE

Bibliografa1: Anlisis Y Diseo De Sistemas 3. Edicin Kendall & Kendall, Pginas 15, 16, 17, 18; Capitulo1.Analisis y Diseo. Bibliografa 2:

Libro SOFTWARE ENGINEERING. A Practitioners Approach. European Adaptation Mc GRAW-HILLDNTERAMERICANA DE ESPANA, S. A. U. Copyright O MMI, by the McGraw-Hill Companies ISBN: 84-481-3214-9 Editora: Concepcin Femndez Madrid Catedrtico: Ma. Mara Guadalupe Rivera Garca Grado y Grupo: IV Semestre mdulo 1. Ingeniera en Sistemas Computacional

1.6 Clasificacin de las herramientas CASE Bibliografa 1: Libro SOFTWARE ENGINEERING. A Practitioners Approach. European Adaptation Mc GRAW-HILLDNTERAMERICANA DE ESPANA, S. A. U. Copyright O MMI, by the McGraw-Hill Companies ISBN: 84-481-3214-9 Editora: Concepcin Femndez Madrid Nombre: Francisca Coronel Hernndez. Guadalupe Rivera Garca Grado y Grupo: IV Semestre mdulo 1. Ingeniera en Sistemas Computacionales. Catedrtico: Ma. Mara

FUND. ING. SOFTWARE TRABAJO EN EQUIPO UNIDAD 1

INSTITUTO TECNOLOGICO DE ACAPULCO

Bibliografia 2: Ingenieria de software Libro.Ttulo Anlisis y diseo de sistemas Autores:Kenneth E. Kendall, Julie E. Kendall Traducido por:Antonio Nez Ramos Editor Pearson Educacin, 2005 ISBN 9702605776, 9789702605775 N. de pginas 726 pginas

You might also like