Está en la página 1de 44

Unidad I 1.

1 Introduccin a la Ingeniera del Software

Temas
1.1.1 Definicin Hardware - Software 1.1.2 Desarrollo del hardware 1.1.3 La crisis del software 1.1.4 Ingeniera del Software 1.1.5 Estndares y modelos 1.1.11 El papel evolutivo del software 1.1.12 El software 1.1.13 La naturaleza cambiante del software 1.1.14 Software heredado 1.1.15 El proceso de software

1.1.6 Ppales. organizaciones de estandarizacin 1.1.15.1 Visin general del proceso 1.1.7 Proyecto SWEBOK 1.1.15.2 Estratificacin del proceso 1.1.8 ISO 12207 1.1.15.3 Marco de trabajo 1.1.9 Ingeniera de sistemas 1.1.10 Software e ingeniera del software

1.1.15.4 Modelos de proceso

El contenido de los siguientes temas fue tomado del libro Un Enfoque Prctico de Pressman

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.1 Definicin Hardware - Software


El hardware es el conjunto de todos los elementos materiales (que se pueden tocar) como los dispositivos electrnicos y electromecnicos que pueden incluir: circuitos, cables, tarjetas, discos, unidades de disco, monitor, teclado, ratn (mouse), impresora, placas, chips y dems perifricos.

En cambio, el software es intocable, existe como ideas, conceptos, smbolos, pero no tiene sustancia. Una buena metfora sera un libro: las pginas y la tinta son el hardware, mientras que las palabras, oraciones, prrafos y el significado del texto son el software. Una computadora sin software sera tan intil como un libro con pginas en blanco.

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.2 Desarrollo del hardware


La aparicin de componentes que cada dos aos doblan la capacidad de sus antecesores nos ha rodeado en menos de cuatro dcadas de mquinas capaces de procesar miles de millones de operaciones por segundo (MTOPS). En 1946 ENIAC ocupaba una superficie de 160 m2, pesaba 30 toneladas, y ofreca una capacidad de proceso de 30.000 instrucciones por segundo. En 2002 El microprocesador Pentium IV a 2 Ghz ocupa una superficie de 217 mm2 y tiene una capacidad de proceso de 5.300 MTOPS (Millions of theoretical operations per second)

Unidad I 1.1 Introduccin a la Ingeniera del Software


Este es el escenario creado por la industria del hardware, y que en las tres ltimas dcadas ha implicado a los desarrolladores de software en retos a los que no han sabido responder con solvencia.

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.3 Crisis del software


Este trmino fue acuado en los aos 70, cuando la industria del software ya haba producido los suficientes programas para darse cuenta de que haba algo que fallaba y formul algunos interrogantes. Por qu lleva tanto tiempo terminar los programas? Por qu es tan elevado el coste? Por qu no podemos encontrar todos los errores antes de entregar el software a nuestros clientes? Por qu es tan difcil constatar el progreso durante el desarrollo? Por qu es tan difcil calcular cunto tiempo va a costar?

Unidad I 1.1 Introduccin a la Ingeniera del Software


La industria del software no ha podido satisfacer la demanda. La complejidad del software producido y demandado se incrementa constantemente.
El software es solicitado para ejecutar las tareas demandantes de hoy y est presente en todos los sistemas que van desde los ms sencillos hasta los de misin crtica. Las aplicaciones de software son complejas porque modelan la complejidad del mundo real.

Unidad I 1.1 Introduccin a la Ingeniera del Software


Si el cliente tiene claro qu quiere, interferir mucho menos en el proceso de desarrollo obligando a cambiar aspectos que ya haban sido convenidos previamente. Y, an as, a pesar de todo, lo har.
Deca un profesor de Ingeniera del Software:
El software no est en crisis, que tontera. La crisis le viene desde que naci. Lo que hay que plantearse es por qu no ha salido de esa crisis en todo este tiempo.

Unidad I 1.1 Introduccin a la Ingeniera del Software

Factores de Influencia
Aumento del poder computacional. Reduccin del costo del hardware. Personal de desarrollado y mantenimiento diferente.

Tiempo costo y nmero de desarrolladores,


Control administrativo y detalles tcnicos Aumento en el conocimiento del problema. Cambios en el entorno: Tecnolgicos (Internet, redes, ERP, CRM, SCM). Econmicos (crisis econmicas, globalizacin, etctera). Sociales (nuevas necesidades, costumbres nuevas, etctera).
8

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.4 Ingeniera del Software


Es la rama de la ingeniera que crea y mantiene las aplicaciones de software aplicando tecnologas y prcticas de las ciencias computacionales, manejo de proyectos, el mbito de la aplicacin, y otros campos. El software es el conjunto de instrucciones que permite al hardware de la computadora desempear trabajo til. En las ltimas dcadas del siglo XX, las reducciones de costo en hardware llevaron a que el software fuera un componente ubicuo de los dispositivos usados por las sociedades industrializadas. Establecimiento y uso de principios de ingeniera para obtener software econmico que trabaje de forma eficiente en mquinas reales.
9

Unidad I 1.1 Introduccin a la Ingeniera del Software


La Ingeniera en Software es la aproximacin sistemtica, disciplinada y cuantificable para desarrollar, operar y mantener software. El explosivo crecimiento del mbito informtico requiere de la participacin de profesionales que sepan evaluar, generar y articular productos tecnolgicos que satisfagan las crecientes necesidades de la sociedad moderna. La formacin entrega criterios bsicos para un Ingeniero en Software con una visin y capacidad de aplicar Tecnologas de Informacin y Comunicaciones de manera adecuada para la solucin de problemas de software. El plan de estudios est constituido por un asignaturas de especialidad que incluye Algoritmos, Estructuras de Datos, Lenguajes de Programacin, Anlisis y Diseo de Software, Verificacin y Validacin de Software, Ingeniera y Construccin de Software, Software Incrustado, Costo y Precio del Software, entre otros.
10

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.5 Estndares y modelos


Definicin: Son normas internacionales que reglamentan y controlan el desarrollo de software a nivel mundial.

Los estndares son tiles porque:


Agrupan lo mejor y ms apropiado de las buenas prcticas y usos del desarrollo de software. Engloban los conocimientos.

Proporcionan un marco para implementar procedimientos de aseguramiento de la calidad.


Proporcionan continuidad y entendimiento entre el trabajo de personas y organizaciones distintas.

11

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.6 Ppales. organizaciones de estandarizacin


ISO: Organizacin Internacional para la Estandarizacin. En 1987 la (ISO) y la Comisin Internacional Electrotcnica (IEC), establecieron un Comit Internacional (JTC1) para las Tecnologas de la Informacin. La misin del JTC1 es la estandarizacin en el campo de los sistemas de tecnologas de la informacin, incluyendo microprocesadores y equipos. Los estndares mas importantes para la I S O son. ISO/IEC 12207 ISO/IEC TR 15504

12

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.6 Ppales. organizaciones de estandarizacin


SEI: Instituto de Ingeniera del software. IEEE: Instituto de Ingenieros en electricidad y electrnica Los estndares son tiles porque: Agrupan lo mejor y ms apropiado de las buenas prcticas y usos del desarrollo de software. Engloban los conocimientos. Proporcionan un marco para implementar procedimientos de aseguramiento de la calidad. Proporcionan continuidad y entendimiento entre el trabajo de personas y organizaciones distintas.
13

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.7 Proyectos SWEBOK


SWEBOK da el primer paso necesario para constituir a la Ingeniera del Software como profesin: La delimitacin del cuerpo de conocimiento que comprende la profesin. Sin esta delimitacin no es posible validar de forma universal exmenes de licenciatura, no es posible la preparacin para acceder a la profesin, y no hay un consenso sobre el contenido de su currculo. Gestin de la configuracin Gestin Procesos Herramientas y mtodos Calidad Requisitos

Diseo
Construccin Pruebas Mantenimiento El proyecto parte de la suposicin de que es necesario establecer cul es el cuerpo de conocimiento que deben conocer los ingenieros del software, y en su desarrollo ha agrupado este conocimiento en 10 reas
14

1.1.7 Proyectos SWEBOK

Es importante resaltar que estas reas no incluyen aspectos importantes de las tecnologas de la informacin, tales como lenguajes especficos de programacin, bases de datos relacionales o redes o tecnologa de redes y comunicaciones. Esta es una consecuencia de la distincin que entre esencia y accidente se establece desde un enfoque de ingeniera. Por supuesto que un Ingeniero de Software debe conocer las tcnicas de cada momento, pero la definicin de procesos y metodologa de trabajo es la esencia de la profesin. As por ejemplo, el rea de conocimiento de requisitos, s que puede considerarse como esencia de la profesin. Los problemas que pueden derivarse en un proyecto por una mala obtencin o gestin de los requisitos son indistintos del hardware o lenguaje de programacin empleado. Eran los mismos hace dos dcadas que ahora, y todo nos hace suponer que seguirn siendo idnticos dentro de otros cuatro lustros.

15

Unidad I 1.1 Introduccin a la Ingeniera del Software


Establece un marco para el ciclo de vida del software para - Adquisicin, suministro, desarrollo, operacin y mantenimiento del software - Gestionar, controlar y mejorar el marco - Como base de referencia para el trabajo e intercambio entre organizaciones de software Ciclo de vida del software Periodo de tiempo que comienza al concebir la idea de un nuevo sistema de software, y termina cuando este se retira y deja de funcionar. La ISO 12207 Define el QU, no el CMO. Dice cules son los procesos, actividades y tareas implicados en el desarrollo, mantenimiento y operacin de los sistemas de software, asentando un marco estndar de referencia internacional, pero no se ocupa ni prescribe tcnicas especficas. El estndar sirve de referencia desde dos perspectivas diferentes:

1.1.8 ISO 12207

Para la adquisicin de sistemas y servicios de software.


Para el suministro, desarrollo, mantenimiento y operacin de productos de software. El estndar no cubre el desarrollo de productos de software para distribucin comercial masiva (productos en caja).
16

1.1.8 ISO 12207

17

1.1.8 ISO 12207


ISO 1227 define los procesos que componen el ciclo de vida del software

Proceso 1
Ciclo de vida
Concepto

Actividad 1
Tarea 1 Tarea 2

Proceso N Actividad n
Tarea 1 Tarea 2

Retirada

- Un proceso est compuesto por actividades. - Una actividad est compuesta de tareas.

18

1.1.8 ISO 12207

- La descomposicin del proceso en actividades y tareas se realiza sobre el concepto de ciclo de mejora PDCA Plan Do Chek Act (Planificacin, ejecucin, medicin y mejora)

INICIO

PLAN
Tareas, agenda, asignaciones

ACT
Problemas y acciones correctivas

PROCES O
CHECK
Evaluacin y medicin

DO
Ejecicin de planes y tareas

FIN

19

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.9 Ingeniera de sistemas


- ISO 12207 establece un nexo con la Ingeniera de sistemas al considerar al software como parte de un sistema.
- Desde esta perspectiva se establece a la Ingeniera de sistemas como fundamento de la Ingeniera del Software. Qu es un sistema? Coleccin de componentes organizados para cumplir una funcin o conjunto de funciones especficas.
Sistema de Entrada
Elemento del sistema Elemento del sistema

Sistema

Elemento del sistema

Elemento del sistema

Sistema de Salida
20

Coleccin de elementos relacionados de forma que puedan realizar un objetivo tangible.

1.1.9 Ingeniera de sistemas


Sistema Conjunto de elementos de hardware, software, personas, procedimientos, herramientas y otros factores organizativos, organizados para llevar a cabo un objetivo comn. Sistema de software Sistema o sub-sistema formado por una coleccin de programas y documentacin que de forma conjunta satisfacen unos determinados requisitos. Un sistema de software puede ser en s mismo un sistema independiente que, por ejemplo, realiza su objetivo en un ordenador independiente. A este tipo de sistemas se les denomina tambin sistema intensivo de software, porque el sistema es prcticamente software. Un sistema de software puede ser tambin una parte de un sistema mayor. En cuyo caso se trata en realidad de un sub-sistema de software. Por ejemplo, el sistema de software de un avin de combate es en realidad el subsistema de software del avin.

Ingeniera de sistemas El trmino Ingeniera de sistemas surgi por primera vez en 1956, y fue propuesto por H. Hitch, presidente del departamento de Ingeniera Aeronutica de la Universidad de Pensilvania, para intentar desarrollar una disciplina de ingeniera que pudiera abarcar el desarrollo de grandes sistemas que empleaban diversas disciplinas de ingenieras especficas: construccin de bombarderos, submarinos, etc. Los principios de Ingeniera de sistemas desarrollados en los 60 y 70 se aplicaron en programas como el Apolo, o el programa de misiles balsticos USAF/USN.
21

Algunas definiciones

1.1.9 Ingeniera de sistemas

Ingeniera de sistemas comprende la funcin de gestionar todo el esfuerzo de desarrollo para conseguir un balance ptimo entre todos los elementos del sistema. Es el proceso que transforma la necesidad operacional en la descripcin de los parmetros del sistema, e integra esos parmetros para mejorar la eficiencia general del sistema. Defense Systems Management College, 1989 Los procesos de ingeniera de sistemas integran las secuencias de actividades y decisiones que transforman la definicin de una necesidad en un sistema, que con un ciclo de vida optimizado, consigue un balance ptimo de todos sus componentes. USAF, 1985 La principal funcin de la ingeniera de sistemas es garantizar que el sistema satisface los requisitos durante todo el ciclo de vida. Todas las dems consideraciones se alinean sobre esta funcin. Wymore 1993

Funciones de la Ingeniera de sistemas

- Definicin del problema: Determinacin de las expectativas hacia el producto, necesidades y restricciones obtenidas y analizadas en los requisitos del sistema. Trabaja cerca del cliente para establecer las necesidades operacionales. - Anlisis de la solucin: Determinar las opciones posibles para satisfacer los requisitos y las restricciones. Estudiar y analizar las posibles soluciones. Seleccionar la mejor, sopesando las necesidades inmediatas, opciones de implementacin, utilidad, evolucin del sistema - Planificacin de los procesos: Determinar los grupos de tareas tcnicas que se deben realizar, el esfuerzo requerido para cada una, su prioridad y los riesgos que implican para el proyecto. - Control de los procesos: Determinar los mtodos para controlar las actividades tcnicas del proyecto y los procesos; la medicin del progreso, revisin de los productos intermedios y ejecucin de las acciones correctivas, cuando corresponda. - Evaluacin del producto: Determinar la calidad y cantidad de los productos elaborados, a travs de evaluaciones, pruebas, anlisis, inspecciones
22

Ingeniera de sistemas Gestin de proyectos Ingeniera del Soft.

1.1.9 Ingeniera de sistemas


Gestin de proyectos
Planificacin Organizacin Personal Direccin Control

Ingeniera de sistemas
Definicin del problema
Anlisis de la solucin Planificacin de procesos Control de procesos Evaluacin del producto

Ingeniera del software

Diseo del software


Codificacin Pruebas unitarias Int sub software

23

1.1.9 Ingeniera de sistemas


Ingeniera de sistemas Ingeniera de sistemas de software Ingeniera del software

Anlisis del sistema

Pruebas del sistema

Diseo del sistema Ingeniera de sistemas Ingeniera de sistemas de software Anlisis de requi. del sw

Pruebas de integra. del sis

Pruebas del sistema de sw Pruebas de integr. del sw Pruebas del subsistema de softw.

Diseo de la arquit. del sw Diseo detallado del software

Ing. del software

Codificacin Pruebas unitarias

Ing. del software

24

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.10 Software e ingeniera del software


En la actualidad, el software de computadora es la tecnologa individual ms importante en el mbito mundial. Es comn darse cuenta que la invencin de una tecnologa puede tener efectos profundos e inesperados en otras tecnologas con las que en apariencia no tiene ninguna relacin. (ESTE FENOMENO SE COMO LA LEY DE LA S CONSECUENCIAS IMPREVISTAS). El software se ha convertido a travs de los aos en una tecnologa indispensable en los negocios, la ciencia y la ingeniera. El software tambin ha permitido la creacin de tecnologas nuevas como la ingeniera gentica, ha permitido la expansin de tecnologas existentes como las telecomunicaciones, el fin de tecnologas antiguas como la industria de la impresin. En fin, se puede afirmar que el software es la fuerza conductora de la tecnologa del presente, ya que est relacionado con sistemas de todo tipo: transporte, mdicos, telecomunicaciones, militares, industriales, de entretenimiento, mquinas para oficina entre otros. El software de computadora es el producto que los Ingenieros de Software construyen: incluye los programas que se ejecutan dentro de una computadora de cualquier tamao y arquitectura. Lo construyen los ingenieros de software y casi todos en el mundo industrializado lo usan de manera directa o indirecta. Es importante porque afecta de forma muy cercana todos los aspectos de nuestras vidas. Este software de computadora se construye de la misma forma que cualquier producto de xito, mediante la aplicacin de un proceso que conduzca a un resultado de alta calidad que satisfaga las necesidades de las personas que utilizaran el producto (se hace referencia a los programas , los cuales contienen los datos y los dems documentos que constituyen el software) desde el punto de vista del usuario el producto obtenido es la informacin. En la sociedad moderna el papel de la ingeniera es proporcionar sistemas y productos que mejoren los aspectos materiales de la vida humana, para que as la vida sea ms fcil, segura y placentera. (Richard Fairley y Mery Willshire)

25

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.11 El papel evolutivo del software


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).
26

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.12 El software
El software es un elemento lgico en lugar de fsico, de un sistema. El software se desarrolla o construye, no se manufactura (componentes del hardware, los cuales pueden incluir problemas de calidad inexistentes o sea, fcil de corregir en el software), el software no se desgasta, pero se deteriora (el cual se corrige con un mejor diseo: implementacin) Los costos del software se concentran el la ingeniera, esto quiere decir que los proyectos de software no se pueden manejar como si fueran proyectos de manufactura. El hardware tiene un nmero considerablemente alto de posibles fallas al inicio de su vida til, se hace referencia a defectos de diseo de fbrica (manufactura). Tambin con el tiempo causa fallas en el hardware la acumulacin de polvo, la alta vibracin, el abuso del hombre sobre los diferentes componentes, las temperaturas extremas y muchos otros factores que hacen parte del medio ambiente. Se puede decir que el hardware comienza a desgastarse. El software es inmune a los males ambientales que desgastan al hardware. Los errores del software se corrigen, o sea que se implementan.

27

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.13 La naturaleza cambiante del software


En la actualidad existen siete grandes categoras del software de computadora que presentan retos continuos para los ingenieros de software. Software de sistemas: coleccin de programas escritos para servir a otros programas. Ejemplo: los compiladores, editores y utileras para la administracin de archivos, los cuales procesar estructuras de informacin 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 aplicacin: son programas independientes que resuelven una necesidad de negocios especfica. Ejemplo: el procesamiento de transacciones en los puntos de venta.
Software cientfico y de ingeniera: se caracteriza por algoritmos. Abarca desde la astronoma hasta la vulcanologa, desde el anlisis de la tensin automotriz hasta la dinmica orbital de los transbordadores espaciales, y desde la biologa molecular hasta la manufactura automatizada. Diseo asistido por computadora. Software emportado o incrustado: reside en la memoria de solo lectura del sistema y con l se implementan y controlan caractersticas y funciones para el usuario final y el sistema mismo. Ejemplo: control del teclado de un horno microondas, las funciones digitales de un automvil, como el control de combustible, los sistemas de frenado, entre otros.
28

1.1.13 La naturaleza cambiante del software


Software de lnea de productos: diseado para proporcionar una capacidad especfica y la utilizacin de muchos clientes diferentes, se puede enfocar en un nicho de mercado limitado. Ejemplo: productos para el control de inventarios, hojas de clculos , multimedia, entretenimiento, manejo de BD, administracin de personal y finanzas en los negocios. Aplicacin basada en Web: las WebApps engloban un espectro amplio de aplicaciones. En su forma ms simple, las WebApps son apenas un poco ms que un conjunto de archivos de hipertexto ligados que presentan informacin mediante texto y algunas grficas. Actualmente estas aplicaciones estn integradas con base de datos y aplicaciones de negocios, ya que proporcionan caractersticas que les permite evolucionar hacia ambientes computacionales sofisticados. Software de inteligencia: utiliza algoritmos no numricos en la resolucin de problemas complejos que es imposible abordar por medio de un anlisis directo. Incluye la robtica, el reconocimiento de patrones (imagen y voz), los juegos de computadoras, entre otros.

29

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.14 Software heredado


Hace referencia a los software o programas viejos, aquellos que utilizan tan solo algunas entidades empresariales, gubernamentales o individuos. Estos fueron desarrollados hace dcadas y han sido modificados en forma continua para cumplir los requerimientos de los cambios en los negocios y en las plataformas de cmputos. Ejemplo: Unix, foxpro, Dos, entre otros. Aqu se puede hacer nfasis a los programas de computadora que hacen parte de los siete grandes dominios de aplicacin (la naturaleza cambiante del software) Algunas veces los software heredados tienen diseos imposibles de extender, cdigos complicados, documentacin escasa o inexistente, casos de prueba y resultados que nunca fueron archivados, un historial de cambio manejado con pobreza, etctera. Sin embargo, estos software son indispensables para algunas entidades, por lo tanto, aunque el programa sea viejo, pero si presta su utilidad o satisface las necesidades del usuario y funciona de manera confiable, se dice que el sistema no est roto ni requiere arreglos. Sin embargo, conforme pasa el tiempo la tecnologa evoluciona rpidamente, por lo tanto el software debe adaptarse para satisfacer las necesidades de los nuevos ambientes o las nuevas tecnologas de cmputos. El software debe mejorarse para una mejor implementacin de su servicio, o sea redisearse.

30

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.15 El proceso de software

Son los pasos predecibles que hay que realizar para crear el programa. Es decir, un mapa de carretera que ayude a crear un resultado de alta calidad y a tiempo. (definirlo, construirlo y probarlo), es importante seguir los pasos porque ofrece estabilidad, control y organizacin a una actividad que puede volverse catica si no se controla. Este enfoque debe ser gil, debe requerir solo aquellas actividades, controles y documentaciones apropiados para el equipo del proyecto y el producto que ha de producirse. Se est seguro de que se ha hecho correctamente cuando se determina la madurez, la calidad, la viabilidad del producto que se construye.

31

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.15.1 Visin general del proceso

El desarrollo del software es un proceso de aprendizaje social, es un proceso iterativo de aprendizaje y como resultado la materializacin del conocimiento recolectado, depurado y organizado conforme el proceso estuvo en ejecucin. El proceso de un software es un marco de trabajo para las tareas que se requieren en la construccin de software de alta calidad. El proceso es un sinnimo de Ingeniera del Software. Un proceso de software define el enfoque que se adopta mientras el software est en desarrollo, pero la ingeniera del software tambin abarca las tecnologas que requiere el proceso (mtodos tcnicos y herramientas automatizadas)

La ingeniera del software la realizan personas creativas y con conocimiento que deben trabajar en un proceso de software madurado que sea apropiado para el producto que construyen y para las demandas de sus mercados.

32

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.15.2 Estratificacin del proceso


Se aplica al desarrollo de software de computadora, de que manera se construye, econmicamente que sea un software confiable, que funcione eficientemente en varias mquinas reales. Ms que una disciplina o un cuerpo de conocimiento, la ingeniera es un verbo, una palabra de accin, una manera de abordar un problema el cual al final debe estar sustentado en un compromiso con la calidad. Enfoque en la calidad. La IS Es una tecnologa estratificada, en donde todo debe estar sustentado en un compromiso con la calidad.
Herramientas Mtodos

Proceso

Un enfoque de calidad

33

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.15.3 Marco de trabajo


Un marco de trabajo establece la base para un proceso de software completo al identificar un nmero pequeo de actividades del marco de trabajo aplicables a todos los proyectos de software, sin importar su tamao o complejidad. Abarca un conjunto de actividades que a su vez contienen conjuntos de acciones, es decir una serie de tareas relacionadas que producen un producto del trabajo en la ingeniera del software. Un proceso define quien est haciendo qu, cundo y cmo lograr cierta mente. (Ivar Jacobson, Grady Booch y James Rumbaugh)
Marco de trabajo del proceso Actividades sombrilla
Actividad del marco de trabajo Conjunto de tareas Conjunto de tareas

Accin de la ingeniera del software

Actividad del marco de trabajo


Accin de la ingeniera del software

Conjunto de tareas Conjunto de tareas

34

Unidad I 1.1 Introduccin a la Ingeniera del Software

1.1.15.4 Modelos de procesos


Comunicacin: implica una intensa colaboracin y comunicacin con los clientes, adems abarca la investigacin de requisitos y otras actividades relacionadas. Planeacin: establece un plan para el trabajo de la ingeniera del software. Describe las tareas tcnicas que deben realizarse, los riesgos probables, los recursos que sern requerido, los productos del trabajo que han de producirse y un programa de trabajo. Modelado: Esta actividad abarca la creacin de modelos que permiten al desarrollador y al cliente entender mejor los requisitos del software y el diseo que lograr satisfacerlo. Construccin: esta actividad combina la generacin del cdigo (ya sea manual o automatizado) y la realizacin de pruebas necesarias para descubrir errores en el cdigo. Despliegue: El software se entrega al cliente parcialmente para que lo evale y a su vez para que proporcione la informacin basada en su evolucin.

35

Unidad I 2. Visin sistmica de la Ingeniera del Software

Estructura del conocimiento en I.S.


Herramientas

Mtodos

Proceso
(Gestin - Operativos)

Filosofa - enfoque
36

Unidad I 2. Visin sistmica de la Ingeniera del Software

Estructura del conocimiento en I.S.


Herramientas

Filosofa - Enfoque
ISO/IEC 15504/SPICE

Mtodos

Ing. de sistemas
Ing. de software Ing. de requisitos OO UML XMI CMM y CMMI IEEE Ing. del software de sala limpia

Proceso
(Gestin - Operativos)

Filosofa - enfoque

Ing. del software basada en componentes

Reingeniera de software
37

Unidad I 2. Visin sistmica de la Ingeniera del Software

Estructura del conocimiento en I.S.


Herramientas

Proceso
Modelo O. Genrico (C.P.M.C.D.)

Mtodos

Modelos O. prescriptivos (C.V.)


Modelos O. giles Modelos O. web Modelos de gestin

Proceso
(Gestin - Operativos)

Filosofa - enfoque
38

Unidad I 2. Visin sistmica de la Ingeniera del Software

Estructura del conocimiento en I.S.


Herramientas

Mtodos
Modelado del anlisis

Mtodos

Ing. del diseo


Diseo arquitectnico Diseo a nivel de componentes Diseo de la interfaz de usuario Estrategias de prueba de software Tcnicas de prueba de software Mtricas del software Mtodos formales y/o matemticos

Proceso
(Gestin - Operativos)

Filosofa - enfoque
39

Unidad I 2. Visin sistmica de la Ingeniera del Software

Estructura del conocimiento en I.S.


Herramientas

Herramientas
Diagramas de escenarios

Mtodos

Diagramas de flujo
Diagramas de clases Diagramas de comportamiento Etc.

Proceso
(Gestin - Operativos)

Filosofa - enfoque
40

Unidad I 2. Visin sistmica de la Ingeniera del Software

Nivel de complejidad del producto de la I.S.


Datos
Sin asociatividad en un contexto. Ej.: edad. Asociatividad en un contexto. Ej.: Menor de edad. Asociatividad en mltiples contextos. Ej.: Comportamiento usual de los menores de edad. Creacin de principios generalizados con base en el conocimiento procedente de fuentes diferentes. Ej.: Segn la psicologa, la neuropsicologa, la neurociencia y la sociologa la situacin se debe enfrentar con x decisiones.
41

Informacin

Conocimiento

Sabidura

Unidad I 1.2 Visin sistmica de la Ingeniera del Software

1.2.2 Niveles de complejidad del producto de la I.S.


Planeacin del proyecto, Gestin de requisitos, Medicin y anlisis, Gestin de la configuracin, Aseguramiento de la calidad del producto y del proceso Niveles: Nivel 0: Incompleto: la gestin de requisitos no alcanza todas las metas y objetivos definidos para avanzar al nivel 1. Nivel 1: Realizado: Las tareas especificas para producir el producto han sido realizadas.

Nivel 2: Administrado: Todos los criterios del nivel 1 han sido satisfechos. Toda la gente que ejecuta el trabajo tiene acceso a los recursos adecuados para realizar su labor, los clientes estn implicados de manera activa, todas las tareas de trabajo y productos estn monitoreados, controlados y revisados y son evaluados en apego a la descripcin del proceso.
Nivel 3: Definido: todos los criterios del nivel 2 se han cumplido. Nivel 4: Administrado en forma cuantitativa: todos los criterios del nivel 3 han sido cumplidos, adems, el rea del proceso se controla y mejora mediante mediciones y evaluacin cuantitativa. Los objetivos cuantitativos para la calidad y el desempeo del proceso estn establecidos y se utiliza como un criterio para administrar el proceso. Nivel 5: Mejorado: Todos los criterios del nivel 4 han sido satisfecho. Adems, el rea del proceso se adapta y mejora mediante el uso de medios cuantitativos (estadsticos) para reconocer las necesidades cambiantes del cliente y mejorar de manera continua la eficacia del rea del proceso que se est considerando.
42

1.2.2 Niveles de complejidad del producto de la I.S. Sin asociatividad en un contexto. Ej.: edad. Asociatividad en un contexto. Ej.: Menor de edad.

Datos

Informacin

Conocimiento

Asociatividad en mltiples contextos. Ej.: Comportamiento usual de los menores de edad.

Sabidura

Creacin de principios generalizados con base en el conocimiento procedente de fuentes diferentes. Ej.: Segn la psicologa, la neuropsicologa, la neurociencia y la sociologa la situacin se debe enfrentar con x decisiones.

43

Unidad I 2. Visin sistmica de la Ingeniera del Software

Premisas de la ingeniera del software


Cuando la ingeniera del software llegue hasta el antepenltimo peldao de la generacin de conocimiento, a las puertas de la sabidura, el mundo se habr acabado. Si acaso el software llegara a la sabidura se encontrara con Dios. El desarrollo de software se ve constantemente impedido por la lentitud en la creacin de componentes hardware y mecanismos que servirn para que extienda su potencial.

La generacin de nuevo hardware y de los diferentes mecanismos se realiza para el servir a las pretensiones reprimidas de la ingeniera del software.
La ingeniera del software simplemente obedece a las necesidades del bien y del mal y esto queda evidenciado cuando el desarrollo tecnolgico es jalonado por los avances en la medicina y en la guerra.

44

También podría gustarte