INGENIERÍA DE SOFTWARE CURSO 2005 PRÁCTICA 1 Parte Uno = Conceptos generales Algunas consideraciones: los ejercicios que se plantean a continuación deben ser desarrollados teniendo en cuenta el nivel de conocimiento que el alumno posee debido al grado de avance en la carrera. Estos temas no se desarrollan en forma concreta en teoría y la idea es que se vaya al ayudante con ideas concretas. El alumno podrá contar con información que lo conduzca a la resolución de los mismos en cualquier bibliografía del área de IS. 1. El software es la característica diferenciadora de muchos productos y sistemas informáticos. De ejemplos de dos o tres productos y de, al menos, un sistema en que el software y no el hardware, sea el elemento diferenciador 2. A medida que el software se difunde más, los riesgos para el usuario común o específico se convierte en una preocupación cada vez más significativa. Estos riesgos pueden estar provocados por programas defectuosos, por errores latentes, por cambio continuo en necesidades del usuario o por virus que afecten en sistema informático. Desarrolle escenarios potenciales (y que sean realistas) en donde el fallo de una computadora (o sistema informático) pueda causar un gran daño (económico, humano, o que trastorne nuestra vida cotidiana) y que riesgos de los comentados anteriormente pueden hacerse presente. 3. Desde su aparición (decada del 50) el software ha sido causa de varios mitos. La denominada crisis del software (década del 60) se produjo por creencias (mitos) donde se pretendía darle al software un entorno, básicamente de desarrollo, que no fue posible alcanzar. Estos mitos fueron corregidos durante las décadas posteriores, sin embargo fueron apareciendo algunos nuevos. Por ejemplo: a. Tenemos una herramienta de desarrollo que es capaz de resolver todos los problemas que se nos presentan b. Tengo un “manual de procedimientos” que me permite seguir el desarrollo del software desde el comienzo del problema hasta el posterior mantenimiento de la solución. c. Si fallamos al planificar podemos añadir más gente para salvar las diferencias de tiempo en la agenda d. Con una entrevista inicial y una descripción somera del problema alcanza, los detalles los podemos ir viendo luego a medida que desarrollamos. e. El cliente siempre pide cosas nuevas, porque nos vamos a preocupar por todo al principio, luego acomodamos el desarrollo esto es fácil de hacer. f. Yo termino el programa, lo entrego, consigo la aprobación del usuario y “ ya está, cobre y a otra cosa” g. La calidad se evalúa al final, con el programa terminado y ejecutándose. h. Lo único que se entrega al terminar el sistema es el .exe. Los ítems anteriores indican algunos de los mitos que pueden tenerse hoy respecto de la construcción del software. Su trabajo es indicar si cada uno de los incisos anteriores representan mitos y, en ese caso, por que se generan. Parte Dos = Proceso y Producto Algunas consideraciones: ídem parte 1. 4. En que consiste la Ingeniería de software? Cuales son sus etapas? 5. Describa el concepto de modelado de procesos de software? Discuta las variantes de modelado existentes y definidas en clase. 6. Suponga que tiene que resolver un problema X, podría a priori, sin conocer más datos, decidir una forma de modelado? Justifique su respuesta. 7. Qué paradigma de IS piensa que sería más eficaz? Por que? 8. Supongamos que tienen que resolver un problema clásico de gestión donde una empresa PYME debe liquidar sueldos de acuerdo a los convenios laborales existentes y sabiendo que los empleados se encuentran enrolados en tres gremios. Luego de evaluar en detalle los requerimientos, que paradigma de desarrollo podría llevar a cabo? Por que? 9. Suponga, ahora, que el problema que debe resolver consisten en desarrollar el software que controle un telescopio de un observatorio. Utilizaría el mismo paradigma anterior? Por que? 10. Discuta el paradigma en espiral que se consideraba a comienzos de la década del 90 con el que se presenta a comienzo de la década del 2000, son conceptualmente iguales? Por que? En caso negativo, que diferencias notorias (no superficiales) encuentra. Estas diferencias notorias (en caso de haberlas) hacen más completa la versión más nueva? Por que? Parte Tres = Gestión de proyectos 11. Por que el espectro de la gestión de un proyecto involucra personal, problema y proceso? 12. Como se considera integrado el personal del proceso? Los usuarios se consideran parte del personal? Por que? 13. Describa situaciones donde el usuario final y el cliente son la misma persona y situaciones donde el usuario final difiere del cliente. 14. el organigrama del equipo se puede definir de acuerdo a las características del proyecto. De esta forma estudiando 7 factores es posible determinar la mejor política de trabajo del grupo. A continuación se plantean diversas situaciones genéricas, defina a su juicio cual es la mejor organización de trabajo y justifique su respuesta. a. Desarrollo de un Sistema Operativo para un nuevo equipo. b. Desarrollo de un software integral para el control de un brazo robótico que es parte de la fabricación de automotores. c. Desarrollo del sistema de control de una centralita telefónica que maneje dos líneas externas y 8 externas. d. Desarrollo de un sistema de control de una central telefónica que maneje cuatro líneas externas y 16 internas (con igual funcionalidad que la anterior, esto es llamada en espera, desviación automática, preatendedor, etc.) e. Desarrollo de un sistema de control de una central telefónica que maneje n líneas externas y 10*x internos (con características similares a los puntos anteriores) f. Desarrollo de un sistema de gestión para una PYME, el cual permite la facturación de la misma. g. Idem anterior, pero ahora el sistema debe contener también un control de stock. h. Idem anterior, incorporando ahora el pedido automático (vía web) hacia proveedores cuando los stocks alcanzan un estado crítico. i. Desarrollo del software de gestión una central nuclear. j. Desarrollo de un software de control de accesos a un edificio. Cada persona para ingresar debe poseer una tarjeta, la cual lo habilita (le abre o no la puerta) para entrar en cada sector. k. Desarrollo de un software de gestión de cajeros automáticos de un banco multinacional. l. Desarrollo de un software de liquidación de sueldos para una empresa multinacional. El software deberá estar distribuidos a lo largo de 5 países donde la compañía tiene subsidiarias y donde cada subsidiaria deberá liquidar dichos sueldo de acuerdo a la legislación de cada país. Sin embargo, desde casa central es necesario poder hacer un seguimiento de esta liquidación. m. Suponga que su grupo de trabajo ha desarrollado durante la década del 80 innumerables juegos que se utilizaron en PC o en máquinas tipo SEGA. Ahora su equipo es contratado para desarrollar un juego de estrategia para PlayStation II, cual considera es la mejor política de trabajo para su grupo. POR QUE? 15. Plantee Ud. al menos un ejemplo donde la organización sea DD, DC y CC dependiendo de características que defina. 16. A su juicio los 7 factores que determinan el impacto sobre el grupo de trabajo consideran todas las alternativas posibles. Trate de encontrar algún otro factor que no sea tenido directamente en cuenta por los 7 antes mencionados. Parte Cuatro = IR – Conceptos iniciales 17. Se le ha pedido que desarrolle una pequeña aplicación que analice todos los cursos ofrecidos por la universidad e informe de las notas medias obtenidas en los cursos (para un período determinado). Escriba una exposición del alcance que abarca este problema. 18. Se puede considerar que un mito actual del software consiste en decir que “con un par de reuniones con el cliente alcanza”? Por que? 19. Cuales son las desventajas que se pueden tener al no darle la debida importancia a la toma de requerimientos? En que afecta esto al desarrollo del software? 20. Qué paradigma de desarrollo pondera más, a su juicio, la toma de requerimientos? Justifique su respuesta. 21. Describa el concepto de “bala de plata”. Como se ajusta el mismo a la IR? 22. Como se relaciona el concepto de Calidad con la ingeniería de requerimientos? 23. Se puede considerar la IR como sinónimo al Análisis del Sistema? Justifique. 24. Construya un ejemplo donde se vea claramente la diferencias entre verificación y validación del software. 25. Originalmente se pensaba en la IR como una etapa concentrada únicamente en el qué. Cual era el motivo de esa creencia y por que fue modificado?. 26. Cual de los siguiente son requerimientos válidos? cuidadosamente su respuesta Justifique a. El software debería estar en Fortran b. El soft debería responder a los requerimientos en no más de 5 segundos c. El soft debería tener entre 20 y 30 módulos d. El soft debería tener los menú de comunicación con el usuario que se detallan a continuación….