RESUMEN
En este capítulo se desarrollara toda la teoría referente a la metodología a utilizar, la cual es RUP (Proceso Racional Unificado) y también UML (Lenguaje Unificado de Modelado), para desarrollo del próximo capítulo.

2.1. ANTECEDENTES DE LA ORGANIZACION
2.1.1. ASPECTO ORGANIZACIONAL: La estructura orgánica del Colegio Franco Boliviano es bastante simple, y se describe a continuación:
v  Director del establecimiento: Cuya función general es la de planificar, organizar y controlar las actividades administrativas y pedagógicas. Dentro de las funciones específicas se encuentran:
a.    Organizar el proceso de inscripción.
b.    Generar y sistematizar de manera objetiva y real la información de los informes y estadísticas.
c.    Prestar asistencia pedagógica a los docentes.
v  Docentes: Cuyas funciones son:
a.    Participar en la elaboración, ejecución y evaluación del plan de trabajo anual de la unidad educativa.
b.    Organizar, ambientar el aula, recolectar y preparar material educativo con la colaboración de los alumnos y padres de familia.
c.    Evaluar el proceso de aprendizaje de acuerdo a las normas vigente elaborar la documentación correspondiente.
d.    Promediar y entregar al secretario las calificaciones trimestrales y finales de los alumnos a cargo.
e.    Controlar la asistencia de los alumnos a su cargo, y brindar un reporte al director de la unidad en forma diaria.
f.     Coordinar y mantener comunicación permanente con los padres de familia sobre asuntos relacionados  con el rendimiento académico y el comportamiento de los alumnos.
v  Secretario (a): Tiene las siguientes funciones:
a)    Realizar el proceso de inscripción al inicio de la gestión.
b)   Elaborar las listas de cada curso y paralelo para proporcionar a los docentes.
c)    Custodiar los libros, archivos y toda la documentación de la unidad educativa.
d)   Transcribir las calificaciones proporcionadas por los docentes para la elaborar los boletines y las libretas de calificaciones.
e)    Elaborar certificaciones que soliciten las autoridades y los interesados.
f)     Elaborar el inventario general de la unidad educativa y mantenerlo actualizado.
g)   Elaborar la parte de asistencia diaria y mensual del personal de la unidad educativa.
h)   Llenar y centralizar los formularios y estadísticas de la unidad.
v  Personal Administrativo: Comprendido por el regente y el portero del colegio.

2.1.2. ASPECTO ADMINISTRATIVO: El Colegio Privado “Boliviano Holandés” fue fundado el 23 de Marzo de 1968 y desde entonces presta sus servicios a favor de la educación. El colegio queda ubicado en la ciudad de La Paz; Zona Pura Pura del departamento de La Paz, actualmente esta institución cuneta con el personal que alcanza el número de 32 distribuidos tanto el  plantel docente y como en el plantel administrativo. Esta institución prestas sus servicios solo al nivel secundario turno mañana, y alberga en sus aulas aproximadamente a 600 alumnos entre varones y mujeres.
2.1.3. ASPECTO TÉCNICO: Según los requerimientos del proyecto enfocaremos los siguientes aspectos técnicos:

Tabla.  Aspectos técnicos del proyecto.

HARDWARE
SOFTWARE DE BASE
SOFTWARE DE APLICACIÓN
Una computadora Core 2 Duo  (ó superior) de 2 Gb. en memoria RAM, con 500 Gb. De espacio libre en disco duro, un procesador con velocidad de 3 Ghz. (ó superior), un monitor a color VGA o LCD, un lector de CD/DVD y puerto USB.
La plataforma que se utilizará para el desarrollo el sistema es Windows en cualquiera de sus versiones.
El lenguaje de programación elegido para implementar el sistema es PHP  y como motor de base de datos utilizaremos Mysql.

2.2. METODOLOGIAS
2.2.1. Proceso Unificado de Desarrollo de Software (RUP)
El Proceso Unificado de Desarrollo de Software (Rational Unified Process en inglés, habitualmente resumido como RUP) es un proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado UML, constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos.
El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización.
También se conoce por este nombre al software desarrollado por Rational, hoy propiedad de IBM, el cual incluye información entrelazada de diversos artefactos y descripciones de las diversas actividades. Está incluido en el Rational Method Composer (RMC), que permite la personalización de acuerdo a necesidades.
Originalmente se diseñó un proceso genérico y de dominio público, el Proceso Unificado, y una especificación más detallada, el Rational Unified Process, que se vendiera como producto independiente

El RUP está basado en 6 principios clave que son:

Adaptar el proceso
El proceso deberá adaptarse a las características propias del proyecto u organización. El tamaño del mismo, así como su tipo o las regulaciones que lo condicionen, influirán en su diseño específico. También se deberá tener en cuenta el alcance del proyecto.

Balancear prioridades
Los requerimientos de los diversos inversores pueden ser diferentes, contradictorios o disputarse recursos limitados. Debe encontrarse un balance que satisfaga los deseos de todos.

Demostrar valor iterativamente
Los proyectos se entregan, aunque sea de un modo interno, en etapas iteradas. En cada iteración se analiza la opinión de los inversores, la estabilidad y calidad del producto, y se refina la dirección del proyecto así como también los riesgos involucrados
Elevar el nivel de abstracción
Este principio dominante motiva el uso de conceptos reutilizables tales como patrón del software, lenguajes 4GL o esquemas (frameworks) por nombrar algunos. Esto previene a los ingenieros de software ir directamente de los requisitos a la codificación de software a la medida del cliente. Un nivel alto de abstracción también permite discusiones sobre diversos niveles arquitectónicos. Éstos se pueden acompañar por las representaciones visuales de la arquitectura, por ejemplo con UML.

Enfocarse en la calidad
El control de calidad no debe realizarse al final de cada iteración, sino en todos los aspectos de la producción. El aseguramiento de la calidad forma parte del proceso de desarrollo y no de un grupo independiente.

Ciclo de vida
El ciclo de vida RUP es una implementación del Desarrollo en espiral. Fue creado ensamblando los elementos en secuencias semi-ordenadas. El ciclo de vida organiza las tareas en fases e iteraciones.
Racional Unified Process (RUP), está basado en UML (Unified Modeling Language) para la ingeniería de sistemas y de software. Esta metodología proporciona al equipo del proyecto procedimientos y herramientas.
RUP divide el proceso en cuatro fases, dentro de las cuales se realizan varias iteraciones en número variable según el proyecto y en las que se hace un mayor o menor hincapié en las distintas actividades. En la figura 2.5 se muestra cómo varía el esfuerzo asociado a las disciplinas según la fase en la que se encuentre el proyecto.
 El RUP divide el proceso de desarrollo en ciclos, teniendo un producto final al culminar cada una de ellos, estos a la vez se dividen en fases que finalizan con un hito donde se debe tomar una decisión importante:
  • Concepción: se hace un plan de fases, se identifican los principales casos de uso y se identifican los riesgos
  • Elaboración: se hace un plan de proyecto, se completan los casos de uso y se eliminan los riesgos
  • Construcción: se concentra en la elaboración de un producto totalmente operativo y eficiente y el manual de usuario
  • Transición: se Instala el producto en el cliente y se entrena a los usuarios. Como consecuencia de esto suelen surgir nuevos requisitos a ser analizados.
 
Principales características
  • Forma disciplinada de asignar tareas y responsabilidades (quién hace qué, cuándo y cómo)
  • Pretende implementar las mejores prácticas en Ingeniería de Software
  • Desarrollo iterativo
  • Administración de requisitos
  • Uso de arquitectura basada en componentes
  • Control de cambios
  • Modelado visual del software
  • Verificación de la calidad del software
El RUP es un producto de Rational (IBM). Se caracteriza por ser iterativo e incremental, estar centrado en la arquitectura y guiado por los casos de uso. Incluye artefactos (que son los productos tangibles del proceso como por ejemplo, el modelo de casos de uso, el código fuente, etc.) y roles (papel que desempeña una persona en un determinado momento, una persona puede desempeñar distintos roles a lo largo del proceso).
 Fases
  • Establece oportunidad y alcance
  • Identifica las entidades externas o actores con las que se trata
  • Identifica los casos de uso

2.2.2. EL LENGUAJE DE MODELADO UNIFICADO (UML)
EI UML es el lenguaje unificado para la construcción de modelos, este lenguaje permite especificar, visualizar y construir los artefactos de los sistemas de software. Es de notación estándar (que, entre otras cosas incluye el significado de sus notaciones) y está destinado a los sistemas de modelado que utilizan conceptos orientados a objetos. EI UML es un lenguaje para construir modelos; no guía al desarrollador en la forma de realizar el análisis y diseño orientados a objetos, no indica cual proceso de desarrollo adoptar. UML es una notación estándar de diagramación y construcción de modelos.

EI lenguaje UML permite expresar el modele de análisis utilizando una notación de modelado can reglas sintácticas, semánticas y pragmática. La sintaxis nos dice como mostrar y combinar símbolos, la sintaxis es comparable a las palabras del lenguaje natural. Las reglas semánticas nos dicen que significa cada símbolo y cómo interpretarlo.

UML dispone de dos clases diferentes de diagramas: los que dan una vista estática del sistema y los que dan una visión dinámica.

Debido a su estandarización  y su definición completa no ambigua y  aunque no sea un lenguaje de programación, UML  se puede conectar  de manera directa a lenguajes de programación como Java, C++ o Visual Basic, esta correspondencia permite lo que se denomina como ingeniería directa (obtener el código fuente partiendo de los modelos).
ELEMENTOS ESTRUCTURALES
Los elementos estructurales en UML, en su mayoría, son las partes estáticas del modelo y representan cosas que son conceptuales o materiales.
a)    Clases.- Es una descripción  de un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semántica. Una clase implementa una o más interfaces. Gráficamente es como un rectángulo que incluye su nombre, atributos y operaciones.
b)    Colaboración.- Define una interacción y es una sociedad de roles y otros elementos que colaboran para proporcionar un comportamiento cooperativo mayor que la suma de los comportamientos de sus elementos. Una misma clase puede participar en diferentes colaboraciones. La colaboración representa la implantación de patrones que forman un sistema. Se representa mediante una elipse con borde discontinuo, como en la figura.
 c)    Casos de Uso.-Es la descripción de un conjunto de acciones que un sistema ejecuta y que produce un determinado resultado que es de interés para un actor particular. Se utiliza par organizar los aspectos del comportamiento de un modelo se representa con un elipse de borde continuo como en la figura.

 

d)    Interfaz.-  Es una colección de operaciones que especifican un servicio de una determinada clase o componente. Una interfaz describe el comportamiento visible extremadamente de ese elemento, puede mostrar el comportamiento completo o sólo una parte del mismo. Además describe un conjunto de especificaciones de operaciones pero nunca su implementación. Se representa con un círculo, y rara vez se encuentra aislada  sino que más bien conecta a la clase o a los componentes que realiza.

RELACIONES
Existen cuatro tipos de relaciones entre los elementos de un modelo UML, los cuales son:
a)    Asociación.- Es una relación estructural que describe un conjunto de enlaces, los cuales son conexiones entre objetos. Representa con una línea continua, posiblemente dirigida, que a veces incluye una etiqueta, a medida se incluye otros adornos par indicar multiplicidad y roles de los objetos involucrado, como se muestra en la siguiente figura:
b)    Dependencias.- Es una relación semántica entre dos elementos en la cual un cambio a un elemento (independiente) puede afectar a la semántica del otro elemento (dependiente). Se representa con una línea discontinua como se muestra en la siguiente figura
DIAGRAMAS
UML dispone de dos clases diferentes de diagramas: los que dan una vista estática del sistema y los que dan una visión dinámica.
Diagrama de clases: muestra las clases, interfaces, colaboraciones y sus relaciones.
Son los más comunes y dan una vista estática del proyecto.
Diagrama de objetos: Es un diagrama de instancias de las clases mostradas en el diagrama de clases. Muestra las instancias y como se relacionan entre ellas. Se da una visión de casos reales.
Diagrama de componentes: Muestran la organización de los componentes del sistema. Un componente se corresponde con una 0 varias clases, interfaces 0 colaboraciones.
Diagrama de despliegue: Muestra los nodos y sus relaciones. Un nodo es un conjunto de componentes. Se utiliza para reducir la complejidad de los diagramas de clases y componentes de un gran sistema. Sirve como resumen e índice.
Diagrama de casos de uso: Muestran los casos de use, actores y sus relaciones.  Muestra quien puede hacer que y relaciones existen entre acciones (casos de uso). Son muy importantes para modelar y organizar el comportamiento del sistema.
Diagrama de secuencia, Diagrama de colaboración: Muestran a los diferentes objetos y las relaciones que pueden tener entre ellos, los mensajes que se envían entre ellos. Son dos diagramas diferentes, que se puede pasar de uno a otro sin pérdida de información, pero que nos dan puntos de vista diferentes del sistema. En resumen, cualquiera de los dos es un Diagrama de Interacción.
Diagrama de estados: muestra los estados, eventos, transiciones y actividades de los diferentes objetos. Son útiles en sistemas que reaccionen a eventos.
Diagrama de actividades: Es un caso especial del diagrama de estados. Muestra el flujo entre los objetos. Se utilizan para modelar el funcionamiento del sistema y el flujo de control entre objetos.
Los diagramas a representar dependerán de las características del sistema a desarrollar, UML permite definir solo los necesarios, puede tomarse como recomendación lo siguiente:
• Aplicación mono puesto:
              Diagrama de casos de uso
            Diagrama de clases
              Diagrama de interacción
• Aplicación mono puesto, con entrada de eventos:
Diagrama de estados.
        • Aplicación cliente servidor:
Diagrama de despliegue
Diagrama de componentes, dependiendo de la complejidad.
• Aplicación compleja distribuida:
             Todas las clases.
2.3. SOFTWARE
2.3.1. LENGUAJES
HTML
El HTML, acrónimo inglés de HyperText Markup Language (lenguaje de marcas
hipertextuales), lenguaje de marcación diseñado para estructurar textos y presentarlos en forma de hipertexto, que es el formato estándar de las páginas web. Gracias a Internet y a los navegadores del tipo Internet Explorer, Opera, Firefox o Netscape, el HTML se ha convertido en uno de los formatos más populares que existen para la construcción de documentos y también de los más fáciles de aprender.
HTML es una aplicación de SGML conforme al estándar internacional ISO 8879. XHTML es una reformulación de HTML 4 como aplicación XML 1.0, y que supone la base para la evolución estable de este lenguaje. Además XHTML permite la compatibilidad con los agentes de usuario que ya admitían HTML 4 siguiendo un conjunto de reglas.

PHP
PHP es un lenguaje de programación usado generalmente para la creación de contenido para sitios web. Las siglas significan "PHP Hypertext Pre-processor" (inicialmente PHP Tools, o, Personal Home Page Tools), y se trata de un lenguaje interpretado usado para la creación de aplicaciones para servidores, o creación de contenido dinámico para sitios web. Últimamente también para la creación de otro tipo de programas incluyendo aplicaciones con interfaz gráfica usando la librería GTK+.

2.3.2. SISTEMA GESTOR DE BASE DE DATOS

Los Sistemas Gestores de Bases de Datos son un tipo de software muy específico, dedicado a servir de interfaz entre la Base de datos y el usuario, las aplicaciones que la utilizan. Se compone de un lenguaje de definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta. En los textos que tratan este tema, o temas relacionados, se mencionan los términos SGBD y DBMS, siendo ambos equivalentes, y acrónimos, respectivamente, de Sistema Gestor de Bases de Datos y DataBase Management System, su expresión inglesa.

MySQL

MySQL es un sistema de gestión de base de datos, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desarrolla MySQL como software libre en un esquema de licenciamiento dual. Por un lado lo ofrece bajo la GNU GPL, pero, empresas que quieran incorporarlo en productos propietarios puede comprar a la empresa una licencia más permisiva que les permita ese uso.
Está desarrollado en su mayor parte en ANSI C.
Al contrario de proyectos como el Apache, donde el software es desarrollado por una comunidad pública, y el copyright del código está en poder del autor individual, MySQL está poseído y patrocinado por una empresa privada, que posee el copyright de la mayor parte del código. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias propietarias, la compañía ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet. MySQL AB fue fundado por David Axmark, Allan Larsson, y Michael Widenius.