Ciclo de vida en el desarrollo de software El ciclo de vida de desarrollo son todas las actividades necesarias para construir el software, va desde la concepción del software, hasta el retiro o evolución del mismo. Fases principales: Análisis. Diseño. Implementación. Pruebas. Despliegue. Mantenimiento. Proceso de desarrollo de software Es definir el qué, quién, cuándo y cómo en todas las fases del ciclo de vida del desarrollo del software. Existen varios procesos RUP TSPi Extremme Programming Agile Computadoras y Programación Definición Conjunto finito de instrucciones que, si se siguen con exactitud, realizan una tarea concreta. Un algoritmo debe satisfacer los siguientes criterios: Su construcción debe ser clara, concisa y básica. Esto para establecer facilidad de revisión. El algoritmo tiene un fin, determinado por el número de instrucciones. El algoritmo cumple una tarea, ya sea un calculo de algún valor (o varios), o la realización de cambios en los datos del mismo. Abstracción de datos La abstracción de datos nos permite manejar información de la vida real por medio de una representación computacional. Estos datos abstractos cuentan con una parte publica y una privada. Publica -> las operaciones que se pueden hacer con el. Privada -> Como se realiza internamente y aquí esta la abstracción. De eso se encarga El sistema Operativo junto con el Hardware. Encapsulamiento Es la propiedad de proteger datos abstractos y algoritmos para su uso por medio de una interfaz publica. Es decir un segmento de código que tiene su parte privada y su parte publica. La parte privada la escribe el programador. La parte pública la utiliza el cliente. Donde cliente y programador son dos personas diferentes. Encapsulamiento (Beneficios) El encapsulamiento nos trae los siguientes beneficios: Mantenimiento .- El programador puede modificar un segmento del algoritmo sin afectar al cliente. Modularidad .- Se puede programar por bloques y especializar a cada uno de estos para una tarea especifica. Esto permite la reutilización de código. Extensibilidad .- Podemos especializar(Ampliar) el código encapsulado. Ejemplo Un algoritmo que solicite dos números a y b enteros y realice las siguientes operaciones: La suma de a y b La suma de a y a La suma de b y b Algoritmo Paso 1: Declarar variables a, b y c Paso 2: Solicitar el valor a y asignarlo en a Paso 3: Solicitar el valor b y asignarlo en b Paso 4: calcular c=a + b y desplegar c Paso 5: calcular c= a + a y desplegar c Paso 6: calcular c=b + b y desplegar c Fin Modularizado Algoritmo suma Suma (a , b) Temp= a + b Desplegar Temp Algoritmo Paso 1: Declarar variables a, b y c de tipo numerico Paso 2: Solicitar el valor a y asignarlo en a Paso 3: Solicitar el valor b y asignarlo en b Paso 4: Llamar suma (a,b) Paso 5: Llamar suma (a,a) Paso 6: Llamar suma (b,b) Fin Otro ejemplo de algoritmo Solicitar 1 numero y verificar si es mayor que 100, desplegar resultado Solicitar 2 números y determinar cual es el número mayor. Solicitar un numero y desplegar un mensaje según la siguiente tabla: 1 -> Lunes 2-> Martes 3-> Miércoles 4 -> Jueves 5-> viernes Ejemplos Solicitar un número n, menor de 10 y mayor a 1, desplegar ese numero n, n veces. Solicitar un numero n, menor de 10 y mayor a 1, desplegar la tabla del numero n Desarrollar un algoritmo que despliegue de la tabla del 3 a la tabla del 5 Desarrollar un algoritmo que despliegue de la tabla del n a la tabla del m. n mayor a 0 y m < 20