Proceso de software

Mapa de Said Suarez

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Proceso de software por Mind Map: Proceso de software

1. ¿Qué es el proceso del software?

1.1. son todas las actividades llevadas a cabo por los ingenieros de software para desarrollar, mantener y operar software

2. La crisis del software

2.1. A finales del la década de los sesentas la industria del software llegó a la conclusión que la complejidad del mismo y la creciente demanda por un número mayor de aplicaciones superaba las habilidades y conocimientos que los programadores tenían en ese momento.

2.1.1. El software quedaba inconcluso o el proyecto era abandonado.

2.1.2. El software tomaba más tiempo y costaba más de lo estimado.

2.1.3. El software no cumplía con las expectativas del cliente.

2.1.4. Una vez creado el software era imposible o muy costoso darle mantenimiento.

3. 2. Actividades de un proceso de software

3.1. Para aplicar un enfoque sistemático al proceso de software se ha propuesto una serie de actividades que pueden variar según el autor en las siguientes: comunicación, planeación, modelado, construcción y despliegue.

3.1.1. Especificación de requerimientos

3.1.1.1. a) Obtención de requerimientos.

3.1.1.1.1. En esta etapa se hace un inventario de los requerimientos que debe cumplir el software a desarrollar. Se apoya en entrevistas, cuestionarios, recolección de datos a los interesados claves del proyecto

3.1.1.2. b) Análisis de requerimientos

3.1.1.2.1. En esta etapa se determina si un requerimiento es viable dentro de las restricciones tecnológicas

3.1.1.3. c) Especificación de requerimientos

3.1.1.3.1. Una vez analizado el requerimiento ha sido individualizado se procede a realizar la especificación formal de manera que pueda ser socializado con todos los interesados del proyecto.

3.1.1.4. d) Validación de requerimientos

3.1.1.4.1. En esta etapa se procede a validar que los requerimientos cumplan con las características inherentes como son: no redundante, completo, alcanzable, entre otros.

3.1.2. Planeación

3.1.2.1. En esta etapa se especifica un plan para el proyecto que guiará a todos los interesados a conseguir el producto especificado en la primera fase.

3.1.3. Modelado

3.1.3.1. Este etapa proporciona detalles sobre arquitectura del software, estructuras de datos, interfaces y componentes que se necesitan para implementar el sistema

3.1.3.1.1. a) Diseño de la arquitectura

3.1.3.1.2. b) Especificación abstracta del sistema

3.1.3.1.3. c) Diseño de interfaces

3.1.3.1.4. d) Diseño de componentes

3.1.3.1.5. e) Diseño de las estructuras de datos

3.1.3.1.6. f) Diseño de algoritmos

3.1.4. Desarrollo

3.1.4.1. En esta actividad ,también llamada construcción, se genera el código fuente en el lenguaje o lenguajes de programación seleccionados para el proyecto

3.1.4.1.1. Reducir la complejidad

3.1.4.1.2. Anticiparse a la diversidad o cambios

3.1.4.1.3. Facilitar las pruebas de software

3.1.4.1.4. Ajustarse a la normatividad vigente para el sistema a desarrollar

3.1.5. Implantación

3.1.5.1. En esta fase se lleva a cabo la puesta en marcha o salida en vivo del producto de software desarrollado una vez los requerimientos son validados y aceptados por el cliente.

3.1.5.1.1. Antes de la puesta en marcha se realiza una validación y prueba del software que consta de las siguientes actividades

3.1.5.1.2. Posterior a la salida en vivo se pueden presentar situaciones que requieran algunas de las siguientes actividades propias del mantenimiento del software:

4. La ingeniería del software

4.1. Se puede decir que la ingeniería del software se encarga de aplicar técnicas usadas en otras ámbitos de la ingeniería para lograr desarrollar productos de software que cumplan con los requerimientos del cliente

4.1.1. La ingeniería del software es promovida por la Computer Society

5. 3. Modelos de procesos de software

5.1. Modelo en cascada

5.1.1. En este modelo las etapas del proceso a saber: especificación de requerimientos, modelado, desarrollo e implantación se dan de manera secuencial

5.1.1.1. ventajas del modelo

5.1.1.1.1. Su ventaja es que contempla toda la funcionalidad del sistema desde un principio.

5.1.1.2. desventajas del modelo

5.1.1.2.1. Su desventaja es que los cambios posteriores o inclusión de nuevos requerimientos son muy costosos porque impactan todas las fases llevadas a cabo con anterioridad.

5.2. Modelos incrementales

5.2.1. Este modelo está pensado para cuando se requiere entregar un producto de software con una funcionalidad reducida que posteriormente se va incrementando hasta llegar finalmente a la versión deseada del producto

5.2.1.1. ventajas del modelo

5.2.1.1.1. La ventaja es que se cuenta con un producto básico pero funcional en un tiempo menor comparado con el modelo en cascada.

5.2.1.2. desventajas del modelo

5.2.1.2.1. La desventaja es que algunos clientes temen que este proceso evolutivo de entregas se salga de control.

5.3. Modelo de evolución de prototipos

5.3.1. Este modelo se apoya en los llamados prototipos o versiones primarias del producto de software al cual se quiere llegar

5.4. Modelos ágiles

5.4.1. Recientemente se han popularizado los modelos ágiles que combinan las estrategias de los modelos en cascada, incremental y prototipos.

5.5. Modelo basado en componentes

5.5.1. Este modelo se apoya en software previamente desarrollado que se puede incorporar, parametrizar o configurar al proyecto en desarrollo y de este forma disminuir la cantidad de código a producir.

5.6. El proceso unificado

5.6.1. Este proceso se basa en los modelos tradicionales ya expuestos como son cascada, prototipos e incrementales y hace énfasis en la utilización de casos de uso apoyados en el lenguaje UML para modelar los requerimientos del cliente

5.7. Comentarios sobre los modelos de procesos de software

5.7.1. No todos los modelos son aplicables a cualquier tipo de proyecto. El ingeniero de software deberá tener en cuenta variables como: tamaño del proyecto, claridad en los requerimientos, disponibilidad y entrenamiento del recurso humano, entre otros, para proponer el modelo o combinación de modelos que le permitan llegar al producto de software especificado.