Documente Academic
Documente Profesional
Documente Cultură
Definición de software
Se entiende como producto de software no solo al conjunto de programas ejecutables, sino también a los archivos
anexos, estructuras de datos y documentos adicionales que permiten que dichos programas operen de manera
adecuada, desarrollados todos siguiendo un proceso determinado, con el fin de solucionar una necesidad de una
persona o compañía
Procesos de software
Se entiende como proceso de software, o proceso de desarrollo de software a la estructura que rige el desarrollo de un
proyecto de software. Esta estructura está compuesta por un conjunto de actividades cuyo objetivo es asegurar el
desarrollo de un producto de calidad dentro de las restricciones establecidas.
Modelo en espiral
Cada ciclo de la espiral se divide en cuatro cuadrantes:
1. Definición de objetivos.
2. Evaluación y manejo de riesgos.
3. Desarrollo y pruebas.
4. Planeación.
Tipos de software
Plataforma: Sistema para hacer funcionar determinados módulos de hardware o software
Ejemplo: Word, Excel, Google Chrome, Skype…
2. Diseño
4. Pruebas
6. Mantenimiento
7. Baja
Manifiesto ágil
Individuos e interacciones sobre procesos y herramientas
Software funcionando sobre documentación
Colaboración con el cliente sobre negociación contractual
Respuesta al cambio sobre seguir un plan
Desde el plan Plan completo y especifico al inicio del Plan general no especifico, planes más
proyecto pequeño para cada iteración
Definición detallada de roles y No roles – Corresponsabilidad
responsabilidades Estimaciones hechas por los miembros del
Estimaciones paramétricas equipo
Requerimientos supuestamente Requerimientos muy cambiantes
congelados
Desde el Diseño, desarrollo y pruebas separadas Diseño, desarrollo y pruebas integradas
desarrollo Diseño completo antes de empezar Diseño por funcionalidad / Por iteración
(Opcional) Revisiones e inspecciones Prácticas más ligeras de aseguramiento de
formales calidad
Desde la Relación vía analista /gerente de Relación directa entre cliente y desarrollador
relación con el cuentas Comunicación principalmente oral
cliente Los desarrolladores no hablan con el “Supuesto agil”
cliente (Teléfono roto)
Documentación extensa y “completa”
Conclusiones
Úsense las metodologías ingenieriles cuando:
Requerimientos de
Requerimientos de
sistema
software
Obtención o levantamiento
Análisis
Especificación
Validación
Entrevistas
Escenarios (Qué pasaría si …)
Prototipos
Reuniones facilitadas
Observación
Historias de usuario
Focus Groups
Análisis de productos competidores
Tipos de requerimientos (Según cartilla)
De negocio: Representan a gran nivel los objetivos de la compañía y solicitudes del cliente.
Requerimientos de usuario: Describen las tareas de los usuarios que deben poder ser realizadas a través del uso del
producto.
Requerimientos funcionales: Definen qué hace el sistema (a través de la definición de entradas y salidas), es decir, las
funciones que dicho sistema debe cumplir.
Requerimientos no funcionales: Los requerimientos no funcionales son aquellos que definen atributos que indican al
sistema cómo realizar su trabajo.
Restricciones: Tipo de condiciones que deben cumplirse para que el software desarrollado se comporte de acuerdo con
lo planeado
Entrevista
Escenarios (Qué tal si …)
Prototipos
Reuniones facilitadas
Observación
Historias de usuario
Focus Groups
Análisis de productos competidores
Ejemplo:
“Como usuario registrado puedo digitar mi nombre de usuario y contraseña para acceder al sistema. El nombre de
usuario debe existir en el sistema”
1.1 Diagrama de casos de uso: Muestra las interacciones de los actores externos al sistema (usuarios por ejemplo) con
éste y las relaciones que pueden existir entre dichas interacciones.
1.2 Diagrama de actividad: Muestra procesos del negocio de alto nivel. Utilizando este diagrama es posible modelar
flujo de datos y otros comportamientos de la lógica de la aplicación.
1.3 Diagrama de máquina de estados: Describe los estados en que un objeto o interacción puede encontrarse y cómo
ocurre la transición entre dichos estados.
2. Diagramas de estructura estática: Son diagramas que representan elementos de la especificación que no
son afectados por el tiempo. Los diagramas que están en esta categoría son:
2.1 Diagrama de clases: El diagrama de clases muestra la colección de elementos estáticos que describen la estructura
del software, así como las relaciones que los unen.
2.2 Diagrama de componentes: Despliega los componentes que hacen parte de la aplicación. Incluye sus
interrelaciones, interacciones e interfaces públicas.
2.3 Diagrama de objetos: Muestra las relaciones que existen entre los objetos de la aplicación durante su ejecución, en
un momento determinado del tiempo.
2.4 Diagrama de estructura compuesta: Representa la estructura interna de una clase, un caso de uso o un
componente, junto con sus puntos de interacción con otras partes del sistema.
2.5 Diagrama de despliegue: Despliega la arquitectura en la que se enmarca la ejecución del sistema. Específicamente
los espacios físicos (hardware) y lógicos (software) en los que dicha ejecución se llevará a cabo.
2.6 Diagrama de paquetes: Muestra como los elementos del sistema están organizados dentro de paquetes y las
relaciones que unen dichos paquetes.
3. Diagramas de interacción: Los diagramas de interacción están relacionados con los diagramas de
comportamiento, pero su énfasis está en la interacción entre los componentes del sistema. Los diagramas de interacción
son:
3.1 Diagrama de secuencia: Modela la manera como se comunican elementos del sistema durante el tiempo, con
énfasis en la representación del orden de dichas interacciones.
3.2 Diagrama de comunicación/colaboración: Muestra como las instancias de clases se comunican entre sí, con énfasis
en la estructura organizacional de dichas instancias y los mensajes que se envían entre sí.
3.3 Diagrama de tiempos: Representa los cambios en el estado de un elemento del sistema a lo largo del tiempo, como
respuesta a estímulos externos.
3.4 Diagrama general de interacción: Representa la interacción de las partes del sistema desde una perspectiva mucho
más general. Cada nodo de un diagrama general de interacción es un diagrama de interacción en sí mismo.
Qué es un caso de uso
Descripción de un escenario de utilización del sistema
Conversación entre un actor y el sistema
También representan metas del usuario frente al sistema
Completo
Tiene los mismos elementos de los casos de uso casuales, adicionalmente tiene:
Precondiciones / Postcondiciones
Otros flujos ( Alternativos (Subvariaciones) / De excepción (Errores )
Extensiones
Información adicional
Diagrama de clases
Permite identificar clases y la interacción entre ellas
Precondición
Flujo normal de eventos
Condición de éxito
Subvariaciones (Conducen a condición de éxito)
Extensiones ( No Conducen a condición de éxito)