Sei sulla pagina 1di 44

1

Temas
Unidad I 1.1 Introduccin a la Ingeniera del Software
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.6 Ppales. organizaciones de estandarizacin
1.1.7 Proyecto SWEBOK
1.1.8 ISO 12207
1.1.9 Ingeniera de sistemas
1.1.10 Software e ingeniera del software
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.15.1 Visin general del proceso
1.1.15.2 Estratificacin del proceso
1.1.15.3 Marco de trabajo
1.1.15.4 Modelos de proceso
El contenido de los siguientes temas fue tomado del libro Un Enfoque Prctico de Pressman
2
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.
3
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)

4
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.
5
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
1.1.3 Crisis del software
6
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
7
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
8
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).
Unidad I 1.1 Introduccin a la Ingeniera del Software
9
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.
Unidad I 1.1 Introduccin a la Ingeniera del Software
1.1.4 Ingeniera del Software
10
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.
Unidad I 1.1 Introduccin a la Ingeniera del Software
11
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.


Unidad I 1.1 Introduccin a la Ingeniera del Software
1.1.5 Estndares y modelos
12
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


13
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.






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 son.
ISO/IEC 12207
ISO/IEC TR 15504


14
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





Unidad I 1.1 Introduccin a la Ingeniera del Software
1.1.7 Proyectos SWEBOK
15

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.

16
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:
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).



Unidad I 1.1 Introduccin a la Ingeniera del Software
1.1.8 ISO 12207
17
1.1.8 ISO 12207
18
1.1.8 ISO 12207
ISO 1227 define los procesos que componen el ciclo de vida del software

Ciclo de vida
Concepto
Retirada
Actividad 1
Proceso
1

Proceso
N
Tarea 1
Tarea 2
Actividad n
Tarea 1
Tarea 2
- Un proceso est compuesto por actividades.
- Una actividad est compuesta de tareas.
19
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)

PLAN
Tareas, agenda,
asignaciones
CHECK
Evaluacin y
medicin
DO
Ejecicin de planes
y tareas
ACT
Problemas y
acciones
correctivas
PROCES
O
INICIO
FIN
20
- 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.


Unidad I 1.1 Introduccin a la Ingeniera del Software
1.1.9 Ingeniera de sistemas
Elemento del
sistema
Elemento del
sistema
Elemento del
sistema
Elemento del
sistema
Sistema
de
Entrada
Sistema
de
Salida
Sistema
Coleccin de elementos relacionados de forma que puedan realizar un objetivo tangible.
21
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 sub-
sistema 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.
22
1.1.9 Ingeniera de sistemas
Algunas definiciones

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

23
1.1.9 Ingeniera de sistemas
Ingeniera de sistemas Gestin de proyectos Ingeniera del Soft.
Gestin de proyectos
Planificacin
Organizacin
Personal
Direccin
Control
Ingeniera del software
Diseo del software
Codificacin
Pruebas unitarias
Int sub software
Ingeniera de sistemas
Definicin del problema
Anlisis de la solucin
Planificacin de procesos
Control de procesos
Evaluacin del producto
24
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
Pruebas de
integra. del sis
Anlisis de requi.
del sw
Ingeniera de sistemas
Ingeniera de sistemas de software


Pruebas del
sistema de sw
Diseo de la
arquit. del sw
Pruebas de integr.
del sw
Ing. del software
Diseo detallado del
software
Pruebas del sub-
sistema de softw.
Codificacin
Pruebas unitarias
Ing. del software
25
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)
Unidad I 1.1 Introduccin a la Ingeniera del Software
1.1.10 Software e ingeniera del software
26
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).
Unidad I 1.1 Introduccin a la Ingeniera del Software
1.1.11 El papel evolutivo del software
27
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.
Unidad I 1.1 Introduccin a la Ingeniera del Software
1.1.12 El software
28
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.

Unidad I 1.1 Introduccin a la Ingeniera del Software
1.1.13 La naturaleza cambiante del software
29
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.

30
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.
Unidad I 1.1 Introduccin a la Ingeniera del Software
1.1.14 Software heredado
31

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.
Unidad I 1.1 Introduccin a la Ingeniera del Software
1.1.15 El proceso de software
32
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.
Unidad I 1.1 Introduccin a la Ingeniera del Software
1.1.15.1 Visin general del proceso
33
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.

Unidad I 1.1 Introduccin a la Ingeniera del Software
1.1.15.2 Estratificacin del proceso
Un enfoque de calidad
Proceso
Mtodos
Herramientas
34
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)
Unidad I 1.1 Introduccin a la Ingeniera del Software
1.1.15.3 Marco de trabajo
Marco de trabajo del proceso
Actividades sombrilla
Conjunto
de tareas
Conjunto
de tareas
Conjunto
de tareas
Conjunto
de tareas
Actividad del marco de trabajo
Actividad del marco de trabajo
Accin de la
ingeniera
del software
Accin de la
ingeniera
del software
35
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.


Unidad I 1.1 Introduccin a la Ingeniera del Software
1.1.15.4 Modelos de procesos
36
Unidad I 2. Visin sistmica de la Ingeniera del Software
Filosofa - enfoque
Proceso
(Gestin - Operativos)

Mtodos
Herramientas
Estructura del conocimiento en I.S.
37
Unidad I 2. Visin sistmica de la Ingeniera del Software
Filosofa - enfoque
Proceso
(Gestin - Operativos)

Mtodos
Herramientas
Filosofa - Enfoque
ISO/IEC 15504/SPICE
Ing. de sistemas
Ing. de software
Ing. de requisitos
OO
UML
XMI
CMM y CMMI
IEEE
Ing. del software de sala limpia
Ing. del software basada en
componentes
Reingeniera de software
Estructura del conocimiento en I.S.
38
Unidad I 2. Visin sistmica de la Ingeniera del Software
Filosofa - enfoque
Proceso
(Gestin - Operativos)

Mtodos
Herramientas
Proceso
Modelo O. Genrico (C.P.M.C.D.)
Modelos O. prescriptivos (C.V.)
Modelos O. giles
Modelos O. web
Modelos de gestin
Estructura del conocimiento en I.S.
39
Unidad I 2. Visin sistmica de la Ingeniera del Software
Filosofa - enfoque
Proceso
(Gestin - Operativos)

Mtodos
Herramientas
Mtodos
Modelado del anlisis
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
Estructura del conocimiento en I.S.
40
Unidad I 2. Visin sistmica de la Ingeniera del Software
Filosofa - enfoque
Proceso
(Gestin - Operativos)

Mtodos
Herramientas
Herramientas
Diagramas de escenarios
Diagramas de flujo
Diagramas de clases
Diagramas de comportamiento
Etc.
Estructura del conocimiento en I.S.
41
Unidad I 2. Visin sistmica de la Ingeniera del Software
Sabidura
Conocimiento
Informacin
Datos
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.
Asociatividad en un
contexto. Ej.: Menor de
edad.
Sin asociatividad en un
contexto. Ej.: edad.
Nivel de complejidad del producto de la I.S.
42
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.



43
1.2.2 Niveles de complejidad del producto de la I.S.
Sabidura
Conocimiento
Informacin
Datos
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.
Asociatividad en un contexto. Ej.:
Menor de edad.
Sin asociatividad en un contexto. Ej.:
edad.
44
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.

Potrebbero piacerti anche