La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Ingeniería de Proyectos

Presentaciones similares


Presentación del tema: "Ingeniería de Proyectos"— Transcripción de la presentación:

1 Ingeniería de Proyectos
M.C. Juan Carlos Olivares Rojas

2 Este material se distribuye bajo una licencia Creative Commons Reconocimiento 2.5 México. Usted es libre de: copiar, distribuir y comunicar públicamente la obra hacer obras derivadas Bajo las condiciones siguientes: Reconocimiento. Debe reconocer y dar crédito al autor original (Juan Carlos Olivares Rojas)

3 Agenda Introducción (Teoría de Proyectos) Comunicación
Elementos para identificar posibles proyectos Métodos y etapas del Desarrollo de Proyectos Comunicación Inicio Requerimientos

4 Introducción Proyecto: es la integración de una serie de procedimientos y actividades haciendo uso de una metodología definida que permita lograr los objetivos y metas de la manera más eficiente y efectiva. El término proyecto implica una actividad futura.

5 Metodología Metodología: conjunto de pasos que nos conducen a resolver un problema de manera sistemática. ¿Cuál es la diferencia con respecto a un algoritmo? Que la metodología se utiliza para resolver diversos tipos de problemas. Los algoritmos son precisos, las metodologías no dejan de ser mejores prácticas.

6 Metodología Eficacia hacer las cosas bien.
Eficiencia hacer más con menos. En proyectos existe un trade-off entre lo que es rendimiento de una aplicación (velocidad-cantidad de recursos). 6

7 Objetivos y metas Un objetivo es lo que se aspira o se desea obtener de un proyecto. Una meta es una métrica para cuantificar el logro de un objetivo. Un objetivo es en general y una métrica en particular.

8 Elementos de un Proyecto

9 Investigación Para lograr la realización de un proyecto es muy importante que se lleven a cabo una serie de pasos y procedimientos de investigación, los cuales permitirán abrir aún más las perspectivas que tenemos de dicho proyecto. ¿Qué es investigar? Es indagar en búsqueda de la verdad

10 Investigación Los tipos de investigación son:
Investigación pura o básica: su finalidad es la obtención de nuevo conocimientos. Investigación por amor al arte. Investigación aplicada: su finalidad es utilizar el conocimiento obtenido en la investigación en algún producto reutilizable.

11 Desarrollo tecnológico
Desarrollo tecnológico: su finalidad es el desarrollo de un prototipo en el que se apliquen nuevas tecnologías y conocimientos Investigación documental: aquella que se basa solamente en bibliografía Investigación de campo: aquella que se realiza en el lugar de los hechos, que requiere experimentación.

12 Investigación Investigación cualitativa: aquella en la que las variables de investigación se evalúan en base a unidades no numéricas. (Investigaciones de Ciencias Sociales) Investigación cuantitativa: aquella cuyas variables pueden ser cuantificadas por medio de unidades tangibles (Investigaciones científicas y tecnológicas).

13 Tarea Investigar métodos (estándares) que permitan organizar la información de la carpeta del proyecto de manera efectiva. ¿Qué diferencia existe entre una Carpeta de Proyecto y un Portafolio de Proyecto? 13

14 Portafolio de Proyectos

15 Tarea Definir un Blog, Wiki o Sitio Web para el proyecto.
Diariamente se deberá hacer un registro para visualizar el avance del proyecto al día de hoy. 15

16 Elementos para identificar posibles proyectos
A continuación se muestran algunos Motivos para desarrollar proyectos (necesidades): Cambios demográficos Micromercados Volatilidad Corporativa Control de Costos Se refiere a cambios en la distribución de grupos humanos dentro de una entidad. Se refiere a la necesidad de atender a segmentos de usuarios muy específicos y donde se requieren de productos y servicios adecuados. Es la necesidad de llegar a acuerdos, uniones, alianzas o adquisiciones que modifican el estado de una empresa. Se refiere a la presión por contener y reducir gastos. 16

17 Necesidades Consumismo Crisis Educativas Ambientalismo Calidad*
Crisis Educativas Ambientalismo Calidad* Globalización Regularizaciones es la necesidad de reaccionar a la demanda y seleccionar a sus consumidores. Es la necesidad de trabajar con empleados quienes cuentan con un desintegrado sistema educacional. Es la necesidad para reaccionar a los cambios del medio, así como el crecimiento que este genera. Se refiere al mejoramiento del producto final. Se refiere a la necesidad de tener mayor cobertura. .- Se refiere a cambios dentro del ambiente provocados por acciones gubernamentales. Por ej. Las leyes y los impuestos. Investigación sobre Calidad del Software y Fábricas de Software 17

18 Áreas de oportunidades
Problemas con algún elemento actual Deseos de explotar nuevas necesidades Incremento de la competencia Hacer más efectivo el uso de la información Crecimiento organizacional Unión o adquisición corporativa Cambios en el ambiente o en el mercado Errores, ineficiencias, retardos, deseos de algún incremento, reducción de gastos, etc. Nuevos mercados, nueva producción, mas formas de obtener venta competitiva, uso de sistemas de información. Nuevas características en los competidores, mejorar un servicio o un producto. Nueva información, mejor aprovechamiento, rapidez, mejores decisiones. Crecimiento en las empresas, mas necesidades. Consolidación de sistemas y procesos, requerimientos, reducir actividades redundantes. Clientes, proveedores, leyes y regulaciones, clima. 18

19 Proceso para el Desarrollo de Inventivas
Los proyectos se originas de inventos, los cuales son ideas materializadas. Aun no se conoce el substituto de una buena idea. Las ideas constituyen el primer acercamiento, a la realidad que habrá de investigarse. 19

20 Fuente de Ideas Las experiencias individuales
Los materiales escritos (libros, periódicos, revistas y tesis) Las conversaciones personales y las observaciones de hechos Las creencias y aún los presentimientos. 20

21 ¿Cuándo surgen las Ideas?
Al leer una revista de divulgación popular Al estudiar en la casa Al ver televisión Al charlar con otras personas Al recordar algo vivido, etc. 21

22 Ideas Las buenas ideas necesitan de un ambiente fertilizador.
Las ideas surgen en ocasiones de problemas y en otras de necesidades. Una necesidad es vital. Un problema no. 22

23 Ideas La mayoría de las ideas iniciales son vagas y requieren analizarse cuidadosamente para que sean transformadas en planteamientos más precisos y estructurados. Se necesita de 1% de inspiración y 99% de sudoración. 23

24 Ideas Cuando una persona desarrolla una idea de investigación debe familiarizarse con el campo de conocimientos donde se ubica la idea (fundamentos o marcos teóricos). En el caso de proyectos empresariales se debe conocer la cultura organizacional (antecedentes) 24

25 Ideas Para adentrarnos en el tema es necesario conocer los estudios, investigaciones y trabajos anteriores (estado del arte). Generalmente se resume en una tabla comparativa. No reinventar la rueda. Salvo que sea más costoso o inviable la solución. 25

26 Decidir el tipo de Investigación
Tema ya investigados, estructurados y formalizados. Temas ya investigados pero menos estructurados y formalizados. Temas pocos investigados y estructurados. Temas no investigados. 26

27 Factores que restringen el éxito de un Proyecto
Alcance Costo Programa Satisfacción del Cliente 27

28 Factores que restringen el éxito de un Proyecto
Del grado de familiaridad de los desarrolladores con el proyecto (empeño y habilidades). La complejidad del mismo. La existencia de estudios previos. 28

29 Actividad Realizar una lluvia de ideas (Brainstorm) para empezar el desarrollo de inventivas. (25%) De las ideas obtenidas seleccionar tres ideas (5%). Revisar las ideas anteriores y el material adicional y escoger una sola idea (70%). 29

30 Técnicas de Discusión Grupal
El proceso de resolución de problemas tiene tres fases según Mintzberg: identificar el problema desarrollar diferentes soluciones posibles evaluar las posibles soluciones y seleccionar la más adecuada. Otros autores han agregado dos más fases: ejecutar la solución deseada evaluar los resultados de la ejecución de dicha solución.

31 Técnicas de Discusión Grupal
Para la toma de decisiones grupales, existen varios métodos que se pueden seguir como: votación (la decisión más votada gana), votación aprobatoria (cada miembro puede votar por más de una opción, la opción más votada es la que gana), suma de rangos (se otorgan ponderaciones a las opciones, siendo 1 para la menos votada, este proceso se realiza por participante, gana la opción con mayor puntaje) y desviación mínima (se selecciona la opción que tenga mayor puntaje y cuya desviación sea mínimo).

32 Técnicas de Discusión Grupal
Estas técnicas se pueden mejorar a través de otras técnicas que ayudan a la toma de decisiones que a continuación se mencionan: lluvia de ideas, rueda de mesa (similar a la lluvia de ideas pero cada quien tiene un turno para exponer sus ideas de forma cíclica), análisis FODA (Fortalezas Oportunidades Debilidades Amenazas).

33 Técnicas de Discusión Grupal
La técnica del grupo nominal reúne características de la tormenta de ideas y la rueda de mesa, su funcionamiento es el siguiente: cada miembro del grupo escribe el mayor número de soluciones posibles de manera anónima; un moderador recoge todas las respuestas, las presenta al grupo escribiéndolas en un panel, tratando de agrupar aquellas soluciones que sean afines; las ideas propuestas son discutidas por el grupo hasta que sean suficientemente claras;

34 Técnicas de Discusión Grupal
Cada miembro del grupo, anónimamente, otorga una puntuación a cada solución ya sintetizada, en función de lo apropiada que le resulte cada una para resolver el problema que se discute; por último, el moderador resume las puntuaciones conseguidas por cada solución alternativa, de forma que se puede establecer una jerarquía de adecuación de las diferentes propuestas de solución en función de la opinión grupal.

35 Técnicas de Discusión Grupal
Para problemas más complejos se puede utilizar la técnica Philips 66. La cual consiste en hacer grupos de 6 personas que discutirán el problema por 6 minutos. Otra técnica compleja es el Proceso Delphi, la cual se utiliza cuando se desea aislar los miembros del grupo para aislar sus opiniones; o bien, cuando se necesita la opinión de expertos los cuales se encuentran alejados geográficamente.

36 Técnicas de Discusión Grupal
El proceso Delphi es el siguiente: Se elabora un primer cuestionario para recoger información, posibles soluciones y causas del problema, este cuestionario se envía a los expertos, que los responde individual y anónimamente; se analizan los datos recogidos en el primer cuestionario categorizando las respuestas en función de su parecido y se elabora con esto un segundo cuestionario en el que se incluyen las alternativas más elegidas;

37 Técnicas de Discusión Grupal
se envía el segundo cuestionario en el que cada experto ordena las diferentes alternativas en función de su adecuación, asignándoles un número y argumentando sus respuestas; se analizan las valoraciones del segundo cuestionario y con ello se elabora un tercer cuestionario dónde sólo aparecen las opciones más votadas y un resumen de los comentarios más importantes;

38 Técnicas de Discusión Grupal
los expertos contestan el tercer cuestionario evaluando cada alternativa; se elaborará el informe final con los resultados obtenidos, este informe servirá a la persona encargada para tomar la decisión final.

39 Actividad Realizar el marco teórico del tema seleccionado (sugerencia utilizar metodología PBL) (60%): Leer y analizar el problema Enumerar hipótesis, ideas y presentimientos Anotar los factores conocidos 39

40 Actividad Anotar los factores desconocidos Planifique la investigación
Emita una declaración del problema. Adquirir información (investigación). Presentar el resultado de la investigación (solución). Duración: 30 minutos 40

41 Actividad Realizar el estado del arte del proyecto. Entregar tabla comparativa (50%) y descripción de los trabajos relacionados (50%). Fecha de entrega: Lunes 18 de junio de 2008. 41

42 Anexos Desarrollo de Inventivas
Ideas para definir Ideas

43 Avances en Ciencias de la Computación 2008

44 Introducción La computación como ciencia se actualiza a pasos agigantados. La empresa de consultoría Gartner define una gráfica denominada Hiperciclo, en las cuales mide el avance de las tecnologías emergentes. En esta presentación se muestran las gráficas del 2006 y del 2012

45 Introducción La curva del hiperciclo tiene los siguientes elementos:
Disparo de la tecnología (1) Pico de expectaciones infladas (2) Desilusión (3) Grado de encantamiento (4) Productividad plena (5)

46 Hiperciclo 2006 Disparo de la tecnología:
Virtualización de aplicaciones para PC Procesadores multinúcleo Particiones de seguridad virtualizada Suites E-learning Suites de gestión (BPM)

47 Hiperciclo 2006 Pico de expectaciones infladas:
Aplicaciones de outsourcing Aplicaciones de almacenes de datos Redes inalámbricas de tercera generación WiMAX Linux en el escritorio Tablet PC Suites Empresariales Inteligentes Servicios de gestión de impresión

48 Hiperciclo 2006 Desilusión: Operaciones con llave pública
Portales básicos empresariales CRM BI Lectores de huella digital Clientes ligeros Puntos de acceso WiFi

49 Hiperciclo 2006 Encantamiento: Tecnologías de manejo de contenido ERP
Outsourcing de infraestructura de TI

50 Hiperciclo 2012 Disparo de tecnologías: Computación cuántica
Ajax offline Traducción de voz a voz Arquitectura orientadas a eventos Inteligencia colectiva Arquitecturas dirigidas por modelos RSS Empresarial

51 Hiperciclo 2012 Disparo de tecnologías (continuación):
Web semántica corporativa Reconocimiento del habla para dispositivos móviles Pico de expectaciones infladas IPv6 Mashup Web 2.0

52 Hiperciclo 2012 Pico de expectaciones infladas: Desilusión:
“Folksonomías” Papel digital Análisis de redes sociales Desilusión: RFID Grid Computing Ajax

53 Hiperciclo 2012 Pagos biométricos Wikis Blog corporativo
Redes de sensores y mallas Tablet PC Pagos por dispositivos móviles Tecnologías de localización Mensajería Instantánea Empresarial

54 Hiperciclo 2012 Encantamiento: Productividad
Aplicaciones basadas en localización Smartphone Productividad VoIP Internal Web Services

55 Bibliografía Enciso, Enrique (2007). “Tendencias y Predicciones Tecnológicas y Sociales”, Revista RED, Junio, pp

56 Innovación en TI

57 Empresas TI cFares es un buscador de precios de boletos de avión cubriendo la mayoría de las rutas en el mundo. iPolipo: resuelve el problema de agendar juntas, se requiere un promedio de 7 correos electrónicos para confirmar una cita, lo que representa 100 horas al año en una empresa promedio.

58 Empresas TI MOG: sistema que con autorización del usuario, permite acceder a una PC y catalogar toda la música disponible. En base con otros usuarios se sugieren nuevos títulos de canciones, permite formar una red social. Startforce: Sistema Operativo desde la Web.

59 Empresas TI YouSentit: Empresa que permite la entrega digital de documentos para personas con poco conocimiento de computación, permite llevar el seguimiento de los documentos. Payscale: los usuarios pueden definir posiciones laborales mediante habilidades y experiencias y compararlas en base a otras personas en otras regiones.

60 Empresas TI SimulScribe: se dedica a convertir mensajes de voz en texto con un mercado potencial de 5,000 millones de dólares. Se cobra 0.25 dólares por correo de voz. SIBEAM: red inalámbrica multi gigabit de 60 GHz para transmitir video de alta definición sin importar su comprensión.

61 Referencias Enciso, Enrique. Innovación: clave para permanecer en el juego (2007). Revista Software Red, Septiembre de 2007, pp. 13.

62 Líneas de Investigación 2008
Se debe dar una cordial bienvenida, introduciendo el tiempo. 62

63 Áreas de Interés Sistemas Distribuidos Cómputo móvil Tecnologías Web
Redes inalámbricas Bases de Datos 63

64 Líneas de Investigación
Sistemas basados en localización (LBS) y búsquedas contextuales. Sistemas asíncronos basados en tecnologías SMS/MMS Programación de Sistemas usando .NET Compact Framework y J2ME 64 No necesariamente van en orden de interés

65 Líneas de Investigación
Sistemas de intermediarios (proxys, middleware) Sistemas Distribuidos Inteligentes (Agentes Móviles) Transcodificación multiformato y Acaparamiento para dispositivos Móviles. 65

66 Líneas de Investigación
Accesibilidad de recursos Web en dispositivos móviles (W3C, WCAG, MobileOK) Minería de datos para y en dispositivos móviles. Mecanismos de Precarga de Dispositivos Web. 66

67 Líneas de Investigación
Servicios Web y P2P en dispositivos móviles Cómputo paralelo en dispositivos móviles (Grid, Clusters). Sistemas Operativos para dispositivos móviles y empotrados Virtualización 67

68 Líneas de Investigación
Seguridad en dispositivos móviles. Desarrollos de Sistemas Adaptativos en Redes Inalámbricas (Redes de 3G, Redes de Sensores). Metodologías para el desarrollo de aplicaciones en entornos de computación con recursos limitados. 68

69 Líneas de Investigación
Cómputo móvil en la educación Multimedia en dispositivos de cómputo limitado 69

70 Trabajos actuales Metodologías de Desarrollo en Computación con Recursos Limitados (ISwM): “Desarrollo de Interfaces Adaptativas para Dispositivos Móviles” (ITM)* “Diseño de un Lenguaje para Modelar Redes de Computadoras” (ITM) “Utilización del Patrón MVC (Modelo‐Vista‐Controlador) para el Desarrollo de Aplicaciones en Dispositivos Móviles” (ITM)* “Estudio y Aplicación de Patrones Arquitectónicos en la Construcción de Software para Dispositivos Móviles” 70

71 Trabajos actuales Proxy de accesibilidad móvil (UNID)*
Weblog mininig en dispositivos móviles (UNID)* Virtualización de recursos y aplicaciones en dispositivos móviles (UNID)* Nuevas Técnicas de DSS. 71

72 Trabajos actuales Medios audiovisuales para la autenticación de sistemas de cómputo (UNID)* Herramienta para validar la colocación de puntos de acceso en redes inalámbricas utilizando diagramas de voronoi. (UNID)* “Plataforma educativa utilizando tecnologías Web 2.0” (ITM). 72

73 Trabajos actuales Seguridad en Dispositivos Móviles utilizando RSA (UVAQ)* Redes en Malla (802.11s) * Redes 3G en México: Aplicaciones y Servicios * Redes Inalámbricas de Banda Ancha: WiMax y (WiBro) ** 73

74 Propuestas de Trabajos
Suite para la Conversión de Código de Aplicaciones de Computadoras Personales a Aplicaciones de Cómputo Móvil (2Mobi) “Traductor de J2ME a .NET CompactFramework” “Traductor de .NET CompactFramework a J2ME” “Traductor de J2SE a J2ME” “Traductor de J2EE a J2ME” “Traductor de .NET Framework a .NET CompactFramework” 74

75 Propuestas de Trabajos
Transcodificador de contenidos Web multiformatos Algoritmo para determinar de manera efectiva los recursos que se deben precargar en un sitio Web. Web Proxy caché con soporte para operaciones en modo desconexión para J2ME 75

76 Propuestas de Trabajos
Editor de páginas Web accesibles para dispositivos móviles Comunicación entre procesos IPC en máquinas virtuales Algoritmo de enrutamiento para dispositivos móviles utilizando técnicas de agrupamiento y distancias cortas 76

77 Propuestas de Trabajo Modificación al protocolo SMTP para permitir la eliminación de correo no visto. Videostreaming en redes celulares de 2.5G de manera descentralizada Localización geográfica de recursos de manera descentraliza. 77

78 Propuestas de Trabajo Lenguaje para Modelar LBS
Extensiones de UML para modelar aplicaciones LBS Búsquedas Semánticas en LBS.

79 Anexos Desarrollo de Inventivas
Ideas para definir Ideas

80 Calidad del Software El objetivo fundamental del Desarrollo Estructurado de Proyectos es lograr la calidad del software. Por calidad se entienden muchas cosas. Para nuestro curso lo entenderemos como realizar 100% bien las cosas en el menor tiempo posible. 80

81 Calidad de Software La calidad hace referencia intrínseca a eficacia y eficiencia. ¿Qué tiene más calidad un “Vochito” o un BMV? Los dos tienen igual calidad si cumplen con los requerimientos (checklist). 81

82 Calidad de Software En general la Ing. Sw tiene los objetivos de que el software sea correcto, utilizable y costo-efectivo. Sinónimos de calidad es que esté libre de errores. Muchas de las metodologías de software actuales se basan en esta premisa. 82

83 Calidad de Software ¿Por qué es difícil lograr la calidad del software? El software es un producto intangible el cual se logra a través de un proceso creativo ya que programar es un arte, el cual no puede ser sistematizado del todo. 83

84 Calidad de Software 84

85 Calidad de Software ¿Por qué es importante el Desarrollo de Proyectos de forma Metodológica? El software es cada vez más complejo y costosos que se compara con construir un edificio. En 1968 se da un hito importante al ocurrir la “crisis del software” y definirse la Ingeniería de Software como tal. 85

86 Construcción de una casa para “wendo”
Extraída desde la presentación “Software Architecture and UML” de Grady Booch (Rational Software). Puede hacerlo una sola persona Requiere: Modelado mínimo Proceso simple Herramientas simples

87 Construcción de una casa
Extraída desde la presentación “Software Architecture and UML” de Grady Booch (Rational Software). Construida eficientemente y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas más sofisticadas

88 Construcción de un rascacielos
No cualquier persona o grupo de persona lo realiza. Imposible sin técnicas de Ingeniería Extraída desde la presentación “Software Architecture and UML” de Grady Booch (Rational Software). Obviamente el debe ser el contexto de desarrollo (envergadura del proyecto) el que determine la configuración adecuada del proceso y los recursos necesarios. Existen propuestas radicales que promueven un proceso/modelado más “ligth”, tales como: Extreme Programming (Kent Beck) y Agile Modeling (Scott Ambler). Sin embargo, en muchos proyectos es difícil eludir un proceso y modelado más rigurosos, debido por ejemplo a relaciones contractuales, envergadura del proyecto en tiempo y participantes, etc. Una lectura interesante: Extreme Programming in the Quick-change Era 'Beware of the religion of the code-generating modeling tool.‘by Alexandra Weber Morales About 30 years ago, Barry Boehm theorized that the cost of software change increased exponentially over time; that is, if an error caught in requirements gathering cost $1, an error caught during deployment would cost $1000. "What if," said Robert Martin, a former preacher who now uses his persuasive speaking skills to promote Smalltalk guru Kent Beck's Extreme Programming (XP) methodology, "you took a moment to suspend disbelief and considered that--due to today's technology--the cost of change is essentially flat. When costs don't change over time, up-front speculative work is a liability. Ambiguity and volatility are reasons to delay." In such a world, Martin told a packed room at the UML World conference in New York city on June 14, developers need a process that exploits a flat change/cost curve?and XP is that process. The five-year-old methodology values communication (but not on paper), simplicity, feedback and courage. It's designed for small to medium-sized teams of no more than 12 people who work in a common area, integrate and test their code constantly, pair program on single computers and use whiteboards hung on the periphery to hash out designs. Source code is the preferred archival medium, and cards containing "user stories"(requirements written by customers) and tasks are the "high-density storage mechanism," according to Martin, who runs a training firm called Object Mentor out of Green Oaks, IL. "Where does modeling fit in?“ asked an audience member, reminding Martin that his talk, at this point nearly over, had promised to describe the interaction between the UML and XP. "Paper and pencil or whiteboards are the best CASE tools I know of. In Kent's case, he uses CRC cards, not the UML," said Martin. "But whether it's Booch notation or UML, you do the highest-level map you can, but you don't do all your design up front. Remember, in XP it's not an archival resource, it's a communication device. The only archive I want is the code and a few poignant, incisive documents explaining why I made certain decisions." Does this mean that ever more sophisticated modeling tools have no place in XP? Not exactly, said Martin. "If a code-generating tool works for you, use it. After all, that's what a compiler does. But beware of the religion of modeling tools that spit out executable prototypes. Sometimes getting the code from the tool is more time-consuming than writing it yourself."

89 Fábricas de Software Tratan de automatizar los procesos de desarrollo de software tal cual lo realizan las líneas de producción de los sistemas industriales. No es nuevo pero actualmente está teniendo mucho éxito. Requiere de mucho esfuerzo. Es un modelo organizacional. 89

90 Etapas para el desarrollo de un proyecto
Los proyectos en general presentan 6 etapas que a continuación se describen: Detección de necesidades: consiste en determinar los elemento (procesos, equipos, personas, etc.) que son requeridos o no para cumplir los objetivos del proyecto.

91 Etapas para el desarrollo de un proyecto
Definición del problema: consiste en delimitar las fronteras y el alcance de las necesidades que se desean atender. Factibilidad: consiste en definir las posibilidades de éxito de una solución. 91

92 Etapas para el desarrollo de un proyecto
Los niveles de factibilidad son: Operacional Técnico Económico La decisión de si se realiza un proyecto o no depende del desarrollador y del cliente. 92

93 Etapas para el desarrollo de un proyecto
Planeación del proyecto: consiste en establecer una serie de estrategias para resolver un problema, además de las técnicas y el control que se llevará a cabo. Elaboración del proyecto: consiste en definir el diseño, la elaboración de módulos y la integración de todos los elementos.

94 Etapas para el desarrollo de un proyecto
Se deben de dar a conocer en esta etapa todos los distintos tipos de pruebas y técnicas de análisis de resultados para determinar una posible evaluación al final del proyecto. Documentación: consiste en explicar como están compuestos los manuales técnicos y de usuario del proyecto.

95 Ciclo de Vida de un Proyecto
Identificar una necesidad (1) Desarrollar una propuesta de solución (2) Realizar el proyecto (3) Terminar el proyecto (4) 95

96 Ciclo de Vida de un Proyecto

97 Ciclo de Vida de un Proyecto
Un proyecto puede comenzar con un SDP (Solicitud de Propuesta, RFP Request For Proposal) de un cliente. Un SDP es un documento en el cual se describe la problemática o necesidad de la empresa y se somete generalmente a concurso la solución. 97

98 Ciclo de Vida de un Proyecto
En la mayoría de las ocasiones el SDP no existe por lo cual se debe de hacer un análisis previo para plantear la solución. Una vez obtenido el SDP el proyecto inicia formalmente a través de un contrato* 98

99 Verdadero Ciclo de Vida del Desarrollo de un Proyecto

100 Primera fase

101 Segunda fase

102 Tercera fase

103 Cuarta fase

104 Metodologías de Desarrollo de Software
Las metodologías de software son un conjunto de “mejores prácticas” que si no se llevan a la práctica no sirven de nada. El factor humano es el recurso más importante de cualquier proyecto de software.

105 Metodologías de Desarrollo de Software
Por ejemplo, la Ley de Brooks: Si se aumenta un programador más se retrasa el proyecto mientras se explica que hay que hacer. El proceso de desarrollo de software implica cuatro etapas: 105

106 Ley de Brooks

107 Metodologías de Desarrollo de Software
Especificación Desarrollo Evaluación Evolución El desarrollo de software se basa en modelos, siendo los más representativos: 107

108 Metodologías de Desarrollo de Software
Cascada (clásico) Construcción de prototipos Espiral RAD (Desarrollo rápido de aplicaciones) Cada uno de estos modelos tiene sus respectivas fases que pueden ser muy similares entre sí. 108

109 Modelos de Ciclo de Vida
109 Cascada

110 Modelo Ciclo de Vida en Cascada Actual
Comunicación: Inicio del Proyecto Recopilación de Requerimientos Planeación: Estimación Itinerario Seguimiento 110

111 Modelo de Ciclo de Vida en Cascada Actual
Modelado Análisis Diseño Construcción Código Prueba 111

112 Modelo de Ciclo de Vida en Cascada Actual
Despliegue: Entrega Soporte Retroalimentación En el modelo iterativo se repiten algunas fases al igual que en espiral. 112

113 Modelo de Ciclo de Vida en Cascada Actual

114 Flujos de Trabajo de las Etapas

115 Flujos de Trabajo de las Etapas

116 Flujos de Trabajo de las Etapas

117 Flujos de Trabajo de las Etapas

118 Modelo Iterativos 118

119 119 Modelo en Espiral

120 Actividad Investigar dos metodologías de desarrollo de software por cada persona: MOPROSOFT Open UP (RUP) CMMI

121 Actividad Six Sigma TSP/PSP Métodos Ágiles (XP eXtreme Programming)
MSF ITIL Scrum COBIT Balanced Score Card Melé Crystal Metrica3 121 121

122 María Fernanda Chávez Salazar Cesar Espino Gutiérrez
Ingeniería de Proyectos 9° Semestre Profesor: Juan Carlos Olivares Rojas María Fernanda Chávez Salazar Cesar Espino Gutiérrez UVAQ

123 Resumen ¿Qué es? Es la denominación del "Modelo de Procesos para la Industria del Software" desarrollado por la Asociación Mexicana para la Calidad en Ingeniería del Software (AMCIS) de la Universidad Autónoma de México (UNAM) por encargo de la Secretaría de Economía, es un modelo para la mejora y evaluación de los procesos de desarrollo y mantenimiento de sistemas y productos de software

124 Introducción MoProSoft es el nombre del modelo en la comunidad universitaria y profesional, y la norma técnica a la que da contenido es la NMX-059/01-NYCE-2005 que fue declarada Norma Mexicana el 15 de agosto de 2005 con la publicación de su declaratoria en el Diario de la Federación.

125 Introducción Le ha dado origen el Programa para el Desarrollo de la Industria del Software (PROSOFT). PROSOFT tiene siete líneas estratégicas, siendo la sexta la que ha dado origen a MoProSoft: "Alcanzar niveles internacionales en capacidad de procesos“. Al comenzar el desarrollo de esta línea estratégica se evaluó la adopción de los modelos: ISO 9000, ISO 15504, SW-CMM. El resultado de la evaluación fue: "Ninguno de los estándares o modelos cumple con los requisitos expresados por la industria nacional", y se decidió la elaboración de un modelo adecuado para las características de las empresas mexicanas, que se basaría en los modelos evaluados. En base a esta decisión la Secretaría de Economía encargó la elaboración de dicho modelo a la Asociación Mexicana para la Calidad en Ingeniería del Software (AMCIS) en colaboración con la Universidad Nacional Autónoma de México (UNAM). La primera versión de MoProSoft se publicó en diciembre de 2002.

126 Desarrollo Pocos procesos que abarcan todos los niveles de una organización: directivo, gerencial y operativo. Procesos integrados como una red de comunicación. Definición explícita de roles responsables por las actividades de cada proceso y la capacitación requerida. Definición explícita del propósito, objetivos específicos, indicadores, metas cuantitativas y mediciones para cada proceso. Definición explícita de productos de entrada, salida e internos de cada proceso y sus características mínimas. Definición de flujos de trabajo con las actividades, tareas, roles involucrados y productos generados Características

127 Desarrollo Existencia de una Base de Conocimiento de la organización en la cual se resguardan todos los productos generados, se administran y se consultan de acuerdo con los mecanismos definidos. Definición de las actividades para recaudar lecciones aprendidas y usarlas en proyectos futuros. Definición de un mecanismo específico para la reacción a las situaciones excepcionales durante el desarrollo de las actividades. Definición explícita de las actividades de verificación, validación y pruebas Características

128 Desarrollo Características Definición explícita de guías de ajuste que sugieren la adaptación de los procesos a las necesidades de las organizaciones, sin perder de vista el cumplimiento de los objetivos de los procesos. Los objetivos y metas cuantitativas son las que guían a los demás procesos y proyectos y son los que se valúan para conocer cuantitativamente la efectividad de los procesos de la organización. Las sugerencias de mejora a los procesos se identifican y se reportan a los responsables de gestión de procesos. Los procesos del modelo pueden ser ajustados con base al contexto de la organización.

129 Desarrollo Contiene tres categorías de procesos que corresponden a las capas de Alta Dirección, Gestión y Operación.

130 Desarrollo

131 Desarrollo Proceso de Gestión de Negocio (DIR)

132 Desarrollo Proceso de Gestión (GES)

133 Desarrollo Proceso Gestión de Recursos (GES)

134 Desarrollo Proceso Operación (OPE)

135 Desarrollo Proceso de Administración de Proyectos Específicos (OPE)

136 Desarrollo Fases de un Ciclo

137 Conclusiones

138 Fuentes Consultadas consultado el día 20 de Agosto del 2008 , consultado el día 20 de Agosto del 2008 , consultado el día 20 de Agosto del 2008 , consultado el día 20 de Agosto del 2008

139 METODOLOGÍA DE DESARROLLO DE SOFTWARE CMMI

140 Capability Maturity Model Integration
CMMI Capability Maturity Model Integration Modelo de Madurez de la Capacidad De la Organización De un conjunto de procesos agrupados Área de Proceso

141 Es un modelo para la mejora de procesos que proporciona a las organizaciones los elementos esenciales para procesos eficaces. Sucesor  CMM. Desarrollado desde 1987 hasta 1997. En 2002  CMMI Versión 1.1 En Agosto de 2006  Versión 1.2. El objetivo del proyecto CMMI es mejorar la usabilidad de modelos de madurez integrando varios modelos diferentes en un solo marco (framework).

142 Desarrollo Adquisición
Hay dos áreas de interés: Desarrollo Adquisición Sin embargo existen tres constelaciones de la versión 1.2 disponible: CMMI para el Desarrollo (CMMI-DEV o CMMI for Development). 2. CMMI para la adquisición (CMMI-ACQ o CMMI for Acquisition). 3. CMMI para servicios (CMMI-SVC o CMMI for Services).

143 Una organización es evaluada y recibe una calificación de nivel 1-5 si sigue los niveles de Madurez.
La organización, puede elegir áreas de proceso y en vez de por niveles de madurez puede obtener los niveles de capacidad  "Perfil de Capacidad" de la Organización.

144 Representación Continua Representación Escalonada
REPRESENTACIONES Según el modelo se tienen dos formas para mejorar: Representación Continua Representación Escalonada Mejorar un proceso específico o un conjunto de ellos. La mejora de la organización completa según los procesos definidos y ocupados.

145 Representación Continua Representación Escalonada
En la siguiente tabla se muestran los niveles para estos dos tipos de representaciones: Representación Continua Representación Escalonada Nivel De Capacidad Nivel De Madurez Nivel 0 Incompleto - Nivel 1 Realizado Inicial Nivel 2 Manejado Nivel 3 Definido Nivel 4 Manejado Cuantitativamente Nivel 5 Optimizando

146 Representación Continua
Mejora de un Proceso  área de proceso en que una organización desea mejorar. Existen seis niveles de capacidad por donde transitan los procesos asociados a un área de proceso: Nivel 0 – Incompleto: Objetivos  No Satisfechos. Nivel 1 – Realizado: Objetivos  Satisfechos. Nivel 2 – Manejado: cuando tiene la infraestructura base para apoyar el proceso.

147 Nivel 3 – Definido: cuando es adaptado desde el conjunto de procesos estándares de la organización de acuerdo a las guías de adaptación de la organización. Nivel 4 – Manejado Cuantitativamente: cuando es controlado usando técnicas estadísticas y otras técnicas cuantitativas. Nivel 5 – Optimización: es mejorado basado en el entendimiento de causas comunes de variación del proceso.

148 Representación Escalonada
Método estructurado y sistemático  mejora de procesos  etapas o niveles. Al alcanzar un nivel, la organización se asegura de contar con una infraestructura robusta en términos de procesos para optar a alcanzar el nivel siguiente  Nivel de Madurez. Áreas de procesos en donde los objetivos asociados a ese nivel deben ser cumplidos.

149 Existen cinco niveles de madurez:
Nivel 1 – Iniciado: la mayoría de los procesos son "ad-hoc" y caóticos. Nivel 2 – Manejado: se ordena el caos. Aquí Las organizaciones se enfocan en tareas cotidianas referentes a la administración. Nivel 3 – Definido: los procesos son caracterizados y entendidos de buena forma, y son descritos en estándares, procedimientos, herramientas, y métodos.

150 Nivel 4 – Manejado Cuantitativamente: la organización y proyectos establecen objetivos cuantitativos para medir la calidad y realización de los procesos y los usa como criterios en el manejo de ellos. Nivel 5 – Optimizado: una organización mejora continuamente sus procesos basándose en el conocimiento de las causas comunes de variación inherente en los procesos.

151 AREAS DE PROCESO Son un conjunto de prácticas relacionadas que cuando son implementadas colectivamente, satisfacen un conjunto objetivos considerados importantes para mejorar esa área de proceso. El modelo CMMI v1.2(CMI-DEV) contiene 22 áreas de proceso:

152 Área de Proceso Categoría Nivel de Madurez Análisis y Resolución Causales (CAR) Soporte 5 Análisis y Resolución de Decisiones (DAR) 3 Aseguramiento de la Calidad de Procesos y Productos (PPQA) 2 Definición de Procesos Organizacionales +IPPD (OPD +IPPD) Gestión de Procesos Desarrollo de Requerimientos (RD) Ingeniería Entrenamiento Organizacional (OT) Administración Cuantitativa de Proyectos (QPM) Gestión de Proyectos Administración de Acuerdos con Proveedores (SAM) Administración de Requerimientos (REQM) Administración de Riesgos (RSKM) Administración de la Configuración (CM)

153 Administración Integral de Proyecto + IPD (IPM+IPPD)
Gestión de Proyectos 3 Innovación y Despliegue Organizacional (OID) Gestión de Procesos 5 Integración de Producto (PI) Ingeniería Medición y Análisis (MA) Soporte 2 Monitoreo y Control de Proyecto (PMC) Planificación de Proyecto (PP) Procesos Orientados a la Organización (OPF) Rendimiento de Procesos Organizacionales (OPP) 4 Solución Técnica (TS) Validación (VAL) Verificación (VER)

154 Cuatro categorías: Administración de Procesos, Administración de Proyectos, Ingeniería y Soporte. Este agrupamiento es realizado para mostrar cómo se relaciona cada área de proceso dentro de una categoría.

155 COMPONENTES

156 Componentes Requeridas
Son las componentes que obligatoriamente deben ser satisfechas y visiblemente implementadas para poder cumplir con un área de proceso: Objetivo Específico (SG): única característica  satisfacer el área de proceso. Objetivo Genérico (GG): características  satisfechas por un conjunto de áreas de proceso.

157 Componentes Esperadas
Son las componentes que pueden ser utilizadas para alcanzar una componente requerida: Practicas Específicas (SP): describe una actividad  alcanzar un objetivo específico. Prácticas Genéricas (GP): describe una actividad  alcanzar un objetivo genérico.

158 Componentes Informativos
Propósito Notas introductorias Nombres Tablas de relaciones práctica – objetivo Prácticas Productos típicos Sub-prácticas Ampliaciones de disciplina Elaboraciones de prácticas genéricas

159 Evaluaciones Una evaluación de CMMI corresponde al estudio y análisis de uno o más procesos realizado por un equipo capacitado de profesionales, utilizando un modelo de referencia de evaluación como base para determinar, a lo menos, fortalezas y debilidades dentro de una organización. El SEI ha publicado dos documentos guías que actualmente son utilizados para realizar una evaluación de CMMI:

160 Appraisal Requirements for CMMI (ARC).
Clase A Clase B Clase C Las clases definen los requerimientos que debe cumplir una evaluación de cierta complejidad. Standard CMMI Appraisal Method for Process Improvement (SCAMPI).

161 Clase A Corresponde al método de evaluación que satisface el 100% de los requerimientos que el documento define. Se denomina SCAMPI clase A: Capacidades de la organización, Identificar fortalezas y debilidades en los procesos y Relacionar estas fortalezas y debilidades con el modelo de referencia CMMI.

162 Clase B Ayuda a una organización a comprender el estado de los procesos relativos a CMMI. Una evaluación clase B se ejecuta  auto-evaluar sus procesos. Esta clase de evaluación debe ser ejecutada por dos personas, incluyendo a un líder de CMMI y requiere mucho menos información que la evaluación clase A.

163 Clase C Es realizada por sólo una persona y tiene por objetivo evaluar pequeños aspectos de la organización que quieren apoyarse.

164 CONCLUSIONES CMMI provee: Una forma de integrar los elementos funcionales de una organización. Un conjunto de mejores prácticas basadas en casos de éxito probado de organizaciones experimentadas en la mejora de procesos.

165 Ayuda para identificar objetivos y prioridades para mejorar los procesos de la organización, dependiendo de las fortalezas y debilidades de la organización que son obtenidas mediante un método de evaluación. Un apoyo para que las empresas complejas en actividades productivas puedan coordinar sus actividades en la mejora de los procesos. Un punto de referencia para evaluar los procesos actuales de la organización.

166 REFERENCIAS

167 TSP/PSP Team Software Process Personal Software Process Presenta:
Linda Adriana Quesada Ruiz TSP/PSP

168 Watts S. Humphrey es el inventor del PSP (Personal Software Process) y el TSP (Team Software Process) TSP/PSP

169 ¿Qué es PSP? PSP

170 + Se utiliza cuando no existe un equipo de programadores.
+ Es un proceso de mejora continua --> esta diseñado para que se realicen varias pruebas antes de liberar el producto. + Consta de varias tareas que el programador tiene que realizar repetidamente. PSP

171 Para tener una buena calidad se requiere de tener métricas de calidad bastante elevadas, esto es, aproximadamente un error por cada mi líneas de código, PSP proporciona la opción de crear un programa de líneas de código con únicamente 10 errores, los cuales para un programador son fáciles de depurar comparado con los errores que se pueden presentar al no utilizar dicho proceso. PSP

172 Las diferentes etapas del PSP son:
+ Proceso base El programador conoce las necesidades del cliente para tener una idea clara de lo que programara. + Ambiente de mejora En caso de tener un proyecto ya hecho esta es la etapa de depuración, se utiliza para mejorar el proyecto anterior. Etapas PSP

173 Etapas PSP + Estimación de tamaño de proyecto, pruebas
En caso de no ser así se estima el tamaño que tendrá el software. Tomando en cuenta el tiempo que se le dedicara y las especificaciones del cliente. + Plantación de tareas y horario. Ya teniendo el tamaño del software se puede hacer una estimación del tiempo que se tomara para hacer la programación, así como, las diferentes tareas, de debe realizar un horario para tomar en cuenta cuanto tiempo debe tomar cada tarea y terminar a tiempo. Etapas PSP

174 + Control de calidad personal.
Por medio de pruebas se califica la eficiencia del sistema así como los errores que pueda llegar a tener, se tiene que confirmar que la calidad del software es la deseada. + Proceso Cíclico Teniendo en cuenta la calidad con la que el programa será liberado se decide si el software se liberara o tiene que volver a entrar en el proceso como proceso base. Etapas PSP

175 El problema mas grande que se presenta con el PSP es que para los programadores es difícil tratar de visualizar todas las tareas y etapas del desarrollo. Es por eso que en muchas ocasiones se necesita de otros programadores, pero al estar mas de uno no se puede utilizar el proceso de software personal, este problema se soluciona formando un equipo de trabajo y llevando a cabo el desarrollo por medio de TSP. PSP

176 ¿Qué es TSP? TSP/PSP

177 TSP TSP , en conjunto con PSP , ayuda al Ingeniero a:
+ Asegurar la calidad en los productos de software + Crear productos de software seguros + Mejorar procesos de Administración en una organización TSP

178 + Se utiliza cuando en el desarrollo existe un equipo de programadores.
+ Se utilizan todas las tareas que el PSP indica, pero además se utilizan métodos de organización de personal debido a que al haber un equipo deben realizarse roles de trabajo. + Se tiene que tener un líder del equipo que este en comunicación con todos y que tenga control sobre la organización del proyecto. TSP

179 Requisitos TSP Contar con personal suficientemente capacitado.
Que el personal tenga la capacidad de trabajar en equipo. Debe haber convivencia en el equipo para facilitar la comunicación. Tienen que realizarse roles de trabajo y cada integrante debe estar en el área en la que mejor se desarrolla para que sea mas eficiente. Requisitos TSP

180 Beneficios de usar TSP/PSP
Reducción significativa en los errores que presenta el software Reducción en el tiempo que de toma para desarrollar el software Es más fácil y rápida la estimación del tiempo que se necesita para programar. Facilidad para realizar cambios. La calidad del producto que se tiene al final es muy grande (1 error por KLDC) Los costos de desarrollo se reducen en gran proporción No es necesario que los programadores “roten” tareas. Se tiene control total sobre el proceso de desarrollo La productividad de los programadores aumenta tanto personal como colaborativamente Beneficios de usar TSP/PSP

181 CarnegieMellon University (2008)
CarnegieMellon University (2008). Overview of Team Software Process and Personal Software Process. Consultado en Agosto, 19, 2008 en Melendez, Miguel (2006). Personal Software Process/Team Software Process. Consultado en Agosto, 19, 2008 en homepages.mty.itesm.mx/al796320/SoftwareProcess.doc. Referencias

182 METODOLOGIA SIX SIGMA EN EL DESARROLLO DE SOFTWARE
Ingeniería de Proyectos

183 MISION Proporcionar la información adecuada  Máxima calidad del producto o servicio. Crear confianza y comunicación entre todos los participantes  Eleva la calidad y el manejo administrativo

184 Introducción Motorola, General Electric y Allied Signal utilizaron por primera vez Seis Sigma para procesos de recuperación de datos, mejorar la calidad, disminuir los costos y prácticamente eliminar los defectos en los productos sobre el terreno. En la actualidad los profesionales están estudiando la forma de aplicar las técnicas de Seis Sigma para mejorar los sistemas de software y desarrollo.

185 Metodología Seis Sigma
Incluye: Una filosofía. Mejorar la satisfacción del cliente resultando en una mayor rentabilidad. Un conjunto de métricas Una mejora de marco (también llamado un conjunto de instrumentos)

186 Sigma (S) Seis Sigma (6S) se refiere a una medida del proceso de variación (seis desviaciones estándar) que se traduce en un error o irregularidad tasa de 3,4 partes por millón, o por ciento. Defecto = producto, servicio o proceso de variación que impide cumplir con las necesidades del cliente.

187 Proceso de Seis Sigma 1. Definir el producto y servicio.
2. Identificar los requisitos de los clientes. 3. Comparar los requisitos con los productos. 4. Describir el proceso. 5. Implementar el proceso. 6. Medir la calidad y producto.

188 ¿Podemos usar Seis-Sigma en programas de mejoramiento de procesos de software?

189 Calidad de software: Fiabilidad Disponibilidad
Mantenimiento de Control Productividad

190 Protagonistas en Seis Sigma.
Equipo de Liderazgo Lead Black Belts Campeón (Champion) Maestro Cinta Negra (Master Black Belt) Cinta Negra (Black Belt) Cinta Verde (Green Belt)

191 Herramientas Estadísticas
Diagrama de Flujo de Procesos Diagrama de Causa-Efecto Diagrama de Pareto Histograma Gráfica de Corrida Gráfica de control Diagrama de Dispersión Modelo de Regresión

192 Métodos y procesos actuales
ISO 9001 CMM (Modelo de Capacidad de Madurez) BOOTSTRAP ISO/IEC TR 15504 Microsoft Accelerator for Six Sigma

193 CONCLUSIONES Aplicada a procesos industriales con el fin de obtener una buena calidad de los productos (bienes y servicios). Ha evolucionado desde el trabajo de manufactura, y ahora para los productos de software y sus procesos. La mayoría de las compañías a nivel mundial utilizan la metodología 6σ elaborando inspecciones visuales y electrónicas y aplicando las herramientas estadísticas, con las cuales se puede observar el comportamiento de los procesos. Una vez observado el comportamiento del proceso, se procede a reducir al máximo los defectos en los productos o servicios, y lograr la plena satisfacción del cliente.

194 BIBLIOGRAFÍA: Estrategias de Manufactura aplicando la metodología Seis-Sigma; Maya Héctor, Rodríguez-Salazar Jesús, Rojas Julieta, Zazueta Guillermo; Editorial Oceánica; 1996. Six Sigma. The breaktrough Management Strategy; Harry Mikel , Schoeder Richard; Mc Graw Hill Editorial; 2000. The Introduction to Six-Sigma Methodology; Brown Steve, Morrinson George; Editorial Trillas; 1991.

195 MARCO ANTONIO HERRERA GALVEZ RODRIGO ACEVEDO MORONES
INTEGRANTES MARCO ANTONIO HERRERA GALVEZ RODRIGO ACEVEDO MORONES

196 Metodologías Ágiles y eXtreme Programming (XP)
José Carlos García Cubillo Ingeniería De Proyectos Universidad Vasco de Quiroga

197 Contenidos Introducción eXtreme Programming (XP) Conclusiones

198 Introducción

199 ¿Qué es una Metodología Ágil?
Las Metodologías Ágiles (MAs) valoran: Al individuo y las interacciones en el equipo de desarrollo más que a las actividades y las herramientas Desarrollar software que funciona más que conseguir una buena documentación  Minimalismo respecto del modelado y la documentación del sistema La colaboración con el cliente más que la negociación de un contrato Responder a los cambios más que seguir estrictamente una planificación

200 Costo de los Cambios en SW
tiempo Tradicional Suposición MAs

201 Comparación Ágil v/s Tradicional
Metodología Ágil Metodología Tradicional Pocos Artefactos. El modelado es prescindible, modelos desechables. Más Artefactos. El modelado es esencial, mantenimiento de modelos Pocos Roles, más genéricos y flexibles Más Roles, más específicos No existe un contrato tradicional, debe ser bastante flexible Existe un contrato prefijado Cliente es parte del equipo de desarrollo (además in-situ) El cliente interactúa con el equipo de desarrollo mediante reuniones Orientada a proyectos pequeños. Corta duración (o entregas frecuentes), equipos pequeños (< 10 integrantes) y trabajando en el mismo sitio Aplicables a proyectos de cualquier tamaño, pero suelen ser especialmente efectivas/usadas en proyectos grandes y con equipos posiblemente dispersos La arquitectura se va definiendo y mejorando a lo largo del proyecto Se promueve que la arquitectura se defina tempranamente en el proyecto Énfasis en los aspectos humanos: el individuo y el trabajo en equipo Énfasis en la definición del proceso: roles, actividades y artefactos Se esperan cambios durante el proyecto Se espera que no ocurran cambios de gran impacto durante el proyecto

202 Principales MAs Crystal Methodologies, Alistarir Cockburn,
SCRUM, Ken Schwaber & Jeff Sutherland, DSDM (Dynamic Systems Development Method), Lean Programming, Mary Poppendieck, FDD (Feature-Driven Development), Peter Coad & Jeff De Luca, Extreme Programming, Kent Beck Adaptative Software Development, Jim Highsmith A Practical Guide to Feature-Driven Development (The Coad Series) by Stephen R Palmer, John M. Felsing , Prentice Hall, 2002 Kent Beck, Extreme Programming Explained, Addison-Wesley, 1999 DSDM: Business Focused Development, Second Edition by Jennifer Stapleton (Editor), Consortium Dsdm, Barry Fazackerley, DSDM Consortium, Addison-Wesley, 2003 Agile Software Development with SCRUM by Schwaber Ken, Mike Beedle, Ken Schwaber, Robert C. Martin, Prentice Hall; 1st edition (October 15, 2001) Agile Software Development by Alistair Cockburn , Addison-Wesley Pub Co; 1st edition (December 15, 2001) Agile Software Development Ecosystems by Jim Highsmith, Addison Wesley Professional; 1st edition (March 26, 2002) Lean Development: An Agile Toolkit for Software Development Managers by Mary Poppendieck, Tom Poppendieck, Addison Wesley Professional; 1st edition (June 4, 2003)

203 Programación Extrema eXtreme Programming (XP)

204 Historia de XP Kent fue contratado para dirigir el proyecto
Creada por Kent Beck a raíz de su experiencia en el proyecto C3 en Chrysler Kent fue contratado para dirigir el proyecto Durante el proceso nació una nueva metodología: eXtreme Programming (XP) C3 concluyó exitosamente en 1997

205 Valores que fomenta XP Comunicación Simplicidad Retroalimentación Coraje

206 Roles XP Programador Jefe de Proyecto (Manager) Cliente (Customer)
Responsable de decisiones técnicas Responsable de construir el sistema Sin distinción entre analistas, diseñadores o programadores En XP, los programadores diseñan, programan y realizan las pruebas Jefe de Proyecto (Manager) Organiza y guía las reuniones Asegura condiciones adecuadas para el proyecto Cliente (Customer) Es parte del equipo Determina qué construir y cuándo Establece las pruebas de aceptación

207 ... Roles XP Encargado de Pruebas (Tester) Entrenador (Coach)
Ayuda al cliente con las pruebas de aceptación Se asegura de que las pruebas aceptación se superan Rastreador (Tracker) “Metric Man” Observa sin molestar Mantiene datos históricos Entrenador (Coach) Responsable del proceso Tiende a estar en un segundo plano a medida que el equipo madura

208 Artefactos esenciales en XP
Historias del Usuario Tareas de Ingeniería Pruebas de Aceptación Pruebas Unitarias y de Integración Plan de la Entrega Código

209 Historia de Usuario Número: 1 Nombre: Enviar artículo Usuario: Autor
Modificación de Historia Número: Iteración Asignada: 2 Prioridad en Negocio: Alta (Alta / Media / Baja) Puntos Estimados: Riesgo en Desarrollo: (Alto / Medio / Bajo) Puntos Reales: Descripción: Se introducen los datos del artículo (título, fichero adjunto, resumen, tópicos) y de los autores (nombre, , afiliación). Uno de los autores debe indicarse como autor de contacto. El sistema confirma la correcta recepción del artículo enviando un al autor de contacto con un userid y password para que el autor pueda posteriormente acceder al artículo. Observaciones:

210 Spike para Historia de Usuario

211 Tarea de Ingeniería Tarea Número tarea: Número historia: Nombre tarea:
Tipo de tarea : Desarrollo / Corrección / Mejora / Otra Puntos estimados: Fecha inicio: Fecha fin: Programador responsable: Descripción:

212 Prueba de Aceptación Caso de Prueba Número Caso de Prueba:
Número Historia de Usuario: Nombre Caso de Prueba: Descripción: Condiciones de ejecución: Entradas: Resultado esperado: Evaluación:

213 Escenarios en XP : Exploración
? Historias de Usuario Prioridad Riesgo Esfuerzo (puntos) Definir Historias de Usuario Estimar Esfuerzo y Riesgo Elaborar Spikes Spikes (Bosquejos)

214 Escenarios en XP: Planificación de la Entrega
Velocidad de Proyecto (VP) puntos/semana Historias de Usuario N-ésima Iteración Primera Iteración Segunda Iteración Última Iteración Historias fuera de la entrega 2 a 3 semanas Entrega <= 3 meses

215 Escenarios en XP : Comenzar Iteración
Definir y ordenar Tareas de Ingeniería Historias de la Iteración Tareas de la iteración

216 Escenarios en XP : Programación
Tareas de Historias de la iteración Historias de la Iteración Programación en Parejas Diseño Refactoring Programación Pruebas Unitarias Integración Pruebas de Integración Pruebas de Aceptación Pruebas de Aceptación de Historias de la iteración Versión del Producto

217 Escenarios en XP : Pruebas de Aceptación
Definir Pruebas de Aceptación Pruebas de Aceptación Corregir errores Definir nuevas Historias Aplicar Pruebas de Aceptación

218 Entorno y clima de trabajo Espacio de trabajo XP
Espacio abierto Mesas centrales Cubículos en el espacio exterior Espacio de trabajo del proyecto C3 de DaimlerChrysler

219 … Entorno y clima de trabajo Reunión diaria XP
Reunión diaria: “Stand-up Meeting” Todo el equipo Problemas Soluciones De pie en un círculo Evitar discusiones largas Sin conversaciones separadas

220 Conclusiones

221 ¿Cuándo utilizar una Metodología Ágil?
¿Tienes ya un proceso? No o existe pero no reacciona bien a los cambios o existe pero el equipo no está contento con él  Una Metodología Ágil puede ser una buena forma de empezar No involucra gran inversión A los programadores les (suele) gustar A los clientes les ofrece mayor visibilidad y menor riesgo en el proyecto

222 Sitios Consultados Sitio Extreme Programming: A Gentle Introduction. Secciones “Artículos” y “Roadmap” del sitio de la Agile Alliance. Sitio Xprogramming, mantenido por Ron Jeffries. WikiWiki de Extreme Programming Revista electrónica Software Development. Número monográfico de revista CrossTalk: Agile Software Development. Una extensiones de XP, Agile+. Sitios de modelado ágil, mantenidos por Scott W. Ambler. y Refactoring, mantenido por Martin Fowler. Pruebas en contexto ágil, International Conference on eXtreme Programming and Agile Methods in Software Development (XP200x) XP Agile Universe

223 MSF (Microsoft Solutions Framework)
Presenta: Gonzalo Bolaños López Héctor Jaime Carrasco

224 Definición Es una muy flexible e interrelacionada serie de conceptos, modelos y prácticas de uso que controlan la planificación, el desarrollo y la gestión de proyectos tecnológicos. Se centra en los modelos de proceso y de equipo dejando en un segundo plano las elecciones tecnológicas.

225 Antecedentes Originalmente creado en 1994 para conseguir resolver los problemas a los que se enfrentaban las empresas en sus respectivos proyectos, se ha convertido posteriormente en un modelo práctico que facilita el éxito de los proyectos tecnológico.

226 Principios 1. Fomentar la comunicación abierta
2. Trabajar en pro de una visión compartida 3. Potenciar a los miembros del equipo 4. Establecer una clara rendición de cuentas y la responsabilidad compartida 5. Enfoque en la entrega de valor del negocio 6. Manténgase ágil, esperar el cambio 7. Invertir en calidad 8. Aprender de todas las experiencias.

227 Modelo de Equipo Proporciona una estructura flexible para organizar los equipos de un proyecto. Puede ser escalado dependiendo del tamaño del proyecto y del equipo de personas disponibles.

228 Modelo de Proceso Proporciona una estructura de pautas a seguir en el ciclo de vida del proyecto, describiendo las fases, las actividades, la liberación de versiones y explicando su relación con el Modelo de equipo.

229 FASES Previsión. Planeamiento Desarrollo Estabilización Implementación

230 Disciplina de Gestión de Riesgos
Este modelo proporciona un entorno estructurado para la toma de decisiones y acciones valorando los riesgos que puedan provocar.

231 Disciplina de Gestión de Proyectos
Describe el rol de la gestión del proyecto dentro del modelo de equipo de MSF, y como permite mayor escalabilidad, desde proyectos pequeños a proyectos largos y complejos.

232 Disciplina de Gestión de la Preparación
Describe aquellos conocimientos, aptitudes y habilidades que son necesarias para planificar, desarrollar y gestionar soluciones satisfactorias.

233 Gestión de productos Lograr la satisfacción del cliente.
Actuar como el defensor del cliente al equipo y como el equipo defensor al cliente.

234 Programa de gestión Satisfacer la meta de calidad de la entrega de los productos dentro de las limitaciones del proyecto. Garantiza que el producto se entrega en el momento adecuado. Calendario Características Presupuesto

235 Usuario de la educación
Mejorar el rendimiento del usuario de modo que los usuarios son tan productivo como sea posible con el producto

236 Gestión de la logística
Defensor de las operaciones, soporte de producto, asistencia al usuario, y otras organizaciones de canales de entrega y gestión en curso.

237

238 Conclusiones El Microsoft Solutions Framework proporciona las mejores prácticas para planear, diseñar, convertir y desarrollar exitosas soluciones empresariales. Es una herramienta muy eficaz para el desarrollo de proyectos porque te da las bases esenciales para que desde el comienzo se desarrolle todos los procesos que se necesitan realizar de manera eficiente y eficaz y con el mínimo de errores que permitan evolucionar todo tipo de proyecto y no se tenga que regresar demasiado a etapas anteriores por fallas en el manejo de decisiones o acciones deficientes. Nos ayuda a realizar mejores `proyectos en tiempos mas rápidos, los cuales siempre son la meta a alcanzare n una empresa de desarrollo.

239

240

241 Referencias

242

243 Biblioteca de Infraestructura de Tecnologías de Información
POR: LUIS MANUEL SUÁREZ HUERTA ANTONIO DE JESUS FERREIRA GARCÍA

244 INTRODUCCION La Biblioteca de Infraestructura de Tecnologías de Información (‘Information Technology Infrastructure Library’), frecuentemente abreviada ITIL, es un marco de trabajo de las mejores prácticas destinadas a facilitar la entrega de servicios de tecnologías de la información (TI).

245 ITIL es una metodología desarrollada a finales de los años 80’s por iniciativa del gobierno del Reino Unido, específicamente por la OGC u Oficina Gubernativa de Comercio Británica (Office of Goverment Comerce).

246 Esta metodología es la aproximación más globalmente aceptada para la gestión de servicios de Tecnologías de Información en todo el mundo, ya que es una recopilación de las mejores prácticas tanto del sector público como del sector privado.

247 . Estas mejores practicas de dan en base a toda la experiencia adquirida con el tiempo en determinada actividad, y son soportadas bajo esquemas organizacionales complejos, pero a su vez bien definidos, y que se apoyan en herramientas de evaluación e implementación.

248 EL OBJETIVO DE USAR ITIL
ITIL como metodología propone el establecimiento de estándares que nos ayuden en el control, operación y administración de los recursos (ya sean propios o de los clientes).

249 Plantea hacer una revisión y reestructuración de los procesos existentes en caso de que estos lo necesiten (si el nivel de eficiencia es bajo o que haya una forma mas eficiente de hacer las cosas), lo que nos lleva a una mejora continua.

250 Otra de las cosas que propone es que para cada actividad que se realice se debe de hacer la documentación pertinente, ya que esta puede ser de gran utilidad para otros miembros del área, además de que quedan asentados todos los movimientos realizados, permitiendo que toda la gente este al tanto de los cambios y no se tome a nadie por sorpresa.

251 SOLUCIONES PARA ITIL DESDE EL PUNTO DE VISTA DE NEGOCIO.
Según el diagrama 1.1 vemos como aparentemente tenemos segmentos del negocio aislados, pero en realidad todos tienen algo que ver para la obtención de las soluciones.

252 Por ejemplo la prestación de servicios muchas veces no seria posible sin la gestión de infraestructura, asimismo las perspectivas del negocio no se darían sin la prestación de servicio y los servicios no serian posibles sin un soporte al servicio.

253 Diagrama 1.1

254 FORMA DE USO DE ITIL EN MANAGED SERVICES.
ITIL postula que el servicio de soporte, la administración y la operación se realiza a través de cinco procesos: Manejo de Incidentes Manejo de Problemas Manejo de Configuraciones Manejo de Cambios Manejo de Entregas

255 PROCESO DE MANEO DE INCIDENTES.
Su objetivo primordial es reestablecer el servicio lo mas rápido posible para evitar que el cliente se vea afectado, esto se hace con la finalidad de que se minimicen los efectos de la operación.

256 PROCESO DE MANEJO DE PROBLEMAS
El Objetivo de este proceso es prevenir y reducir al máximo los incidentes, y esto nos lleva a una reducción en el nivel de incidencia. Por otro lado nos ayuda a proporcionar soluciones rápidas y efectivas para asegurar el uso estructurado de recursos.

257 En este proceso lo que se busca es que se pueda tener pleno control del problema, esto se logra dándole un seguimiento y un monitoreo al problema.

258 PROCESO DE MANEJO DE CONFIGURACIONES.
Su objetivo es proveer con información real y actualizada de lo que se tiene configurado e instalado en cada sistema del cliente.

259 Este proceso es de los más complejos, ya que se mueve bajo cuatro vértices que son: administración de cambios, administración de liberaciones, administración de configuraciones y la administración de procesos diversos.

260 PROCESO DE CONTOL DE CAMBIOS.
El objetivo de este proceso es reducir los riesgos tanto técnicos, económicos y de tiempo al momento de la realización de los cambios.

261 PROCESO DE MANEJO DE ENTREGAS.
Su objetivo es planear y controlar exitosamente la instalación de Software y Hardware bajo tres ambientes: ambiente de desarrollo, ambiente de pruebas controladas y ambiente real.

262 CERTIFICACION. Los particulares pueden conseguir varias certificaciones oficiales ITIL. Los estándares de calificación ITIL son gestionados por la ITIL Certification Management Board (ICMB) que agrupa a la OGC, a itSMF International y a los dos Institutos Examinadores existentes: EXIN (con sede en los Países Bajos) e ISEB (con sede en el Reino Unido).

263 Existen tres niveles de certificación ITIL para profesionales:
1. Foundation Certificate (Certificado Básico): acredita un conocimiento básico de ITIL en gestión de servicios de tecnologías de la información y la comprensión de la terminología propia de ITIL. Está destinado a aquellas personas que deseen conocer las buenas prácticas especificadas en ITIL.

264 2. Practitioner's Certificate (Certificado de Responsable): destinado a quienes tienen responsabilidad en el diseño de procesos de administración de departamentos de tecnologías de la información y en la planificación de las actividades asociadas a los procesos.

265 3. Manager's Certificate (Certificado de Director): garantiza que quien lo posee dispone de profundos conocimientos en todas las materias relacionadas con la administración de departamentos de tecnologías de la información, y lo habilita para dirigir la implantación de soluciones basadas en ITIL.

266 CONCLUSIONES. ITIL es una metodología que nos va a ayudar a que las cosas se puedan hacer de una forma más eficiente, ya que lo que se propone es que se adopten ciertas métricas y procedimientos que otros proveedores de IT adoptaron y que gracias a ellas son catalogadas como mejores prácticas.

267 El hecho de adoptar mejores practicas implica que no tengamos que descubrir el hilo negro y que si alguien sabe como hacer las cosas y explotar los recursos nos podemos apoyar en el para que nosotros también podamos hacerlo. El mayor objetivo es que todos lleguemos a un nivel de eficiencia que se traduzca en una buena prestación de servicios.

268 FUENTES: Wikipedia Foundation. Inc(2008) Information Technology Infrastructure Library. Disponibilidad: < [Fecha de consulta: 20 de Agosto 2008].

269 Hernández García, Carlos (2002) Metodología ITIL Disponibilidad: < Fecha de consulta: 20 Agosto 2008 Consultoría asentti, (2005), Descubriendo ITIL, Disponibilidad: Fecha de consulta: 20 Agosto 2008.

270 Actividad De las metodologías que se les hayan asignado, preparar una presentación donde se exprese brevemente la metodología de manera muy general (80%). Una vez realizada todas las presentaciones, redactar un escrito en el que se indique que metodología es la que mejor aplica para el proyecto a desarrollar (20%). 270

271 Rúbrica de Presentaciones
Vestimenta formal: 10% Material de Entrega: 10% Contenido de la presentación: 70% Presentación fluida sin lectura: 20% Material de Entrega puede ser desde las diapositivas hasta servicio de cafetería 271 271

272 Radiografía de la Industria del Software en México
¿Por qué son importantes las metodologías de desarrollo de software? 272

273 Tipos de Organización

274 Esquema de Contratación

275 Edad

276 Escolaridad

277 Género

278 Antigüedad

279 Salarios

280 Salarios

281 Salarios 281

282 Salario Internacional

283 Salario Tipo de Organización

284 Salario por Función

285 Salario por Rango Edad

286 Salario Grado de Estudios

287 Conocimiento y Habilidades

288 Conocimiento y Habilidades

289 Plataformas

290 BD

291 Otras habilidades

292 Certificaciones

293 Certificaciones

294 Problemas de Comunicación

295 Ejemplo de Metodologías
Problema: El profesor se encuentra actualmente ante una necesidad de extrema importancia. Necesita realizar una corbata para ir a una junta en donde se encontrarán altos empresarios del sector informático, el detalle es que no sabe a ser un nudo de corbata ¿Cómo podría resolver el problema?

296 Ejemplo de Metodologías
La solución más fácil es realizar outsorcing (que lo hagan otros). Sino se puede, se deberá realizar en base a tres formas básicas de solución de problemas: Conocimiento Experiencia Sentido Común

297 Ejemplos de Metodologías
La forma más fácil es a través de una metodología para realizar nudos de corbatas como la planteada en Lo primero que se tiene que saber es si debe ser un tipo especial de corbata o no. Los tipos pueden ir desde nudo de corbata simple, doble, windsor, medio windsor, nudo pequeño.

298 Simple

299 Doble

300 Windsor

301 Medio Windsor

302 Nudo pequeño.

303 Nudo Cruzado

304 Actividad Lectura del Artículo: “La Catedral y el Bazar”.
Realizar en forma grupal una presentación de los puntos más relevantes (80%) De forma personal escribir los tres principios que más llamaron mi atención. 304

305 Requerimientos Un requisito no es otra cosa que una condición o capacidad de un usuario o sistema para satisfacer un objetivo o resolver un problema. Los requerimientos pueden ser funcionales (explícitos) o no funcionales (implícitos).

306 Requerimientos Las características que deben perseguir los requerimientos son: necesario, conciso, completo, consistente, no ambiguo, verificable. Los problemas que presenta la Ingeniería de Requerimientos son muchos:

307 Requerimientos Los requerimientos no son obvios y provienen de muchas fuentes. Son difíciles de expresar en palabras. Un requerimiento puede cambiar en el transcurso del proyecto.

308 Requerimientos Lo que se pretende con una buena Ingeniería de Requerimientos es reducir costos y retrasos del proyecto, mejorar la calidad del software, evitar el rechazo de los usuarios finales entre otras cuestiones.

309 Requerimientos Es muy importante definir los límites y alcances del sistema. El éxito de la obtención de requerimientos consiste en ponernos en los zapatos de nuestros clientes y no desarrollando a nuestros gustos. 309

310

311 Diferentes Vistas

312 Diferentes Vistas

313 Diferentes Vistas

314 Requerimientos Se deben evaluar y negociar cada uno de los requerimientos con el fin de priorizar cada uno de los requerimientos. Se deben documentar cada uno de los requerimientos obtenidos así como el control del cambio.

315 Requerimientos Para obtener requerimientos se siguen muchas técnicas. Las más populares son las entrevistas y cuestionarios. Tips para Diseñar Cuestionarios. Es necesario realizar un muestreo de los datos para encontrar necesidades.

316 Requerimientos Se deberán poner escalas (preguntas cerradas) para cuantificar lo que se pretende. Actividad: diseñar un cuestionario sobre el proyecto y aplicarlo a por los menos a 20 personas. Se sugiere utilizar sistemas en líneas para realizar los cuestionarios. (Diseño:20%, Aplicación:80%)

317 Request For Proposal Solicitud de Propuesta 1:
Desarrollar un sistema de cómputo móvil para la ayuda en la toma de requerimientos de proyectos de software. El sistema deberá sincronizarse con un servidor en donde se centralizará la información y podrá compartirse con otros a través de un portal Web.

318 Request For Proposal El Sistema de cómputo móvil deberá tener la capacidad de implantar las técnicas de obtención de requerimientos más comunes (cuestionarios, encuestas, prototipos, FODA, FURPS, etc.) y plasmarlo en una lista de requerimientos que permita obtener un diccionario de datos y algún modelo visual como los diagramas de casos de uso.

319 Request For Proposal Solicitud de Propuesta 2:
Realización de un sistema LBS que permita conocer la ruta “ideal” entre dos puntos de la ciudad de Morelia para utilizarse en sistemas de Taxi. La aplicación deberá de ser de preferencia para un dispositivo móvil con GPS o 3G.

320 Request For Proposal Otra forma de realizarse es a través de un “mashup” para la Web utilizando la API de Google Map o Google Earth. Se deberá calcular costos utilizando la información espacial disponible. Se excluyen elementos como tráfico, manifestaciones y otra información no disponible en el modelo.

321 Requerimientos Tips para realizar entrevistas:
Utilizar una técnica de rombo de preguntas cerradas, abiertas y cerradas. Observación del mundo (STROBE). Tener un guión flexible (improvisación). 321

322 Requerimientos Tarea: realizar una entrevista a personal relacionado con el proyecto. Primera parte diseño entrevista (50%) una vez aprobada por el profesor (entrega martes 10 junio) se procede a la aplicación (50%). En metodologías ágiles el cliente participa de manera activa en el desarrollo del sistema. 322

323 FODA Se pueden utilizar técnicas como la Lluvia de Ideas o análisis FODA, el cual consiste en hacer una relación entre elementos: Fortaleza: Factor interno positivo. Oportunidades: Factor externo positivo. Debilidades: Factor interno negativo. Amenazas: Factor externo negativo.

324 Requerimientos Actividad: Realizar un análisis FODA del proyecto. Cada integrante del equipo se encarga de un área y se junta (100%) Otras técnicas de obtención de requerimientos son: Matriz de requisitos Metodología FURPS+

325 Actividad El buen estilo de codificación trae como consecuencia una mejor reestructuración del código lo cual lo hace menos propenso a cometer errores y más fácil de mantener. El término codificación hace hincapié a codificar ciertos “datos” en un formato en específico.

326 Actividad En los primeros lenguajes de programación como las computadoras eran escasas y costosas, se realizaban muchas pruebas de escritorio, antes de codificar un programa, este se escribía en un formato especial llamado hoja de control tabular, en la cual se escribían en cada celda un carácter de control, de esta forma se podían hacer las perforaciones en una tarjeta perforada.

327 Actividad

328 Actividad

329 Actividad

330 Actividad

331 Actividad Desarrollar un programa en Fortran que permita calcular las raíces de una ecuación de segundo grado utilizando fórmula general. El programa deberá de validar las entradas, indicando si las raíces obtenidas son imaginarias o reales. Dicho programa se hará en la hoja tabular y se probará a lápiz y papel.

332 Actividad Una vez realizada la prueba de escritorio, se tendrá hasta tres oportunidades de poder correr el programa en la computadora. Si corre a la primera, se tendrá un 100, a la segunda 90, tercera 80, después se tendrá 70 siempre y cuando se entreguen la hoja de control y se corrija el error. A continuación se presenta un pequeño resumen de Fortran.

333 Fortran Es el lenguaje de programación de computadoras más antiguo. Se originó en 1957 por IBM. El nombre viene de Formula Translator, el cual se orientó a cálculos científicos. Existen varios compiladores de Fortran, en este curso se utilizarán el GNU Fortran.

334 Fortran Existen varios dialectos de FORTRAN siendo los más representativos, Fortran IV, Fortran 77, Fortran 95 y Fortran 2003. La versión manejada en este curso es el compilador g95 que también incluye aspectos de la versión 2003.

335 Fortran Una vez instalado el compilador, los programas se editan utilizando un editor de texto plano y compilando desde línea de comandos. Los archivos de código fuente deben de tener la extensión .f o .for; existen algunos compiladores que reconocen otras extensiones.

336 >_ g95 archivo.f –o ejecutable
Fortran El proceso de compilación se realiza identificando la carpeta bin y se ejecuta el comando: >_ g95 archivo.f –o ejecutable Donde con la opción –o se renombra el ejecutable en caso contrario el archivo ejecutable pasará a llamarse a.exe

337 Fortran La estructura de un programa es la siguiente:
C Estructura de un programa en Fortran Program nombre Bloque de instrucciones End !Declaraciones de funciones y rutinas

338 Fortran Nótese que el programa en sus palabras clave pueden ir en mayúsculas y minúsculas. Se acostumbra que todas las palabras clave se hagan en mayúsculas. También es ampliamente recomendable poner comentarios, los cuales inician con la letra C al inicio de renglón o bien con ! En cualquier parte del código.

339 Fortran Es de suma importancia dejar el programa de forma tabular, ya que los primeros 6 caracteres están reservados para etiquetas que generalmente son números. Si no se deja dicho espacio el programa no compilará bien. En Fortran es posible no realizar programación estructurada por lo que se debe evitar la instrucción GO TO

340 Fortran El nombre del programa debe de ser un identificador válido (comenzar con al menos una letra) El sistema no es fuertemente tipeado por lo que se pueden utilizar variables sin declararlas. Se debe de terminar el programa principal con la instrucción end.

341 Fortran C Programa hola mundo PROGRAM hola
WRITE(*,*) ‘Hola mundo’ !Pantalla END Se recomienda sangrar el código. La salida estándar es el monitor y se utiliza la instrucción WRITE.

342 Fortran La instrucción WRITE tiene dos argumentos, el primero de ellos indica el dispositivo de salida y el segundo formato. Si se utiliza el operador * o bien se omiten los parámetros de la instrucción, se utiliza

343 Fortran Actividad: realizar la lectura de dos números y mostrar el resultado de las 4 operaciones básicas. ¿Qué estructuras de programa necesito?

344 Fortran Se ocupa de una instrucción para leer datos que es READ(*, *).
Una vez asignado se necesitan hacer los cálculos para ello se necesitan conocer los operadores aritméticos: +, -, *, / y ** que sirve de exponenciación. También se puede utilizar el comando PRINT para imprimir datos en pantalla de forma básica.

345 Fortran Actividad: Desarrollar un programa para calcular el área de un triángulo conociendo solamente la longitud de sus tres lados. ¿Qué se necesita? Entender el problema. La fórmula es: S = (A + B + C)/2

346 Fortran Donde A, B y C son los lados del triangulo. Después se aplica la fórmula: Para ello se necesita el operador SQRT para poder sacar la raíz cuadrada. ¿Cómo se garantiza que los lados introducidos sean válidos?

347 Fortran Los datos 1,2 y 3 como longitudes de los lados de un triangulo no forman realmente un triangulo, en cambio los datos 3,4 y 5 si ya que forman un triangulo rectángulo con área de 6 unidades cuadradas. La evidencia obvia es garantizar que cada dato no sea 0 o negativo.

348 Fortran La otra no tan evidente es validar el resultado de las áreas, ya que está no puede ser ni 0 ni negativa. Para poder realizar estas acciones se necesita de la instrucción de decisión IF, el cual tiene la siguiente sintaxis IF (expresión) XX, XX, XX

349 Fortran Esta es la vieja sintaxis, la cual salta a la primera etiqueta si el resultado es menor que 0, a la segunda si es igual a 0 y salta a la tercera línea cuando sea mayor a 0. La instrucción STOP permite parar un programa.

350 Fortran Las etiquetas generalmente son números y deben ir en la primera columna. Actividad: modificar el programa anterior para que permita la introducción de un lado hasta que este sea positivo. ¿Qué se necesita un ciclo? Que se puede obtener con un GO TO y una condicional.

351 Fortran La otra forma de hacer una decisión es con el IF lógico, el cual tiene la sintaxis: IF (expresión) GO TO etiqueta. Para ello se necesita conocer los operadores relacionales los cuales son: .GT., .LT., .EQ., .NE., .GE., .LE. Para >,<, =, <>, >= y <= respectivamente.

352 Fortran Algunos compiladores permiten hacer uso de dichos operadores de manera normal. Actividad: realizar el factorial de un número. Tomando en cuenta que Fortran no permite recursividad en la gran mayoría de sus versiones.

353 Fortran El operador + o $ al inicio de una línea de código (6ta columna) indica que la línea continúa de la línea anterior. Algunos compiladores limitan la extensión de las sentencias hasta 72 caracteres, dado que las tarjetas perforadas eran de hasta 80 líneas.

354 Fortran El operador de asignación es =.
Los operadores lógicos son: .NOT., .AND., .OR., .EQUIV. Y .NEQUIV. Para la negación, conjunción, disyunción, equivalencia y no equivalencia. Otras funciones aritméticas son: ABS, MOD, DIV, MAX, MIN, SIN, COS, TAN. Utilizadas en casi todos los lenguajes.

355 Fortran Los tipos de datos básicos en Fortran son: INTEGER: enteros
REAL: decimales DOBLE PRECISION: decimales largos LOGICAL: lógicos, .TRUE. Y .FALSE. CHARACTER: caracateres COMPLEX: Complejos como (1,2) CMPLX(-0.5,1.E-3).

356 Fortran Ejemplo de Declaración de Variables: INTEGER A REAL B, C
LOGICAL D La instrucción PARAMETER sirve para declarar constantes. PARAMETER (PI= )

357 Fortran La instrucción FORMAT recibe la siguiente secuencia de caracteres para especificar el formato de los datos: A Cadenas I Enteros F Decimales E Notació Científica

358 Fortran D Doble Precisión X Espacio en blanco / Salto de renglón
Ejemplos: A20: Cadena de 20 caracteres 5I3: 5 enteros de 3 dígitos cada uno F3.2 Un decimal con tres dígitos enteros y 2 dígitos fraccionarios

359 Fortran 3X: tres espacios en blanco /// Tres líneas en blanco
Se pueden utilizar sentencias de decisión doble del tipo: IF (condición) THEN sentencias ELSE sentencias ENDIF. Actividad: Realizar un programa para calcular las raíces de una ecuación cuadrada, indicando si son reales o imaginarias las raíces.

360 Fortran Las subrutinas se llaman con la instrucción CALL desde el programa principal y se declaran de la siguiente manera: SUBROUTINE nombre(parametros) !Declaraciones RETURN END Modificar el programa de las raíces utilizando subrutinas

361 Fortran Las funciones permiten regresar un valor a diferencia de las subrutinas. Se declaran de la siguiente forma: Tipo FUNCTION nombre(parametros) !Declaraciones nombre = valor RETURN END

362 Fortran Reescribir el programa Factorial utilizando una función.
Realizar un programa que permita jugar “Craps”. Dicho juego consiste en lanzar dos dados (simulación realizada a través de una función que se invoque dos veces) y sumar la puntuación. Si la suma de los dados da 2,3 o 12 el usuario pierde inmediatamente.

363 Fortran Si la suma da 7 u 11 el usuario gana. Si da cualquier otra combinación 4,5,6,8,9 o 10, el usuario tiene otra segunda oportunidad. El programa debe de pedir al usuario la cantidad de dinero con la que cuenta el usuario. Por cada juego se debe pedir la apuesta. Se debe sumar o restar dependiendo de si ganó o perdió el juego. El juego termina hasta tener 0 pesos o bien que el usuario decida salir.

364 Fortran Para generar números aleatorio se utiliza la función RAND(TIME()) que genera un número aleatorio entre 0 y 1 por lo que necesita ser convertido a enteros con INT. Los ciclos se pueden realizar de manera estructura con la instrucción: DO inicialización, límite, incremento sentencias ENDO

365 Fortran Actividad: realizar un programa que permita simular una partida de póker. El usuario deberá tener 5 cartas. La simulación consiste en repartir aleatoriamente cartas. Del 1 al 10 las cartas de corazones (donde el 1 representa el as), del 11 al 20 los diamantes (por ejemplo el 13) indica que se sacó el tres de diamantes, del 21 al 30 el trebol, y del 31 al 40 las picas. Los jotos están representados del 41 al 44, donde el 41 representa el joto de corazones y así sucesivamente.

366 Fortran Las reinas están representadas del 51 al 54 (por ejemplo el 52 representa la reina de diamantes), y los reyes están del 61 al 64 (donde el 64 es el rey de picas). No se deberán repartir cartas. Se debe indicar si se hizo alguna jugada válida del póker (par, dos pares, tercia, full (tercia, par), póker (4 figuras igual), flor y flor imperial).

367 Fortran Los arreglos se declaran poniendo al final de la declaración de variables, las dimensiones y el tamaño de éstas. Por ejemplo: INTEGER A(30) !Arreglo de 30 enteros CHARACTER*40 N(30) !Arreglo de 30 cadenas de tamaño 40 cada una REAL T(3,4) !Matriz de 3 filas por 4 columnas de números decimales.

368 Fortran Los arreglos inician a partir del subíndice 1.
Se pueden especificar el rango de los arreglos. Por ejemplo: REAL A(-5:5) !10 elementos. La instrucción DATA permite inicializar un arreglo: DATA A/.1,.2,.3/ Se puede utilizar la instrucción CYCLE para continuar la siguiente iteración de un ciclo y EXIT para salir.

369 Fortran Se puede acceder a subcadenas definiendo su rango. Sea la cadena X=‘Morelia’, la instrucción Y=X(1:4) seria equivalente ‘More’. El operador // sirve para concatenar cadenas. Otras operaciones son LEN(cad) para determinar el tamaño de una cadena, CHAR(num) regresa el carácter representado por el código ASCII dado. ICHARC(c) regresa el valor númerico ASCII del código.

370 Fortran La función INDEX(cad1, cad2) regresa la posición en donde se encuentra la subcadena 2 en la subcadena 1. Actividad. Realizar un programa que dado los siguientes datos: nombre, apellido paterno, apellido materno y fecha (en formato dd/mm/aaaa) pueda calcular el RFC de dicho usuario.

371 Fortran El RFC se calcula con la primera letra del apellido paterno, la primera vocal del apellido paterno, la primera letra del apellido materno, la primera letra del nombre, los dos últimos dígitos del año de nacimiento, los dos dígitos que representan el mes, los dos dígitos del día.

372 Fortran También existen archivos en Fortan. A continuación se muestra un ejemplo. PROGRAM ARCHI PARAMETER(MAXP=20) CHARACTER*48 PAL(MAXP) OPEN(UNIT=9,FILE='PALABRAS.TXT',STATUS='OLD',ERR=99)

373 Fortran READ(9,*,ERR=99) (PAL(I), I=1,MAXP) CLOSE(9) DO I=1,MAXP
PRINT *, I,') ',PAL(I) ENDDO STOP PRINT *, 'ERROR' END

374 Fortran El programa inicia definiendo una constante para indicar un máximo de 20 palabras de tamaño máximo de 48 caracteres. La instrucción OPEN abre un archivo, el primer argumento es el identificador de archivo, el segundo es el nombre, el tercero es el estado. Dicho estado puede ser OLD (debe de existir el archivo), NEW (se crea) y REPLACE (reeplza el archivo si existe).

375 Fortran El último argumento ERR define la etiqueta a la cual se salta si ocurre algún error. Se utiliza READ para leer desde el archivo, indicando el ID, el formato y el código de error. Se lee cada palabra desde 1 hasta 20. Posteriormente se imprime cada una de las palabras.

376 Fortran Actividad: desarrollar un programa en forma que permita obtener el valor de verdad de cualquier operador lógico. Por ejemplo si las entradas son A=.TRUE. B=.FALSE. C=.FALSE. El programa debe devolver que A .AND. B .AND. C = FALSE, y así con los demás operadores .OR., .NOT., .EQUIV. Y .NEQUIV. La salida se deberá guardar en archivos. Se sugiere utilizar evaluación de expresiones por corto circuito.

377 Fortran Actividad: realizar un programa que permita calcular la exponencial de un número dado.

378 Fortran Actividad: Desarrollar un programa que dado n como entrada permita desarrollar el teorema binomial, dada la siguiente fórmula:

379 Fortran Desarrollar un programa que permita convertir cualquier número en cualquier base a cualquier otra. El algoritmo consiste en convertir el número original a base a diez y después cambiarlo a la nueva base. Para convertir a base diez se debe multiplicar el número por su peso en cada uno de sus dígitos.

380 Fortran Para convertir de decimal a cualquier base, se debe dividir el número por la base dejando los residuos almacenados en una parte y la parte entera pasa a ser el siguiente número. El proceso se realiza hasta que el cociente quede a 0. El resultado se obtiene invirtiendo cada uno de los dígitos de residuo obtenidos con la división, para ello se necesita manejar un arreglo.

381 Metodología FURPS+ Funcional (Functional): características, capacidades y seguridad. Facilidad de Uso (Usability): factores humanos, ayuda, documentación. Fiabilidad (Reliability): frecuencia de fallos, capacidad de recuperación.

382 Metodología FURPS+ Rendimiento (Performance): tiempos de respuesta, productividad, precisión, disponibilidad, uso de los recursos Soporte (Supportability): adaptabilidad, facilidad de mantenimiento, internacionalización, configurabilidad.

383 Metodología FURPS+ +: Implementación: limitación de recursos, lenguajes y herramientas, hardware Interfaz: restricciones impuestas para la interacción humana Operaciones: gestión del sistema Empaquetamiento Legales: licencias, auditorias, etc.

384 Métodología FURPS Req F U R P S + Consultas a través de un celular
Deberán realizarse a través de SMS/MMS, la respuesta será en MMS Pocos movimientos del teclado Optimizado para desplegar información importante Soporte en Plataformas J2ME Ejecutarse con Equipos Nokia serie 60 Sistema Web de Captura Indicadores Seguridad por autenticación y huella digital Optimizado para navegador Opera ….

385 Metodología FURPS+ Actividad: una vez identificado los posibles requerimientos del proyecto se comienza por hacer una matriz de estos, colocando en cada una de las una de las letras de FURPS+ para evaluarlo y poder darle prioridad e identificar Factores Críticos de Éxito. Matriz FURPS grupal 100%, al menos 5 requisitos evaluados. Agregar FCE 385

386 Factores Críticos de Éxito
La metodología de Factores Críticos de Éxito sirven para determinar aquellas áreas o cosas que son críticas para la empresa. El FCE nos ayuda a enfocar nuestros esfuerzos y en determinar como se debe monitorear cada una de nuestras alternativas.

387 FCE No son medidas estándar para toda la industria, ni para todos los negocios. Son específicos para una situación particular en un momento dado. Pueden ser medidos cuantitativa o cualitativamente

388 FCE Existen factores: Internos Externos De seguimiento de operaciones
De seguimiento de planes

389 FCE Principales fuentes (según Rockart): La industria
La estrategia competitiva o posición en la industria Factores del medio ambiente Factores temporales Posición administrativa

390 FCE Algunos FCE de la Industria Automotriz: Economía en el combustible
Imagen Organización eficiente de agencias Control de costos de manufactura, etc.

391 FCE Se deben considerar los siguientes elementos:
Información crítica: información necesaria para dar seguimiento a los FCE (extraída de otros SI, comprada, etc.)

392 FCE Supuestos críticos: Los objetivos y FCE están basados en supuestos. Deben ser validados constantemente. Ej. Actividades de la competencia, inflación, etc. Decisiones críticas: Determinar cuáles son las decisiones críticas que se deben hacer. Ej. ¿dar de baja un producto?, ¿compra o desarrollo?, máximo riesgo aceptable.

393 FCE Fase 1. Formación de un equipo de trabajo Pocos recursos
Reconocimiento y posibilidad de comunicación con la alta dirección Conocimiento de la industria, sus problemas, puntos clave, etc. Entender la empresa, y su posicionamiento, estructura, cultura y política, posición competitiva.

394 FCE Fase 2. El equipo se prepara para el estudio
Estudiar la metodología Estudiar la técnica de entrevistas seleccionada Familiarizarse sobre la situación de la empresa y su entorno

395 Metodología para generar FCE
Fase 3. Sesión introductoria con la alta administración, para: Obtener apoyo Obtener lista de personas a entrevistar en la siguiente fase Obtener un primer nivel de FCE, problemas, oportunidades, etc...de todo el negocio, no sólo de informática.

396 FCE ¿Cuáles son las cosas que ud. ve como FCE en su trabajo?
¿Cuál es el área que más le perjudicaría si fallase?, ¿Dónde le molestaría más que se fallase? Si lo aislaran del negocio 3 semanas, ¿sobre qué sería lo primero que quisiera que lo enterarán en relación al negocio?

397 FCE Fase 4. Sintetizar el resultado de las entrevistas
Sintetizar los resultados, combinando respuestas, eliminando duplicidades y priorizando (como un primer resultado).

398 FCE Fase 5. Reunión de enfoque del equipo directivo (paso clave):
El equipo se reúne con los ejecutivos Los ejecutivos determinarán los FCE de acuerdo a la información recolectada Mejores resultados si la reunión es con participación abierta

399 Rúbrica Una rúbrica es un elemento que nos permite definir en forma tabular los requisitos que debe tener un producto en general y evaluarlos en base a un criterio determinado.

400 Ejemplo de Rúbrica

401 Tarea Definir una rúbrica para evaluar una clase de videojuegos, definir al menos 5 características, ubicar porcentajes a cada una. Evaluar al menos tres videojuegos. Distribuir la rúbrica a sus demás compañeros para que puedan evaluar.

402 Actividad Realizar un programa en Python que permita calcular el área de un triángulo conociendo la longitud de sus tres lados. Para ello se aplica la fórmula: Donde S = (A+B+C)/2

403 Python Lenguaje creado a principios de la década de 1990 por Guido van Rossum. Actualmente es un proyecto de Software Libre. Se trata de un lenguaje interpretado o de script, con tipado dinámico, fuertemente tipado, multiplataforma y orientado a objetos (en realidad es multiparadigma ya que permite programación estructurada y funcional).

404 Python Es un lenguaje muy similar a Perl y a otros lenguajes de script disponibles en los sistemas Unix tales como AWK, PHP, etc. La versión que se utilizará para este curso es la del proyecto GNU para Windows, aunque existen otras como ActivePython. Cada implementación de Python tiene sus características propias como iPython para desplegar una shell más útil.

405 Python Existen varias implementaciones del lenguaje como Jpython, IronPython y Cpython, siendo esta última la más robusta e implementada por que está hecha en C. Al ejecutar Python se muestra un shell (>>>) que nos permite interpretar comandos del lenguaje o correr aplicaciones.

406 Python En la shell se pueden ejecutar expresiones simples como expresiones aritméticas. Ejemplo: >>> 1+1 2 Se puede salir del shell a través de la función exit() o bien la combinación de teclas Ctrl + D

407 Python La shell permite trabajar de manera interactiva.
Python genera código muy legible por lo que no se utilizan conceptos como llaves o caracteres raro como || ó &&, en su lugar se utilizan palabras en inglés más claras como or ó and. Se recomienda utilizar IDEs como PyDEV que es un plugin para Eclipse.

408 Python El primer programa en cualquier lenguaje de programación es el “hola mundo”, aquí se seguirá la tradicción: >>> print “Hola Mundo” Hola mundo Si se desea ejecutar este programa sin el shell, se deberá ejecutar la instrucción: python hola.py Para esto se asume que se escribió el código en un editor de texto plano.

409 Python El programa se ejecutará muy rápido para detenerlo hasta que se presione una tecla, se deberá añadir la siguiente línea: raw_input() Si se estuviera en un Unix se puede agregar la línea #!/usr/bin/python al inicio de cualquier programa para “firmarlo” y así permitir que este sea autoejecutable.

410 Python Los tipos de datos básicos son:
Numéricos: 7 (enteros), 12.5 (flotantes) 5+3j (complejos) Cadenas de Texto como “UVAQ” Lógicos: true y false

411 Python Aunque no es necesario declarar variables se puede utilizar el operador type(var) para saber el tipo de datos de una variable. Los tipos de datos enteros pueden ser int y long. Como internamente Python se maneja en C, la longitud de los tipos de datos es la misma que en las implementaciones de C. Por lo que se utilizan las mismas convenciones (prefijo L al final de un número para indicar que es long, iniciar con un 0 indica que es octal, si inicia con 0x es hexadecimal).

412 Python Los operadores aritméticos son los clásicos de todo lenguaje, incluyendo: ** para potencia, // para división entera, % para módulo. También existen operadores a nivel de bits como el & (and), | (or), ~ (not), ^ (xor), << y >> para corrimientos a la izquierda y a la derecha. Actividad: realizar un programa que dado dos números permita saber si un número es par o impar, hacerlo a través de operadores de bits.

413 Python Actividad: Realizar otro programa que permita determinar la multiplicación y la división de un número entero por dos. Se debe de hacer con operadores de bits. Actividad: realizar un programa que permita determinar si un número tiene paridad par o impar, considerar todos los bits menos el más significativo, el cual deberá contener un 0 si es paridad par o un 1 si es paridad impar.

414 Python Los comentarios se ponen a través del carácter #
Las cadenas puede utilizar comillas dobles “” o comillas simples ‘’ Se pueden utilizar caracteres especiales como \n, \t, entre otros, que son comunes a C. Se puede utilizar el operador + para concatenar cadenas.

415 Python Tarea: traer una computadora con Linux (unix) en cualquiera de sus variantes: LiveCD (usb distro), máquina virtual, instalación física, emulador de Linux, etc. Que permita la realización de scripts y tenga instalado el compilador gcc y python. Es necesario el manejo de este entorno para los problemas de esta clase y tareas.

416 Python Los valores de tipo lógicos o bool, se llaman true y false.
Los operadores lógicos son and, or y not. El operador de comparación es ==. Los otros operadores relacionales son !=, <, >, <= y >=. Una de las características fundamentales de Python es su manejo avanzado de tipos de datos, entre ellos se encuentran las listas.

417 Python Las listas (colecciones) pueden manejar elementos de cualquier tipo. Un ejemplo es: L = [1, 2.5, “UVAQ”, true] print l[1] Una propiedad importante es el particionamiento (slicing) el cual permite acceder a un rango de elementos o crear una sublista del tipo: Inicio:fin:incremento

418 Python Las tuplas son similares a las lista salvo que tienen menos opciones y consumen menos memoria. Se declaran separando los elementos por comas: t = 1, 2.3, “hola” type(t) Los diccionarios son útiles para almacenar pares de indice-contenido. Por ejemplo peliculas = {“odisea espacial”:”kubrick”, “jurasic park”: “Spilberg”}

419 Python peliculas[“jurasik park”] devolvería “Spilberg”
La estrustura condicional if tiene la siguiente sintaxis: if (condicionAEvaluar): acciones cuando es verdadero else: acciones cuando es falos

420 Python Se puede utilizar la palabra clave elif (condicion): para anidar else. También existe la condicional de una sóla línea: A if B else C V = “par” if (n%2==0) else v=“impar” Existe el ciclo precondicional: while (condicion):

421 Python Las funciones se definen de la siguiente forma
def nombre(param1, param2): acciones Existe el concepto de datos inmutables que no pueden cambiar después de la ejecución de la función (similar al concepto de variable local y global, o bien parámetros por valor y por referencia).

422 Python La función int(), convierte una cadena a número y la función str() convierte un número a cadena. La función raw_input(cad) nos permite introducir datos desde consola y color el prompt con la cadena cad. Los ciclos for … in ..:, permiten acceder a los elementos de una colección.

423 Python #Imprime todos los elementos de la lista l for e in l print e

424 Python Trabajos: Calcular el tiempo de vuelo entre dos horarios suponiendo que no tarda más de 24 horas. El tiempo se dará en el formato de hh:mm:tt, donde hh va de 0 a 12, m de 0 a 59, y tt puede ser am o pm. Se deben validar los dos horarios

425 Python Dadas dos listas A y B, dejar en la lista A los valores impares y en la B los valores pares. Pedir los valores de la lista al usuario. Leer N números y calcular los siguientes estadísticos: media, moda, mediana y desviación estándar.

426 Python Realizar un programa quedado un número de bits determine el número de KB (Kilo Bytes), MB y GB. Un byte son 8 bits. Un KB son 1024 bytes, un MB son 1024 KB, un GB son 1024 MB. Por ejemplo si el usuario introduce la cantidad: 12,896,521 bits el programa debe devolver: 1,612,065 ( ) bytes KB MB GB

427 Desarrollo de Prototipos
Los prototipos son una excelente herramienta para la obtención de requerimientos dado que el cliente puede ver elementos funcionales en operación del proyecto. El problema es que es una técnica muy costosa, motivo por el cual su utilización está muy restringida.

428 Diseño de Prototipos

429 Diseño de Prototipos

430 Diseño de Prototipos Champcart Motor: Turbocargado, 2.65 litros V-8
Caja de velocidad: Manual con 6 o 7 velocidades delanteras LLantas: Bridgestone. Peso mínimo: 1,565 libras

431 Diseño de Prototipos Formula1
Motor: Aspirado, 3 litros (183 cubic inches) V10 Turbocarga está prohibido. Caja de velocidad: Semiautomática de 6 o 7 velocidades delanteras Llantas: sin marca Peso mínimo: 1, libras con conductor

432 Diseño de Prototipos

433 Diseño de Componentes

434 Diseño de Componentes Chasis básico: $450,000.
Motor: no se venden de manera individual Llantas: 28 llantas por evento con un costo de $1,200 por juego, alrededor de $150,000 al año Costo equipo: 50 personas

435 Diseño de Componentes Otras partes: $150,000 de refacciones y $350,000 de partes de la caja de velocidades. Costo transporte: $500,000 al año de transporte. Total: mínimo 2 millones, en promedio de 5-10 millones de dólares

436 Tarea Para el Lunes: Traer 5 hojas de rotafolio por equipos. Los equipos serán de tres personas como máximo. Traer hojas tamaño carta, bolígrafos y plumones.

437 Actividad En equipos de 2 Personas se deberá crear un prototipo de avión de papel el cual deberá ser aquel que en las pruebas de ensayo llegue más lejos. Ganará el equipo que con el recurso disponible y las restricciones de tiempo realice bien cada uno de los pasos indicados en la actividad.

438 Actividad Paso 1: Poner nombre a los equipos.
Paso 2: Escoger un líder de proyecto. Paso 3: Diferenciar roles entre los equipos de trabajo: diseñador, probador, constructor, etc. (Paso 1 a 3: 10%)

439 Actividad Paso 4: Elaborar especificación de prototipo (50%).
En este caso se debe tener un diseño claro que permita la construcción a gran escala del mismo. Cada equipo es responsable de su material, todos los equipos cuentan con igual recurso.

440 Actividad Paso 5: Personalizar su prototipo con algún detalle y mostrar las mejoras realizadas (la presentación se hace hasta el final) (10%) Paso 6: Construcción y elaboración del prototipo a gran escala (20%).

441 Actividad Paso 7: Se escogerán una muestra aleatoria de dos aviones para la realización de la comprobación de la calidad (10%). ¿Qué se aprendió con la práctica de hoy? 441

442 Desarrollo de Prototipos
Los prototipos son versiones reducidas, demos o conjunto de pantallas (que no son totalmente operativos) de la aplicación pedida. Esta técnica es útil cuando: El área de aplicación no está bien definida (puede ser algo novedoso)

443 Desarrollo de Prototipos
El costo del rechazo de la aplicación es muy alto. Es necesario evaluar primeramente el impacto del sistema en la organización. La técnica ayuda para visualizar la diferencia entre desarrolladores y usuarios.

444 Desarrollo de Prototipos
Aunque limitado, se dispone de un sistema funcional en las primeras etapas de desarrollo. Esta técnica se resume en: “No sé exactamente lo que quiero, pero lo sabré cuando lo vea” Es una técnica costosa

445 Casos de Uso Otra forma de obtener requerimientos es a través de diagramas de casos de uso dentro de UML Se recomienda utilizar diagramas de caso de uso ya que nos dan los macrorequisitos de la aplicación. Cada caso de uso debe ser especificado de manera correcta.

446 UML UML (Unified Modelling Language), lenguaje de modelado unificado. Fue desarrollado en 1997 al fusionar las metodologías de Ivar Jacobson, Jame Rumbaugh y Grady Booch. Es un lenguaje visual, su premisa básica radica en que una imagen vale más que 1,000 líneas de código.

447 UML Al ser UML un lenguaje posee gramáticas y alfabetos que definen como deben de estructurarse cada una de las palabras válidas del lenguaje. Un modelo es una representación de la realidad. No sólo se modela software sino prácticamente cualquier actividad.

448 UML Es el lenguaje estándar para modelar proyectos de software.
La versión más actual del lenguaje es la 2.1 Los métodos que se fusionaron para crear UML fueron OMT (Rumbaugh), Objectory (Jacobson) y el método Booch.

449 ¿Por qué modelar? Casi el 80% de los proyectos de software fallan.
Nadie construye una casa sin un plano. Actualmente existen muchas herramientas que auxilian el proceso de modelado como Visio, ArgoUML, Rational Rose, Together, etc.

450 Modelos Los modelos deben ser más baratos que la realidad.
Es más fácil para una persona entender un diagrama que las líneas de código fuente de un programa. Los diagramas al igual que el texto consumen tiempo.

451 Modelos Se deben construir modelos que sean representativos para que sean útiles (imaginense hacer un documento de 100 hojas que nadie va a leeer) UML define varios tipos de diagramas los cuales pueden ser extensibles.

452 Métodos Orientado a Objetos
UML tiene 5 diferentes vistas con diferentes diagramas en cada una de ellas. Vista usuario: representa el sistema (producto) desde la perspectiva del usuario. Se suele utilizar diagramas de casos de uso.

453 Métodos Orientado a Objetos
Vista estructural: modela los datos y la funcionalidad del sistema; es decir, la estructura estática (clases, objetos y relaciones). Vista de implementación: Los aspectos estructurales y de comportamiento se representan aquí tal y como van a ser implementados.

454 Métodos Orientado a Objetos
Vista del comportamiento: representa los aspectos dinámicos o de comportamiento del sistema. También muestra las interacciones o colaboraciones entre los diversos elementos estructurales descritos en vistas anteriores.

455 Métodos Orientado a Objetos
Vista del entorno: aspectos estructurales de comportamiento en el que el sistema a implementar se representa (diagramas de componentes y despliegue).

456 Tipos de diagramas Los diagramas más utilizados en UML son:
Diagramas de casos de uso Diagramas de actividades Diagramas de clases Diagramas de interacción Diagramas de secuencia Diagramas de colaboración

457 Tipos de diagramas Diagramas de estado Diagramas de componentes
Otros diagramas Diagrama de topología del despliegue Los diagramas deben de reflejar lo que se pretende modelar

458 Diagramas de casos de uso
Son responsables de documentar los macrorequisitos del sistema. Lista de capacidades que debe brindar el sistema. Los elementos principales son los actores y los casos de usos que en conjunto forman un escenarios.

459 Diagramas de casos de uso
Se deben establecer prioridades para las capacidades del sistema. ¿Cuál es la diferencia entre un editor de textos como Notepad y Word? Objetivos primarios: crear, guardar e imprimir documentos de texto.

460 Diagramas de caso de uso
Objetivos secundarios: guardar el archivo en formato HTML, RTF y PDF. Los diagramas de uso sirven para mostrar detalles de implementación del sistema a usuarios finales. Los conectores asocian a los actores y los casos de uso.

461 Diagramas de caso de uso
Las líneas continuas representan una asociación y las puntuadas dependencias. Si el conector tiene un triangulo hueco en la punta representa una generalización que es una relación de herencia. Los estereotipos agregan detalles a una relación.

462 Diagramas de caso de uso
Los estereotipos más utilizados son: inclusión y de extensión. Muchas herramientas no implantan UML al 100% existen muchos problemas de compatibilidad entre dichas herramientas. XMI es la descripción de un diagrama UML en XML el cual utilizan varias herramientas para exportar diagramas.

463 Diagramas de caso de uso
Incluir implica una dependecia de utilización de un caso de uso. Las notas ayudan ha aclarar los diagramas. Extender da más detalle de dependecia de un caso de uso al cual se le agregan más capacidades.

464 Diagramas de caso de uso
Las notas deben ser como elementos taquigráficos. Se deben incluir la siguiente documentación: párrafo que describa el caso de uso, párrafo que describa cada una de las funciones primarias y secundarias, entre otros.

465 Diagramas de casos de uso
Se deben detallar ejemplos de la utilización de casos de uso. Los actores pueden ser usuarios o partes del sistema. En general los primeros diagramas que se deben construir son los casos de uso

466 Diagramas de casos de uso

467 Diagramas de casos de uso

468 Preguntas frecuentes ¿Cuántos diagramas debo crear? No existe una respuesta específica. ¿Debo hacer diagramas de todo tipo? No, sólo se deben utilizar los diagramas que mejor reflejen el modelado de la problemáticaoe

469 Preguntas frecuentes ¿Qué tan grande debe de ser un diagrama? Entre más grande sea un diagrama mayor es la confusión. Se deben realizar diagramas bien detallados, pero no tan detallados. ¿Cuánto texto debe complementar el modelo? Entre menos texto mejor, son como los comentarios del código fuente: pocos pero claros.

470 Modelado de software Algunas recomendaciones para el modelado de software son: No tenga a los programadores esperando los modelos. Trabajar de una macrovista a una microvista(enfoque Top-Down).

471 Modelado de software Se debe documentar en forma económica.
Si es obvio no se debe de modelar. Hacer hincapié en la especialización. Utilizar patrones de diseño. Refactorizar.

472 Actividad Desarrollar los diagramas de casos de uso del proyecto.
Especificar cada escenario de manera completa (30%) Explotar los diagramas de casos de uso por lo menos un nivel (70%) 472

473 Otras Técnicas La Ingeniería de Requerimientos comprende las actividades de obtención (captura, descubrimiento y adquisición), análisis (negociación), especificación y validación de requerimientos. También establece la gestión para manejar cambios, mantenimiento y seguimiento de los requerimientos.

474 JAD Joint Application Development, Desarrollo Conjunto de Aplicaciones es una técnica que consiste en realizar sesiones conjuntas entre los analistas de sistemas y los expertos del dominio. Con esta técnica se obtienen sistemas más enfocados a la realidad, muchas metodologías nuevas se fundamentan en esta premisa.

475 JAD ¿Por qué JAD funciona?
Por que las entrevistas son lentas, difíciles de hacer y complicadas de obtener datos. Al ser muchos revisores del proyecto es más fácil detectar errores. Problema: se requiere de mucha organización

476 ETHICS Implementación Efectiva de Sistemas Informáticos desde los puntos de vista Humano y Técnico. Fue desarrollada en 1979 por E. Mumford, se enfoca en los aspectos sociales que están presentes en el desarrollo del software, dado que un sistema no tendrá éxito sino es utilizado eficientemente por los empleados.

477 Puntos de vista Todos los sistemas ocupan de un grupo de usuarios interesados (stakeholders), cada uno puede tener intereses diferentes, incluso en muchas casos contradictorios. Existen métodos que toman los puntos de vistas de los usuarios para encontrar cosas en común, un ejemplo es VORD (Definición de Requerimientos Orientados a Puntos de Vista).

478 Puntos de vista VORD consiste de los siguientes pasos:
Identificación de puntos de vista Estructuración de dichos puntos de vista Documentación de puntos de vista (refinación) Trazado del punto de vista (conversión a un diseño orientado a objetos)

479 Etnografía Es una técnica de observación que se puede utilizar para entender los requerimientos sociales y organizacionales. Se centra en los siguientes aspectos: La forma en la que las personas trabajan y no como el sistema los hace trabajar Los requerimientos se derivan de la cooperación de muchas personas

480 Tips para la obtención de requerimientos
Aprender de todos los documentos, formularios, informes y archivos existentes. De ser posible se observará el sistema en acción. Se tomarán notas y dibujos. Conviene que las personas no sepan que están siendo evaluadas.

481 Tips para la obtención de requerimientos
Realizar entrevistas o sesiones de trabajo en grupo para refinar los requisitos de la aplicación. Es necesario verificar los requerimientos nuevamente hasta estar seguros

482 Referencias Guido, J. y Clements, J., “Administración Exitosa de Proyectos”, Segunda Edición, Thomson, México, 2003, ISBN: X.

483 ¿Preguntas, dudas y comentarios?


Descargar ppt "Ingeniería de Proyectos"

Presentaciones similares


Anuncios Google