jueves, 12 de junio de 2014

Exposición - Parcial 3

Para la exposición deben incluir los siguientes puntos:
  • Objetivos
  • Planteamiento del problema
  • Justificación
  • Al menos 2 diagramas de diseño: de contexto, de flujo, de casos de uso, de secuencia, entidad-relación
  • Metodología: seleccionar, de las 4 metodologías que vimos, la que más se adapte a su proyecto y justificar porque la seleccionaron.  Esta metodología no la deben incluir en el documento, solamente en la presentación.
  • Video del funcionamiento del proyecto
  • Resultados
  • Conclusiones
Rubrica de evaluación
Indicador
Excelente(10)
Bien (9)
Regular (8)
Deficiente (7)
Muy mal (5)
Los objetivos son claros





Se justifica de forma coherente la metodología a utilizar





Los diagramas son coherentes con el diseño del proyecto





El prototipo cumple los objetivos del proyecto





Los resultados son claros y coherentes





martes, 10 de junio de 2014

Metodologías para el desarrollo de software

Una metodología es un conjunto integrado de técnicas y métodos que permite abordar de forma homogénea y abierta cada una de las actividades del ciclo de vida de un proyecto de desarrollo. Una definición estándar de metodología puede ser el conjunto de métodos que se utilizan en una determinada actividad con el fin de formalizarla y optimizarla. Determina los pasos a seguir y cómo realizarlos para finalizar una tarea.
Si esto se aplica a la Ingeniería de software, podemos destacar que una metodología:
  • Optimiza el proceso y el producto software.
  • Es una guía en la planificación y en el desarrollo del software.
  • Define qué hacer, cómo y cuándo durante todo el desarrollo y mantenimiento de un proyecto.
Una metodología define una estrategia global para enfrentarse con el proyecto. Entre los elementos que forman parte de una metodología se pueden destacar:
  • Fases: tareas a realizar en cada fase.
  • Productos: E/S de cada fase, documentos.
  • Procedimientos y herramientas: apoyo a la realización de cada tarea.
  • Criterios de evaluación: del proceso y del producto. Saber si se han logrado los objetivos.

Las metodologías más utilizadas a nivel mundial en orden cronológico:
Década de los 70s
  • Programación Estructurada Jackson desde 1975
Década de los 80s
  • Structured Systems Analysis and Design Methodology (SSADM) desde 1980
  • Structured Analysis and Design Technique (SADT) desde 1980
  • Ingeniería de la Información (IE/IEM) desde 1981
Década de los 90s
  • Rapid Application Development (RAD) desde 1991.
  • Programación Orientada a Objetos (OOP) a lo largo de la década de los 90's
  • Virtual Finite State Machine (VFSM) desde 1990s
  • Dynamic Systems Development Method desarrollado en UK desde 1995.
  • Rational Unified Process (RUP) desde 1999
Año 2000 en adelante
  • Extreme Programming (XP) desde 1999
  • Enterprise Unified Process (EUP) extensiones RUP desde 2002
  • Constructionist Design Methodology (CDM) desde 2004 por Kristinn R. Thórisson
  • Agile Unified Process (AUP) desde 2005 por Scott Ambler

Modelos de procesos en el desarrollo de software:
  • La necesidad de solucionar un problema (surgimiento de necesidades)
  • Inicio del proceso (desarrollo), dentro de esta fase se encuentra la definición del proyecto, el análisis del contexto, definición de requerimientos, diseño del sistema, construcción del sistema, pruebas e implantación.
  • Operación y mantenimiento, donde realiza ajustes y se buscan fallas.
  • Renovación o extinción.

Diferencias entre los modelos de proceso convencionales y ágiles

Metodologías ágiles:
  • Están basadas en heurística provenientes de prácticas de producción de códigos.
  • Están preparadas para cambios durante el proyecto.
  • Son impuestas internamente (por el equipo).
  • Proceso menos controlado.
  • No existe contrato tradicional.
  • Son bastante flexibles.
  • El cliente es parte del equipo de desarrollo.
  • Grupos pequeños y trabajando en el mismo sitio.
  • Menos énfasis en la arquitectura del software.
Metodologías convencionales:
  • Basadas en normas provenientes de estándares.
  • Presentan cierta resistencia a los cambios.
  • Impuestas externamente.
  • Proceso mucho mas controlado, con numerosas políticas.
  • Existe un contrato prefijado.
  • Son un poco rígidas.
  • El cliente interactúa con el equipo de desarrollo mediante reuniones.
  • Grupos grandes y posiblemente distribuidos.
  • La arquitectura del software es esencial y se expresa mediante modelos.

¿Que metodología es conveniente usar?

Tener metodologías diferentes para aplicar de acuerdo con el proyecto que se desarrolle resulta una idea interesante. Estas metodologías pueden involucrar prácticas tanto de metodologías ágiles como de metodologías tradicionales. De esta manera podríamos tener una metodología para cada proyecto, la problemática sería definir cada una de las prácticas, y en el momento preciso definir parámetros para saber cual usar.Es importante tener en cuenta que el uso de un método ágil no es para todos. Sin embargo, una de las principales ventajas de los métodos ágiles es su peso inicialmente ligero y por eso las personas que no estén acostumbradas a seguir procesos encuentran estas metodologías bastante agradables. Por otro lado, las metodologías tradicionales o convencionales permiten crear software de manera mas segura ya que estas entan mas establecidas según por sus pasos.

lunes, 2 de junio de 2014

Exposición

Segunda: Exposición Física del proyecto 6 de Junio de  2014 en Complejo Kukulcan, todos los integrantes deberán de vestir formalmente, los punto a exponer en la presentación del proyecto son:

1.- Objetivos.
2.-Procedimientos.
3.-Conclusiones.