28 sept 2008

Reflexion de todos

Reflexion Personal (Gerardo Calderón)

El Futuro del UML

Reflexion Personal (Víctor Deleón)

GOBIERNO ELECTRÓNICO Y SU IMPACTO EN EL UML EN EL SALVADOR

La carrera de ingeniería de computación, o de sistemas, como en otros lugares se le llama es comprendida en la sociedad como pura programación. Es reducida a una de las pequeñas áreas que aquí se estudian.

En los trabajos, en las empresas, buscan siempre estudiantes o graduados con experiencia en muchos lenguajes y técnicas de programación, lenguajes de definición de datos, como SQL, etc.

Esta concepción e importancia que le dan las empresas a esta rama de la carrera hace que el mismo estudiante conciba y reduzca su interés y su esfuerzo al simple hecho de “aprender más lenguajes de programación”, entre más lenguajes sepa dominar será mejor.

Esta concepción reduccionista de la carrera, trae consigo varias complicaciones

  1. Que los estudiantes le dan poca o nada importancia a las demás áreas de la carrera, quedándose en un segundo plano en sus estudios y aprendiendo muy poco de ellas. Algunas de estas son:
    1. Área de Investigación
    2. Área de Análisis y Modelado de Sistemas
    3. Área de las Ciencias en La Computación
  2. Proyección limitada y reducida. Las habilidades y conocimientos limitados que proyectamos al exterior y a otras empresas que buscan algo más que programadores. Nos mostramos con conocimientos limitados.

Si, está bien, el país necesita programadores, que automaticen los procesos de las empresas, de los gobiernos. Pero lo que más urge son gentes pensantes capaces de proponer modelos nuevos, capaces de analizar y reestructurar procesos anticuados.

Si no desarrollamos esas capacidades no estaremos haciendo un verdadero aporte al desarrollo de nuestro país. Estoy seguro que podemos hacer algo más que obedecer órdenes y sentarnos horas y horas frente a la computadora escribiendo código, código y más código.

UML es una herramienta que ofrece la posibilidad de hacer uso de los conocimientos informáticos para el desarrollo de sistemas y análisis de procesos. Actualmente se llevan dos de 50 materias en el pénsum en el que se enfocan medianamente en este lenguaje de modelado de sistemas. Por el contrario, existen 10 de 50 materias enfocadas específicamente en un lenguaje de programación. ¿Qué es lo que de verdad está produciendo la universidad? ¿Agentes de cambio? ¿Programadores especialistas en cumplir ordenes?

El gobierno de El Salvador se caracteriza por tomar muchas de las medidas que el gobierno de Chile implementa, tal como el libre mercado, la red solidaria, etc. Así también debería de empezar a implementar el Gobierno Electrónico, nombre que se le da a la totalidad de procesos estatales y públicos que están disponibles en línea, para que el ciudadano los haga desde una computadora personal. El implementar este tipo de gobierno obligaría a las universidades y centros de educación a indagar y profundizar más en los lenguajes de modelado y análisis. El implementar el Gobierno Electrónico implicaría el análisis y la remodelación de procesos existentes, potenciando así las capacidades de pensamiento de los estudiantes, no solo las de implementación.

Cuando estás programando, nunca te has puesto a pensar, ¿Cuánto estaré cambiando o aportando a mi país definiendo una variable como ‘int’? ¿Cuánto estaré cambiando o aportando a mi país solucionando un error de sintaxis? ¿Qué tanto es el impacto que estoy generando en la sociedad con mi codificación?

Metas y Objetivos Tercer Período (Gerardo Calderón)

Metas:
  1. Avanzar a un 90% con el proyecto de cátedra.
  2. Comprender los pasos evaluativos de la ejecución de un proyecto.
Objetivos:
  1. Ser el mejor estudiante de ingeniería de software
  2. Poder aportar desde mis conocimientos a toda la clase
  3. Resaltar la parte del análisis de sistemas frente a la codificación (programación)

Objetivos y Metas Personales Periodo 3 (Víctor Deleón)

Objetivos:
  • Entender la importancia de los aspectos legales del software.
  • Valorar la importancia del uso de la reingeniería de software.
  • Análizar los cambios que ha tenido la ingeniería de software a lo largo del tiempo, en El Salvador y el mundo entero.

Metas:

  • Fortalecer las bases para crear un software regido por estandares importantes.
  • Conocer la mejor manera de ocupar la reingeniería en la creacion de un sistema, y aplicarlo a mi vida laborarl.

Certificación Profesional Europea en UML

La Certificación en UML es un programa profesional de capacitación en este lenguaje. UML (Unified Modeling Language) es un lenguaje que permite modelar, construir y documentar los elementos que forman un sistema software orientado a objetos. Se ha convertido en el estándar de facto de la industria, debido a que ha sido impulsado por los autores de los tres métodos más usados de orientación a objetos: Grady Booch, Ivar Jacobson y Jim Rumbaugh. Estos autores fueron contratados por la empresa Rational Software Co. para crear una notación unificada en la que basar la construcción de sus herramientas CASE. En el proceso de creación de UML han participado, no obstante, otras empresas de gran peso en la industria como Microsoft, Hewlett Packard, Oracle o IBM, así como grupos de analistas y desarrolladores.

Esta notación ha sido ampliamente aceptada debido al prestigio de sus creadores y debido a que incorpora las principales ventajas de cada uno de los métodos particulares en los que se basa (principalmente Booch, OMT y OOSE). UML ha puesto fin a las llamadas “guerras de métodos” que se han mantenido a lo largo de los 90, en las que los principales métodos sacaban nuevas versiones que incorporaban las técnicas de los demás. Con UML se fusiona la notación de estas técnicas para formar una herramienta compartida entre todos los ingenieros software que trabajan en el desarrollo orientado a objetos.

Uno de los objetivos principales de la creación de UML era posibilitar el intercambio de modelos entre las distintas herramientas CASE orientadas a objetos del mercado. Para ello era necesario definir una notación y semántica común. Hay que tener en cuenta que el estándar UML no define un proceso de desarrollo específico, tan solo se trata de una notación.


Cursos para la certificación
Hoy en día el valor de una certificación oficial es más importante que nunca. El prestigio y reconocimiento que proporciona a las empresas y a los desarrolladores contar con certificaciones les abre un mundo de posibilidades, que de otra forma difícilmente podrían alcanzar en tan poco tiempo.

"¿Por qué capacitarse con la herramienta de modelado "Oficial" (y más costosa del mercado) si una empresa utiliza una diferente?"
UML es un estándar abierto, controlado por la OMG, independiente de cualquier herramienta de modelado. Por lo tanto no hay que sentirse obligado a tomar un curso con una herramienta que no se adecúa a las necesidades, o cuyo precio se sale totalmente del presupuesto. Hay que ser realistas, no se necesita usar la herramienta más cara del mercado para obtener resultados con UML. Cada quien decide cuál es la necesidad o herramienta estándar.


¿el lenguaje de desarrollo utilizado es importante en un curso?"
¡Por supuesto!. Aunque el curso es primordialmente de análisis y diseño, es importante enseñarle al alumno las particularidades a considerar en la arquitectura diseñada, dependiendo del lenguaje de desarrollo. ¿Por qué tomar un curso de UML con Java, si yo lo que uso es VB, o Delphi, o C++?
Para poder sacar el máximo provecho de cada minuto de un curso, este debe de adecuarse para lo que realmente se necesita para obtener resultados reales en proyectos.

"No quiero aprender teoría que me va a servir de poco o nada al salir del curso "
Es importante tomar un curso que tenga experiencia asesorando proyectos de todo tipo, gracias al trabajo como consultores. Estos instructores deberían ser en primer lugar consultores que participan directamente en los proyectos, para saber exactamente qué es lo qué necesitan los alumnos para poder aplicar de manera efectiva UML al salir del curso.

Cada alumno debería de utilizar una computadora individual, con la herramienta de modelado, desde el primer día de curso para aprender UML mientras practica. Está comprobado que esta es la mejor manera de aprender. Así los alumnos no tendrían que esperar a salir del curso para enfrentarse a proyectos donde surjan las dudas prácticas. (De qué serviría si ya en ese momento no está el instructor para resolvérselas).

Por eso el alumno debe de practicar una y otra vez los conceptos más importantes de UML en casos reales similares o idénticos a los que realiza en una empresa. De esta manera las dudas surgen y se resuelven dentro del mismo curso, generando el máximo provecho posible al tomar un curso de este tipo.
Una acreditacion de UML.

Este es el temario del curso de certificación profesional europeaen UML para la certificacion de UML


Objetivo

UML es un lenguaje de modelado de propósito general que pueden usar todos los modeladores.
Uno de los objetivos es el de presentar una metodología que comprenda las fases de requerimientos, análisis, diseño e implementación.
Conocer a fondo el proceso de desarrollo orientado a objetos y descubrir cómo el lenguaje UML y las herramientas Rational Rose, Poseidón ayudan en el proceso.

Temario

Unidad Didáctica I: INTRODUCCIÓN
1 Introduccion al UML
• Por qué es necesario el UML
• La concepción del UML
• Diagramas del UML
• Diagrama de clases
• Diagrama de objetos
• Diagrama de casos de uso
• Diagrama de estados
• Diagrama de secuencias
• Diagrama de actividades
• Diagrama de colaboraciones
• Diagrama de componentes
• Diagrama de distribución
Otras características
Paquetes
Notas
Estereotipos
Para qué tantos diagramas
Resumen
Preguntas y respuestas
Taller
Cuestionario
Ejercicios

Unidad Didáctica II:
2 ORIENTACIÓN A OBJETOS
• Objetos, objetos por doquier
• Algunos conceptos
• Abstracción
• Herencia
• Polimorfismo
• Encapsulamiento
• Envío de mensajes
• Asociaciones
• Agregación
• La recompensa
Resumen
Preguntas y respuestas
Taller
Cuestionario
Ejercicios

Unidad Didáctica III:
3 Uso de la orientación a objetos
• Concepción de una clase
• Atributos
• Atributos, operaciones y concepción
• Responsabilidades y restricciones
• Notas adjuntas
• Qué es lo que hacen las clases y cómo encontrarlas
Resumen
Preguntas y respuestas
Taller
Operaciones
Cuestionario
Ejercicios

Unidad Didáctica IV:
4 Uso de relaciones
• Asociaciones
• Restricciones en las asociaciones
• Clases de asociación
• Vínculos
• Multiplicidad
• Asociaciones calificadas
• Asociaciones reflexivas
• Herencia y generalización
• Descubrimiento de la herencia
• Clases abstractas
• Dependencias
Resumen
Preguntas y respuestas
Taller
Operaciones
Ejercicios

Unidad Didáctica V:
5 Agregación, composición, interfaces y realización
• Agregaciones
• Restricciones en las agregaciones
• Composiciones
• Contextos
• Interfaces y realizaciones
• Visibilidad
• Ámbito
Resumen
Preguntas y respuestas
Taller
Cuestionario
Ejercicios

Unidad Didáctica VI:
6 Introducción a los casos de uso
• Qué son los casos de uso
• Importancia de los casos de uso
• Un ejemplo: la máquina de gaseosas
• El caso de uso "Comprar gaseosa"
• Casos de uso adicionales
• Inclusión de los casos de uso
• Extensión de los casos de uso
• Inicio del análisis de un caso de uso
Resumen
Preguntas y respuestas
Taller
Cuestionario
Ejercicios

Unidad Didáctica VII:
7 Diagramas de casos de uso
• Representación de un modelo de caso de uso
• Una nueva visita a la máquina de gaseosas
• Secuencia de pasos en los escenarios
• Concepción de las relaciones entre casos de uso
• Inclusión
• Extensión
• Generalización
• Agolpamiento
• Diagramas de casos de uso en el proceso de análisis
• Aplicación de los modelos de caso de uso
• Comprensión del dominio
• Comprensión de los usuarios
• Comprensión de los casos de uso
• Profundización
• Dónde estamos
• Elementos estructurales
• Relaciones
• Agrupamiento
• Anotación
• Extensión
• El Panorama
Resumen
Preguntas y respuestas
Cuestionario
Ejercicios

Unidad Didáctica VIII:
8 Diagramas de estados
• Qué es un diagrama de estados
• Simbología
• Adición de detalles al icono de estado
• Sucesos y acciones
• Condiciones de seguridad
• Subestados
• Subestados secuenciales
• Subestados concurrentes
• Estados históricos
• Mensajes y señales
• Por qué son importantes los diagramas de estados
• Adiciones al panorama
Resumen
Preguntas y respuestas
Taller
Cuestionarios
Ejercicios

Unidad Didáctica IX:
9 Diagramas de secuencias
Qué es un diagrama de secuencias
• Objetos
• Tiempo
• La GUI
• La secuencia
• El diagrama de secuencias
• El caso de uso
• Instancias y genéricos
• Un diagrama de secuencias de instancias
• Un diagrama de secuencias genérico
• Creación de un objeto en la secuencia
• Cómo representar la recursividad
• Adiciones al panorama
Resumen
Preguntas y respuestas
Taller
Cuestionario
Ejercicios

Unidad Didáctica X:
10 Diagramas de colaboraciones
• Qué es un diagrama de colaboraciones
• La GUI
• Cambios de estado
• La máquina de gaseosas
• Creación de un objeto
• Algunos conceptos más
• Varios objetos receptores en una clase
• Representación de los resultados
• Objetos activos
• Sincronización
• Adiciones al panorama
Resumen
Preguntas y respuestas
Taller
Cuestionario
Ejercicios

Unidad Didáctica XI:
11 Diagramas de actividades
• Objetivos
• Qué es un diagrama de actividades
• Decisiones, decisiones, decisiones
• Rutas concurrentes
• Indicaciones
• Aplicación de los diagramas de actividades
• Una operación: Fibs
• Proceso de creación de un documento
• Marcos de responsabilidad
• Diagramas híbridos
• Adiciones al panorama
Resumen
Preguntas y respuestas
Taller
Cuestionario
Ejercicios

Unidad Didáctica XII:
12 Diagramas de componentes
• Qué es un componente
• Componentes e interfaces
• Sustitución y reutilización
• Tipos de componentes
• Qué es un diagrama de componentes
• Representación de un componente
• Cómo representar las interfaces
• Aplicación de los diagramas de componentes
• Una página Web con un subprograma Java
• Una página Web con controles ActiveX
• PowerTbys
• Diagramas de componentes en el panorama
Resumen
Preguntas y respuestas
Taller
Cuestionario
Ejercicios

Unidad Didáctica XIII:
13 Diagramas de distribución
• Qué es un diagrama de distribución
• Aplicación de los diagramas de distribución
• Un equipo doméstico
• Una red token-ring
• ARCnet
• Thinethernet
• Red inalámbrica Ricochet de Metricom
• Los diagramas de distribución en el panorama
Resumen
Preguntas y respuestas
Taller
Cuestionario
Ejercicios

Unidad Didáctica XIV:
14 Nociones de los fundamentos del UML
• Estructura del UML
• Capa del metamodelado: cercano y personal
• El paquete de Fundamentos
• El paquete de los elementos de comportamiento
• Administración de modelos
• Extensión del UML
• Estereotipos
• Dependencia
• Clasificador
• Clase
• Generalización
• Paquete
• Componente
• Algunos otros estereotipos
• Estereotipos gráficos
• Restricciones
• Valores etiquetados
Resumen
Preguntas y respuestas
Taller
Cuestionario

Unidad Didáctica XV:
15 Adaptación del UML en un proceso de desarrollo
• Metodologías: antiguas y recientes
• El método antiguo
• El método reciente
• Lo que debe hacer un proceso de desarrollo
• GRAPPLE
• RAD3: la estructura de GRAPPLE
• Recopilación de necesidades
• Análisis
• Diseño
• Desarrollo
• Distribución
• Resumen de GRAPPLE
Resumen
Preguntas y respuestas
Taller
Cuestionario
Parte II Estudio de un caso

Unidad Didáctica XVI:
16 Presentación del caso por estudiar
• Aplicación de GRAPPLE al problema
• Descubrir los procesos del negocio
• Servir a un cliente
• Preparación de platillos
• Limpieza de la mesa
• Lecciones aprendidas
Resumen
Preguntas y respuestas
Taller
Cuestionario
Ejercicios

Unidad Didáctica XVII:
17 Elaboración de un análisis de dominio
• Análisis de la entrevista del proceso del negocio
• Desarrollo del diagrama de clases inicial
• Agrupación de las clases
• Conformación de asociaciones
• Asociaciones con el cliente
• Asociaciones con el Mesero
• Asociaciones con el Chef
• Asociaciones con el Mozo de piso
• Asociaciones con el Gerente
• Una digresión
• Formación de agregados y objetos compuestos
• Llenado de las clases
• El Cliente
• El Empleado
• La Cuenta
• Detalles generales de los modelos
• Diccionario del modelo
• Organización del diagrama
Resumen
Preguntas y respuestas
Taller
Cuestionario
Ejercicios

Unidad Didáctica XVIII:
18 Recopilación de las necesidades del sistema
• Desarrollo de la idea
• Preparación para la recopilación de las necesidades
• La sesión JAD de necesidades
• El resultado
• ¿Ahora qué?
Resumen
Preguntas y respuestas
Taller
Cuestionario
Ejercicio

Unidad Didáctica XIX:
19 Desarrollo de los casos de uso
• Cuidado y provisión de los casos de uso
• El análisis de los casos de uso
• El paquete Mesero
• Tomar una orden
• Transmitir la orden a la cocina
• Cambiar una orden
• Sondeo del progreso de la orden
• Notificar al chef del progreso de los clientes en sus alimentos
• Totalizar una cuenta
• Imprimir una Cuenta
• Llamar a un Asistente
• Casos de uso restantes
• Componentes del sistema
Resumen
Preguntas y respuestas
Taller
Cuestionario
Ejercicios

Unidad Didáctica XX:
20 Orientación a las interacciones y cambios de estado
• Las partes funcionales del sistema
• El paquete Mesero
• El paquete Chef
• El paquete Mozo De Piso
• El paquete Asistente Mesero:
• El paquete Asistente Chef
• El paquete Cantinero
• El paquete Encargado Del Guardarropa
• Colaboración en el sistema
• Tomar una orden
• Cambiar una orden
• Sondeo del progreso de la orden
• Implicaciones
Resumen
Preguntas y respuestas
Taller
Cuestionario
Ejercicios

Unidad Didáctica XXI:
21 Diseño del aspecto, sensación y distribución
• Algunos principios generales en el diseño de las GUI
• La sesión JAD para la GUI
• De los casos de uso a las interfaces de usuario
• Diagramas UML para el diseño de la GUI
• Esbozos de la distribución del sistema
• La red
• Los nodos y el diagrama de distribución
Resumen
Preguntas y respuestas
Taller
Cuestionario
Ejercicios

Unidad Didáctica XXII:
22 Noción de los patrones de diseño
• Parametrización
• Patrones de diseño
• Cadena de responsabilidad
• Cadena de responsabilidad: dominio Restaurante
• Cadena de responsabilidad: Modelos de eventos de los exploradores Web
• Nuestros propios patrones de diseño
• Ventajas de los patrones de diseño
Resumen
Preguntas y respuestas
Taller
Cuestionario
Ejercicios
Parte III Visión del futuro

Unidad Didáctica XXIII:
23 Modelado de sistemas incrustados
• La madre de la invención
• Creación de TecnoApretón
• ¿Qué es un sistema incrustado?
• Conceptos de los sistemas incrustados
• Tiempo
• Subprocesos
• Interrupciones
• Sistema operativo
• Modelado de TecnoApretón
• Clases
• Casos de uso
• Interacciones
• Cambios de estado generales
• Distribución
• Flexiones en sus músculos
Resumen
Preguntas y respuestas
Taller
Cuestionario
Ejercicios

Unidad Didáctica XXIV:
24 El futuro del UML
• Extensiones para los negocios
• Lecciones de las extensiones de negocios
• Interfaces gráficas de usuario
• Conexiones a casos de uso
• Modelado de la GUI
• Sistemas expertos
• Componentes de un sistema experto
• Un ejemplo
• Modelado de la base de conocimientos
Resumen
Preguntas y respuestas
Taller
Cuestionario

Reflexión final personal (Javier Parada)



link

Reingeniería

El proceso de reingeniería es una respuesta a las interrogantes ¿se están haciendo las cosas bien o se podrían hacer mejor?, estas surgen después de haber obtenido una respuesta a una interrogante que se planteó antes ¿Cómo hacer las cosas? cuya respuesta se obtuvo mediante la ingeniería. El objetivo de la reingeniería es hacer mejor lo que ya estamos haciendo, trabajar más inteligentemente.

El alcance es a nivel de procesos, es decir, recordemos que son los procesos y no las empresas los sujetos a reingeniería, la eficiencia en los procesos nos van a garantizar un buen producto y esto no quiere decir que reingeniería no es hacer más con menos, sino que es con menos dar más al cliente, quien debe de quedar satisfecho con el producto obtenido, ya que sin cliente absolutamente no existiría un producto.

Hay que analizar sistemas existentes para entender su diseño y desarrollar estrategias para extraer y reutilizar componentes, es decir que debemos "aplicar ingeniería a lo ingeniado", si se quiere hacer buen uso de los componentes disponibles hay que comprender muy bien con lo que se cuenta y como se está manejando.

El aplicar reingeniería de software implica muchas veces la actualización de componentes, y a veces el cliente prefiere quedarse “con lo viejo por conocido” y no recurrir a gastos para aplicar cambios, es aquí donde surge miedo al cambio, de algo que se tiene “asegurado” a algo que podría fracasar, los clientes aplican el dicho: “Más vale pájaro en mano que cien volando”. Por eso es que necesitamos tener bien definido que los cambios que se aplicarían son para mejorar, y que los sistemas informáticos van necesitando de estos cambios y que el beneficiado principal debe ser el cliente.

No debemos de olvidar que la vida actual se encuentra en constante cambio y por lo tanto existe un desarrollo e innovación cada vez más rápido y por supuesto las empresas no están excluidas de dicho cambio y se ven obligadas a actualizar constantemente sus sistemas computacionales, pues sin estos no podrían estar a la altura de las necesidades que exigen sus clientes.

27 sept 2008

Objetivos y metas personales período 3 (Javier Parada)

Objetivo General: Conocer los pasos de una correcta gestión de proyectos para el desarrollo y éxito de un sistema informático.


Objetivos específicos:
* Conocer las técnicas para la gestión de cambio para el desarrollo de software.

* Conocer cuales son los aspectos legales que la ingeniería de software toma en consideración.

* Conocer los procesos involucrados en la reingeniería.

Metas:
* Aplicar los conocimientos obtenidos al proyecto de cátedra.
* Saber como aplicar una correcta gestión para no fracasar en el desarrollo del proyecto informático.