Taller de Taller de IngenieríaIngeniería de Softwarede Softwarehttp://ldc.usb.ve/~jtcadenas/CI3715/http://ldc.usb.ve/~jtcadenas/CI3715/
Dpto. de Computación y T.I.Dpto. de Computación y T.I.
SecciónSección 1 : Prof. Alfonso 1 : Prof. Alfonso [email protected]@gmail.com
SecciónSección 2: José 2: José TomásTomás [email protected]@ldc.usb.ve
AgendaAgenda
• Objetivo del Curso
• Aspectos Claves O-O
• Arquitectura de dos y tres capas• Arquitectura de dos y tres capas
• Técnicas para trabajo en equipo
• Asignación 1
Objetivo GeneralObjetivo GeneralIntroducir a los estudiantes al
desarrollo de software por equipos
Para ello el estudiante deberá formar una Para ello el estudiante deberá formar una empresa conformada por 9 ó 10
miembros, los cuales deberán trabajar juntos durante el período académico en la
ejecución de las asignaciones.
AspectosAspectos claves Oclaves O--OO
• Objeto: Representación de alguna cosao evento del mundo real
• Clase: Categoría de objetos similares
• Ocurrencia o instancia : Cuando se • Ocurrencia o instancia : Cuando se crea un objeto de una clase
• Mensajes: Cuando se envíainformación de un objeto a otro
AspectosAspectos claves Oclaves O--OO• Clases: producto de una abstracción
– Características comunes (Propiedades)
– Mecanismos de conducta, acción (Métodos)
– Reacciones ante el entorno (Eventos)
• Encapsulación: ocultamiento de los atributos de un objeto de manera que sólo se puede cambiar mediante los métodos definidos para ese objeto
AspectosAspectos claves Oclaves O--OOFormas de encapsular
• Publico: El miembro de la clase pueda ser
accedido desde el exterior de la Clase y cualquier parte
• Protegido: Solo es accesible desde la Clase y las
clases que heredan• Privado: Solo son accedidas internamente desde
la clase• Local: Solo tienen ámbito en el método donde son
declaradas, fuera del mismo no existen.
AspectosAspectos claves Oclaves O--OO• Herencia: sub-clases, superclases
• Clases Cerradas: todos los eventos, métodos y propiedades están definidas dentro de la clase, así que no es posible agregárselos dinámicamenteagregárselos dinámicamente
AspectosAspectos claves Oclaves O--OO
• Clases Dinámicas: permiten agregar en tiempo de ejecución, propiedades y métodos a la clase, es decir, se puede agregar una nueva propiedad a la instancia de mi clase, aunque ésta no haya sido definida originalmentedefinida originalmente
• Clases Estáticas: Aquellas que resumen funciones utilitarias que se importan para su consumo en otras clases de manera transversal
AspectosAspectos claves Oclaves O--OO
• Sobreescritura de métodos: Reescribir un mismo método en la clase heredada, manteniendo los parámetros
• Sobrecarga de métodos: Reescribir el • Sobrecarga de métodos: Reescribir el mismo método en la clase heredada, incluyendo sus parámetros
Arquitectura dos capasArquitectura dos capas• La aplicación corre localmente en el cliente,
incluyendo toda la implementación de reglas de negocio e interfaz de usuario y de acceso a la base de datos
• El servidor incluye la base de datos • El servidor incluye la base de datos
Arquitectura tres capasArquitectura tres capas• Capa de Presentación: Implementa la interfaz de
usuario, incluyendo validaciones simples de entrada de datos. A esta capa se le llama “thin-client”
• Capa de Servidor de Aplicación: Provee la implementación centralizada de todas las reglas de negocio y lógica de procesos, así como el control d e negocio y lógica de procesos, así como el control d e acceso a datos
• Capa de Servidor de Datos: Provee los datos modelados del negocio, la base de datos
Técnicas para trabajo en EquipoTécnicas para trabajo en Equipo• Los seis sombreros para pensar de
Edward de Bono
• La quinta disciplina de Peter Senge
• Tarjeta amarilla / tarjeta roja.• Tarjeta amarilla / tarjeta roja.
Seis sombreros para pensarSeis sombreros para pensar• Cuando se está pensando, se suele tratar de
hacer mucho al mismo tiempo y se termina siendo confuso e ineficaz.
• Si usted “se pone” un sombrero puede centrar, enfocar, el pensamiento.enfocar, el pensamiento.
• Si “cambia” de sombrero puede redirigir su pensamiento
• Si su pensamiento se enfoca su argumentación resulta más centrada y productiva
Seis sombreros para pensarSeis sombreros para pensar• Blanco: hechos, cifras, información
objetiva.
• Rojo: emociones y sensaciones, sentimientos.
• Negro: lógico, negativo.• Negro: lógico, negativo.
• Amarillo: positivo, constructivo.
• Verde: Creatividad, ideas nuevas.
• Azul: Control de los demás sombreros y pasos para pensar
Seis sombreros para pensarSeis sombreros para pensar
El uso de los “sombreros para pensar” puede:
• Llevar a un pensamiento más creativo
• Enfocar y enmarcar con claridad el pensamientopensamiento
• Mejorar la comunicación y la toma de decisiones
La quinta disciplinaLa quinta disciplinaDesde muy temprana edad nos enseñan a analizar los problemas, a fragmentar el mundo, al parecer esto facilita las tareas complejas, pero sin saberlo pagamos un precio enorme. Ya no vemoslas consecuencias de nuestros actos; perdemosnuestra sensación intrínseca de conexión con unanuestra sensación intrínseca de conexión con unatotalidad más vasta. Cuando intentamos ver la “imagen general”, tratamos de ensamblarnuevamente los fragmentos, enumerar y organizartodas las piezas, pero es inútil.
La quinta disciplinaLa quinta disciplina
En alguna ocasión las personas han formado parte de un gran “equipo”, un grupo de personas que juntas funcionan maravillosamente, se profesan confianza, complementan mutuamente sus virtudes y compensan mutuamente sus sus virtudes y compensan mutuamente sus flaquezas, que tienen metas comunes más amplias que las metas individuales, que producen resultados extraordinarios.
Disciplinas de una Disciplinas de una organización inteligenteorganización inteligente
• Dominio personal: comienza por aclarar las cosas que de veras nos interesan, para poner nuestra vida al servicio de nuestras mayores aspiraciones
• Modelos mentales: supuestos hondamente arraigados, generalizaciones e imágenes que influyen arraigados, generalizaciones e imágenes que influyen sobre nuestro modo de comprender el mundo y actuar
• Construcción de visión compartida: propician un compromiso genuino antes que mero acatamiento
DisciplinasDisciplinas de de unauna organizaciónorganización inteligenteinteligente
• Aprendizaje en equipo: Cuando los equipos aprenden de veras, no sólo generan resultados extraordinarios sino que sus integrantes crecen con mayor rapidez. La disciplina del aprendizaje en equipo comienza con el “diálogo”, la capacidad de los miembros del equipo para “suspender los supuestos” e miembros del equipo para “suspender los supuestos” e ingresar en un auténtico “pensamiento conjunto”.
• Pensamiento sistémico: Es la disciplina que integra las demás disciplinas, fusionándolas en un cuerpo coherente de teoría y práctica
• Eliminar el desperdicio, en software se traduce en:
– Características extras
– Sobredocumentación
– Multitarea
– Tiempos de espera
PensamientoPensamiento EsbeltoEsbelto
– Errores de software
• Amplificar el Aprendizaje
– Incrementar retroalimentación
– Pruebas periódicas
• Decidir lo más tarde posible
2121
• Entregar lo más rápido posible
• Facultar o “empoderar” al equipo
– Lista de malas y buenas prácticas del equipo
– Escribir meta de cada iteración
– Programación por pares
PensamientoPensamiento EsbeltoEsbelto
– Programación por pares
– Identificar áreas del equipo débiles
• Integración: arquitectura coherente, ajuste a los
propósitos, mantenible, adaptable y extensible fácilmente
• Enfoque sistémico
2222
AsignaciónAsignación 1: 1: FundaciónFundación EmpresaEmpresa
• Seleccionar el nombre
• Establecer Misión y Visión de la empresa
• Elaborar la imagen corporativa
• Establecer la estructura organizativa • Establecer la estructura organizativa
AsignaciónAsignación 1: 1: AplicaciónAplicación WebWeb• Diseñar en 2 capas, una aplicación de jugadores,
equipos y estadios de beisbol
• Implementar el diseño, incluyendo tanto su interfaz como base de datos. Cada equipo debe seleccionar su tecnología y manejador de BD y mantenerla por todo el trimestre. trimestre.
• No se permite el uso de frameworks para mapping entre capas.
• Presentar los resultados, un responsable por equipo, con avance del plan y esfuerzo invertido por cada miembro del equipo
• Fecha de Entrega y Presentación: Semana 2
AsignaciónAsignación 1: 1: AplicaciónAplicación WebWeb• Diseñar en 3 capas, una aplicación de jugadores,
equipos y estadios de beisbol
• Presentar los resultados, un responsable por equipo, con avance del plan y esfuerzo invertido por cada miembro del equipo
• Fecha de Entrega y Presentación: Semana 3• Fecha de Entrega y Presentación: Semana 3
BibliografíaBibliografía
• Bernd Bruegge, and Allen H. Dutoit. Object-OrientedSoftware Engineering: Using UML, Patterns and Java. Prentice Hall. 3rd Edition, 2009.
• Craig Larman: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process (2nd Edition). 2001.the Unified Process (2nd Edition). 2001.
• Edward de Bono: Seis Sombreros para pensar. 2001.
• Peter Senge: La Quinta disciplina. Ed. Granica. 1994.
• Omaña, Macringer; Cadenas, José. "Herramientas de Manufactura Esbelta aplicadas al desarrollo de software con calidad". Avances en Sistemas e Informática. 2011. Vol. 8(2), pp. 135 - 142