You are on page 1of 27

1.

1 CONCEPTOS BSICOS
Software :

Segn la RAE, el software es un conjunto de programas,
instrucciones y reglas informticas que permiten ejecutar
distintas tareas en una computadora.
Desarrollado mediante distintos lenguajes de programacin,
que permiten controlar el comportamiento de una PC.

Conjunto de smbolos
Reglas sintcticas y semnticas

Caractersticas
El SW se desarrolla (no se fabrica en el sentido convencional).
Por lo que el costo del SW est en la ingeniera, no en la
produccin.
El SW no se estropea (si el SW falla, no puede ser cambiado por
uno igual, pero "nuevo").
Las fallas en el SW se detectan durante la prueba y puesta en
operacin y una vez solucionadas, permiten tener un perodo
estable, mismo que termina cuando se le da mantenimiento al
SW y se presentan los efectos laterales y/o secundarios o
cuando se hace evidente un error oculto hasta ese momento.
Generalmente el SW se construye a la medida, con un ndice muy
reducido de reus o ensamble de componentes, salvo en la
interfaz (normalmente se utiliza la del ambiente de desarrollo
y/o la del sistema operativo).

1.1.1.2 Aplicaciones de Software

Software de sistemas:
conjunto de programas que sirve a otro software. Tiene una
fuerte interaccin con el hardware y en general, programacin
de bajo nivel, con requerimientos de alta confiabilidad.
Software de tiempo real:
se utiliza para medir, analizar y controlar sucesos del mundo
real en la medida que estos ocurren. Requiere de una etapa de
adquisicin de datos, en la que bsicamente se les cambia de
formato, tiene un sistema de control y otro de monitoreo; todo
lo anterior en un entorno de respuesta rpida.
Software de gestin:
procesamiento de informacin.



Software de ingeniera y/o cientfico:
algoritmos para manejar nmeros, diseo asistido por
computadora, simulacin, etc.
Software empotrado en memoria de "solo lectura
para el control de productos y/o sistemas de control domstico.
Software de PC:
procesador de textos, hojas de clculo, etc.
Software de IA:
algoritmos no numricos. Destacan entre estos sistemas, las
redes neuronales, la lgica difusa y los sistema expertos.

Sin embargo, desde la perspectiva del desarrollador, es til
simplificar el esquema de clasificacin en las tres categoras
bsicas siguientes:

Software del sistema (sistema operativo).

Software de utilera (editores, compactadores, etctera).

Software de aplicacin (sistemas de informacin, nminas,
contabilidades, inventarios, etctera).

Se distinguen entre s por el grado de complejidad que sugiere su
desarrollo e implementacin
Ingeniera
Estudio y la aplicacin de las distintas ramas de la
tecnologa. El profesional en este mbito recibe el
nombre de ingeniero.

La actividad del ingeniero supone la concrecin de una
idea en la realidad. Esto quiere decir que, a travs de
tcnicas, diseos y modelos, y con el conocimiento
proveniente de las ciencias, la ingeniera puede
resolver problemas y satisfacer necesidades humanas.

La ingeniera tambin supone la aplicacin de la inventiva
y del ingenio para desarrollar una cierta actividad.

Entre las distintas tareas que puede llevar a cabo un ingeniero,
se encuentra:

La investigacin (la bsqueda de nuevas tcnicas)
El diseo
El desarrollo
La produccin
La construccin
La operacin.

Ingeniera de software

Es el enfoque sistemtico para el desarrollo, operacin, mantenimiento y
eliminacin de Software

Cul es la diferencia entre ingeniera de software e ingeniera de
sistemas?

La ingeniera de sistemas se refiere a todos los aspectos del desarrollo de
sistemas basados en computadora, incluyendo hardware, software e
ingeniera de procesos. La ingeniera de software es parte de este
proceso.

PFLEEGER SHARI

Ingeniera del software es la produccin de software
de calidad

Produccin : los procesos, los mtodos y herramientas
necesarias para ello

Software: el objeto de inters y del que se desean
manipular de manara conveniente sus atributos,
caractersticas y/o propiedades
Calidad: la que el cliente tiene

El proceso de software

Son el conjunto de actividades y resultados asociados que producen
un producto de software. Existen cuatro actividades principales:

Especificacin del software:
la funcionabilidad del software y las restricciones sobre su
operacin deben quedar definidas
Desarrollo de software:
debe producirse software que cumpla con la especificacin.
Validacin del software:
el software debe validarse para asegurar que es lo que se
requiere
Evolucin del software:
el software debe evolucionar para cumplir con los cambios
requeridos por el cliente

Cules son los costos de la ingeniera de software?

El costo total de un software esta dividido
aproximadamente de la siguiente forma:

60% costos de desarrollo
40% costos de pruebas
En el software a la medida los costos de evolucin a menudo
exceden los costos de desarrollo
Los costos dependen del tipo de sistema que se desarrolla y
de los requerimientos del mismo tales como desempeo y
confiabilidad
La distribucin de los costos depende del modelo de
desarrollo empleado



Qu son los mtodos de Ingeniera de Software?
Enfoques estructurados para el desarrollo de software que
incluye:

Descripciones del modelo, descripciones de modelos
grficos que deben ser producidos
Reglas, restricciones aplicadas a los modelos de
sistemas
Recomendaciones, para realizar un diseo efectivo
Administracin del proceso, que actividades deben
realizarse y en qu orden

Cules son los atributos del software de calidad?

El software debe proveer la funcionalidad y desempeo
requeridos por el usuario y debe ser:

Mantenible: debe poder evolucionar para continuar
cumpliendo con las especificaciones
Confiable: no debe causar daos fsicos o econmicos en el
caso de que falle
Eficiente: no debe desperdiciar los recursos del sistema
Aceptable: debe ser aceptado por los usuarios para los que
fue diseado. Debe ser entendible, utilizable y compatible
con otros sistemas

1.1.4 Crisis del Software
ha generado fallas en los sistemas que se estn
produciendo, debido a problemas de comunicaciones,
elevados costos del producir y dar mantenimiento al
software.

Una proporcin muy grande de productos de software:

Se envan tarde
Excedidos en presupuesto
Con fallas de ltimo momento


Porcentajes de proyectos de software







Como consecuencia:

78% de las compaas de TI han entrado en disputas
67% de los casos el software entregado no cubri lo ofrecido
56% se entregaron despus de la fecha prometida
45% Tenan fallas operativas crticas que impedan su
utilizacin
23%
28%
49%
Cancelados
Exitosos
Tarde, presupuesto excedido
o con fallos
1.1.5 Problemas relacionados con el desarrollo de
software:

Sistemas que no cumplen los requerimientos de los
usuarios y/o tienen fallas tcnicas.

Generalmente, los sistemas no estn actualizados ni
cundo se estn diseando.

An existe el error de la computadora como excusa a un
mal servicio a los clientes.

La mayora de los usuarios esperan sistema se caiga o
congele de vez en cuando (software de aplicacin y/o SO).



El software no siempre es utilizable, til, confiable o
disponible

La falta de flexibilidad tambin resulta evidente, como
lo muestran el problema del milenio y la adecuacin de
todos los sistemas viejos (legacy) a procesos de
negocios cambiantes.

La COSTEABILIDAD se relaciona mucho con la
confiabilidad y la flexibilidad debido a que el costo de
corregir y mantener es el ms alto costo asociado con
el software

1.1.5.1 Costos del Software

El mito del Hombre-Mes hace creer que
basta con agregar personal a un proyecto
de software para acelerar su
terminacin. Puede resultar muy costoso
agregar dicho personal.

La curva de aprendizaje y los costos de introduccin de
nuevas tecnologas de software, impiden obtener resultados
inmediatos.
Los costos a largo plazo en el mantenimiento del software al
usar tcnicas incorrectas, puede resultar ms grande que su
costo de adquisicin


1.1.5.2 Mantenimiento del Software
Son todos los cambios al producto una vez que se ha entregado e
instalado en la computadora del cliente y pasa su prueba de
aceptacin.

Categoras de mantenimiento de software:

Correcciones: Eliminar las fallas de ltimo momento dejando sin
cambio las especificaciones
Perfeccionamiento: Cambios que mejorarn la eficacia del
producto, como funcionalidad adicional o menor tiempo de
respuesta.
Adaptaciones: Cambios en respuesta a los cambios en el entorno
en el que opera el producto (SO, HDW, Regulaciones)
1.1.5.3 Costo del Mantenimiento del Software

De acuerdo a Yourdon y Hatton (1998):

Cualquier mejora en la forma de dar mantenimiento al Software
tendr una incidencia positiva directa en los gastos de las compaas
en software
El costo relativo para detectar y corregir una falla en la etapa de
mantenimiento pos entrega es de 5 a 10 veces ms grande que en las
etapas iniciales del ciclo de desarrollo de software







Porcentaje de costo de mantenimiento del software


1.1.5.5 Problemas de comunicacin

La dificultad en el desarrollo de un proyecto de
software no radica en lo tcnico si no en lo
sociolgico, y ms concretamente en la
comunicacin.

Expondremos el ejemplo sacado de "The Mythical
Man-month", Por qu fall la construccin de la Torre
de Babel? Analicemos el problema.


Tenan unos requisitos concretos y claros. Su objetivo era
crear una torre para llegar al cielo. No deja de ser una
idea
un estpida pero la idea era clara.
Tenan suficiente mano de obra. Parece ser que mucha
gente
estaba dispuesta a trabajar en ello.
Tenan suficientes materiales. Bueno, no se nos dice lo
contrario as que parece que s.
Tiempo. No tenan restricciones de tiempo.
Tecnologa adecuada. Parece que empezaron con una
torre cnica, as que en principio no era mala idea,
adems el proyecto fall antes de que llegasen a
limitaciones tcnicas

Con todo esto parece ser que el proyecto iba para adelante a buen ritmo,
pero a Dios no le gustaba la idea de que hicieran una torre que llegara al
cielo, as que hizo que cada uno de ellos hablase un idioma distinto.

Hablando cada uno un idioma diferente no se podan comunicar los unos con
los otros, como consecuencia de esto se cre una completa
desorganizacin y el proyecto fracas

Por eso una de las ms importantes tareas del director de equipo y del gestor
del proyecto es que la informacin fluya en todas las direcciones.

No solo se produzca de arriba hacia abajo si no
Tambin de abajo hacia arriba.

Es muy frecuente que los programadores identifiquen problemas o indicios de
problemas que ms tarde pueden revelarse como crticos. Una correcta
gestin de la informacin puede provocar que los incipientes problemas se
solucionen antes de que estos se conviertan en decisivos y tengamos que
lamentarnos por ello.


Por otra parte, tambin tienen entender que no todas sus ideas
van a ser adoptadas o que no es el momento adecuado para
ellas.

Desde el punto de vista del director de equipo es muy importante
tener claro que no siempre lo mejor es lo mejor, quiero decir,
que a veces hay que ceder o adoptar una idea aunque sepas
que no es la mejor, pero con ello consigues que alguien
obtenga reconocimiento, eso es bueno para el equipo.

Si el equipo funciona el proyecto saldr adelante. [GAR04]

PROBLEMAS DE COMUNICACIN EN EL DESARROLLO DE SOFTWARE