Está en la página 1de 44

INTRODUCCIN

Software
Ms y ms sistemas son actualmente controlados por software.
Costos elevados en el desarrollo de software.
http://sunset.usc.edu/research/COCOMOII/ (COnstructive COst Model)
El software es un producto de consumo con un gran peso en la
economa.
El desarrollo del software de las empresas USA.
2 trillones de dlares en desarrollo.
30.000 millones de dlares anuales en mantenimiento.
Las economas de los pases desarrollados dependen en gran
parte del software.

Software y Economa
Software y Economa
Gasto en proyectos software en el ao 1995 en USA.
175.000 proyectos / 250.000 millones de dlares.
59.000 millones de dlares de desviacin de los costes
estimados.
81.000 millones de dlares en proyectos software cancelados.
Contribucin del software a la economa USA en 1996. [Minasi,
2000]
Gran supervit en las exportaciones.
Se export software por un valor de 24.000 millones de dlares,
se import software por valor de 4.000 millones de dlares, se
obtuvo una balanza positiva de 20.000 millones de dlares.
Software y Economa
Comparativa:
Agricultura: Exportaciones 26.000 millones; Importaciones
14.000 millones; Balance: 12.000 millones.
Industria Aeroespacial: Exportaciones 11.000 millones;
Importaciones 3.000 millones; Balance: 8.000 millones.
Qumica: Exportaciones 26.000 millones; Importaciones 19.000
millones; Balance: 7.000 millones.
Vehculos: Exportaciones 21.000 millones; Importaciones 43.000
millones; Balance: -22.000 millones.
Bienes manufacturados: Exportaciones 200.000 millones;
Importaciones 265.000 millones; Balance: -65.000 millones.

Software y Economa
Industria del software en USA en el ao 2000.
Ventas: 180 billones de dlares.
Trabajadores: 697.000 ingenieros de software 585.000
programadores.
El gobierno USA estima que las empresas han gastado cerca
de 3,3 trillones de dlares en tecnologas de la informacin en
la ltima dcada.
El 74% de todos los proyectos de tecnologas de la
informacin fallan porque se pasan de presupuesto, porque no
cumplen el plazo de entrega y el 28% de los proyectos
fallan completamente. The Standish Group (1998)
Software y Economa
El 55% de los sistemas cuestan ms de lo esperado, el 68% superan la
fecha de entrega y el 88% tuvieron que ser sustancialmente rediseados.
Informe de IBM (1994)
La media era 100 dlares por lnea de cdigo, se esperaba pagar 500
dlares por lnea, y se termin pagando entre 700 y 900 dlares por lnea,
6.000 millones de dlares de trabajo fueron descartados. Advanced
Automation System (FAAm 1982-1994)
Cada 6 nuevos sistemas puestos en funcionamiento, 2 son cancelados, la
probabilidad de cancelacin est alrededor del 50% para sistemas
grandes, la media de proyectos que sobrepasa el calendario es del 50%, 3
de cada 4 sistemas son considerados como fallos de operacin. Bureau of
Labor Statistics (1997)
El 31,1% de los proyectos se cancelan antes de completarse. The Standish
Group, as reported by Solutions Integrator (Junio de 1999)

Software y Economa
Cada ao se gastan 75 billones de dlares en proyectos de tecnologas de
la informacin fallidos en USA. The Standish Group (1998)
El 52,7% de los proyectos relacionados con las tecnologas de la
informacin cuestan el 189% de su coste inicial estimado. The Standish
Group, as reported by Solutions Integrator (Junio de 1999)
En grandes compaas (donde la media de coste de un proyecto de
desarrollo es de 2.322.000 dlares), slo el 9% de los proyectos estuvieron
en la fecha prevista y dentro del presupuesto. The Standish Group, as
reported by Solutions Integrator (Junio de 1999)
Cerca de la mitad de los proyectos de desarrollo cuestan un 70% ms de lo
que inicialmente fue presupuestado. Los gestores citan a la falta de
informacin de los usuarios como principal razn para el fallo de un
proyecto. The Standish Group, as reported by InternetWeek (Septiembre
de 1999)

Software y Economa
El Ecuador contabiliz 62 millones de dlares en ventas y 10.7 millones de
dlares en exportaciones en el ao 2004.
Cuenta con ms 223 empresas dedicadas a la industria del software, de
ellas 11 internacionales y 212 desarrolladoras.
El sector del software ofrece alrededor de 6.588 puestos de trabajo.
Ecuador no reporta evaluaciones SW-CMM ni CMMI a Marzo de 2006. Tres
empresas estn certificadas ISO 9000:2000 (2005).
En 2005 la AESOFT (Asociacin Ecuatoriana de Software) inici un proyecto
de apoyo a las empresas desarrolladoras de software en las fechas: desde
Julio 2005 a Abril 2006 (9 meses), financiado por la Corporacin Andina de
Fomento (CAF) ofreciendo capacitacin e implementacin del nivel 2 del
CMMI en las 9 empresas participantes. Se centr principalmente en el tema
de aseguramiento de la calidad con CMMI.
[Revista acadmica de economa con el Nmero Internacional Normalizado de Publicacin
Seriadas ISSN 1696-8352]

Problemas con el Software
El fallo en el lanzamiento del satlite Ariane 5 en 1996 fue causada por una
rutina de excepcin defectuosa en el cdigo Ada, que se invocaba como
resultado de una conversin errnea de un nmero en coma flotante de 64
bits a un entero de 16 bits.
http://sunnyday.mit.edu/accidents/Ariane5accidentreport.html
Dos oficiales de polica en una regin escocesa utilizaban una pistola de
radar para identificar a motociclistas que infringan los lmites de velocidad.
Repentinamente la pistola de radar qued bloqueada apuntando al cielo e
indicando una velocidad de 300 millas por hora. Segundos ms tarde, un
caza Harrier, volando a baja altura, pas por all. El buscador de blancos del
avin haba detectado el radar y lo haba tomado por un enemigo. Por
fortuna, el Harrier volaba desarmado, ya que el comportamiento normal
hubiera sido el disparo de un misil de contraataque automtico.
http://catless.ncl.ac.uk/Risks/17.67.html#subj1.1, [Pfleeger, 2002]
Problemas con el Software
El 15 de enero de 1990 la red de comunicaciones de larga distancia de
AT&T estuvo fuera de servicio durante nueve horas a consecuencia de un
fallo de software. Millones de llamadas quedaron bloqueadas. Algunos
negocios que dependan en gran medida de los servicios telefnicos, como
agencias de viajes, quedaron prcticamente colapsados, con la consiguiente
prdida econmica .
En febrero de 2003 un fallo en la red de Vodafone deja sin servicio a sus 8,6
millones de usuarios. La avera se produjo en el transcurso de las tareas de
mantenimiento del software de la red llevadas a cabo por la operadora,
impidiendo las comunicaciones con sus lneas en toda Espaa desde las
siete de la maana .
Un fallo humano, no negligente, motivado por la complejidad del sistema
ergonmico de la pantalla del ordenador del centro de control de
operaciones del Metro caus, el da 31 de octubre de 2004, el choque de
dos trenes del Metro de Barcelona resultando heridas 50 personas.
Problemas con el Software
La Mars Polar Lander se estrell en su aterrizaje en Marte en diciembre de
1999 por un fallo de software. Los motores de descenso se apagaron
prematuramente porque un fallo en los sensores indicaban que haba
tomado tierra cuando estaba a unos 40 metros. [Clark, 2000]
El robot Spirit en Marte tuvo que ser reseteado y actualizado desde la tierra
por fallos en su memoria flash. (enero de 2004)
http://www.msnbc.msn.com/id/3855168/
En mayo de 2001 la Agencia Internacional para la Energa Atmica declar
una emergencia radiolgica en Panam. 28 pacientes sufrieron una sobre
exposicin, 8 murieron, y partes de los supervivientes pueden sufrir serias
complicaciones que en algunos casos pueden llegar a ser mortales. Se
concluy que uno de los factores que provocaron el accidente se debi a un
error en el software que controlaba ciertas entradas de datos.
http://www.fda.gov/cdrh/ocd/panamaradexp.html


Conceptos
SISTEMA: Un conjunto de cosas que ordenadamente relacionadas
entre s contribuyen a un determinado objetivo [DRAE, 1992]
INFORMACIN: Datos procesados; que tienen las siguientes
caractersticas:
Relevante.
Precisa.
Completa.
Adecuada.
Oportuna.
Nivel de detalle adecuado.
Comprensible.
Conceptos
SISTEMA DE INFORMACIN:
Un conjunto formal de procesos que, operando sobre una
coleccin de datos estructurada segn las necesidades de la
empresa, recopilan, elaboran y distribuyen la informacin
(o parte de ella) necesaria para las operaciones de dicha
empresa y para las actividades de direccin y control
correspondientes (decisiones) para desempear su actividad
de acuerdo a su estrategia de negocio
(Andreu et al., 1999)
Conceptos
Los elementos de un sistema de informacin son:
Los procedimientos y las prcticas habituales de trabajo.
La informacin.
Las personas o usuarios.
El equipo de soporte.
Subsistemas de un sistema de informacin:
Subsistema de Recursos Humanos
La gestin de la informacin relacionada con la plantilla.
La ejecucin de la nmina.
Subsistema de Gestin Comercial
Las propias ventas.
La funcin de comercializacin.
Conceptos
Subsistema de Gestin Contable y Financiera
Subsistema de Control de Almacn
Otros Subsistemas
Sistemas de automatizacin de oficinas
Sistemas de produccin
Conceptos
SOFTWARE:
Programas, procedimientos, reglas y la posible documentacin
asociada y datos que pertenezcan a la explotacin de un
sistema de ordenador [AECC, 1986]
Una coleccin organizada de programas de ordenador,
procedimientos, documentacin asociada y datos referidos a un
ordenador que realiza una funcin especfica o un conjunto de
funciones [IEEE, 1999a]1, [NIST, 1994], [DOD, 1995]
Conjunto de programas, procedimientos y documentacin
asociada a la operacin de un sistema informtico [Piattini et
al., 2004]
Producto Software
El software se desarrolla, no se fabrica en el sentido clsico.
Los costes del software se encuentran en la ingeniera.
A pesar de las ltimas tendencias, el software se sigue
construyendo a medida.
El software no se estropea, se deteriora.
Cambios en las fases de mantenimiento.
No hay piezas de repuesto para el software. [Pressman, 2006]
Producto Software
CRISIS:
Calidad cuestionable.
Mal funcionamiento.
Insatisfaccin de los clientes.
Cmo desarrollar software.
Imprecisin en la planificacin y la estimacin.
Baja productividad.
Cmo mantener el volumen creciente de software existente.
Cmo afrontar la incesante demanda de software.
Barrera del mantenimiento.

Producto Software
Nmero de estados posibles es muy elevado.
Conexiones entre entidades.
Complejidad arbitraria que surge de instituciones humanas.
Sujeto a continuos cambios.
Especificacin de requisitos.
Comunicacin del equipo.
Dificultad inherente.
Gran complejidad.


Producto Software
CAUSAS:
Responsables no cualificados.
Falta de comunicacin entre las partes.
Desconocimiento de las nuevas tendencias.
Resistencia al cambio.
Falta de reconocimiento de la figura del informtico.
Una amplia mitologa y falta de cultura informtica de la
sociedad.


CALIDAD
Los ingenieros del software deben encontrar los mtodos para
asegurar que sus productos sean de utilidad y tengan una
calidad aceptable.
As, la Ingeniera del Software siempre debe incluir una
estrategia para producir software de calidad.
La calidad se percibe desde diferentes puntos de vista. [Garvin,
1984]
Vista trascendental o ideal.
Vista del usuario.
Vista de la construccin o de proceso.
Vista del producto.
Vista basada en el valor.

CALIDAD
Factores externos:
Pueden ser detectados por los usuarios.
Es de suma importancia.
Algunos ATRIBUTOS Factores externos:
Facilidad de mantenimiento. Ha de poder evolucionar para
adaptarse a las necesidades de cambio de los clientes.
Confiabilidad. No debe causar daos fsicos o econmicos en el
caso de fallo del sistema. Fiabilidad, seguridad y proteccin
Reusabilidad. Capacidad de que un software pueda utilizarse en
un contexto diferente al de su creacin.


CALIDAD
Eficacia. Hacer efectivo el propsito del software.
Usabilidad. Fcil de utilizar. Debe tener una interfaz de usuario
apropiada y una documentacin adecuada.
Portabilidad. Facilidad de transferir productos software a
diferentes plataformas.
Factores internos:
Slo los perciben los ingenieros del software.
Es el medio de conseguir la calidad externa.
Algunos ATRIBUTOS a Factores internos:
Modularidad.
Tolerancia a fallos.
Eficiencia de ejecucin.
Eficiencia de almacenamiento.

CALIDAD
Independencia del sistema.
Independencia del hardware.
Estandarizacin de datos.
Estandarizacin de comunicaciones.
Legibilidad.
Facilidad de expansin.



Productos Software
Un producto software es un sistema software que se acompaa de
la documentacin necesaria para su instalacin y uso.
Los sistemas software son productos complejos.
Gran funcionalidad.
Objetivos diferentes y en ocasiones conflictivos.
En su concepcin, desarrollo y mantenimiento interviene un
gran nmero de personas con diferentes perfiles.
Elevado tamao:
Windows 98 18 millones de lneas de cdigo.
Windows 2000 (2001) 35 millones de lneas de cdigo.
Windows XP (2002) 40 millones de lneas de cdigo.

Productos Software
Un producto software es un sistema software que se acompaa de
la documentacin necesaria para su instalacin y uso.
Linux (Debian) 55 millones de lneas de cdigo 14.000
personas/ao 1900 millones de dlares
Rotor (2002) 3,6 millones de lneas de cdigo
Sujeto a cambios continuos
Requisitos, tecnologa, etc.


Productos Software
Tipos de mercados:
Productos genricos.
Sistemas autnomos producidos por una organizacin para su
venta en el mercado abierto a cualquier cliente que pueda
adquirirlo.
El desarrollador controla la especificacin.
Productos personalizados.
Sistemas encargados por un cliente particular.
Desarrollos a medida.
Las especificaciones las determina el cliente.


Productos Software
reas de aplicacin [Pressman, 2006]
Software de sistemas
Software para dar servicio a otros programas: compiladores,
editores, etc.
Fuerte interaccin con el hardware.
Operacin concurrente.
Recursos compartidos.
Gestin de procesos complicada .
Estructuras de datos complejas.
Productos Software
Software de tiempo real
Coordina/analiza/controla sucesos en el mundo real en el
momento en el que suceden: control de vuelo, plantas
qumicas, telefona, etc.
Tiempo de respuesta crtico: magnitud de milisegundos.
Interaccionan directamente con dispositivos fsicos y sensores.
Requisitos de rendimiento crticos.
Programacin de bajo nivel.
Concurrencia.
[Pressman, 2006]


Productos Software
Software de ingeniera y cientfico
Algoritmos de tratamiento numrico: simulacin, estadstica,
CAD, etc.
Diseo de algoritmos y estructuras de datos.
Clculo intensivo.
Paralelizacin.
Software empotrado
Reside en memoria de slo lectura y se utiliza para controlar
productos y sistemas de los mercados industriales y de
consumo.
Caractersticas similares al de tiempo real.
[Pressman, 2006]


Productos Software
Software de Inteligencia Artificial [Pressman, 2006]
Algoritmos no numricos para resolver problemas complejos:
sistemas expertos, reconocimiento de patrones, demostradores
de teoremas, etc.
Software de gestin
Proceso de informacin comercial: nminas, clientes,
inventarios, etc.
Gran volumen de datos.
Complejidad de la informacin.
Integracin.
Sistemas transaccionales (TPS).
Soportan las operaciones diarias de un negocio: pedidos,
compras, etc.


Productos Software
Software de gestin
Los requisitos, los datos y el procesamiento se conoce y est
bien estructurado.
Anlisis de datos.
Aplicaciones de consulta (query).
El usuario especifica qu desea no cmo obtenerlo.
Lenguajes declarativos.
Datawarehouse.
Almacenamiento de versiones histricas de entradas a la base
de datos, registros de transacciones y datos histricos.
Soporte a la toma de decisiones (DSS Decision Support
System).
Productos Software
Software de computadoras personales
Herramientas de escritorio, software para ocio
Sistemas de software intensivo [Moreno-Navarro, 2005]
Combinan tecnologas emergentes de sistemas empotrados
(automocin, avinica, ropas) pero a la vez estn inmersos
en sistemas globales de cmputo (Internet, grids, sistemas
orientados a servicios)
Estos sistemas son sistemas programables que
Son dinmicos y evolucionan
Su comportamiento es adaptativo y anticipatorio
Procesan conocimiento y no slo datos
Productos Software
Aplicaciones Web
Software accedido a travs de un navegador Web.
Los sistemas Web tienen una naturaleza y unos requisitos que
difieren del software tradicional.
Los sistemas Web:
Estn orientados a documentos que contienen pginas Web
estticas o dinmicas.
Se centran en el look & feel y enfatizan la creatividad visual y la
presentacin en la interfaz.
Son conducidos por el contenido, incluyendo el desarrollo del
contenido.
Necesitan ofrecer servicios a usuarios con diversidad de
caractersticas y capacidades.
Productos Software
Los sistemas Web:
Ejemplifican los vnculos entre el arte y la ciencia que
generalmente aparecen en el desarrollo del software.
Requieren acortar el tiempo de desarrollo, dificultando aplicar
el mismo nivel de formalidad en la planificacin y prueba que
se aplica en el software tradicional.
Presentan un formato de distribucin y explotacin diferente al
software tradicional.
Los desarrolladores de los sistemas Web:
Difieren en gran medida en su formacin, caractersticas,
conocimiento y comprensin del sistema.
Diferencias en su percepcin de la Web y de la calidad del
sistema Web.
Construccin de Software (GNU-LINUX)
AUTOTOOLS:
o Desarrollo de SW en entornos GNU se ha multiplicado por diez
desde el 2004.
o Conjunto de utilidades para automatizar la compilacin de
programas en diferentes entornos.
o Desarrollador especifica unas reglas generales para la
compilacin.
o Resto de la configuracin es detectado en la mquina destino.
o Simplifica la tarea de portabilidad entre sistemas.
o Por ejemplo la creacin de ficheros Makefile de un proyecto.
En realidad se componen de dos paquetes:
o http://directory.fsf.org/GNU/autoconf.html
o http://directory.fsf.org/GNU/automake.html
Construccin de Software (GNU-LINUX)
Ambos estn interrelacionados entre s y necesitan un
intrprete de Perl y de macros m4.
La estructura de funcionamiento es la siguiente:
1) automake traduce un fichero de configuracin Makefile.am y
genera un Makefile.in.
2) autoconf procesa un configure.in (o configure.ac) y genera
./configure.
3) En la mquina destino se ejecuta ./configure que genera los
Makefile y opcionalmente otros archivos, posiblemente en todos
los directorios que haga falta.

Prctica I. Archivo de configuracin de usuario
(input)
Un proyecto de software constar de una serie de archivos con
cdigo fuente y una serie de pasos a dar para convertirlos en
programa ejecutable.
Estos pasos, bajo autotools, se dividen en dos partes
principales:
1) Por un lado, un fichero Makefile.am a partir del cual se crear el
Makefile final; el cual ser compilado el cdigo fuente.
2) Un fichero configure.in o configure.ac que servir de plantilla
para crear un fichero de script de shell con los pasos necesarios
para detectar y establecer la configuracin necesaria para que
el programa sea compilado e instalado sin problemas.
Tambin ser el encargado de crear los Makefile necesarios
siguiendo el Makefile.am inicial.

Archivo de configuracin de usuario (input)
Sin embargo, incluso estos pasos se pueden automatizar con la
utilidad autoscan, que generar un configure.ac preliminar, con
el nombre de configure.scan, basndose en los ficheros de
cdigo fuente que encuentre en el directorio (y subdirectorios)
donde se ejecute.
Veamos este funcionamiento con un programa de ejemplo
extremadamente simple:
nul.c
void main() {}
Creamos un Makefile.am sencillo:
Makefile.am
bin_PROGRAMS = nul
nul_SOURCES = nul.c

Archivo de configuracin de usuario (input)
En este ejemplo slo crearemos un binario nul a partir del
fichero de cdigo fuente nul.c.
Simplemente ejecutando autoscan obtendremos un fichero
configure.ac base:
configure.scan
AC_PREREQ(2.59)
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-
ADDRESS)
AC_CONFIG_SRCDIR([nul.c])
AC_CONFIG_HEADER([config.h])
# Checks for programs.
AC_PROG_CC
Archivo de configuracin de usuario (input)
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
Este fichero es recomendable editarlo para adecuarlo al proyecto
que estamos desarrollando:
configure.ac
AC_INIT(nul, 0.1)
AM_INIT_AUTOMAKE(nul, 0.1)
AC_CONFIG_SRCDIR([nul.c])
# Checks for programs.
AC_PROG_CC
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
Archivo de configuracin de usuario (input)
El significado de este fichero sera:
o Inicializar autoconf (con el nombre y versin del programa a
o compilar).
o Inicializar automake (otra vez con nombre y versin).
o Establecer el directorio origen como el de nul.c.
o Buscar un compilador de lenguaje C.
o Establecer ficheros de configuracin Makefile.
o Generar los ficheros de salida.
FUENTES

Ingeniera del Software en entornos de Software Libre,
David Aycart Prez,Marc Gibert Ginest,Martn
Hernndez Matas,Jordi Mas Hernndez,
XP06/M2112/01486.
Ingeniera del Software, Universidad de Salamanca
Departamento de Informtica y Automtica , Dr.
Francisco Jos Garca Pealvo, Miguel ngel Conde
Gonzlez, Sergio Bravo Martn.