Está en la página 1de 42

INGENIERIA DE SOFTWARE I

INTRODUCCIN A LA INGENIERIA DE
SOFTWARE

Agenda
El software.

Definicin de software
Dominios de aplicacin
Software heredado
La naturaleza de las webapps
Ingeniera del software
La prctica de la ingeniera del software

SOFTWARE
El software como programa, consiste en un cdigo en un
lenguaje mquina. El cdigo es una secuencias de
instrucciones ordenadas que cambian el estado del
hardware.
El software de computadora es el producto que los
ingenieros de software construyen y despus mantienen
en el largo plazo.

SOFTWARE (2)
El software se forma con:
Instrucciones que al ejecutarse proporcionan las
caractersticas, funciones y el grado de desempeo
deseados
Las estructuras de datos que permiten que los programas
manipulen informacin de manera adecuada; y
Los documentos que describen la operacin y el uso de
los programas.

SOFTWARE (3)
El software es un elemento lgico, en lugar
de fsico, de un sistema.
El software tiene caractersticas diferentes
a las del hardware

Caractersticas del Software


El
software
se
desarrolla o construye;
no se manufactura
El software no se
desgasta

Se construye a medida

1. El software se desarrolla
A diferencia de la fabricacin del hardware
este no presenta problemas de calidad.
Los costos del software se concentran en
la ingeniera.
Los proyectos de software no se pueden
manejar como si fueran proyectos de
manufactura.

2. El software no se desgasta
En la figura se muestra,
para el hardware, la tasa
de fallas como una
funcin del tiempo.
La
relacin,
llamada
curva de la baera,
indica que el hardware
tiene
un
nmero
considerablemente
alto
de fallas al inicio de su
vida

2. El software no se desgasta
Despus, los defectos se corrigen y la tasa de fallas baja
hasta un nivel estable.
Conforme pasa el tiempo, la tasa de fallas se eleva de
nuevo conforme los componentes del hardware sufren
los efectos acumulativos del medio ambiente.
Inevitablemente comienza su desgaste

2. El software no se desgasta
Por otro lado el software
es inmune a los daos
ambientales.
La curva de la tasa de
fallas para el software
debera tener la forma de
la curva idealizada.
Los defectos sin descubrir
causan tasas de fallas
altas en las primeras
etapas de vida

2. El software no se desgasta
Los errores se corrigen y la curva se aplana.
La curva idealizada es una simplificacin del modelo de
fallas real para el software.
Sin embargo, el software no se desgasta, pero s se
deteriora.
El software experimenta cambios, conforme esto ocurre
se presenta la posibilidad de introducir errores, lo que
ocasiona que la curva de fallas tenga un pico.
Lo anterior provoca que se deteriore debido a los
cambios.

3. El Software se construye a la
medida

La reutilizacin de componentes es una parte


natural del proceso de ingeniera.
En el mbito del software, dicha actividad
apenas se ha comenzado a extender.
Un componente de software se debe disear e
implementar de forma que pueda utilizarse en
muchos programas diferentes.

NATURALEZA CAMBIANTE
DEL SOFTWARE

Naturaleza del software


Software de
Sistemas

Software de
Aplicacin

Software de
lnea de
productos

Software
cientfico y
de Ingeniera

Aplicaciones
basadas en
la Web

Software
empotrado

Software de
Inteligencia
Artificial

Software de Sistemas
Es una coleccin de programas escritos para servir a
otros programas.
Procesan estructuras de informacin complejas pero
determinadas.
Otras aplicaciones procesan datos indeterminados
En cada caso el rea de software de sistemas se
caracteriza por una interaccin directa con el hardware,
utilizacin
de
mltiples
usuarios,
operaciones
concurrentes, comparticin de recursos y de procesos,
mltiples interfaces externas.

Software de Aplicacin
Consiste en programas independientes que resuelven
una necesidad de negocios especfica.
Las aplicaciones procesan datos empresariales o
tcnicos de forma que facilitan las operaciones de
negocios o la toma de decisiones tcnicas o de
gestin.
Se utiliza para controlar las funciones de negocios en
tiempo real (PTV).

Software Cientfico y de
Ingeniera
Se caracteriza por algoritmos devoradores
de nmeros.
El diseo asistido por computadora, la
simulacin
de
sistemas
y
otras
aplicaciones interactivas.

Software Empotrado
Reside dentro de la memoria de slo lectura del
sistema y con l se implementan y controlan
caractersticas y funciones para el usuario final y
el sistema mismo.
Desempea funciones limitadas y curiosas o
proporciona
capacidades
de
control
y
funcionamiento significativas.

Software de lnea de productos


Diseado para proporcionar una capacidad
especfica y la utilizacin de muchos
clientes diferentes.
Se enfoca en un nicho de mercado
limitado o dirigirse hacia mercados
masivos.

Aplicaciones basadas en la Web


Las WebApps, son ms que un conjunto de archivos de
hipertexto ligados que presenta informacin mediante
texto y algunas grficas.
A medida que el e commerce y las aplicaciones B2B
adquieren importancia, las WebApps evolucionan hacia
ambientes computacionales sofisticados.
Actualmente estn integradas con bases de datos
corporativas y aplicaciones de negocios.

Software de Inteligencia Artificial


Utiliza algoritmos no numricos en la
resolucin de problemas complejos.
Incluye: robtica, sistemas expertos,
reconocimiento
de
patrones,
redes
neuronales
artificiales,
juegos
de
computadora.

SOFTWARE HEREDADO

Los sistemas de software heredado


fueron desarrollados hace dcadas y han
sido modificados en forma continua para
cumplir los requerimientos de los cambios
en los negocios y en las plataformas de
cmputo
Dayani-Fard [DAY99]

..muchos sistemas heredados persisten


como el soporte de las funciones centrales
de negocios y son indispensables para las
empresas
Liu [LIU98]

Calidad del Software Heredado


Complicaciones de su baja calidad:

Tienen diseos imposibles de extender,


Cdigo complicado,
Documentacin escasa o inexistente,
Casos de prueba y resultados que no fueron archivados.

Sin embargo: son el soporte de las funciones centrales


de negocios y son indispensables para las empresas.

Calidad del Software Heredado(2)

Conforme pasa el
tiempo, los sistemas
heredados
evolucionan por una
o mas de las
razones siguientes:

El software debe adaptarse para satisfacer


las necesidades de los nuevos ambientes o
tecnologas.
Debe mejorarse para implementar los
nuevos requerimientos de lo negocios.
Debe extenderse para hacerlo operable con
sistemas y bases de datos modernos.
Debe redisearse para hacerlo variable
dentro de un ambiente de red.

Evolucin del Software


El mantenimiento del software conduce a un proceso
evolutivo que se presenta cuando se corrigen errores
cuando:
El software se adapta a un nuevo ambiente,
El cliente solicita caractersticas o funciones nuevas, y
Cuando la aplicacin experimenta una reingeniera
para proporcionar beneficios en un contexto moderno.

Evolucin del Software


En los ltimos 30 aos, Manny Lehman
[LEH97] analiz la industria del software y los
sistemas para desarrollar una teora unificada
para la evolucin del software.
Surgiendo as una serie de leyes
subyacentes.

Evolucin del Software (2)


Ley del cambio
continuo (1974)

Los sistemas de tipo electrnico deben adaptarse en forma


continua, de lo contrario se volvern menos satisfactorios a
travs del tiempo.

La ley de la
complejidad
creciente (1974)

Cuando un sistema de tipo electrnico est en evolucin,


su complejidad se incrementa a menos que se realice el
trabajo necesario para mantenerla o reducirla.

Ley de la
autorregulacin
(1974)

El proceso de evolucin de un sistema de tipo electrnico


se autor regula con la distribucin del producto y las
mediciones del proceso.

Evolucin del Software (3)


Ley de la
conservacin de la
estabilidad
organizacional (1980)

La tasa de actividad global efectiva promedio d un sistema


de tipo electrnico en evolucin no vara a lo largo del
periodo de vida del producto.

La ley de la
conservacin de la
familiaridad (1980)

Cuando un sistema est en evolucin y se quiere tener un


desarrollo satisfactorio , todos los involucrados deben
mantener el dominio obre su contenido y comportamiento.

La ley del
crecimiento continuo
(1980)

El contenido funcional de los sistemas debe incrementarse


en forma continua para mantener la satisfaccin del
usuario a lo largo del periodo de vida del sistema.

Evolucin del Software (4)


Ley de calidad
decreciente (1996)

La calidad de los sistemas de tipo electrnico


parecer declinar a menos que stos se
mantengan y adapten en forma rigurosa de
acuerdo con los cambios en su ambiente
operacional.

Ley del sistema de


retroalimentacin
(1996)

Los procesos de evolucin de los sistemas


constituyen sistemas d retroalimentacin con
niveles, ciclos y agentes mltiples, deben tratarse
de forma que se obtengan mejoras significativas
sobre cualquier base razonable.

LAS WEBAPPS

Qu es?
Los sistemas y aplicaciones basadas en Web
(WebApps) ofrecen un complejo arreglo de
contenido y funcionalidad a una amplia
poblacin de usuarios finales.
La Ingeniera Web (Iweb) es el proceso con el
que se crean WebApps de alta calidad.
La Iweb no es un clan de la ingeniera de
Software, pero toma muchos conceptos y
principios fundamentales de esta.

Qu es?
El proceso IWeb acenta actividades tcnicas y
administrativas similares.
Conforme las WebApps se integran a las
estrategias de negocios para pequeas y
grandes empresas crece en importancia la
necesidad de construir sistemas confiables,
prcticos y adaptables.

WebApps
La IWeb aplica un enfoque genrico que se
suaviza mediante estrategias, tcticas y mtodos
especializados.
El proceso IWeb comienza con una formulacin
del problema que se resolver con la WebApp.
Se planea el proyecto IWeb y se modelan los
requisitos y el diseo de la WebApp.

WebApps (2)
El sistema se construye con tecnologas y
herramientas especializadas asociadas con la
Web.
Dado la evolucin continua de las WebApps se
deben estableces mecanismos para el control de
configuraciones, el aseguramiento de la calidad
y el soporte continuo.

Atributos de los Sistemas basados


en WebApps
En los primeros dias de la World Wide Web los
sitios Web consistan en un conjunto de
archivos d hipertexto ligados que presentaban
informacin mediante texto y grficos limitados.
Conforme paso el tiempo nacieron los sistemas
y aplicaciones basados en Web (denominados
de manera colectiva WebApps).

Atributos de los Sistemas basados


en WebApps (2)
Actualmente se han incorporado bases de datos
corporativas y aplicaciones de negocios.
Las WebApps involucran una mezcla entre
publicacin impresa y desarrollo de software,
entre
marketing
e
informtica,
entre
comunicaciones internas y relaciones externas, y
entre arte y tecnologa Powell [POW98]

Atributos de los Sistemas basados


en WebApps (3)
En la gran mayora de las WebApps se encuentran los
siguientes atributos:

Intensidad de red

Una WebApp reside en una red y debe satisfacer las


necesidades de una variada comunidad de clientes.
Alternativamente, una aplicacin puede colocarse en una
Intranet

Concurrencia

Un gran nmero de usuarios puede tener acceso a la


WebbApp al mismo tiempo.

Carga
impredecible

El nmero de usuarios de la Web App puede variar en


ordenes de magnitud de da con da .

Atributos de los Sistemas basados


en WebApps (4)
Desempeo

Para ingresar, para procesamiento en el lado del


servidos, para formateo y despliegue en el lado del
cliente.

Disponibilidad

Los usuarios de las WebApps con frecuencia demandan


acceso sobre una base de 24/7/365

Gobernada por
los datos

Uso de hipermedia para presentar contenido de texto,


grficos, audio y video al usuario final.
Utilizadas para un acceso a base de datos.

Sensibilidad al
contenido

La calidad y naturaleza esttica del contenido sigue


siendo un importante determinante de la calidad de una
WebApp.

Atributos de los Sistemas basados


en WebApps (5)
Evolucin
Continua
Inmediatez
Seguridad
Esttica

Su actualizacin es minuto a minuto, dependiendo de la solicitud.


Debe contener una arquitectura inicial que permita un crecimiento de
forma controlada y consistente de acuerdo a las necesidades.
Poner software en el mercado rpidamente.
Se deben aplicar mtodos de planeacin,
implementacin y pruebas en tiempos inmediatos.

anlisis,

diseo,

Con la finalidad de proteger el contenido confidencial y ofrecer modos


seguros de transmisin de datos, se deben implementar fuertes
medidas de seguridad a lo largo de la infraestructura y dentro de la
aplicacin.

Su presentacin y la disposicin de sus elementos.


Tiene que ver con el xito si se habla de ventas.

Categoras de Aplicaciones
Informativo

Orientada a
transacciones

Descarga

Orientada a servicios

Personalizable

Portal

Interaccin

Acceso a una base de


datos

Entrada del usuario

Almacn de datos

También podría gustarte