01 Unidad I Apunte

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 20

Ciclo de Complementación Curricular

Licenciatura en Administración y Gestión de


la Información (AGI)

INGENIERÍA DEL SOFTWARE

UNIDAD 1: Sistemas de información e


Ingeniería de Software

Ing. Agustín Walker


Ing. Federico Moscardo
Ingeniería de Software - CCC
2023

TEMARIO

Introducción....................................................................................................................... 2
Sistemas................................................................................................................................. 3
Características clave de un sistema...................................................................................3
Partes de un sistema..........................................................................................................4
Relaciones entre sistemas................................................................................................. 5
Sistemas de Información.......................................................................................................7
Dominios de aplicación del software................................................................................. 10
Ingeniería de Software.........................................................................................................12
Uso de la Ingeniería de Software..................................................................................... 13
Importancia de la ingeniería de software......................................................................... 13
Capas de la Ingeniería de Software................................................................................. 14
Proceso de Ingeniería de Software.................................................................................. 15
Comunicación.............................................................................................................15
Planeación..................................................................................................................15
Modelado....................................................................................................................15
Construcción.............................................................................................................. 15
Despliegue................................................................................................................. 16
Práctica de la Ingeniería de Software: Explorando las Etapas Fundamentales del
Proceso............................................................................................................................ 16
Entender el Problema (Comunicación y Análisis)...................................................... 16
Planear la Solución (Modelado y Diseño del Software)............................................. 17
Ejecutar el Plan (Generación del Código).................................................................. 17
Examinar la Exactitud del Resultado (Probar y Asegurar la Calidad):....................... 17

Pág. 1
Ingeniería de Software - CCC
2023

Introducción
En el vertiginoso mundo actual, donde la tecnología permea prácticamente todos los
aspectos de nuestras vidas y el ámbito empresarial, la comprensión de sistemas y el
desarrollo de software se han convertido en elementos cruciales para el éxito de cualquier
empresa y organización.

En esta unidad, exploraremos los conceptos fundamentales de los sistemas, cómo están
compuestos los mismos y los actores internos y externos que pueden interactuar con éste.
Haremos especial foco, en los sistemas de información, sistemas que desde ya hace tiempo
tienen un rol fundamental en todo ámbito de la vida cotidiana, aportando una infinidad de
datos que transforman en información, para que tomemos las mejores decisiones como
usuarios de esa información.

Además, conoceremos algunos de los diferentes tipos de sistemas que existen y cuáles son
los dominios de aplicación de los mismos.

Por último, nos adentraremos en el fascinante mundo de la ingeniería de software,


estudiando cuál es el proceso para realizar este proceso de ingeniería, cómo podemos
llevarlo a la práctica y los principios que la rigen.

Sin más, empecemos!

Pág. 2
Ingeniería de Software - CCC
2023

Sistemas
Un sistema es un conjunto de elementos interconectados y
organizados, que trabajan de manera coordinada para lograr
un objetivo específico. Estos elementos, también conocidos
como componentes o partes, interactúan entre sí y con el
entorno en el que operan, formando una entidad más grande
y coherente que funciona como un todo integrado.
Este todo integrado, también podríamos decir, que es el
subsistema de otro sistema mayor. Con esto estamos queriendo concluir, que un sistema
puede operar dentro de otro más grande, y las salidas del subsistema, se convertirán en las
entradas del sistema mayor.

El concepto de sistema se aplica en diversos campos y disciplinas, incluyendo la ingeniería,


la biología, la economía, la ecología, la informática y muchas otras áreas. En cada uno de
estos contextos, el término "sistema" se refiere a una entidad que puede ser analizada y
entendida como una unidad organizada con propósitos definidos.

Habiendo definido en términos generales qué es un sistema, antes de pasar a hablar de sus
partes y algunos ejemplos, nombraremos algunas de sus características clave para
complementar el concepto de sistema.

Características clave de un sistema


● Elementos o componentes: Los sistemas están compuestos por elementos o
componentes individuales, que pueden ser objetos, personas, procesos, datos, o
cualquier entidad relevante para el sistema en cuestión.
● Interconexiones e interacciones: Los elementos del sistema están conectados entre sí
a través de relaciones e interacciones que determinan cómo se influyen mutuamente y
cómo trabajan en conjunto.
● Objetivo o propósito: Los sistemas tienen un objetivo o propósito específico para el cual
han sido diseñados o se mantienen en funcionamiento. Este objetivo es lo que guía las
acciones y funciones del sistema.
● Entorno: Los sistemas operan dentro de un entorno que los rodea. El entorno
proporciona las entradas al sistema y recibe las salidas generadas por este, lo que
implica que los sistemas están en constante interacción con su contexto externo.
● Límites o fronteras: Cada sistema tiene límites que lo definen como una entidad
separada del entorno. Los límites establecen qué elementos son parte del sistema y
cuáles no lo son.
● Funcionamiento y comportamiento: Los sistemas realizan ciertas funciones y exhiben
un comportamiento característico en respuesta a las entradas que reciben y en función
de su objetivo.

Pág. 3
Ingeniería de Software - CCC
2023

● Emergencia y propiedades sistémicas: Los sistemas pueden exhibir propiedades y


comportamientos que emergen de las interacciones entre sus elementos, y que no
pueden ser explicados o comprendidos simplemente mirando cada componente de
manera aislada.

En resumen, un sistema es una entidad organizada y conectada que consta de elementos


interrelacionados, operando dentro de un entorno específico y con un objetivo definido.
Estos sistemas se encuentran en todas las escalas, desde sistemas biológicos y ecológicos
hasta sistemas tecnológicos y sociales, y su estudio y comprensión son fundamentales para
diversas disciplinas y para resolver problemas complejos en el mundo actual.

Ahora que sabemos qué es un sistema, pasemos a hablar de las partes que lo componen.

Partes de un sistema

Entradas
Las entradas son los insumos o elementos que ingresan al sistema desde el entorno externo
y son necesarios para su funcionamiento. Representan los datos, información o recursos
que son utilizados o procesados por el sistema para alcanzar su objetivo. Las entradas
pueden ser de diferentes tipos:

● Datos: Información numérica, alfabética o simbólica que proporciona información


relevante al sistema.
● Recursos: Materias primas, herramientas, energía u otros elementos necesarios para
llevar a cabo los procesos del sistema.
● Señales o eventos: Cualquier tipo de señal o evento que activa o dispara el
funcionamiento del sistema.
● Información externa: Datos provenientes de otras fuentes o sistemas, que pueden ser
necesarios para la toma de decisiones del sistema.

Es importante destacar que una entrada en un sistema puede ser la salida de otro sistema
conectado a él, lo que resalta la interconexión y dependencia entre sistemas.

Procesos
Los procesos son las actividades, operaciones o transformaciones que ocurren dentro del
sistema para procesar las entradas y generar las salidas. Representan las acciones
realizadas por el sistema para alcanzar su objetivo. Algunos procesos son conocidos y

Pág. 4
Ingeniería de Software - CCC
2023

pueden ser entendidos en detalle, mientras que otros pueden considerarse "cajas negras", lo
que significa que se conocen las entradas y salidas, pero no se comprenden completamente
las transformaciones internas.
El concepto de "caja negra" se utiliza para simplificar la comprensión del sistema y centrarse
en su comportamiento externo sin necesidad de conocer todos los detalles internos. Esto es
especialmente útil cuando se abordan sistemas complejos y permite tratarlos como
unidades indivisibles dentro de un contexto más amplio.

Salidas
Las salidas son los resultados, productos, servicios o información que el sistema genera
como respuesta a las entradas y después de realizar los procesos. Representan los logros o
el valor que el sistema proporciona al entorno externo. Algunos ejemplos de salidas
incluyen:

● Resultados físicos: Productos manufacturados, bienes producidos, entre otros.


● Información: Informes, reportes, análisis o cualquier tipo de datos procesados y
generados por el sistema.
● Servicios: Actividades o funciones realizadas por el sistema para satisfacer una
necesidad específica.

Es importante tener en cuenta que las salidas de un


sistema pueden convertirse en entradas para otro sistema,
ya que los sistemas a menudo están interconectados en
redes o cadenas de suministro.

Habiendo definido que es un sistema, y las partes que lo componen, nos toca retomar un
concepto que vimos en la definición de los sistemas. Dijimos que un sistema puede operar
dentro de otro más grande, con el que guarda una “relación”. Y no solo eso, sino que dentro de
un sistema, tenemos diferentes elementos que interactúan entre sí y con el entorno en el que
operan, es decir que entre estos elementos también tenemos “relaciones”. Es por ello que el
siguiente tema que trataremos son las relaciones entre sistemas.

Relaciones entre sistemas


En el contexto del pensamiento sistémico, existen varias relaciones que pueden
manifestarse dentro de los sistemas o entre sistemas conectados. Estas relaciones
describen la forma en que los elementos o componentes de un sistema interactúan entre sí
y con su entorno. A continuación, se presenta un resumen de los distintos tipos de
relaciones comunes en sistemas:

Pág. 5
Ingeniería de Software - CCC
2023

Relaciones de retroalimentación o feedback


Las relaciones de retroalimentación son cruciales en los sistemas, ya que implican la
influencia mutua entre las salidas y las entradas del sistema. Existen dos tipos principales
de retroalimentación:
● Retroalimentación positiva: Ocurre cuando una salida del sistema refuerza o amplifica
una determinada acción o proceso, lo que lleva a un ciclo de retroalimentación que
puede tener efectos acumulativos o exponenciales.
Un ejemplo de esto, podemos verlo en un aire acondicionado cuando lo prendemos en
invierno, al caer la temperatura por debajo de cierto nivel, el sistema de aire
acondicionado se prende para poder volver a aumentar la temperatura de la habitación.
● Retroalimentación negativa: Implica que una salida del sistema regula o contrarresta
una acción o proceso específico, lo que tiende a estabilizar el sistema y mantenerlo
dentro de ciertos límites o equilibrios.
Un ejemplo, puede ser un sistema de control de velocidad de un motor eléctrico de una
bicicleta, si la velocidad supera un valor límite predefinido, el sistema activa un
mecanismo de frenado para reducir la velocidad.

Relaciones de causalidad
Estas relaciones describen cómo un elemento o proceso dentro del sistema afecta
directamente a otro. Una causa genera un efecto en otro componente del sistema, lo que
puede provocar cambios significativos en su comportamiento o funcionamiento.
Un ejemplo podría ser que en un proceso de producción industrial, la cantidad de materias
primas utilizadas (causa) influye directamente en la cantidad de productos fabricados
(efecto). A medida que se aumenta la cantidad de materias primas, la producción también
aumenta proporcionalmente.

Relaciones de dependencia
Las relaciones de dependencia se producen cuando la existencia o el rendimiento de un
elemento del sistema depende de la presencia o el funcionamiento adecuado de otro
elemento. Un cambio en un componente puede tener efectos significativos en otros
elementos que dependen de él.
Como ejemplo podemos citar un sistema de transporte público, el servicio de autobuses
depende de la disponibilidad de conductores. Si no hay suficientes conductores disponibles,
se verá afectada la frecuencia y capacidad de los autobuses para brindar el servicio
adecuado.

Relaciones de sinergia
La sinergia ocurre cuando los elementos del sistema trabajan juntos para lograr un resultado
que es más efectivo o valioso de lo que sería la suma de sus partes individuales. La sinergia
implica la colaboración y cooperación entre los componentes del sistema.
Un ejemplo de este tipo de relación podría ser en el desarrollo de un software complejo, un
equipo de ingenieros con diferentes especializaciones, como programadores, diseñadores

Pág. 6
Ingeniería de Software - CCC
2023

de interfaz y expertos en usabilidad, trabajan juntos para crear un producto final más
eficiente y atractivo

Estas son algunas de los tipos de relaciones que existen entre elementos de un sistema y
entre sistemas en sí. No son todas y podemos mencionar algunas más a título informativo,
como las “Relaciones de equifinalidad”, “Relaciones de jerarquía o niveles”, “Relaciones de
interconexión”, entre otras.

En el pensamiento sistémico, es esencial comprender y analizar estas distintas relaciones


para obtener una visión integral del sistema y poder abordar los problemas y desafíos de
manera más efectiva.

Ya conocemos con buena profundidad qué es un sistema, sus partes y las relaciones más
importantes que existen. Ahora vamos a hablar sobre un tipo muy particular de sistemas, que
desde hace tiempo vienen creciendo en su protagonismo y hoy en día son vitales en la porque
permiten la recopilación, procesamiento y análisis eficiente de datos, facilitando la toma de
decisiones, optimizando la comunicación, coordinación y control de procesos en
organizaciones, mejorando la productividad y competitividad, en un entorno cada vez más
digitalizado y globalizado. Estos son los sistemas de información.

Sistemas de Información
Un sistema de información es un conjunto de componentes interconectados que trabajan
juntos para recoger, procesar, almacenar y difundir información, para que los integrantes de
una organización puedan tomar las mejores decisiones.

Estos componentes pueden incluir:


● hardware: incluye computadoras, servidores, dispositivos de almacenamiento y otros
equipos físicos utilizados para procesar y almacenar datos
● software: engloba las aplicaciones, programas y sistemas operativos que permiten el
procesamiento, análisis y visualización de datos, así como la realización de tareas
específicas
● datos: representan la información recopilada, organizada y almacenada en forma de
registros, archivos o bases de datos. Son la materia prima para generar información útil
y significativa
● personas: involucra a los usuarios y especialistas en tecnología de la información que
interactúan con el sistema. Los usuarios proporcionan y acceden a la información,
mientras que los especialistas en IT administran y mantienen el sistema
● procedimientos: comprende las políticas, normas y procesos establecidos para guiar la
captura, manipulación y distribución de la información de manera coherente y segura
● redes de comunicación: incluye internet y/o redes internas que permiten la conexión y
transferencia de datos entre los diversos componentes del sistema, así como la
comunicación entre usuarios y sistemas externos

Pág. 7
Ingeniería de Software - CCC
2023

El objetivo principal de un sistema de información es proporcionar información relevante,


precisa y oportuna a los usuarios para facilitar la toma de decisiones informadas y el
funcionamiento efectivo de la organización. Para lograr esto, un sistema de información
sigue un ciclo básico que incluye:
● la recopilación de datos
● su procesamiento para convertirlos en información significativa
● el almacenamiento de la información para su posterior acceso y uso
● la distribución de la información a las personas o áreas que la necesitan

Antes de seguir con el tema, sería oportuno hablar de la diferencia entre Dato e Información.
● Dato: es una representación básica y aislada de un hecho o entidad, carente de
significado por sí mismo. Ejemplo, un dato puede ser una fecha: 18 de diciembre de
2022
● Información: es un conjunto de datos organizados y procesados que adquiere sentido y
utilidad, proporcionando conocimiento y comprensión sobre un tema específico. La
información surge cuando los datos son interpretados y contextualizados. Para
continuar con el ejemplo anterior, si tomamos el dato de esa fecha, y le damos contexto,
podemos hablar de la siguiente información: el 18 de diciembre de 2022 Argentina se
consagró campeón del mundo por tercera vez en su historia, ganándole a Francia por
penales.

Los sistemas de información tienen varias características que los hacen valiosos para las
organizaciones. En primer lugar, están diseñados para ser fiables y precisos, lo que
garantiza que la información que proporcionan es fidedigna. En segundo lugar, son flexibles
y adaptables, lo que permite a las organizaciones modificarlos y personalizarlos para
satisfacer sus necesidades específicas. En tercer lugar, son seguros, ya que protegen la
información sensible de accesos no autorizados. Por último, son eficientes, lo que permite a
las organizaciones procesar y analizar grandes cantidades de datos con rapidez y eficacia.

Ahora que entendemos qué es un sistema de información, los componentes que lo forman,
su objetivo y características, vamos a hablar de las funciones que tienen este tipo de
sistemas para las empresas.

Como se sabe, la tecnología informática ha llegado para facilitar la administración de datos


en las empresas. Pero esta no es la única cualidad con la que cuenta un sistema de
información. Por ello, profundicemos en sus funciones más importantes:
● Gestionar y administrar datos e información que componen a una empresa.
Como ejemplo podemos citar un sistema de información de recursos humanos en una
empresa mantiene registros precisos y actualizados de los empleados, incluyendo
datos personales, historial laboral, capacitaciones y evaluaciones de desempeño
● Automatizar procesos internos sin necesidad de contar con intermediarios para
ejecutar ciertas operaciones.

Pág. 8
Ingeniería de Software - CCC
2023

Por ejemplo, un sistema de información de inventario en un almacén automatiza la


gestión de stock y los pedidos de reabastecimiento. Cuando los niveles de inventario
alcanzan cierto umbral, el sistema emite automáticamente solicitudes de compra a los
proveedores.
● Unificar la información de tu empresa a través de almacenes estandarizados para
facilitar el uso y la comprensión de los datos generados.
Un sistema de información empresarial (ERP) integra datos de diferentes
departamentos como ventas, contabilidad y logística en una única base de datos
centralizada, lo que facilita el acceso y análisis de información para la toma de
decisiones.
● Brindar información actualizada en tiempo real disponible para todos los colaboradores
o para aquellos encargados de las tomas de decisión. Esto permite agilizar y mejorar
procesos y actividades de forma rápida.
Un sistema de información empresarial (ERP) integra datos de diferentes
departamentos como ventas, contabilidad y logística en una única base de datos
centralizada, lo que facilita el acceso y análisis de información para la toma de
decisiones.
● Favorecer un mejor aprovechamiento del tiempo que tus empleados disponen para
ciertas actividades. Al hacer posible operaciones más automatizadas y sencillas, los
miembros de tu empresa no tendrán que perder mucho tiempo en ejecutar tareas que,
gracias a un sistema de información, pueden hacerse automáticamente. Esto mejora su
productividad.

Recurso ampliatorio: Video sobre Sistemas de Información

Por último, vamos a nombrar y dar una pequeña descripción de los diferentes tipos de
sistemas de información que existen, que se pueden clasificar en función de su alcance y
propósito. Algunos de los principales tipos son:
● Sistemas de información transaccional: Se centran en el procesamiento y registro de
transacciones comerciales diarias, como ventas, compras y pagos. Ejemplos de estos
tipos de sistemas son: SAP o Saleforce.
● Sistemas de información gerencial: Proporcionan información resumida y reportes para
apoyar el proceso de toma de decisiones de nivel medio en la organización. Como
ejemplos podemos citar Tableau o Power BI.
● Sistemas de información estratégica: Ayudan a los ejecutivos y directivos a tomar
decisiones estratégicas para el futuro de la organización. Ejemplos: Oracle Hyperion o
Google Analytics.
● Sistemas de información expertos: Utilizan el conocimiento especializado para brindar
soluciones a problemas complejos en áreas específicas. Un ejemplo de este tipo de

Pág. 9
Ingeniería de Software - CCC
2023

sistemas es IBM Watson, una plataforma de inteligencia artificial se aplica en diversas


industrias, como atención médica, servicios financieros y asesoramiento legal, para
brindar soluciones basadas en conocimiento experto y aprendizaje automático.
● Sistemas de información de soporte a la toma de decisiones: Ayudan a los usuarios a
tomar decisiones no estructuradas o semi-estructuradas al proporcionar modelos y
herramientas de análisis. Ejemplos de estos sistemas pueden ser los ya citados:
Tableau, Power BI y hasta Microsoft Excel.
● Sistemas de información de procesamiento de transacciones: Se enfocan en el
procesamiento de grandes volúmenes de transacciones rutinarias, como las
operaciones bancarias y el control de inventario. Un ejemplo puede ser SAP Business
One, un software ERP que facilita el procesamiento de transacciones financieras y
operativas, como compras, ventas, inventario y finanzas.

Recurso ampliatorio: Video sobre Tipos de Sistemas de Información

Recurso ampliatorio: Video sobre Sistemas de Business Intelligence (BI)

Antes de comenzar a hablar de la Ingeniería de Software en sí en esta unidad introductoria,


luego de haber definido qué es un sistema y habiendo desarrollado más en detalle los
sistemas de información, vamos a exponer los diferentes dominios de aplicación del
software, entendiendo por esto al ámbito o campo específico en el cual se utiliza o aplica
dicho software.

Dominios de aplicación del software


A continuación vamos a nombrar brevemente y dar algunos ejemplos de los dominios de
aplicación del software más conocidos:

● Software Empresarial: Se refiere a aplicaciones diseñadas para


satisfacer las necesidades de gestión y operativas de las
empresas. Este tipo de software incluye sistemas de
planificación de recursos empresariales (ERP), gestión de
relaciones con clientes (CRM), software de recursos humanos y
herramientas de gestión de proyectos.
Ejemplo: SAP S/4HANA. Es un sistema ERP que integra
diferentes procesos empresariales, como finanzas, ventas,

Pág. 10
Ingeniería de Software - CCC
2023

compras y gestión de inventario, en una sola plataforma para mejorar la eficiencia y la


toma de decisiones.

● Software de Entretenimiento: Está diseñado para proporcionar entretenimiento y


diversión a los usuarios. Incluye videojuegos, aplicaciones de música y video en
streaming, plataformas de redes sociales y aplicaciones de realidad virtual.
Ejemplo: Fortnite. Es un popular videojuego en línea que combina acción y construcción
en un entorno de batalla multijugador, proporcionando una experiencia de
entretenimiento interactiva para millones de jugadores en todo el mundo.

● Software de Educación: Está destinado a facilitar el proceso de aprendizaje y la


adquisición de conocimientos. Puede incluir
aplicaciones de aprendizaje en línea, plataformas de
gestión del aprendizaje (LMS) y herramientas de
enseñanza asistida por computadora.
Ejemplo: Google Classroom. Es una plataforma de
educación en línea que permite a los profesores crear
clases virtuales, compartir contenido educativo y
asignar tareas a los estudiantes.

● Software de Salud: Se centra en soluciones tecnológicas para el sector de la salud,


como registros médicos electrónicos, sistemas de información hospitalaria y
aplicaciones de telemedicina.
Ejemplo: Epic EHR (Electronic Health Record). Es un software utilizado en hospitales y
centros de atención médica para gestionar registros electrónicos de pacientes, historias
clínicas y procesos de atención médica.

● Software de Finanzas: Está diseñado para facilitar la gestión financiera y contable de


empresas y particulares. Incluye programas de contabilidad, herramientas de gestión de
impuestos y plataformas de banca en línea.
Ejemplo: QuickBooks. Es un software de contabilidad diseñado para pequeñas y
medianas empresas, que permite gestionar las finanzas, realizar facturación y llevar un
registro de ingresos y gastos.

● Aplicaciones Web: Son programas o servicios que se


acceden a través de un navegador web. Pueden variar
desde correos electrónicos hasta redes sociales y
aplicaciones de productividad.
Ejemplo: Google Workspace (anteriormente G Suite). Es
una suite de aplicaciones web que incluye Gmail, Google
Drive, Google Docs y otras herramientas colaborativas
para empresas y usuarios.

Pág. 11
Ingeniería de Software - CCC
2023

● Software Embebido: Es aquel que se encuentra integrado en dispositivos y sistemas,


como electrodomésticos, automóviles y dispositivos médicos, para proporcionar
funcionalidad específica.
Ejemplo: Android OS. Es un sistema operativo embebido en dispositivos móviles, como
teléfonos y tablets, que ofrece una amplia gama de aplicaciones y funcionalidades.

● Software de Inteligencia Artificial: Utiliza algoritmos


avanzados y aprendizaje automático para realizar tareas que
normalmente requieren inteligencia humana, como
reconocimiento de voz, análisis de datos y toma de
decisiones.
Ejemplo: Amazon Alexa. Es un asistente virtual basado en
inteligencia artificial que permite a los usuarios interactuar
mediante comandos de voz para reproducir música, obtener
información, realizar compras y controlar dispositivos
inteligentes en el hogar.

Luego de toda esta introducción al mundo de los sistemas, ahora sí estamos en condiciones
de comenzar a hablar de la Ingeniería de Software.

Ingeniería de Software
La ingeniería de software es una disciplina que abarca diversas áreas de conocimiento y
posee un enfoque sistemático que incluye la aplicación de principios de ingeniería, técnicas
y métodos científicos a la conceptualización, diseño, desarrollo, implementación, prueba,
mantenimiento y evolución del software.
Va más allá de la mera codificación y programación, incorporando un enfoque holístico y
estructurado para abordar la complejidad inherente a la creación de sistemas de software.

En esencia, la ingeniería de software busca tratar el desarrollo de software de manera


similar a cómo se manejan otras ingenierías tradicionales, como la ingeniería civil o la
ingeniería mecánica. Esto implica:
● la identificación de problemas
● la formulación de soluciones
● la planificación y ejecución de procesos
● la gestión de recursos y riesgos
● la evaluación constante para asegurarse de que el resultado final cumpla con los
objetivos y requisitos predefinidos

No solo se centra en la creación de código funcional, sino también en la creación de


sistemas que sean confiables, eficientes, seguros, mantenibles y escalables. Se presta
especial atención a la calidad del software, asegurando que no solo funcione correctamente,
sino que también sea fácil de entender, modificar y ampliar con el tiempo.

Pág. 12
Ingeniería de Software - CCC
2023

Los profesionales de la ingeniería de software aplican una variedad de técnicas y enfoques,


como la modelización y la simulación, el diseño orientado a objetos, la gestión de
configuración, la gestión de proyectos y la implementación de prácticas de desarrollo ágil.
Además, la comunicación y la colaboración efectiva son fundamentales en la ingeniería de
software, ya que los equipos multidisciplinarios trabajan juntos para alcanzar objetivos
comunes.

Según la IEEE La ingeniería de Software es:

“La aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo,


operación y mantenimiento de software; es decir, la aplicación de la ingeniería al software”

Uso de la Ingeniería de Software


La ingeniería de software se utiliza para crear una variedad de aplicaciones, desde software
de escritorio hasta aplicaciones móviles y web. Estas aplicaciones pueden abarcar una
amplia gama de áreas, como educación, soluciones empresariales, entretenimiento, salud,
finanzas, comunicaciones y más, como las que vimos más atrás en esta unidad.

Importancia de la ingeniería de software


La importancia de la ingeniería de software radica en su capacidad para crear, mantener y
mejorar el software de manera efectiva y eficiente. Al adoptar enfoques estructurados y
metodologías ofrece beneficios clave que impulsan el éxito en el desarrollo y la gestión del
software. Estos beneficios incluyen:

● Calidad y confiabilidad: es decir que el software funcione correctamente y esté libre de


errores. Esto reduce la posibilidad de problemas costosos y disrupciones en el futuro.
● Eficiencia en el Desarrollo: mediante una correcta planificación ayuda a acelerar el
proceso de desarrollo y a entregar soluciones de manera más rápida y eficiente
● Gestión de Cambios: la capacidad de incorporar cambios en el software de manera
controlada y efectiva es esencial en un entorno en constante evolución. La ingeniería de
software facilita la adaptación a nuevas necesidades y requisitos.
● Satisfacción del Cliente: al seguir procesos estructurados y enfocarse en las
necesidades del cliente, se garantiza que el software entregado cumpla con las
expectativas y necesidades del usuario final
● Mantenibilidad: un enfoque adecuado asegura que el software sea fácil de mantener,
actualizar y mejorar con el tiempo. Esto prolonga la vida útil del software y minimiza los
costos de mantenimiento
● Colaboración Efectiva: se promueve la colaboración y la comunicación entre los
miembros del equipo, lo que facilita la identificación y resolución de problemas de
manera más rápida y eficiente

Pág. 13
Ingeniería de Software - CCC
2023

● Reducción de Riesgos: la planificación y el enfoque disciplinado ayudan a identificar y


mitigar riesgos potenciales en las etapas tempranas del desarrollo, evitando problemas
futuros
● Cumplimiento y Seguridad: en entornos donde el cumplimiento normativo y la
seguridad son críticos, se garantiza que el software cumpla con los estándares
requeridos y proteja la integridad de los datos y la privacidad
● Eficiencia en Costos: al reducir los errores, acelerar el desarrollo y optimizar el
mantenimiento, se contribuye a una mayor eficiencia en costos a lo largo del ciclo de
vida del software

Capas de la Ingeniería de Software


Independientemente de la complejidad del sistema y de su área de aplicación la ingeniería
de software puede considerarse una tecnología multicapa, donde la primer capa enfatiza
que los cimientos de la ingeniería de software están orientadas hacia la calidad.

● Compromiso con la Calidad: Esta capa se enfoca en asegurar que el software


desarrollado cumpla con los estándares y requisitos de calidad establecidos. Implica el
uso de prácticas de desarrollo y pruebas que garantizan la fiabilidad, rendimiento,
seguridad y usabilidad del software.
● Proceso: La capa de proceso abarca la gestión y planificación del desarrollo de
software. Incluye la selección y adopción de metodologías de desarrollo, la asignación
de recursos, la programación de tareas y el seguimiento del progreso del proyecto.
● Métodos: en esta capa, se definen los enfoques y técnicas específicas utilizadas para
diseñar, desarrollar y probar el software. Los métodos pueden variar según el tipo de
proyecto y las necesidades del cliente, e incluyen prácticas como el desarrollo ágil, el
enfoque orientado a objetos y la ingeniería de requisitos.
● Herramientas: Esta capa se refiere a las herramientas y tecnologías utilizadas para
facilitar el desarrollo de software. Pueden ser entornos de desarrollo integrados (IDE),
sistemas de control de versiones, herramientas de prueba automatizadas, entre otras,
que ayudan a mejorar la productividad y la eficiencia del proceso de desarrollo.

Estas capas trabajan en conjunto para garantizar que el software se desarrolle de manera
efectiva, eficiente y con altos estándares de calidad. El compromiso con la calidad, la
adecuada gestión del proceso, la elección de métodos apropiados y el uso de herramientas
adecuadas son fundamentales para el éxito en la ingeniería de software.

Pág. 14
Ingeniería de Software - CCC
2023

Habiendo introducido estas 4 capas de todo proceso de ingeniería de software, ahora


vamos a centrarnos en el Proceso de la Ingeniería de Software.

Proceso de Ingeniería de Software


El proceso de ingeniería de software se puede definir como la secuencia de pasos o
actividades que se deben seguir para construir un software, según los requerimientos de un
cliente en particular. La idea principal del proceso es mejorar el entendimiento del problema
a solucionar, generar los canales de comunicación adecuados entre los involucrados del
proyecto, el mantenimiento y retroalimentación del sistema

Vamos a ver a continuación las etapas de este proceso:

Comunicación
En esta etapa inicial, los ingenieros de software se comunican con los clientes y usuarios
para comprender sus necesidades y requerimientos. Se recopila información detallada
sobre la funcionalidad deseada del software y se establece una comunicación efectiva para
asegurar que todos los interesados estén alineados con los objetivos del proyecto. Es una
de las más importantes, ya que es primordial para todo el proceso, entender el problema a
resolver, o la necesidad del cliente.

Planeación
La fase de planeación implica definir los objetivos del proyecto, estimar los recursos
necesarios (tiempo, personal, tecnología), analizar la viabilidad del proyecto y establecer un
cronograma detallado. También se identifican los posibles riesgos y se desarrollan
estrategias para mitigarlos, asegurando una ejecución exitosa del proyecto.

Modelado
En esta etapa, se crea una representación visual y detallada del software a través de
diagramas y modelos. Se diseñan la arquitectura del sistema, la estructura de datos, y los
flujos de información. El modelado permite una mejor comprensión de cómo se estructurará
y funcionará el software antes de su construcción. En este sentido, el tener una mejor
comprensión de la solución de software, también permitirá poder comunicarla. Por un lado
al cliente, para validar que estemos cumpliendo con las expectativas del mismo, y por otra al
equipo de desarrollo, para que la lleve a cabo.

Construcción
Durante la fase de construcción, los ingenieros de software comienzan a codificar y
desarrollar el software de acuerdo con el diseño y los modelos previamente creados. Se
implementan las funcionalidades, se realizan pruebas unitarias y se corrigen errores o
defectos encontrados.

Pág. 15
Ingeniería de Software - CCC
2023

Despliegue
En esta etapa final, el software desarrollado se instala y pone en funcionamiento en el
entorno de producción o de uso final. Se verifica que todo funcione correctamente y se
realiza una prueba final antes de ponerlo a disposición de los usuarios. El despliegue
asegura que el software esté listo para su uso y cumpla con las expectativas establecidas.

Cada una de estas etapas es esencial en el proceso de ingeniería de software, y su correcta


ejecución garantiza un desarrollo eficiente y exitoso del software.

Todo este proceso, será estudiado con mayor detalle en las siguientes unidades, la finalidad
de esta unidad introductoria es conocer a grandes rasgos el proceso.

Práctica de la Ingeniería de Software: Explorando las Etapas


Fundamentales del Proceso

La práctica de la ingeniería de software implica una serie de etapas interconectadas y


disciplinadas que guían el desarrollo exitoso de software. Cada etapa desencadena
actividades específicas que contribuyen al logro de un sistema de software funcional,
confiable y de alta calidad. A continuación, se profundiza en cada una de las etapas clave
del proceso:

Entender el Problema (Comunicación y Análisis)


Esta etapa sienta las bases para todo el proceso de desarrollo. Implica una comunicación
efectiva y una comprensión profunda del problema que el software debe resolver. Los
ingenieros de software interactúan con los clientes y las partes interesadas para capturar y
analizar los requisitos. Se llevan a cabo entrevistas, encuestas y discusiones para
determinar las necesidades, las expectativas y las restricciones del proyecto. La claridad en
la definición de los requisitos es esencial para garantizar que el software resultante
satisfaga las necesidades del usuario.

Entender no siempre es fácil. Es conveniente dedicar un poco de tiempo a responder


algunas preguntas sencillas:
● ¿Quiénes tienen que ver con la solución del problema? Es decir, ¿quiénes son los
participantes?
● ¿Cuáles son las incógnitas? ¿Cuáles datos, funciones y características se requieren para
resolver el problema en forma apropiada?
● ¿Puede fraccionarse el problema? ¿Es posible representarlo con problemas más
pequeños que sean más fáciles de entender?
● ¿Es posible representar gráficamente el problema? ¿Puede crearse un modelo de
análisis?

Pág. 16
Ingeniería de Software - CCC
2023

Planear la Solución (Modelado y Diseño del Software)


Una vez que se comprenden los requisitos, se procede al diseño del software. En esta etapa,
los ingenieros crean modelos conceptuales y diagramas que representan la estructura, la
arquitectura y la funcionalidad del sistema. Se definen las relaciones entre los componentes
y se establecen las interfaces. El diseño abarca aspectos como la arquitectura de software,
la lógica del negocio, la base de datos y la interfaz de usuario. El resultado es un plan
detallado que sirve como guía para la implementación.

Algunas preguntas como las que siguen pueden ayudar en esta etapa:
● ¿Ha visto antes problemas similares? ¿Hay patrones reconocibles en una solución
potencial? ¿Hay algún software existente que implemente los datos, funciones y
características que se requieren?
● ¿Ha resuelto un problema similar? Si es así, ¿son reutilizables los elementos de la
solución?
● ¿Pueden definirse problemas más pequeños? Si así fuera, ¿hay soluciones evidentes
para éstos?
● ¿Es capaz de representar una solución en una forma que lleve a su implementación
eficaz?
● ¿Es posible crear un modelo del diseño

Ejecutar el Plan (Generación del Código)


Con el diseño en su lugar, se procede a la generación del código. Los ingenieros de software
escriben el código fuente utilizando lenguajes de programación y técnicas de desarrollo
adecuadas. Se crean los componentes y módulos del software, siguiendo las mejores
prácticas de programación y los estándares de codificación. Durante esta fase, se enfoca en
crear un código limpio, eficiente y bien estructurado que sea fácil de entender y mantener.

Nuevamente, algunas de las preguntas que se muestran a continuación pueden ayudar en


este proceso:
● ¿Se ajusta la solución al plan? ¿El código fuente puede apegarse al modelo del diseño?
● ¿Es probable que cada parte componente de la solución sea correcta? ¿El diseño y
código se han revisado o, mejor aún, se han hecho pruebas respecto de la corrección
del algoritmo?

Examinar la Exactitud del Resultado (Probar y Asegurar la Calidad):


La etapa de pruebas es crítica para garantizar la calidad y la funcionalidad del software. Se
ejecutan una variedad de pruebas, incluidas pruebas funcionales, de rendimiento, de
seguridad y de compatibilidad, para identificar errores y asegurarse de que el software
cumpla con los requisitos definidos. Las pruebas pueden ser manuales o automatizadas, y
se repiten para verificar la solidez del software. Esta etapa es esencial para garantizar que el
software esté listo para su despliegue y uso por parte de los usuarios finales.

Pág. 17
Ingeniería de Software - CCC
2023

Preguntas disparadoras:
● ¿Puede probarse cada parte componente de la solución? ¿Se ha implementado una
estrategia razonable para hacer pruebas?
● ¿La solución produce resultados que se apegan a los datos, funciones y características
que se requieren? ¿El software se ha validado contra todos los requerimientos de los
participantes?

Al profundizar en cada una de estas etapas, los estudiantes y profesionales de la ingeniería


de software pueden apreciar la importancia de un enfoque sistemático y disciplinado en el
desarrollo de software. Cada etapa contribuye de manera única al logro de soluciones de
software exitosas y cumple un papel vital en la creación de aplicaciones funcionales,
confiables y de alta calidad.

Habiendo dado una buena introducción al proceso de ingeniería de software, antes de


finalizar con la unidad, vale la pena mencionar que este proceso puede aplicarse
prácticamente de la misma manera para otros propósitos, como por ejemplo modificar o
mejorar algún proceso productivo en alguna organización, participar en algún proyecto de
cambio de la organización de una oficina o área de una empresa, entre otros ejemplos que
podemos citar.

A continuación, desarrollamos el paralelo con uno de estos ejemplos:

Planificación y Análisis: En ambos casos, se realiza una planificación detallada y se


analizan los requisitos y necesidades. En la ingeniería de software, se identifica la necesidad
del cliente y se recopilan los requisitos que tendrá el software. En la mejora de un proceso
en una organización, se establecen metas y se recopila información sobre el proceso actual
y los problemas a resolver.

Diseño y Modelado: Tanto en la ingeniería de software como en la mejora de un proceso, se


crea una representación visual del proyecto. En la ingeniería de software, se diseña la
arquitectura del software y se modelan los flujos de información. En la mejora de un proceso
en una organización, se crea un diseño del proceso mejorado y se modela su
implementación.

Implementación y Construcción: En ambos procesos, se lleva a cabo la implementación del


diseño propuesto. En la ingeniería de software, se codifica y desarrolla el software basado
en el diseño. En la mejora de un proceso en una organización, se implementan los cambios y
mejoras en el proceso actual.

Pruebas y Verificación: Tanto en la ingeniería de software como en la mejora de un proceso,


se realizan pruebas y verificaciones para asegurar la calidad y eficiencia del resultado. En la
ingeniería de software, se prueban diferentes componentes y funcionalidades del software.

Pág. 18
Ingeniería de Software - CCC
2023

En la mejora de un proceso en una organización, se llevan a cabo pruebas y verificaciones


para asegurar que las modificaciones del proceso sean efectivas.

Despliegue y Puesta en Marcha: En ambos casos, el resultado final se despliega y se pone


en marcha. En la ingeniería de software, el software se instala y se pone a disposición de los
usuarios. En la mejora de un proceso en una organización, se implementan las mejoras y se
pone en funcionamiento el nuevo proceso.

En resumen, ambos procesos de ingeniería comparten similitudes en su enfoque


sistemático y la aplicación de diferentes etapas para lograr resultados de alta calidad y
eficiencia.

Como se mencionó anteriormente, en las próximas unidades, veremos más en detalle parte de
este proceso de Ingeniería de Software, a través del desarrollo del ciclo de vida del software.
Toda esta unidad de introducción, nos servirá para tener las bases y conocimientos
necesarios para abordar esos temas y poder comprenderlos y llevarlos a la práctica.

Pág. 19

También podría gustarte