Para un buen profesional del desarrollo del software, tan importante es conocer las técnicas básicas y avanzadas de la programación y los principales lenguajes de programación actuales, como las herramientas y las estrategias que tiene a su disposición para llevar a cabo un trabajo lo más óptimizado posible.

Por ello, en este módulo se mostrarán a los alumnos los conocimientos y se demostrarán las herramientas y las técnicas actuales que son más útiles para ser utilizadas en el proceso de desarrollo de aplicaciones para alcanzar aplicaciones más eficientes.

En la unidad “Desarrollo de software” se introducirá un entorno de desarrollo de software específico: el Eclipse. Por medio de esta herramienta concreta se podrá experimentar la creación de aplicaciones de forma profesional, haciendo uso de utilidades típicas que ofrecen la mayoría de entornos de desarrollo, pero aplicadas al caso particular de este entorno (Eclipse). Esto debe permitir al alumno aplicar los conocimientos teóricos a un entorno dado.

Otro proceso importantísimo y muchas veces menospreciado en el desarrollo del software es el diseño y ejecución de pruebas. Se aprenderá, pues, en la unidad “Optimización de software”, la variedad de tipos de pruebas existentes para aprender a diseñar las que corresponda para una aplicación definida.

En la misma unidad se detallará el conjunto de documentación que debería tener toda aplicación para garantizar un óptimo funcionamiento así como un mantenimiento adecuado. Actualmente, existen multitud de herramientas y de utilidades integradas o no en las herramientas de desarrollo de software que nos facilitan todo este proceso de prueba y documentación de aplicaciones. Haremos un repaso de las principales en este mismo apartado.

En la unidad “Introducción al diseño orientado a objetos” estudiaremos los diagramas UML (diagramas referentes a la Unified Modeling Language), que nos permitirán documentar la parte de análisis y diseño de las aplicaciones.

Así pues, conoceremos las notaciones que habrá emplear para confeccionar cada uno de los principales diagramas, así como la utilidad de los mismos.

Es imprescindible, para alcanzar los resultados de aprendizaje esperados, que el alumno no se limite a la lectura de los materiales teóricos. Sobre todo en la unidad 1, es necesario que el alumno pruebe el entorno de desarrollo Eclipse que se trabaja y que haga todas las actividades que pueda.

Esto permitirá adquirir las habilidades de utilización de entornos concretos y la familiarización con las herramientas actuales específicas existentes.

Todo el módulo permitirá al estudiante obtener una visión general del proceso de desarrollo del software, visión imprescindible para cualquier programador de aplicaciones que quiera dedicarse profesionalmente a la creación o el mantenimiento de aplicaciones informáticas.

1. Introducción al Desarrollo del Software

A esta primera unidad formativa, denominada “Desarrollo de software”, trabajamos los conceptos más importantes a la hora de entender los entornos de desarrollo y sus características. El objetivo final de los entornos de desarrollo es el dar facilidades a los programadores para crear sus aplicaciones y hay que entender cómo trabajan estos para entender las funcionalidades que los entornos ofrecen.

Conceptos importantes que vemos a lo largo de la unidad son:

  • programa informático.
  • código Fuente.
  • código objeto.
  • código Ejecutable.
  • máquinas virtuales.
  • Lenguajes de programación.

Los lenguajes de programación se clasifican en cinco generaciones, desde los lenguajes de primera generación hasta los lenguajes de quinta generación. Esta clasificación también expone la evolución de los lenguajes de programación y sus características.

También es importante tener claramente identificados los roles de los componentes del equipo de proyecto que participarán en el desarrollo de la aplicación informática. Estos pueden ser:

  • Partes interesadas ( stakeholders ).
  • Jefe de Proyecto.
  • consultores.
  • analistas.
  • Desarrolladores.

Un proyecto informático se divide en fases, actividades y tareas, dividiendo toda acción que se llevará a cabo en uno de estos tres niveles de concreción.

Las fases de un proyecto informático son:

  • Estudio de viabilidad del sistema.
  • Análisis del sistema de información.
  • Diseño del sistema de información.
  • Construcción del sistema de información.
  • Implantación y aceptación del sistema.

En la segunda parte de la unidad formativa vemos la utilización de una herramienta de desarrollo de código abierto como es el Eclipse. Aprovechamos esta herramienta para mostrar las funciones y las características de un entorno de desarrollo, como:

  • Editor de texto.
  • Compilador.
  • Intérprete.
  • Depurador.
  • Tratamiento de bases de datos.
  • Control de versiones.
  • Refactorización.
  • Conectores.
  • Documentación y ayuda.

Unidad 1: Desarrollo del Software

2. Introducción a la Optimización del Software

En esta unidad formativa segunda, llamada “Optimización de software” conocemos herramientas y métodos muy importantes para mejorar el código de programación que se desarrolla en un proyecto de creación de aplicaciones informáticas.

Es muy importante esta mejora del código de programación para facilitar futuras acciones, tanto modificaciones, mejoras o ampliaciones, sobre este. Lo primero que analizamos es donde habrá que llevar a cabo pruebas a lo largo del ciclo de vida de un proyecto informático.

En todas las fases de este ciclo de vida será importante realizar pruebas. Tanto la toma de requerimiento de los clientes o usuarios, como el análisis y diseño del sistema, como el desarrollo y la transferencia del sistema desarrollado habrá que validar y verificar las decisiones y las acciones tomadas.

Para ello será necesario establecer una serie de pasos a seguir en la realización de las pruebas. Se trata de una serie de procedimientos, casi como un proyecto independiente de la creación del proyecto informático, pero integrado en éste. La llamaremos Plan de pruebas .

Una buena guía para determinar qué contendrá un buen plan de pruebas lo podemos encontrar a continuación, en la enumeración de algunos de los contenidos en el Plan de pruebas.

  • Descripción del plan de pruebas. Define el alcance del plan de pruebas, el tipo de prueba y sus propiedades, así como los elementos del software que se quieren probar.
  • Elementos del software a probar. Determina los elementos del software que se deben tener en cuenta en el plan de pruebas, así como las condiciones mínimas que deben cumplirse para llevarlo cabo.
  • Elementos del software que no se deben probar. También es importante definir los elementos que no se deberán tener en cuenta al plan de pruebas.
  • Estrategia del plan de pruebas. Define la técnica a utilizar en el diseño de los casos de prueba, como por ejemplo la técnica de caja blanca o de caja negra, así como las herramientas que se utilizarán o, incluso, el grado de automatización de las pruebas.
  • Definición de la configuración del plan de pruebas. Define las circunstancias bajo las que el plan de pruebas podrá ser alterado, finalizado, suspendido o repetido.
  • Documentos a entregar. Define los documentos a entregar durante el plan de pruebas y al finalizarlo.
  • Tareas especiales. Define las manchas necesarias para preparar y ejecutar las pruebas.
  • Recursos. Para cada tarea definida dentro del plan de pruebas, se deberá asignar uno o varios recursos, que serán los encargados de llevarla a cabo.
  • Responsables y Responsabilidades. Se define el responsable de cada una de las tareas previstas en el plan.
  • Calendario del plan de pruebas. En el calendario quedan descritas las tareas que se deberán ejecutar, indicando sus dependencias, los responsables, las fechas de actuación y la duración, así como las metas del plan de pruebas.

Existen muchos tipos de pruebas que podremos llevar a cabo en las diferentes fases de un proyecto informático:

  • Estructurales o de caja blanca.
  • Funcionales o de caja negra.
  • De integración.
  • De carga y aceptación.
  • De sistema y de seguridad.
  • De regresión y de humo.

Otros aspectos importantes en el desarrollo de un proyecto informático son las herramientas de control de versiones y de documentación del proyecto.

En toda la unidad didáctica complementamos el estudio de los diferentes conceptos con el entorno de desarrollo Eclipse, que gracias a la ayuda de complementos permite la elaboración de los diagramas y la generación automatizada de código.

3. Introducción al Diseño Orientado a Objetos

En esta unidad didáctica trabajamos el estudio del desarrollo de software orientado al objeto, concretamente de la fase que corresponde al diseño de un proyecto de creación de software.

Para trabajar estos contenidos utilizamos el lenguaje llamado UML, lenguaje modelado unificado. De este lenguaje consideramos el análisis de requerimientos y el diseño de la solución, que consta de la elaboración de los modelos de dominio y de negocio.

El UML se basa en diagramas que establecen las especificaciones y documentación de cualquier sistema. Estos diagramas están clasificados nos diagramas estáticos y diagramas dinámicos, componiendo un total de 14 diagramas.

Los diagramas llamados diagramas estáticos ofrecen la visión estática de un sistema. Esta visión da más valor a los elementos que se encontrarán en el modelo del sistema desde un punto de vista de la estructura del sistema. Describen aspectos del sistema que son estructurales y, por tanto, permanentes (lo que el sistema tiene).

Dentro de los diagramas estáticos o diagramas de estructura se pueden encontrar 7 tipos de diagramas, que son:

  • Diagrama de paquetes, que representa esencialmente las relaciones de diferentes tipos entre los contenidos de diferentes paquetes de un modelo.
  • Diagrama de clases, que probablemente muchos consideran el diagrama principal, dado que describe clasificadores de todo tipo y diferentes tipos de relaciones entre ellos antes de usarlos en otros diagramas.
  • Diagrama de objetos, que representa instancias de clasificadores definidos en un diagrama de clases previo y relaciones entre ellas.
  • Diagrama de estructuras compuestas, que describe casos en que, o bien las instancias de un clasificador tienen como partes instancias de otros, o bien en el comportamiento ejecutando de un clasificador participan instancias de otros.
  • Diagrama de componentes, que es un diagrama de clases ya la vez de estructuras compuestas simplificado y más adecuado para determinadas tecnologías de programación.
  • Diagrama de despliegue, que describe la configuración en tiempo de ejecución de un software especificado, normalmente, por un diagrama de componentes.
  • Diagrama de perfil, permite adaptar o personalizar el modelo con construcciones que son específicas de un dominio en particular, de una determinada plataforma, o de un método de desarrollo de software …

Los diagramas llamados dinámicos ofrecen una visión dinámica o de comportamiento del sistema. En este tipo de visión se da más valor al comportamiento dinámico del sistema, es decir, a lo que debe pasar en el sistema. Con los diagramas de comportamiento se muestra cómo se modela la col • colaboración entre los elementos del sistema y sus cambios de estado. Representan lo que puede hacer el sistema modelizado.

Dentro de los diagramas dinámicos o diagramas de comportamiento se pueden encontrar 7 tipos de diagramas, que son:

  • Diagrama de casos de uso, que considera los comportamientos de un sistema principalmente desde el punto de vista de las interacciones que tiene con el mundo exterior.
  • Diagrama de estados, en el que se describen las diferentes situaciones -estats- desde el punto de vista de sus comportamientos, de las instancias de un clasificador, a la vez que las causas, condiciones y consecuencias de los cambios de una situación a otra .
  • Diagrama de actividades, en el que se describe un comportamiento complejo en forma de secuencias condicionales de actividades componentes.

Diagrama de interacción, que describe comportamientos emergentes y tiene las siguientes variantes:

  • Diagrama de secuencias, que hace énfasis en la secuencia temporal de las participaciones de las diferentes instancias.
  • Diagrama de comunicaciones, que se basa directamente en una estructura compuesta.
  • Diagrama de visión general de la interacción, que da una visión resumida del comportamiento emergente.
  • Diagrama temporal, que se basa en un diagrama de estados previo o más de un tiempo que pone énfasis en los cambios de estado a lo largo del tiempo.

En toda la unidad didáctica complementamos el estudio de los diferentes diagramas con el entorno integrado de desarrollo Modelio. Es un entorno de código abierto basado en Eclipse que permite la elaboración de los diagramas y la generación automatizada de código.

Relacionados

🥇 ▷ Hoja de ruta de desarrollo de aplicaciones web (DAW)

👷‍♂️ 💪 SEGUIMOS EN CONSTRUCCIÓN 💪 👷‍♂️

🛒 Los Mejores Chollos de Amazon, ¡Agrégalos a tu Lista de Deseos!

Contenido traducido a 11 de Octubre de 2020, por Pablo Álvarez Corredera. Licencia: CCO creado inicialmente por el Instituto Abierto de Cataluña.

Breve descripción de en qué consiste el módulo de Entornos de Desarrollo