1 Curso POO (Programación orientada a objetos) en java - problemas y proceso

6
Imagen: http://co.fotolia.com Clara Patricia Avella Ibáñez [email protected] Curso de programación orientada a objetos en Java

description

1_ Solución de problemas y proceso en el desarrollo de aplicaciones de software

Transcript of 1 Curso POO (Programación orientada a objetos) en java - problemas y proceso

Imagen: http://co.fotolia.com

Clara Patricia Avella Ibáñez [email protected]

Curso de programación orientada a objetos en Java

Clara Patricia Avella Ibáñez – [email protected]

Presentación Damos inicio a nuestro curso de programación orientada a objetos en java, tratando el tema de solución de problemas computacionales y el proceso requerido para llevar a cabo esta solución. Para complementar este curso, los invitamos a conocer el proyecto Cupi2 de la Universidad de Los Andes (Colombia), el cual propone una metodología de enseñanza – aprendizaje para la Programación Orientada a Objetos. Este proyecto ha sido compartido por la Universidad de Los Andes (Colombia) a las diferentes Universidades del País y su sitio oficial es http://cupi2.uniandes.edu.co Los líderes de este proyecto son los Ingenieros Jorge Villalobos y Rubby Casallas, quienes son autores del libro “Fundamentos de programación. Aprendizaje activo basado en casos”, de la editorial Pearson Prentice Hall. La mayoría de los contenidos de este material han sido tomados de este proyecto (sitio oficial y libro).

1. Solución de problemas El programador de sistemas debe enfrentarse a la solución de problemas que se le presentan a una persona, o una empresa de cualquier tamaño, con el fin de agilizar los procesos que estos realizan a diario. Una manera de solucionar estos procesos es mediante una aplicación de software, de manera tal, que la solución de problemas parte de un cliente (que puede ser el futuro usuario de la aplicación) quien contrata a un programador para que produzca una solución a su problema y para ello éste último debe seguir un proceso que se apoya en herramientas. Estas herramientas pueden ser modelos o software.

Clara Patricia Avella Ibáñez – [email protected]

El mapa mental sobre solución de procesos se puede observar en: http://cupi2.uniandes.edu.co/sitio/images/cursosCupi2/apo1/mapasMentales/N1-Problema.jpg

2. El proceso para solucionar el problema

El programador debe seguir un proceso para llegar a la solución que entregará al cliente, el cual se puede observar en el siguiente diagrama.

Dominio del problema

Requerimientos del cliente

Alcances del proyecto

Identificación de clases y objetos

Modelo de diseño

UML

Código

Clara Patricia Avella Ibáñez – [email protected]

• Fuente: Academia SAI de Sun Microsystems (actualmente no existe). En el proyecto Cupi2 también existe un mapa mental relacionado con el proceso de construcción de una aplicación de software. Este se puede ver en: http://cupi2.uniandes.edu.co/sitio/images/cursosCupi2/apo1/mapasMentales/N1-Proceso.jpg Si se analizan estas dos imágenes, se puede concluir que el análisis que se observa en el mapa mental de cupi2 corresponde a los alcances del proyecto o Dominio del problema y a la identificación de clases y objetos, es decir, conocer muy bien el problema que se va a solucionar.

2.1 Etapa de análisis

El primer paso para tener éxito en el desarrollo de una aplicación de software es tener claridad acerca de lo que quiere el cliente y para ello se identifican los requerimientos de la aplicación, los cuales pueden ser funcionales y no funcionales. Los requerimientos funcionales corresponden a las acciones que realiza la aplicación de software. Para tomar un ejemplo, piense en el procesador de texto de Office (Word), que corresponde una aplicación de software y mire toda la funcionalidad que ofrece a los usuarios. Algunas de las funcionalidades son: Abrir un archivo, guardar un archivo, imprimir un archivo, cambiar el tipo de letra, adicionar imágenes de archivo y prediseñadas, adicionar tablas, justificar un párrafo, cambiar las márgenes del documento, etc. Los requerimientos no funcionales corresponden más a condiciones de calidad que debe tener una aplicación o restricciones que el cliente define para que se desarrolle su aplicación. Como ejemplo podemos pensar en que el cliente puede solicitar que su aplicación se construya con cierto lenguaje de programación o programa administrador de base de datos, o si se trata de una

Clara Patricia Avella Ibáñez – [email protected]

aplicación web, puede solicitar que se elabore en algunos idiomas específicos o con los colores de su organización. También pueden ser requerimientos no funcionales la seguridad al acceso de ciertas opciones dentro de la aplicación o los tiempos de respuesta. En cupi2 existen unos videos muy concretos sobre el concepto de requerimientos no funcionales y de clases y objetos, los podemos ver en: http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-1?start=5 En este curso nos centraremos en la identificación de requerimientos funcionales y para ello es necesario ver el material sobre “Requerimientos y casos de uso”. Además de identificar los requerimientos también se deben identificar las Entidades del problema, que hace referencia a quién o quienes están intervienen en el problema y forman parte de su solución. Por ejemplo, si se quiere construir una aplicación de software para automatizar el proceso de registro de notas que un profesor realiza sobre sus cursos, las entidades involucradas son: cursos (que orienta el profesor) y estudiantes (inscritos en cada curso). Pero si ya se desea llevar el registro de notas de todos los cursos de un colegio, las entidades involucradas son: profesores, cursos y estudiantes. Esta primera etapa de identificación de los requerimientos y las entidades se conoce como ANÁLISIS, que se resume en tener un excelente dominio del problema a resolver e identificar las entidades involucradas para resolver el mismo.

2.2 Etapa de diseño

Una vez se tiene claridad sobre el problema a solucionar, se debe proponer un diseño con la solución. Haciendo una similitud a un proyecto de construcción de una casa, pensemos que el diseño son los diferentes planos que el arquitecto y el ingeniero civil nos elaboran sobre la casa: plano estructural, plano arquitectónico, plano de instalaciones hidráulicas, plano de instalaciones eléctricas, etc. Estos planos son la base para construir la casa.

Clara Patricia Avella Ibáñez – [email protected]

El diseño se expresa a través de varios modelos (representación del mundo real), los cuales se representan a través de diagramas. Existen varias herramientas de uso libre y comercial, para elaborar los modelos de los diseños de una aplicación de software. En este curso trabajaremos con algunos diagramas básicos de modelado que ofrece UML (Unified Modeling Language). Los diagramas que manejaremos son: diagrama de casos de uso y diagrama de clases. Cada uno de estos diagramas se presenta en otro material de apoyo del curso. Los diagramas que se obtienen en el diseño son la base para la siguiente etapa.

2.3 Etapa de construcción

En esta etapa se escribe el código fuente de la aplicación que se diseñó en la etapa anterior. Para realizar una buena programación orientada a objetos se debe partir de los modelos diseñados para generar el código a partir de los mismos. Los programas por lo general se elaboran sobre IDE (Integrated Development Environment) Entornos de Desarrollo Integrado. El lenguaje de programación que utilizaremos es Java, un lenguaje orientado a objetos, así que es primordial partir de la concepción del problema y el diseño orientado a objetos antes de pasar al código fuente de la aplicación. Si el problema a solucionar se modela correctamente, el lenguaje de programación utilizado no implica muchos cambios, lo importante es realizar un buen modelado orientado a objetos. El IDE que utilizaremos en este curso es ECLIPSE, así que para familiarizarnos con este entorno los invito a revisar el material relacionado con el mismo.