viernes, 18 de noviembre de 2016

Encuesta

Encuesta Ganadora

Actividad 2/Preguntas

Activdad 2!

Actividad 1 Ahorcado!

Actividad 1! El Ahorcado

SCRUM

Scrum es una metodología ágil y flexible para gestionar el desarrollo de software, cuyo principal objetivo es maximizar el retorno de la inversión para su empresa (ROI). Se basa en construir primero la funcionalidad de mayor valor para el cliente y en los principios de inspección continua, adaptación, auto-gestión e innovación.

Caracteristicas
uEquipos auto dirigidos
uUtiliza reglas para crear un entorno ágil de administración de proyectos
uFlexibilidad y adaptación
uDemostración de resultados

uProductividad y calidad

Ventajas

uCumplimento de expectativas: El cliente establece sus expectativas indicando el valor que le aporta cada requisito / historia del proyecto, el equipo los estima y con esta información el Product Owner establece su prioridad. 

uFlexibilidad a cambios: Alta capacidad de reacción ante los cambios de requerimientos generados por necesidades del cliente o evoluciones del mercado.
uMayor calidad del software: La metódica de trabajo y la necesidad de obtener una versión funcional después de cada iteración, ayuda a la obtención de un software de calidad superior.

Desventajas
uSi una tarea no esta bien definida, los costes de tiempo y dinero estimados del proyecto no serán demasiado exactos.
uEs una metodología que difiere del resto, y esto causa cierta resistencia en su aplicación para algunas personas.
uEsta metodología necesita solo miembros de equipo experimentados. Si el equipo consiste en gente que son junior, el proyecto no puede ser completado a tiempo.

Diseño en Cascada

Este es el más básico de todos los modelos y ha servido como bloque de construcción para los demás paradigmas de ciclo de vida. Está basado en el ciclo convencional de una ingeniería y su visión es muy simple.

Es caracterizado por ordenar de manera rigurosa las etapas del ciclo de vida de software, dado que el comienzo de cada etapa debe esperar a la finalización de la inmediata anterior.
Al final de cada etapa, el modelo está diseñado para llevar a cabo una revisión final, que se encarga de determinar si el proyecto está listo para avanzar a la siguiente fase. Este modelo fue el primero en originarse y es la base de todos los demás modelos de ciclo de vida.
De esta forma, cualquier error de diseño detectado en la etapa de prueba conduce necesariamente al rediseño y nueva programación del código afectado, aumentando los costos del desarrollo. La palabra cascada sugiere, mediante la metáfora de la fuerza de la gravedad, el esfuerzo necesario para introducir un cambio en las fases más avanzadas de un proyecto.

Ventajas
üPermite la departamentalización y control de gestión.
ü El horario se establece con los plazos normalmente adecuados para cada etapa de   desarrollo.
ü Este proceso conduce a entregar el proyecto a tiempo.
ü Es sencilla y facilita la gestión de proyectos.
ü Permite tener bajo control el proyecto.
ü Limita la cantidad de interacción entre equipos que se produce durante el desarrollo

Desventajas

*No refleja realmente el proceso de desarrollo del software. Ya que la mayoría de los que desarrollan proyectos no cumple con este lineamiento.
Se tarda mucho tiempo en pasar por todo el ciclo

La aplicación de la metodología en cascada se orienta mejor al desarrollo de
proyectos de corto plazo, de poca innovación y proyectos definitivos y
detallados.

Metodología pueden confundir al equipo profesional en las etapas tempranas del   proyecto.
*No es frecuente que el cliente o usuario final explicite clara y completamente los requisitos.

Modelo Espiral

El modelo en espiral, fue propuesto originalmente por Barry Boehm.

Es un modelo de proceso de software evolutivo que conjuga la naturaleza iterativa
de construcción de prototipos con los aspectos controlados y sistemáticos del modelo lineal secuencial.
El modelo en espiral es un enfoque realista del desarrollo de sistemas y de software en gran escala. Como el software evoluciona, a medida que progresa el proceso, el desarrollador y el usuario comprenden y reaccionan mejor ante riesgos en cada uno de los niveles evolutivos.

Image result for modelo espiral
Las tareas requeridas para evaluar riesgos técnicos y de gestión. Utiliza la construcción de prototipos como mecanismo de reducción de riesgos, pero lo que es más importante, permite a quien lo desarrolla aplicar el enfoque de construcción de prototipos en cualquier etapa de evolución del producto. Mantiene el enfoque sistemático de los pasos sugeridos por el ciclo de vida clásico, pero lo incorpora al marco de trabajo interactivo que refleja mejor el mundo real Si un riesgo importante no es descubierto y gestionado, indudablemente surgirán problemas.

Modelo Prototipo

Modelo tipo evolutivo:
Los modelos evolutivos son modelos iterativos
Permiten desarrollar versiones cada vez más completas y complejas, hasta llegar al objetivo final deseado
Ventajas:
Cumple con las necesidades inmediatas del cliente.
Desventajas:
Sistemas pobremente estructurados.

El ingeniero de software y el cliente definen los objetivos globales del software, y aquellos más específicos que se desean destacar con el prototipo.

Ventajas
Permite la construcción del sistema con requisitos poco claros o cambiantes.
Se pueden introducir cambios en las funcionalidades del sistema en cualquier momento.
Se reduce el riesgo y la incertidumbre sobre el desarrollo.
Permite entender bien el problema antes de la implementación final.


Desventajas
El cliente puede quedar convencido con las primeras versiones, puede cancelar el desarrollo y quedarse con el producto sin terminar.
Requiere de participación del cliente para evaluar los distintos prototipos y traducirlo en nuevos.
Si un prototipo fracasa, el coste del proyecto puede resultar muy caro.
No siempre se sabe el tiempo de desarrollo ni cuantos prototipos se podrán desarrollar.

Modelo DRA

Modelo Desarrollo de Aplicaciones
•Es el proceso de desarrollo de software diseñado para facilitar y acelerar la creación de aplicaciones.
•Permite construir sistemas utilizables en poco tiempo, regularmente de 60 a 90 días.

•Permite al equipo de desarrollo crear un “Sistema completamente funcional” dentro de periodos cortos de tiempo.
- Caracteristicas
-Se Conforma de equipos Hibridos
-Herramientas Especializadas
-TimeBoxing
-Prototipos iterativos

Ventajas
•Los entregables pueden ser fácilmente trasladados a otras plataformas.
•El desarrollo se realiza a un nivel de abstracción mayor.
•Entrega temprana al cliente.
•Compromiso del cliente con el sistema.
•Mayor flexibilidad.
•Menor codificación manual.
•Mayor involucramiento de los usuarios.
•Posiblemente menos fallos.
•Posiblemente menor costo.
•Ciclos de desarrollo mas pequeños
•Interfaz grafica estándar.

Desventajas
Tiene inconvenientes para proyectos grandes.
El proyecto falla si los desarrolladores y el cliente no se comprenden.
Un alto costo de herramientas integradas y equipo necesario.
Progreso mas difícil de medir.
Menos eficiente y con menor precisión científica.


martes, 15 de noviembre de 2016

Modelo RUP

•Es un proceso de ingeniería de software, que hace una propuesta orientada por disciplinas para lograr las tareas y responsabilidades de una organización que desarrolla software.

Su meta principal es asegurar la producción de software de alta calidad que cumpla con las necesidades de los usuarios, con una planeación y presupuesto predecible.

•Diseñado para
–Profesionales en el desarrollo de software
–Interesados en productos de software
–Profesionales en la ingeniería y administración de procesos de software

•Estos participantes se involucran con RUP cumpliendo roles.

Porque usar RUP?
•Porque:
–Provee un entorno de proceso de desarrollo configurable, basado en estándares
–Permite tener claro y accesible el proceso de desarrollo que se sigue
–Permite ser configurado a las necesidades de la organización y del proyecto
–Provee a cada participante con la parte del proceso que le compete directamente, filtrando el resto


Caracteristicas
Dirigido por Casos de Uso
Los casos de uso son los artefactos primarios para establecer el comportamiento deseado del sistema
Centrado en la Arquitectura
La arquitectura es utilizada para conceptualizar, construir, administrar y evolucionar el sistema en desarrollo
Iterativo e Incremental
Maneja una serie de entregas ejecutables
Integra continuamente la arquitectura para producir nuevas versiones mejoradas
Conceptualmente amplio y diverso
Enfoque orientado a objetos
En evolución continua
Adaptable
Repetible
Permite mediciones
Estimación de costos y tiempo, nivel de avance, etc.






lunes, 14 de noviembre de 2016

Unidad 2/ Ciclo de vida




Unidad 2 de Competencia/Ciclo de vida del Software

Concepto
El software nace, crece y muereEs su ciclo de vidaNace con sus requerimientos y diseñoCrece con su desarrollo y mantenimientoMuere cuando se reemplaza por otroSoftware obsoleto

Software Obsoleto
Razones
Crecimiento de la empresa
Cambio de los requerimientos originales
Número de usuarios
Número de transacciones
Distribución del software
Cambio de operaciones
Ampliación
Integración con otros sistemas
El ISO/IEC 12207 es el estándar para los procesos de ciclo de vida del software de la organización ISO.
Este estándar se concebió para aquellos interesados en adquisición de software, así como desarrolladores y proveedores. El estándar indica una serie de procesos desde la recopilación de requisitos hasta la culminación del software.
El estándar comprende 17 procesos lo cuales son agrupados en tres categorías:
1.Principales
2.De apoyo
3.De organización.











Perfil

Objetivo del Programa
Formar profesionistas íntegros, comprometidos con su labor, innovadores, emprendedores y capaces de desarrollar eficientemente software competitivo en el mercado internacional, que contribuyan al crecimiento y progreso de la sociedad a través de un modelo educativo basado en competencias profesionales.
Perfil de Ingreso
El aspirante a ingresar al Programa Educativo de Ingeniero en Software deberá contar con:
  • Habilidades de aplicación de las matemáticas (razonamiento lógico-matemático), localización de información (interpretación de información gráfica), y lectura de información (comprensión lectora).
  • Competencia lingüística en inglés a un nivel de dominio A2 de acuerdo al Marco de Referencia Europeo (MCER).
  • Poseer capacidad de razonamiento verbal.
  • Capacidad para resolver problemas básicos en las áreas de aritmética, álgebra, geometría, trigonometría y cálculo.
  • Capacidad de identificar y resolver problemas mediante algoritmos computacionales.
Preferentemente deberá contar con:
  • Interés por el desarrollo de programas computacionales que den solución a los problemas de las empresas.

Perfil de Egreso
El Ingeniero en Software es un profesionista comprometido, innovador y emprendedor, que desarrolla software a través de la especificación de requisitos, análisis, diseño, construcción, prueba y administración de proyectos, aplicando procesos, modelos y estándares de calidad internacional, las cuales contribuyen al crecimiento y progreso de su sociedad. Lo anterior a través de las siguientes competencias profesionales:
Competencias especificas:
  • Diseñar software a través de la aplicación de metodologías, herramientas y estándares apropiados al problema.
  • Construir software a partir de especificaciones de diseño, haciendo uso de las mejores prácticas que aseguren la calidad del producto.
  • Administrar proyectos de desarrollo de software mediante la aplicación de procesos, modelos y estándares que contribuyan a la calidad total del producto.
Competencias Genéricas:
  • Afronta las situaciones tanto de la  vida cotidiana como las contingentes  con base en el reconocimiento y aplicación  de sus   capacidades en un conocimiento objetivo del entorno para incidir  en su bienestar personal y en el de su comunidad  de manera eficaz y ética.
  • Insertarse en el proceso de desarrollo de  su comunidad  por medio de acciones concretas orientadas a la transformación social con base en la práctica de actitudes solidarias y de una visión crítica y plural  del contexto en el cual está inmerso.
  • Desarrolla iniciativas de carácter económico, social y/o cultural, mediante el diseño y aplicación de acciones y proyectos innovadores orientados a crear oportunidades  y resolver problemas dentro de una empresa o en la comunidad.
  • Aplica conocimientos,  métodos, técnicas y recursos tecnológicos pertinentes y de  actualidad para lograr un desempeño idóneo  en contextos socio profesionales  complejos y favorecer su movilidad y adaptación profesional.
Áreas y lugares de desempeño profesional
Áreas de desempeño profesional:


  • Diseño de soluciones de software.
  • Análisis de requerimientos de software.
  • Construcción de aplicaciones de software.
  • Pruebas de software.
  • Administración de proyectos de desarrollo de software.


  • Lugares de desempeño:



  • Empresas con área de desarrollo de software.
  • Fábricas de software.
  • Organizaciones públicas y privadas con necesidades de software a la medida.
  • Ejercicio libre de la profesión (freelance).
  • Creando e incubando su propia empresa de desarrollo de software.

  • Itson
  • Mapa Curricular Ingenieria en Software