Вы находитесь на странице: 1из 13

AREAS TECNICAS E.P.T.

COMPUTACION E INFORMATICA

BREVE HISTORIA DEL SOFTWARE


Las computadoras pueden ser descritas por dos elementos bsicos: el hardware y el software. El hardware es
la parte de una computadora que es visible y tangible. En cambio, el software es el programa para
computadoras, es decir, el juego de instrucciones que controla el hardware.
Inicialmente, el gasto en computacin era principalmente de hardware y el software era gratuito, o era incluido
en el precio del hardware. Con la evolucin de la tcnica, los costos del hardware han disminuido en forma
contnua, mientras que el costo del software se ha transformado en la parte ms importante del gasto en
tecnologa informtica. Una idea muy extendida en la gente es que el hardware es ms importante que el
software.
Como concepto general, el software puede dividirse en varias categoras dependiendo del tipo de trabajo
realizado. Las dos categoras primarias de software son:

Sistemas operativos (o software del sistema) que controlan el trabajo y funcionamiento del
computador,
Software de aplicacin que entrega solucin a tareas especficas para las que se utiliza el
computador.

Otras categoras son: software de red (para el funcionamiento de redes y comunicaciones) y software de
lenguaje (utilizado para escribir programas)
Adems de estas categoras basadas en tareas, varios tipos de software se describen basndose en su
mtodo de distribucin. Entre ellos se encuentran los software empaquetados, desarrollados por compaas
para ser vendidos principalmente a travs de distribuidores; el freeware o software gratuito, que se ofrece sin
costo alguno; el shareware, similar al freeware pero con limitaciones adicionales. Existen tambin las licencias
libres, en particular aquellas copyleftcomo la GNU GPL, y las permisivas como por ejemplo la Licencia BSD y
la Licencia MIT. Las licencias libres se caracterizan por brindar al licenciatario el permiso de usarlo con
cualquier propsito, estudiarlo, distribuirlo y modificarlo.

Historia y evolucin de la industria del software

1960-1970: Grandes computadoras centrales (mainframes) dominaban las grandes corporaciones.


Los usuarios se limitaban a terminales sin poder de procesamiento.
Principio de los 80's: Se hace realidad tener un computador de escritorio (PC: Personal Computer).
Paralelamente nace el software de escritorio, que promueve la productividad personal, como planillas
de calculo y procesadores de texto.
Mediados de los 80s: Los PCs se comienzan a conectar (Redes y Servidores). Se comparten
archivos, discos duros e impresoras. Se popularizan aplicaciones como el correo electrnico y agendas
compartidas.
Principio de los 90s: Es el dominio de sistemas cliente/servidor.
Mediados de los 90s: Irrumpe con fuerza la red global: Internet. En sus inicios pginas estticas
entregan informacin, pero rpidamente se utiliza como medio de acceder a aplicaciones dinmicas e
interactivas. Hoy en da las empresas extienden sus brazos sobre la red para eliminar intermediarios y
acercar los procesos a los usuarios internos (intranet) o externos (extranet) a travs de aplicaciones.
Nacen nuevos negocios basados en Internet: e-commerce.
Principio del 2000: Las redes inalmbricas, dispositivos mviles y celulares irrumpen con fuerza en
los campos del entretenimiento, la msica y los videos en Internet. Internet es usado normalmente para
buscar informacin a travs de buscadores de Internet (Google, Yahoo! y otros) y publicar informacin
personal en Blogs.

ROMER E. QUITO ROJAS

AREAS TECNICAS E.P.T.


COMPUTACION E INFORMATICA

Desarrollo, produccin y venta


El costo de produccin de un paquete de software es insignificante, si se compara con el alto costo de su
desarrollo. Las empresas de software amortizan el desarrollo con la venta de una gran cantidad de paquetes
de software. El fabricante que ms venda dispondr de mayor dinero para el desarrollo, marketing,
distribucin, etc., adems de ganar crecientes economas de escala. Es por ello que el mercado del software
tiene tendencia al monopolio. Las compaas pequeas desaparecen o se fusionan con empresas ms
grandes, debido a su pequea base instalada de usuarios, bajo soporte tcnico y presupuestos de desarrollo
escasos. En esta industria el proceso de acumulacin de ganancias puede ser muy rpido. Cuando el
producto es exitoso genera importantes ganancias, a diferencia de uno que no, perder mercado y ser
desplazado por otros que lo sustituirn y sus ganancias caern abruptamente. Por esta razn una vez que un
fabricante ha logrado una porcin del mercado lo defiende a toda costa. Las tcnicas habituales para
defender su posicin en el mercado son: cambio permanente (nuevas versiones), complejidad innecesaria y
uso de la propiedad intelectual. Algunas tcnicas de marketing con el mismo fin es el vapourware, que es
cuando el software se promociona mucho antes de ser presentado o simplemente nunca llega. Las
compaas de software se encargan de tener poderosas fuerzas de venta y canales de distribucin
Los gastos iniciales en desarrollo, marketing e infraestructura de soporte tcnico para las versiones iniciales
son significantes. El desarrollo de nuevas versiones basadas en una anterior requiere menos gastos para
desarrollar porque estn basadas en la misma tcnica de desarrollo. Los mrgenes gruesos en el negocio del
software son a menudo 70% o 80% ya que se necesitan muy pocos gastos para soportar una compaa de
software. El trabajo del recurso humano es el mayor tem ya que el desarrollo de software a menudo involucra
el trabajo en equipo de 6, 12 o incluso 100 personas.
En la industria es comn las compras hostiles o agresivas, Hay quienes dicen que la fusin de dos compaas
es mucho ms costosa que desarrollar sus propios productos [por quin?]. Un ejemplo es IBM, que en el pasado
ha adquirido compaas como Tivoli, Corepoint, Lotus Development y recientemente Informix (base de datos
que compite contraOracle).
Es usual que las compaas de software tengan programas para reclutar socios de negocios (business
partners program), con la cual amplan su marco de accin.
Hay que distinguir que la venta de software empaquetado es diferente a la venta de software a la medida o
para empresas. En general el software empaquetado es instalado por el usuario y est listo para ser usado.
Ofrece una solucin comn a todos a diferencia de un software a medida que satisface exactamente las
necesidades del usuario. Adems el soporte tcnico se limita a un soporte telefnico [cita requerida]. La distribucin
de software empaquetado est a cargo de distribuidores mayoristas que compran a fabrica volmenes
considerables a precios que les permiten una reventa con un cierto margen. El producto llega al usuario final
a travs de resellers o tiendas retail. Los mrgenes de un distribuidor mayorista pueden variar entre un 3-5%,
mientras que el reseller gana en torno al 10% Algunos de ellos son:Ingram-Micro, Merisel

Software para desarrollo


Existe una categora de software que requiere que se le agregue valor, como pueden ser los software de
desarrollo (lenguajes de desarrollo o software que necesita sea adaptado e integrado). Este tipo de software
va dirigido a empresas y es vendido por revendedores con un conocimiento mayor que entregan servicios
adicionales a la simple venta de una caja (VAR: Value Added Resellers). En la venta de software para
grandes empresas o corporaciones, en general, se involucran directamente las marcas de software ya que les
interesa tomar los proyectos grandes y poder vender adicionalmente capacitacin, desarrollo, soporte,
licencias y actualizaciones y consultora. Los avances en tecnologa del hardware y software de los ltimos
aos han convertido al negocio de la computacin en algo complejo. Es muy poco probable que las empresas
pongan en marcha sus sistemas de computacin sin la ayuda o asistencia de los vendedores de software
(ejm:SAP)

ROMER E. QUITO ROJAS

AREAS TECNICAS E.P.T.


COMPUTACION E INFORMATICA

Licencias de software
La licencia es un contrato en donde se proveen ciertos permisos como el de instalacin, uso del software (no
la propiedad), modificacin del mismo, redistribucin, entre otros, junto a posibles condiciones como la
prohibicin a la ingeniera inversa o la prohibicin a la modificacin de la licencia al redistribuir. Recordemos
que una licencia permite el uso de una versin, idioma y plataforma determinada del software (por ejemplo
MS-Word versin 9.0, en espaol, para Windows). Aunque la tendencia es simplificar dichas restricciones y
muchas compaas tienen licencias multiplataformas, multilinges y permiten hacer una copia del software en
casa o en el porttil, si ya existe una licencia en la oficina o lugar de trabajo. Se requiere una licencia por cada
programa que se utiliza. Existen diferentes enfoques para la "utilizacin" de un programa. El ms obvio es
aquel que establece que cada usuario que instale el programa en su PC debe pagar por una licencia, sin
embargo, en el caso de instalaciones en red, algunas compaas han definido que la "tasa de utilizacin" es
en torno al 50 o 60% del total de empleados (concurrencia). La concurrencia se basa en que un programa
puede ser ocupado por ms de una persona simultneamente, pero nunca por todos al mismo tiempo, por lo
que no es necesario adquirir el 100% de las licencias, sino un porcentaje menor. Algunos software ms
sofisticadas son capaces de determinar cuantas personas estn ocupando el programa en un momento dado.
Con la llegada del computador personal a principios de los 80s, tambin naci el mercado masivo del
software y el licenciamiento adquiri real inters. Hoy en da el licenciamiento se puede comprar a travs de
software empaquetado, programas de licenciamientos especiales o corporativos (por volmenes, orientados a
corporaciones, instituciones acadmicas o gobierno) o al comprar un PC con software pre instalado. La
licencia financia el desarrollo futuro de nuevas versiones.

Tendencias en el licenciamiento
Hasta hace poco, casi todas las licencias eran compradas sobre una base de "licencias perpetuas", o sea los
compradores pagaban una vez y usaban el software por tanto tiempo como ellos quisieran. La tendencia es
lograr relaciones de largo plazo con los usuarios, ms que vender "licenciamiento perpetuo" que luego hay
que actualizar. Las compaas de software lanzan "versiones mayores" una vez al ao o cada dos aos, sin
embargo, durante el ao se liberan una serie de "versiones menores" que reparan "bugs", dan mayor
estabilidad al software o entregan nuevas capacidades.
Los Contratos de Mantencin o Actualizacin tienen la ventaja de permitir estar siempre actualizado con las
ltimas versiones. Los contratos pueden ser de un ao, dos aos o ms. Para las compaas de software
estos contratos les permiten crear una relacin ms cercana y de largo plazo con las empresas, as como un
flujo esperado de ingresos. El valor de un Contrato de Actualizacin es aproximadamente el 25-30% del valor
de la licencia.
Mientras existe cierto valor de ser propietario de por vida, hay beneficios mayores al "arrendar". La nueva
modalidad es el Arrendamiento de Software o Suscripcin, el cual permite usar el software por un periodo
limitado, sin tener que incurrir en el costo de comprar licencias (costo de propiedad). Por otro lado el vendedor
evita los largos periodos de evaluacin y logra establecer una relacin comercial a largo plazo
Las licencias de acceso (o en ingls, CAL: Client Access License) se emplea para software en servidores. Es
una licencia que se debe adquirir por cada terminal (PC, pager, PDA, etc) accediendo una aplicacin en el
back-office. A diferencia del modelo cliente/servidor en que se paga por el software y por el acceso a los
servicios, en este caso, solo se paga por el acceso ya que el software es proporcionado en forma gratuita o
incluido en el terminal (por ejemplo: browsers)

Infraccin de copyright
La duplicacin no autorizada del software viola el derecho de autor y propiedad intelectual. Reproducir
(instalar o copiar) software sin licenciar (sin autorizacin) es un delito y est penado por la ley.

ROMER E. QUITO ROJAS

AREAS TECNICAS E.P.T.


COMPUTACION E INFORMATICA

La instalacin de software en disco duro, es una prctica muy comn entre los armadores de PCs. La copia
de software por usuarios finales es una prctica que se ha hecho tan comn, como fotocopiar un libro. Sin
embargo esta prctica a gran escala para su comercializacin (falsificacin) Otro delito es la distribucin no
autorizada. Compra de licencias por volmenes con descuento (corporaciones, instituciones acadmicas o
gubernamentales) y su posterior redistribucin a empresas que no califican.
Existe licenciamiento para integradores de hardware o fabricante de computadores (vienen en empaque
diferente o pre-instalado)
Derecho de Reproduccin, debe ser autorizada por el autor. Existen dos excepciones: Al comprar un software
oficial, este puede instalarse en el computador para su uso (con lo cual se realiza una copia, que obviamente
es necesaria para el funcionamiento). La segunda excepcin es la copia de archivo o respaldo (copia de
seguridad). Obviamente la copia de archivo o respaldo no puede ser ocupada simultneamente a la copia
instalada en el computador.

Software en lnea
Es una alternativa barata frente a la venta de software y no tendra que pagar por reparaciones o
actualizaciones. Son accesibles desde cualquier lugar ya que almacenan los datos en lnea. Entre las
alternativas al Office, est ThinkFree. Para procesadores de texto est ThinkFree Write. Para las hojas de
clculo est ThinkFree Calc, WikiCalc, Num Sum e iRows. Para los correos electrnicos est Gmail de
Google, Hotmail de Microsoft, Yahoo! Mail y otros servicio de email basados en la Web. 1
Muchas empresas de tecnologa como Oracle, Hewlett-Packard Co., entre otras estn usan el software en
lnea para reducir costos.2

PROCESO PARA EL DESARROLLO DE SOFTWARE


El Proceso para el desarrollo de software, tambin denominado ciclo de vida del desarrollo de software es
una estructura aplicada al desarrollo de un producto de software. Hay varios modelos a seguir para el
establecimiento de un proceso para el desarrollo de software, cada uno de los cuales describe un enfoque
diferente para diferentes actividades que tienen lugar durante el proceso. Algunos autores consideran un
modelo de ciclo de vida un trmino ms general que un determinado proceso para el desarrollo de software.
Por ejemplo, hay varios procesos de desarrollo de software especficos que se ajustan a un modelo de ciclo
de vida de espiral.
Generalidades:
La gran cantidad de organizaciones de desarrollo de software implementan metodologas para el proceso de
desarrollo. Muchas de estas organizaciones pertenecen a la industria armamentstica, que en los Estados
Unidos necesita un certificado basado en su modelo de procesos para poder obtener un contrato.
El estndar internacional que regula el mtodo de seleccin, implementacin y monitoreo del ciclo de vida del
software es ISO 12207.
Durante dcadas se ha perseguido la meta de encontrar procesos reproducibles y predecibles que mejoren la
productividad y la calidad. Algunas de estas soluciones intentan sistematizar o formalizar la aparentemente
desorganizada tarea de desarrollar software. Otros aplican tcnicas de gestin de proyectos para la creacin
del software. Sin una gestin del proyecto, los proyectos de software corren el riesgo de demorarse o
consumir un presupuesto mayor que el planeado. Dada la cantidad de proyectos de software que no cumplen
sus metas en trminos de funcionalidad, costes o tiempo de entrega, una gestin de proyectos efectiva es
algo que a menudo falta.
Algunas organizaciones crean un grupo propio (Software Engineering Process Group, abreviado SEPG)
encargado de mejorar los procesos para el desarrollo de software en la organizacin.
Actividades del desarrollo de software:
Actividades del proceso de desarrollo de software representados en el desarrollo en cascada. Hay algunos
modelos ms para representar este proceso.

ROMER E. QUITO ROJAS

AREAS TECNICAS E.P.T.


COMPUTACION E INFORMATICA

Planificacin:
La importante tarea a la hora de crear un producto de software es obtener los requisitos o el anlisis de los
requisitos. Los clientes suelen tener una idea ms bien abstracta del resultado final, pero no sobre las
funciones que debera cumplir el software.
Una vez que se hayan recopilado los requisitos del cliente, se debe realizar un anlisis del mbito del
desarrollo. Este documento se conoce como especificacin funcional.
Implementacin, pruebas y documentacin:
La implementacin es parte del proceso en el que los ingenieros de software programan el cdigo para el
proyecto.
Las pruebas de software son parte esencial del proceso de desarrollo del software. Esta parte del proceso
tiene la funcin de detectar los errores de software lo antes posible.
La documentacin del diseo interno del software con el objetivo de facilitar su mejora y su mantenimiento se
realiza a lo largo del proyecto. Esto puede incluir la documentacin de un API, tanto interior como exterior.
Despliegue y mantenimiento:
El despliegue comienza cuando el cdigo ha sido suficientemente probado, ha sido aprobado para
su liberacin y ha sido distribuido en el entorno de produccin.
Entrenamiento y soporte para el software es de suma importancia y algo que muchos desarrolladores de
software descuidan. Los usuarios, por naturaleza, se oponen al cambio porque conlleva una cierta
inseguridad, es por ello que es fundamental instruir de forma adecuada a los futuros usuarios del software.
El mantenimiento o mejora del software de un software con problemas recientemente desplegado, puede
requerir ms tiempo que el desarrollo inicial del software. Es posible que haya que incorporar cdigo que no
se ajusta al diseo original con el objetivo de solucionar un problema o ampliar la funcionalidad para un
cliente. Si los costes de mantenimiento son muy elevados puede que sea oportuno redisear el sistema para
poder contener los costes de mantenimiento.

Modelos de Desarrollo de Software:


Los modelos de desarrollo de software son una representacin abstracta de una manera en particular.
Realmente no representa cmo se debe desarrollar el software, sino de un enfoque comn. Puede ser
modificado y adaptado de acuerdo a las necesidades del software en proceso de desarrollo. 1 Hay varios
modelos para perfilar el proceso de desarrollo, cada uno de las cuales cuenta con pros y contras. El proyecto
debera escoger el ms apropiado para sus necesidades. En ocasiones puede que una combinacin de varios
modelos sea apropiado. Existen tres paradigmas de los modelos de desarrollo de software:
1. Paradigma Tradicional:
Es uno de los paradigmas ms antiguo, se invent durante la creacin del mtodo estructurado. Si se elige un
proyecto, el mtodo varia en etapas.2 Como todo modelo, existen sus pros y contras al usar este paradigmas:
Si se aplica este paradigma, unos de los principales problemas , es que las etapas realizadas no son
autnomas de las siguientes, creando una dependencia estructural y en el caso de un error atrasara todo el
proyecto. Se tiene que tener pautas bien definidas, y que no se incurra a modificacin porque implicara en
que el software no cumpla con su ciclo de vida. Tener en cuenta que el cliente no se vea afectado por la
impaciencia.3
2. Paradigma Orientado a Objetos:
Estos modelos se basan en la Programacin orientada a objetos; por lo tanto, se refiere al concepto de clase,
el anlisis de requisitos y el diseo. El modelo o paradigma orientado a objetos posee dos caractersticas
principales, las cuales son:

Permite la re-utilizacin de software.


ROMER E. QUITO ROJAS

AREAS TECNICAS E.P.T.


COMPUTACION E INFORMATICA

Facilita el desarrollo de herramientas informticas de apoyo al desarrollo, el cual es simple al


implementarla en una notacin orientado a objetos llamado UML.4
3. Paradigma de Desarrollo gil:
Es un paradigma de las Metodologas De Desarrollo basado en procesos giles. Estos intentan evitar los
tediosos caminos de las metodologas tradicionales enfocndose en las personas y los resultados. Usa un
enfoque basado en el Valor para construir software, colaborando con el cliente e incorporando los cambios
continuamente.5
Modelo de cascada:
El modelo de cascada define las siguientes etapas que deben cumplirse de forma sucesiva:
1. Especificacin de requisitos
2. Diseo del software
3. Construccin o Implementacin del software
4. Integracin
5. Pruebas (o validacin)
6. Despliegue (o instalacin)
7. Mantenimiento
Siguiendo el modelo de cascada de forma estricta, slo cuando se finaliza una fase, comienza la otra. En
ocasiones se realiza una revisin antes de iniciar la siguiente fase, lo que permite la posibilidad de cambios
(lo que puede incluir un proceso de control formal de cambio). Las revisiones tambin se utilizan para
asegurar que la fase anterior ha sido totalmente finalizada; los criterios para completar una fase se conocen
frecuentemente con el trmino ingls "gate" (puerta). Este modelo desaconseja revisitar y revisar fases que ya
se han completado. Esta falta de flexibilidad en un modelo de cascada puro ha sido fuente de crtica de los
defensores de modelos ms flexibles.
Modelo de espiral:
La principal caractersticas del modelo en espiral es la gestin de riesgos de forma peridica en el ciclo de
desarrollo. Este modelo fue creado en 1988 por Barry Boehm, combinando algunos aspectos clave de las
metodologas del modelo de cascada y del desarrollo rpido de aplicaciones, pero dando nfasis en un rea
que para muchos no jug el papel que requiere en otros modelos: un anlisis iterativo y concienzudo de los
riesgos, especialmente en el caso de sistema complejos de gran escala.
La espiral se visualiza como un proceso que pasa a travs de algunas interaciones con el diagrama de los
cuatro cuadrantes representativos de las siguientes actividades:
1. crear planes con el propsito de identificar los objetivos del software, seleccionados para implementar
el programa y clarificar las restricciones en el desarrollo del software;
2. Anlisis de riesgos: una evaluacin analtica de programas seleccionados, para evaluar como
identificar y eliminar el riesgo;
3. la implementacin del proyecto: implementacin del desarrollo del software y su pertinente
verificacin;
Modelo de espiral con nfasis en los riesgos, haciendo hincapi en las condiciones de las opciones y
limitaciones para facilitar la reutilizacin de software, la calidad del software puede ayudar como una meta
propia en la integracin en el desarrollo del producto. Sin embargo, el modelo en espiral tiene algunas
limitaciones, entre las que destacan:
1. El nfasis se sita en el anlisis de riesgo, y por lo tanto requiere de clientes que acepten este
anlisis y acten en consecuencia. Para ello es necesaria confianza en los desarrolladores as como
la predisposicin a gastar ms para solventar los temas, por lo cual este modelo se utiliza
frecuentemente en desarrollo interno de software a gran escala.
2. Si la implementacin del riesgo de anlisis afectar de forma esencial los beneficios del proyecto, no
debera utilizarse este modelo.
3. Los desarrolladores de software han de buscar de forma explcita riesgos y analizarlos de forma
exhaustiva para que este modelo funcione.
La primera fase es la bsqueda de un plan para conseguir los objetivos con las limitaciones del proyecto para
as buscar y eliminar todos los riesgos potenciales por medio de un cuidadoso anlisis, y si fuera necesario
incluyendo la fabricacin de un prototipo. Si es imposible descartar algunos riesgos, el cliente ha de decidir si
es conveniente terminar el proyecto o seguir adelante ignorando los riesgos. Por ltimo, se evalan los
resultados y se inicia el diseo de la siguiente fase.
Desarrollo iterativo e incremental:
El desarrollo iterativo recomienda la construccin de secciones reducidas de software que irn ganando en
tamao para facilitar as la deteccin de problemas de importancia antes de que sea demasiado tarde. Los
procesos iterativos pueden ayudar a desvelar metas del diseo en el caso de clientes que no saben cmo
definir lo que quieren.6
Desarrollo gil
El desarrollo gil de software utiliza un desarrollo iterativo como base para abogar por un punto de vista ms
ligero y ms centrado en las personas que en el caso de las soluciones tradicionales. Los procesos giles
utilizan retroalimentacin en lugar de planificacin, como principal mecanismo de control. La retroalimentacin
se canaliza por medio de pruebas peridicas y frecuentes versiones del software.
ROMER E. QUITO ROJAS

AREAS TECNICAS E.P.T.


COMPUTACION E INFORMATICA

Hay muchas variantes de los procesos giles:

En el caso de la programacin extrema (XP), las fases se realizan en pasos muy cortos (o
"continuos") con respecto al anterior. El primer paso (intencionalmente incompleto) por los pasos puede
ocurrir en un da o en una semana, en lugar de los meses o aos de cada paso completo en el modelo en
cascada. En primer lugar, se crean pruebas automatizadas para proveer metas concretas al desarrollo.
Despus se programa el cdigo, que ser completo cuando todas las pruebas se superan sin errores, y
los desarrolladores ya no sabran como mejorar el conjunto de pruebas necesario. El diseo y la
arquitectura emergen a partir de la refactorizacin del cdigo, y se da despus de programar. El diseo lo
realizan los propios desarrolladores del cdigo. El sistema, incompleto, pero funcional se despliega para
su demostracin a los usuarios (al menos uno de los cuales pertenece al equipo de desarrollo). Llegado
este punto, los profesionales comienzan a escribir las pruebas para la siguiente parte del sistema de ms
importancia.
Codificacin y correccin
El desarrollo de codificacin y correccin (en ingls "Code and fix") es, ms que una estrategia
predeterminada, el resultado de una falta de experiencia o presin que se ejerce sobre los desarrolladores
para cumplir con una fecha de entrega. 7 Sin dedicar tiempo de forma explcita para el diseo, los
programadores comienzan de forma inmediata a producir cdigo. Antes o despus comienza la fase
de pruebas de software (a menudo de forma tarda) y los inevitables errores que se encuentran han de
eliminarse antes de poder entregar el software.
Orientado a la Reutilizacin
La reutilizacin de software es un proceso donde se recurre al uso de activos de software en las
especificaciones de anlisis, diseos, implementacin y pruebas de una aplicacin o sistemas de software. 8
La reutilizacin tiene ciertos Indicadores por ejemplo:
1. Entre el 40% y 60% de una aplicacin es reutilizable en otra.
2. Aproximadamente el 60% de una aplicacin administrativa es reutilizable.
3. Aproximadamente el 75% de las funciones son comunes a ms de un programa.
4. Solo el 15% del cdigo encontrado en muchos sistemas es nico y novedoso a una aplicacin especfica.
El rango general de uso recurrente esta entre el 15% y 85%. 9
La reutilizacin tiene Principios como la existencia de parecidos en distintos sistemas de un mismo dominio,
donde el software puede representarse como una combinacin de mdulos y los sistemas nuevos se puede
caracterizar por diferencias respecto a los antiguos sistemas. 10
Modelos de mejora de procesos
El Capability Maturity Model Integration (CMMI), en espaol Integracin de Modelos de Madurez de
Capacidades es uno de los modelos lderes basados en mejores prcticas. Son evaluaciones
independientes las que confirman el grado con el que una organizacin siguen sus propios procesos,
que no evala la calidad de los procesos o del software que se produce. CMMI ha reemplazado
a CMM y tiene un mbito global, no slo en procesos destinados al desarrollo del software.
ISO 9000
ISO 9000 describe estndares para un proceso organizado formalmente para resultar en un producto
y los mtodos de gestin y monitoreo del progreso. Aunque este estndar se cre inicialmente para el
sector de produccin, los estndares de ISO 9000 tambin se han aplicado al desarrollo del software.
Al igual que CMMI, que una organizacin est certificada con el ISO 9000 no garantiza la calidad del
resultado final, slo confirma que se ha seguido los procesos establecidos.
ISO 15504
ISO
15504,
tambin
conocido
como Software
Process
Improvement
Capability
Determination (SPICE), en espaol Determinacin de la Capacidad de Mejora del Proceso de
Software es un marco para la evaluacin de procesos de software. Este estndar tiene como
objetivo un modelo claro para poder comparar procesos. SPICE se utiliza como en el caso de CMMI.
Modela procesos para gestionar, controlar, guiar y monitorear el desarrollo del software. Este modelo
se utiliza entonces para medir lo que una organizacin o proyecto hace durante el desarrollo del
software. Esta informacin se analiza para identificar puntos dbiles y definir acciones para
subsanarlos. Tambin identifica puntos fuertes que pueden adoptarse en el resto de la organizacin.
Mtodos formales
Los mtodos formales son soluciones matemticas para resolver problemas de software y hardware a
nivel de requisitos, especificacin y diseo. Ejemplos de mtodos formales incluyen el Mtodo B,
la red de Petri, la demostracin automtica de teoremas, RAISE y el VDM. Hay varias notaciones de
especificaciones formales, tales como el lenguaje Z. Ms generalmente, se puede utilizar la teora de
autmatas para aumentar y validar el comportamiento de la aplicacin diseando un sistema
de autmata finito.
Las metodologas basadas en los autmatas finitos permiten especificacin de software ejecutable y
evitar la creacin convencional de cdigo.
Los mtodos formales se suelen aplicar en software de aviacin, especialmente si es software de
seguridad crtico. Los estndares de aseguramiento del software de seguridad, tales
como DO178B demandan mtodos formales en el nivel ms alto de categorizacin (Nivel A).
ROMER E. QUITO ROJAS

AREAS TECNICAS E.P.T.


COMPUTACION E INFORMATICA

La formalizacin del desarrollo de software est ganando en fuerza poco a poco, en otros mbitos,
con la aplicacin del lenguaje de especificacin OCL2.0 (y especializaciones tales como Java
Modeling Language) y particularmente con Model-driven Architecture, que permite la ejecucin de
diseos, incluso especificaciones.
Otra tendencia que est surgiendo en el desarrollo de software es la redaccin de especificaciones en
algn tipo de lgica (normalmente una variacin de FOL), para acto seguido ejecutar esa lgica como
si se tratase de un programa. El lenguaje OWL, basado en lgica descriptiva, es un buen ejemplo.
Tambin se est trabajando en enlazar un idioma natural de forma automtica con lgica, lgica que
puede ejecutarse. Ejemplo en este campo es el Attempto Controlled English, una lgica de negocios
de Internet, que no busca controlar el vocabulario o la sintaxis. Una caractersticas de los sistemas
que apoyan el vnculo bidireccional ingls-lgica y ejecucin directa de la lgica es que pueden
explicar sus resultados en ingls en un nivel de negocios o cientfico.
El proceso que se sigue para construir, entregar y hacer evolucionar el software, desde la concepcin de una
idea hasta la entrega y el retiro del sistema.
Pre-alfa
La fase conocida como '''pre-alfa''' se publica a veces antes del lanzamiento de una versin alfa o beta. En
contraste con la versin alfa y las versiones beta, la pre-alfa no tiene sus caractersticas completas. Los
diseadores todava estn determinando en esta etapa exactamente qu funcionalidades debe tener el
producto. Tales etapas se pueden llamar tambin ''development releases'' o ''nightly builds''.
Alfa
La versin '''alfa''' de un producto es la primera para la que el equipo de desarrollo decide que implementa
todas las funcionalidades especificadas en los requisitos. Es la primera versin del programa que se enva a
los verificadores para probarla.
Algunos equipos de desarrollo utilizan el trmino '''alfa''' informalmente para referirse a una fase donde un
producto todava es inestable, aguarda todava a que se eliminen los errores o a la puesta en prctica
completa de toda su funcionalidad, pero satisface la mayora de los requisitos.
El nombre se deriva de alfa, la primera letra en el alfabeto griego.
Beta
Una '''versin beta''' o '''lanzamiento beta''' representa generalmente la ''primera versin completa'' del
programa informtico o de otro producto, que es probable que sea inestable pero til para que las
demostraciones internas y las inspecciones previas seleccionen a clientes. Algunos desarrolladores se
refieren a esta etapa como ''inspeccin previa (preview)'' o como una ''inspeccin previa tcnica (technical
preview )''. Esta etapa comienza a menudo cuando los desarrolladores anuncian una congelacin de las
caractersticas del producto, indicando que no sern agregadas ms caractersticas a esta versin y que
solamente se harn pequeas ediciones o se corregirn errores. Las versiones beta estn en un paso
intermedio en el ciclo de desarrollo completo. Los desarrolladores las lanzan a un grupo de '''probadores
beta''' o betatester (a veces el pblico en general) para una prueba de usuario. Los probadores divulgan
cualquier error de software que encuentran y caractersticas, a veces de menor importancia, que quisieran ver
en la versin final.
Cuando una versin beta llega a estar disponible para el pblico en general que a menudo es utilizada
extensamente por los tecnolgicamente expertos o familiarizados con versiones anteriores, como si el
producto estuviera acabado. Generalmente los desarrolladores de las versiones betas del freeware software
gratuito o de cdigo abierto los lanzan al pblico en general, mientras que las versiones beta propietarias van
a un grupo relativamente pequeo de probadores. En febrero de 2005, ZDNet public un artculo acerca del
fenmeno reciente de las versiones beta que permanecan a menudo por aos y que eran utilizada como si
estuvieran en nivel de produccin. Observa que Gmail, igual que las Google noticias, por ejemplo, han estado
en beta por un perodo de tiempo muy largo y no saldrn del estado beta a pesar del hecho de que se han
utilizado extensamente. Esta tcnica puede tambin permitir a un desarrollador retrasar el ofrecimiento de
apoyo total o la responsabilidad de ediciones restantes. Los receptores de betas altamente propietarias
pueden tener que firmar un acuerdo de no revelacin.
Como esta es la segunda etapa en el ciclo de desarrollo que sigue la etapa de alfa, esta se nombra como la
siguiente letra griega beta.
Versin candidata a definitiva
El trmino '''candidata a definitiva''' o '''candidata para el lanzamiento''' (si traducimos ms literalmente desde
el trmino en ingls, ''release candidate'') se refiere a un producto final, preparado para lanzarse como versin
definitiva a menos que aparezcan errores que lo impidan. En esta fase el producto implementa todas las
funciones del diseo y se encuentra libre de cualquier error que suponga un punto muerto en el desarrollo.
Microsoft utiliza frecuentemente este trmino. Otros trminos relacionados incluyen gamma, delta (y tal vez
ms letras griegas) para versiones que estn prcticamente completas pero todava en pruebas; y omega
para versiones que se creen libres de errores y se hallan en el proceso final de pruebas. Gamma, delta y
omega son, respectivamente, la tercera, cuarta y ltima letras del alfabeto griego.
Versin de disponibilidad general

ROMER E. QUITO ROJAS

AREAS TECNICAS E.P.T.


COMPUTACION E INFORMATICA

La versin de disponibilidad general (tambin llamada "dorada") de un producto es su versin final.


Normalmente es casi idntica a la versin candidata final, con slo correcciones de ltimo momento. Esta
versin es considerada muy estable y relativamente libre de errores con una calidad adecuada para una
distribucin amplia y usada por usuarios finales. En versiones comerciales, puede estar tambin firmada
(usado para que los usuarios finales verifiquen que el cdigo no ha sido cambiado desde su salida. La
expresin de que un producto "se ha dorado" significa que que el cdigo ha sido completado y que "est
siendo producido masivamente y estar en venta prximamente".
El trmino "dorado" se refiere anecdticamente al uso del "disco maestro de oro" que fue frecuentemente
usado para enviar la versin final a los fabricantes que lo usan para producir las copias de venta al detalle.
Esto puede ser una herencia de la produccin musical. En algunos casos, sin embargo, el disco maestro est
realmente hecho de oro, tanto por apariencia esttica como por resistencia a la corrosin.
Microsoft y otros usan el trmino "release to manufacturing" (RTM) para referirse a esta versin (para
productos comerciales como Windows XP, tal como "Build 2600 is the Windows XP RTM release"), y "release
to Web" (RTW) para productos libremente descargables.
El mantenimiento de software
El mantenimiento de software es una de las actividades ms comunes en la Ingeniera de Software y es el
proceso de mejora y optimizacin del software desplegado (es decir; revisin del programa), as como
tambin correccin de los defectos.
El mantenimiento de software es tambin una de las fases en el Ciclo de Vida de Desarrollo de Sistemas
(SDLC System Development Life Cycle), que se aplica al desarrollo de software. La fase de mantenimiento
es la fase que viene despus del despliegue (implementacin) del software en el campo.
Tipos de mantenimiento
A continuacin se sealan los tipos de mantenimientos existentes, y entre parntesis el porcentaje
aproximado respecto al total de operaciones de mantenimiento:
Perfectivo: (60%): mejora del software (rendimiento, flexibilidad, reusabilidad) o implementacin de nuevos
requisitos. Tambin se conoce como mantenimiento evolutivo.
Adaptativo
DESARROLLO DEL SOFTWARE
Desarrollar un software significa construirlo simplemente mediante su descripcin. Est es una muy
buena razn para considerar la actividad de desarrollo de software como una ingeniera. En un nivel ms
general, la relacin existente entre un software y su entorno es clara ya que el software es introducido en el
mundo de modo de provocar ciertos efectos en el mismo.
Aquellas partes del mundo que afectarn al software y que sern afectadas por l ser el Dominio de
Aplicacin. Es all donde los usuarios o clientes observarn si el desarrollo del software ha cumplido su
propsito.
Una de las mayores deficiencias en la prctica de construccin de software es la poca atencin que
se presta a la discusin del problema. En general los desarrolladores se centran en la solucin dejando el
problema inexplorado. El problema a resolver debe ser deducido a partir de su solucin.
Esta aproximacin orientada a la solucin puede funcionar en campos donde todos los problemas son
bien conocidos, clasificados e investigados, donde la innovacin se ve en la deteccin de nuevas soluciones a
viejos problemas.
Pero el desarrollo de software no es un campo con tales caractersticas. La versatilidad de las
computadoras y su rpida evolucin hace que exista un repertorio de problemas en constante cambio y cuya
solucin software sea de enorme importancia.
Desarrollo del Software
Cuando se va desarrollar un software intervienen muchas personas como lo es el cliente quien es el
que tiene el problema en su empresa y desea que sea solucionado, para esto existe el analista de sistema
quien es el encargado de hacerle llegar todos los requerimientos y necesidades que tiene el cliente a los
programadores quienes son las personas encargadas de realizar lo que es la codificacin y diseo del
sistema para despus probarlo y lo instalan al cliente. Es as como intervienen varias personas ya que una
sola persona no podra determinar todo lo necesario lo mas seguro que le haga falta algn requerimiento o
alguna parte del nuevo sistema y entre mas estn involucradas mejor para cubrir con todos los requerimientos
del sistema.
Proceso

ROMER E. QUITO ROJAS

AREAS TECNICAS E.P.T.


COMPUTACION E INFORMATICA

El proceso de desarrollo del software se muestra grficamente en la parte de arriba, a continuacin


desarrollara una breve explicacin del mismo.
El primer paso del proceso es el anlisis, es aqu donde el analista se pone en contacto con la
empresa para ver como esta conformada, a que se dedica, saber todas las actividades que realiza en si,
conocer la empresa de manera general para posteriormente ver cuales son sus necesidades o requerimientos
que la empresa tiene en ese momento para poder realizar un anlisis de la misma.
Es importante saber cuales son los requerimientos que la empresa tiene por que muchas veces los
sistemas se desarrollan pero no pensando en el cliente y es ah donde el sistema no cumple o no satisface
las necesidades que existen en la empresa, segn los requerimientos se empieza a realizar el diagrama
relacional todo debe de llevar una secuencia lgica de las actividades, todo esto se realiza de manera manual
para ver como ser su diseo lgico y diseo de pantallas es en este paso donde se plasma todo y queda
perfectamente bien definido como va hacer la funcionalidad del sistema.
El segundo paso es el de diseo aqu entran todo el diseo del sistema es decir las pantallas, base de
datos, todo esto debe de cumplir con ciertos estndares los cuales se toman en cuenta para poder desarrollar
el diseo con calidad y as poder ofrecer un diseo amigable en cuestin de colores, tamaos de botones,
cajas de texto, etc.
El tercer paso es la codificacin es aqu donde se desarrolla todo el cdigo del sistema por parte del
programador esto se hace ya dependiendo de cada programador ya que cada programador tiene sus bases o
formas para realizarlo pero en si deben todos llegar al mismo objetivo de ofrecerle funcionalidad al sistema
siempre y cuando apegando se a las especificaciones del cliente.
El cuarto paso son las pruebas, es donde al sistema se pone a prueba como su palabra lo dice para
as poder saber cuales son los posibles errores que se estn generando del sistema y con ello mejorarlo para
eliminar todos los errores que se puedan presentar por que un programa con menor errores mayor calidad
puede llegar a tener.
El quinto y ltimo paso es la instalacin una vez realizado las pruebas correspondientes al sistema y
haberlo corregido totalmente se procede a la instalacin del mismo ya en la empresa para su uso
correspondiente, todo con la finalidad de que los procesos se realicen de una manera ms eficiente
eliminando costos, tiempo y esfuerzo dentro de la organizacin.
Para aplicar la mejora continua a todo lo anterior es necesario aplicar ciertos pruebas las cuales
debern de probar cada etapa del desarrollo del software dichas pruebas se deben de realizar de forma
paralela y de forma continua probando la unidad del programa, la integracin del diseo fsico, probando el
sistema en cuestin al diseo lgico y por ultimo prueba de aceptacin esta se realiza en base a los
requerimientos que se obtuvieron anteriormente, este es un proceso de prueba sencilla y muy utilizada.
Otros puntos que son importantes considerar son las auditorias y las acciones correctivas representan
el motor impulsor de la mejora continua en el sistema de calidad, por lo que es de vital importancia llevar un
estricto control en el seguimiento de todos los problemas o no conformidades desde su deteccin hasta la
eliminacin definitiva de la causa raz.
Para haber desarrollado un plan de prueba primero se debi haber basado en lo que son los
requerimientos para posteriormente describir las tcnicas de pruebas a utilizar que se aplicaran en las
diferentes etapas del desarrollo del software.
Algo muy importante que no se puede dejar pasar es que todas las pruebas se deben de realizar
durante la realizacin del software ya que si se llegara esperar al final del desarrollo del sistema esto puede
ser muy tardado y costoso devolverse al origen de los posibles errores, mientras todo programa se este
probando durante su desarrollo es lo mejor y mas optimo para quien lo esta desarrollando, ya que de esta
manera disminuye costos, tiempo y esfuerzo en el desarrollo del software y de esta manera puede brindar un
software de calidad al cliente siempre cumpliendo con las necesidades o requerimientos del cliente.
Como conclusin se puede decir que con la mejora continua garantiza la calidad del producto, ya que el
estarla aplicando da con da es lo mejor decisin que puede llegar a tener cualquier empresa, por que de
esta manera evita grandes problemas en la elaboracin o desarrollo de los productos. Esto es fundamental
para todas las empresas ya que se vuelven competitivas, con mayor productividad y eficiencia. No hay que

ROMER E. QUITO ROJAS

AREAS TECNICAS E.P.T.


COMPUTACION E INFORMATICA

olvidar que la mejora se da por que el cliente es el rey y hay que satisfacer todas y cada una de sus
necesidades siempre garantizando la calidad.
Metodologa:
Todo desarrollo de software es riesgoso y difcil de controlar, pero si no llevamos una metodologa de
por medio, se obtiene clientes insatisfechos con el resultado y desarrolladores aun mas.
Sin embargo muchas veces no se toma en cuenta el utilizar una metodologa adecuada, sobre todo
cuando se trata de proyectos pequeos de dos o tres meses.
Con relacin a los proyectos que se desarrollan con mayor envergadura, hay si se toma el sentido de
basarse en una metodologa de desarrollo y se empieza a buscar cual seria la mas apropiada para dicho
caso. A fin de cuenta no encontramos muchas veces la meas adecuada y se termina por hacer un diseo
propio de metodologa, por supuesto no esta mal siempre y cuando sirva para alcanzar el objetivo.
Muchas veces se realiza el diseo del software de manera rgida, tal cual como el cliente lo solicito,
de esa manera cuando el cliente en la etapa de prueba solicita un cambio se hace muy difcil de realizarlo,
pues si se hace altera las cosas que no se haban previsto, y este es uno de los factores que atrasan el
proyecto y crea incomodidad al desarrollador y en muchas oportunidades no llegan a cumplir con el cambio
solicitado, esto conlleva malestar en el cliente puesto que no se sido tomado en cuenta su pedido; para evitar
estos incidentes se debe llegar a un acuerdo formal con el cliente al inicio del proyecto de manera que no
perjudique el desarrollo del mismo.
Muchas veces los usuarios finales se dan cuenta que dejaron de mencionar algunas cosas y lo
manifiestan en la etapa inicial del proyecto cuando se le muestra el prototipo del mismo.
ALGUNAS Metodologas conocidas:
La metodologa RUP es la ms adaptable para proyectos de largo plazo.
La metodologa XP en cambio, se recomienda para proyectos de corto plazo.
La metodologa MSF se adapta a proyectos de cualquier dimensin y de cualquier tecnologa.
Se puede decir adems que lo ms importante antes de elegir la metodologa que se debe usar para
implementar el software, es determinar el alcance que tendr y luego de all ver cual es la que mas se
acomoda a la aplicacin.
Ejemplos:
El ejemplo del software lo hacen numerosas empresas, cada vez mas gobiernos (registro gratis). Los
expertos lo recomiendan, lo hacen particulares a millones. Hasta (a regaadientes) Microsoft. La idea absurda
de dejar abierta las tripas del software y permitir que la gente las mire, e incluso que las modifique, copie y
use en condiciones diferentes, en la industria de la informtica es muy comn. De hecho se extiende a los
ms pequeos rincones del mundo desde una orden mgica hermtica de tradicin masnica y rosacruciana
a telefnica I+D. Si hasta las empresas en filosofa ms expuesta o menos rpidas en novacin y las
sociedades secretas son capaces de ver las ventajas del OPEN SOURCE (abierto o libre).
No ha sido sencillo la idea conocida como dicho software (abierto o libre) a tenido una vida larga pero
difcil, dirigida por polmicas aparentemente absurda pero que contienen un profundo debate ideolgico y
practico; a veces dividido en partes enfrentadas con mucha pasin; siempre descalificada, lo cierto es que la
comunidad del software abierto hoy es una fuerte y sana realidad.
Importancia:
Actualmente la transicin que estamos viviendo hacia una sociedad del conocimiento a cambiado
profundamente las relaciones entre las personas, empresas y gobiernos: las empresas usan la red para
comunicarse con los clientes, utilizan tambin herramientas de gestin del conocimiento para hacer masa
eficientes, los gobiernos mejoran su presencia en Internet y los servicios a los ciudadanos a travs de la red,
los usuarios usan las herramientas para sus relaciones personales, etc. Se va de forma imparable hacia una
sociedad altamente interconectada donde el eje fundamental es la informacin.
El software es el intermediario cada vez mas grande entre la informacin y la inteligencia humana. De
la misma manera que preocupa para poder acceder a la informacin, si existe la censura, es tema de
preocupacin de quien controla este intermediario y las garantas de su transparencia y confiabilidad.
En principio, el software es un programa informtico o conjunto de ellos que tiene un fin determinado,
es el de procesar los textos que usamos, el controlador de grabacin de nuestros espacios favoritos o las
aplicaciones que permiten operar un telfono mvil.
Esta compuesto por un conjunto de instrucciones que el usuario realiza para ejecutar una funcin
especifica. Normalmente los programadores escriben en un lenguaje en el que todos pueden entender y que
despus es traducido al lenguaje binario el nico que las maquinas entienden. El conjunto de rdenes en el
lenguaje que todos trabajan se llaman cdigo fuente.
Sino se accede al cdigo solo se puede usar el programa, no se puede ver como esta hecho o
introducir comentarios. Un ejemplo muy utilizado es el de la receta de cocina, en el que el cdigo fuente son
las instrucciones que permite confeccionar un plato. Sin la receta solo se pude degustar el plato, pero no se
sabe si se le aade algo vaya en contra de algunos de esos ingredientes ya que se desconocen su

ROMER E. QUITO ROJAS

AREAS TECNICAS E.P.T.


COMPUTACION E INFORMATICA

composicin y proporcin. En este sentido, el codigo fuente juega un papel fundamental en la manera como
se debe entender el software.
Se podran poner varios ejemplos para entender dicha importancia. A finales de los 90 se pudo ver
en todo el mundo la preocupacin por parte de empresa y gobiernos por las consecuencias que podan tener
el llamado efecto 2000. El famoso error informtico era debido al hecho de que muchos programas
almacenaban la parte de la fecha correspondiente al ao utilizando nicamente dos dgitos, de tal manera,
que despus del ao 99 (el 1999) podamos pasar al ao 00 ( ao 2000 o ao 1900?) causando todo tipo de
errores en el calculo de periodo de tiempo.
Los ordenadores de las empresas elctricas, centrales nucleares, sistema de control de aviacin,
bancos y en general, todo el software de uso cotidiano, tuvieron que ser revisados. Finalmente algunas
aplicaciones fueron corregidas, otras ya funcionaban correctamente y no hubo que lamentar ninguna
catstrofe, pero hubo miles de predicciones apocalpticas sobre las consecuencias que se podra llegar a
obtener este error, as podra ver sido si no se hubiera reparado a tiempo.
Es por eso, el software tiene un papel muy importante en la sociedad sobre manera garantizar
mtodos trasparentes en sus diferentes fases de produccin y explotacin.
Conclusin
El desarrollo del software y la programacin es uno de los pilares fundamentales de la informtica y
al cual se dedican muchas horas de esfuerzos en empresas, colegios, academias y universidades.
Conforme a la tecnologa va avanzando, van apareciendo nuevas soluciones, nuevas formas de
programacin, nuevos lenguajes y un sin fin de herramientas que intentan realizar el trabajo del desarrollador
un poco mas fcil.
La programacin orientadas a objetos o los compiladores basados en maquinas virtuales (en muchos
casos, multiplataforma), tambin a sus puestos unas renovacin en la manera de programar.
Microsoft como empresa desarrolladora se software, es consciente de lo importante que es hacer
buenos desarrollos y lo complicado que es; por eso, intenta aportar las mejores soluciones al mercado. En la
actualidad la sociedad se encuentra en una poca de transicin, que se encamina hacia un nuevo estilo de
programacin basada en estndares y para ello Microsoft propone la plataforma .NET.
Recomendaciones
Excepto en casos singulares, el software (que incluye al firware de los computadores) nunca es
propiedad del usuario. La adquisicin del programa es en realidad la adquisicin solamente del derecho de
uso del programa, la licencia, bajo termino definidos por el fabricante. El uso de software fuera de esos
trminos constituye un delito contra la propiedad intelectual.
Debe instalarse solamente el software necesario para las funciones esperadas del equipo. En la
mayora de los casos, eso se limita al software bsicos sistemas operativos (usualmente Windows 95),
aplicativos de oficina y navegacin (usualmente Office 97, Internet Explorer 4.01) y el cliente de red
(BackOffice Todo computador adquirido para la universidad debe contar con licencias para software
mencionado (o su equivalente en plataformas Macintosh o Unix), en esas versiones o mas recientes. Las
licencias deben corresponder a las versiones, ya que no se pueden instalar una versin mas recientes con
una licencia de versiones anteriores.
Mantenimiento de software
En ingeniera del software, el mantenimiento de software es la modificacin de un producto de software
despus de la entrega, para corregir errores, mejorar el rendimiento, u otros atributos.1 El mantenimiento del
software es una de las actividades ms comunes en la ingeniera de software.
El mantenimiento de software es tambin una de las fases en el ciclo de vida de desarrollo de sistemas
(SDLC, sigla en ingls de system development life cycle), que se aplica al desarrollo de software. La fase de
mantenimiento es la fase que viene despus del despliegue (implementacin) del software en el campo.
Una percepcin comn del mantenimiento es que se trata meramente de la correccin de defectos. Sin
embargo, un estudio indic que la mayora, ms del 80%, del esfuerzo de mantenimiento es usado para
acciones no correctivas (Pigosky 1997). Esta percepcin es perpetuada por usuarios enviando informes de
problemas que en realidad son mejoras de funcionalidad al sistema[cita requerida].
El mantenimiento del software y la evolucin de los sistemas fue abordada por primera vez por Meir M.
Lehman en 1969. Durante un perodo de veinte aos, su investigacin condujo a la formulacin de las leyes
de Lehman (Lehman 1997). Principales conclusiones de su investigacin incluyen que el mantenimiento es
realmente un desarrollo evolutivo y que las decisiones de mantenimiento son ayudadas por entender lo que
sucede a los sistemas (y al software) con el tiempo. Lehman demostr que los sistemas continan
evolucionando con el tiempo. A medida que evolucionan, ellos crecen ms complejos a menos que se toman
algunas medidas como refactorizacin de cdigo para reducir la complejidad.
Los problemas claves de mantenimiento de software son administrativos y tcnicos. Problemas clave de
administracin son: alineacin con las prioridades del cliente, dotacin de personal, cul organizacin hace
mantenimiento, estimacin de costos. Son cuestiones tcnicas claves: limitado entendimiento, anlisis de
impacto, pruebas (testing), medicin de mantenibilidad.
ROMER E. QUITO ROJAS

AREAS TECNICAS E.P.T.


COMPUTACION E INFORMATICA

El mantenimiento de software es una actividad muy amplia que incluye la correccin de errores, mejoras de
las capacidades, eliminacin de funciones obsoletas y optimizacin. Debido a que el cambio es inevitable, se
debe desarrollar mecanismos para la evaluacin, controlar y hacer modificaciones.
As que cualquier trabajo realizado para cambiar el software despus de que est en operacin es
considerado trabajo de mantenimiento. El propsito es preservar el valor del software sobre el tiempo. El valor
puede ser mejorado ampliando la base de clientes, cumpliendo requisitos adicionales, siendo cada vez ms
fcil de usar, ms eficiente y empleando ms nuevas tecnologa. El mantenimiento puede abarcar 20 aos,
mientras que el desarrollo puede estar entre 1 y 2 aos.
Importancia del mantenimiento de software
A finales de los aos 1970, una famosa y ampliamente citada estudio de encuesta por Lientz y Swanson,
expuso la muy alta fraccin de los costos del ciclo de vida que estaban siendo gastados en mantenimiento.
Clasificaron las actividades de mantenimiento en cuatro clases:
Adaptable modificar el sistema para hacer frente a cambios en el ambiente del software (DBMS, OS)2
Perfectivo implementar nuevos, o cambiar requerimientos de usuario referentes a mejoras funcionales para
el software
Correctivo, diagnosticar y corregir errores, posiblemente los encontraron por los usuarios2
Preventiva aumentar la capacidad de mantenimiento de software o fiabilidad para evitar problemas en el
futuro2
La encuesta mostr que alrededor del 75% del esfuerzo de mantenimiento fue en los dos primeros dos tipos,
y la correccin de errores consuma aproximadamente el 21%. Muchos estudios posteriores sugieren una
magnitud similar del problema. Los estudios muestran que la contribucin del usuario final es crucial durante
el anlisis y recopilacin de nuevos datos de requerimiento. Y sta es la causa principal de cualquier
problema durante el mantenimiento y evolucin del software. As que el mantenimiento de software es
importante porque consume gran parte de los costos del ciclo de vida y tambin la imposibilidad de cambiar el
software de forma rpida y fiable significa que las oportunidades de negocio se pierden.

ROMER E. QUITO ROJAS

Вам также может понравиться