Академический Документы
Профессиональный Документы
Культура Документы
COMPUTACION E INFORMATICA
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.
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.
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
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.
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
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
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
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
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.