Anda di halaman 1dari 12

INSTITUTO TECNOLÓGICO DE TOLUCA

“INGENIERÍA DE SOFTWARE”

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ía del Software es el establecimiento de los principios y 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 Institución de Ingenieros Eléctricos y Electrónicos (IEEE) plantea que la


ingeniería de software es: la aplicación de un enfoque sistemático, disciplinado 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 de producción del software: Comprende la gestión de proyectos de


software y desarrollo de herramientas, métodos y teorías de apoyo en la
producción del software.

HISTORIA DE LA INGENIERÍA DE SOFTWARE

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 de la 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 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
abstracta de un sistema de información de sus implementaciones completas 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 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 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,
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
etapas de su vida. Sin embargo una vez que se corrigen (suponiendo 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 en la siguiente figura). Por cada 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 medida que la disciplina de software evoluciona se crea un grupo de


componentes estándar, de forma en que pueden utilizarse en muchos programas
diferentes. Los componentes reutilizables se han creado para que el ingeniero
verdaderamente pueda concentrarse en elementos innovadores de un diseño.

Los componentes reutilizables en la actualidad encapsulan tanto datos 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 en una mitología que
surge durante los primero años del desarrollo del software. Los mitos del software
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 del cliente: El cliente cree en los mitos, debido que los gestores y
desarrolladores hacen poco para corregir la mala información.

• Mito: Una declaración de los objetivos es suficiente para empezar 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, 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 que el trabajo 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: Aplicando una revisión técnica formal (filtro de calidad del


sistema) se pueden encontrar los aciertos o deficiencias del sistema.

• Mito: Lo que se entrega al terminar el proyecto es el programa


funcionando.

• Realidad: A la par del programa, también se entrega la documentación del


sistema, ya que proporciona el fundamento para un buen desarrollo y
proporciona una guía para el mantenimiento del software.

• Mito: La ingeniería de software obliga a hacer una documentació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, lo que hace la reducción de trabajos redundantes, lo que hace que
la entrega sea a tiempo.
CAPAS DEL SOFTWARE

Herramientas

Métodos

Procesos
Enfoque de
Calidad

• Herramientas: Son aplicaciones que apoyan la administración del proceso,


proporcionan un enfoque automático o semiautomático para el proceso y para los
métodos.

• Métodos: Los métodos de la ingeniería de software indican como construir


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 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 de software son complejos y, como todos los procesos intelectuales y
creativos, dependen de las personas que toman decisiones y juicios. Debido a la
necesidad de juzgar y crear, los intentos por automatizar estos procesos han tenido un
éxito limitado. Las herramientas de ingeniería del software asistida por computadora
(CASE) pueden ayudar a algunas actividades del proceso.

No existe un proceso ideal, y muchas organizaciones han desarrollado su propio enfoque


para el desarrollo de software. Los procesos han evolucionado para explotar las
capacidades de las personas de una organización, así como las características
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 Software. Editorial Pearson Addison Wesley.


Séptima Edición. Madrid, 2005.

• S. Pressman, Roger: INGENIERÍA DEL SOFTWARE, UN ENFOQUE


PRÁCTICO. Editorial Mc-Graw Hill. Quinta Edición. 2002.

• Weitzenfeld, Alfredo: Ingeniería de Software, Orientada a Objetos con UML,


Java e Internet. Editorial Thomson.