SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
Wiki
De Wikipedia, la enciclopedia libre


Saltar a navegación, búsqueda
Un wiki o una wiki (del hawaiano wiki, ‘rápido’)[1] es un sitio web cuyas páginas pueden ser editadas
por múltiples voluntarios a través del navegador web. Los usuarios pueden crear, modificar o borrar un
mismo texto que comparten. Los textos o «páginas wiki» tienen títulos únicos. Si se escribe el título de
una «página wiki» en algún lugar del wiki entre dobles corchetes (...), esta palabra se convierte en un
«enlace web» a la página wiki.
En una página sobre «alpinismo», por ejemplo, puede haber una palabra como «piolet» o «brújula» que
esté marcada como palabra perteneciente a un título de página wiki. La mayor parte de las
implementaciones de wikis indican en el URL de la página el propio título de la página wiki (en
Wikipedia ocurre así: http://es.wikipedia.org/wiki/Alpinismo), facilitando el uso y comprensibilidad del
link fuera del propio sitio web. Además, esto permite formar en muchas ocasiones una coherencia
terminológica, generando una ordenación natural del contenido.
La aplicación de mayor peso y a la que le debe su mayor fama hasta el momento ha sido la creación de
enciclopedias colectivas, género al que pertenece la Wikipedia. Existen muchas otras aplicaciones más
cercanas a la coordinación de informaciones y acciones, o la puesta en común de conocimientos o
textos dentro de grupos.
La mayor parte de los wikis actuales conservan un historial de cambios que permite recuperar
fácilmente cualquier estado anterior y ver qué usuario hizo cada cambio, lo cual facilita enormemente
el mantenimiento conjunto y el control de usuarios nocivos. Habitualmente, sin necesidad de una
revisión previa, se actualiza el contenido que muestra la página wiki editada.
historia
El origen de los wikis está en la comunidad de patrones de diseño, cuyos integrantes los utilizaron para
escribir y discutir patrones de programación. El primer WikiWikiWeb fue creado por Ward
Cunningham, quien inventó y dio nombre al concepto wiki, y produjo la primera implementación de un
servidor WikiWiki para el repositorio de patrones del Portland (Portland Pattern Repository) en 1995.
En palabras del propio Cunningham, un wiki es «la base de datos en línea más simple que pueda
funcionar» (the simplest online database that could possibly work).[2] El wiki de Ward aún es uno de
los sitios wiki más populares.
En enero de 2001, los fundadores del proyecto de enciclopedia Nupedia, Jimbo Wales y Larry Sanger,
decidieron utilizar un wiki como base para el proyecto de enciclopedia Wikipedia. Originalmente se
usó el software UseMod, pero luego crearon un software propio, MediaWiki, que ha sido adoptado
después por muchos otros wikis.
Actualmente, el wiki más grande que existe es la versión en inglés de Wikipedia, seguida por varias
otras versiones del proyecto. Los wikis ajenos a Wikipedia son mucho más pequeños y con menor
participación de usuarios, generalmente debido al hecho de ser mucho más especializados. Es muy
frecuente, por ejemplo, la creación de wikis para proveer de documentación a programas informáticos,
especialmente los desarrollados en software libre.


Ventajas
La principal utilidad de un wiki es que permite crear y mejorar las páginas de forma instantánea, dando
una gran libertad al usuario, y por medio de una interfaz muy simple. Esto hace que más gente participe
en su edición, a diferencia de los sistemas tradicionales, donde resulta más difícil que los usuarios del
sitio contribuyan a mejorarlo.
Dada la gran rapidez con la que se actualizan los contenidos, la palabra «wiki» adopta todo su sentido.
El «documento» de hipertexto resultante, denominado también «wiki» o «WikiWikiWeb», lo produce
típicamente una comunidad de usuarios. Muchos de estos lugares son inmediatamente identificables
por su particular uso de palabras en mayúsculas, o texto capitalizado - uso que consiste en poner en
mayúsculas las iniciales de las palabras de una frase y eliminar los espacios entre ellas - como por
ejemplo en EsteEsUnEjemplo. Esto convierte automáticamente a la frase en un enlace. Este wiki, en sus
orígenes, se comportaba de esa manera, pero actualmente se respetan los espacios y sólo hace falta
encerrar el título del enlace entre dos corchetes.


Características
Un wiki permite que se escriban artículos colectivamente (co-autoría) por medio de un lenguaje de
wikitexto editado mediante un navegador. Una página wiki singular es llamada «página wiki», mientras
que el conjunto de páginas (normalmente interconectadas mediante hipervínculos) es «el wiki». Es
mucho más sencillo y fácil de usar que una base de datos.
Una característica que define la tecnología wiki es la facilidad con que las páginas pueden ser creadas y
actualizadas. En general no hace falta revisión para que los cambios sean aceptados. La mayoría de
wikis están abiertos al público sin la necesidad de registrar una cuenta de usuario. A veces se requiere
hacer login para obtener una cookie de «wiki-firma», para autofirmar las ediciones propias. Otros wikis
más privados requieren autenticación de usuario.

Páginas y edición
En un wiki tradicional existen tres representaciones por cada página:
    • El «código fuente», que pueden editar los usuarios. Es el formato almacenado localmente en el
      servidor. Normalmente es texto plano, sólo es visible para el usuario cuando lo muestra la
      operación «Editar».
    • Una plantilla (en ocasiones generada internamente) que define la disposición y elementos
      comunes de todas las páginas.
    • El código HTML, puesto en tiempo real por el servidor a partir del código fuente cada vez que
      la página se solicita.
El código fuente es potenciado mediante un lenguaje de marcado simplificado para hacer varias
convenciones visuales y estructurales. Por ejemplo, el uso del asterisco «*» al empezar una línea de
texto significa que se generará una lista desordenada de elementos (bullet-list). El estilo y la sintaxis
pueden variar en función de la implementación, alguna de las cuales también permite etiquetas HTML.
¿Por qué no HTML?
La razón de este diseño es que el HTML, con muchas de sus etiquetas crípticas, no es fácil de leer por
usuarios no técnicos. Hacer visibles las etiquetas de HTML provoca que el texto en sí sea difícil de leer
y editar para la mayoría de usuarios. Por lo tanto, se promueve el uso de edición en texto llano con
convenciones para la estructura y el estilo fáciles de comprender.
A veces es beneficioso que los usuarios no puedan usar ciertas funcionalidades que el HTML permite,
tales como JavaScript, CSS y XML. Se consigue consistencia en la visualización, así como seguridad
extra para el usuario. En muchas inserciones de wiki, un hipervínculo es exactamente tal como se
muestra, al contrario de lo que ocurre en el HTML.

Estándar
Durante años el estándar de facto fue la sintaxis del WikiWikiWeb original. Actualmente las
instrucciones de formateo son diferentes dependiendo del motor del wiki. Los wikis simples permiten
sólo formateo de texto básico, mientras que otros más complejos tienen soporte para cuadros,
imágenes, fórmulas e incluso otros elementos más interactivos tales como encuestas y juegos. Debido a
la dificultad de usar varias sintaxis, se están haciendo esfuerzos para definir un estándar de marcado
(ver esfuerzos de Meatball y Tikiwiki).

Vincular y crear páginas
Los wikis son un auténtico medio de hipertexto, con estructuras de navegación no lineal. Cada página
contiene un gran número de vínculos a otras páginas. En grandes wikis existen las páginas de
navegación jerárquica, normalmente como consecuencia del proceso de creación original, pero no es
necesario usarlas. Los vínculos se usan con una sintaxis específica, el «patrón de vínculos».

CamelCase
Originalmente gran parte de wikis usaban CamelCase como patrón de vínculos, poniendo frases sin
espacios y poniendo la primera letra de cada palabra en mayúscula (por ejemplo, la palabra
«CamelCase»). Este método es muy fácil, pero hace que los links se escriban de una manera que se
desvía de la escritura estándar. Los wikis basados en CamelCase se distinguen instantáneamente por los
links con nombres como: «TablaDeContenidos», «PreguntasFrecuentes». Por consiguiente,
comenzaron a desarrollarse otras soluciones.

Vínculos libres
Los «vínculos libres», usados por primera vez por Cliki, usan un formato tipo _(vínculo). Por ejemplo,
_(Tabla de contenidos), _(Preguntas frecuentes). Otros motores de wiki usan distintos signos de
puntuación.

Interwiki
Interwiki permite vínculos entre distintas comunidades wiki.
Las nuevas páginas se crean simplemente creando un vínculo apropiado. Si el vínculo no existe, se
acostumbra a destacar como «vínculo roto». Siguiendo el vínculo se abre una página de edición, que
permite al usuario introducir el texto para la nueva página wiki. Este mecanismo asegura que casi no se
generen páginas huérfanas (es decir, páginas que no tienen ningún vínculo apuntando a ellas). Además
se mantiene un nivel alto de conectividad.

Búsqueda
La mayoría de wikis permite al menos una búsqueda por títulos, a veces incluso una búsqueda por texto
completo. La escalabilidad de la búsqueda depende totalmente del hecho de que el motor del wiki
disponga de una base de datos o no: es necesario el acceso a una base de datos indexada para hacer
búsquedas rápidas en wikis grandes. En Wikipedia el botón «Ir» permite a los lectores ir directamente a
una página que concuerde con los criterios de búsqueda. El motor de MetaWiki se creó para habilitar
búsquedas en múltiples wikis.

Control de cambios
Los wikis suelen diseñarse con la filosofía de aumentar la facilidad de corrección de los errores, y no la
de reducir la dificultad de cometerlos. Los wikis son muy abiertos, pero aun así proporcionan maneras
de verificar la validez de los últimos cambios al contenido de las páginas. En casi todos los wikis hay
una página específica, «Cambios recientes», que enumera las ediciones más recientes de artículos, o
una lista con los cambios hechos durante un período. Algunos wikis pueden filtrar la lista para deshacer
cambios hechos por vandalismo.
Desde el registro de cambios suele haber otras funciones: el «Historial de revisión» muestra versiones
anteriores de la página, y la característica «diff» destaca los cambios entre dos revisiones. Usando el
historial, un editor puede ver y restaurar una versión anterior del artículo, y la característica «diff» se
puede usar para decidir cuándo eso es necesario. Un usuario normal del wiki puede ver el «diff» de una
edición listada en «Cambios recientes» y, si es una edición inaceptable, consultar el historial y restaurar
una versión anterior. Este proceso es más o menos complicado, según el software que use el wiki.
En caso de que las ediciones inaceptables se pasen por alto en «Cambios recientes», algunos motores
de wiki proporcionan control de contenido adicional. Se pueden monitorizar para asegurar que una
página o un conjunto de páginas mantienen la calidad. A un usuario dispuesto a mantener esas páginas
se le avisará en caso de modificaciones, y así se le permitirá verificar rápidamente la validez de las
nuevas ediciones.

Vandalismo
Consiste en hacer ediciones (generalmente hechas por desconocidos) que borran contenido importante,
introducen errores, agregan contenido inapropiado u ofensivo (por ejemplo, insultos) o simplemente
incumplen flagrantemente las normas del wiki. También son frecuentes los intentos de spam, por
ejemplo:
    • La introducción de enlaces en un wiki con el fin de subir en los buscadores de Internet (véase
      PageRank).
    • Los intentos de publicitarse o hacer proselitismo (de su ideología, religión u otros) a través del
      wiki.
    • Ingresar material que viola derechos de autor.
Algunas soluciones que se utilizan para luchar contra el vandalismo son:
    • Revertir rápidamente sus cambios, para que así se desanimen.
    • Bloquearlos temporalmente por su nombre de usuario o dirección IP, de tal forma que no
      puedan seguir editando. Esta solución se ve dificultada por las IPs dinámicas y el uso de proxies
      abiertos, que, al ser bloqueados, pueden afectar también a personas inocentes.
• Si se produce siempre en una misma página, la protección de esa página.
    • No permitir que editen páginas usuarios que no estén registrados en la wiki.
    • En casos extremos (generalmente, ataques por medio de herramientas automáticas), bloquear la
      base de datos del wiki, sin permitir ningún tipo de edición.


Software
Existen varios programas, generalmente scripts de servidor en Perl o PHP, que implementan un wiki.
Con frecuencia, suelen utilizar una base de datos, como MySQL.
Suelen distinguirse por:
    • Destino: para uso personal, para intranets, para la web, etc.
    • Funcionalidad: pueden o no mantener historiales, tener opciones de seguridad, permitir subir
      archivos, tener editores WYSIWYG, etc.
Algunos de los más utilizados son:
    •   UseModWiki: el más antiguo, escrito en Perl.
    •   MediaWiki: utilizado en todos los proyectos de Wikimedia. Basado en PHP y MySQL.
    •   PhpWiki: basado en UseMod. Escrito en PHP, puede utilizar distintas bases de datos.
    •   TikiWiki: CMS completo, con un wiki muy desarrollado, usando PHP y MySQL.
    •   DokuWiki: Un wiki completo escrito en PHP sin necesidad de bases de datos (usa sólo ficheros
        de texto)
    •   WikkaWiki: basado en WakkaWiki, un wiki muy ligero. Usa PHP y MySQL
    •   MoinMoin: Modular. Escrito en Python.
    •   OpenWiking: Wiki programado en ASP.
    •   Swiki: Wiki programado en Squeak


Utilidades
    • Pueden realizarse búsquedas en varios wikis a la vez, incluso en esta web y en la de Ward,
      utilizando un MetaWiki.
    • El wiki es una práctica innovadora que ha expandido su uso, por ejemplo, a las empresas, las
      cuales utilizan este medio para que el conocimiento adquirido por los trabajadores pueda ser
      compartido y complementado por todos, se utiliza como una herramienta que favorece la
      innovación.
Diferencias entre los Blogs y los Wikis:


                  Blogs                               Wikis


                  - Normalmente un sólo               - Muchos autores al mismo nivel
                  autor/editor + comentarios          - La estructura puede ser variada,
                  - Estructura cronológica            sustituyéndose las versiones a
                  empezando por la última             medida que se modifica.
                  "entrada"                           - Links externos e internos
                  - Links externos




Fuente: Wikinomics
Quizás la utilidad más destacada de una wiki empresarial es el fomento de la colaboración, tanto
interna (entre los empleados) como externa (con proveedores y clientes). El hecho que haya una
plataforma editable e intuitiva para compartir documentos y realizar ediciones colaborativas, estimula
mucho a que esta colaboración se perciba como algo factible.
A continuación se describen los principales usos, tanto a nivel interno como externo, que pueden tener
las Wikis:
1) Creación colectiva entre los empleados
La wiki interna puede funcionar como una útil herramienta de colaboración para compartir
conocimiento entre personas de diferentes departamentos. Al ser un "espacio abierto" donde se puede
crear y editar contenidos por varios usuarios, facilita la participación y el acceso al trabajo compartido
en tiempo real.
Esa colaboración puede manifestarse en forma de múltiples resultados. Por ejemplo: a) para crear
colectivamente un "kit de bienvenida" a los nuevos trabajadores en el que se les explique cómo
funciona la empresa, o b) para redactar "normas de funcionamiento" que regulen la actividad de una
comunidad de innovadores. En este sentido la Wiki funciona como una herramienta que potencia la
Inteligencia Colectiva.
2)        Información          sobre           los        productos          de         la        empresa
La Wiki es una buena herramienta para generar información actualizada sobre un producto, que
incluya sus funcionalidades, características, precios, opiniones de clientes, etc. Puede tener una parte de
acceso interno, como repositorio ordenado de conocimiento vital sobre el producto; y una parte pública
que haga la función de "portal del producto" o incluso, de "manual del usuario".
Lo más valioso de esta utilidad es que el repositorio de conocimiento sobre el producto se construye
de manera colectiva, aprovechando información de distintas fuentes, lo que aporta una riqueza y
diversidad al resultado final que terminan agradeciendo los clientes.
3)        Espacio          colaborativo      para         evaluar        nuevos       productos
Las empresas usan wikis como un "espacio social de innovación", donde se comparten las opiniones
entre los "beta-testers" que prueban los nuevos productos, bien sean los propios empleados de la
empresa, o bien usuarios seleccionados.
4)                           Gestión                         de                          proyectos
También puede servir para la gestión de proyectos en los que intervienen profesionales de distintos
departamentos e incluso de distintos países. Se puede crear un wiki por proyecto para que los
miembros del equipo puedan generar y actualizar documentos relacionados con el proyecto, y que toda
esta información esté concentrada en el mismo lugar. Con esto se puede acabar con el desorden que
implica el envío colectivo de e-mails en distintos formatos.
5)                 Espacio               de                creatividad                  bottom-up
Algunas empresas están usando las wikis para impulsar dinámicas de creatividad con un fuerte acento
bottom-up (de-abajo-a-arriba), democratizando la participación de los empleados de cualquier nivel
en los procesos de innovación.
La wiki permite que las ideas de los empleados de los niveles inferiores tengan un espacio donde
proyectarse, y no pasen desapercibidas, ni se queden atrapadas por barreras jerárquicas o trabas
burocráticas.
6)                           Atención                            al                            cliente
 Una Wiki se puede convertir en una sólida herramienta para el Departamento de Atención al cliente.
Los empleados pueden ir creando una entrada para cada tipo de problema o incidencia que se les vaya
presentando y mostrar la solución dada. Es muy típico, por ejemplo, que las Wikis sirvan para redactar
colectivamente las útiles FAQ ("Preguntas más frecuentes") sobre un producto o servicio.
7)                            Agenda                          de                            reuniones
Pueden usarse las wikis para conocer las agendas de los demás empleados y poder concertar una
reunión que venga bien a todos sin necesidad, de nuevo, del envío de múltiples e-mails confirmando la
disponibilidad de los asistentes.



EL LENGUAJE UNIFICADO DE MODELADO (UML)
En todas las disciplinas de la Ingeniería se hace evidente la importancia de los modelos ya que describen el
aspecto y la conducta de "algo". Ese "algo" puede existir, estar en un estado de desarrollo o estar, todavía,
en un estado de planeación. Es en este momento cuando los diseñadores del modelo deben investigar los
requerimientos del producto terminado y dichos requerimientos pueden incluir áreas tales como funcionalidad,
performance y confiabilidad. Además, a menudo, el modelo es dividido en un número de vistas, cada una de las
cuales describe un aspecto específico del producto o sistema en construcción.
El modelado sirve no solamente para los grandes sistemas, aun en aplicaciones de pequeño tamaño se
obtienen beneficios de modelado, sin embargo es un hecho que entre más grande y más complejo es el
sistema, más importante es el papel de que juega el modelado por una simple razón: "El hombre hace modelos
de sistemas complejos porque no puede entenderlos en su totalidad".
UML es una técnica para la especificación sistemas en todas sus fases. Nació en 1994 cubriendo los aspectos
principales de todos los métodos de diseño antecesores y, precisamente, los padres de UML son Grady Booch,
autor del método Booch; James Rumbaugh, autor del método OMT e Ivar Jacobson, autor de los métodos
OOSE y Objectory. La versión 1.0 de UML fue liberada en Enero de 1997 y ha sido utilizado con éxito en
sistemas construidos para toda clase de industrias alrededor del mundo: hospitales, bancos, comunicaciones,
aeronáutica, finanzas, etc.
Los principales beneficios de UML son:
    • Mejores tiempos totales de desarrollo (de 50 % o más).
    • Modelar sistemas (y no sólo de software) utilizando conceptos orientados a objetos.
    • Establecer conceptos y artefactos ejecutables.
    • Encaminar el desarrollo del escalamiento en sistemas complejos de misión crítica.
    • Crear un lenguaje de modelado utilizado tanto por humanos como por máquinas.
    • Mejor soporte a la planeación y al control de proyectos.
    • Alta reutilización y minimización de costos.
UML, ¿Método o Lenguaje de Modelado?
UML es un lenguaje para hacer modelos y es independiente de los métodos de análisis y diseño. Existen
diferencias importantes entre un método y un lenguaje de modelado. Un método es una manera explícita de
estructurar el pensamiento y las acciones de cada individuo. Además, el método le dice al usuario qué hacer,
cómo hacerlo, cuándo hacerlo y por qué hacerlo; mientras que el lenguaje de modelado carece de estas
instrucciones. Los métodos contienen modelos y esos modelos son utilizados para describir algo y comunicar
los resultados del uso del método.
Un modelo es expresado en un lenguaje de modelado. Un lenguaje de modelado consiste de vistas, diagramas,
elementos de modelo  los símbolos utilizados en los modelos  y un conjunto de mecanismos generales o
reglas que indican cómo utilizar los elementos. Las reglas son sintácticas, semánticas y pragmáticas (figura 1).

                                                     figura 1
Vistas: Las vistas muestran diferentes aspectos del sistema modelado. Una vista no es una gráfica, pero sí una
abstracción que consiste en un número de diagramas y todos esos diagramas juntos muestran una "fotografía"
completa del sistema. Las vistas también ligan el lenguaje de modelado a los métodos o procesos elegidos para
el desarrollo. Las diferentes vistas que UML tiene son:
    • Vista Use-Case: Una vista que muestra la funcionalidad del sistema como la perciben los actores
      externos.
    • Vista Lógica: Muestra cómo se diseña la funcionalidad dentro del sistema, en términos de la estructura
      estática y la conducta dinámica del sistema.
    • Vista de Componentes: Muestra la organización de los componentes de código.
    • Vista Concurrente: Muestra la concurrencia en el sistema, direccionando los problemas con la
      comunicación y sincronización que están presentes en un sistema concurrente.

    • Vista de Distribución: muestra la distribución del sistema en la arquitectura física con computadoras y
       dispositivos llamados nodos.
Diagramas: Los diagramas son las gráficas que describen el contenido de una vista. UML tiene nueve tipos de
diagramas que son utilizados en combinación para proveer todas las vistas de un sistema: diagramas de caso
de uso, de clases, de objetos, de estados, de secuencia, de colaboración, de actividad, de componentes y de
distribución.
Símbolos o Elementos de modelo: Los conceptos utilizados en los diagramas son los elementos de modelo
que representan conceptos comunes orientados a objetos, tales como clases, objetos y mensajes, y las
relaciones entre estos conceptos incluyendo la asociación, dependencia y generalización. Un elemento de
modelo es utilizado en varios diagramas diferentes, pero siempre tiene el mismo significado y simbología.
Reglas o Mecanismos generales: Proveen comentarios extras, información o semántica acerca del elemento
de modelo; además proveen mecanismos de extensión para adaptar o extender UML a un método o proceso
específico, organización o usuario.
FASES DEL DESARROLLO DE UN SISTEMA
Las fases del desarrollo de sistemas que soporta UML son: Análisis de requerimientos, Análisis, Diseño,
Programación y Pruebas.
Análisis de Requerimientos
UML tiene casos de uso (use-cases) para capturar los requerimientos del cliente. A través del modelado de
casos de uso, los actores externos que tienen interés en el sistema son modelados con la funcionalidad que
ellos requieren del sistema (los casos de uso). Los actores y los casos de uso son modelados con relaciones y
tienen asociaciones entre ellos o éstas son divididas en jerarquías. Los actores y casos de uso son descritos en
un diagrama use-case. Cada use-case es descrito en texto y especifica los requerimientos del cliente: lo que él
(o ella) espera del sistema sin considerar la funcionalidad que se implementará. Un análisis de requerimientos
puede ser realizado también para procesos de negocios, no solamente para sistemas de software.
Análisis
La fase de análisis abarca las abstracciones primarias (clases y objetos) y mecanismos que están presentes en
el dominio del problema. Las clases que se modelan son identificadas, con sus relaciones y descritas en un
diagrama de clases. Las colaboraciones entre las clases para ejecutar los casos de uso también se consideran
en esta fase a través de los modelos dinámicos en UML. Es importante notar que sólo se consideran clases que
están en el dominio del problema (conceptos del mundo real) y todavía no se consideran clases que definen
detalles y soluciones en el sistema de software, tales como clases para interfaces de usuario, bases de datos,
comunicaciones, concurrencia, etc.
Diseño
En la fase de diseño, el resultado del análisis es expandido a una solución técnica. Se agregan nuevas clases
que proveen de la infraestructura técnica: interfaces de usuario, manejo de bases de datos para almacenar
objetos en una base de datos, comunicaciones con otros sistemas, etc. Las clases de dominio del problema del
análisis son agregadas en esta fase. El diseño resulta en especificaciones detalladas para la fase de
programación.
Programación
En esta fase las clases del diseño son convertidas a código en un lenguaje de programación orientado a
objetos. Cuando se crean los modelos de análisis y diseño en UML, lo más aconsejable es trasladar
mentalmente esos modelos a código.
Pruebas
Normalmente, un sistema es tratado en pruebas de unidades, pruebas de integración, pruebas de sistema,
pruebas de aceptación, etc. Las pruebas de unidades se realizan a clases individuales o a un grupo de clases y
son típicamente ejecutadas por el programador. Las pruebas de integración integran componentes y clases en
orden para verificar que se ejecutan como se especificó. Las pruebas de sistema ven al sistema como una "caja
negra" y validan que el sistema tenga la funcionalidad final que le usuario final espera. Las pruebas de
aceptación conducidas por el cliente verifican que el sistema satisface los requerimientos y son similares a las
pruebas de sistema.


CONCEPTOS DE LA METODOLOGÍA ORIENTADA A OBJETOS
La metodología orientada a objetos ha derivado de las metodologías anteriores a éste. Así como los métodos de
diseño estructurado realizados guían a los desarrolladores que tratan de construir sistemas complejos utilizando
algoritmos como sus bloques fundamentales de construcción, similarmente los métodos de diseño orientado a
objetos han evolucionado para ayudar a los desarrolladores a explotar el poder de los lenguajes de
programación basados en objetos y orientados a objetos, utilizando las clases y objetos como bloques de
construcción básicos.
Actualmente el modelo de objetos ha sido influenciado por un número de factores no sólo de la Programación
Orientada a Objetos, POO (Object Oriented Programming, OOP por sus siglas en inglés). Además, el modelo de
objetos ha probado ser un concepto uniforme en las ciencias de la computación, aplicable no sólo a los
lenguajes de programación sino también al diseño de interfaces de usuario, bases de datos y arquitectura de
computadoras por completo. La razón de ello es, simplemente, que una orientación a objetos nos ayuda a hacer
frente a la inherente complejidad de muchos tipos de sistemas.
Se define a un objeto como "una entidad tangible que muestra alguna conducta bien definida". Un objeto "es
cualquier cosa, real o abstracta, acerca de la cual almacenamos datos y los métodos que controlan dichos
datos".
Los objetos tienen una cierta "integridad" la cual no deberá ser violada. En particular, un objeto puede
solamente cambiar estado, conducta, ser manipulado o estar en relación con otros objetos de manera
apropiada a este objeto.
Actualmente, el Análisis Orientado a Objetos (AOO) va progresando como método de análisis de requisitos por
derecho propio y como complemento de otros métodos de análisis. En lugar de examinar un problema mediante
el modelo clásico de entrada-proceso-salida (flujo de información) o mediante un modelo derivado
exclusivamente de estructuras jerárquicas de información, el AOO introduce varios conceptos nuevos. Estos
conceptos nuevos le parecen inusuales a mucha gente, pero son bastante naturales.
Una clase es una plantilla para objetos múltiples con características similares. Las clases comprenden todas
esas características de un conjunto particular de objetos. Cuando se escribe un programa en lenguaje orientado
a objetos, no se definen objetos verdaderos sino se definen clases de objetos.
Una instancia de una clase es otro término para un objeto real. Si la clase es la representación general de un
objeto, una instancia es su representación concreta. A menudo se utiliza indistintamente la palabra objeto o
instancia para referirse, precisamente, a un objeto.
En los lenguajes orientados a objetos, cada clase está compuesta de dos cualidades: atributos (estado) y
métodos (comportamiento o conducta). Los atributos son las características individuales que diferencian a un
objeto de otro (ambos de la misma clase) y determinan la apariencia, estado u otras cualidades de ese objeto.
Los atributos de un objeto incluyen información sobre su estado.
Los métodos de una clase determinan el comportamiento o conducta que requiere esa clase para que sus
instancias puedan cambiar su estado interno o cuando dichas instancias son llamadas para realizar algo por
otra clase o instancia. El comportamiento es la única manera en que las instancias pueden hacerse algo a sí
mismas o tener que hacerles algo. Los atributos se encuentran en la parte interna mientras que los métodos se
encuentran en la parte externa del objeto .


                      Representación visual de un objeto como componente de software


Para definir el comportamiento de un objeto, se crean métodos, los cuales tienen una apariencia y un
comportamiento igual al de las funciones en otros lenguajes de programación, los lenguajes estructurados, pero
se definen dentro de una clase. Los métodos no siempre afectan a un solo objeto; los objetos también se
comunican entre sí mediante el uso de métodos. Una clase u objeto puede llamar métodos en otra clase u
objeto para avisar sobre los cambios en el ambiente o para solicitarle a ese objeto que cambie su estado.
Cualquier cosa que un objeto no sabe, o no puede hacer, es excluida del objeto. Además, como se puede
observar de los diagramas, las variables del objeto se localizan en el centro o núcleo del objeto. Los métodos
rodean y esconden el núcleo del objeto de otros objetos en el programa. Al empaquetamiento de las variables
de un objeto con la protección de sus métodos se le llama encapsulamiento. Típicamente, el encapsulamiento
es utilizado para esconder detalles de la puesta en práctica no importantes de otros objetos. Entonces, los
detalles de la puesta en práctica pueden cambiar en cualquier tiempo sin afectar otras partes del programa.
Esta imagen conceptual de un objeto —un núcleo de variables empaquetadas en una membrana protectora de
métodos— es una representación ideal de un objeto y es el ideal por el que los diseñadores de sistemas
orientados a objetos luchan. Sin embargo, no lo es todo: a menudo, por razones de eficiencia o la puesta en
práctica, un objeto puede querer exponer algunas de sus variables o esconder algunos de sus métodos.
El encapsulamiento de variables y métodos en un componente de software ordenado es, todavía, una simple
idea poderosa que provee dos principales beneficios a los desarrolladores de software:

    • Modularidad, esto es, el código fuente de un objeto puede ser escrito, así como darle mantenimiento,
        independientemente del código fuente de otros objetos. Así mismo, un objeto puede ser transferido
        alrededor del sistema sin alterar su estado y conducta.

    • Ocultamiento de la información, es decir, un objeto tiene una "interfaz publica" que otros objetos pueden
        utilizar para comunicarse con él. Pero el objeto puede mantener información y métodos privados que
        pueden ser cambiados en cualquier tiempo sin afectar a los otros objetos que dependan de ello.
Los objetos proveen el beneficio de la modularidad y el ocultamiento de la información. Las clases proveen el
beneficio de la reutilización. Los programadores de software utilizan la misma clase, y por lo tanto el mismo
código, una y otra vez para crear muchos objetos.
En las implantaciones orientadas a objetos se percibe un objeto como un paquete de datos y procedimientos
que se pueden llevar a cabo con estos datos. Esto encapsula los datos y los procedimientos. La realidad es
diferente: los atributos se relacionan al objeto o instancia y los métodos a la clase. ¿Por qué se hace así? Los
atributos son variables comunes en cada objeto de una clase y cada uno de ellos puede tener un valor
asociado, para cada variable, diferente al que tienen para esa misma variable los demás objetos. Los métodos,
por su parte, pertenecen a la clase y no se almacenan en cada objeto, puesto que sería un desperdicio
almacenar el mismo procedimiento varias veces y ello va contra el principio de reutilización de código.
Otro concepto muy importante en la metodología orientada a objetos es el de herencia. La herencia es un
mecanismo poderoso con el cual se puede definir una clase en términos de otra clase; lo que significa que
cuando se escribe una clase, sólo se tiene que especificar la diferencia de esa clase con otra, con lo cual, la
herencia dará acceso automático a la información contenida en esa otra clase.
Con la herencia, todas las clases están arregladas dentro de una jerarquía estricta. Cada clase tiene una
superclase (la clase superior en la jerarquía) y puede tener una o más subclases (las clases que se encuentran
debajo de esa clase en la jerarquía). Se dice que las clases inferiores en la jerarquía, las clases hijas, heredan
de las clases más altas, las clases padres.
Las subclases heredan todos los métodos y variables de las superclases. Es decir, en alguna clase, si la
superclase define un comportamiento que la clase hija necesita, no se tendrá que redefinir o copiar ese código
de la clase padre
De esta manera, se puede pensar en una jerarquía de clase como la definición de conceptos demasiado
abstractos en lo alto de la jerarquía y esas ideas se convierten en algo más concreto conforme se desciende por
la cadena de la superclase.
Sin embargo, las clases hijas no están limitadas al estado y conducta provistos por sus superclases; pueden
agregar variables y métodos además de los que ya heredan de sus clases padres. Las clases hijas pueden,
también, sobreescribir los métodos que heredan por implementaciones especializadas para esos métodos. De
igual manera, no hay limitación a un sólo nivel de herencia por lo que se tiene un árbol de herencia en el que se
puede heredar varios niveles hacia abajo y mientras más niveles descienda una clase, más especializada será
su conducta.
La herencia presenta los siguientes beneficios:
    • Las subclases proveen conductas especializadas sobre la base de elementos comunes provistos por la
      superclase. A través del uso de herencia, los programadores pueden reutilizar el código de la
      superclase muchas veces.
    • Los programadores pueden implementar superclases llamadas clases abstractas que definen conductas
      "genéricas". Las superclases abstractas definen, y pueden implementar parcialmente, la conducta pero
      gran parte de la clase no está definida ni implementada. Otros programadores concluirán esos detalles
      con subclases especializadas.
Ventajas de la metodología orientada a objetos
En síntesis, algunas ventajas que presenta son:

    • Reutilización. Las clases están diseñadas para que se reutilicen en muchos sistemas. Para maximizar la
       reutilización, las clases se construyen de manera que se puedan adaptar a los otros sistemas. Un
       objetivo fundamental de las técnicas orientadas a objetos es lograr la reutilización masiva al construir el
       software.

    • Estabilidad. Las clases diseñadas para una reutilización repetida se vuelven estables, de la misma
       manera que los microprocesadores y otros chips se hacen estables.

    • El diseñador piensa en términos del comportamiento de objetos y no en detalles de bajo nivel. El
       encapsulamiento oculta los detalles y hace que las clases complejas sean fáciles de utilizar.

    • Se construyen clases cada vez más complejas. Se construyen clases a partir de otras clases, las cuales
       a su vez se integran mediante clases. Esto permite construir componentes de software complejos, que a
       su vez se convierten en bloques de construcción de software más complejo.

    • Calidad. Los diseños suelen tener mayor calidad, puesto que se integran a partir de componentes
       probados, que han sido verificados y pulidos varias veces.

    • Un diseño más rápido. Las aplicaciones se crean a partir de componentes ya existentes. Muchos de los
       componentes están construidos de modo que se pueden adaptar para un diseño particular.

    • Integridad. Las estructuras de datos (los objetos) sólo se pueden utilizar con métodos específicos. Esto
       tiene particular importancia en los sistemas cliente-servidor y los sistemas distribuidos, en los que
       usuarios desconocidos podrían intentar el acceso al sistema.

    • Mantenimiento más sencillo. El programador encargado del mantenimiento cambia un método de clase
       a la vez. Cada clase efectúa sus funciones independientemente de las demás.

    • Una interfaz de pantalla sugestiva para el usuario. Hay que utilizar una interfaz de usuario gráfica de
       modo que el usuario apunte a iconos o elementos de un menú desplegado, relacionados con los
       objetos. En determinadas ocasiones, el usuario puede ver un objeto en la pantalla. Ver y apuntar es
       más fácil que recordar y escribir.

    • Independencia del diseño. Las clases están diseñadas para ser independientes del ambiente de
       plataformas, hardware y software. Utilizan solicitudes y respuestas con formato estándar. Esto les
       permite ser utilizadas en múltiples sistemas operativos, controladores de bases de datos, controladores
       de red, interfaces de usuario gráficas, etc. El creador del software no tiene que preocuparse por el
       ambiente o esperar a que éste se especifique.

    • Interacción. El software de varios proveedores puede funcionar como conjunto. Un proveedor utiliza
       clases de otros. Existe una forma estándar de localizar clases e interactuar con ellas. El software
       desarrollado de manera independiente en lugares ajenos debe poder funcionar en forma conjunta y
       aparecer como una sola unidad ante el usuario.

    • Computación Cliente-Servidor. En los sistemas cliente-servidor, las clases en el software cliente deben
       enviar solicitudes a las clases en el software servidor y recibir respuestas. Una clase servidor puede ser
       utilizada por clientes diferentes. Estos clientes sólo pueden tener acceso a los datos del servidor a
       través de los métodos de la clase. Por lo tanto los datos están protegidos contra su corrupción.

    • Computación de distribución masiva. Las redes a nivel mundial utilizarán directorios de software de
       objetos accesibles. El diseño orientado a objetos es la clave para la computación de distribución
       masiva. Las clases de una máquina interactúan con las de algún otro lugar sin saber donde residen
       tales clases. Ellas reciben y envían mensajes orientados a objetos en formato estándar.

    • Mayor nivel de automatización de las bases de datos. Las estructuras de datos (los objetos) en las
       bases de datos orientadas a objetos están ligadas a métodos que llevan a cabo acciones automáticas.
       Una base de datos OO tiene integrada una inteligencia, en forma de métodos, en tanto que una base de
       datos relacional básica carece de ello.

    • Migración. Las aplicaciones ya existentes, sean orientadas a objetos o no, pueden preservarse si se
ajustan a un contenedor orientado a objetos, de modo que la comunicación con ella sea a través de
       mensajes estándar orientados a objetos.

    • Mejores herramientas CASE. Las herramientas CASE (Computer Aided Software Engineering,
       Ingeniería de Software Asistida por Computadora) utilizarán las técnicas gráficas para el diseño de las
       clases y de la interacción entre ellas, para el uso de los objetos existentes adaptados a nuevas
       aplicaciones. Las herramientas deben facilitar el modelado en términos de eventos, formas de
       activación, estados de objetos, etc. Las herramientas OO del CASE deben generar un código tan pronto
       se definan las clases y permitir al diseñador utilizar y probar los métodos recién creados. Las
       herramientas se deben diseñar de manera que apoyen el máximo de creatividad y una continua
       afinación del diseño durante la construcción.




Es indudable que el ambiente competitivo en el que se vive en el ámbito empresarial actualmente,
requiere de promover los procesos y actividades de negocio que generan las ventajas competitivas de
las compañías ante sus más fuertes competidores.
Por esto, desde hace ya varios años, se ha dado mayor importancia a las Tecnologías de Información y
su alineación con las estrategias del negocio para mejorar sus procesos clave de negocio. Prueba de
ello, es el incremento tan sustancial de adquisiciones de paquetes de software empresariales tales como
el ERP (Enterprise Resource Planning), con el cual los directivos de las compañías esperan tener
integradas todas las áreas o departamentos de la compañía que apoyan para la generación de sus
productos y servicios.
Hoy más que nunca las empresas requieren de herramientas que les proporcionen control y
centralización de su información, esto con el fin tomar las mejores decisiones para sus procesos y
estrategias de negocios. Los ERP son una solución robusta para aquellas empresas que buscan una
solución universal a la centralización de su información.
La implementación de un sistema de ERP por lo general es largo y complejo, ya que implica rediseñar
los esquemas de trabajo. Su implementación es de alto riesgo, ya que envuelve complejidad, tamaño,
altos costos, un equipo considerable de desarrollo, además de inversión de tiempo.
En la mayoría de las empresas, se requiere remplazar la infraestructura existente, lo que implica
inversión de capital adicional, especialización y hasta la posibilidad de parar el negocio temporalmente
para la implementación: por otra parte es importante señalar que el grado de experiencia de los
proveedores es un factor importante para el buen funcionamiento del sistema.
Metodología
Para el desarrollo de este artículo, se tomaron en cuenta varias fuentes bibliográficas como son:
biblioteca digital del Instituto Tecnológico y de Estudios Superiores de Monterrey (ITESM), biblioteca
de ITESM Campus Monterrey, revistas electrónicas y diversas consultas de la Web. Se analizaron los
diversos puntos de vista de cada uno de los autores consultados y se tomó lo más importante de sus
puntos de vista.
¿Qué es un ERP?
El ERP es un sistema integral de gestión empresarial que está diseñado para modelar y automatizar la
mayoría de procesos en la empresa (área de finanzas, comercial, logística, producción, etc.). Su misión
es facilitar la planificación de todos los recursos de la empresa (www.adpime.com).
Por otro lado, Kumar y Hillengersberg (2000) definen al Enterprise Resource Planning (ERP) como
"paquetes de sistemas configurables de información dentro de los cuales se integra la información a
través de áreas funcionales de la organización". Los sistemas ERP son extremadamente costosos, y una
vez que los sistemas ERP se implantan con éxito trae una serie de beneficios importantes para las
empresas.
Orton y Marlene (2004) definen a los sistemas de planeación de recursos empresariales (ERP) como un
sistema que permite coleccionar y consolidar la información a través de la Empresa.
Reuther,D. (2004) en su artículo "Critical Factors for Enterprise Resources Planning System Selection
and Implementation Projects within Small to Médium Enterprise" menciona que K.C. Laundon y J.P.
Laundon, (2000) definen los sistemas de planeación de recursos empresariales (ERP) como un sistema
de administración de negocios que integra todas las facetas del negocio, incluyendo planeación,
manufactura, ventas y finanzas (esto lo podemos representa en Fig. 1) El software ERP planea y
automatiza muchos procesos con la meta de integrar información a lo largo de la empresa y elimina los
complejos enlaces entre los sistemas de las diferentes áreas del negocio.

Más contenido relacionado

La actualidad más candente (17)

Un wiki sebas guaman
Un wiki sebas guamanUn wiki sebas guaman
Un wiki sebas guaman
 
Los wikis
Los wikisLos wikis
Los wikis
 
Las tic`s
Las tic`sLas tic`s
Las tic`s
 
Wiki.
Wiki.Wiki.
Wiki.
 
Wiki
WikiWiki
Wiki
 
Wiki
WikiWiki
Wiki
 
San lucho gonzaga
San lucho gonzaga San lucho gonzaga
San lucho gonzaga
 
Blogs y wikis
Blogs y wikisBlogs y wikis
Blogs y wikis
 
Historia de wikipedia
Historia de wikipediaHistoria de wikipedia
Historia de wikipedia
 
Las wikis
Las wikisLas wikis
Las wikis
 
wikis (:
wikis (:wikis (:
wikis (:
 
Trabajo de kathe
Trabajo de katheTrabajo de kathe
Trabajo de kathe
 
Wikis
WikisWikis
Wikis
 
Ud02 para pdf
Ud02 para pdfUd02 para pdf
Ud02 para pdf
 
Que Es Un Wiki
Que Es Un WikiQue Es Un Wiki
Que Es Un Wiki
 
Wiki
WikiWiki
Wiki
 
Wiki Notas
Wiki NotasWiki Notas
Wiki Notas
 

Similar a Wiki (16)

Wiki
WikiWiki
Wiki
 
Wiki!
Wiki!Wiki!
Wiki!
 
Wiki
WikiWiki
Wiki
 
Presentación1
Presentación1Presentación1
Presentación1
 
Redes semanticas y wikis
Redes semanticas y wikisRedes semanticas y wikis
Redes semanticas y wikis
 
Examen iii parcial segundo quimestre
Examen iii parcial segundo quimestreExamen iii parcial segundo quimestre
Examen iii parcial segundo quimestre
 
WIKIS
WIKISWIKIS
WIKIS
 
Wiki
WikiWiki
Wiki
 
Wikis giovanni
Wikis giovanniWikis giovanni
Wikis giovanni
 
wikis
wikiswikis
wikis
 
Qué son wikis
Qué son wikisQué son wikis
Qué son wikis
 
WIKI WEB 2.0
WIKI WEB 2.0WIKI WEB 2.0
WIKI WEB 2.0
 
Wikis
WikisWikis
Wikis
 
Telecomunicaciones
TelecomunicacionesTelecomunicaciones
Telecomunicaciones
 
Presentation1
Presentation1Presentation1
Presentation1
 
Presentation1
Presentation1Presentation1
Presentation1
 

Último

Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Último (19)

Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

Wiki

  • 1. Wiki De Wikipedia, la enciclopedia libre Saltar a navegación, búsqueda Un wiki o una wiki (del hawaiano wiki, ‘rápido’)[1] es un sitio web cuyas páginas pueden ser editadas por múltiples voluntarios a través del navegador web. Los usuarios pueden crear, modificar o borrar un mismo texto que comparten. Los textos o «páginas wiki» tienen títulos únicos. Si se escribe el título de una «página wiki» en algún lugar del wiki entre dobles corchetes (...), esta palabra se convierte en un «enlace web» a la página wiki. En una página sobre «alpinismo», por ejemplo, puede haber una palabra como «piolet» o «brújula» que esté marcada como palabra perteneciente a un título de página wiki. La mayor parte de las implementaciones de wikis indican en el URL de la página el propio título de la página wiki (en Wikipedia ocurre así: http://es.wikipedia.org/wiki/Alpinismo), facilitando el uso y comprensibilidad del link fuera del propio sitio web. Además, esto permite formar en muchas ocasiones una coherencia terminológica, generando una ordenación natural del contenido. La aplicación de mayor peso y a la que le debe su mayor fama hasta el momento ha sido la creación de enciclopedias colectivas, género al que pertenece la Wikipedia. Existen muchas otras aplicaciones más cercanas a la coordinación de informaciones y acciones, o la puesta en común de conocimientos o textos dentro de grupos. La mayor parte de los wikis actuales conservan un historial de cambios que permite recuperar fácilmente cualquier estado anterior y ver qué usuario hizo cada cambio, lo cual facilita enormemente el mantenimiento conjunto y el control de usuarios nocivos. Habitualmente, sin necesidad de una revisión previa, se actualiza el contenido que muestra la página wiki editada. historia El origen de los wikis está en la comunidad de patrones de diseño, cuyos integrantes los utilizaron para escribir y discutir patrones de programación. El primer WikiWikiWeb fue creado por Ward Cunningham, quien inventó y dio nombre al concepto wiki, y produjo la primera implementación de un servidor WikiWiki para el repositorio de patrones del Portland (Portland Pattern Repository) en 1995. En palabras del propio Cunningham, un wiki es «la base de datos en línea más simple que pueda funcionar» (the simplest online database that could possibly work).[2] El wiki de Ward aún es uno de los sitios wiki más populares. En enero de 2001, los fundadores del proyecto de enciclopedia Nupedia, Jimbo Wales y Larry Sanger, decidieron utilizar un wiki como base para el proyecto de enciclopedia Wikipedia. Originalmente se usó el software UseMod, pero luego crearon un software propio, MediaWiki, que ha sido adoptado después por muchos otros wikis. Actualmente, el wiki más grande que existe es la versión en inglés de Wikipedia, seguida por varias otras versiones del proyecto. Los wikis ajenos a Wikipedia son mucho más pequeños y con menor participación de usuarios, generalmente debido al hecho de ser mucho más especializados. Es muy frecuente, por ejemplo, la creación de wikis para proveer de documentación a programas informáticos,
  • 2. especialmente los desarrollados en software libre. Ventajas La principal utilidad de un wiki es que permite crear y mejorar las páginas de forma instantánea, dando una gran libertad al usuario, y por medio de una interfaz muy simple. Esto hace que más gente participe en su edición, a diferencia de los sistemas tradicionales, donde resulta más difícil que los usuarios del sitio contribuyan a mejorarlo. Dada la gran rapidez con la que se actualizan los contenidos, la palabra «wiki» adopta todo su sentido. El «documento» de hipertexto resultante, denominado también «wiki» o «WikiWikiWeb», lo produce típicamente una comunidad de usuarios. Muchos de estos lugares son inmediatamente identificables por su particular uso de palabras en mayúsculas, o texto capitalizado - uso que consiste en poner en mayúsculas las iniciales de las palabras de una frase y eliminar los espacios entre ellas - como por ejemplo en EsteEsUnEjemplo. Esto convierte automáticamente a la frase en un enlace. Este wiki, en sus orígenes, se comportaba de esa manera, pero actualmente se respetan los espacios y sólo hace falta encerrar el título del enlace entre dos corchetes. Características Un wiki permite que se escriban artículos colectivamente (co-autoría) por medio de un lenguaje de wikitexto editado mediante un navegador. Una página wiki singular es llamada «página wiki», mientras que el conjunto de páginas (normalmente interconectadas mediante hipervínculos) es «el wiki». Es mucho más sencillo y fácil de usar que una base de datos. Una característica que define la tecnología wiki es la facilidad con que las páginas pueden ser creadas y actualizadas. En general no hace falta revisión para que los cambios sean aceptados. La mayoría de wikis están abiertos al público sin la necesidad de registrar una cuenta de usuario. A veces se requiere hacer login para obtener una cookie de «wiki-firma», para autofirmar las ediciones propias. Otros wikis más privados requieren autenticación de usuario. Páginas y edición En un wiki tradicional existen tres representaciones por cada página: • El «código fuente», que pueden editar los usuarios. Es el formato almacenado localmente en el servidor. Normalmente es texto plano, sólo es visible para el usuario cuando lo muestra la operación «Editar». • Una plantilla (en ocasiones generada internamente) que define la disposición y elementos comunes de todas las páginas. • El código HTML, puesto en tiempo real por el servidor a partir del código fuente cada vez que la página se solicita. El código fuente es potenciado mediante un lenguaje de marcado simplificado para hacer varias convenciones visuales y estructurales. Por ejemplo, el uso del asterisco «*» al empezar una línea de texto significa que se generará una lista desordenada de elementos (bullet-list). El estilo y la sintaxis pueden variar en función de la implementación, alguna de las cuales también permite etiquetas HTML.
  • 3. ¿Por qué no HTML? La razón de este diseño es que el HTML, con muchas de sus etiquetas crípticas, no es fácil de leer por usuarios no técnicos. Hacer visibles las etiquetas de HTML provoca que el texto en sí sea difícil de leer y editar para la mayoría de usuarios. Por lo tanto, se promueve el uso de edición en texto llano con convenciones para la estructura y el estilo fáciles de comprender. A veces es beneficioso que los usuarios no puedan usar ciertas funcionalidades que el HTML permite, tales como JavaScript, CSS y XML. Se consigue consistencia en la visualización, así como seguridad extra para el usuario. En muchas inserciones de wiki, un hipervínculo es exactamente tal como se muestra, al contrario de lo que ocurre en el HTML. Estándar Durante años el estándar de facto fue la sintaxis del WikiWikiWeb original. Actualmente las instrucciones de formateo son diferentes dependiendo del motor del wiki. Los wikis simples permiten sólo formateo de texto básico, mientras que otros más complejos tienen soporte para cuadros, imágenes, fórmulas e incluso otros elementos más interactivos tales como encuestas y juegos. Debido a la dificultad de usar varias sintaxis, se están haciendo esfuerzos para definir un estándar de marcado (ver esfuerzos de Meatball y Tikiwiki). Vincular y crear páginas Los wikis son un auténtico medio de hipertexto, con estructuras de navegación no lineal. Cada página contiene un gran número de vínculos a otras páginas. En grandes wikis existen las páginas de navegación jerárquica, normalmente como consecuencia del proceso de creación original, pero no es necesario usarlas. Los vínculos se usan con una sintaxis específica, el «patrón de vínculos». CamelCase Originalmente gran parte de wikis usaban CamelCase como patrón de vínculos, poniendo frases sin espacios y poniendo la primera letra de cada palabra en mayúscula (por ejemplo, la palabra «CamelCase»). Este método es muy fácil, pero hace que los links se escriban de una manera que se desvía de la escritura estándar. Los wikis basados en CamelCase se distinguen instantáneamente por los links con nombres como: «TablaDeContenidos», «PreguntasFrecuentes». Por consiguiente, comenzaron a desarrollarse otras soluciones. Vínculos libres Los «vínculos libres», usados por primera vez por Cliki, usan un formato tipo _(vínculo). Por ejemplo, _(Tabla de contenidos), _(Preguntas frecuentes). Otros motores de wiki usan distintos signos de puntuación. Interwiki Interwiki permite vínculos entre distintas comunidades wiki. Las nuevas páginas se crean simplemente creando un vínculo apropiado. Si el vínculo no existe, se acostumbra a destacar como «vínculo roto». Siguiendo el vínculo se abre una página de edición, que permite al usuario introducir el texto para la nueva página wiki. Este mecanismo asegura que casi no se generen páginas huérfanas (es decir, páginas que no tienen ningún vínculo apuntando a ellas). Además
  • 4. se mantiene un nivel alto de conectividad. Búsqueda La mayoría de wikis permite al menos una búsqueda por títulos, a veces incluso una búsqueda por texto completo. La escalabilidad de la búsqueda depende totalmente del hecho de que el motor del wiki disponga de una base de datos o no: es necesario el acceso a una base de datos indexada para hacer búsquedas rápidas en wikis grandes. En Wikipedia el botón «Ir» permite a los lectores ir directamente a una página que concuerde con los criterios de búsqueda. El motor de MetaWiki se creó para habilitar búsquedas en múltiples wikis. Control de cambios Los wikis suelen diseñarse con la filosofía de aumentar la facilidad de corrección de los errores, y no la de reducir la dificultad de cometerlos. Los wikis son muy abiertos, pero aun así proporcionan maneras de verificar la validez de los últimos cambios al contenido de las páginas. En casi todos los wikis hay una página específica, «Cambios recientes», que enumera las ediciones más recientes de artículos, o una lista con los cambios hechos durante un período. Algunos wikis pueden filtrar la lista para deshacer cambios hechos por vandalismo. Desde el registro de cambios suele haber otras funciones: el «Historial de revisión» muestra versiones anteriores de la página, y la característica «diff» destaca los cambios entre dos revisiones. Usando el historial, un editor puede ver y restaurar una versión anterior del artículo, y la característica «diff» se puede usar para decidir cuándo eso es necesario. Un usuario normal del wiki puede ver el «diff» de una edición listada en «Cambios recientes» y, si es una edición inaceptable, consultar el historial y restaurar una versión anterior. Este proceso es más o menos complicado, según el software que use el wiki. En caso de que las ediciones inaceptables se pasen por alto en «Cambios recientes», algunos motores de wiki proporcionan control de contenido adicional. Se pueden monitorizar para asegurar que una página o un conjunto de páginas mantienen la calidad. A un usuario dispuesto a mantener esas páginas se le avisará en caso de modificaciones, y así se le permitirá verificar rápidamente la validez de las nuevas ediciones. Vandalismo Consiste en hacer ediciones (generalmente hechas por desconocidos) que borran contenido importante, introducen errores, agregan contenido inapropiado u ofensivo (por ejemplo, insultos) o simplemente incumplen flagrantemente las normas del wiki. También son frecuentes los intentos de spam, por ejemplo: • La introducción de enlaces en un wiki con el fin de subir en los buscadores de Internet (véase PageRank). • Los intentos de publicitarse o hacer proselitismo (de su ideología, religión u otros) a través del wiki. • Ingresar material que viola derechos de autor. Algunas soluciones que se utilizan para luchar contra el vandalismo son: • Revertir rápidamente sus cambios, para que así se desanimen. • Bloquearlos temporalmente por su nombre de usuario o dirección IP, de tal forma que no puedan seguir editando. Esta solución se ve dificultada por las IPs dinámicas y el uso de proxies abiertos, que, al ser bloqueados, pueden afectar también a personas inocentes.
  • 5. • Si se produce siempre en una misma página, la protección de esa página. • No permitir que editen páginas usuarios que no estén registrados en la wiki. • En casos extremos (generalmente, ataques por medio de herramientas automáticas), bloquear la base de datos del wiki, sin permitir ningún tipo de edición. Software Existen varios programas, generalmente scripts de servidor en Perl o PHP, que implementan un wiki. Con frecuencia, suelen utilizar una base de datos, como MySQL. Suelen distinguirse por: • Destino: para uso personal, para intranets, para la web, etc. • Funcionalidad: pueden o no mantener historiales, tener opciones de seguridad, permitir subir archivos, tener editores WYSIWYG, etc. Algunos de los más utilizados son: • UseModWiki: el más antiguo, escrito en Perl. • MediaWiki: utilizado en todos los proyectos de Wikimedia. Basado en PHP y MySQL. • PhpWiki: basado en UseMod. Escrito en PHP, puede utilizar distintas bases de datos. • TikiWiki: CMS completo, con un wiki muy desarrollado, usando PHP y MySQL. • DokuWiki: Un wiki completo escrito en PHP sin necesidad de bases de datos (usa sólo ficheros de texto) • WikkaWiki: basado en WakkaWiki, un wiki muy ligero. Usa PHP y MySQL • MoinMoin: Modular. Escrito en Python. • OpenWiking: Wiki programado en ASP. • Swiki: Wiki programado en Squeak Utilidades • Pueden realizarse búsquedas en varios wikis a la vez, incluso en esta web y en la de Ward, utilizando un MetaWiki. • El wiki es una práctica innovadora que ha expandido su uso, por ejemplo, a las empresas, las cuales utilizan este medio para que el conocimiento adquirido por los trabajadores pueda ser compartido y complementado por todos, se utiliza como una herramienta que favorece la innovación.
  • 6. Diferencias entre los Blogs y los Wikis: Blogs Wikis - Normalmente un sólo - Muchos autores al mismo nivel autor/editor + comentarios - La estructura puede ser variada, - Estructura cronológica sustituyéndose las versiones a empezando por la última medida que se modifica. "entrada" - Links externos e internos - Links externos Fuente: Wikinomics Quizás la utilidad más destacada de una wiki empresarial es el fomento de la colaboración, tanto interna (entre los empleados) como externa (con proveedores y clientes). El hecho que haya una plataforma editable e intuitiva para compartir documentos y realizar ediciones colaborativas, estimula mucho a que esta colaboración se perciba como algo factible. A continuación se describen los principales usos, tanto a nivel interno como externo, que pueden tener las Wikis: 1) Creación colectiva entre los empleados La wiki interna puede funcionar como una útil herramienta de colaboración para compartir conocimiento entre personas de diferentes departamentos. Al ser un "espacio abierto" donde se puede crear y editar contenidos por varios usuarios, facilita la participación y el acceso al trabajo compartido en tiempo real. Esa colaboración puede manifestarse en forma de múltiples resultados. Por ejemplo: a) para crear colectivamente un "kit de bienvenida" a los nuevos trabajadores en el que se les explique cómo
  • 7. funciona la empresa, o b) para redactar "normas de funcionamiento" que regulen la actividad de una comunidad de innovadores. En este sentido la Wiki funciona como una herramienta que potencia la Inteligencia Colectiva. 2) Información sobre los productos de la empresa La Wiki es una buena herramienta para generar información actualizada sobre un producto, que incluya sus funcionalidades, características, precios, opiniones de clientes, etc. Puede tener una parte de acceso interno, como repositorio ordenado de conocimiento vital sobre el producto; y una parte pública que haga la función de "portal del producto" o incluso, de "manual del usuario". Lo más valioso de esta utilidad es que el repositorio de conocimiento sobre el producto se construye de manera colectiva, aprovechando información de distintas fuentes, lo que aporta una riqueza y diversidad al resultado final que terminan agradeciendo los clientes. 3) Espacio colaborativo para evaluar nuevos productos Las empresas usan wikis como un "espacio social de innovación", donde se comparten las opiniones entre los "beta-testers" que prueban los nuevos productos, bien sean los propios empleados de la empresa, o bien usuarios seleccionados. 4) Gestión de proyectos También puede servir para la gestión de proyectos en los que intervienen profesionales de distintos departamentos e incluso de distintos países. Se puede crear un wiki por proyecto para que los miembros del equipo puedan generar y actualizar documentos relacionados con el proyecto, y que toda esta información esté concentrada en el mismo lugar. Con esto se puede acabar con el desorden que implica el envío colectivo de e-mails en distintos formatos. 5) Espacio de creatividad bottom-up Algunas empresas están usando las wikis para impulsar dinámicas de creatividad con un fuerte acento bottom-up (de-abajo-a-arriba), democratizando la participación de los empleados de cualquier nivel en los procesos de innovación. La wiki permite que las ideas de los empleados de los niveles inferiores tengan un espacio donde proyectarse, y no pasen desapercibidas, ni se queden atrapadas por barreras jerárquicas o trabas burocráticas. 6) Atención al cliente Una Wiki se puede convertir en una sólida herramienta para el Departamento de Atención al cliente. Los empleados pueden ir creando una entrada para cada tipo de problema o incidencia que se les vaya presentando y mostrar la solución dada. Es muy típico, por ejemplo, que las Wikis sirvan para redactar colectivamente las útiles FAQ ("Preguntas más frecuentes") sobre un producto o servicio. 7) Agenda de reuniones Pueden usarse las wikis para conocer las agendas de los demás empleados y poder concertar una reunión que venga bien a todos sin necesidad, de nuevo, del envío de múltiples e-mails confirmando la disponibilidad de los asistentes. EL LENGUAJE UNIFICADO DE MODELADO (UML) En todas las disciplinas de la Ingeniería se hace evidente la importancia de los modelos ya que describen el aspecto y la conducta de "algo". Ese "algo" puede existir, estar en un estado de desarrollo o estar, todavía, en un estado de planeación. Es en este momento cuando los diseñadores del modelo deben investigar los requerimientos del producto terminado y dichos requerimientos pueden incluir áreas tales como funcionalidad,
  • 8. performance y confiabilidad. Además, a menudo, el modelo es dividido en un número de vistas, cada una de las cuales describe un aspecto específico del producto o sistema en construcción. El modelado sirve no solamente para los grandes sistemas, aun en aplicaciones de pequeño tamaño se obtienen beneficios de modelado, sin embargo es un hecho que entre más grande y más complejo es el sistema, más importante es el papel de que juega el modelado por una simple razón: "El hombre hace modelos de sistemas complejos porque no puede entenderlos en su totalidad". UML es una técnica para la especificación sistemas en todas sus fases. Nació en 1994 cubriendo los aspectos principales de todos los métodos de diseño antecesores y, precisamente, los padres de UML son Grady Booch, autor del método Booch; James Rumbaugh, autor del método OMT e Ivar Jacobson, autor de los métodos OOSE y Objectory. La versión 1.0 de UML fue liberada en Enero de 1997 y ha sido utilizado con éxito en sistemas construidos para toda clase de industrias alrededor del mundo: hospitales, bancos, comunicaciones, aeronáutica, finanzas, etc. Los principales beneficios de UML son: • Mejores tiempos totales de desarrollo (de 50 % o más). • Modelar sistemas (y no sólo de software) utilizando conceptos orientados a objetos. • Establecer conceptos y artefactos ejecutables. • Encaminar el desarrollo del escalamiento en sistemas complejos de misión crítica. • Crear un lenguaje de modelado utilizado tanto por humanos como por máquinas. • Mejor soporte a la planeación y al control de proyectos. • Alta reutilización y minimización de costos. UML, ¿Método o Lenguaje de Modelado? UML es un lenguaje para hacer modelos y es independiente de los métodos de análisis y diseño. Existen diferencias importantes entre un método y un lenguaje de modelado. Un método es una manera explícita de estructurar el pensamiento y las acciones de cada individuo. Además, el método le dice al usuario qué hacer, cómo hacerlo, cuándo hacerlo y por qué hacerlo; mientras que el lenguaje de modelado carece de estas instrucciones. Los métodos contienen modelos y esos modelos son utilizados para describir algo y comunicar los resultados del uso del método. Un modelo es expresado en un lenguaje de modelado. Un lenguaje de modelado consiste de vistas, diagramas, elementos de modelo  los símbolos utilizados en los modelos  y un conjunto de mecanismos generales o reglas que indican cómo utilizar los elementos. Las reglas son sintácticas, semánticas y pragmáticas (figura 1). figura 1 Vistas: Las vistas muestran diferentes aspectos del sistema modelado. Una vista no es una gráfica, pero sí una abstracción que consiste en un número de diagramas y todos esos diagramas juntos muestran una "fotografía" completa del sistema. Las vistas también ligan el lenguaje de modelado a los métodos o procesos elegidos para el desarrollo. Las diferentes vistas que UML tiene son: • Vista Use-Case: Una vista que muestra la funcionalidad del sistema como la perciben los actores externos. • Vista Lógica: Muestra cómo se diseña la funcionalidad dentro del sistema, en términos de la estructura estática y la conducta dinámica del sistema. • Vista de Componentes: Muestra la organización de los componentes de código. • Vista Concurrente: Muestra la concurrencia en el sistema, direccionando los problemas con la comunicación y sincronización que están presentes en un sistema concurrente. • Vista de Distribución: muestra la distribución del sistema en la arquitectura física con computadoras y dispositivos llamados nodos.
  • 9. Diagramas: Los diagramas son las gráficas que describen el contenido de una vista. UML tiene nueve tipos de diagramas que son utilizados en combinación para proveer todas las vistas de un sistema: diagramas de caso de uso, de clases, de objetos, de estados, de secuencia, de colaboración, de actividad, de componentes y de distribución. Símbolos o Elementos de modelo: Los conceptos utilizados en los diagramas son los elementos de modelo que representan conceptos comunes orientados a objetos, tales como clases, objetos y mensajes, y las relaciones entre estos conceptos incluyendo la asociación, dependencia y generalización. Un elemento de modelo es utilizado en varios diagramas diferentes, pero siempre tiene el mismo significado y simbología. Reglas o Mecanismos generales: Proveen comentarios extras, información o semántica acerca del elemento de modelo; además proveen mecanismos de extensión para adaptar o extender UML a un método o proceso específico, organización o usuario. FASES DEL DESARROLLO DE UN SISTEMA Las fases del desarrollo de sistemas que soporta UML son: Análisis de requerimientos, Análisis, Diseño, Programación y Pruebas. Análisis de Requerimientos UML tiene casos de uso (use-cases) para capturar los requerimientos del cliente. A través del modelado de casos de uso, los actores externos que tienen interés en el sistema son modelados con la funcionalidad que ellos requieren del sistema (los casos de uso). Los actores y los casos de uso son modelados con relaciones y tienen asociaciones entre ellos o éstas son divididas en jerarquías. Los actores y casos de uso son descritos en un diagrama use-case. Cada use-case es descrito en texto y especifica los requerimientos del cliente: lo que él (o ella) espera del sistema sin considerar la funcionalidad que se implementará. Un análisis de requerimientos puede ser realizado también para procesos de negocios, no solamente para sistemas de software. Análisis La fase de análisis abarca las abstracciones primarias (clases y objetos) y mecanismos que están presentes en el dominio del problema. Las clases que se modelan son identificadas, con sus relaciones y descritas en un diagrama de clases. Las colaboraciones entre las clases para ejecutar los casos de uso también se consideran en esta fase a través de los modelos dinámicos en UML. Es importante notar que sólo se consideran clases que están en el dominio del problema (conceptos del mundo real) y todavía no se consideran clases que definen detalles y soluciones en el sistema de software, tales como clases para interfaces de usuario, bases de datos, comunicaciones, concurrencia, etc. Diseño En la fase de diseño, el resultado del análisis es expandido a una solución técnica. Se agregan nuevas clases que proveen de la infraestructura técnica: interfaces de usuario, manejo de bases de datos para almacenar objetos en una base de datos, comunicaciones con otros sistemas, etc. Las clases de dominio del problema del análisis son agregadas en esta fase. El diseño resulta en especificaciones detalladas para la fase de programación. Programación En esta fase las clases del diseño son convertidas a código en un lenguaje de programación orientado a objetos. Cuando se crean los modelos de análisis y diseño en UML, lo más aconsejable es trasladar mentalmente esos modelos a código. Pruebas Normalmente, un sistema es tratado en pruebas de unidades, pruebas de integración, pruebas de sistema, pruebas de aceptación, etc. Las pruebas de unidades se realizan a clases individuales o a un grupo de clases y son típicamente ejecutadas por el programador. Las pruebas de integración integran componentes y clases en orden para verificar que se ejecutan como se especificó. Las pruebas de sistema ven al sistema como una "caja negra" y validan que el sistema tenga la funcionalidad final que le usuario final espera. Las pruebas de aceptación conducidas por el cliente verifican que el sistema satisface los requerimientos y son similares a las pruebas de sistema. CONCEPTOS DE LA METODOLOGÍA ORIENTADA A OBJETOS
  • 10. La metodología orientada a objetos ha derivado de las metodologías anteriores a éste. Así como los métodos de diseño estructurado realizados guían a los desarrolladores que tratan de construir sistemas complejos utilizando algoritmos como sus bloques fundamentales de construcción, similarmente los métodos de diseño orientado a objetos han evolucionado para ayudar a los desarrolladores a explotar el poder de los lenguajes de programación basados en objetos y orientados a objetos, utilizando las clases y objetos como bloques de construcción básicos. Actualmente el modelo de objetos ha sido influenciado por un número de factores no sólo de la Programación Orientada a Objetos, POO (Object Oriented Programming, OOP por sus siglas en inglés). Además, el modelo de objetos ha probado ser un concepto uniforme en las ciencias de la computación, aplicable no sólo a los lenguajes de programación sino también al diseño de interfaces de usuario, bases de datos y arquitectura de computadoras por completo. La razón de ello es, simplemente, que una orientación a objetos nos ayuda a hacer frente a la inherente complejidad de muchos tipos de sistemas. Se define a un objeto como "una entidad tangible que muestra alguna conducta bien definida". Un objeto "es cualquier cosa, real o abstracta, acerca de la cual almacenamos datos y los métodos que controlan dichos datos". Los objetos tienen una cierta "integridad" la cual no deberá ser violada. En particular, un objeto puede solamente cambiar estado, conducta, ser manipulado o estar en relación con otros objetos de manera apropiada a este objeto. Actualmente, el Análisis Orientado a Objetos (AOO) va progresando como método de análisis de requisitos por derecho propio y como complemento de otros métodos de análisis. En lugar de examinar un problema mediante el modelo clásico de entrada-proceso-salida (flujo de información) o mediante un modelo derivado exclusivamente de estructuras jerárquicas de información, el AOO introduce varios conceptos nuevos. Estos conceptos nuevos le parecen inusuales a mucha gente, pero son bastante naturales. Una clase es una plantilla para objetos múltiples con características similares. Las clases comprenden todas esas características de un conjunto particular de objetos. Cuando se escribe un programa en lenguaje orientado a objetos, no se definen objetos verdaderos sino se definen clases de objetos. Una instancia de una clase es otro término para un objeto real. Si la clase es la representación general de un objeto, una instancia es su representación concreta. A menudo se utiliza indistintamente la palabra objeto o instancia para referirse, precisamente, a un objeto. En los lenguajes orientados a objetos, cada clase está compuesta de dos cualidades: atributos (estado) y métodos (comportamiento o conducta). Los atributos son las características individuales que diferencian a un objeto de otro (ambos de la misma clase) y determinan la apariencia, estado u otras cualidades de ese objeto. Los atributos de un objeto incluyen información sobre su estado. Los métodos de una clase determinan el comportamiento o conducta que requiere esa clase para que sus instancias puedan cambiar su estado interno o cuando dichas instancias son llamadas para realizar algo por otra clase o instancia. El comportamiento es la única manera en que las instancias pueden hacerse algo a sí mismas o tener que hacerles algo. Los atributos se encuentran en la parte interna mientras que los métodos se encuentran en la parte externa del objeto . Representación visual de un objeto como componente de software Para definir el comportamiento de un objeto, se crean métodos, los cuales tienen una apariencia y un comportamiento igual al de las funciones en otros lenguajes de programación, los lenguajes estructurados, pero se definen dentro de una clase. Los métodos no siempre afectan a un solo objeto; los objetos también se comunican entre sí mediante el uso de métodos. Una clase u objeto puede llamar métodos en otra clase u objeto para avisar sobre los cambios en el ambiente o para solicitarle a ese objeto que cambie su estado. Cualquier cosa que un objeto no sabe, o no puede hacer, es excluida del objeto. Además, como se puede observar de los diagramas, las variables del objeto se localizan en el centro o núcleo del objeto. Los métodos rodean y esconden el núcleo del objeto de otros objetos en el programa. Al empaquetamiento de las variables de un objeto con la protección de sus métodos se le llama encapsulamiento. Típicamente, el encapsulamiento es utilizado para esconder detalles de la puesta en práctica no importantes de otros objetos. Entonces, los detalles de la puesta en práctica pueden cambiar en cualquier tiempo sin afectar otras partes del programa.
  • 11. Esta imagen conceptual de un objeto —un núcleo de variables empaquetadas en una membrana protectora de métodos— es una representación ideal de un objeto y es el ideal por el que los diseñadores de sistemas orientados a objetos luchan. Sin embargo, no lo es todo: a menudo, por razones de eficiencia o la puesta en práctica, un objeto puede querer exponer algunas de sus variables o esconder algunos de sus métodos. El encapsulamiento de variables y métodos en un componente de software ordenado es, todavía, una simple idea poderosa que provee dos principales beneficios a los desarrolladores de software: • Modularidad, esto es, el código fuente de un objeto puede ser escrito, así como darle mantenimiento, independientemente del código fuente de otros objetos. Así mismo, un objeto puede ser transferido alrededor del sistema sin alterar su estado y conducta. • Ocultamiento de la información, es decir, un objeto tiene una "interfaz publica" que otros objetos pueden utilizar para comunicarse con él. Pero el objeto puede mantener información y métodos privados que pueden ser cambiados en cualquier tiempo sin afectar a los otros objetos que dependan de ello. Los objetos proveen el beneficio de la modularidad y el ocultamiento de la información. Las clases proveen el beneficio de la reutilización. Los programadores de software utilizan la misma clase, y por lo tanto el mismo código, una y otra vez para crear muchos objetos. En las implantaciones orientadas a objetos se percibe un objeto como un paquete de datos y procedimientos que se pueden llevar a cabo con estos datos. Esto encapsula los datos y los procedimientos. La realidad es diferente: los atributos se relacionan al objeto o instancia y los métodos a la clase. ¿Por qué se hace así? Los atributos son variables comunes en cada objeto de una clase y cada uno de ellos puede tener un valor asociado, para cada variable, diferente al que tienen para esa misma variable los demás objetos. Los métodos, por su parte, pertenecen a la clase y no se almacenan en cada objeto, puesto que sería un desperdicio almacenar el mismo procedimiento varias veces y ello va contra el principio de reutilización de código. Otro concepto muy importante en la metodología orientada a objetos es el de herencia. La herencia es un mecanismo poderoso con el cual se puede definir una clase en términos de otra clase; lo que significa que cuando se escribe una clase, sólo se tiene que especificar la diferencia de esa clase con otra, con lo cual, la herencia dará acceso automático a la información contenida en esa otra clase. Con la herencia, todas las clases están arregladas dentro de una jerarquía estricta. Cada clase tiene una superclase (la clase superior en la jerarquía) y puede tener una o más subclases (las clases que se encuentran debajo de esa clase en la jerarquía). Se dice que las clases inferiores en la jerarquía, las clases hijas, heredan de las clases más altas, las clases padres. Las subclases heredan todos los métodos y variables de las superclases. Es decir, en alguna clase, si la superclase define un comportamiento que la clase hija necesita, no se tendrá que redefinir o copiar ese código de la clase padre De esta manera, se puede pensar en una jerarquía de clase como la definición de conceptos demasiado abstractos en lo alto de la jerarquía y esas ideas se convierten en algo más concreto conforme se desciende por la cadena de la superclase. Sin embargo, las clases hijas no están limitadas al estado y conducta provistos por sus superclases; pueden agregar variables y métodos además de los que ya heredan de sus clases padres. Las clases hijas pueden, también, sobreescribir los métodos que heredan por implementaciones especializadas para esos métodos. De igual manera, no hay limitación a un sólo nivel de herencia por lo que se tiene un árbol de herencia en el que se puede heredar varios niveles hacia abajo y mientras más niveles descienda una clase, más especializada será su conducta. La herencia presenta los siguientes beneficios: • Las subclases proveen conductas especializadas sobre la base de elementos comunes provistos por la superclase. A través del uso de herencia, los programadores pueden reutilizar el código de la superclase muchas veces. • Los programadores pueden implementar superclases llamadas clases abstractas que definen conductas "genéricas". Las superclases abstractas definen, y pueden implementar parcialmente, la conducta pero gran parte de la clase no está definida ni implementada. Otros programadores concluirán esos detalles con subclases especializadas. Ventajas de la metodología orientada a objetos
  • 12. En síntesis, algunas ventajas que presenta son: • Reutilización. Las clases están diseñadas para que se reutilicen en muchos sistemas. Para maximizar la reutilización, las clases se construyen de manera que se puedan adaptar a los otros sistemas. Un objetivo fundamental de las técnicas orientadas a objetos es lograr la reutilización masiva al construir el software. • Estabilidad. Las clases diseñadas para una reutilización repetida se vuelven estables, de la misma manera que los microprocesadores y otros chips se hacen estables. • El diseñador piensa en términos del comportamiento de objetos y no en detalles de bajo nivel. El encapsulamiento oculta los detalles y hace que las clases complejas sean fáciles de utilizar. • Se construyen clases cada vez más complejas. Se construyen clases a partir de otras clases, las cuales a su vez se integran mediante clases. Esto permite construir componentes de software complejos, que a su vez se convierten en bloques de construcción de software más complejo. • Calidad. Los diseños suelen tener mayor calidad, puesto que se integran a partir de componentes probados, que han sido verificados y pulidos varias veces. • Un diseño más rápido. Las aplicaciones se crean a partir de componentes ya existentes. Muchos de los componentes están construidos de modo que se pueden adaptar para un diseño particular. • Integridad. Las estructuras de datos (los objetos) sólo se pueden utilizar con métodos específicos. Esto tiene particular importancia en los sistemas cliente-servidor y los sistemas distribuidos, en los que usuarios desconocidos podrían intentar el acceso al sistema. • Mantenimiento más sencillo. El programador encargado del mantenimiento cambia un método de clase a la vez. Cada clase efectúa sus funciones independientemente de las demás. • Una interfaz de pantalla sugestiva para el usuario. Hay que utilizar una interfaz de usuario gráfica de modo que el usuario apunte a iconos o elementos de un menú desplegado, relacionados con los objetos. En determinadas ocasiones, el usuario puede ver un objeto en la pantalla. Ver y apuntar es más fácil que recordar y escribir. • Independencia del diseño. Las clases están diseñadas para ser independientes del ambiente de plataformas, hardware y software. Utilizan solicitudes y respuestas con formato estándar. Esto les permite ser utilizadas en múltiples sistemas operativos, controladores de bases de datos, controladores de red, interfaces de usuario gráficas, etc. El creador del software no tiene que preocuparse por el ambiente o esperar a que éste se especifique. • Interacción. El software de varios proveedores puede funcionar como conjunto. Un proveedor utiliza clases de otros. Existe una forma estándar de localizar clases e interactuar con ellas. El software desarrollado de manera independiente en lugares ajenos debe poder funcionar en forma conjunta y aparecer como una sola unidad ante el usuario. • Computación Cliente-Servidor. En los sistemas cliente-servidor, las clases en el software cliente deben enviar solicitudes a las clases en el software servidor y recibir respuestas. Una clase servidor puede ser utilizada por clientes diferentes. Estos clientes sólo pueden tener acceso a los datos del servidor a través de los métodos de la clase. Por lo tanto los datos están protegidos contra su corrupción. • Computación de distribución masiva. Las redes a nivel mundial utilizarán directorios de software de objetos accesibles. El diseño orientado a objetos es la clave para la computación de distribución masiva. Las clases de una máquina interactúan con las de algún otro lugar sin saber donde residen tales clases. Ellas reciben y envían mensajes orientados a objetos en formato estándar. • Mayor nivel de automatización de las bases de datos. Las estructuras de datos (los objetos) en las bases de datos orientadas a objetos están ligadas a métodos que llevan a cabo acciones automáticas. Una base de datos OO tiene integrada una inteligencia, en forma de métodos, en tanto que una base de datos relacional básica carece de ello. • Migración. Las aplicaciones ya existentes, sean orientadas a objetos o no, pueden preservarse si se
  • 13. ajustan a un contenedor orientado a objetos, de modo que la comunicación con ella sea a través de mensajes estándar orientados a objetos. • Mejores herramientas CASE. Las herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por Computadora) utilizarán las técnicas gráficas para el diseño de las clases y de la interacción entre ellas, para el uso de los objetos existentes adaptados a nuevas aplicaciones. Las herramientas deben facilitar el modelado en términos de eventos, formas de activación, estados de objetos, etc. Las herramientas OO del CASE deben generar un código tan pronto se definan las clases y permitir al diseñador utilizar y probar los métodos recién creados. Las herramientas se deben diseñar de manera que apoyen el máximo de creatividad y una continua afinación del diseño durante la construcción. Es indudable que el ambiente competitivo en el que se vive en el ámbito empresarial actualmente, requiere de promover los procesos y actividades de negocio que generan las ventajas competitivas de las compañías ante sus más fuertes competidores. Por esto, desde hace ya varios años, se ha dado mayor importancia a las Tecnologías de Información y su alineación con las estrategias del negocio para mejorar sus procesos clave de negocio. Prueba de ello, es el incremento tan sustancial de adquisiciones de paquetes de software empresariales tales como el ERP (Enterprise Resource Planning), con el cual los directivos de las compañías esperan tener integradas todas las áreas o departamentos de la compañía que apoyan para la generación de sus productos y servicios. Hoy más que nunca las empresas requieren de herramientas que les proporcionen control y centralización de su información, esto con el fin tomar las mejores decisiones para sus procesos y estrategias de negocios. Los ERP son una solución robusta para aquellas empresas que buscan una solución universal a la centralización de su información. La implementación de un sistema de ERP por lo general es largo y complejo, ya que implica rediseñar los esquemas de trabajo. Su implementación es de alto riesgo, ya que envuelve complejidad, tamaño, altos costos, un equipo considerable de desarrollo, además de inversión de tiempo. En la mayoría de las empresas, se requiere remplazar la infraestructura existente, lo que implica inversión de capital adicional, especialización y hasta la posibilidad de parar el negocio temporalmente para la implementación: por otra parte es importante señalar que el grado de experiencia de los proveedores es un factor importante para el buen funcionamiento del sistema. Metodología Para el desarrollo de este artículo, se tomaron en cuenta varias fuentes bibliográficas como son: biblioteca digital del Instituto Tecnológico y de Estudios Superiores de Monterrey (ITESM), biblioteca de ITESM Campus Monterrey, revistas electrónicas y diversas consultas de la Web. Se analizaron los diversos puntos de vista de cada uno de los autores consultados y se tomó lo más importante de sus puntos de vista. ¿Qué es un ERP? El ERP es un sistema integral de gestión empresarial que está diseñado para modelar y automatizar la mayoría de procesos en la empresa (área de finanzas, comercial, logística, producción, etc.). Su misión es facilitar la planificación de todos los recursos de la empresa (www.adpime.com).
  • 14. Por otro lado, Kumar y Hillengersberg (2000) definen al Enterprise Resource Planning (ERP) como "paquetes de sistemas configurables de información dentro de los cuales se integra la información a través de áreas funcionales de la organización". Los sistemas ERP son extremadamente costosos, y una vez que los sistemas ERP se implantan con éxito trae una serie de beneficios importantes para las empresas. Orton y Marlene (2004) definen a los sistemas de planeación de recursos empresariales (ERP) como un sistema que permite coleccionar y consolidar la información a través de la Empresa. Reuther,D. (2004) en su artículo "Critical Factors for Enterprise Resources Planning System Selection and Implementation Projects within Small to Médium Enterprise" menciona que K.C. Laundon y J.P. Laundon, (2000) definen los sistemas de planeación de recursos empresariales (ERP) como un sistema de administración de negocios que integra todas las facetas del negocio, incluyendo planeación, manufactura, ventas y finanzas (esto lo podemos representa en Fig. 1) El software ERP planea y automatiza muchos procesos con la meta de integrar información a lo largo de la empresa y elimina los complejos enlaces entre los sistemas de las diferentes áreas del negocio.