El Proceso de Desarrollo de Software: 2ª Edición
()
Información de este libro electrónico
La ingeniería de software es una forma de ingeniería que aplica los principios de la ciencia de la computación y de la matemática para alcanzar soluciones con una mejor relación entre el coste y el beneficio para el problema de software. Asimismo, se trata de la aplicación sistemática, disciplinada y cuantificable para el desarrollo, operación y mantenimiento de un software.
Raúl Noriega Martínez
Raúl Noriega Martínez es instructor de programación y análisis de software desde el año 2007. Raúl ha realizado varios cursos de desarrollo de software y procesos de desarrollo Web para varias de las más prestigiosas empresas de formación online en el ámbito hispanoamericano.
Relacionado con El Proceso de Desarrollo de Software
Libros electrónicos relacionados
El Proceso de Desarrollo de Software Calificación: 0 de 5 estrellas0 calificacionesDesarrollo de Software Ágil. Extremme Programming y Scrum Calificación: 4 de 5 estrellas4/5Desarrollo de Software: Requisitos, Estimaciones y Análisis Calificación: 0 de 5 estrellas0 calificacionesDesarrollo de Software Calificación: 0 de 5 estrellas0 calificacionesUF2406 - El cliclo de vida del desarrollo de aplicaciones Calificación: 0 de 5 estrellas0 calificacionesEl Libro Práctico Del Programador Ágil Calificación: 5 de 5 estrellas5/5Metodologías ágiles para el desarrollo de software Calificación: 0 de 5 estrellas0 calificacionesUF2218 - Desarrollo de un CMS Calificación: 0 de 5 estrellas0 calificacionesCurso de Ingeniería de Software Calificación: 4 de 5 estrellas4/5Calidad en el desarrollo de software Calificación: 0 de 5 estrellas0 calificacionesFundamentos de Programación y Bases de Datos Calificación: 0 de 5 estrellas0 calificacionesMantenimiento del software. IFCT0510 Calificación: 0 de 5 estrellas0 calificacionesAprende programación de computadoras Calificación: 5 de 5 estrellas5/5UF1889 - Desarrollo de componente software en sistemas ERP-CRM Calificación: 0 de 5 estrellas0 calificacionesAgile & Scrum Calificación: 0 de 5 estrellas0 calificacionesLa Guía Definitiva Para Desarrolladores De Software: Trucos Y Conseños Calificación: 4 de 5 estrellas4/5Fundamentos de programación: un enfoque práctico Calificación: 5 de 5 estrellas5/5El arte de probar: Guía sobre software testing para principiantes. Calificación: 0 de 5 estrellas0 calificacionesConceptos Básicos De Scrum: Desarrollo De Software Agile Y Manejo De Proyectos Agile Calificación: 5 de 5 estrellas5/5Modelado y simulación de redes. Aplicación de QoS con opnet modeler Calificación: 0 de 5 estrellas0 calificacionesDe qué hablo cuando hablo de programar (volumen 2) Calificación: 0 de 5 estrellas0 calificacionesLegacy Code Calificación: 0 de 5 estrellas0 calificacionesCurso de Programación con Java - 2ª Edición Calificación: 5 de 5 estrellas5/5Ciclo de vida de desarrollo ágil: de software seguro Calificación: 0 de 5 estrellas0 calificacionesEl Libro Negro del Programador Calificación: 4 de 5 estrellas4/5Dirección y gestión de proyectos de tecnologías de la información: Liderazgo del cambio para transformar las Empresas de la Sociedad Digita Calificación: 0 de 5 estrellas0 calificacionesScrum - ¡Guía definitiva de prácticas ágiles esenciales de Scrum! Calificación: 4 de 5 estrellas4/5UF2405 - Modelo de programación web y bases de datos Calificación: 0 de 5 estrellas0 calificacionesHTTP - Lo mínimo que todo desarrollador web debe saber Calificación: 5 de 5 estrellas5/5Análisis y diseño de algoritmos: Un enfoque práctico Calificación: 0 de 5 estrellas0 calificaciones
Computadoras para usted
Cómo Eliminar Distracciones: Dispara tu Atención y Concentración Mental con Sencillos Métodos que Puedes Empezar a Usar Hoy Mismo Calificación: 5 de 5 estrellas5/5El Arte de las Ventas: Descubre los Secretos de los Mejores Vendedores del Mundo e Incrementa tus Ganancias más Allá de lo que Pensabas Posible Calificación: 0 de 5 estrellas0 calificacionesExcel 2021 y 365 Paso a Paso: Paso a Paso Calificación: 5 de 5 estrellas5/5EL PLAN DE MARKETING EN 4 PASOS. Estrategias y pasos clave para redactar un plan de marketing eficaz. Calificación: 4 de 5 estrellas4/5Seducción con texting: Atrae y seduce las mujeres que deseas con poco esfuerzo dominando el arte de los mensajes de texto Calificación: 4 de 5 estrellas4/5Conquista de las Redes Sociales: 201 Consejos para Marketeros y Emprendedores Digitales Calificación: 5 de 5 estrellas5/5APLICACIONES PRACTICAS CON EXCEL Calificación: 5 de 5 estrellas5/5Psicopatología básica Calificación: 4 de 5 estrellas4/5Vender En Internet - Cómo Ganar Dinero Vendiendo En Ebay, Amazon, Fiverr Y Etsy Calificación: 4 de 5 estrellas4/5Inteligencia artificial: Aprender sobre chatbots, robótica y otras aplicaciones comerciales Calificación: 5 de 5 estrellas5/5Brand management en 4 pasos: Cómo gestionar la comercialización de su marca mejorando su potencial y eficacia Calificación: 5 de 5 estrellas5/5Cómo Hacer Tu Propia Página Web Gratis Calificación: 4 de 5 estrellas4/5Biografía De Elon Musk Calificación: 4 de 5 estrellas4/5Inteligencia artificial: Aprendizaje automático, aprendizaje profundo y procesos de automatización Calificación: 5 de 5 estrellas5/5Aprende a programar en C# Calificación: 5 de 5 estrellas5/5Minimalismo Digital: Una Guía para Simplificar tu Vida Digital y Vivir con Menos Estrés Calificación: 0 de 5 estrellas0 calificaciones
Comentarios para El Proceso de Desarrollo de Software
0 clasificaciones0 comentarios
Vista previa del libro
El Proceso de Desarrollo de Software - Raúl Noriega Martínez
PROCESO DE DESARROLLO DE SOFTWARE
La ingeniería de software es una forma de ingeniería que aplica los principios de la ciencia de la computación y de la matemática para alcanzar soluciones con una mejor relación entre el coste y el beneficio para el problema de software. Asimismo, se trata de la aplicación sistemática, disciplinada y cuantificable para el desarrollo, operación y mantenimiento de un software.
Al principio, los softwares eran programas muy pequeños debido a las limitaciones del hardware existente en aquellos días. A medida que se fue mejorando la capacidad computacional creció el tamaño y la complejidad del software desarrollado. Varias técnicas surgieron para ayudar en la administración de esa complejidad: Técnicas ligadas a lenguajes de programación; Profundización en los estudios en ingeniería de software; Arquitectura de software y Herramientas CASE (Computer-aided software engineering).
Tras un periodo de bonanza, la crisis del software se identificó en los años sesenta, sin embargo, aún a día de hoy se notan sus efectos. Básicamente la crisis del software se fundamenta en los problemas para entregar programas sin defectos o errores, fáciles de entender y que sean verificables. Varias estrategias se han propuesto en un intento de superar estas dificultades, pero la realidad es que aún no existe ningún método que permita conocer el coste y la duración real de un proyecto antes de su inicio.
El primero de los efectos que aún podemos ver a día de hoy pone de manifiesto que uno de cada cuatro proyectos de software falla en la entrega. Además, el cambio de personal con tasas en torno al 20% se considera algo normal. Otro de los problemas es que los grandes proyectos abarcan periodos de desarrollo de entre tres y cinco años, con los problemas que ello implica, haciendo que muchos de los programas se queden obsoletos antes incluso de su aplicación.
Por último, el mantenimiento de software es uno de los responsables de los mayores costes relacionados con el apartado informático en la mayor parte de las empresas.
Un proceso de desarrollo de software es una estructura utilizada para el desarrollo de un producto de software. Entre sus sinónimos están ciclo de vida
y proceso de software
. Hay muchos modelos para estos procesos, cada uno de ellos describiendo enfoques diferentes para una variedad de tareas y actividades a ser ejecutadas a lo largo del proceso.
Proceso de Desarrollo de Software
Los apartados siguientes muestran los pasos a ejecutar durante el mismo.
Investigar los requisitos de los usuarios. Esto se lleva a cabo durante la fase de análisis.
La gran parte de los usuarios, por no decir todos, no saben exactamente lo que ellos quieren. Esto se debe a que la mayoría no sabe cuales son exactamente las acciones que llevan a cabo a lo largo del día. Desconocen el total de sus tareas.
Es por ello, que el análisis requiere que el desarrollador se convierta intencionalmente en un especialista en el dominio del usuario para ayudarlo y guiarlo en la definición de sus requisitos.
Podemos dividir esta fase en cuatro apartados: En un primer momento, el desarrollador debe escuchar y observar tratando de descubrir el máximo de información; a continuación, deberá interrogar y tratar de aclarar al máximo la información recogida; seguidamente el desarrollador deberá comprobar la información y sugerir soluciones; finalmente, una vez comprendido lo suficiente del problema escribir el documento con la especificación de requisitos.
Definir claramente las características necesarias para el sistema (especificación).
La especificación de requisitos es la última fase de la tarea del análisis. Necesita recoger de forma no ambigua cual es el comportamiento requerido. En el documento se recogen notaciones formales, documentos estructurados y ejemplos.
El objetivo es lograr una especificación de los requisitos que, de forma no ambigua, comunique al proyectista las características requeridas para el sistema.
Crear o adaptar una solución adecuada al problema, es decir, la creación del proyecto.
El proyecto busca desarrollar una solución que atienda a los requisitos, con base en la experiencia acumulada (y técnicas estandarizadas). Habitualmente los proyectos necesitan innovar en cierto nivel, generando varias soluciones posibles y utilizando alguna métrica para seleccionar una de ellas.
El resultado final es un documento de proyecto que de forma no ambigua comunica el proyecto a aquellos que lo irán a implementar.
Desarrollar la solución propuesta (implementación).
Durante esta fase se lleva a cabo el desarrollo de la aplicación en si misma. Es el momento de escribir el código, documentarlo, solucionar cualquier error que se detecte, preparar el código para ser testado, enviar informaciones tanto al proyectista como al analista, así como al testador y/o integrador. El objetivo es alcanzar el código de trabajo y la documentación asociada actualizado listo para ser probado
Garantizar que la solución responde al problema originalmente propuesto y que esta funciona correctamente en el contexto a ser ejecutada (integración). Para ello se llevan a cabo diferentes pruebas.
En esta etapa se comprueba si la implementación corresponde al proyecto y si esta funciona correctamente y atiende a todos los requisitos planteados al inicio del proceso.
Debe testar los módulos individuales y el sistema por completo y la interacción con el entorno, software, datos, etc. existentes.
Modificarlassolucionesdetrabajocuandonuevos requisitos son presentados o identificados (mantenimiento).
La realidad es que las necesidades de los usuarios evolucionan y cambian a lo largo del tiempo. Por más exhaustivos que sean los test llevados a cabo estos pueden no descubrir todos los problemas antes de la entrega del software. Por lo tanto, el software también debe cambiar a lo largo del tiempo.
Los cambios en los requisitos pueden dar origen a implementaciones y pruebas extras, o trabajo adicional al proyecto, o incluso de análisis.
Paralelamente al proceso anterior debe realizarse el planteamiento y la gestión de todas las actividades. Para ello es necesario realizar una agenda o calendario de las tareas en sus debidos momentos, proporcionando los recursos necesarios para que las tareas tengan todas las condiciones necesarias para alcanzar sus objetivos. Además, se debe evaluar la eficacia de todas las actividades y buscar la forma de maximizarla. Otro punto importante es acordar con el cliente los plazos y las características de las entregas a ser realizadas.
––––––––
MODELOS DE DESARROLLO DE SOFTWARE
––––––––
Hace tiempo que se viene tratando de encontrar un proceso o metodología previsible y repetible que mejore tanto la productividad como la calidad. Varios modelos fueron ideados con el objetivo de organizar
el proceso de desarrollo de software, pudiendo así redundar en una mayor eficacia y menor coste para el mismo. A continuación, nombraremos algunos de ellos.
Modelo tradicional en cascada: en el modelo más sencillo posible, las fases son ejecutadas de forma secuencial.
Modelo en fuente: se basa en el modelo en cascada, pero observe que la secuencia siempre contiene ciclos. Refleja el hecho de que algunas fases no pueden comenzar antes que otras y que algunas de estas fases están intercaladas.
Modelo en espiral: este modelo fue sugerido en el año 1988. Las actividades se repiten y generan un incremento.
––––––––
TIPOS DE DESARROLLO
DESARROLLO BASADO EN PROTOTIPOS
El desarrollo está basado en prototipos que parten en cierto modo de la base de construya algo y vea si eso es lo que se pretende
. Se pueden tratar de un proceso de desarrollo completo – Programación Exploratoria - o pueden ser simples bocetos anticipándose al ciclo de vida del proyecto o implementación, o incluso pueden ser parte de un abordaje evolutivo.
DESARROLLO INTERACTIVO E INCREMENTAL
El desarrollo interactivo defiende la construcción inicial de un pequeño pedazo de software, que va creciendo de forma gradual, ayudando a los involucrados en el proceso a descubrir lo más pronto posibles problemas o inconformidades antes de que puedan llevar al desastre al proyecto.
Los procesos iterativos son los preferidos por los desarrolladores comerciales porque ofrecen el potencial de alcanzar los objetivos del proyecto para un