Universidad Simón Bolívar
Ingeniería de Software 2
Septiembre-Diciembre 2000

Clase 1

Introducción al Curso


Coordenadas del profesor

Datos básicos del curso

Ver página del curso (www.ldc.usb.ve/~teruel/ci4712).
 

Objetivo del curso

Introducir al estudiante en los procesos característicos de la ingeniería de software orientado a objetos. El curso
enfatizará:
 
  1. Un desarrollo incremental e iterativo;
  2. El modelado, diseño y mantenimiento de software orientado a objetos de mediana envergadura;

  3. [¿Cuál es la diferencia entre desarrollo incremental y mantenimiento?]
  4. El trabajo disciplinado en equipos de 4-12 personas (teamwork);


El contenido del curso incluye como mínimo:

     Arquitecturas de software orientado a objetos. Patrones de análisis y diseño. Criterios y evaluación del
     diseño orientado a objetos. Refactorización. Diferencias entre las metodologías OMT y RPM. Ingeniería
     de software orientada a componentes. Manejo de riesgos en el desarrollo.  Elementos del trabajo en
     equipo (teamwork). Programación Java.

El avance adicional del curso dependenderá del nivel de los estudiantes inscritos en la asignatura.

En la próxima asignatura de la cadena se enfatizará los tópicos de pruebas (testing), programación e integración.

[La descripción anterior es una descripción impersonal, llena de términos pesados que aunque exactos producen tedio. Sigue una forma alternativa de motivar el curso].

¿Cuáles son los factores más críticos para el desarrollo exitoso de software?  [Dejar que propongan 5]

  1. Relevancia empresarial (Cuento de Montreal Life Insurance)
  2. La captura (o descubrimiento) de requerimientos (elicitación)
  3. Adaptarse a cambios de requerimientos (ejm. nuevas leyes, consecuencia de nueva constitución).
  4. Manejar la complejidad y tamaño del desarrollo (trabajo en equipo --considerar volúmenes actuales de software comercial...  )
En esta cadena la idea es que aprenda cómo manejar el cuarto factor al vivir una experiencia realista de desarrollo incremental de software OO (o sea, de Ingeniería de Software).

Espero que tomen un producto de 8KLOC, lo mejoren y extiendan a un producto de aprox. 12-15 KLOC. Lo importante no es el tamaño del nuevo código, sino su funcionalidad y calidad --si son exitosos al final de la cadena podríamos ver la instalación de su software de manera piloto en varias Coordinaciones de la USB.

El software a extender es un prototipo usado por la Coordinación de Computación, que ha generado interés en Colombia, España y Argentina (vía www).

Un desarrollo incremental e iterativo

http://www.archpedia.com/peisa.html

Modelado, diseño y programación orientado a objetos

Arquitectura de software

Discutir: ¿Existe una arquitectura de software?

¿Qué son patrones? Christopher Alexander (patrones arquitectónicos: el vestíbulo como espacio de transición p. ej. Frank Lloyd Wright y su casa espiral. El patrón ventana panorámica). ¿Y en software? Exploraremos.

  "[...] Architecture is time, change, culture, experience, and the simple definition architecture is the art of building is quite an understatement. It is so much more; so breath it, eat it, love it, and most importantly live it.

"An architect is the person responsible for creating the architecture that I have just described. The soul duty
 of an architect is to serve the public, to meet and surpass, if possible, a client's needs. Through the manipulation of forms one attempts to meet these needs. An architect must perform several tasks including designer, artist, problem solver, project manager, and construction supervisor. In most cases he possess a  creative mind which allows for inventive solutions to the problems at hand. An architect is responsible for the design of a structure and how it relates to the environment."

Brian Nank (6/98). (http://www.archpedia.com/Archdefine.html)

¿En qué sentido es diferente arquitectura de diseño?

"Whereas we often think of the task of design as taking the right steps to ensure that the system will perform as expected --produce the correct answer or provide the expected functionality-- architecture is additionally concerned with much longer-range issues. The architect is faced with a swarm of competing if not conflicting influences and demands, surprisingly few of which are concerned with getting the system to work correctly. The organizational and technical environment brings to bear a weighty set of sometimes implicit demands, and in practice these are as important as any of the explicit requirements."
      Bass[1998].

Trabajo disciplinado en equipos

Dinámica de grupos (DG)

Concretamente interesa el tema de la formación de equipos efectivos de desarrollo de software.
 

Objetivos generales

  1. Adquirir nociones básicas de Dinámica de Grupos referentes a las características y procesos de los equipos de trabajo para el desarrollo disciplinado de software.
  2. Desarrollar competencias para conformar equipos efectivos de trabajo.

Objetivos específicos

  1. Reconocer la importancia de los procesos de grupo (toma de decisiones, liderazgo, comunicación, administración de conflictos, negociación) de manera de favorecer la satisfacción y productividad del grupo.
  2. Construir equipos de trabajo con base en objetivos, competencias requeridas, naturaleza de la tarea y contexto.
  3. Manejar las etapas de desarrollo fases de equipos de trabajo, respetando la secuencia temporal y sus factores de éxito, con particular énfasis en las fases de la etapa de formación de equipo.
  4. Participar en sesiones de trabajo de manera efectiva y eficiente.

  5. Manejar diferencias en un clima favorable e inclusivo , de manera de facilitar la obtención de resultados.

Ejercicio de grupo

El ejercicio de las parejas rotativas (I) (Andreola, p. 44-45).

Tiempo estimado para 36 personas: 1 hora 15 mins. Podría hacerse una segunda parte en otra clase.

Los pupitres se arreglan en dos círculos concentricos (un pupitre del círculo exterior mira a uno del círculo interior).

Los estudiantes se sientan en los pupitres formando parejas. Hablan durante 2 minutos (se presentan). A los dos minutos los estudiantes del círculo exterior rotan, desplazandose un lugar a la izquierda.

Completada la vuelta, se evalúa el ejercicio. Dejar que los participantes expresen libremente sus opiniones.

Evaluación ...y advertencias


 

Esta página fue creada por el Prof. Alejandro Teruel el 8 de septiembre de 2000.
Ultima actualización: 8 de septiembre de 2000.
Por favor dirija sus comentarios al Prof. Alejandro Teruel.