Software
Dentro de la categoría de software
de aplicación están incluidos losprocesadores de texto comoLibreOffice Writer (arriba) y loseditores
gráficos rasterizados comoKrita (abajo).
Se conoce como software1 al
equipamiento lógico o soporte lógico de unsistema informático, que comprende el conjunto de los componenteslógicos necesarios
que hacen posible la realización de tareas específicas, en contraposición a los
componentes físicos que son llamados hardware.
Los componentes lógicos incluyen, entre muchos otros,
las aplicaciones
informáticas; tales como el procesador de texto, que permite al usuario realizar todas las tareas
concernientes a la edición de textos; el llamadosoftware de sistema, tal como el sistema operativo, que básicamente permite al resto de los programas funcionar
adecuadamente, facilitando también la interacción entre los componentes físicos
y el resto de las aplicaciones, y proporcionando una interfaz con el usuario.
El anglicismo "software"
es el más ampliamente difundido al referirse a este concepto, especialmente en
la jerga técnica; el término sinónimo"logical", derivado
del término francés "logiciel", sobre todo es utilizado
en países y zonas de influencia francesa.
Etimología
Software
(pronunciación AFI:[ˈsɒftwɛəʳ]) es una palabra proveniente del inglés (literalmente: partes blandas o suaves), que
en español no posee una traducción adecuada al contexto, por lo cual se la
utiliza asiduamente sin traducir y así fue admitida por la Real Academia Española (RAE).2 Aunque puede no ser estrictamente lo mismo,
suele sustituirse por expresiones tales como programas (informáticos) o aplicaciones
(informáticas) o soportes lógicos.3
Definición de software
Existen
varias definiciones similares aceptadas para software, pero probablemente la
más formal sea la siguiente:
Es el
conjunto de los programas de cómputo, procedimientos, reglas, documentación y
datos asociados, que forman parte de las operaciones de un sistema de
computación.
Considerando
esta definición, el concepto de software va más allá de los programas de
computación en sus distintos estados: código
fuente, binario o ejecutable; también su documentación, los datos a
procesar e incluso la información de usuario forman parte del software: es
decir, abarca todo lo
intangible, todo lo «no físico» relacionado.
El
término «software» fue usado por primera vez en este sentido por John W.
Tukey en 1957. En la
ingeniería de software y las ciencias de la computación, el software
es toda la información procesada por los sistemas informáticos: programas y datos.
El
concepto de
leer diferentes secuencias de instrucciones (programa)
desde la memoria de un dispositivo para
controlar los cálculos fue introducido por Charles Babbage como parte de su máquina diferencial. La teoría que forma la base de la mayor parte
del software moderno fue propuesta por Alan Turing en
su ensayo de 1936, «Los números computables», con una aplicación al problema de
decisión
Clasificación del software
Si bien
esta distinción es, en cierto modo, arbitraria, y a veces confusa, a los fines
prácticos se puede clasificar al software en tres grandes tipos:
· Software de sistema: Su objetivo es desvincular adecuadamente al
usuario y al programador de los detalles del sistema informático en particular
que se use, aislándolo especialmente del procesamiento referido a las
características internas de: memoria, discos, puertos y dispositivos de
comunicaciones, impresoras, pantallas, teclados, etc. El software de sistema le
procura al usuario y programador adecuadas interfaces de alto nivel,controladores,
herramientas y utilidades de apoyo que permiten el mantenimiento del sistema
global. Incluye entre otros:
· Herramientas de Corrección y
Optimización
· Software de programación: Es el conjunto de herramientas que permiten
al programador desarrollar programas informáticos, usando
diferentes alternativas y lenguajes de programación, de una
manera práctica. Incluyen básicamente:
· Entornos de Desarrollo Integrados
(IDE):
Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma
tal que el programador no necesite introducir múltiples comandos para
compilar, interpretar,depurar, etc. Habitualmente cuentan con una avanzada interfaz gráfica de usuario (GUI).
· Software de aplicación: Es
aquel que permite a los usuarios llevar a cabo una o varias tareas específicas,
en cualquier campo de actividad susceptible de ser automatizado o asistido, con
especial énfasis en los negocios. Incluye entre muchos otros:
Proceso de creación del software
Se define
como proceso al conjunto ordenado de pasos a seguir
para llegar a la solución de un problema u obtención de un producto, en este
caso particular, para lograr un producto software que resuelva un problema
específico.
El
proceso de creación de software puede llegar a ser muy complejo, dependiendo de
su porte, características y criticidad del mismo. Por ejemplo la creación de un
sistema operativo es una tarea que requiere proyecto, gestión, numerosos
recursos y todo un equipo disciplinado de trabajo. En el otro extremo, si se
trata de un sencillo programa (por ejemplo, la resolución de una ecuación de
segundo orden), éste puede ser realizado por un solo programador (incluso
aficionado) fácilmente. Es así que normalmente se dividen en tres categorías
según su tamaño (líneas de código) o costo: de «pequeño», «mediano» y «gran
porte». Existen varias metodologías para estimarlo,
una de las más populares es el sistema COCOMO que provee métodos y un software (programa)
que calcula y provee una aproximación de todos los costos de producción en un
«proyecto software» (relación horas/hombre, costo monetario, cantidad de líneas
fuente de acuerdo a lenguaje usado, etc.).
Considerando
los de gran porte, es necesario realizar complejas tareas, tanto técnicas como
de gerencia, una fuerte gestión y análisis diversos (entre otras cosas), la
complejidad de ello ha llevado a que desarrolle una ingeniería específica para
tratar su estudio y realización: es conocida como Ingeniería de Software.
En tanto
que en los de mediano porte, pequeños equipos de trabajo (incluso un avezado analista-programadorsolitario)
pueden realizar la tarea. Aunque, siempre en casos de mediano y gran porte (y a
veces también en algunos de pequeño porte, según su complejidad), se deben
seguir ciertas etapas que son necesarias para la construcción del software.
Tales etapas, si bien deben existir, son flexibles en su forma de aplicación,
de acuerdo a la metodología oproceso de desarrollo escogido y utilizado por el equipo de
desarrollo o por el analista-programador solitario (si fuere el caso).
Los «procesos
de desarrollo de software» poseen reglas preestablecidas, y deben ser
aplicados en la creación del software de mediano y gran porte, ya que en caso
contrario lo más seguro es que el proyecto no logre concluir o termine sin
cumplir los objetivos previstos, y con variedad de fallos inaceptables
(fracasan, en pocas palabras). Entre tales «procesos» los hay ágiles o livianos
(ejemplo XP), pesados y lentos (ejemplo RUP), y
variantes intermedias. Normalmente se aplican de acuerdo al tipo y porte del
software a desarrollar, a criterio del líder (si lo hay) del equipo de
desarrollo. Algunos de esos procesos son Programación Extrema (en inglés eXtreme
Programming o XP), Proceso Unificado de Rational (en inglés Rational Unified Process o RUP),
Feature Driven Development (FDD), etc.
Cualquiera
sea el «proceso» utilizado y aplicado al desarrollo del software (RUP, FDD, XP,
etc), y casi independientemente de él, siempre se debe aplicar un «modelo de
ciclo de vida».6
Se estima
que, del total de proyectos software grandes emprendidos, un 28% fracasan, un
46% caen en severas modificaciones que lo retrasan y un 26% son totalmente
exitosos. 7
Cuando un
proyecto fracasa, rara vez es debido a fallas técnicas, la principal causa de
fallos y fracasos es la falta de aplicación de una buena metodología o proceso
de desarrollo. Entre otras, una fuerte tendencia, desde hace pocas décadas, es
mejorar las metodologías o procesos de desarrollo, o crear nuevas y
concientizar a los profesionales de la informática a su utilización adecuada. Normalmente los
especialistas en el estudio y desarrollo de estas áreas (metodologías) y afines
(tales como modelos y hasta la gestión misma de los proyectos) son los
ingenieros en software, es su orientación. Los especialistas en cualquier otra
área de desarrollo informático (analista, programador, Lic. en informática,
ingeniero en informática, ingeniero de sistemas, etc.) normalmente aplican sus
conocimientos especializados pero utilizando modelos, paradigmas y procesos ya
elaborados.
Es común
para el desarrollo de software de mediano porte que los equipos humanos
involucrados apliquen «metodologías propias», normalmente un híbrido de los
procesos anteriores y a veces con criterios propios.
El
proceso de desarrollo puede involucrar numerosas y variadas tareas,6 desde lo administrativo, pasando por lo
técnico y hasta la gestión y el gerenciamiento. Pero, casi rigurosamente,
siempre se cumplen ciertas etapas
mínimas; las que se pueden resumir como sigue:
· Diseño
· Pruebas (unitarias y de
integración)
· Instalación y paso a producción
En las
anteriores etapas pueden variar ligeramente sus nombres, o ser más globales, o
contrariamente, ser más refinadas; por ejemplo indicar como una única fase (a
los fines documentales e interpretativos) de «análisis y diseño»; o indicar
como «implementación» lo que está dicho como «codificación»; pero en rigor,
todas existen e incluyen, básicamente, las mismas tareas específicas.
En el
apartado 4 del presente artículo se brindan mayores detalles de cada una de las
etapas indicadas.
Modelos
de proceso o ciclo de vida
Para cada
una de las fases o etapas listadas en el ítem anterior, existen sub-etapas (o
tareas). El modelo de proceso o modelo de ciclo de vida utilizado para el desarrollo, define el orden
de las tareas o actividades involucradas,6también
define la coordinación entre ellas, y su enlace y realimentación. Entre los más
conocidos se puede mencionar: modelo en
cascada o
secuencial, modelo espiral, modelo iterativo
incremental. De los antedichos hay a su vez algunas variantes o alternativas,
más o menos atractivas según sea la aplicación requerida y sus requisitos.7
Modelo
cascada
Este,
aunque es más comúnmente conocido como modelo en
cascada es
también llamado «modelo clásico», «modelo tradicional» o «modelo lineal
secuencial».
El modelo
en cascada puro difícilmente
se utiliza tal cual, pues esto implicaría un previo y absoluto conocimiento de los requisitos, la no
volatilidad de los mismos (o rigidez) y etapas subsiguientes libres de errores;
ello sólo podría ser aplicable a escasos y pequeños sistemas a desarrollar. En
estas circunstancias, el paso de una etapa a otra de las mencionadas sería sin
retorno, por ejemplo pasar del diseño a la codificación implicaría un diseño
exacto y sin errores ni probable modificación o evolución: «codifique lo
diseñado sin errores, no habrá en absoluto variantes futuras». Esto es utópico;
ya que intrínsecamente el
software es de carácter evolutivo,9 cambiante y difícilmente libre de errores,
tanto durante su desarrollo como durante su vida operativa.6
Algún
cambio durante la ejecución de una cualquiera de las etapas en este modelo
secuencial implicaría reiniciar desde el principio todo el ciclo completo, lo
cual redundaría en altos costos de tiempo y desarrollo. La Figura 2 muestra un
posible esquema de el modelo en cuestión.6
Sin
embargo, el modelo cascada en algunas de sus variantes es uno de los
actualmente más utilizados,10 por su eficacia y simplicidad, más que nada
en software de pequeño y algunos de mediano porte; pero nunca (o muy rara vez)
se lo usa en su "forma pura", como se dijo anteriormente. En lugar de
ello, siempre se produce algunarealimentación entre etapas, que no es completamente
predecible ni rígida; esto da oportunidad al desarrollo de productos software
en los cuales hay ciertas incertezas, cambios o evoluciones durante el ciclo de
vida. Así por ejemplo, una vez capturados y especificados los requisitos
(primera etapa) se puede pasar al diseño del sistema, pero durante esta última
fase lo más probable es que se deban realizar ajustes en los requisitos (aunque
sean mínimos), ya sea por fallas detectadas, ambigüedades o bien por que los
propios requisitos han cambiado o evolucionado; con lo cual se debe retornar a
la primera o previa etapa, hacer los reajuste pertinentes y luego continuar
nuevamente con el diseño; esto último se conoce como realimentación. Lo normal en el modelo cascada será
entonces la aplicación del mismo con sus etapas realimentadas de alguna forma,
permitiendo retroceder de una a la anterior (e incluso poder saltar a varias
anteriores) si es requerido.
De esta
manera se obtiene el «modelo cascada realimentado», que puede ser esquematizado
como lo ilustra la Figura 3.
Fig. 3 -
Modelo cascada realimentado para el ciclo de vida.
Lo dicho es, a grandes rasgos, la
forma y utilización de este modelo, uno de los más usados y populares.6 El modelo cascada realimentado resulta muy
atractivo, hasta ideal, si el proyecto presenta alta rigidez (pocos cambios,
previsto no evolutivo), los requisitos son muy claros y están correctamente
especificados.10
Hay más variantes similares al
modelo: refino de etapas (más etapas, menores y más específicas) o incluso
mostrar menos etapas de las indicadas, aunque en tal caso la faltante estará
dentro de alguna otra. El orden de esas fases indicadas en el ítem previo es el
lógico y adecuado, pero adviértase, como se dijo, que normalmente habrá
realimentación hacia atrás.
El modelo lineal o en cascada es
el paradigma más antiguo y extensamente utilizado, sin embargo las críticas a
él (ver desventajas) han puesto en duda su eficacia. Pese a todo, tiene un
lugar muy importante en la Ingeniería de software y continúa siendo el más utilizado; y siempre
es mejor que un enfoque al azar.10
· Los cambios introducidos durante
el desarrollo pueden confundir al equipo profesional en las etapas tempranas
del proyecto. Si los cambios se producen en etapa madura (codificación o
prueba) pueden ser catastróficos para un proyecto grande.
· No es frecuente que el cliente o
usuario final explicite clara y completamente los requisitos (etapa de inicio);
y el modelo lineal lo requiere. La incertidumbre natural en los comienzos es
luego difícil de acomodar.10
· El cliente debe tener paciencia
ya que el software no estará disponible hasta muy avanzado el proyecto. Un
error detectado por el cliente (en fase de operación) puede ser desastroso,
implicando reinicio del proyecto, con altos costos.
Modelos
evolutivos
El software evoluciona con el
tiempo.11 9 Los requisitos del usuario y del producto
suelen cambiar conforme se desarrolla el mismo. Las fechas de mercado y la
competencia hacen que no sea posible esperar a poner en el mercado un producto
absolutamente completo, por lo que se aconsejable introducir una versión
funcional limitada de alguna forma para aliviar las presiones competitivas.
En esas u otras situaciones
similares los desarrolladores necesitan modelos de progreso que estén diseñados
para acomodarse a una evolución temporal o progresiva, donde los requisitos
centrales son conocidos de antemano, aunque no estén bien definidos a nivel
detalle.
En el modelo cascada y cascada
realimentado no se tiene demasiado en cuenta la naturaleza evolutiva del
software,11 se plantea como estático, con requisitos bien
conocidos y definidos desde el inicio.6
Los evolutivos son modelos
iterativos, permiten desarrollar versiones cada vez más completas y complejas,
hasta llegar al objetivo final deseado; incluso evolucionar más allá, durante
la fase de operación.
Los modelos «iterativo
incremental» y «espiral» (entre otros) son dos de los más conocidos y
utilizados del tipo evolutivo.10
Modelo
iterativo incremental
En términos generales, se puede
distinguir, en la Figura 4, los pasos generales que sigue el proceso de
desarrollo de un producto software. En el modelo de ciclo de vida seleccionado,
se identifican claramente dichos pasos. La descripción del sistema es esencial
para especificar y confeccionar los distintos incrementos hasta llegar al
producto global y final. Las actividades concurrentes (especificación,
desarrollo y validación) sintetizan el desarrollo pormenorizado de los
incrementos, que se hará posteriormente.
Fig. 4 -
Diagrama genérico del desarrollo evolutivo incremental.
El diagrama de la Figura 4
muestra en forma muy esquemática, el funcionamiento de un ciclo iterativo
incremental, el cual permite la entrega de versiones parciales a medida que se
va construyendo el producto final.6 Es decir, a medida que cada incremento
definido llega a su etapa de operación y mantenimiento. Cada versión emitida
incorpora a los anteriores incrementos las funcionalidades y requisitos que
fueron analizados como necesarios.
El incremental es un modelo de
tipo evolutivo que está basado en varios ciclos Cascada Realimentados aplicados
repetidamente, con una filosofía iterativa.10 En la Figura 5 se muestra un refino del
diagrama previo, bajo un esquema temporal, para obtener finalmente el esquema
del modelo de ciclo de vida Iterativo Incremental, con sus actividades genéricas
asociadas. Aquí se observa claramente cada ciclo cascada que es aplicado para
la obtención de un incremento; estos últimos se van integrando para obtener el
producto final completo. Cada incremento es un ciclo Cascada Realimentado,
aunque, por simplicidad, en la Figura 5 se muestra como secuencial puro.Fig. 5 - Modelo iterativo incremental para el ciclo
de vida del software,.
Se observa que existen
actividades de desarrollo (para cada incremento) que son realizadas en paralelo
o concurrentemente, así por ejemplo, en la Figura, mientras se realiza el
diseño detalle del primer incremento ya se está realizando en análisis del segundo.
La Figura 5 es sólo esquemática, un incremento no necesariamente se iniciará
durante la fase de diseño del anterior, puede ser posterior (incluso antes), en
cualquier tiempo de la etapa previa. Cada incremento concluye con la actividad
de «operación y mantenimiento» (indicada como «Operación» en la figura), que es
donde se produce la entrega del producto parcial al cliente. El momento de
inicio de cada incremento es dependiente de varios factores: tipo de sistema;
independencia o dependencia entre incrementos (dos de ellos totalmente
independientes pueden ser fácilmente iniciados al mismo tiempo si se dispone de
personal suficiente); capacidad y cantidad de profesionales involucrados en el
desarrollo; etc.
Bajo este modelo se entrega
software «por partes funcionales más pequeñas», pero reutilizables, llamadas
incrementos. En general cada incremento se construye sobre aquel que ya fue
entregado.6
Como se muestra en la Figura 5,
se aplican secuencias Cascada en forma escalonada, mientras progresa el tiempo
calendario. Cada secuencia lineal o Cascada produce un incremento y a menudo el
primer incremento es un sistema básico, con muchas funciones suplementarias
(conocidas o no) sin entregar.
El cliente utiliza inicialmente
ese sistema básico, intertanto, el resultado de su uso y evaluación puede
aportar al plan para el desarrollo del/los siguientes incrementos (o
versiones). Además también aportan a ese plan otros factores, como lo es la
priorización (mayor o menor urgencia en la necesidad de cada incremento en
particular) y la dependencia entre incrementos (o independencia).
Luego de cada integración se
entrega un producto con mayor funcionalidad que el previo. El proceso se repite
hasta alcanzar el software final completo.
Siendo iterativo, con el modelo incremental se
entrega un producto parcial pero completamente operacional en cada incremento,
y no una parte que sea usada para reajustar los requisitos (como si ocurre en
el modelo de construcción de prototipos).10
El enfoque incremental resulta
muy útil cuando se dispone de baja dotación de personal para el desarrollo;
también si no hay disponible fecha límite del proyecto por lo que se entregan
versiones incompletas pero que proporcionan al usuario funcionalidad básica (y
cada vez mayor). También es un modelo útil a los fines de versiones de
evaluación.
Nota: Puede ser considerado y
útil, en cualquier momento o incremento incorporar temporalmente el paradigma MCPcomo
complemento, teniendo así una mixtura de modelos que mejoran el esquema y
desarrollo general.
Ejemplo:
Un procesador de texto que sea
desarrollado bajo el paradigma Incremental podría aportar, en principio,
funciones básicas de edición de archivos y producción de documentos (algo como
un editor
simple). En un segundo incremento se le podría agregar edición más
sofisticada, y de generación y mezcla de documentos. En un tercer incremento podría considerarse
el agregado de funciones de corrección ortográfica, esquemas de paginado yplantillas; en un
cuarto capacidades de dibujo propias y ecuaciones matemáticas. Así
sucesivamente hasta llegar al procesador final requerido. Así, el producto va
creciendo, acercándose a su meta final, pero desde la entrega del primer
incremento ya es útil y funcional para el cliente, el cual observa una respuesta
rápida en cuanto a entrega temprana; sin notar que la fecha límite del proyecto
puede no estar acotada ni tan definida, lo que da margen de operación y alivia
presiones al equipo de desarrollo.
Como se dijo, el Iterativo
Incremental es un modelo del tipo evolutivo, es decir donde se permiten y
esperan probables cambios en los requisitos en tiempo de desarrollo; se admite
cierto margen para que el software pueda evolucionar.9Aplicable
cuando los requisitos son medianamente bien conocidos pero no son completamente
estáticos y definidos, cuestión esa que si es indispensable para poder utilizar
un modelo Cascada.
El modelo es aconsejable para el
desarrollo de software en el cual se observe, en su etapa inicial de análisis,
que posee áreas bastante bien definidas a cubrir, con suficiente independencia
como para ser desarrolladas en etapas sucesivas. Tales áreas a cubrir suelen
tener distintos grados de apremio por lo cual las mismas se deben priorizar en
un análisis previo, es decir, definir cual será la primera, la segunda, y así
sucesivamente; esto se conoce como «definición de los incrementos» con base en
la priorización. Pueden no existir prioridades funcionales por parte del
cliente, pero el desarrollador debe fijarlas de todos modos y con algún
criterio, ya que basándose en ellas se desarrollarán y entregarán los distintos
incrementos.
El hecho de que existan
incrementos funcionales del software lleva inmediatamente a pensar en un esquema
de desarrollo modular, por tanto este modelo facilita tal
paradigma de diseño.
En resumen, un modelo incremental
lleva a pensar en un desarrollo modular, con entregas parciales del producto
software denominados «incrementos» del sistema, que son escogidos según
prioridades predefinidas de algún modo. El modelo permite una implementación
con refinamientos sucesivos (ampliación o mejora). Con cada incremento se agrega
nueva funcionalidad o se cubren nuevos requisitos o bien se mejora la versión
previamente implementada del producto software.
Este modelo brinda cierta
flexibilidad para que durante el desarrollo se incluyan cambios en los
requisitos por parte del usuario, un cambio de requisitos propuesto y aprobado
puede analizarse e implementarse como un nuevo incremento o, eventualmente,
podrá constituir una mejora/adecuación de uno ya planeado. Aunque si se produce
un cambio de requisitos por parte del cliente que afecte incrementos previos ya
terminados (detección/incorporación tardía) se
debe evaluar la factibilidad y realizar un acuerdo con el cliente, ya que puede
impactar fuertemente en los costos.
La selección de este modelo
permite realizar entregas
funcionales tempranas al cliente (lo
cual es beneficioso tanto para él como para el grupo de desarrollo). Se
priorizan las entregas de aquellos módulos o incrementos en que surja la
necesidad operativa de hacerlo, por ejemplo para cargas previas de información,
indispensable para los incrementos siguientes.10
El modelo iterativo incremental
no obliga a especificar con precisión y detalle absolutamente todo lo que el
sistema debe hacer, (y cómo), antes de ser construido (como el caso del
cascada, con requisitos congelados). Sólo se hace en el incremento en
desarrollo. Esto torna más manejable el proceso y reduce el impacto en los
costos. Esto es así, porque en caso de alterar o rehacer los requisitos, solo
afecta una parte del sistema. Aunque, lógicamente, esta situación se agrava si
se presenta en estado avanzado, es decir en los últimos incrementos. En definitiva, el modelo facilita
la incorporación de nuevos requisitos durante el desarrollo.
Con un paradigma incremental se
reduce el tiempo de desarrollo inicial, ya que se implementa funcionalidad
parcial. También provee un impacto ventajoso frente al cliente, que es la
entrega temprana de partes operativas del software.
El modelo proporciona todas las
ventajas del modelo en cascada realimentado, reduciendo sus desventajas sólo al
ámbito de cada incremento.
El modelo incremental no es
recomendable para casos de sistemas de tiempo
real, de alto nivel de seguridad, deprocesamiento distribuido, o de alto índice de riesgos.
Modelo
espiral
El modelo espiral fue propuesto
inicialmente por Barry
Boehm. Es un modelo evolutivo que conjuga la naturaleza iterativa del
modelo MCP con los
aspectos controlados y sistemáticos del Modelo Cascada. Proporciona potencial
para desarrollo rápido de versiones incrementales. En el modelo Espiral el software
se construye en una serie de versiones incrementales. En las primeras
iteraciones la versión incremental podría ser un modelo en papel o bien un
prototipo. En las últimas iteraciones se producen versiones cada vez más
completas del sistema diseñado.6 10
El modelo se divide en un número
de Actividades de marco de trabajo, llamadas «regiones de tareas». En
general existen entre tres y seis regiones de tareas (hay variantes del
modelo). En la Figura 6 se muestra el esquema de un Modelo Espiral con 6
regiones. En este caso se explica una variante del modelo original de Boehm,
expuesto en su tratado de 1988; en 1998 expuso un tratado más reciente.
Fig. 6 - Modelo espiral para el ciclo de vida del software.
Las regiones definidas en el
modelo de la figura son:
· Región 1 - Tareas requeridas para
establecer la comunicación entre el cliente y el desarrollador.
· Región 2 - Tareas inherentes a la
definición de los recursos, tiempo y otra información relacionada con el
proyecto.
· Región 3 - Tareas necesarias para
evaluar los riesgos técnicos y de gestión del proyecto.
· Región 4 - Tareas para construir
una o másrepresentaciones de
la aplicación software.
· Región 5 - Tareas para construir
la aplicación, instalarla, probarla y proporcionar soporte al usuario o cliente
(Ej. documentación y práctica).
· Región 6 - Tareas para obtener la
reacción del cliente, según la evaluación de lo creado e instalado en los
ciclos anteriores.
Las actividades enunciadas para
el marco de trabajo son generales y se aplican a cualquier proyecto, grande,
mediano o pequeño, complejo o no. Las regiones que definen esas actividades
comprenden un «conjunto de tareas» del trabajo: ese conjunto sí se debe adaptar
a las características del proyecto en particular a emprender. Nótese que lo
listado en los ítems de 1 a 6 son conjuntos de tareas, algunas de las ellas
normalmente dependen del proyecto o desarrollo en si.
Proyectos pequeños requieren baja
cantidad de tareas y también de formalidad. En proyectos mayores o críticos
cada región de tareas contiene labores de más alto nivel de formalidad. En
cualquier caso se aplican actividades de protección (por ejemplo, gestión de
configuración del software, garantía de calidad, etc.).
Al inicio del ciclo, o proceso
evolutivo, el equipo de ingeniería gira alrededor del espiral (metafóricamente
hablando) comenzando por el centro (marcado con ๑ en la Figura 6) y en el sentido indicado; el
primer circuito de la espiral puede producir el desarrollo de una especificación del producto; los pasos siguientes podrían
generar un prototipo y progresivamente versiones más sofisticadas
del software.
Cada paso por la región de
planificación provoca ajustes en el plan del proyecto; el coste y planificación
se realimentan en función de la evaluación del cliente. El gestor de proyectos
debe ajustar el número de iteraciones requeridas para completar el desarrollo.
El modelo espiral puede ir
adaptándose y aplicarse a lo largo de todo el Ciclo de vida del software (en el modelo clásico, o cascada, el proceso
termina a la entrega del software).
Una visión alternativa del modelo
puede observarse examinando el «eje de punto de entrada de proyectos». Cada uno
de los circulitos (๏) fijados a lo largo del eje representan puntos de arranque de los
distintos proyectos (relacionados); a saber:
· Un proyecto de «desarrollo de
conceptos» comienza al inicio de la espiral, hace múltiples iteraciones hasta
que se completa, es la zona marcada con verde.
· Si lo anterior se va a
desarrollar como producto real, se inicia otro proyecto: «Desarrollo de nuevo
Producto». Que evolucionará con iteraciones hasta culminar; es la zona marcada
en color azul.
· Eventual y análogamente se
generarán proyectos de «mejoras de productos» y de «mantenimiento de
productos», con las iteraciones necesarias en cada área (zonas roja y gris, respectivamente).
Cuando la espiral se caracteriza
de esta forma, está operativa hasta
que el software se retira, eventualmente puede estar inactiva (el proceso),
pero cuando se produce un cambio el proceso arranca nuevamente en el punto de
entrada apropiado (por ejemplo, en «mejora del producto»).
El modelo espiral da un enfoque
realista, que evoluciona igual que el software;11 se adapta muy bien para desarrollos a gran
escala.
El Espiral utiliza el MCP para
reducir riesgos y permite aplicarlo en cualquier etapa de la evolución.
Mantiene el enfoque clásico (cascada) pero incorpora un marco de trabajo
iterativo que refleja mejor la realidad.
Este modelo requiere considerar riesgos
técnicos en todas las etapas
del proyecto; aplicado adecuadamente debe reducirlos antes de que sean un
verdadero problema.
El Modelo evolutivo como el
Espiral es particularmente apto para el desarrollo de Sistemas Operativos
(complejos); también en sistemas de altos riesgos o críticos (Ej. navegadores y
controladores aeronáuticos) y en todos aquellos en que sea necesaria una fuerte
gestión del proyecto y sus riesgos, técnicos o de gestión.
Desventajas importantes:
· Requiere mucha experiencia y
habilidad para la evaluación de los riesgos, lo cual es requisito para el éxito
del proyecto.
· Es difícil convencer a los
grandes clientes que se podrá controlar este enfoque evolutivo.
Este modelo no se ha usado tanto,
como el Cascada (Incremental) o MCP, por lo que no se tiene bien medida su eficacia, es un paradigma
relativamente nuevo y difícil de implementar y controlar.
Modelo
espiral Win & Win
Una variante interesante del
Modelo Espiral previamente visto (Figura 6) es el «Modelo espiral Win-Win»7 (Barry
Boehm). El Modelo Espiral previo (clásico) sugiere la comunicación con
el cliente para fijar los requisitos, en que simplemente se pregunta al cliente
qué necesita y él proporciona la información para continuar; pero esto es en un
contexto ideal que rara vez ocurre. Normalmente cliente y desarrollador entran
en una negociación, se negocia coste frente a funcionalidad, rendimiento,
calidad, etc.
«Es así que la obtención de
requisitos requiere una negociación, que tiene éxito cuando ambas partes
ganan».
Las mejores negociaciones se
fuerzan en obtener «Victoria & Victoria» (Win & Win), es decir que el
cliente gane obteniendo el producto que lo satisfaga, y el desarrollador
también gane consiguiendo presupuesto y fecha de entrega realista.
Evidentemente, este modelo requiere fuertes habilidades de negociación.
El modelo Win-Win define un
conjunto de actividades de negociación al principio de cada paso alrededor de
la espiral; se definen las siguientes actividades:
1. Identificación del sistema o
subsistemas clave de los directivos(*) (saber qué quieren).
2. Determinación de «condiciones de
victoria» de los directivos (saber qué necesitan y los satisface)
3. Negociación de las condiciones
«victoria» de los directivos para obtener condiciones «Victoria & Victoria»
(negociar para que ambos ganen).
(*) Directivo: Cliente escogido
con interés directo en el producto, que puede ser premiado por la organización
si tiene éxito o criticado si no.
El modelo Win & Win hace
énfasis en la negociación inicial, también introduce 3 hitos en el proceso
llamados «puntos de fijación», que ayudan a establecer la completitud de un
ciclo de la espiral, y proporcionan hitos de decisión antes de continuar el
proyecto de desarrollo del software.
Etapas en el desarrollo
del software
Captura,
análisis y especificación de requisitos
Al inicio de un desarrollo (no de
un proyecto), esta es la primera fase que se realiza, y, según el modelo de
proceso adoptado, puede casi terminar para pasar a la próxima etapa (caso de
Modelo Cascada Realimentado) o puede hacerse parcialmente para luego retomarla
(caso Modelo Iterativo Incremental u otros de carácter evolutivo).
En simple palabras y básicamente,
durante esta fase, se adquieren, reúnen y especifican las características
funcionales y no funcionales que deberá cumplir el futuro programa o sistema a
desarrollar.
Las bondades de las
características, tanto del sistema o programa a desarrollar, como de su
entorno, parámetros no funcionales y arquitectura dependen enormemente de lo
bien lograda que esté esta etapa. Esta es, probablemente, la de mayor
importancia y una de las fases más difíciles de lograr certeramente, pues no es
automatizable, no es muy técnica y depende en gran medida de la habilidad y
experiencia del analista que la realice.
Involucra fuertemente al usuario
o cliente del sistema, por tanto tiene matices muy subjetivos y es difícil de
modelar con certeza o aplicar una técnica que sea «la más cercana a la
adecuada» (de hecho no existe «la estrictamente adecuada»). Si bien se han
ideado varias metodologías, incluso software de apoyo, para captura, elicitación
y registro de requisitos, no existe una forma infalible o absolutamente
confiable, y deben aplicarse conjuntamente buenos criterios y mucho sentido
común por parte del o los analistas encargados de la tarea; es fundamental
también lograr una fluida y adecuada comunicación y comprensión con el usuario
final o cliente del sistema.
El artefacto más importante resultado de la culminación de
esta etapa es lo que se conoce como especificación de
requisitos software o
simplemente documento ERS.
Como se dijo, la habilidad del
analista para interactuar con el cliente es fundamental; lo común es que el
cliente tenga un objetivo general o problema que resolver, no conoce en
absoluto el área (informática), ni su jerga, ni siquiera sabe con precisión qué
debería hacer el producto software (qué y cuantas funciones) ni, mucho menos,
cómo debe operar. En otros casos menos frecuentes, el cliente «piensa» que sabe
precisamente lo que el software tiene que hacer, y generalmente acierta muy
parcialmente, pero su empecinamiento entorpece la tarea de elicitación. El
analista debe tener la capacidad para lidiar con este tipo de problemas, que
incluyen relaciones humanas; tiene que saber ponerse al nivel del usuario para
permitir una adecuada comunicación y comprensión.
Escasas son las situaciones en
que el cliente sabe con certeza e incluso con completitud lo que requiere de su
futuro sistema, este es el caso más sencillo para el analista.
Las tareas relativas a captura,
elicitación, modelado y registro de requisitos, además de ser sumamente
importante, puede llegar a ser dificultosa de lograr acertadamente y llevar
bastante tiempo relativo al proceso total del desarrollo; al proceso y
metodologías para llevar a cabo este conjunto de actividades normalmente se las
asume parte propia de laIngeniería de Software, pero dada la antedicha
complejidad, actualmente se habla de una Ingeniería de requisitos12 , aunque ella aún no existe formalmente.
Hay grupos de estudio e
investigación, en todo el mundo, que están exclusivamente abocados a idear
modelos, técnicas y procesos para intentar lograr la correcta captura, análisis
y registro de requisitos. Estos grupos son los que normalmente hablan de la
Ingeniería de requisitos; es decir se plantea ésta como un área o disciplina
pero no como una carrera universitaria en si misma.
Algunos requisitos no necesitan
la presencia del cliente, para ser capturados o analizados; en ciertos casos
los puede proponer el mismo analista o, incluso, adoptar unilateralmente
decisiones que considera adecuadas (tanto en requisitos funcionales como no
funcionales). Por citar ejemplos probables: Algunos requisitos sobre la
arquitectura del sistema, requisitos no funcionales tales como los relativos al
rendimiento, nivel de soporte a errores operativos, plataformas de desarrollo,
relaciones internas o ligas entre la información (entre registros o tablas de
datos) a almacenar en caso de bases o bancos de datos, etc. Algunos funcionales
tales como opciones secundarias o de soporte necesarias para una mejor o más
sencilla operatividad; etc.
La obtención de especificaciones
a partir del cliente (u otros actores intervinientes) es un proceso humano muy
interactivo e iterativo; normalmente a medida que se captura la información, se
la analiza y realimenta con el cliente, refinándola, puliéndola y corrigiendo
si es necesario; cualquiera sea el método de ERS utilizado. EL analista siempre debe llegar a
conocer la temática y el problema que resolver, dominarlo, hasta cierto punto,
hasta el ámbito que el futuro sistema a desarrollar lo abarque. Por ello el
analista debe tener alta capacidad para comprender problemas de muy diversas
áreas o disciplinas de trabajo (que no son específicamente suyas); así por
ejemplo, si el sistema a desarrollar será para gestionar información de una
aseguradora y sus sucursales remotas, el analista se debe compenetrar en cómo
ella trabaja y maneja su información, desde niveles muy bajos e incluso
llegando hasta los gerenciales. Dada a gran diversidad de campos a cubrir, los
analistas suelen ser asistidos por especialistas, es decir gente que conoce profundamente
el área para la cual se desarrollará el software; evidentemente una única
persona (el analista) no puede abarcar tan vasta cantidad de áreas del
conocimiento. En empresas grandes de desarrollo de productos software, es común
tener analistas especializados en ciertas áreas de trabajo.
Contrariamente, no es problema
del cliente, es decir él no tiene por qué saber nada de software, ni de
diseños, ni otras cosas relacionadas; sólo se debe limitar a aportar objetivos,
datos e información (de mano propia o de sus registros, equipos, empleados,
etc) al analista, y guiado por él, para que, en primera instancia, defina el «Universo
de Discurso», y con posterior trabajo logre confeccionar el adecuado
documento ERS.
Es bien conocida la presión que
sufren los desarrolladores de sistemas informáticos para comprender y rescatar
las necesidades de los clientes/usuarios. Cuanto más complejo es el contexto
del problema más difícil es lograrlo, a veces se fuerza a los desarrolladores a
tener que convertirse en casi expertos de los dominios que analizan.
Cuando esto no sucede es muy
probable que se genere un conjunto de requisitos13 erróneos o incompletos y por lo tanto un
producto de software con alto grado de desaprobación por parte de los
clientes/usuarios y un altísimo costo de reingeniería y mantenimiento. Todo aquello que no se detecte, o
resulte mal entendido en la etapa inicial provocará un fuerte impacto negativo
en los requisitos, propagando esta corriente degradante a lo largo de todo el
proceso de desarrollo e incrementando
su perjuicio cuanto más tardía sea su detección (Bell y Thayer 1976)(Davis 1993).
Procesos,
modelado y formas de elicitación de requisitos
Siendo que la captura,
elicitación y especificación de requisitos, es una parte crucial en el proceso
de desarrollo de software, ya que de esta etapa depende el logro de los
objetivos finales previstos, se han ideado modelos y diversas metodologías de
trabajo para estos fines. También existen herramientas software que apoyan las
tareas relativas realizadas por el ingeniero en requisitos.
El estándar IEEE 830-1998 brinda
una normalización de las «Prácticas Recomendadas para la Especificación de
Requisitos Software».14
A medida que se obtienen los
requisitos, normalmente se los va analizando, el resultado de este análisis,
con o sin el cliente, se plasma en un documento, conocido como ERS o Especificación de
Requisitos Software, cuya estructura puede venir definida por varios estándares,
tales como CMMI.
Un primer paso para realizar el
relevamiento de información es el conocimiento y definición acertada lo que se
conoce como «Universo de Discurso» del problema, que se define y entiende por:
Universo de Discurso (UdeD): es el
contexto general en el cual el software deberá ser desarrollado y deberá
operar. El UdeD incluye todas las fuentes de información y todas las personas
relacionadas con el software. Esas personas son conocidas también como actores de ese universo. El UdeD es la
realidad circunstanciada por el conjunto de objetivos definidos por quienes
demandaron el software.
A partir de la extracción y
análisis de información en su ámbito se obtienen todas las especificaciones
necesarias y tipos de requisitos para el futuro producto software.
El objetivo de la Ingeniería de requisitos (IR) es sistematizar el proceso de definición
de requisitos permitiendo elicitar, modelar y analizar el problema, generando
un compromiso entre los ingenieros de requisitos y los clientes/usuarios, ya
que ambos participan en la generación y definición de los requisitos del
sistema. La IR aporta un conjunto de métodos, técnicas y herramientas que
asisten a los ingenieros de requisitos (analistas) para obtener requisitos lo
más seguros, veraces, completos y oportunos posibles, permitiendo básicamente:
· Comprender el problema
· Facilitar la obtención de las
necesidades del cliente/usuario
· Validar con el cliente/usuario
· Garantizar las especificaciones
de requisitos
Si bien existen diversas formas,
modelos y metodologías para elicitar, definir y documentar requisitos, no se
puede decir que alguna de ellas sea mejor o peor que la otra, suelen tener
muchísimo en común, y todas cumplen el mismo objetivo. Sin embargo, lo que si
se puede decir sin dudas es que es indispensable utilizar alguna de ellas para
documentar las especificaciones del futuro producto software. Así por ejemplo,
hay un grupo de investigación argentino que desde hace varios años ha propuesto
y estudia el uso del LEL (Léxico Extendido del Lenguaje) y Escenarios como
metodología, aquí15 se presenta una de las tantas referencias y
bibliografía sobre ello. Otra forma, más ortodoxa, de capturar y documentar
requisitos se puede obtener en detalle, por ejemplo, en el trabajo de la
Universidad de Sevilla sobre «Metodología para el Análisis de Requisitos de
Sistemas Software».16
En la Figura 7 se muestra un
esquema, más o menos riguroso, aunque no detallado, de los pasos y tareas a
seguir para realizar la captura, análisis y especificación de requisitos
software. También allí se observa qué artefacto o documento se obtiene en cada
etapa del proceso. En el diagrama no se explicita metodología o modelo a
utilizar, sencillamente se pautan las tareas que deben cumplirse, de alguna
manera.
Escáner
· Escáner de computadora: se utiliza para introducir imágenes de papel, libros,
negativos o diapositivas. Estos dispositivos ópticos pueden reconocer caractéres o imágenes, y para
referirse a este se emplea en ocasiones la expresión lector óptico (de
caracteres). El escáner 3D es una
variación de éste para modelos tridimensionales. Clasificado como un
dispositivo o periférico de entrada, es un aparato electrónico, que explora o permite
"escanear" o "digitalizar" imágenes o documentos, y lo
traduce en señales eléctricas para su procesamiento y, salida o almacenamiento.
· Escáner de
código de barras: al pasarlo por
el código de barras manda el número del código de barras al computador; no una imagen del
código de barras. Avisa, con un «bip», que la lectura ha sido correcta. Son
típicos en los comercios y almacenes.
· En Identificación
biométrica se usan varios métodos para reconocer a
la persona autorizada. Entre ellos el escáner del iris, de
la retina o de
lashuellas dactilares.
· En medicina se
usan varios sistemas para obtener imágenes del cuerpo, como la TAC, la RMN o la TEP. Se suele referir a estos sistemas como escáner.
Entre los
sistemas que rastrean o buscan señales u objetos están:
· Escáner
de radiofrecuencias, que buscan entre el espectro de radio alguna señal que se esté emitiendo.
En informática,
una aplicación es un tipo de programa informático diseñado como herramienta
para permitir a un usuario realizar uno o diversos tipos de trabajos. Esto lo
diferencia principalmente de otros tipos de programas como los sistemas
operativos (que hacen funcionar al ordenador), las utilidades (que realizan tareas de mantenimiento o
de uso general), y los lenguajes de programación (con
el cual se crean los programas informáticos).
Suele resultar una
solución informática para la automatización de
ciertas tareas complicadas como pueden ser la contabilidad, la
redacción de documentos, o la gestión de un almacén. Algunos ejemplos de
programas de aplicación son los procesadores de textos, hojas de cálculo, y base de
datos.
Ciertas aplicaciones
desarrolladas «a medida» suelen ofrecer una gran potencia ya que están
exclusivamente diseñadas para resolver un problema específico. Otros, llamados
paquetes integrados de software, ofrecen menos potencia pero a cambio incluyen
varias aplicaciones, como un programa procesador de textos, de hoja de cálculo
y de base de datos.
Diagrama
mostrando la ubicación y relación que tienen las aplicaciones frente al usuario
final, y con otros programas informáticos existentes.
Otros ejemplos de
programas de aplicación pueden ser: programas de comunicación de datos, multimedia,
presentaciones, diseño gráfico, cálculo,finanzas, correo electrónico, navegador
web, compresión de archivos, presupuestos de obras, gestión de
empresas, etc.
Algunas compañías agrupan
diversos programas de distinta naturaleza para que formen un paquete (llamados
suites o suite ofimática) que sean satisfactorios para
las necesidades más apremiantes del usuario. Todos y cada uno de ellos sirven
para ahorrar tiempo y dinero al usuario, al permitirle hacer cosas útiles con
el ordenador (o computadora); algunos con ciertas
prestaciones, otros con un determinado diseño; unos son más amigables o fáciles
de usar que otros, pero bajo el mismo principio.
Actualmente, con el uso de
dispositivos móviles se ha extendido el concepto APP, Aplicación informática
para dispositivos móviles o tablets con multitud de funcionalidades. Desde
juegos hasta aplicaciones para realizar tareas cotidianas. Es un abanico enorme
que hacen más interactivo los dispositivos móviles.
El
mundo de las finanzas y el de la tecnología van cada vez más parejos. Es por
ello que el creciente mercado de las aplicaciones móviles ha obtenido una gran
importancia notable en el control del gasto, incluso a nivel usuario.
Presentamos las aplicaciones más destacadas del mercado con este
fin, en una selección realizada por elconfidencial.com
Cámara
digital
Una cámara
digital es una cámara fotográfica que, en vez de captar y almacenar fotografías en películas químicacomo las cámaras fotográficas de película fotográfica, aprovecha el proceso de la fotografía digital para generar y almacenar imágenes.
Las cámaras digitales compactas modernas
generalmente son multifuncionales y contienen algunos dispositivos capaces de
grabar sonido y/o video además de fotografías. En
este caso, al aparato también se lo denomina cámara
filmadora digital. Actualmente se venden más cámaras fotográficas digitales
que cámaras con película de 35 mm.1
El computador 3D "del futuro" ya
está aquí
La computadora 3D fue
presentada por su creador en la charla TED de Los Angeles, EE.UU.
"El único límite es
la imaginación".
No, no es la frase de un nuevo
comercial de tarjeta de crédito ni la dice el personaje de alguna película como
Minority Report.
Contenido relacionado
La frase es la favorita del
innovador tecnológico Jinha Lee para resumir su trabajo.
Y adquiere sentido al ver las
caras de su audiencia en TED (organización dedicada a dar charlas y realizar
foros sobre tecnología, educación y diseño), la cual vio con sus propios ojos
la demostración del gran invento de Lee: la computadora 3D.
Una máquina transparente, que
permite a los usuarios tocar el interior e interactuar con el contenido digital
fue la última joya tecnológica dada a conocer en la conferencia TED en Los
Angeles.
Masivamente utilizada en series
futuristas o de ciencia ficción, la máquina no sólo es real, sino que su
creador asegura que podría masificarse durante la última década.
El sistema consta de una
pantalla transparente LED con cámaras incorporadas, que rastrean gestos del
usuario y los movimientos de sus ojos.
Jinha
Lee, miembro de TED, ha estado trabajando en colaboración con Microsoft en el
SpaceTop 3D. Esta computadora sería clave a la hora de convertir la informática
en un campo "mucho más intuitivo", que permite que las personas
interactúen con las máquinas de la misma manera que lo hacen con otros objetos,
según su cread COMPUTADORAS
TODO EN UNO
Jinha Lee presentó su
computador 3D y una bola "mágica" capaz de flotar por el aire.
El diseño fue inspirado por lo
que su creador ve como una necesidad humana esencial: la interacción con las
cosas.
"La memoria espacial,
donde el cuerpo intuitivamente recuerda dónde están las cosas, es una habilidad
muy humana", dijo.
Traducir esto al mundo digital
permitirá a las personas a utilizar las computadores con mayor facilidad, así
como completar tareas más complejas.
"Si tú estás trabajando en
un documento, puedes tomarlo y pasar las páginas como un libro", le dijo
Lee a Jane Wakefield, reportera tecnológica de la BBC.
Para las tareas más precisas,
donde gestos con las manos no son exactos, hay una pantalla táctil. Esto
permitirá a los arquitectos, por ejemplo, manipular modelos 3D.
"La brecha entre lo que el
diseñador piensa y lo que la computadora puede hacer es enorme. Si puedes poner
tus manos en el interior de la computadora y manejar el contenido digital,
entonces puedes expresar tus ideas de forma más completa", dijo.
No todos están tan convencidos
con traer a la realidad el estilo "Minority Report".
En una entrevista con The Awl,
el diseñador de sitios web Brown Christian dijo: "Las manos humanas y los
dedos son buenos para sentir la textura y el detalle, y para agarrar cosas.
Nada de eso es aprovechado por las interfaces táctiles".
"El verdadero futuro de
las interfaces aprovechará nuestras habilidades naturales de diferenciar
texturas y utilizar nuestras manos para hacer cosas sin mirar".
Mientras
un computador clásico equivale a una máquina de
Turing, un ... En
consecEste
último puede ser no más que una computadora
digital equipado con un ...
analógicas
para el procesamiento digital ordinario y viceversa,uencia, la computación digital tradicional no tardaría en llegar a su
límite,
la nueba computadora para tu hogar
sistemas Dell para su hogar
APLICACIONES:
Las computadoras le han facilitado al hombre el
trabajo debido a que simplemente se le tiene que dar algunas ordenes,
información para que este las procese y así el hombre desarrolle todo lo que
necesite y además junto con la red y algunos periféricos que estos poseen
facilitan de igual manera entretenimiento y comunicación.
Es por esta razon que se quiere motivar a conocimiento del funcionamiento de
este equipo tan util.
Es un hecho que la computadora y en general las TIC son
elementos que caracterizan a la civilización contemporánea.
La computadora y las TIC en nuestros días
definen una sociedad futura en que los medios de comunicación se volverán
gradualmente más computarizados y conectados a la red. Estos cambios sociales
imponen nuevas formas de pensar y actuar a los miembros de la sociedad y en
particular a los profesores. La utilización de los avances tecnológicos en el
proceso de enseñanza-aprendizaje exige la reestructuración de los contenidos,
métodos y medios de enseñanza (los métodos de la didáctica en general). Estas
razones hacen necesario una profunda y constante (re)calificación de los
profesores (los maestros de todos los niveles de enseñanza) que le permita
enfrentar los cambios revolucionarios que la nueva tecnología exige y poder
dotar a las nuevas generaciones de una cultura general integral acorde con las
exigencias de su tiempo.
Unido a lo anterior se presenta una creciente
utilización de las herramientas y métodos Matemáticos en las investigaciones en
todas las esferas del conocimiento, lo que reclama preparación y conocimientos
sólidos para dominar sus métodos y herramientas e integrarlas de forma efectiva
al uso de la computadora.
El
profesor de Matemática se presenta como sujeto capaz de incidir positivamente
en la forma de pensar y actuar de las jóvenes generaciones, dotarlos de métodos
que le permitan explotar de forma efectiva la computadora y los recursos de las
TIC desde su asignatura, siendo capaz de poner en función de la enseñanza todos
los recursos que estos medios nos brindan.
En su nuevo papel de estimulador y facilitador
del aprendizaje el profesor de Matemáticas tiene que ser promotor del uso
correcto y sistemático de la computadora y las TIC. No puede limitar el uso de
la computadora al cálculo, tiene que, desde el salón de clase, contribuir al
desarrollo de un pensamiento algorítmico, al uso de estructuras de datos. El
profesor debe ser capaz de mostrar como puede usarse la computadora, lo que con
ella se puede hacer, cuales son sus limitaciones hoy, cuales son la relaciones
entre la ciencia Informática y otras ciencias, en particular con la Matemática.
Obtener resultados que garanticen un desarrollo
social sostenido exige que el mayor número posible de elementos de la sociedad
sean capaces de interactuar con la computadora y los métodos y herramientas
Matemáticas.
En nuestro país ha comenzado la introducción
progresiva de las microcomputadoras en las escuelas desde los primeros grados
de enseñanza, lo cual unido a los Jóven Club de Computación y la
Universalización de la enseñanza universitaria, garantizan el acceso creciente
de la población a la computación y las TIC.
La introducción de la computadora en la
enseñanza ha constituido una revolución profunda tanto en los métodos de la
didáctica en general y en particular en la didáctica de la Matemática así como
en el contexto actual de la Matemática. El computador es sin duda el mayor
apoyo de la Matemática en nuestro tiempo, como afirma Lynn Steen: "este
intruso ha cambiado el ecosistema de las Matemáticas profunda y
permanentemente".
Esta revolución está en marcha y no podemos
percibir todavía sus límites y profundidad, pues la misma está estrechamente
relacionada con el progreso del hardware y software, un proceso que evoluciona
a una velocidad nunca vista por la Humanidad.
Con la aparición de la computadora los
profesores de Matemática se enfrentan a un nuevo fenómeno; uno de los objetivos
firmemente sostenidos de la enseñanza de la Matemática, la habilidad de
calcular, entra en crisis. La literatura acerca del uso de la computadora ha
comenzado a imponerse y los perjuicios han ido desapareciendo.
Hoy los efectos positivos del enfoque de resolución
de problemas, la introducción del cálculo aproximado, el acercamiento
algorítmico a los problemas impuestos por el uso de las computadoras son
aceptados ampliamente, así como la renovación real en la enseñanza de técnicas
para el cálculo aritmético y el cálculo mental.
La utilización de las computadoras en el salón
de clases se presenta como el centro de las reformas en las estructuras
didácticas para la enseñanza de la Matemática.
Señalemos algunas direcciones de influencia de
la computación en relación con la enseñanza de la Matemática:
El acercamiento algorítmico a la formulación y
solución de los problemas.
La interrogante referida a: la formulación del
problema, a la solución del problema que siempre ha existido en la enseñanza de
la Matemática, ha recibido una nueva perspectiva con la computación y las
nuevas tecnologías de la informática a través del concepto y desarrollo de
algoritmos.
APLICACIONES INTEGRADAS
Es por esta razon que se quiere motivar a conocimiento del funcionamiento de este equipo tan util.
La computadora y las TIC en nuestros días definen una sociedad futura en que los medios de comunicación se volverán gradualmente más computarizados y conectados a la red. Estos cambios sociales imponen nuevas formas de pensar y actuar a los miembros de la sociedad y en particular a los profesores. La utilización de los avances tecnológicos en el proceso de enseñanza-aprendizaje exige la reestructuración de los contenidos, métodos y medios de enseñanza (los métodos de la didáctica en general). Estas razones hacen necesario una profunda y constante (re)calificación de los profesores (los maestros de todos los niveles de enseñanza) que le permita enfrentar los cambios revolucionarios que la nueva tecnología exige y poder dotar a las nuevas generaciones de una cultura general integral acorde con las exigencias de su tiempo.
Unido a lo anterior se presenta una creciente utilización de las herramientas y métodos Matemáticos en las investigaciones en todas las esferas del conocimiento, lo que reclama preparación y conocimientos sólidos para dominar sus métodos y herramientas e integrarlas de forma efectiva al uso de la computadora.
En su nuevo papel de estimulador y facilitador del aprendizaje el profesor de Matemáticas tiene que ser promotor del uso correcto y sistemático de la computadora y las TIC. No puede limitar el uso de la computadora al cálculo, tiene que, desde el salón de clase, contribuir al desarrollo de un pensamiento algorítmico, al uso de estructuras de datos. El profesor debe ser capaz de mostrar como puede usarse la computadora, lo que con ella se puede hacer, cuales son sus limitaciones hoy, cuales son la relaciones entre la ciencia Informática y otras ciencias, en particular con la Matemática.
Obtener resultados que garanticen un desarrollo social sostenido exige que el mayor número posible de elementos de la sociedad sean capaces de interactuar con la computadora y los métodos y herramientas Matemáticas.
En nuestro país ha comenzado la introducción progresiva de las microcomputadoras en las escuelas desde los primeros grados de enseñanza, lo cual unido a los Jóven Club de Computación y la Universalización de la enseñanza universitaria, garantizan el acceso creciente de la población a la computación y las TIC.
La introducción de la computadora en la enseñanza ha constituido una revolución profunda tanto en los métodos de la didáctica en general y en particular en la didáctica de la Matemática así como en el contexto actual de la Matemática. El computador es sin duda el mayor apoyo de la Matemática en nuestro tiempo, como afirma Lynn Steen: "este intruso ha cambiado el ecosistema de las Matemáticas profunda y permanentemente".
Esta revolución está en marcha y no podemos percibir todavía sus límites y profundidad, pues la misma está estrechamente relacionada con el progreso del hardware y software, un proceso que evoluciona a una velocidad nunca vista por la Humanidad.
Con la aparición de la computadora los profesores de Matemática se enfrentan a un nuevo fenómeno; uno de los objetivos firmemente sostenidos de la enseñanza de la Matemática, la habilidad de calcular, entra en crisis. La literatura acerca del uso de la computadora ha comenzado a imponerse y los perjuicios han ido desapareciendo.
Hoy los efectos positivos del enfoque de resolución de problemas, la introducción del cálculo aproximado, el acercamiento algorítmico a los problemas impuestos por el uso de las computadoras son aceptados ampliamente, así como la renovación real en la enseñanza de técnicas para el cálculo aritmético y el cálculo mental.
La utilización de las computadoras en el salón de clases se presenta como el centro de las reformas en las estructuras didácticas para la enseñanza de la Matemática.
Señalemos algunas direcciones de influencia de la computación en relación con la enseñanza de la Matemática:
El acercamiento algorítmico a la formulación y solución de los problemas.
La interrogante referida a: la formulación del problema, a la solución del problema que siempre ha existido en la enseñanza de la Matemática, ha recibido una nueva perspectiva con la computación y las nuevas tecnologías de la informática a través del concepto y desarrollo de algoritmos.
Gestión
de proyectos
ProjExec
Live ofrece una gestión de proyectos intuitiva y adaptada a dispositivos
móviles, y permite una colaboración eficiente en proyectos de cualquier tamaño.
ProjExec Live se integra con perfiles, comunidades, actividades, archivos y
reuniones para maximizar la experiencia social de proyectos.
Gestión
de relaciones con el cliente (CRM)
Una solución indispensable
para cualquier profesional de ventas, marketing y soporte al cliente que
necesite interactuar y colaborar con sus clientes y/o posibles clientes como
parte del proceso de relación con el cliente.
Comunidad
y colaboración
Ariba
Ariba
Discovery es un servicio gratuito y fácil de usar que proporciona acceso a más
de 300.000 vendedores, y cubre más de 400 categorías de artículos. Con un solo
clic, Ariba Discovery proporciona acceso instantáneo a una red global de
vendedores
Migración
de correo
Transend
Transend
Migrator convierte los datos de correo electrónico de prácticamente cualquier
sistema de mensajería a IBM SmartCloud iNotes. Una interfaz de usuario permite
a los usuarios finales y a los técnicos especialistas convertir todo tipo de
datos (mensajes/carpetas, libretas de direcciones y agendas) de una vez desde
una ubicación central... de forma rápida, sencilla y asequible.
DIGITALIZACION
DE CELULARES
Algunas de las ventajas que
observa de la digitalización de contenidos son: la reducción de tiempos y
costos; la eliminación de papeles en la oficina que, a través de la
automatización de los procesos, impacta directamente en ambos aspectos
cruciales del negocio; la mejora en la calidad del servicio a través del uso de
herramientas tecnológicas, ya que una compañía posee más información de su
cliente para brindarle un servicio personalizado. Esto incrementa la eficiencia
y la fidelidad y eleva la percepción positiva por parte de sus clientes.
Además, la digitalización permite la optimización de procesos a través de la
tecnología porque una compañía elimina procesos engorrosos y, a la vez, un
alto porcentaje de errores. La integración de la compañía con el entorno: la
integración es una parte vital del negocio que abre las puertas a nuevos
mercados, clientes, partners y
demás posibilidades de crecimiento global en forma rápida.
En cuanto a las desventajas,
algunas son: el temor sobre la nueva incorporación, la despersonalización,
tanto con los clientes como entre los empleados. Se da un cambio
cultural, el personal de la compañía debe cambiar su manera de hacer su
trabajo. Cuando la dependencia de la tecnología significa depender de ella
para la realización de todas las operaciones diarias. De la misma manera, la
actualización permanente se transforma en una obligación si de eso depende
mantener el liderazgo o la ventaja competitiva en el mercado. La saturación de
información: la información en tiempo y forma es una herramienta
ineludiblemente estratégica, para una compañía, al momento de tomar la decisión
correcta; pero el ingreso y la sobreabundancia de información se torna un
obstáculo por la imposibilidad de asimilar los datos disponibles en el Mercado.
El aumento de la desocupación, el incremento de tecnología innovadora y de
última generación contribuye,
en muchos casos, a la desocupación, ya que
resuelve situaciones en menos tiempo y con menor cantidad de recursos. Esto
puede ser verdad en el corto plazo. En el mediano plazo la aparición de nuevas
tecnologías o cambios provocan desarrollo y oportunidades que se aprovechan de
la mano de la educación y la mayor preparación de los individuos. Por otra
parte no subirse a este tren puede a la larga tener el mismo efecto negativo.
La velocidad del cambio se
puede convertir en una desventaja en especial para las empresas más
tradicionales porque su nivel de adaptación tiene que ser enorme y la aparición
de nuevos competidores es fácil y con poco costo (por ejemplo en la industria
cinematográfica tanto producción como programación). Se puede ver como un punto
positivo.
López Basavilbaso ve como el
principal desafío al cambio constante. “No
hay un modelo de negocios quieto. Ni los ejecutivos de un mismo sector ven un modelo
claro de negocios que haga estable las predicciones. Por ejemplo en televisión
hay enfocados en la publicidad llamada tradicional, otros creen en un híbrido
entre tradicional y cargos a clientes, otros se enfocan principalmente en los
clientes (casi un pay per view a través de internet).”
Movistar frente a la digitalización
En el caso de las empresas de
telefonía fija y celular el cambio que generó la digitalización se observó
principalmente en mayor número de clientes. Se le dio mucha mayor importancia
de Internet a través de líneas telefónicas fijas. El consumo fijo cayendo fue
reemplazado por un mayor uso de Internet. Hubo una mejor distribución de
ingresos, cayendo la importancia relativa del servicio de voz en comparación al
SMS y MMS, chat, acceso a Internet.
“La digitalización permite
muchas más posibilidades de comunicarse que sólo la voz. Sólo veamos lo que
hacemos con un teléfono celular hoy en día en relación a pocos años atrás y se
tiene la respuesta de lo que se observa en los ingresos y gastos de las
empresas de telecomunicaciones”.
El entrevistado aseguró que hay
ciertos valores fundamentales en los empleados de una empresa dedicada a un
mercado tan dinámico. “El
orgullo de pertenencia fue siempre un gran valor en Movistar. No es solo queMovistar haya cambiado, es el mundo
el que ha cambiado y ahora las cosas son mucho más dinámicas. La gente que
trabaja en Movistar se siente orgullosa de
trabajar en la compañía, piensa que es un proyecto de realidad y de futuro muy
relevante. Todos somos muy conscientes de que estamos en el mercado, que no
somos los únicos, que hacemos algunas cosas bien y otras no tanto y creo que
fuimos cambiando con los tiempos. ¿Qué sería lo ideal? Probablemente tener un
sentimiento claro de estar en el mercado con los atributos del nuevo mundo y al
tiempo con un sentimiento hondo de que estamos en la mejor compañía y que vamos
a dejar el alma en ella. De esta manera, es posible encontrar empleados que
tengan la predisposición suficiente para mantener una empresa a la par de los
cambios que se viven a su alrededor.”
Cuando le pregunté respecto de
lo que creía acerca del impacto de la web en
el mundo corporativo, me contestó que, en el nivel de las marcas y las empresas
va a ser uno de los cambios de comunicación más fuertes, si ya no lo es. La
gran mayoría de las cosas van a pasar por la web. La web va a ser el canal numero uno de
las empresas y esto va a generar muchos cambios en las empresas. Va a haber un
cambio en el pensamiento de los directivos, en la formación de los empleados,
de los profesionales. El profesional de marketing, de comunicaciones, de
prensa, comercial tiene que cambiar su mentalidad y su formación para adaptarse
a todos estos cambios que se están dando.
Las redes sociales
“ Se han transformado en
una herramienta de marketing indispensable a cualquier empresa. Además, estas
redes permiten a las empresas comunicarse directamente con sus clientes y
obtener así sus impresiones, quejas o sugerencias.”
Ejemplo de un diagrama de una red social conocido como grafo social. El nodo con la más alta intermediación centralidad está marcado en amarillo.





.jpg)
.jpg)
.jpg)

.jpg)
.jpg)









.jpg)
.jpg)
.jpg)
.jpg)
