INSTITUTO TECNOLÓGICO DE TOLUCA
MODELOS DE PROCESO DE SOFTWARE MODELOS
“
”
INGENIERÍA EN SISTEMAS COMPUTACIONALES
FUNDAMENTOS DE DESARROLLO DE SISTEMAS
ALUMNOS MANILLA DERBEZ JORGE ANTONIO TORRES VILLAFAÑA HÉCTOR
CATEDRÁTICO ROSA ELVIRA MORENO RAMÍREZ
OCTUBRE DE 2009
INTRODUCCIÓN A LA INGENIERÍA DE SOFTWARE
DEFINICIÓN DE INGENIERÍA DE SOFTWARE
La ingenier ingeniería ía del Software Software es el estable establecimi cimiento ento de los principi principios os y métodos métodos robustos de la ingeniería fin de obtener económicamente software que sea viable y que funcione eficientemente sobre máquinas reales. , definición propuesta por Fritz Bauer.
La Insti Instituc tució ión n de Ingen Ingenie ieros ros Eléct Eléctric ricos os y Elect Electrón rónico icos s (IEEE (IEEE)) plan plantea tea que que la ingen ingenier iería ía de softwa software re es: es: la aplic aplicac ación ión de un enfoq enfoque ue sistem sistemát ático ico,, discip disciplin linad ado o y cuantificable hacia el desarrollo, operación y mantenimiento del software: es decir, la aplicación de la ingeniería al software.
En la ingeniería de software es importante llevar acabo: •
•
Disciplina de la Ingeniería: Los ingenieros hacen que las cosas funcionen al aplicar un conjunto de herramientas y métodos convenientes. Aspectos Aspectos de producci producción ón del software software:: Compren Comprende de la gestión gestión de proyecto proyectos s de soft softwa ware re y desa desarr rrol ollo lo de herra herrami mien enta tas, s, méto método dos s y teor teoría ías s de apoy apoyo o en la producción del software.
HISTORIA DE LA INGENIERÍA DE SOFTWARE SO FTWARE
Los grandes sistemas de software constituyen un elemento común en nuestra sociedad, convirtiéndose imprescindibles para la industria, el comercio y las personas. El reconocimiento reconocimiento de la necesidad necesidad de un enfoque de ingeniería en al desarrollo del software se remonta a dos conferencias de la OTAN en 1968 y1969, donde se acuñó el nombre de Ingeniería de Software y se sentaron las bases que hacen posible el avance de esta disciplina.
La historia de la ingeniería de software se ha caracterizado por los aumentos en los niveles de abstracción, lo cual ha permitido abordar problemas problemas de mayor tamaño y de complejidad.
La iniciativa MDA (Arquitectura dirigida por Modelos) sienta las bases para este cambio de paradigmas, separando la lógica de las aplicaciones de las plataformas de
software en la que estas se ejecutan. La metodología OO-Method se basa en la definición abstr abstract acta a de un sistem sistema a de infor informa mació ción n de sus sus implem implemen entac tacion iones es comp comple letas tas para para implementar herramientas de edición de modelos de alto nivel de abstracción que darán como resultado una plataforma software concreta.
CARACTERÍSTICAS CARACTERÍSTICAS DEL SOFTWARE
1.- El software se desarrolla o construye, no se fabrica en un sentido clásico. Existen similitudes entre desarrollo y creación de software, pero ambas actividades son diferentes, ya que en la fase de construcción de hardware puede introducir problemas de calidad que no existen en el software. Ambas Ambas actividades requieren la construcción de un “producto” pero los enfoque son diferentes.
2.- El software no se “estropea”. El hardware exhibe relativamente muchos fallos al principio de su vida (defectos de diseño o de fabricación); una vez corregidos los defectos, la tasa cae hasta un nivel estacionario, estacionario, y conforme pasa el tiempo, ésta se incrementa.
El software no es susceptible a los males del entorno que hacen que el hardware se estropee. Los defectos no detectados harán que falle el programa en las primeras etapa etapas s de su vida. vida. Sin Sin emba embargo rgo una vez que se corrig corrigen en (supo (suponie niend ndo o que que no se introducen nuevos errores) la curva se aplana. Por lo tanto se dice que el software no se estropea, no se desgasta, pero si se deteriora.
Durante su vida, el software sufre cambios (mantenimiento). Conforme se hacen los cambios, es probable que se introduzcan nuevos errores, haciendo que la curva tenga picos (como se muestra muestra en la siguiente figura). Por cada cambio cambio que se solicite se creará o se originará otro pico, lo cual quiere decir que el software se va deteriorando debido a los cambios.
3.- Aunque la industria tiende a la construcción por componentes, la mayoría del software se construye a la medida.
A medi medida da que que la disc discip iplin lina a de soft softwa ware re evol evoluc ucio iona na se crea crea un grup grupo o de compo compone nent ntes es están estánda dar, r, de forma forma en que que pued pueden en utiliz utilizars arse e en mucho muchos s progra programa mas s dife difere rent ntes es.. Los Los comp compon onen ente tes s reut reutil iliz izab able les s se han han crea creado do para para que que el inge ingeni nier ero o verdaderamente pueda concentrarse en elementos innovadores de un diseño.
Los compone componente ntes s reutiliz reutilizable ables s en la actualid actualidad ad encapsu encapsulan lan tanto tanto datos datos como como procesos que se aplican a los datos, permitiendo al ingeniero del software crear nuevas aplicaciones a partir de partes reutilizables.
MITOS DEL SOFTWARE Muchas de las causas de la crisis del software se pueden encontrar encontrar en una mitología que surge surge duran durante te los prime primero ro años años del del desar desarrol rollo lo del del softwa software. re. Los Los mitos mitos del del softw software are propagaron información errónea y confusión; estos son insidiosos.
Mitos de gestión: Los gestores están normalmente bajo presión de hacer que no se retrase el proyecto y mejorar la calidad. •
Mito: Tenemos ya un libro que está lleno de estándares y procedimientos para construir software. ¿No les proporciona ya a los gestores todo lo que necesita saber?
•
Realidad: La respuesta a la pregunta es no.
•
Mito: Tener las herramientas más avanzadas ya que se cuenta con las computadoras más modernas.
•
Realidad: Se necesita más que el último de computadora para el desarrollo de software de gran calidad. Las herramientas CASE son más importantes que el hardware.
•
Mito: Añadir programadores repondrá tiempo perdido por desperfectos.
•
Realidad: El desarrollo del software no es un proceso mecánico como el de la fabricación. Añadir gente a un proceso de software retrasa aún más el proyecto.
Mitos Mitos del client cliente: e: El clie client nte e cree cree en los los mito mitos, s, debi debido do que que los los gest gestor ores es y desarrolladores hacen poco para corregir la mala información. •
Mito: Una Una decla declarac ració ión n de los los obje objetiv tivos os es sufic suficien iente te para para empe empezar zar a desarrollar el sistema, y los detalles se pueden ver después.
•
Realidad: Una mala definición inicial es la principal causa de software con fallas. Debe de existir una buena comunicación entre el cliente y el analista.
•
Mito: Los requisitos del proyecto cambian continuamente, continuamente, pero lo cambios se acomodan fácilmente debido a que el software es flexible.
•
Realidad: El impacto del cambio varía de acuerdo con el momento en que éste se introduce. Conforme pasa el tiempo, el impacto en el costo crece con rapidez.
Mitos de los desarrolladores: La programación desde sus inicios se veía como un arte. Las viejas formas tardan en morir. •
Mito: Una vez que se describió el programa y hacemos que funcione, la labor ha terminado.
•
Realidad: “en cuanto más pronto se empiece a escribir el código, más se tardará en terminarlo”. Se ha comprobado comprobado que el trabajo completado completado se ha realizado aún después de que se le entrega por primera vez al cliente.
•
Mito: Hasta que no se esté ejecutando el programa, no hay manera de probar su calidad.
•
Realidad: Aplic Aplican ando do una una revisi revisión ón técn técnica ica forma formall (filtr (filtro o de calid calidad ad del del sistema) se pueden encontrar los aciertos o deficiencias del sistema.
•
Mito: Lo que que se entr entreg ega a al term termin inar ar el proy proyec ecto to es el progr rogram ama a funcionando.
•
Realidad: A la par del programa, programa, también se entrega la documentación documentación del sistema sistema,, ya que proporcion proporciona a el fundame fundamento nto para un buen buen desarrol desarrollo lo y proporciona una guía para el mantenimiento del software.
•
Mito: La ingen ingenie iería ría de softw software are oblig obliga a a hacer hacer una una docu docume menta ntació ción n abundante, lo que atrasará el proceso y lo hará más lento.
•
Realidad: La ingeniería de software está relacionada con la creación de calidad, calidad, lo que hace la reducció r educción n de trabajos redundantes, redundantes, lo que hace que la entrega sea a tiempo.
CAPAS DEL SOFTWARE
Herramientas Métodos Procesos Enfoque de Calidad
•
Herramientas: Son Son aplic aplicaci acion ones es que que apoy apoyan an la admin administ istrac ración ión del del proces proceso, o, proporcionan un enfoque automático o semiautomático para el proceso y para los métodos.
•
Métodos: Los Los métod métodos os de la ingen ingenier iería ía de softw software are indica indican n como como constr construir uir técnicamente el software.
•
Procesos: El proceso de la ingeniería de software es la unión que mantiene juntas las capas de tecnología y que permiten un desarrollo racional y oportuno de la ingeniería ingeniería de software. El proceso define un marco de trabajo para un conjunto de áreas clave de proceso que se deben establecer para la entrega de la tecnología de la ingeniería de software.
•
Enfoque de Calidad: Grado en que un sistema, proceso o componente cumple con los requerimientos especificados y las necesidades del cliente o usuario.
PROCESO DE SOFTWARE
Un proceso de software es un conjunto de actividades que conducen a la creación de un producto software. Estas actividades pueden consistir en el desarrollo software desde cero en un lenguaje de programación estándar como Java o C. Sin embargo cada vez más se desarrolla nuevo software ampliando y modificando los sistemas existentes y configurando e integrando software comercial o componentes del sistema.
Los procesos procesos de software software son complejo complejos s y, como como todos todos los proceso procesos s intelect intelectuale uales s y creati creativo vos, s, depe depend nden en de las perso persona nas s que que toman toman decis decision iones es y juici juicios. os. Debid Debido o a la necesidad de juzgar y crear, los intentos por automatizar estos procesos han tenido un éxito éxito limitado limitado.. Las herrami herramienta entas s de ingenie ingeniería ría del software software asistida asistida por computa computadora dora (CASE) pueden ayudar a algunas actividades del proceso.
No existe un proceso ideal, y muchas organizaciones han desarrollado su propio enfoque para para el desa desarro rrollo llo de softwa software. re. Los Los proces procesos os han han evoluc evolucion ionad ado o para para explo explotar tar las capac capacida idade des s de las las perso persona nas s de una una organ organiza izació ción, n, así como como las las carac caracte terís rístic ticas as específicas de los sistemas que se han desarrollado.
Modelo de Madurez de Capacidades (CMM, Capability Maturity Model)
Factores de Calidad del Software Mc. Call
Referencias Bibliográficas
•
•
•
Ian Somerville: Ingeniería de Séptima Edición. Madrid, 2005.
Software . Editorial Pearson Addison Wesley.
S. Pressm Pressman an,, Roger: Roger: INGE INGENI NIER ERÍA ÍA DEL DEL SOFT SOFTWA WARE RE,, PRÁCTICO. Editorial Mc-Graw Hill. Quinta Edición. 2002.
UN ENFO ENFOQU QUE E
Weitzenfeld, Alfredo: Ingeniería de Software, Orientada a Objetos con UML, Java e Internet. Editorial Thomson.