Libro Digital de Ingenieria en Software: Metodologías

Page 1

Metodologías

Alfonso Valencia Mockabeé Universidad Itson Ingeniería en Software

Prólogo

Elprincipalobjetivo de este libro es presentar ypreparar a los lectores quienes se interesan en estudiar la carrera de Ingeniería en Software, donde hay varios objetivos que la Ingeniería en Software tiene. Uno de los ejemplos son: Diseño de programas informáticos adaptados a las necesidades y exigencias de los clientes, Solucionar problemas de programación, etc.

Para entender de qué se trata la ingeniería en Software, es necesario saber sobre los temas principales de esta rama de la Ingeniería.

3
pág.

Índice

Capítulo I: Introducción a la Ingeniería en Software

Capítulo II: Metodologías....................................................................................................... 10 2.1 Sistemas de Información................................................................................................. 11 2.1.1. Tipos de Sistemas de Información: 11 2.2 El Ciclo de vida del Sistema de Información 14 2.2.1 Autores del ciclo de vida de Sistema de Información......................................................14 2.3 Modelos de Desarrollo del Software.............................................................................. 16

Capítulo III: Metodologías Ágiles 18 3.1 Metodologías Ágiles 19 3.1.1 Filosofía Agile..................................................................................................................................19 3.2 Las Ciencias de Computación ......................................................................................... 20 Bibliografía 21

pág. 4
........................................................... 5 1.1 Introducción 6 1.2 Software y Hardware ......................................................................................................... 7 1.2.1 Software...............................................................................................................................................7 1.2.2 Hardware.............................................................................................................................................8

Capítulo I: Introducción ala Ingeniería en Software

pág. 5

1.1 Introducción

La ingeniería de software es una disciplina formada por un conjunto de métodos, herramientas y técnicas que se utilizan en el desarrollo de los programas informáticos

Esta disciplina trasciende la actividad de programación, que es el pilar fundamental a la hora de crear una aplicación. El ingeniero de software se encarga de toda la gestión del proyecto para que éste se pueda desarrollar en un plazo determinado y con el presupuesto previsto. La ingeniería de software, por lo tanto, incluye el análisis previo de la situación, el diseño del proyecto, el desarrollo del software, las pruebas necesarias para confirmar su correcto funcionamiento y la implementación del sistema.

Cabe destacar que el proceso de desarrollo de software implica lo que se conoce como ciclo de vida del software, que está formado por cuatro etapas: concepción, elaboración, construcción y transición.

La concepción fija el alcance del proyecto y desarrolla el modelo de negocio; la elaboración define el plan del proyecto, detalla las características y fundamenta la arquitectura; la construcción es el desarrollo del producto; y la transición es la transferencia del producto terminado a los usuarios.

Una vez que se completa este ciclo, entra en juego el mantenimiento del software. Se trata de una fase de esta ingeniería donde se solucionan los errores descubiertos (muchas veces advertidos por los propios usuarios) y se incorporan actualizaciones para hacer frente a los nuevos requisitos. El proceso de mantenimiento incorpora además nuevos desarrollos, para permitir que el software pueda cumplir con una mayor cantidad de tareas.

Un campo directamente relacionado con la ingeniería de software es la arquitectura de sistemas, que consiste en determinar y esquematizar la estructura general del proyecto, diagramando su esqueleto con un grado relativamente alto de especificidad y señalando los distintos componentes que serán necesarios para llevar a cabo el desarrollo, tales como aplicacionescomplementarias ybasesdedatos. Setratadeunpuntofundamentaldelproceso, y es muchas veces la clave del éxito de un producto informático.

pág. 6

1.2 Software y Hardware

Para que un sistema informático funcione de forma correcta es necesario que su hardware y su software trabajen en comandita ejecutando las tareas que se les soliciten. Aunque existen diferencias categóricas entre los dos conceptos, ambas partes del ordenador son fundamentales.

El hardware y el software son dos elementos básicos de un ordenador. Ambos se retroalimentan, de manera que sin uno de ellos el funcionamiento de un equipo informático no sería posible. Por lo tanto, son complementarios, aunque la diferencia entre ellos es más que evidente: el hardware se puede ver y tocar porque es tangible, pero el software no tiene una forma física.

Diferencias entre Software y Hardware

Software

o Sistema Operativo

o Programas de Aplicación

o Lenguajes de Programación

o Datos

1.2.1 Software

Hardware

o Dispositivos de entrada o Unidad central de procesamiento o Dispositivos de Almacenamiento o Dispositivos de Salida

El Software son los programas de aplicación y los sistemas operativos que permiten que la computadora pueda desempeñar tareas inteligentes, dirigiendo a los componentes físicos o hardware con instrucciones y datos a través de diferentes tipos de programas. El concepto de software incluye todo lo que es intangible en una computadora, a esto nos referimos a lo que no se toca, por ejemplo los sistemas operativos y programas. El software, según las funciones que realiza, puede ser clasificado en:

Software de Sistema Operativo

Software de Aplicación

Software de Programación

pág. 7

1.2.1.1 Tipos de Software

Software de Aplicación: programas de aplicaciones o en algunos casos aplicaciones, al conjunto de los programas informáticos generalmente instalados en el sistema por el usuario, y diseñados para llevar a cabo un objetivo determinado y concreto, de tipo lúdico, instrumental, comunicativo, informativo, etc.

Software de Gestión: Es un sistema informático integrado por múltiples herramientas que individualmente se utilizan para ejecutar tareas administrativas, yque en conjunto, simplifica los procesos operativos, productivos y burocráticos de una organización.

Software de Programación: Es el conjunto de herramientas que permiten al programador desarrollar programas de informática utilizando diferentes alternativas de metodología y lenguajes.

- Software de Sistema: Consiste en un software que sirve de soporte o base para controlar e interactuar con el hardware y otros programas; en contraposición del llamado software de aplicación. Como ejemplos tenemos los sistemas operativos y los controladores.

1.2.2 Hardware

El hardware consiste en aquellos elementos físicos y tangibles de la informática, es decir, todo lo que podemos tocar, y forma parte de una computadora o equipo informático. Es decir, todos los elementos electrónicos, mecánicos y componentes informáticos que hay dentro deunsistema(MemoriaRAM, CPU,discosSSD…)sonpartedel hardware de un ordenador.

Existen por una parte los elementos de hardware que son externos, a los que llamamos periféricos.Estoes,elratón,elteclado,laimpresora…Sonpartedeunsistemainformático, pero no son componentes internos. Los componentes internos van por dentro de la torre, por lo que generalmente no están a la vista.

pág. 8

1.2.2.1 Tipos de Hardware

- Hardware de Procesamiento: Es aquel que se encarga de ejecutar las instrucciones que se den desde el propio software del dispositivo. En otras palabras, la misión del hardware de procesamiento es realizar las órdenes que se vayan dando por parte del usuario del dispositivo vía software.

Hardware de Almacenamiento: Es un hardware que se utiliza principalmente para almacenar datos. Todas las computadoras de escritorio, portátiles, tablets y teléfonos inteligentes tienen algún tipo de dispositivo de almacenamiento.

- Hardware de Entrada y Salida: Sonlos equipos físicos conectados a la computadora. Estos dispositivos permiten comunicar información entre el usuario y la computadora o manejar un soporte de información.

- Hardware de Periféricos Mixtos: Son los dispositivos que ingresan información desde el exterior y también muestran al usuario los resultados de las operaciones.

pág. 9

Capítulo II: Metodologías

pág. 10

2.1 Sistemas de Información

Un Sistema de Información (SI) es un conjunto de componentes interrelacionados que trabajan juntos para recopilar, procesar, almacenar y difundir información para apoyar la toma de decisiones. Además, apoyan la coordinación, control, análisis y visualización de una organización.

Por otro lado, la tecnología TI describe cualquier tecnología que impulse o permita el almacenamiento, procesamiento y flujo de comunicación dentro de una organización. Todo lo relacionado con computadoras: software, redes, intranets, sitios web, servidores, bases de datos y telecomunicaciones queda bajo el paradigma de TI.

La mayoría de las empresas modernas dependen, en gran medida, de los sistemas para la gestión de sus operaciones y la toma de decisiones; desde el correo electrónico, hasta la administración de la base de datos y sitios web.

La información comienza como flujo de datos sin procesar, representan eventos que ocurren en organizaciones o en el entorno físico antes de que se hayan organizado en una forma que las personas puedanentender yusar. Son la materia prima para elprocesamiento yse refieren a hechos, eventos ytransacciones. Por lo tanto, elpropósito de los SI es convertir los recursos en bruto en información útil que pueda utilizarse para tomar decisiones en una organización. Por ejemplo, los hospitales tienengrandes bases de datos de pacientes para lograr unhistorial clínico eficiente. Las universidades cuentan con sistemas para el manejo del personal, alumnos, transacciones de pagos, así como redes en expansión para administrar el campus. Incluso una pequeña empresa dedicada a la comida con envíos a domicilio necesita un sistema de gestión y seguimiento de pedidos.

2.1.1.

-

Tipos de Sistemas de Información:

1) Sistemas de Procesamiento de Transacciones: Los sistemas de procesamiento detransacciones (TPS por sus siglas en inglés) sonlos sistemas empresariales básicos que sirven al nivel operacional de la organización. Un sistema de procesamiento de transacciones es un sistema computarizado que realiza yregistralastransaccionesrutinariasdiariasnecesariasparaelfuncionamiento de la empresa. Se encuentran en el nivel más bajo de la jerarquía organizacional y soportan las actividades cotidianas del negocio.

pág. 11

-

2) Sistemas de control de procesos de negocio: Los sistemas de control de procesos de negocio (BPM por sus siglas en inglés) monitorizan y controlan los procesos industriales o físicos, como puede ser la refinaciónde petróleo, generación de energía o los sistemas de producción de acero en una planta siderúrgica.

3) Sistemas de colaboración empresarial: Los sistemas de colaboración empresarial (ERP por sus siglas en inglés) son uno de los tipos de sistemas de información más utilizados. Ayudan a los directivos de una empresa a controlar el flujo de información en sus organizaciones. Se trata de uno de los tipos de sistemas de información que no son específicos de un nivel concreto en la organización, sino que proporcionan un soporte importante para una amplia gama de usuarios. Estos sistemas de información están diseñados para soportar tareas de oficina como sistemas multimedia, correos electrónicos, videoconferencias y transferencias de archivos.

-

4) Sistemas de Información de Gestión: Los sistemas de información de gestión (MIS por sus siglas en inglés) son un tipo de sistemas de información que recopilan y procesan información de diferentes fuentes para ayudar en la toma de decisiones en lo referente a la gestión de la organización. Los sistemas de información de gestión proporcionan información en forma de informes y estadísticas.

-

5) Sistema de Apoyo a la toma de Decisiones: Un sistema de apoyo a la toma de decisiones o de soporte a la decisión (DSS por sus siglas en inglés) es un sistema basado en ordenadores destinado a ser utilizado por un gerente particular o por un grupo de gerentes a cualquier nivel organizacional para tomar una decisión en el proceso de resolver una problemática semi estructurada. Los sistemas de apoyo a la toma de decisiones son un tipo de sistema computarizado de información organizacional que ayuda al gerente en la toma de decisiones cuando necesita modelar, formular, calcular, comparar, seleccionar la mejor opción o predecir los escenarios.

-

6) Sistema de Información Ejecutiva: Los sistemas de información ejecutiva (EIS por sus siglas en inglés) proporcionan un acceso rápido a la información interna y externa, presentada a menudo en formato gráfico, pero con la capacidad de presentar

pág. 12

datos básicos más detallados si es necesario. Los sistemas información ejecutiva proporcionan información crítica de una amplia variedad de fuentes internas y externas en formatos fáciles de usar para ejecutivos y gerentes.

Figura 1. Niveles de Sistema de Información

pág. 13

2.2 El Ciclo de vida del Sistema de Información

Es un sistema, automatizado o manual, que engloba a personas, máquinas y/o métodos organizados para recopilar, procesar, transmitir datos que representan información. Un sistema de información engloba la infraestructura, la organización, el personal y todos los componentes necesarios para la recopilación, procesamiento, almacenamiento, transmisión, visualización, diseminación y organización de la información.

Cualquier sistema de información va pasando por una serie de fases a lo largo de su vida. Su ciclo de vida comprende una serie de etapas entre las que se encuentran las siguientes:

Planificación

- Análisis - Diseño Implementación - Pruebas Instalación Uso y Mantenimiento

- Delimitación del ámbito del proyecto Estudio de viabilidad Análisis de riesgos

2.2.1 Autores del ciclo de vida de Sistema de Información

Kendall y Kendall: Según su metodología, elciclo de vida de unSistema consta en 7 partes, siendo la primera la identificación del problema, identificación de requisitos de información, análisis de las necesidades del sistema, diseño de sistema recomendado, desarrollo y documentación, implementación y evaluación.

James Senn: Según su metodología, es el conjunto de actividades que los diseñadores, analistas y usuarios realizan para desarrollar e implementar un Sistema de información. Llorens Fábregas: Según Llorens, su modelo lo permite proyectar estrategias, procesos y flujos de datos de la empresa al igual que las interrelaciones entre procesos y datos, con el

pág. 14

findedesarrollar unplandesistemade informacióncapazdeguiar eldesarrollo deunsistema que permita dar soporte al área en estudio en el cumplimiento de sus adjetivos.

pág. 15

Figura 2. Diagrama de ciclo de Vida del SI

2.3 Modelos de Desarrollo del Software

Los Modelos de desarrollo de software son una colección de técnicas y sistemas organizacionales para crear software de computadora. El objetivo de los diversos enfoques es estructurar equipos de trabajo para que puedan construir las funcionalidades del programa de la manera más eficiente posible. Modelos de desarrollo de software proporcionar un marco para controlar el desarrollo de los sistemas de información. Desde la planificación hasta el mantenimiento, un Ciclo de vida deldesarrollo de programas (SDLC) describe todos los procesos en un proyecto de desarrollo de software. Estos marcos incluyen el desarrollo de programas, así como las herramientas necesarias para ayudar en el proceso de desarrollo.

Modelo de Cascada: Es una metodología para gestión de proyectos que se divide en distintas fases. Cada fase comienza recién cuando ha terminado la anterior. Esteenfoque para la gestiónde proyectos surgió a partir de los sectoresde fabricación y construcción, en los que cada hito debe estar finalizado para poder avanzar con el proceso de producción. Por ejemplo, no puedes construir las paredes de una casa sin los cimientos. A pesar de que se inició en la fabricación, la gestión de proyectos waterfall se ha adaptado a las necesidades de muchos otros sectores diferentes, incluso al del desarrollo de software. 

Modelo Incremental: El incrementales un modelo detipo evolutivo que está basado en varios ciclos Cascada realimentados aplicados repetidamente, con una filosofía iterativa. El modelo incremental es útil sobre todo cuando el personal necesario para una implementación completa no está disponible. 

Modelo Espiral: Es una combinación entre el modelo waterfall y un modelo por iteraciones. El proceso pasa por distintas etapas, desde la de conceptualización, siguiendo el desarrollo, luego una fase de mejoras, para finalizar con el mantenimiento. Dentro de cada etapa, tendremos una serie de fases que transcurren desde la planificación, pasando por el análisis de riesgos, el desarrollo y finalizando en la evaluación de lo realizado. Se incorporatambiénuna fase de enlace entreetapas, para facilitar la transición entre las mismas.

pág. 16

Modelo Evolutivo: El desarrollo evolutivo consta del desarrollo de una versión inicial que luego de exponerse se va refinando de acuerdo de los comentarios o nuevos requerimientos por parte del cliente o del usuario final. Las fases de especificación, desarrollo y validación se entrelazan en vez de separarse. 

Modelo de Prototipo: Es utilizado principalmente en el desarrollo de software para ofrecer al usuario una visión previa de cómo será el programa o sistema. Se le dice de desarrollo evolutivo al modelo de prototipo porque evoluciona hasta convertirse en el producto final. 

DesarrollodeAplicación: Eselconjunto deprocesos yprocedimientosinvolucrados en la escritura de software para dispositivos informáticos pequeños e inalámbricos, como teléfonos inteligentes y otros dispositivos portátiles.

Figura 3. Criterios para la selección de un modelo de Ciclo de Vida de Desarrollo de Software

pág. 17

Capítulo III: Metodologías Ágiles

pág. 18

3.1 Metodologías Ágiles

Las metodologías ágiles son una manera de trabajar rápida, eficaz y flexible. Su objetivo es desarrollar productos y servicios de calidad adaptados a las necesidades de unos clientes y a las preferencias de un mercado que cambian a un ritmo vertiginoso. Son aquellas que permiten adaptar la forma de trabajo a las condiciones del proyecto.

Scrum: Es un marco que permite el trabajo colaborativo entre equipos. Cuando un equipo entrena para un partido, Scrum anima a los equipos a aprender a través de las experiencias, a auto organizarse mientras aborda un problema y a reflexionar sobre sus victorias y derrotas para mejorar continuamente.

XP: Es una metodología de desarrollo que pertenece a las conocidas como metodologías ágiles, cuyo objetivo es el desarrollo y gestión de proyectos con eficiencia, flexibilidad y control.

- Kanban: Es una forma de ayudar a los equipos a encontrar un equilibrio entre el trabajo que necesitan hacer y la disponibilidad de cada miembro del equipo. La metodología Kanban se basa en una filosofía centrada en la mejora continua, donde las tareas se “extraen” de una lista de acciones pendientes en un flujo de trabajo constante.

La metodología Kanban se implementa por medio de tableros Kanban. Se trata de un método visual de gestión de proyectos que permite a los equipos visualizar sus flujos de trabajo y la carga de trabajo. En un tablero Kanban, el trabajo se muestra en un proyecto en forma de tablero organizado por columnas.

3.1.1 Filosofía Agile

Es mucho más que una metodología para el desarrollo de proyectos que precisan de rapidez y flexibilidad, es una filosofía que supone una forma distinta de trabajar y de organizarse. La filosofía Agile nació como una metodología para el desarrollo de proyectos, con el objetivo de adaptar los mismos a las necesidades de rapidez y flexibilidad que demandaba una economía globalizada e hiper comunicada. Así, la forma de trabajar tradicional, jerárquica y compartimentada en silos, quedaba en muchos aspectos, obsoleta, incapaz de adaptarse a las exigencias de los clientes.

pág. 19

3.2 Las Ciencias de Computación

Las ciencias de la computación son todas las ramas de estudio e investigación que utilizan información y algoritmos para la resolución de problemas informáticos. 

Teoría de la computación: Conjunto de conocimientos que tienen como objetivo sistematizar de forma lógica un proceso. 

Estructura de datos: Uso ytratamiento dedatos de cara aconseguir nuestroobjetivo de la forma más eficiente posible. 

Arquitectura informática: Se basa en formas y metodologías en la que se construyen sistemas de datos y computadoras. 

Programación: Consiste en la puesta en funcionamiento de las estructuras de datos mediante un código informático. 

Computación Gráfica: Se encarga de estudiar como los datos pueden ser manipulados y transformados en representaciones visuales que un ser humano entienda.

Figura 4. Descifrando las Metodologías Ágiles

pág. 20

Bibliografía

Daniel A Villaroel C (2018), ‘Metodología Kendall y Kendall’ Recuperado de: Metodología Kendall y Kendall by Daniel A Villarroel C (prezi.com)

Ecdisis Estudio (2021), ‘¿Qué es un Software?’ Recuperado de: ¿Qué es un software? Ecdisis Estudio

Empresa y Tecnología (2021), ‘¿Qué son las Metodologías Ágiles?’ Recuperado de: ¿Qué son las metodologías ágiles? | Blog UE (universidadeuropea.com)

UNIR (2021), ‘Ingeniería en Software: que es, objetivos y funciones del Ingeniero.’ Recuperado de: Ingeniería de software: Qué es, Objetivos y Funciones (unir.net)

Jonathan Llamas (2021), ‘Ciencias de la Computación’ Recuperado de: Ciencias de la computación Qué es, definición y concepto | 2022 | Economipedia

Pooja Sharma (2022), ‘Los 9 mejores modelos de Desarrollo de Software para elegir.’ Recuperado de: Los 9 mejores modelos de desarrollo de software para elegir: fases y aplicaciones Cynoteck

Salem Al Mamary, Yaser Hasan & Shamsuddin, Alina & Aziati, A. ResearchGate. (2014). ‘The Role of Different Types of Information Systems In Business Organizations’ Recuperado de: https://www.researchgate.net/publication/264556488_The_Role_of_Different_Types_of_In formation_Systems_In_Business_Organizations_A_Review

Samuel Júlia (2022), ‘¿Qué es el Hardware y qué importancia tiene?’ Recuperado de: Qué es el hardware, qué tipos hay y principales funciones (gadae.com)

pág. 21

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.
Libro Digital de Ingenieria en Software: Metodologías by ALFONSO VALENCIA MOCKABEE - Issuu