SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
Ingenieria de Software I

_____________________________________________________________________________________________________

UNIDAD I

INTRODUCCION A LA INGENIERIA DE SOFTWARE

Contenido:
1.1

Definiciones

1.2

Evolucion del Software

1.3

Importancia del Software

1.4

Problemas del Software

1.5

Caracteristicas del Software

1.6

Conceptos de Calidad

1.7

Mitos del Software

1.8

Distribucion del Esfuerzo en un Proyecto de Programación

1.9

Administración de Proyectos de Software

1.10

Paradigmas de la Ingeniería de Software
Ingenieria de Software I

_____________________________________________________________________________________________________

1.1.

DEFINICIONES
Ingeniería.-

Profesión que posee conocimientos cientificos, actividades y criterios ( ingenio ) para crear
dispositivos, metodos 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
información, utilerias y recursos necesarios para su diseño, instalación, operación,
mantenimiento y refinamiento.

Ingenieria de
Software.-

Disciplina que establece el uso de principios de ingeniería robustos, orientados a obtener
software económico, 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 ingenieria de software difiere de la programación tradicional en que se utilizan tecnicas
de ingeniería para especificar, diseñar, codificar, validar y mantener los productos dentro
del tiempo y presupuesto establecidos para el proyecto, ademas esta ingeniería se
preocupa por aspectos administrativos que quedan fuera del dominio
normal de la programación.
El término “programador” se emplea para denominar a la persona preocupada y abocada
a las tareas y detalles de la codificación, empacado y modificación de los algoritmos y
estructuras de datos codificados en algun lenguaje de programación particular.
Los ingenieros de software están, ademas, capacitados para hacer frente a aspectos
de análisis, diseño, verificación, y prueba de programas, la documentación,
el mantenimiento y la administración del proyecto.
Ingenieria de Software I

_____________________________________________________________________________________________________

1.2

EVOLUCION DEL SOFTWARE

I era
º Por lotes.
º Distribucion limitada.
º Software a medida.

1950

II era
º Sist. multiusuarios.
º Tiempo Real.
º Bases de Datos.
º Software como producto.

III era
º Sist. Distribuidos.
º Incorporacion de Inteligencia.
º Hardware de bajo costo.
º Impacto en el consumo.

IV era
º Potentes sistemas.
º Sistemas expertos.
º Redes neuronales.

1960

1980
1990
“Crisis del Software”

2000

1970
-

- Muchos cambios en
hardware.
- Poca evolución del
software.
- Desarrollo de
software sin
planeacion, y sin
documentación.

Complejidad del software

+

- Tecnicas Interactivas.
- Aparecen las PC’s.
- Control en Tiempo Real. - Cias. de Software venden
- Mejora de los dispositivos
miles de dolares.
de almacenamiento.
- Hardware standar, el software
- Primeras casas de software.
marca la diferencia.
- Problemas por el mantenimiento.

- Software complejo.

La “Crisis del Software” se le conoce a una etapa en la que todos los programas desarrollados se corregían cuando
había fallos o modificados a necesidades cambiantes, requerían de altos esfuerzos por mantenerlos, con mayor costo a medida
que la complejidad del software crecía.
En las pasadas décadas los ejecutivos y desarrolladores se hacían las siguientes preguntas:
¿ Por qué lleva tanto tiempo terminar los programas ?
¿ Por qué es tan elevado el costo ?
¿ Por qué no podemos detectar los errores antes de entregar el software a los clientes ?
¿ Por qué resulta tan dificil constatar el progreso del desarrollo del software ?
Estas y otras preguntas manifiestan el caracter del software y la forma en que se desarrolla, estos problemas hacen
necesaria la adopción de técnicas de Ingeniería de Software.
Ingenieria de Software I

_____________________________________________________________________________________________________

1.3

IMPORTANCIA DEL SOFTWARE.

El software es ahora la clave del exito de muchos de los sistemas basados en computadora. El software marca la
diferencia. Lo que diferencia una compañia de otra es la suficiencia, exactitud y oportunidad de la información dada por el
software.

Ejemplo de la importacia del software: Dos consultorios dentales, ambos cuentan con los ultimos modelos
de computadora personal y destinadas a apoyar las tareas y actividades relacionadas con el consultorio. Pero uno de ellos
cuenta con un dispositivo especial conectado a la computadora y un SOFTWARE para obtener radiografías de piezas dentales
por computadora, en un par de minutos la muestra radiografica esta en pantalla y el medico puede obtener diferentes vistas de
la placa usando el software. Ademas puede establecer una conexión a traves de internet o via modem para enviar el archivo de
la radiografía a otro colega experto con el fin de consultar y apoyar el diagnostico, todo esto en la misma cita. En la forma
tradicional la placa radiografica esta lista en un par de dias.
El desarrollo de software se ha convertido en una industria con crecimiento vertical en los ultimos años, hoy por hoy
uno de los hombres mas ricos del mundo es el dueño de una casa de software, Microsoft.
Hace un par de decadas se sostenia la teoria de que los paises que poseian los mejores recursos naturales estaban
destinados a ser los mas ricos y poderosos del mundo, en México por ejemplo, se manejo la idea de que el petróleo era la
puerta de entrada grande al mundo desarrollado. Indudablemente los recursos naturales tienen un papel importante en la
economia de los paises, sin embargo poco a poco se fue acuñando una nueva ideología que se sintetiza en lo siguiente:
“El que posee la información y el conocimiento y hace mejor uso de él, es el que tiene el poder”.

1.4

PROBLEMAS DEL SOFTWARE.
• La planificación y estimación de costos frecuentemente son imprecisas.
• Falta de “productividad” en la comunidad de software”
• La calidad del software es a veces ni aceptable.

Estos problemas al final crean insatisfaccion y falta de confianza de los clientes. Los problemas anteriores son solo
manifestacion de otras dificultades:
•
•
•
•

No tenemos tiempo de recoger datos sobre el proceso de desarrollo del software.
Los proyectos de desarrollo de software se llevan a cabo con solo una vaga indicacion de los requisitos del cliente.
La calidad del software es normalmente cuestionable.
El mantenimiento de software es muy costoso y no se le ha considerado un aspecto importante.

Los problemas anteriores son corregibles, la clave es: Dar un enfoque de ingeniería al desarrollo de software.

1.5

CARACTERISTICAS DEL SOFTWARE.
Ingenieria de Software I

_____________________________________________________________________________________________________
El software es un elemento del sistema que es lógico. Por tanto, el software tiene características considerablemente
distintas al hardware:
• El software se desarrolla, no se fabrica en un sentido clasico.
• El software no se estropea.
• La mayoria de software se construye a medida, en vez de ensamblar componentes existentes. +

Indice de Fallas

Indice de Fallas

Indice de Fallas
Cambio

“Estropeado”

Real

Continua al mismo
nivel hasta estar
obsoleto.

Ideal

Tiempo
Fig- Curva de fallas del Hardware

1.6

Tiempo
Fig- Curva ideal de fallas del software.

Tiempo
Fig- Curva real de fallas del software.

CONCEPTOS DE CALIDAD

Algunas características de calidad fundamentales en todo producto de programación son : utilidad, claridad,
confiabilidad, eficiencia y economía.
Utilidad.

Que satisfaga las necesidades del usuario, ya que con frecuencia no desempeñana las funciones esperadas
debido principalmente a una pobre comunicacion con el cliente.

Confiabilidad.

Capacidad de un programa para desempeñar una función requerida bajo ciertas condiciones durante
un tiempo especifico. El grado de confiabilidad deseado en un producto depende del costo de las fallas.

Claridad.

Los productos de software deben ser escritos con claridad y ser fáciles de entender tanto internamente como
externamente, ya que las pruebas y actividades de mantenimiento consumen gran cantidad del presupuesto
del proyecto.

Económico.

El producto debe ser costeable en su desarrollo, mantenimiento y uso. Un software debe operar normalmente
usando menos tiempo o recursos humanos o materiales de los que se requerían antes de tenerlo.
Ingenieria de Software I

_____________________________________________________________________________________________________

1.7

MITOS DEL SOFTWARE
Mitos del Cliente:

1.

Mito.Realidad.-

“Una declaración superficial de los objetivos es suficiente para empezar a escribir los programas”.
La mala definición inicial es la principal causa de baja calidad.
Se requiere un conocimiento formal y detallado de los hechos y procesos y amplia comunicacion
con el cliente.

2.

Mito.Realidad.-

“Los cambios en el software son faciles y sencillos”.
Es verdad que los requisitos del software cambien, pero el impacto del cambio varía según el
momento en que se introduzca.

Costo del
cambio
$
60 100x

1x
Definición

1.5 - 6x
Desarrollo

Mantenimiento

Mitos de los Desarrolladores.
1.

Mito.Realidad.-

“Terminando de escribir el programa y haciendo que funcione, nuestro trabajo habrá terminado”.
Entre el 50 y 70% del esfuerzo total dedicado a un programa se realiza después de entregarlo al
cliente por primera vez.

2.

Mito.Realidad.-

“Lo único que se entrega al terminar el proyecto es el programa funcionando”.
El software funcionando es solo una parte de una CONFIGURACION DE SOFTWARE.
La documentación es la base de un buen desarrollo y guiás para las tareas de mantenimiento.
Ingenieria de Software I

_____________________________________________________________________________________________________
Estructuras de Datos

Sistema
Operativo
Definicion
del Sistema

Plan

Listados

Diseño

Especificacion
de Requisitos

Especificacion de la Prueba

Fig- Configuracion de Software

1.8

DISTRIBUCION DEL ESFUERZO EN UN PROYECTO DE
PROGRAMACION.

Se entiende por mantenimiento a todas las actividades posteriores a la liberación inicial del producto.
El mantenimiento de los paquetes de software contempla 3 actividades: mejoramiento de las capacidades del
producto, adaptacion del producto a nuevos ambientes de computo y la depuración de errores.
Esfuerzo

16%

8%

Analisis y CodificaDiseño
cion

16%
Pruebas

12%

36%

12%

Adaptacion

Mejoras

Arreglos

Mantenimiento

Fig- Distribucion del Esfuerzo durante el ciclo de vida de un proyecto de programacion.

• El mantenimiento gasta mas recursos que las actividades de desarrollo.
Ingenieria de Software I

_____________________________________________________________________________________________________
• Gran porcentaje del esfuerzo total se dedica a mejorar el producto.
• Asignar poco tiempo a las pruebas piloto y de aceptacion es una de las razones de sobrepasar el costo y tiempo de
entrega de un producto.

1.9

ADMINISTRACION DE PROYECTOS DE SOFTWARE

Las actividades técnicas y gerenciales son igualmente importantes para el éxito de un proyecto de programación. Las
actividades de la administración de un proyecto comprenden los métodos para organizar y seguir el curso del proyecto;
estimación de costos, políticas de asignación de recursos, control de presupuesto, determinación de avances, ajustes al
calendario de trabajo, procedimientos de control de calidad, comunicación con el cliente, etc.
Algunos problemas importantes identificados en la administración de software son:
1.
2.
3.
4.
5.

Planeación de proyectos de software pobres.
Procedimientos de selección de gerentes de proyecto pobres.
La medición de proyectos es pobre.
Falta de procedimientos para vigilar el avance del proyecto.
Falta de standares para medir la calidad del desempeño y cantidad de producción esperada.

Algunos métodos sugeridos para solucionar estos problemas son:
1.
2.
3.
4.
5.

Entrenar y educar a la dirección, jefes de proyecto y constructores.
Obligar al uso de standares, procedimientos y documentación.
Definir objetivos de la calidad deseada.
Desarrollar estimaciones de calendario y costos de forma exacta y verdadera.
Seleccionar jefes de proyecto basados en su capacidad para administrar proyectos mas que en su habilidad tecnica.

1.10 PARADIGMAS DE LA INGENIERIA DE SOFTWARE
Ingenieria de Software I

_____________________________________________________________________________________________________
La ingeniería de software surge de la ingeniería de sistemas y de hardware. Abarca un conjunto de tres elementos que
facilitan el control sobre el proceso de desarrollo de software y suministran las bases para construir software de calidad de una
forma productiva:
•
•
•

Métodos
Herramientas
Procedimientos

Métodos que indican cómo construir el software técnicamente e incluyen un amplio espectro de métodos para la
planificación, la estimación, el análisis, el diseño, codificación, prueba y mantenimiento.
Herramientas automáticas y semiautomáticas que apoyan a la aplicación de los métodos. Cuando se integran las
herramientas de forma que la información creada por una herramienta puede ser usada por otra, se establece un sistema para el
soporte del desarrollo de software, llamado Ingeniería de Software Asistida por Computadora ( CASE ).
Procedimientos que definen la secuencia en la que se aplican los métodos, las entregas, los controles de calidad y
guías para evaluación del progreso.
La Ingeniería de Software está compuesta por una serie de pasos que abarcan los métodos, herramientas y
procedimientos mencionados, a los que se denominan Paradigmas de la Ingeniería de Software.

Ciclo de vida clásico
Este paradigma exige un enfoque secuencial del desarrollo de software. Abarca las siguientes actividades:
Ingeniería y Análisis del Sistema.- El Software es siempre parte de un sistema mayor, por tanto se comienza
estableciendo las entidades, roles, funciones, etc de los que intevienen en el sistema, se identifican los requisitos del sistema y
luego se asigna un sub conjunto de estos requisitos al software.
Análisis de Requisitos del Software.- Proceso de recopilación de los requisitos especificamente del software. El
analista debe comprender el ámbito de la información, la función, el rendimiento y las interfaces del software.
Diseño.- Traduce los requisitos en una representación de software que pueda ser codificada.
Codificación.- Traducción del diseño en código fuente escrito en un lenguaje de programación.
Prueba.- Verificación de que las funciones del software producen los resultados que realmente se requieren.
Mantenimiento.- El mantenimiento aplica cada uno de los pasos precedentes para implementar los cambios que con
el tiempo indudablemente sufrirá el software.

Ingeniería
del Sistema
Análisis
Diseño
Codificación
Ingenieria de Software I

_____________________________________________________________________________________________________

Este paradigma es el más antiguo y más ampliamente usado, sin embargo se ha cuestionado su aplicabilidad por lo
siguiente:
•
•
•

Los proyectos reales rara vez siguen el flujo secuencial propuesto.
Normalmente es difícil para el cliente establecer claramente todos los requisitos y el paradigma lo exige.
El cliente debe ser paciente ya que solo hasta las etapas finales de desarrollo estará disponible una versión operativa
del software.

Construcción de Prototipos
Normalmente el cliente define los objetivos generales del software pero no identifica detallamente todos los
requisitos. En otros casos el desarrollador puede no estar seguro de entender al cliente, de cómo podrá ser el software que
requiere, de la eficiencia que espera, etc. En estas situaciones puede ser mejor el método de construcción de un prototipo.
El prototipo puede ser elaborado en papel o programado para que implemente algunas funciones requeridas de
manera rudimentaria, sin todos los detalles y acabados del programa final.
Se empieza con la recolección de requisitos, se produce un diseño “rápido” que se enfoca sobre los aspectos visibles
al usuario ( pantallas, informes, etc ) Se construye el prototipo y se evalúa por parte del cliente y sus observaciones se usan
para refinar los requisitos del software a desarrollar. Se produce un proceso iterativo en el que el prototipo se “afina” para que
satisfaga las necesidades del cliente y al mismo tiempo facilita al desarrollador una mejor comprensión de lo que hay que
hacer.

Comienzo

Parada
Recolección de
requisitos

Producto de
ingeniería

Diseño
rápido
Ingenieria de Software I

_____________________________________________________________________________________________________

Idealmente el prototipo solo sirve como mecanismo para identificar los requisitos del software y también puede servir
como “primer sistema”. Sin embargo este paradigma enfrenta algunos problemas:
•

El cliente a veces ignora que el prototipo está hecho de “plastilina y alambres” y que no tiene la calidad de un
software terminado, cuando se le informa esto el cliente presiona para que cuanto antes el prototipo sea el producto
final.

•

El desarrollador, con el fin de hacer un prototipo rápido, utiliza un lenguaje o un sistema operativo inapropiados.

El modelo en espiral
Combina las características de los dos paradigmas anteriores y añade al mismo tiempo nuevos elementos.
El modelo define cuatro actividades representadas en cuatro cuadrantes.
1.
2.
3.
4.

Planificación.- determinación de objetivos, alternativas y restricciones.
Análisis de riesgo.- identificación y resolución de riesgos que pueden hacer que el proyecto fracase.
Ingeniería.- desarrollo del producto de “siguiente nivel”
Evaluación del cliente.- valoración de los resultados de ingeniería.

En el modelo, con cada iteración de la espiral se construye una versión sucesiva del software, cada vez más completas.

Se empieza con la recolección de requisitos, luego se identifican y analizan los riesgos; si este análisis indica
incertidumbre en los requisitos se puede crear un prototipo en el cuadrante de ingeniería. El cliente evalúa el trabajo de
ingeniería y sugiere modificaciones. En base esos comentarios se produce la siguiente fase de planificación y análisis de
riesgo. Si los riesgos son demasiado grandes se puede dar por terminado el proyecto. Cada vuelta de la espiral requiere de
trabajo de ingeniería que puede ser mediante el enfoque de ciclo de vida clásico o con la creación de prototipos.
Ingenieria de Software I

_____________________________________________________________________________________________________

El paradigma es más realista pero se enfrenta muchas veces a que se requiera gran habilidad para valorar los riesgos.
Si no se descubren los riesgos importantes indudablemente surgirán problemas.

Técnicas de Cuarta Generación ( T4G )
Abarca un amplio espectro de herramientas de software que facilitan el desarrollo del proyecto. Estas herramientas se
orientan hacia la posibilidad de especificar el software a un nivel próximo al lenguaje natural. Las herramientas incluyen
lenguajes no procedimentales, generadores de pantallas, informes, código automático, etc.
Se empieza con la recolección de requisitos. Para aplicaciones pequeñas se puede ir directamente al paso de
implementación usando un lenguaje de cuarta generación no procedimental ( L4G ). Sin embargo es necesario invertir algo de
esfuerzo en plantear una estrategia de diseño, ya que sin este tendríamos los mismos problemas de calidad y mantenimiento.
La implementación se hace con un lenguaje de cuarta generación L4G que permite especificar los resultados deseados
y obtener el código fuente que produce tales resultados.
Se debe dirigir una prueba completa similar a la requerida en los paradigmas anteriores.

Recolección de
Requisitos
Estrategia de
Diseño
Implementacio
en L4G
Ingenieria de Software I

_____________________________________________________________________________________________________

Las controversias sobre este paradigma:
• Los defensores aducen una reducción significativa en el tiempo de desarrollo.
• Los detractores aducen que las herramientas producen código ineficiente.
Ambos tienen una parte de razón. Sin embargo las herramientas de cuarta generación han evolucionado a
herramientas CASE sofisticadas que automatizan gran parte de las actividades de ingeniería y que se han vuelto indispensables
para los desarrolladores de software.

Combinación de Paradigmas
Ningún paradigma es infalible, en muchos casos los paradigmas deben combinarse para aprovechar las ventajas de
cada uno en un único proyecto.
A continuación se muestra cómo pueden combinarse los paradigmas mencionados en un proyecto de software.

Recolección preliminar de requisitos

Análisis de
requisitos

Prototipo

T4G

Modelo en
espiral
Ingenieria de Software I

_____________________________________________________________________________________________________

*** Considere que la naturaleza del proyecto dicta cuál paradigma elegir. ***

-oOo-

Más contenido relacionado

La actualidad más candente

Trabajo diapositiva Software por Jhonatan Ruiz
Trabajo diapositiva  Software por Jhonatan RuizTrabajo diapositiva  Software por Jhonatan Ruiz
Trabajo diapositiva Software por Jhonatan Ruizjhonatanalex
 
Trabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josueTrabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josueJosue Zelaya
 
fundamentos teoricos ingenieria de softwaare
fundamentos teoricos ingenieria de softwaarefundamentos teoricos ingenieria de softwaare
fundamentos teoricos ingenieria de softwaareLuz
 
Sesion 1. entendiendo las necesidades (2);diapositiva
Sesion 1. entendiendo las necesidades (2);diapositivaSesion 1. entendiendo las necesidades (2);diapositiva
Sesion 1. entendiendo las necesidades (2);diapositivaYesi Kathe
 
Unidad 1 requerimientos del software
Unidad 1 requerimientos del softwareUnidad 1 requerimientos del software
Unidad 1 requerimientos del softwareoemavarez
 
SQA versión 2: la calidad en el proceso y el producto
SQA versión 2: la calidad en el proceso y el productoSQA versión 2: la calidad en el proceso y el producto
SQA versión 2: la calidad en el proceso y el productoLuis Eduardo Pelaez Valencia
 
Introducción a la Ingeniria del Software
Introducción a la Ingeniria del SoftwareIntroducción a la Ingeniria del Software
Introducción a la Ingeniria del SoftwareEdit Lopez Veloz
 
Modelo de la organizacion yan martinez
Modelo de la organizacion yan martinezModelo de la organizacion yan martinez
Modelo de la organizacion yan martineznay-censey
 
Curso de Ingeniería de Software - Capítulo 1
Curso de Ingeniería de Software - Capítulo 1Curso de Ingeniería de Software - Capítulo 1
Curso de Ingeniería de Software - Capítulo 1Eddie Malca
 

La actualidad más candente (15)

Trabajo diapositiva Software por Jhonatan Ruiz
Trabajo diapositiva  Software por Jhonatan RuizTrabajo diapositiva  Software por Jhonatan Ruiz
Trabajo diapositiva Software por Jhonatan Ruiz
 
Trabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josueTrabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josue
 
Modulo 3
Modulo 3Modulo 3
Modulo 3
 
fundamentos teoricos ingenieria de softwaare
fundamentos teoricos ingenieria de softwaarefundamentos teoricos ingenieria de softwaare
fundamentos teoricos ingenieria de softwaare
 
Jose luis salazar
Jose luis salazarJose luis salazar
Jose luis salazar
 
Enfoque transformacional
Enfoque transformacionalEnfoque transformacional
Enfoque transformacional
 
Seminario de t...
Seminario de t...Seminario de t...
Seminario de t...
 
Sesion 1. entendiendo las necesidades (2);diapositiva
Sesion 1. entendiendo las necesidades (2);diapositivaSesion 1. entendiendo las necesidades (2);diapositiva
Sesion 1. entendiendo las necesidades (2);diapositiva
 
Unidad 1 requerimientos del software
Unidad 1 requerimientos del softwareUnidad 1 requerimientos del software
Unidad 1 requerimientos del software
 
SQA versión 2: la calidad en el proceso y el producto
SQA versión 2: la calidad en el proceso y el productoSQA versión 2: la calidad en el proceso y el producto
SQA versión 2: la calidad en el proceso y el producto
 
Introducción a la Ingeniria del Software
Introducción a la Ingeniria del SoftwareIntroducción a la Ingeniria del Software
Introducción a la Ingeniria del Software
 
1. curso unal cap1
1. curso unal cap11. curso unal cap1
1. curso unal cap1
 
Modelo de la organizacion yan martinez
Modelo de la organizacion yan martinezModelo de la organizacion yan martinez
Modelo de la organizacion yan martinez
 
Curso de Ingeniería de Software - Capítulo 1
Curso de Ingeniería de Software - Capítulo 1Curso de Ingeniería de Software - Capítulo 1
Curso de Ingeniería de Software - Capítulo 1
 
Ensayo fsi --
Ensayo fsi --Ensayo fsi --
Ensayo fsi --
 

Similar a Introducción de Ingeniería de Software

Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
Ingenieria de software -analizis literario
Ingenieria de software -analizis literarioIngenieria de software -analizis literario
Ingenieria de software -analizis literariodiegos08
 
Ra semana 1 2
Ra semana 1 2Ra semana 1 2
Ra semana 1 2victdiazm
 
Ingeniería de Software
Ingeniería de Software Ingeniería de Software
Ingeniería de Software Luis Valeriano
 
Ingenieria del Software & Caracteristicas y Mitos del Software.
Ingenieria del Software & Caracteristicas y Mitos del Software.Ingenieria del Software & Caracteristicas y Mitos del Software.
Ingenieria del Software & Caracteristicas y Mitos del Software.claudyabra
 
Unidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareUnidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareSergio Sanchez
 
Iswi t01 - romero prado , gyno (2)
Iswi   t01 - romero prado , gyno (2)Iswi   t01 - romero prado , gyno (2)
Iswi t01 - romero prado , gyno (2)Gyno Romero Prado
 
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?Luis Fernández
 
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?Coesi Consultoria
 

Similar a Introducción de Ingeniería de Software (20)

Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Ingenieria de software -analizis literario
Ingenieria de software -analizis literarioIngenieria de software -analizis literario
Ingenieria de software -analizis literario
 
Ra semana 1 2
Ra semana 1 2Ra semana 1 2
Ra semana 1 2
 
Evolucion software - Ing SW
Evolucion software - Ing SWEvolucion software - Ing SW
Evolucion software - Ing SW
 
Ingeniería de Software
Ingeniería de Software Ingeniería de Software
Ingeniería de Software
 
Ingenieria del Software & Caracteristicas y Mitos del Software.
Ingenieria del Software & Caracteristicas y Mitos del Software.Ingenieria del Software & Caracteristicas y Mitos del Software.
Ingenieria del Software & Caracteristicas y Mitos del Software.
 
UNIDAD_I.ppt
UNIDAD_I.pptUNIDAD_I.ppt
UNIDAD_I.ppt
 
Unidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareUnidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De Software
 
Iswi t01 - ing sofware
Iswi   t01 - ing sofwareIswi   t01 - ing sofware
Iswi t01 - ing sofware
 
Iswi t01 - romero prado , gyno (2)
Iswi   t01 - romero prado , gyno (2)Iswi   t01 - romero prado , gyno (2)
Iswi t01 - romero prado , gyno (2)
 
Ensayo sobre la calidad de software
Ensayo sobre la calidad de softwareEnsayo sobre la calidad de software
Ensayo sobre la calidad de software
 
Ensayo sobre la calidad de software
Ensayo sobre la calidad de softwareEnsayo sobre la calidad de software
Ensayo sobre la calidad de software
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
 
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?Sesión 1: Introduccion. ¿Qué es ingeniería de software?
Sesión 1: Introduccion. ¿Qué es ingeniería de software?
 
1. introduccion
1. introduccion1. introduccion
1. introduccion
 
02 Mitos de la ingeniería de software
02 Mitos de la ingeniería de software02 Mitos de la ingeniería de software
02 Mitos de la ingeniería de software
 

Más de José Tomás Diarte Añazco

Introducción a la Arquitectura de Computadoras.
Introducción a la Arquitectura de Computadoras.Introducción a la Arquitectura de Computadoras.
Introducción a la Arquitectura de Computadoras.José Tomás Diarte Añazco
 

Más de José Tomás Diarte Añazco (20)

S2214750014000067 gr1.jpg
S2214750014000067 gr1.jpgS2214750014000067 gr1.jpg
S2214750014000067 gr1.jpg
 
Primer trabajo practico de dreamweaver cs3
Primer trabajo practico de dreamweaver cs3Primer trabajo practico de dreamweaver cs3
Primer trabajo practico de dreamweaver cs3
 
VARIABLE COMPLEJA
VARIABLE COMPLEJAVARIABLE COMPLEJA
VARIABLE COMPLEJA
 
Control Industrial
Control IndustrialControl Industrial
Control Industrial
 
Microcontroladores
MicrocontroladoresMicrocontroladores
Microcontroladores
 
Investigación Cientifica
Investigación CientificaInvestigación Cientifica
Investigación Cientifica
 
Introduccion a la Robótica
Introduccion a la RobóticaIntroduccion a la Robótica
Introduccion a la Robótica
 
Sistemas de ecuaciones Lineales
Sistemas de ecuaciones Lineales Sistemas de ecuaciones Lineales
Sistemas de ecuaciones Lineales
 
Algebra de Boole
Algebra de BooleAlgebra de Boole
Algebra de Boole
 
Introducción a la Gerencia Informática
Introducción a la Gerencia InformáticaIntroducción a la Gerencia Informática
Introducción a la Gerencia Informática
 
Introducción al Lenguaje de Programación
Introducción al Lenguaje de ProgramaciónIntroducción al Lenguaje de Programación
Introducción al Lenguaje de Programación
 
Auditoria de SISTEMAS
Auditoria de SISTEMASAuditoria de SISTEMAS
Auditoria de SISTEMAS
 
Auditoria de sistemas
Auditoria de sistemasAuditoria de sistemas
Auditoria de sistemas
 
Investigación de Operaciones
Investigación de OperacionesInvestigación de Operaciones
Investigación de Operaciones
 
Proyectos Informaticos
Proyectos InformaticosProyectos Informaticos
Proyectos Informaticos
 
Seguridad informatica
Seguridad informaticaSeguridad informatica
Seguridad informatica
 
Introducción a la Arquitectura de Computadoras.
Introducción a la Arquitectura de Computadoras.Introducción a la Arquitectura de Computadoras.
Introducción a la Arquitectura de Computadoras.
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
Inteligencia Artificail
Inteligencia ArtificailInteligencia Artificail
Inteligencia Artificail
 
LA CIENCIA COGNITIVA Y EL ESTUDIO DE LA MENTE
LA CIENCIA COGNITIVA Y EL ESTUDIO DE LA MENTELA CIENCIA COGNITIVA Y EL ESTUDIO DE LA MENTE
LA CIENCIA COGNITIVA Y EL ESTUDIO DE LA MENTE
 

Último

LA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIA
LA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIALA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIA
LA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIASandra Mariela Ballón Aguedo
 
proyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
proyecto semana de los Jardines, actividades a realizar para resaltar esta fechaproyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
proyecto semana de los Jardines, actividades a realizar para resaltar esta fechanitoagurto67
 
a propósito del estado su relevancia y definiciones
a propósito del estado su relevancia y definicionesa propósito del estado su relevancia y definiciones
a propósito del estado su relevancia y definicionessubfabian
 
a propósito de la globalización y sus efectos
a propósito de la globalización y sus efectosa propósito de la globalización y sus efectos
a propósito de la globalización y sus efectossubfabian
 
Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )portafoliodigitalyos
 
Como construir los vínculos afectivos (Grupal)
Como construir los vínculos afectivos (Grupal)Como construir los vínculos afectivos (Grupal)
Como construir los vínculos afectivos (Grupal)portafoliodigitalyos
 
TERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docx
TERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docxTERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docx
TERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docxlitaroxselyperezmont
 
📝 Semana 09 - Tema 01: Tarea - Redacción del texto argumentativo
📝 Semana 09 - Tema 01: Tarea - Redacción del texto argumentativo📝 Semana 09 - Tema 01: Tarea - Redacción del texto argumentativo
📝 Semana 09 - Tema 01: Tarea - Redacción del texto argumentativoharolbustamante1
 
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)JonathanCovena1
 
ENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docx
ENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docxENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docx
ENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docxmatepura
 
BIENESTAR TOTAL - LA EXPERIENCIA DEL CLIENTE CON ATR
BIENESTAR TOTAL - LA EXPERIENCIA DEL CLIENTE CON ATRBIENESTAR TOTAL - LA EXPERIENCIA DEL CLIENTE CON ATR
BIENESTAR TOTAL - LA EXPERIENCIA DEL CLIENTE CON ATRDanielGrajeda7
 
IMPLICACIONES BIOÉTICAS ANTE EL TRANSHUMANISMO A PARTIR DEL PENSAMIENTO FILOS...
IMPLICACIONES BIOÉTICAS ANTE EL TRANSHUMANISMO A PARTIR DEL PENSAMIENTO FILOS...IMPLICACIONES BIOÉTICAS ANTE EL TRANSHUMANISMO A PARTIR DEL PENSAMIENTO FILOS...
IMPLICACIONES BIOÉTICAS ANTE EL TRANSHUMANISMO A PARTIR DEL PENSAMIENTO FILOS...Andrés Canale
 
Tema 8 Estructura y composición de la Tierra 2024
Tema 8 Estructura y composición de la Tierra 2024Tema 8 Estructura y composición de la Tierra 2024
Tema 8 Estructura y composición de la Tierra 2024IES Vicent Andres Estelles
 
Evaluación de los Factores Internos de la Organización
Evaluación de los Factores Internos de la OrganizaciónEvaluación de los Factores Internos de la Organización
Evaluación de los Factores Internos de la OrganizaciónJonathanCovena1
 
PROBLEMAS DE GENÉTICA CON ÁRBOLES GENEALÓGICOS.pdf
PROBLEMAS DE GENÉTICA  CON ÁRBOLES GENEALÓGICOS.pdfPROBLEMAS DE GENÉTICA  CON ÁRBOLES GENEALÓGICOS.pdf
PROBLEMAS DE GENÉTICA CON ÁRBOLES GENEALÓGICOS.pdfmihayedo
 
Seguridad y virus informáticos 12°B 2024
Seguridad y virus informáticos 12°B 2024Seguridad y virus informáticos 12°B 2024
Seguridad y virus informáticos 12°B 2024sergeycrastz06
 
5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdf
5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdf5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdf
5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdfFlorHernandezNuez
 
11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx
11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx
11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptxFESARAUGUSTOFANDIORI
 
METODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdf
METODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdfMETODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdf
METODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdfNilssaRojas1
 

Último (20)

LA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIA
LA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIALA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIA
LA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIA
 
proyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
proyecto semana de los Jardines, actividades a realizar para resaltar esta fechaproyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
proyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
 
a propósito del estado su relevancia y definiciones
a propósito del estado su relevancia y definicionesa propósito del estado su relevancia y definiciones
a propósito del estado su relevancia y definiciones
 
a propósito de la globalización y sus efectos
a propósito de la globalización y sus efectosa propósito de la globalización y sus efectos
a propósito de la globalización y sus efectos
 
Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )
 
Como construir los vínculos afectivos (Grupal)
Como construir los vínculos afectivos (Grupal)Como construir los vínculos afectivos (Grupal)
Como construir los vínculos afectivos (Grupal)
 
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOSTRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
 
TERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docx
TERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docxTERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docx
TERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docx
 
📝 Semana 09 - Tema 01: Tarea - Redacción del texto argumentativo
📝 Semana 09 - Tema 01: Tarea - Redacción del texto argumentativo📝 Semana 09 - Tema 01: Tarea - Redacción del texto argumentativo
📝 Semana 09 - Tema 01: Tarea - Redacción del texto argumentativo
 
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
 
ENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docx
ENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docxENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docx
ENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docx
 
BIENESTAR TOTAL - LA EXPERIENCIA DEL CLIENTE CON ATR
BIENESTAR TOTAL - LA EXPERIENCIA DEL CLIENTE CON ATRBIENESTAR TOTAL - LA EXPERIENCIA DEL CLIENTE CON ATR
BIENESTAR TOTAL - LA EXPERIENCIA DEL CLIENTE CON ATR
 
IMPLICACIONES BIOÉTICAS ANTE EL TRANSHUMANISMO A PARTIR DEL PENSAMIENTO FILOS...
IMPLICACIONES BIOÉTICAS ANTE EL TRANSHUMANISMO A PARTIR DEL PENSAMIENTO FILOS...IMPLICACIONES BIOÉTICAS ANTE EL TRANSHUMANISMO A PARTIR DEL PENSAMIENTO FILOS...
IMPLICACIONES BIOÉTICAS ANTE EL TRANSHUMANISMO A PARTIR DEL PENSAMIENTO FILOS...
 
Tema 8 Estructura y composición de la Tierra 2024
Tema 8 Estructura y composición de la Tierra 2024Tema 8 Estructura y composición de la Tierra 2024
Tema 8 Estructura y composición de la Tierra 2024
 
Evaluación de los Factores Internos de la Organización
Evaluación de los Factores Internos de la OrganizaciónEvaluación de los Factores Internos de la Organización
Evaluación de los Factores Internos de la Organización
 
PROBLEMAS DE GENÉTICA CON ÁRBOLES GENEALÓGICOS.pdf
PROBLEMAS DE GENÉTICA  CON ÁRBOLES GENEALÓGICOS.pdfPROBLEMAS DE GENÉTICA  CON ÁRBOLES GENEALÓGICOS.pdf
PROBLEMAS DE GENÉTICA CON ÁRBOLES GENEALÓGICOS.pdf
 
Seguridad y virus informáticos 12°B 2024
Seguridad y virus informáticos 12°B 2024Seguridad y virus informáticos 12°B 2024
Seguridad y virus informáticos 12°B 2024
 
5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdf
5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdf5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdf
5º PARTE 3 SOY LECTOR -MD EDUCATIVO_240418_155445 (1).pdf
 
11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx
11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx
11.NEOLIBERALISMO: que es, ventajas, desventajas, consecuenciaspptx
 
METODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdf
METODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdfMETODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdf
METODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdf
 

Introducción de Ingeniería de Software

  • 1. Ingenieria de Software I _____________________________________________________________________________________________________ UNIDAD I INTRODUCCION A LA INGENIERIA DE SOFTWARE Contenido: 1.1 Definiciones 1.2 Evolucion del Software 1.3 Importancia del Software 1.4 Problemas del Software 1.5 Caracteristicas del Software 1.6 Conceptos de Calidad 1.7 Mitos del Software 1.8 Distribucion del Esfuerzo en un Proyecto de Programación 1.9 Administración de Proyectos de Software 1.10 Paradigmas de la Ingeniería de Software
  • 2. Ingenieria de Software I _____________________________________________________________________________________________________ 1.1. DEFINICIONES Ingeniería.- Profesión que posee conocimientos cientificos, actividades y criterios ( ingenio ) para crear dispositivos, metodos 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 información, utilerias y recursos necesarios para su diseño, instalación, operación, mantenimiento y refinamiento. Ingenieria de Software.- Disciplina que establece el uso de principios de ingeniería robustos, orientados a obtener software económico, 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 ingenieria de software difiere de la programación tradicional en que se utilizan tecnicas de ingeniería para especificar, diseñar, codificar, validar y mantener los productos dentro del tiempo y presupuesto establecidos para el proyecto, ademas esta ingeniería se preocupa por aspectos administrativos que quedan fuera del dominio normal de la programación. El término “programador” se emplea para denominar a la persona preocupada y abocada a las tareas y detalles de la codificación, empacado y modificación de los algoritmos y estructuras de datos codificados en algun lenguaje de programación particular. Los ingenieros de software están, ademas, capacitados para hacer frente a aspectos de análisis, diseño, verificación, y prueba de programas, la documentación, el mantenimiento y la administración del proyecto.
  • 3. Ingenieria de Software I _____________________________________________________________________________________________________ 1.2 EVOLUCION DEL SOFTWARE I era º Por lotes. º Distribucion limitada. º Software a medida. 1950 II era º Sist. multiusuarios. º Tiempo Real. º Bases de Datos. º Software como producto. III era º Sist. Distribuidos. º Incorporacion de Inteligencia. º Hardware de bajo costo. º Impacto en el consumo. IV era º Potentes sistemas. º Sistemas expertos. º Redes neuronales. 1960 1980 1990 “Crisis del Software” 2000 1970 - - Muchos cambios en hardware. - Poca evolución del software. - Desarrollo de software sin planeacion, y sin documentación. Complejidad del software + - Tecnicas Interactivas. - Aparecen las PC’s. - Control en Tiempo Real. - Cias. de Software venden - Mejora de los dispositivos miles de dolares. de almacenamiento. - Hardware standar, el software - Primeras casas de software. marca la diferencia. - Problemas por el mantenimiento. - Software complejo. La “Crisis del Software” se le conoce a una etapa en la que todos los programas desarrollados se corregían cuando había fallos o modificados a necesidades cambiantes, requerían de altos esfuerzos por mantenerlos, con mayor costo a medida que la complejidad del software crecía. En las pasadas décadas los ejecutivos y desarrolladores se hacían las siguientes preguntas: ¿ Por qué lleva tanto tiempo terminar los programas ? ¿ Por qué es tan elevado el costo ? ¿ Por qué no podemos detectar los errores antes de entregar el software a los clientes ? ¿ Por qué resulta tan dificil constatar el progreso del desarrollo del software ? Estas y otras preguntas manifiestan el caracter del software y la forma en que se desarrolla, estos problemas hacen necesaria la adopción de técnicas de Ingeniería de Software.
  • 4. Ingenieria de Software I _____________________________________________________________________________________________________ 1.3 IMPORTANCIA DEL SOFTWARE. El software es ahora la clave del exito de muchos de los sistemas basados en computadora. El software marca la diferencia. Lo que diferencia una compañia de otra es la suficiencia, exactitud y oportunidad de la información dada por el software. Ejemplo de la importacia del software: Dos consultorios dentales, ambos cuentan con los ultimos modelos de computadora personal y destinadas a apoyar las tareas y actividades relacionadas con el consultorio. Pero uno de ellos cuenta con un dispositivo especial conectado a la computadora y un SOFTWARE para obtener radiografías de piezas dentales por computadora, en un par de minutos la muestra radiografica esta en pantalla y el medico puede obtener diferentes vistas de la placa usando el software. Ademas puede establecer una conexión a traves de internet o via modem para enviar el archivo de la radiografía a otro colega experto con el fin de consultar y apoyar el diagnostico, todo esto en la misma cita. En la forma tradicional la placa radiografica esta lista en un par de dias. El desarrollo de software se ha convertido en una industria con crecimiento vertical en los ultimos años, hoy por hoy uno de los hombres mas ricos del mundo es el dueño de una casa de software, Microsoft. Hace un par de decadas se sostenia la teoria de que los paises que poseian los mejores recursos naturales estaban destinados a ser los mas ricos y poderosos del mundo, en México por ejemplo, se manejo la idea de que el petróleo era la puerta de entrada grande al mundo desarrollado. Indudablemente los recursos naturales tienen un papel importante en la economia de los paises, sin embargo poco a poco se fue acuñando una nueva ideología que se sintetiza en lo siguiente: “El que posee la información y el conocimiento y hace mejor uso de él, es el que tiene el poder”. 1.4 PROBLEMAS DEL SOFTWARE. • La planificación y estimación de costos frecuentemente son imprecisas. • Falta de “productividad” en la comunidad de software” • La calidad del software es a veces ni aceptable. Estos problemas al final crean insatisfaccion y falta de confianza de los clientes. Los problemas anteriores son solo manifestacion de otras dificultades: • • • • No tenemos tiempo de recoger datos sobre el proceso de desarrollo del software. Los proyectos de desarrollo de software se llevan a cabo con solo una vaga indicacion de los requisitos del cliente. La calidad del software es normalmente cuestionable. El mantenimiento de software es muy costoso y no se le ha considerado un aspecto importante. Los problemas anteriores son corregibles, la clave es: Dar un enfoque de ingeniería al desarrollo de software. 1.5 CARACTERISTICAS DEL SOFTWARE.
  • 5. Ingenieria de Software I _____________________________________________________________________________________________________ El software es un elemento del sistema que es lógico. Por tanto, el software tiene características considerablemente distintas al hardware: • El software se desarrolla, no se fabrica en un sentido clasico. • El software no se estropea. • La mayoria de software se construye a medida, en vez de ensamblar componentes existentes. + Indice de Fallas Indice de Fallas Indice de Fallas Cambio “Estropeado” Real Continua al mismo nivel hasta estar obsoleto. Ideal Tiempo Fig- Curva de fallas del Hardware 1.6 Tiempo Fig- Curva ideal de fallas del software. Tiempo Fig- Curva real de fallas del software. CONCEPTOS DE CALIDAD Algunas características de calidad fundamentales en todo producto de programación son : utilidad, claridad, confiabilidad, eficiencia y economía. Utilidad. Que satisfaga las necesidades del usuario, ya que con frecuencia no desempeñana las funciones esperadas debido principalmente a una pobre comunicacion con el cliente. Confiabilidad. Capacidad de un programa para desempeñar una función requerida bajo ciertas condiciones durante un tiempo especifico. El grado de confiabilidad deseado en un producto depende del costo de las fallas. Claridad. Los productos de software deben ser escritos con claridad y ser fáciles de entender tanto internamente como externamente, ya que las pruebas y actividades de mantenimiento consumen gran cantidad del presupuesto del proyecto. Económico. El producto debe ser costeable en su desarrollo, mantenimiento y uso. Un software debe operar normalmente usando menos tiempo o recursos humanos o materiales de los que se requerían antes de tenerlo.
  • 6. Ingenieria de Software I _____________________________________________________________________________________________________ 1.7 MITOS DEL SOFTWARE Mitos del Cliente: 1. Mito.Realidad.- “Una declaración superficial de los objetivos es suficiente para empezar a escribir los programas”. La mala definición inicial es la principal causa de baja calidad. Se requiere un conocimiento formal y detallado de los hechos y procesos y amplia comunicacion con el cliente. 2. Mito.Realidad.- “Los cambios en el software son faciles y sencillos”. Es verdad que los requisitos del software cambien, pero el impacto del cambio varía según el momento en que se introduzca. Costo del cambio $ 60 100x 1x Definición 1.5 - 6x Desarrollo Mantenimiento Mitos de los Desarrolladores. 1. Mito.Realidad.- “Terminando de escribir el programa y haciendo que funcione, nuestro trabajo habrá terminado”. Entre el 50 y 70% del esfuerzo total dedicado a un programa se realiza después de entregarlo al cliente por primera vez. 2. Mito.Realidad.- “Lo único que se entrega al terminar el proyecto es el programa funcionando”. El software funcionando es solo una parte de una CONFIGURACION DE SOFTWARE. La documentación es la base de un buen desarrollo y guiás para las tareas de mantenimiento.
  • 7. Ingenieria de Software I _____________________________________________________________________________________________________ Estructuras de Datos Sistema Operativo Definicion del Sistema Plan Listados Diseño Especificacion de Requisitos Especificacion de la Prueba Fig- Configuracion de Software 1.8 DISTRIBUCION DEL ESFUERZO EN UN PROYECTO DE PROGRAMACION. Se entiende por mantenimiento a todas las actividades posteriores a la liberación inicial del producto. El mantenimiento de los paquetes de software contempla 3 actividades: mejoramiento de las capacidades del producto, adaptacion del producto a nuevos ambientes de computo y la depuración de errores. Esfuerzo 16% 8% Analisis y CodificaDiseño cion 16% Pruebas 12% 36% 12% Adaptacion Mejoras Arreglos Mantenimiento Fig- Distribucion del Esfuerzo durante el ciclo de vida de un proyecto de programacion. • El mantenimiento gasta mas recursos que las actividades de desarrollo.
  • 8. Ingenieria de Software I _____________________________________________________________________________________________________ • Gran porcentaje del esfuerzo total se dedica a mejorar el producto. • Asignar poco tiempo a las pruebas piloto y de aceptacion es una de las razones de sobrepasar el costo y tiempo de entrega de un producto. 1.9 ADMINISTRACION DE PROYECTOS DE SOFTWARE Las actividades técnicas y gerenciales son igualmente importantes para el éxito de un proyecto de programación. Las actividades de la administración de un proyecto comprenden los métodos para organizar y seguir el curso del proyecto; estimación de costos, políticas de asignación de recursos, control de presupuesto, determinación de avances, ajustes al calendario de trabajo, procedimientos de control de calidad, comunicación con el cliente, etc. Algunos problemas importantes identificados en la administración de software son: 1. 2. 3. 4. 5. Planeación de proyectos de software pobres. Procedimientos de selección de gerentes de proyecto pobres. La medición de proyectos es pobre. Falta de procedimientos para vigilar el avance del proyecto. Falta de standares para medir la calidad del desempeño y cantidad de producción esperada. Algunos métodos sugeridos para solucionar estos problemas son: 1. 2. 3. 4. 5. Entrenar y educar a la dirección, jefes de proyecto y constructores. Obligar al uso de standares, procedimientos y documentación. Definir objetivos de la calidad deseada. Desarrollar estimaciones de calendario y costos de forma exacta y verdadera. Seleccionar jefes de proyecto basados en su capacidad para administrar proyectos mas que en su habilidad tecnica. 1.10 PARADIGMAS DE LA INGENIERIA DE SOFTWARE
  • 9. Ingenieria de Software I _____________________________________________________________________________________________________ La ingeniería de software surge de la ingeniería de sistemas y de hardware. Abarca un conjunto de tres elementos que facilitan el control sobre el proceso de desarrollo de software y suministran las bases para construir software de calidad de una forma productiva: • • • Métodos Herramientas Procedimientos Métodos que indican cómo construir el software técnicamente e incluyen un amplio espectro de métodos para la planificación, la estimación, el análisis, el diseño, codificación, prueba y mantenimiento. Herramientas automáticas y semiautomáticas que apoyan a la aplicación de los métodos. Cuando se integran las herramientas de forma que la información creada por una herramienta puede ser usada por otra, se establece un sistema para el soporte del desarrollo de software, llamado Ingeniería de Software Asistida por Computadora ( CASE ). Procedimientos que definen la secuencia en la que se aplican los métodos, las entregas, los controles de calidad y guías para evaluación del progreso. La Ingeniería de Software está compuesta por una serie de pasos que abarcan los métodos, herramientas y procedimientos mencionados, a los que se denominan Paradigmas de la Ingeniería de Software. Ciclo de vida clásico Este paradigma exige un enfoque secuencial del desarrollo de software. Abarca las siguientes actividades: Ingeniería y Análisis del Sistema.- El Software es siempre parte de un sistema mayor, por tanto se comienza estableciendo las entidades, roles, funciones, etc de los que intevienen en el sistema, se identifican los requisitos del sistema y luego se asigna un sub conjunto de estos requisitos al software. Análisis de Requisitos del Software.- Proceso de recopilación de los requisitos especificamente del software. El analista debe comprender el ámbito de la información, la función, el rendimiento y las interfaces del software. Diseño.- Traduce los requisitos en una representación de software que pueda ser codificada. Codificación.- Traducción del diseño en código fuente escrito en un lenguaje de programación. Prueba.- Verificación de que las funciones del software producen los resultados que realmente se requieren. Mantenimiento.- El mantenimiento aplica cada uno de los pasos precedentes para implementar los cambios que con el tiempo indudablemente sufrirá el software. Ingeniería del Sistema Análisis Diseño Codificación
  • 10. Ingenieria de Software I _____________________________________________________________________________________________________ Este paradigma es el más antiguo y más ampliamente usado, sin embargo se ha cuestionado su aplicabilidad por lo siguiente: • • • Los proyectos reales rara vez siguen el flujo secuencial propuesto. Normalmente es difícil para el cliente establecer claramente todos los requisitos y el paradigma lo exige. El cliente debe ser paciente ya que solo hasta las etapas finales de desarrollo estará disponible una versión operativa del software. Construcción de Prototipos Normalmente el cliente define los objetivos generales del software pero no identifica detallamente todos los requisitos. En otros casos el desarrollador puede no estar seguro de entender al cliente, de cómo podrá ser el software que requiere, de la eficiencia que espera, etc. En estas situaciones puede ser mejor el método de construcción de un prototipo. El prototipo puede ser elaborado en papel o programado para que implemente algunas funciones requeridas de manera rudimentaria, sin todos los detalles y acabados del programa final. Se empieza con la recolección de requisitos, se produce un diseño “rápido” que se enfoca sobre los aspectos visibles al usuario ( pantallas, informes, etc ) Se construye el prototipo y se evalúa por parte del cliente y sus observaciones se usan para refinar los requisitos del software a desarrollar. Se produce un proceso iterativo en el que el prototipo se “afina” para que satisfaga las necesidades del cliente y al mismo tiempo facilita al desarrollador una mejor comprensión de lo que hay que hacer. Comienzo Parada Recolección de requisitos Producto de ingeniería Diseño rápido
  • 11. Ingenieria de Software I _____________________________________________________________________________________________________ Idealmente el prototipo solo sirve como mecanismo para identificar los requisitos del software y también puede servir como “primer sistema”. Sin embargo este paradigma enfrenta algunos problemas: • El cliente a veces ignora que el prototipo está hecho de “plastilina y alambres” y que no tiene la calidad de un software terminado, cuando se le informa esto el cliente presiona para que cuanto antes el prototipo sea el producto final. • El desarrollador, con el fin de hacer un prototipo rápido, utiliza un lenguaje o un sistema operativo inapropiados. El modelo en espiral Combina las características de los dos paradigmas anteriores y añade al mismo tiempo nuevos elementos. El modelo define cuatro actividades representadas en cuatro cuadrantes. 1. 2. 3. 4. Planificación.- determinación de objetivos, alternativas y restricciones. Análisis de riesgo.- identificación y resolución de riesgos que pueden hacer que el proyecto fracase. Ingeniería.- desarrollo del producto de “siguiente nivel” Evaluación del cliente.- valoración de los resultados de ingeniería. En el modelo, con cada iteración de la espiral se construye una versión sucesiva del software, cada vez más completas. Se empieza con la recolección de requisitos, luego se identifican y analizan los riesgos; si este análisis indica incertidumbre en los requisitos se puede crear un prototipo en el cuadrante de ingeniería. El cliente evalúa el trabajo de ingeniería y sugiere modificaciones. En base esos comentarios se produce la siguiente fase de planificación y análisis de riesgo. Si los riesgos son demasiado grandes se puede dar por terminado el proyecto. Cada vuelta de la espiral requiere de trabajo de ingeniería que puede ser mediante el enfoque de ciclo de vida clásico o con la creación de prototipos.
  • 12. Ingenieria de Software I _____________________________________________________________________________________________________ El paradigma es más realista pero se enfrenta muchas veces a que se requiera gran habilidad para valorar los riesgos. Si no se descubren los riesgos importantes indudablemente surgirán problemas. Técnicas de Cuarta Generación ( T4G ) Abarca un amplio espectro de herramientas de software que facilitan el desarrollo del proyecto. Estas herramientas se orientan hacia la posibilidad de especificar el software a un nivel próximo al lenguaje natural. Las herramientas incluyen lenguajes no procedimentales, generadores de pantallas, informes, código automático, etc. Se empieza con la recolección de requisitos. Para aplicaciones pequeñas se puede ir directamente al paso de implementación usando un lenguaje de cuarta generación no procedimental ( L4G ). Sin embargo es necesario invertir algo de esfuerzo en plantear una estrategia de diseño, ya que sin este tendríamos los mismos problemas de calidad y mantenimiento. La implementación se hace con un lenguaje de cuarta generación L4G que permite especificar los resultados deseados y obtener el código fuente que produce tales resultados. Se debe dirigir una prueba completa similar a la requerida en los paradigmas anteriores. Recolección de Requisitos Estrategia de Diseño Implementacio en L4G
  • 13. Ingenieria de Software I _____________________________________________________________________________________________________ Las controversias sobre este paradigma: • Los defensores aducen una reducción significativa en el tiempo de desarrollo. • Los detractores aducen que las herramientas producen código ineficiente. Ambos tienen una parte de razón. Sin embargo las herramientas de cuarta generación han evolucionado a herramientas CASE sofisticadas que automatizan gran parte de las actividades de ingeniería y que se han vuelto indispensables para los desarrolladores de software. Combinación de Paradigmas Ningún paradigma es infalible, en muchos casos los paradigmas deben combinarse para aprovechar las ventajas de cada uno en un único proyecto. A continuación se muestra cómo pueden combinarse los paradigmas mencionados en un proyecto de software. Recolección preliminar de requisitos Análisis de requisitos Prototipo T4G Modelo en espiral
  • 14. Ingenieria de Software I _____________________________________________________________________________________________________ *** Considere que la naturaleza del proyecto dicta cuál paradigma elegir. *** -oOo-