Tema 1: Desarrollo de Software PDF

Document Details

RapturousTroll

Uploaded by RapturousTroll

Tags

software development software programming computer science

Summary

These notes detail the different types of software, including application, management, programming, and system software. The document also covers the relationship between hardware and software, and the various phases of software development, such as planning, analysis, design, and implementation. Crucially, the different programming languages are also described, their benefits, disadvantages, and uses.

Full Transcript

TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA MÓDULO ENTORNOS DE DESARROLLO TEMA 1 DESARROLLO DE SOFTWARE TEMA 1: DESARROLLO DE SOFTWARE 1. El software y su clasificación ÍNDICE 2. Relación hardware-software 3...

TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA MÓDULO ENTORNOS DE DESARROLLO TEMA 1 DESARROLLO DE SOFTWARE TEMA 1: DESARROLLO DE SOFTWARE 1. El software y su clasificación ÍNDICE 2. Relación hardware-software 3. Desarrollo de software 1. Ciclo de vida 2. Herramientas 4. Lenguajes de programación 1. Conceptos y características 2. Estructurados 3. Orientados a objetos 5. Fases del proceso de desarrollo TEMA 1: DESARROLLO DE SOFTWARE 1. EL SOFTWARE Y SU CLASIFICACIÓN El software comprende todos los programas y aplicaciones necesarias para ejecutar todos los procesos del sistema informático. Se incluyen, por tanto, aplicaciones de inicio o distintos servicios sin los que no podrían realizar su labor no solo los ordenadores, sino también consolas, móviles u otro tipo de plataformas. ENTRONOS DE DESARROLLO 3 TEMA 1: DESARROLLO DE SOFTWARE 1. EL SOFTWARE Y SU CLASIFICACIÓN Existen diferentes tipos de software, que varían en función de sus especificaciones técnicas y funciones. Tipos de software por funcionalidad 1. Software de aplicación 2. Software de gestión 3. Software de programación 4. Software de sistema ENTRONOS DE DESARROLLO 4 TEMA 1: DESARROLLO DE SOFTWARE 1. EL SOFTWARE Y SU CLASIFICACIÓN 1- Software de aplicación Dentro de este tipo de software podemos encontrar diferentes herramientas que incluyen desde bases de datos, hojas de cálculo, programas de empresa o de diseño. Su ámbito es muy amplio y abarca ofimática y editores de texto, programas que permiten realizar diversas funciones enfocadas hacía el ámbito recreativo o laboral. ENTRONOS DE DESARROLLO 5 TEMA 1: DESARROLLO DE SOFTWARE 1. EL SOFTWARE Y SU CLASIFICACIÓN 2- Software de gestión Los diferentes tipos de software de gestión se incluirían dentro de los denominados software de aplicación, como herramientas que facilitan todos los aspectos relacionados con la gestión integral de la empresa: desde contabilidad o la facturación a la gestión de la nómina o de los impuestos. ENTRONOS DE DESARROLLO 6 TEMA 1: DESARROLLO DE SOFTWARE 1. EL SOFTWARE Y SU CLASIFICACIÓN 3.- Software de programación La importancia del software de programación radica en que hace posible el desarrollo de aplicaciones, por lo que su función es elemental para el desarrollo de la informática y los diferentes programas. Dentro de esta categoría encontramos como ejemplos los editores de texto o compiladores. ENTRONOS DE DESARROLLO 7 TEMA 1: DESARROLLO DE SOFTWARE 1. EL SOFTWARE Y SU CLASIFICACIÓN 4.- Software de sistema El software de sistema es indispensable para que el hardware funcione de manera idónea. Los componentes del ordenador ejecutan su labor gracias a esta herramienta: desde los drivers a los periféricos u otros elementos como teclado o disco duro. A modo de ejemplo, se pueden citar los sistemas operativos Windows o Mac. Su importancia radica, a su vez, en que establece la conexión entre usuario y máquina u ordenador, ENTRONOS DE DESARROLLO 8 TEMA 1: DESARROLLO DE SOFTWARE 2.- Relación hardware-software El hardware y el software son las dos partes interdependientes de un sistema informático completo y su relación se refleja principalmente en los siguientes aspectos. El hardware es la base material sobre la que funciona el software. El sistema informático debe estar equipado con un sistema de software completo para funcionar con normalidad y dar pleno rendimiento a las diversas funciones de su hardware. ENTRONOS DE DESARROLLO 9 TEMA 1: DESARROLLO DE SOFTWARE 2.- Relación hardware-software ENTRONOS DE DESARROLLO 10 TEMA 1: DESARROLLO DE SOFTWARE 3.- Desarrollo de Software El proceso de desarrollo (o ciclo de vida del software),, consta de una serie de pasos de obligado cumplimiento que buscan garantizar que los programas creados son eficientes, fiables, seguros y responden a las necesidades de los usuarios finales. Las etapas del desarrollo de software son las siguientes: ENTRONOS DE DESARROLLO 11 TEMA 1: DESARROLLO DE SOFTWARE 3.- Desarrollo de Software I. PLANIFICACION II. ANALISIS III. DISEÑO IV. IMPLEMENTACION V. PRUEBAS VI. INSTALACIÓN O DESPLIEGUE VII. USO Y MANTENIMIENTO ENTRONOS DE DESARROLLO 12 TEMA 1: DESARROLLO DE SOFTWARE 3.- Desarrollo de Software I. PLANIFICACION Antes de empezar un proyecto de desarrollo de un sistema de información, es necesario hacer ciertas tareas que influirán decisivamente en el éxito del mismo. Algunas de las tareas de esta fase incluyen actividades como la determinación del ámbito del proyecto, la realización de un estudio de viabilidad, el análisis de los riesgos asociados, la estimación del coste del proyecto, su planificación temporal y la asignación de recursos a las diferentes etapas del proyecto. ENTRONOS DE DESARROLLO 13 TEMA 1: DESARROLLO DE SOFTWARE 3.- Desarrollo de Software II. ANALISIS Hay que averiguar qué es exactamente lo que tiene que hacer el software. Por eso, la etapa de análisis en el ciclo de vida del software corresponde al proceso a través del cual se intenta descubrir qué es lo que realmente se necesita y se llega a una comprensión adecuada de los requerimientos del sistema (las características que el sistema debe poseer). ENTRONOS DE DESARROLLO 14 TEMA 1: DESARROLLO DE SOFTWARE 3.- Desarrollo de Software III. DISEÑO En esta fase se estudian posibles opciones de implementación para el software que hay que construir, así como decidir la estructura general del mismo. El diseño es una etapa compleja y su proceso debe realizarse de manera iterativa. Es posible que la solución inicial no sea la más adecuada, por lo que en tal caso hay que refinarla. No obstante, hay catálogos de patrones de diseño muy útiles que recogen errores que otros han cometido para no caer en la misma trampa. ENTRONOS DE DESARROLLO 15 TEMA 1: DESARROLLO DE SOFTWARE 3.- Desarrollo de Software IV. IMPLEMENTACIÓN En esta fase hay que elegir las herramientas adecuadas, un entorno de desarrollo que facilite el trabajo y un lenguaje de programación apropiado para el tipo de software a construir. Esta elección dependerá tanto de las decisiones de diseño tomadas como del entorno en el que el software deba funcionar. ENTRONOS DE DESARROLLO 16 TEMA 1: DESARROLLO DE SOFTWARE 3.- Desarrollo de Software IV. IMPLEMENTACIÓN Al programar, hay que intentar que el código no sea indescifrable siguiendo distintas pautas como las siguientes: Evitar bloques de control no estructurados. Identificar correctamente las variables y su alcance. Elegir algoritmos y estructuras de datos adecuadas para el problema. Mantener la lógica de la aplicación lo más sencilla posible. Documentar y comentar adecuadamente el código de los programas. Facilitar la interpretación visual del código utilizando reglas de formato de código previamente consensuadas en el equipo de desarrollo. ENTRONOS DE DESARROLLO 17 TEMA 1: DESARROLLO DE SOFTWARE 3.- Desarrollo de Software V. PRUEBAS Como errar es humano, la fase de pruebas del ciclo de vida del software busca detectar los fallos cometidos en las etapas anteriores para corregirlos. Por supuesto, lo ideal es hacerlo antes de que el usuario final se los encuentre. Se dice que una prueba es un éxito si se detecya algún error.. ENTRONOS DE DESARROLLO 18 TEMA 1: DESARROLLO DE SOFTWARE 3.- Desarrollo de Software VI. Instalación o despliegue La siguiente fase es poner el software en funcionamiento, por lo que hay que planificar el entorno teniendo en cuenta las dependencias existentes entre los diferentes componentes del mismo. Es posible que haya componentes que funcionen correctamente por separado, pero que al combinarlos provoquen problemas. Por ello, hay que usar combinaciones conocidas que no causen problemas de compatibilidad. ENTRONOS DE DESARROLLO 19 TEMA 1: DESARROLLO DE SOFTWARE 3.- Desarrollo de Software VII. Uso y Mantenimiento Esta es una de las fases más importantes del ciclo de vida de desarrollo del software. Puesto que el software ni se rompe ni se desgasta con el uso, su mantenimiento incluye tres puntos diferenciados: Eliminar los defectos detectados durante su vida útil Adaptarlo a nuevas necesidades Añadirle nuevas funcionalidades ENTRONOS DE DESARROLLO 20 TEMA 1: DESARROLLO DE SOFTWARE 3.- Desarrollo de Software Gráfico de cliclo de vida del software: ENTRONOS DE DESARROLLO 21 TEMA 1: DESARROLLO DE SOFTWARE 3.- Desarrollo de Software Modelos de ciclos de vida del software Modelo en cascada En el modelo de ciclo de vida en cascada las fases anteriores funcionarán una detrás de la otra de manera lineal. De este modo, solo cuando una fase termine se podrá continuar con la siguiente, y así progresivamente. ENTRONOS DE DESARROLLO 22 TEMA 1: DESARROLLO DE SOFTWARE 3.- Desarrollo de Software Modelos de ciclos de vida del software.Modelo en espiral El modelo en espiral es una combinación de los modelos anteriores donde se tiene en cuenta el riesgo. De esta forma, se comienza fijando los objetivos y las limitaciones al empezar cada repetición. En la etapa siguiente se crean los modelos de prototipo del software, que incluye el análisis de riesgo. Posteriormente se usa un modelo estándar para construir el software y finalmente se prepara el plan de la próxima repetición. ENTRONOS DE DESARROLLO 23 TEMA 1: DESARROLLO DE SOFTWARE 3.- Desarrollo de Software Modelos de ciclos de vida del software Modelo repetitivo Este modelo guía el proceso de desarrollo de software en repeticiones. Así, proyecta el proceso de desarrollo de modo cíclico repitiendo cada paso después de cada ciclo en el proceso de ciclo de vida del software. ENTRONOS DE DESARROLLO 24 TEMA 1: DESARROLLO DE SOFTWARE 3.- Desarrollo de Software Modelos de ciclos de vida del software Modelo en V Uno de los grandes problemas del modelo en cascada es que solo se pasa a la siguiente fase si se completa la anterior y no se puede volver atrás si hay errores en etapas posteriores. Así, el modelo en V da más opciones de evaluación del software en cada etapa. En cada fase se crea la planificación de las pruebas y los casos de pruebas para verificar y validar el producto en función de los requisitos de la misma. De esta manera, verificación y validación van en paralelo. ENTRONOS DE DESARROLLO 25 TEMA 1: DESARROLLO DE SOFTWARE 3.- Desarrollo de Software Modelos de ciclos de vida del software Modelo Big Bang Probablemente este sea el modelo más simple, ya que necesita poca planificación, mucha programación y muchos fondos. Este modelo tiene como concepto principal la creación del universo; así, si se reúnen fondos y programación, se consigue el mejor producto de software. ENTRONOS DE DESARROLLO 26 ENTORNOS DE DESARROLLO DESARROLLO DE SOFTWARE 1º DAW ONLINE TEMA 1: DESARROLLO DE SOFTWARE 1. El software y su clasificación 2. Relación hardware-software 3. Desarrollo de software ÍNDICE 4. 1. Ciclo de vida 2. Herramientas Lenguajes de programación 1. Conceptos y características 2. Estructurados 3. Orientados a objetos 5. Fases del proceso de desarrollo TEMA 1: DESARROLLO DE SOFTWARE 3. DESARROLLO DEL SOFTWARE. 3.2 HERRAMIENTAS Para llevar a cabo estas etapas, se cuenta con herramientas para automatizar tareas y prevenir errores. A este tipo de herramientas se les conoce como CASE (Computer Aided Software Engineering) y permiten: Mejorar la planificación del proyecto. Darle agilidad al proceso. Poder reutilizar partes del software en proyectos futuros. Hacer que las aplicaciones respondan a estándares Mejorar la tarea del mantenimiento de los programas. Mejorar el proceso de desarrollo, al permitir visualizar las fases de forma gráfica. ENTRONOS DE DESARROLLO 3 TEMA 1: DESARROLLO DE SOFTWARE 3. DESARROLLO DEL SOFTWARE. 3.2 HERRAMIENTAS Clasificación Las herramientas CASE se pueden clasificar en: UPPER CASE (U-CASE): Centradas en las fases iniciales de análisis y planificación. MIDDLE CASE (M-CASE): para automatizar tareas en el análisis y diseño de la aplicación. LOWER CASE (L-CASE): herramientas que semi-automatizan la generación de código, crean programas de detección de errores, soportan la depuración de programas y pruebas. Ejemplos de herramientas CASE libres son: ArgoUML, Use Case Maker, ObjectBuilder... ENTRONOS DE DESARROLLO 4 TEMA 1: DESARROLLO DE SOFTWARE 4. LENGUAJES DE PROGRAMACIÓN Los lenguajes de programación permiten desarrollar aplicaciones que son interpretadas por un sistema operativo para manejar hardware. ENTRONOS DE DESARROLLO 5 TEMA 1: DESARROLLO DE SOFTWARE 4. LENGUAJES DE PROGRAMACIÓN Un lenguaje de programación es el conjunto de:  Alfabeto: conjunto de símbolos permitidos.  Sintaxis: normas de construcción permitidas de los símbolos del lenguaje.  Semántica: significado de las construcciones para hacer acciones validas. Según su cercanía con Según la técnica de programación: lenguaje humano: Estructurados: usan la técnica de programación Alto nivel: más cercano al estructurada (C, Pascal, etc) humano Orientados a Objetos: técnica de orientación a Bajo nivel: ensamblador y objetos (C++, Java, Javascript,…) lenguaje máquina Visuales: permiten programar gráficamente( Visual Basic.Net, Borland, etc ENTRONOS DE DESARROLLO 6 TEMA 1: DESARROLLO DE SOFTWARE 4. LENGUAJES DE PROGRAMACIÓN LENGUAJES DE PROGRAMACIÓN ESTRUCTURADA: Sólo permite el uso de tres tipos de estructuras de control: Sentencias secuenciales. Sentencias selectivas (condicionales)  Sentencias repetitivas (iteraciones o bucles VENTAJAS: INCONVENIENTES: Fácil legibilidad, rapidez y Un único bloque sencillez No permite reutilización de código. Mantenimiento sencillo Estructura clara y simple ENTRONOS DE DESARROLLO 7 TEMA 1: DESARROLLO DE SOFTWARE 4. LENGUAJES DE PROGRAMACIÓN LENGUAJES DE PROGRAMACIÓN ORIENTADA A OBJETOS: Concibe a los programas como un conjunto de objetos que colaboran entre ellos para realizar acciones. Características: Los objetos del programa tendrán una serie de atributos que los diferencian unos de otros. Se define clase como una colección de objetos con características similares. Mediante los llamados métodos, los objetos se comunican con otros produciéndose un cambio de estado de los mismos. Los objetos son, pues, como unidades individuales e indivisibles que forman la base de este tipo de programación. VENTAJAS: INCONVENIENTES: o El código es reutilizable. o No es tan sencilla como la oErrores fácilmente localizables estructurada. ENTRONOS DE DESARROLLO 8 TEMA 1: DESARROLLO DE SOFTWARE 5. FASES DEL PROCESO DE DESARROLLO Las fases son: 5 ENTRONOS DE DESARROLLO 9 TEMA 1: DESARROLLO DE SOFTWARE 5. FASES DEL PROCESO DE DESARROLLO Las fases son: 1. Análisis: se especifican los requisitos funcionales y no funcionales del sistema 5 2. Diseño: división del sistema en partes y determinación de las funciones de cada una 3. Codificación: empleo de las tecnologías de programación seleccionadas 4. Pruebas: detección de errores y depuración 5. Documentación: generación de documentos sobre todas las etapas 6. Explotación o despliegue: instalación y configuración en los equipos del cliente 7. Mantenimiento: actualización y modificación de la aplicación en el futuro ENTRONOS DE DESARROLLO 10 TEMA 1: DESARROLLO DE SOFTWARE 5. FASES DEL PROCESO DE DESARROLLO  ANALISIS DE REQUISITOS Es la fase de mayor importancia en el desarrollo del proyecto y todo lo demás 5 dependerá de lo bien detallada que esté. Requisitos: Funcionales: funciones que realizar, respuestas de entradas, comportamiento en situaciones inesperadas, etc No funcionales: tiempos de respuesta, legislación aplicable, tratamiento ante simultaneidad de peticiones, etc. ENTRONOS DE DESARROLLO 11 TEMA 1: DESARROLLO DE SOFTWARE 5. FASES DEL PROCESO DE DESARROLLO  ANALISIS DE REQUISITOS Al final de esta fase se elabora ERS (Especificación de Requisitos de Software): 5 La planificación de las reuniones que van a tener lugar. Relación de los objetivos del usuario cliente y del sistema. Relación de los requisitos funcionales y no funcionales del sistema. Relación de objetivos prioritarios y temporización. Reconocimiento de requisitos mal planteados o que conllevan contradicciones, etc. ENTRONOS DE DESARROLLO 12 TEMA 1: DESARROLLO DE SOFTWARE 5. FASES DEL PROCESO DE DESARROLLO  DISEÑO Se divide el sistema en partes y se establecen qué relaciones habrá entre ellas y qué 5 funciones van a desempeñar. Se deben tomar decisiones importantes como: Entidades y relaciones de las bases de datos. Selección del lenguaje de programación que se va a utilizar. Selección del Sistema Gestor de Base de Datos. Etc. ENTRONOS DE DESARROLLO 13 TEMA 1: DESARROLLO DE SOFTWARE 5. FASES DEL PROCESO DE DESARROLLO  CODIFICACIÓN Se realiza el proceso de programación. Las características deseables de todo código 5 son: Modularidad: que este ́dividido en trozos más pequeños. Corrección: que haga lo que se le pide realmente. Fácil de leer: para facilitar su desarrollo y mantenimiento futuro. Eficiencia: que haga un buen uso de los recursos. Portabilidad: que se pueda implementar en cualquier equipo. ENTRONOS DE DESARROLLO 14 TEMA 1: DESARROLLO DE SOFTWARE 5. FASES DEL PROCESO DE DESARROLLO  CODIFICACIÓN Conviene distinguir distintos estados del código: 5 1. Código fuente: el código escrito por programadores 2. Código objeto: código binario resultado de compilar el código fuente. No es directamente interpretable por el ordenador 3. Código ejecutable: código binario resultante de enlazar el código objeto con las distintas rutinas, bibliotecas o dependencias necesarias. El SO es el encargado de cargar este código en la RAM y ejecutarlo ENTRONOS DE DESARROLLO 15 TEMA 1: DESARROLLO DE SOFTWARE 5. FASES DEL PROCESO DE DESARROLLO  PRUEBAS Normalmente, éstas se realizan sobre un conjunto de datos de prueba, que consisten 5 en un conjunto seleccionado y predefinido de datos límite a los que la aplicación es sometida. Tipos de pruebas: Pruebas unitarias: Consisten en probar, una a una, las diferentes partes de software y comprobar su funcionamiento (por separado, de manera independiente). JUnit es el entorno de pruebas para Java. Jest, Mocha o Jasmine son frameworks de testing para Javascript. ENTRONOS DE DESARROLLO 16 TEMA 1: DESARROLLO DE SOFTWARE 5. FASES DEL PROCESO DE DESARROLLO  PRUEBAS 5 Pruebas de integración: se realizan una vez que se han realizado con éxito las pruebas unitarias y consistirán en comprobar el funcionamiento del sistema completo: con todas sus partes interrelacionadas. La prueba final se denomina comúnmente Beta Test, ésta se realiza sobre el entorno de producción donde el software va a ser utilizado por el cliente (a ser posible, en los equipos del cliente y bajo un funcionamiento normal de su empresa). ENTRONOS DE DESARROLLO 17 TEMA 1: DESARROLLO DE SOFTWARE 5. FASES DEL PROCESO DE DESARROLLO  DOCUMENTACIÓN Tenemos que ir documentando el proyecto en todas las fases del mismo, para 5 pasar de una a otra de forma clara y definida. Una correcta documentación permitirá ́la reutilización de parte de los programas en otras aplicaciones, siempre y cuando se desarrollen con diseño modular. Hay tres grandes documentos en el desarrollo de software ENTRONOS DE DESARROLLO 18 TEMA 1: DESARROLLO DE SOFTWARE 5. FASES DEL PROCESO DE DESARROLLO  DESPLIEGUE Y EXPLOTACIÓN La explotación es la instalación, puesta a punto y funcionamiento de la aplicación 5 en el equipo final del cliente. 1. En el proceso de instalación, los programas son transferidos al computador del usuario cliente y posteriormente configurados y verificados. 2. Después viene la configuración, donde se asigna los parámetros de funcionamiento normal de la empresa y probamos que la aplicación es operativa. 3. Por último, se encuentra la fase de producción. Aquí la aplicación pasa a manos de los usuarios finales y se da comienzo a la explotación del software ENTRONOS DE DESARROLLO 19 TEMA 1: DESARROLLO DE SOFTWARE 5. FASES DEL PROCESO DE DESARROLLO  MANTENIMIENTO Siempre surgen errores que habrá́que ir corrigiendo y nuevas versiones del 5 producto mejores que las anteriores. Por ello, se pacta con el cliente un servicio de mantenimiento de la aplicación (que también tendrá un coste temporal y económico). El mantenimiento se define como el proceso de control, mejora y optimización del software. Su duración es la mayor en todo el ciclo de vida del software, ya que también comprende las actualizaciones y evoluciones futuras del mismo. ENTRONOS DE DESARROLLO 20 TEMA 1: DESARROLLO DE SOFTWARE 5. FASES DEL PROCESO DE DESARROLLO  MANTENIMIENTO Tipos de cambios: 5 Perfectivos: Para mejorar la funcionalidad del software. Evolutivos: El cliente tendrá́en el futuro nuevas necesidades. Por tanto, serán necesarias modificaciones, expansiones o eliminaciones de código. Adaptativos: Modificaciones, actualizaciones... para adaptarse a las nuevas tendencias del mercado, a nuevos componentes hardware, etc. Correctivos: La aplicación tendrá errores en el futuro (sería utópico pensar lo contrario). ENTRONOS DE DESARROLLO 21

Use Quizgecko on...
Browser
Browser