Guía rápida: ¿Cómo aplicar la ingenieria del software?. Definiciones + ejemplo práctico.
Tema 1: ¿Qué es?
La ingenieria del software, es el conjunto de elementos que son aplicados en la producción de productos y servicios de software.
Una vez diligenciado cada elemento estaremos generando los siguientes beneficios:
* Generar productos de software con altos estándares de calidad.
* Apoyar en mantener una relación sincronizada entre la arquitectura de negocio y la arquitectura de la aplicación.
* Tener productos de software fáciles de escalar.
Las buenas prácticas para materializar los beneficios enunciados, son las siguientes:
* Establecer una comunicación clara y efectiva para definir y formalizar el alcance del producto de software con el usuario, los proveedores, el equipo y la dirección.
* Establecer con el cliente, el equipo y los proveedores las características que debe cumplir la documentación del software a nivel de proyecto y producto.
* Establecer con el cliente, el equipo y los proveedores el proceso de calidad y ejecución de las pruebas para garantizar la puesta en producción de los productos.
* Establecer dentro del flujo del producto y ciclo de vida de desarrollo los elementos que serán automatizados para incrementar la eficiencia.
* Establecer con el cliente, el equipo y los proveedores el proceso para mantener el producto de software en producción y la forma como debe evolucionar sincronizando la arquitectura del negocio con la arquitectura de la aplicación para generar mejora continua.
* Establecer con el equipo la forma de integrar tecnologías y mantener el producto de software actualizado.
* Las condiciones para aplicar correctamente las buenas prácticas enunciadas, se explican en pre-condiciones y post-condiciones.
Tema 2: Glosario.
Herramientas para la ingenieria de sistemas.
Herramienta | Descripción |
---|---|
UML: Diagrama de caso de uso | Es una representación visual que permite realizar el levantamiento de requerimientos de una manera abstracta para ser socializada con el usuario y realizar las correcciones respectivas antes de comenzar su implementación. |
UML: Diagrama de clases | Es una representación visual que permite identificar las clases del sistema, sus atributos, métodos, y las relaciones entre objetos. |
UML: Diagrama de objetos | Es una representación visual que permite identificar para cada objeto sus métodos y atributos los cuales serán transformados en código fuente dentro de una aplicación de software. |
UML: Diagrama de paquetes | Es una representación visual que permite agrupar y organizar todos los elementos del sistema de software. |
UML: Diagrama de secuencia | Es una representación visual que permite identificar la transmisión de datos entre los objetos dentro de un escenario del software. |
UML: Diagrama de estructura compuesta | Es una representación visual que contiene los detalles de un objeto y su relación con propiedades para producir un comportamiento. |
UML: Diagrama de estados | Es una representación visual que permite identificar el comportamiento de los objetos cuando se encuentran en ejecución en un momento o escenario especifico. |
UML: Diagrama de actividades | Es una representación visual que permite identificar las reglas de negocio o validaciones que se realizará dentro de un caso de uso y su definición a clases y métodos dentro del sistema. |
UML: Diagrama de componentes | Es una representación visual que permite identificar la colección de funciones y artefactos de un componente de software que tiene una responsabilidad única previamente definida. |
UML: Diagrama de despliegue | Es una representación visual que permite identificar los artefactos de software que requiere una aplicación para su correcto funcionamiento. |
Programación estructurada | Es una forma de construir código fuente utilizando únicamente subrutinas y funciones. |
Programación modular | Es una forma de construir código fuente orientado a implementar funcionalidades de forma organizada para dividir un producto de software. |
Programación orientada a objetos | Es una forma de construir código fuente promocionando la reutilización de código y optimización del tiempo en el proceso de implementación de un software. |
Programación orientada a eventos | Es una forma de construir código fuente, cuyo objetivo es generar instrucciones especificas para soportar la acción que realiza un usuario en un objeto visual del software. |
Los comandos básicos SQL | Es el conjunto de palabras reservadas dentro del lenguaje SQL para realizar operaciones básicas de transacción con los datos, filtrar los datos haciendo uso de operadores lógicos y realizar operaciones matemáticas. |
Los comandos de estructura SQL | Es el conjunto de palabras reservadas dentro del lenguaje SQL para realizar operaciones que permitan construir el modelo de datos. |
Los comandos avanzados SQL | Es el conjunto de palabras reservadas dentro del lenguaje SQL que permite relacionar entidades y tablas de la base de datos para realizar operaciones con los datos. |
El plan de arquitectura de software | Es una estrategia que tiene como objetivo, la definición del diseño, estructura y comportamiento del software. |
El plan escritura del código fuente | Es una estrategia que tiene como objetivo, la definición y relación de los patrones de diseño de programación que serán utilizados durante la implementación de un software. |
El patrón de diseño de software: Factory method | Es una técnica que tiene como objetivo, implementar una clase haciendo uso de subclases y agrupando los métodos de la clase entre las subclases creadas. |
El patrón de diseño de software: Singleton | Es una técnica que tiene como objetivo, que una clase solo pueda construir e instanciar un objeto. |
El patrón de diseño de software: Observer | Es una técnica que tiene como objetivo, establecer una comunicación entre objetos, para que entre ellos conozcan su cambio de estado. |
El patrón de diseño de software: Strategy | Es una técnica que tiene como objetivo, establecer el estándar que debe cumplir los objetos para intercambiar mensajes. |
El patrón de diseño de software: Adapter | Es una técnica que tiene como objetivo, el trabajo conjunto de clases que no son compatibles entre sí. |
El patrón de diseño de software: Builder | Es una técnica que tiene como objetivo, organizar y simplificar las clases complejas del software para generar objetos fáciles de usar. |
El patrón de diseño de software: State | Es una técnica que tiene como objetivo, el cambio de comportamiento de un objeto tomando como referencia su estado actual. |
El diccionario de datos | Es un documento en donde se relaciona las tablas con sus campos y estructura dentro de la base de datos con el objetivo de negocio. |
UML: Diagrama de tiempos | Es una representación visual que permite identificar la duración de transmisión de datos entre los objetos dentro de un escenario del software. |
UML: Diagrama de colaboración | Es una representación visual que permite identificar las relaciones e interacciones entre objetos de software. |
El plan de mantenimiento del software | Es una estrategia que tiene como objetivo, la definición de procesos para garantizar la operatividad y escalamiento del software en ambiente productivo. |
El plan de calidad del software | Es un documento que define los estándares, procedimientos y responsabilidades para asegurar la entrega de un producto que satisfaga las expectativas de los usuarios y las partes interesadas. |
Tema 3: Sobre el autor.
Juan David López Pava: Profesional en administración de empresas y desarrollo de software con certificaciones del PMI y Scrum Institute, apasionado por la transformación digital y la dirección de proyectos de tecnología.