INGENIERÍA DE SOFTWARE 1
TALLER INGENIERÍA DE SOFTWARE I ALUMNOS Yenny Parra Victor Alfonso lopez Montes Marilyn Urrego Vasco Astrid Katerine Muñoz G Edier Andrés Pérez G
PROFESOR ORALIA CORTES GRAJALES VALOR 10%
CATÓLICA DEL NORTE. FUNDACIÓN UNIVERSITARIA 2018 2
1.
DATOS GENERALES Duración del trabajo:
2.
Plazo una semana.
INSTRUCCIONES PARA EL DILIGENCIAMIENTO
Estimado alumno: Solucione cada uno de los siguientes puntos teniendo presente: a. El trabajo se soluciona en este mismo archivo, es en equipo y el envío lo hace sólo un estudiante del equipo. b. La actividad se puede presentar en los equipos que ya vienen conformados. Instrucciones Después de leer los contenidos correspondientes del curso y con la ayuda de consultas en la web, Conteste las siguientes preguntas:
Contenido 1. ¿Qué es un proyecto?............................................................................................3 2.
Qué es la gestión de un proyecto?........................................................................ 3
3. ¿Cuál cree usted que son los principales problemas en la gestión de un proyecto?.........................................................................................................................3 5.
¿Cuáles son las fases de un proyecto?.................................................................. 4
6. Cuando se realiza un proyecto, existen unas dimensiones que se deben cumplir para lograr el éxito de este. ¿Estas son?..........................................................................4 7.
¿Cuál es el ciclo de vida de las pruebas de software?.......................................... 5
8.
Presente un ejemplo de un caso de prueba........................................................... 5
9.
¿Qué se entiende como la gestión de la configuración?.......................................6
10.
¿Qué puede ocurrir si no se realiza una gestión de configuración efectiva?........6
11.
¿Cuándo puede ocurrir cambios en un software?.................................................7
12.
¿Cuál es el origen de los cambios en un software?.............................................. 7
13.
¿Qué es una línea base?........................................................................................ 8
14.
¿Cuáles son los aspectos por considerar en la entrega y puesta en marcha?........9
Actualmente es muy utilizada la metodología.............................................................. 10
1. ¿Qué es un proyecto? Es la búsqueda de una solución inteligente tendiente a resolver necesidades, para llegar a un fin o a un propósito la cual está compuesta por un conjunto de actividades planificadas, coordinadas, ejecutadas y controladas, con el fin de alcanzar objetivos conforme a unos requerimientos específicos y a unas restricciones de tiempo, costo y recursos.
2. Qué es la gestión de un proyecto? Son todas aquellas acciones que se deben de realizar para cumplir con un objetivo definido dentro de un período de tiempo determinado durante el cual se utilizan recursos, herramientas y personas, que tienen un coste que se ha de tener en cuenta cuando se realiza el presupuesto. Sus objetivos como tal es la gestión del inicio y la evolución de un proyecto, controlar y responder ante problemas que surjan durante un proyecto y facilitar la finalización y aprobación del proyecto.
3. ¿Cuál cree usted que son los principales problemas en la gestión de un proyecto? Pienso que unos de los principales problemas en la gestión de proyectos y tal vez uno de los que mas debemos de prestarle atención es el de una mala comunicación lo cual puede conllevar a tener una mala planificación, a una mala gestión de los cambios que se dan el transcurso del proceso, al no saber identificar lo que el cliente quiere.
4. Dentro del rol de ingeniero de sistemas, se puede gestionar proyectos de software, lo cual implica, aplicar conocimientos, técnicas y herramientas a un proyecto con el fin de alcanzar los objetivos de este. ¿Esto qué quiere decir? Un ingeriero tiene que buscar y trabajar en las caracterisitacas necesarias para cumplir su rol dentro de la compañía, estas son: Equilibrio: Es un calculo necesario para analizar la relación entre costos, valor y utilidades en la toma de decisiones durante la realización de un proyecto. Interesados: Beneficiar a los diferentes interesados en el proyecto satisfaciendo sus necesidades y espectativas Requerimientos: Identificar las espectativas y necesidades del proyecto no especificadas inicialmente
5. ¿Cuáles son las fases de un proyecto?
-
Concepción: En esta fase se describe y define el alcance del proyecto
-
Desarrollo: Se validan las tareas y actividades cumpliendo con los objetivos del proyecto
-
Realización: Se parte desde el diseño inicial para luego ejecutar y evaluar esas actividades mientras se detectan los cambios necesarios en la aplicación
-
Puesta en marcha: Es cuando se hacen las pruebas finales y se one en funcionamiento el desarrollo realizado
6. Cuando se realiza un proyecto, existen unas dimensiones que se deben cumplir para lograr el éxito de este. ¿Estas son?
-
Técnica: Qué el resultado del proyecto sea acorde con el requerimiento inicial
-
Económica: Que el proyecto sea viable y genere ganancias para la compañía
-
Comercial: Qué el proyecto genere una buena imagen para la compañía ante futuros clientes
-
Estratégica: Con la realización de nuevos proyectos la empresa adquiere experiencia y herramientas que le permiten competir en el mercado
7. ¿Cuál es el ciclo de vida de las pruebas de software? El ciclo de vida de las pruebas de software se define como una serie de actividades en secuencia bien estructuradas que sirven para garantizar que se cumplan los objetivos de calidad del software. Cada etapa se realiza de manera planificada y sistematica y presenta sus propios objetivos y entregables para desarrollar el producto de software deseado.
Imagen recuperada de https://estandarsw.wordpress.com/tag/ieee/
8. Presente un ejemplo de un caso de prueba. Suponiendo el caso donde estamos haciendo testing de una plataforma que permite realizar compras en línea de zapatos. Los casos de prueba aplicables podrían llegar a ser: El usuario ‘’Fernando Jimenez’’ quiere realizar una compra de unos zapatos marca ‘’Lanna’’ ref 33 negros talla 40 pero no tiene cuenta de usuario, entonces, en la ejecución del caso de prueba se describe paso a paso como responde la plataforma ante esta situación. Otro caso de prueba podría ser, el usuario ‘’Camilo Bermudez’’ que ya se encuentra registrado en la plataforma, olvidó su contraseña y desea recuperarla. También podría ponerse a prueba el comportamiento del software, ingresando en repetidas ocasiones la contraseña incorrecta con dicho usuario que ya se encuentra registrado.
9. ¿Qué se entiende como la gestión de la configuración? Es un proceso en Ingenieria de Sotfware que permite organizar y controlar las modificaciones que sufre un software. Esta compuesta por etapas que requieren documentación, donde basicamente se realiza nuevamente levantamiento de requisitos sobre la nueva necesidad del cambio, se planifica, se ejecuta y pasa por testing para verificar su correcto funcionamiento y llevarlo nuevamente a producción, lo que hace basicamente es que el equipo de desarrollares trabaje sobre cambios de manera no traumatica.
10. ¿Qué puede ocurrir si no se realiza una gestión de configuración efectiva? a. En hardware:
No tendríamos información precisa sobre los elementos de configuración y su documentación.
Posible incumplimiento de las obligaciones legales: Un componente que es reportado y no referenciado puede ser un componente. no autorizado (por ejemplo, software).
No tendremos una gestión financiera y en la previsión de gastos: costes de mantenimiento, costes de licencias de software, renovación de contratos de mantenimiento, etc.
a. En software:
Los programadores no podrían trabajar de forma adecuada en un mismo proyecto compartiendo el mismo código fuente, Por ejemplo, cuando un programador al trabajar con una clase derivada, necesita sincronizar con el que se encuentra trabajando con la clase base porque el cliente necesita trabajar con la versión de la clase actualizada.
No se podría trabajar en el mismo módulo o simplemente en el mismo fichero. Esto puede suceder cuando un programador tiene que continuar el trabajo comenzado por otro porque en este momento el creador no se encuentra disponible para la tarea.
No podrían tener acceso a la versión más estable del sistema. Con lo cual no podrán verificar durante procesos de integración, si su código funciona correctamente.
La posibilidad de regresar a versiones estables anteriores del sistema.
11. ¿Cuándo puede ocurrir cambios en un software?
Todo cambio supone una perturbación del proyecto y por tanto un riesgo para este, por lo que estos deben evitarse en la medida de lo posible. Para ello es necesario que el director del proyecto tenga claros los siguientes aspectos:
Objetivo y motivación del cambio. ¿Que pretende obtener la organización o el cliente con este cambio?
Alcance incluido en la aprobación del cambio, o en el contrato en proyectos para terceros.
Ver técnicas y herramientas de defunción del alcance Motivación y necesidad detrás de la solicitud de cambio.
Teóricamente, a partir del conocimiento de estos aspectos, el director del proyecto deberá evitar cambios que no contribuyan al objetivo y motivación inicial del proyecto, o que no formen parte del alcance contratado, ya que estos incrementarían el riesgo sin incrementar el beneficio esperado.
12. ¿Cuál es el origen de los cambios en un software?
Cuando estamos desarrollando y dando mantenimiento a un producto de software, los cambios son inevitables, de hecho, son lo único que se mantiene constante dentro de un proyecto de desarrollo; ya sea porque el cliente necesita que se efectúen cambios, porque se cometieron errores, o simplemente porque el entorno en el que se desenvuelve el producto, evoluciona.
13. ¿Qué es una línea base? El concepto de líneas base es de suma importancia en la dirección y gestión de proyectos, por lo cual un gerente de proyectos debe entenderlo y aplicarlo a plenitud si desea que sus proyectos sean exitosos. La probabilidad de realizar un proyecto exitoso se incrementa considerablemente mediante la planificación y el control. Quienes han participado en un proyecto saben que es virtualmente imposible realizarlo exitosamente si antes no se planifica, se ejecuta lo planificado y se controla que se ejecute lo planificado.
Pretender ejecutar el proyecto sin un plan, sería difícil y desgastante ya que obligaría a estar continuamente improvisando. Sería como tratar de llegar hasta un lugar desconocido sin contar con un mapa. Aún con un plan, pretender ejecutarlo sin controlarlo nos obligaría a depender del azar para garantizar que el plan se sigue y que no surgen situaciones no previstas que obligan a ajustarlo. Sería como llevar el mapa guardado y no utilizarlo para saber si vamos bien o si estamos totalmente perdidos. De lo anterior, se desprende la necesidad de contar con alguna guía que nos permita establecer nuestra ruta en el mapa y una vez establecida dicha ruta, determinar en cualquier momento nuestra ubicación, y si vamos por donde deberíamos o no. Surge así la necesidad de tener puntos de referencia que nos permitan una comparación para efectos de control. Estos elementos comparativos se denominan en la dirección y gestión de proyectos como líneas base, elementos desarrollado durante la planificación que nos permiten establecer “la ruta” a seguir para realizar el proyecto y alcanzar sus objetivos. Una vez establecidas las líneas base nos permite determinar en cualquier momento si estamos siguiendo el plan o no y que tanto nos desviamos de este, y, por ende, que tanto nos alejamos del cumplimiento de las metas u objetivos del proyecto.
14. ¿Cuáles son los aspectos por considerar en la entrega y puesta en marcha?
Como ya se ha dicho, todo proyecto está destinado a finalizarse en un plazo predeterminado, culminando en la entrega de la obra al cliente o la puesta en marcha del sistema desarrollado, comprobando que funciona adecuadamente y responde a las especificaciones en su momento aprobadas. Esta fase es también muy importante no sólo por representar la culminación de la operación sino por las dificultades que suele presentar en la práctica, alargándose excesivamente y provocando retrasos y costos imprevistos. Por ello contar con un equipo de QA con conocimiento de los detalles del proyecto, es de mucha utilidad ya que pueden de forma rapida entregar informe de los aspectos suceptibles a mejora y de esta forma pulir y certificar el producto final, luego en las pruebas de piloto o producto Beta, hasta la fecha de publicación del producto, el acompñamiento permanente del equipo de desarrollo atendiendo todos los detalles que se presenten, hasta dejar un producto final acorde a las necesidades del cliente.
Actualmente es muy utilizada la metodología SCRUM Deseamos brindar este aporte adicional, el cual encontramos muy interesante; si de hablar de Proyectos se trata: SCRUM es un proceso en el que se aplican de manera regular un conjunto de buenas prácticas para trabajar colaborativamente, en equipo, y obtener el mejor resultado posible de un proyecto. Estas prácticas se apoyan unas a otras y su selección tiene origen en un estudio de la manera de trabajar de equipos altamente productivos. Se realizan entregas parciales y regulares del producto final, priorizadas por el beneficio que aportan al receptor del proyecto. Por ello, SCRUM está especialmente indicado para proyectos en entornos complejos, donde se necesita obtener resultados pronto, donde los requisitos son cambiantes o poco definidos, donde la innovación, la competitividad, la flexibilidad y la productividad son fundamentales. En SCRUM un proyecto se ejecuta en ciclos temporales cortos y de duración fija (iteraciones que normalmente son de 2 semanas, aunque en algunos equipos son de 3 y hasta 4 semanas, límite máximo de feedback de producto real y reflexión). El SCRUM no es otra cosa que un conjunto de labores grupales que están enfocados a la realización de un objetivo está conformado por 4 fases principales que son: • Planteamiento • Lista de tareas • Reuniones • Demostración • Retrospectiva
Ilustración 1 Diagrama SCRUM
Características Principales Las características más marcadas que se logran notar en SCRUM serían: • Gestión regular de las expectativas del cliente. • Resultados anticipados. • Flexibilidad y adaptación. • Retorno de inversión. • Mitigación de riesgos. • Productividad y calidad. • Alineamiento entre cliente. • Equipo de trabajo motivado. Ventajas: • Gestión de las expectativas de los clientes. • Resultados anticipados • Flexibilidad y adaptación a los contextos. • Gestión sistemática de riesgos. • Desventajas • • •
Funciona sobre todo con equipos reducidos. Requiere una exhaustiva definición de las tareas y sus plazos. Exige una alta cualificación o formación.
Referencias Garatu. (16 de 02 de 2018). garatu. Obtenido de www.development.grupogaratu.com: https://development.grupogaratu.com/metodologiascrum-desarrollo-software/ Proyectos Agiles. (15 de 08 de 2018). www.proyectosagiles.org. Obtenido de https://proyectosagiles.org/que-es-scrum/ Jose Ignacio Herranz, J. I. (2017, 8 agosto). TDD como metodología de diseño de software. Recuperado 24 febrero, 2019, de https://www.paradigmadigital.com/dev/tddcomo-metodologia-de-diseno-de-software/ Pmoinformatica.com, P. (s.f.). Test Driven Development (TDD): Ventajas y desventajas. Recuperado 24 febrero, 2019, de http://www.pmoinformatica.com/2012/12/test-driven-development-ventajas-y.html Manuel Morejon, M. J. (2015, 7 abril). ¿Qué es la Gestión de Configuración? Recuperado 2 marzo, 2019, de http://mmorejon.github.io/blog/que-es-la-gestion-deconfiguracion/ Albert Garriga, A. G. (2018, 26 diciembre). Cambios en proyectos. Cómo gestionarlos correctamente. Recuperado 2 marzo, 2019, de https://www.recursosenprojectmanagement.com/gestion-de-cambios/ Wim Hoogenraad. W. H. (2018, 20 Julio). STLC – Ciclo de vida de las pruebas de Software. Recuperado 3 marzo 2019, de https://www.itpedia.nl/es/2018/07/20/stlcsoftware-testing-life-cycle/ Criterios de valoración: Items de Valoración Desarrolla cada respuesta de la pregunta propuesta. Evidencia trabajo en equipo. Entrega de manera puntual la actividad. Entrega la actividad con buena presentación. Registra otras fuentes de consulta. ¡Muchos éxitos!
Cumple
No cumple