EDDUT1-01 Desarrollo de Software PDF
Document Details
Uploaded by AffirmativePlatinum2178
UT1 Desarrollo de Software
Tags
Summary
These lecture notes cover software development, including different types of software, software development methodologies and software diagrams.
Full Transcript
Entornos de desarrollo UT1 Desarrollo de software EDDUT1-01 Desarrollo Software EDD UT1 Desarrollo de Software EDDUT1-01 Desarrollo Software “Cuando se innova, tiene que estar preparado para la gente que le dice que usted está loco.” Larry Ellison, CEO Ora...
Entornos de desarrollo UT1 Desarrollo de software EDDUT1-01 Desarrollo Software EDD UT1 Desarrollo de Software EDDUT1-01 Desarrollo Software “Cuando se innova, tiene que estar preparado para la gente que le dice que usted está loco.” Larry Ellison, CEO Oracle EDDUT1-01 Desarrollo Software EDDUT1-01 Desarrollo Software 0. Hardware y Software Hardware: Componentes físicos que se pueden ver y tocar Software: Parte lógica del ordenador que no se puede tocar. Comprende el conjunto de programas y aplicaciones que actúan sobre el hardware del ordenador y facilitan al usuario la realización de diferentes tareas. EDDUT1-01 Desarrollo Software 1. ¿Qué es software? Según el diccionario de la RAE, el software es “el conjunto de programas, instrucciones y reglas informáticas para ejecutar ciertas tareas en una computadora”. Según el estándar 729 del IEEE, el software es “el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación”. El software no es solo el código fuente, sino que, además, incluye los manuales asociados (requisitos, diseño, planes de prueba,…) y la propia documentación del producto (documentación para la instalación, manuales de usuario,…) EDDUT1-01 Desarrollo Software 2. Características del software El software se desarrolla, no se fabrica. El software no se estropea con el paso del tiempo. El software no muere, se queda obsoleto. Características Se construye a medida, no es la suma de componentes, aunque se puede reutilizar software o parte del software. Evoluciona con el tiempo. EDDUT1-01 Desarrollo Software 3. Tipos de Software. Por la tarea que realizan Permite que el hardware (HW) funcione. Interactúa entre el HW y los usuarios Software de sistema Ejemplos: Ø Sistemas operativos Ø Controladores de dispositivo Ø Herramientas de diagnóstico EDDUT1-01 Desarrollo Software 3. Tipos de Software. Por la tarea que realizan Software de Programas que realizan tareas específicas en cualquier área capaz Aplicación de ser automatizada o asistida. EDDUT1-01 Desarrollo Software 3. Tipos de Software. Por la tarea que realizan Proporciona a los desarrolladores herramientas para la elaboración de software. Generalmente se mencionan para la fase de desarrollo, pero abarca todas las etapas del ciclo de vida. Software de programación o desarrollo Entornos de desarrollo integrado (IDE –Integrated Development Environment). Incluyen todas las herramientas unificadas: editores de texto, compiladores, depuradores,… EDDUT1-01 Desarrollo Software 3. Tipos de Software. Por el método de distribución Forma de distribución para poder evaluar de forma gratuita el producto por un tiempo especificado, o con funcionalidades Shareware limitadas. Si transcurrido ese tiempo se quiere seguir utilizando el software, o se quieren todas las funcionalidades, se debe pagar la versión completa. Software que se distribuye sin cargo, aunque no tiene porqué incluir Freeware el código fuente. La licencia de uso permite la redistribución, pero con limitaciones. Tipo de shareware que de forma automática descargan publicidad Adware cuando lo ejecutamos o instalamos. Con la licencia completa se elimina esta publicidad. EDDUT1-01 Desarrollo Software 3. Tipos de Software. Por el método de distribución Software Programas que integran textos, gráficos, sonidos y animaciones. Multimedia Software de Desarrollado para resolver un problema específico de alguna uso específico organización o persona. EDDUT1-01 Desarrollo Software 3. Tipos de Software. Por licencias. Una licencia de software es un contrato que se establece entre el desarrollador de un software, sometido a la propiedad intelectual y a derechos de autor, y el usuario, en el cual se definen con precisión los derechos y deberes de ambas partes. Software Libre. Licencia GPL (GNU) Software de dominio Software Propietario. Licencia Creative público. Commons EDDUT1-01 Desarrollo Software 3. Tipos de Software. Por licencias. Ejercicio 1 Investiga sobre las licencias GPL y Creative Commons. ¿Qué permiten hacer al usuario? ¿Y al desarrollador? EDDUT1-01 Desarrollo Software 4. Ciclo de vida del software El proceso de desarrollo del software implica un conjunto de actividades que se tienen que planificar y gestionar de tal manera que aseguren un producto final que dé solución a las necesidades de todas aquellas personas que lo van a utilizar. Según el estándar ISO/IEC 12207-1, el ciclo de vida del software es “Un marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotación y el mantenimiento de un producto software, abarcando la vida del sistema desde la definición de requisitos hasta la finalización de su uso”. A cada uno de los distintos ciclos de vida, se les suele denominar modelo. EDDUT1-01 Desarrollo Software 4. Ciclo de vida del software. Etapas Análisis: Se debe entender y comprender de forma detallada el problema que se va a resolver. Es la especificación de requisitos. Diseño: Después de saber qué es lo que hay que hacer, se define cómo se va a hacer (resolver el problema). Se deducen las estructuras de datos, la arquitectura software, la interfaz de usuario y los procedimientos. Se selecciona el lenguaje de programación, Gestor de Base de Datos,… Codificación: Se traduce lo descrito en el diseño a una forma entendible por la máquina. La salida de esta fase es código ejecutable. Pruebas: Se comprueba que se cumplen los criterios de corrección y calidad. Las pruebas garantizan el correcto funcionamiento del sistema. Mantenimiento: Se asegura que el sistema se adapta a los cambios. Los cambios pueden ser por errores, por adaptación al entorno, o por nuevas necesidades del cliente. EDDUT1-01 Desarrollo Software 4. Ciclo de vida en cascada Las etapas tienen un orden. No se puede empezar una etapa hasta terminar la anterior. Después de cada etapa se realiza una revisión para comprobar si se puede pasar a la siguiente. Inconvenientes: Ventajas: Ø Todos los requisitos deben estar definidos Ø Fácil de comprender, planificar y seguir. al principio. Ø Calidad del producto alta. Ø Es difícil volver atrás ante errores. Ø Trabajo de personal poco cualificado. Ø No está disponible hasta que no finaliza del todo. EDDUT1-01 Desarrollo Software 4. Ciclo de vida en cascada Requirements Product requirements document Desing Software architecture Implementation Software Verification Maintenace EDDUT1-01 Desarrollo Software 4. Ciclo de vida en cascada con retroalimentación Es una variante del ciclo de vida, donde es posible retornar a la etapa anterior, realizar los ajustes pertinentes y continuar de nuevo con la etapa en la que se estaba. Por ejemplo, durante el diseño se detecta que han cambiado los requisitos, o que son ambiguos EDDUT1-01 Desarrollo Software 4. Ciclo de vida Ejercicio 2 Investiga sobre el ciclo de vida en V (a veces llamado modelo en V). ¿Qué relación tiene con el ciclo de vida en cascada? EDDUT1-01 Desarrollo Software 5. Modelo iterativo incremental Está basado en varios ciclos en cascada realimentados aplicados repetidamente. Este modelo, entrega el software en partes pequeñas, pero utilizables, denominadas incrementos. Cada incremento, suele construirse sobre los anteriores. Ventajas: Inconvenientes: Ø No es necesario conocer los requisitos al comienzo. Ø Es difícil estimar el esfuerzo y el coste Ø Permite la entrega temprana de partes final. operativas. Ø Riesgo de no acabar nunca. Ø No se recomienda para sistemas de tiempo Ø Las entregas facilitan la retroalimentación real, alto nivel de seguridad o alto riesgo. para las sucesivas. EDDUT1-01 Desarrollo Software 5. Modelo iterativo incremental EDDUT1-01 Desarrollo Software 6. Modelo en Espiral Combina el modelo en cascada con el modelo iterativo. Se representa como una espiral, donde en cada ciclo, se desarrolla una parte. Cuando se termina una vuelta, se produce una Modelo en versión incremental del software con respecto al ciclo espiral anterior. Es similar al Modelo Iterativo Incremental, con la diferencia de que en cada ciclo se tiene en cuenta el análisis de riesgos. Los primeros ciclos pueden ser prototipos. EDDUT1-01 Desarrollo Software 6. Modelo en Espiral. Fases Determinar Identificar los objetivos y las alternativas para alcanzar los objetivos. objetivos También, las restricciones impuestas a la aplicación (costos, plazos,..) Análisis de Evaluar las alternativas en relación con los objetivos y limitaciones. Si riesgos es posible, se intentan resolver los riesgos. Desarrollar la solución al problema en este ciclo, y verificar que es Desarrollar y aceptable. probar Revisar y evaluar todo lo que se ha hecho, y con ello decidir si se Planificación continúa. Entonces hay que planificar las fases del ciclo siguiente. EDDUT1-01 Desarrollo Software 6. Modelo en Espiral EDDUT1-01 Desarrollo Software 6. Modelo en espiral Ventajas: Inconvenientes: Recomendado: Ø No requiere definición Ø El coste del proyecto va completa de requisitos al aumentando según las Ø Proyectos de gran tamaño y principio. iteraciones. que necesitan constantes Ø Análisis de riesgos en todas Ø Es difícil evaluar los riesgos. cambios. las etapas. Ø El éxito del proyecto Ø Proyectos donde sea Ø Incorpora objetivos de depende del análisis de importante el factor riesgo. calidad. riesgos. EDDUT1-01 Desarrollo Software 7. Fases de desarrollo. EDDUT1-01 Desarrollo Software 7. Fases de desarrollo Análisis: Entender el problema que se necesita resolver. Diseño: Componer la forma en la que se solucionará el problema. Codificación: Los programadores, utilizando algún lenguaje de Fases de programación, traducen el diseño en un código ejecutable. desarrollo Pruebas: Búsqueda de errores en el software creado. de una aplicación Explotación: Instalación y uso del producto. Mantenimiento: Modificación del producto una vez entregado. Los primeros Documentación: ciclos Se realiza pueden en todas lasser prototipos. fases que se mencionan. EDDUT1-01 Desarrollo Software 7. Fases de desarrollo. Análisis § En esta fase se analizan y especifican los requisitos o capacidades que el sistema debe tener (lo que el cliente haya pedido) Un requisito es algo que se puede verificar o comprobar. La obtención de requisitos no es tarea fácil: El cliente puede no tenerlos claros. Pueden surgir nuevos requisitos. Puede cambiar lo especificado. Análisis Pueden existir malentendidos por falta de conocimiento del equipo de desarrollo. El cliente puede no expresarse de forma clara debido a la falta de conocimientos informáticos. Para realizar un proyecto satisfactorio es necesario obtener unos buenos requisitos, y para ello, es esencial una buena comunicación entre el cliente y los desarrolladores. EDDUT1-01 Desarrollo Software 7. Fases de desarrollo. Análisis Entrevistas: Consiste en hablar con el cliente Desarrollo conjunto de aplicaciones: Es un tipo de entrevista muy estructurada aplicable a grupos de personas. Cada persona juega un rol concreto. Planificación conjunta de requisitos: Subconjunto de la anterior, dirigidas a la alta dirección que sirve para obtener los requisitos de alto nivel o estratégicos. Recogida de Brainstorming: Reuniones en grupo cuyo objetivo es generar ideas desde requisitos diferentes puntos de vista para la resolución de un problema. Prototipos: Es una versión inicial del sistema que se utiliza para clarificar algunos puntos o demostrar los conceptos. Casos de uso: Es la técnica definida en UML (Unified Modeling Language) que se basa en la representación de escenarios que describen el comportamiento deseado del sistema. Describen qué hace el sistema, no cómo lo hace. EDDUT1-01 Desarrollo Software 7. Fases de desarrollo. Análisis EDDUT1-01 Desarrollo Software 7. Fases de desarrollo. Análisis Requisitos funcionales: Describen con detalle la función que realiza el sistema. Tipos de requisitos Requisitos no funcionales: Tratan características del sistema, como la fiabilidad, mantenibilidad, sistema operativo, plataforma hardware, restricciones, limitaciones, etc. EDDUT1-01 Desarrollo Software 7. Fases de desarrollo. Análisis Todo lo realizado en esta fase, debe quedar reflejado en el documento de Especificación de Requisitos del Software (ERS). Este documento: No debe tener ambigüedades. Especificación de Debe ser completo. requisitos del Debe ser consistente. software Tiene que ser fácil de verificar y modificar. Tiene que ser fácil de utilizar en la fase de explotación y mantenimiento. Debe ser fácil de identificar el origen y las consecuencias de los requisitos. Sirve como entrada para la siguiente fase en el desarrollo de la aplicación. EDDUT1-01 Desarrollo Software 7. Fases de desarrollo. Análisis Según la norma IEEE 830 EDDUT1-01 Desarrollo Software 8. Diagramas de flujo de datos Diagrama de flujo de datos (DFD): Representa el flujo de datos entre los distintos procesos, entidades externas y almacenes que forman el sistema. Diagrama de flujo de control (DFC): Similar al DFD, pero con la diferencia de que muestra el flujo de control. Técnicas de Diagrama de transición de estados (DTE): Representa cómo se representación comporta el sistema como consecuencia de sucesos externos. de requisitos Diagrama Entidad /Relación (E-R): Se usa para representar los datos y la forma en la que se relacionan entre ellos. Diccionario de datos (DD): Descripción detallada de los datos utilizados por el sistema que gráficamente se encuentran representados en el resto de los diagramas. EDDUT1-01 Desarrollo Software 8. Diagramas de flujo de datos Es la obtención de un modelo lógico de procesos que represente el sistema, con independencia de las restricciones físicas del entorno. Así se facilita su comprensión por los usuarios y los miembros del equipo de desarrollo. El sistema se divide en distintos niveles de detalle, con el objetivo de: Simplificar la complejidad del sistema, representando los diferentes procesos de que consta. Facilitar el mantenimiento del sistema. Consiste en la descomposición sucesiva de los procesos, desde un nivel general, hasta llegar al nivel de detalle necesario para reflejar toda la semántica que debe soportar el sistema en estudio. EDDUT1-01 Desarrollo Software 8. Diagramas de flujo de datos Los procesos identifican funciones dentro del sistema, se representan mediante burbujas ovaladas o circulares. Las entidades externas representan componentes que no forman parte del sistema (por ejemplo, una persona, un departamento, un software de tercero, etc.), pero proporcionan datos al sistema o los reciben de él. Se representan mediante rectángulos. Los almacenes representan los datos desde el punto de vista estático, es decir, representan el lugar donde se almacenan los datos procesados o desde donde se recuperan para apoyar un proceso. Se representan mediante dos líneas horizontales y paralelas. El flujo de datos representa el movimiento de datos dentro del sistema. Se representa mediante flechas. EDDUT1-01 Desarrollo Software 8. Diagramas de flujo de datos EDDUT1-01 Desarrollo Software 8. Diagramas de flujo de datos EDDUT1-01 Desarrollo Software 8. Diagramas de flujo de datos Pueden ser representadas varias veces en un DFD si con eso se mejora la legibilidad. Entidades externas Para indicar que es una entidad externa duplicada se señala con un asterisco. Normalmente las entidades externas solo aparecen en el diagrama de contexto. EDDUT1-01 Desarrollo Software 8. Ejemplo de DFD. Gestión Biblioteca USUARIO USUARIO * * USUARIO * ADMINISTRADOR EDDUT1-01 Desarrollo Software 8. Diagramas de flujo de datos Los flujos deben mostrar en qué sentido se mueven los datos. Deben tener nombre, y debe ser representativo de su contenido y de la información que fluye a través de ellos. Flujo de datos En el caso de que sean de entrada o salida al almacén, pueden no tener nombre, en cuyo caso, se entiende que su estructura es la misma que la del almacén. EDDUT1-01 Desarrollo Software 8. Diagramas de flujo de datos Conexiones permitidas EDDUT1-01 Desarrollo Software 8. Diagramas de flujo de datos Conexión entre dos procesos Conexión directa entre dos procesos Conexión asíncrona Solo es posible si la información se traspasa de forma Se requiere el uso de un almacén temporal que guarde síncrona. Es decir, el proceso 2 comienza justo en el los datos del proceso 1 hasta que empiece el proceso 2. momento en el que termina el proceso 1. EDDUT1-01 Desarrollo Software 8. Diagramas de flujo de datos Los DFD presentan una estructura en capas. La representación de un DFD sigue una aproximación “top-down”, en la que cada nivel proporciona más detalle que el anterior. En el nivel 0, se suele representar un único proceso, identificado con un 0, que representa el sistema completo. Se representa el proceso, los flujos de entrada Descomposición y salida de datos y las entidades externas, nunca los almacenes. Se le llama en niveles diagrama de contexto o DFD de nivel 0. Se descompone el diagrama de contexto en otro DFD en el que se representan las funciones principales del sistema. El diagrama generado se llama DFD de nivel 1. Los procesos que aparecen en este DFD se enumeran desde el 1. En este nivel y en los sucesivos, puede no mostrarse las entidades externas, pero se recomienda incluirlas. EDDUT1-01 Desarrollo Software 8. Diagramas de flujo de datos Cada uno de los procesos de nivel 1, se descompone en nuevos procesos que representan funciones más sencillas. Los procesos de estos niveles añaden un subíndice al proceso del que provienen. Por ejemplo, el nivel 1 se descomponen en 1.1, 1.2,… Descomposición Se recomienda no hacer más de 4 niveles de descomposición: en niveles Nivel 0: Diagrama de contexto. Nivel 1: Subsistemas. Nivel 2: Funciones de cada subsistema Nivel 3: Funciones asociadas Nivel 4: Procesos necesarios para el tratamiento de cada subfunción. EDDUT1-01 Desarrollo Software 8. Diagramas de flujo de datos Descomposición en niveles EDDUT1-01 Desarrollo Software 9. Ejemplo elaboración de un DFD Se nos solicita realizar un sistema de gestión de un almacén donde se almacena un único tipo de productos. Este almacén vende productos a clientes y a su vez el almacén compra productos al proveedor con el fin de no quedarse sin existencias. Este sistema debe controlar la gestión de clientes y la de proveedores. Las operaciones que realizar en cada una son: EDDUT1-01 Desarrollo Software 9. Ejemplo elaboración de un DFD Gestión de clientes: El sistema se encarga de recibir y servir los pedidos de compra de los productos que solicita el cliente. Cuando un cliente solicita un producto, rellena un pedido de compra con la siguiente información: número de pedido, producto, código de cliente, fecha de pedido y el número de unidades pedidas. El sistema registra el pedido, comprueba si hay unidades disponibles y sirve el pedido; si no hay suficientes unidades se sirven las que haya en el almacén. La respuesta que recibe el cliente a esta acción es una factura con los datos: número de factura, fecha, código de cliente, producto, unidades del producto, precio e importe total del pedido. El sistema deberá actualizar las existencias del producto restando las que se han servido al cliente. EDDUT1-01 Desarrollo Software 9. Ejemplo elaboración de un DFD Gestión de proveedores: El sistema se encarga de enviar pedidos al proveedor cuando las existencias del producto están por debajo de una cantidad; y de recibir los pedidos cuando llegan al almacén actualizando las existencias del producto con la cantidad que entra. Si en el almacén no se dispone de una mínima cantidad del producto, el sistema realiza un pedido de abastecimiento al proveedor. Los datos para realizar el pedido son: número de pedido, producto, fecha de pedido, código de proveedor, y número de unidades que se piden. La operación de recepción de los pedidos se cumplimenta mediante un albarán, la información de este es la siguiente: número de albarán, fecha, código de proveedor, producto, número de unidades suministradas y coste total del pedido. Entonces se debe actualizar el stock del producto sumándole las unidades recibidas. EDDUT1-01 Desarrollo Software 9. Ejemplo elaboración de un DFD DFD de nivel 0: Está formado por un proceso, el proceso de Sistema de Gestión de Almacén, que representa el funcionamiento general del sistema: Dos entidades externas CLIENTE y PROVEEDOR. Los flujos de entrada (pedidos de compra de los clientes y albaranes procedentes de los proveedores) y salida (facturas a clientes y pedidos de abastecimiento a los proveedores) al sistema. EDDUT1-01 Desarrollo Software 9. Ejemplo elaboración de un DFD DFD de nivel 1: Se representan los dos procesos fundamentales del sistema. EDDUT1-01 Desarrollo Software 9. Ejemplo elaboración de un DFD La gestión de clientes se puede dividir en dos subprocesos. EDDUT1-01 Desarrollo Software 9. Ejemplo elaboración de un DFD EDDUT1-01 Desarrollo Software MUCHAS GRACIAS A TODOS. EDDUT1-01 Desarrollo Software