Está en la página 1de 14

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN SUPERIOR

UNIVERSIDAD SANTA MARÍA

FACULTAD DE INGENIERÍA Y ARQUITECTURA

CÁTEDRA: INGENIERIA DE SOFTWARE 2

SECCIÓN: ‘’A’’

TRABAJO 2:

INGENIERIA DE SOFTWARE

Profesora: Estudiante:

Ramirez Jose Cristhian Batidas C.I:28.310.112

Caracas, abril 2023.


ÍNDICE
INTRODUCCIÓN.......................................................................................................3
INGENIERIA DE SOFTWARE................................................................................4
Acoplamiento:..................................................................................................................4

Cohesión:...........................................................................................................................4

Ingeniería de software campo laboral:.......................................................................5

Ingeniería de software salidas:.....................................................................................5

Paradigmas de la ingeniería de software:..................................................................6

Modelos de la ingeniería de software:.........................................................................7

Metodologías de la ingeniería de software:................................................................8

Capas de la ingeniería de software:.............................................................................8

Ingeniería de software diseño:......................................................................................9

Ingeniería de software basado en componentes:.......................................................9

Tendencias de la ingeniería de software:....................................................................9

Mitos de la ingeniería de software:............................................................................10

CONCLUSION..........................................................................................................12
BIBLIOGRAFIA.......................................................................................................13
INTRODUCCIÓN

El mundo de la ingeniería de software es un entorno fascinante y en constante


evolución, donde la creatividad, la innovación y la resolución de problemas se juntan
para dar vida a las ideas y transformar la forma en la que se vive e interactúa con el
mundo digital.

A medida que la tecnología avanza a pasos agigantados, la demanda por


ingenieros de software competentes y versátiles aumenta exponencialmente. Estos
profesionales, dotados de habilidades técnicas, conocimiento y creatividad, son los
encargados de diseñar, desarrollar, implementar y mantener aplicaciones de software
que satisfacen las necesidades de individuos, empresas e instituciones en diversos
sectores.

En este contexto, resulta fundamental comprender los fundamentos, las


metodologías y las tendencias que dan forma a la ingeniería de software moderna. En
el presente trabajo investigativo se busca, desmitificar ideas erróneas, adoptar
enfoques efectivos y navegar con éxito en este campo dinámico y desafiante.
INGENIERIA DE SOFTWARE

Acoplamiento:

El acoplamiento es el grado en que los módulos de un


programa dependen unos de otros. Si para hacer cambios en un módulo del programa
es necesario hacer cambios en otro módulo distinto, existe acoplamiento entre ambos
módulos.

En Programación Orientada a Objetos, si una clase X usa una clase Y, se dice


que X depende de Y. Esto es, X no puede realizar su trabajo sin Y, por lo tanto, existe
acoplamiento entre las clases X e Y. Como se observa, el acoplamiento es
direccional, puede haber acoplamiento de la clase X con la clase Y, pero esto no
implica que exista en sentido inverso.

Cohesión:

Cohesión no implica dependencia. Tal como dice el significado de la palabra


en castellano, es el efecto de reunirse o adherirse las cosas entre sí o la materia de la
que está formada. Algo está cohesionado si tiene sentido, y una dirección común.

En ingeniería del software, algo tiene alta cohesión si tiene un alcance


definido, unos límites claros y un contenido delimitado y perfectamente ubicado.

Si hablásemos de POO, una clase tendrá alta cohesión si sus métodos están
relacionados entre sí, tienen un contenido claro y temática común, trabajan con tipos
similares, etc. Todo bien encerrado dentro de la clase, y perfectamente delimitado.

En resumen, un código altamente cohesionado tiende a ser más autocontenido


y con menos dependencias.
Ingeniería de software campo laboral:
El campo laboral de la Ingeniería de Software es amplio, dinámico y con una
alta demanda. El ingeniero de software está capacitado para trabajar en puestos de
liderazgo en procesos de concepción, construcción, diseño e implementación de
programas y soluciones de software de acuerdo a modelos internacionales, así como
crecer en áreas muy diversas.
Ingeniería de software salidas:
Las salidas profesionales del ingeniero de software más importantes en este
ámbito son:

 Director IT (Tecnología de información y comunicación).

 Desarrollador y analista de aplicaciones web.

 Desarrollador de software.

 Ingeniero de software y hardware.

 Director de proyectos de I+D+I (director de innovación).

 Administrador de Sistemas Informáticos

 Diseñador de sitios web.

 Jefe de proyecto web.

 Jefe de usabilidad y experiencia de usuarios.

 Experto en ciberseguridad.

 Especialista en integración y pruebas

 Consultor relacionado con tecnologías (TI).


 Gestor de Programación web ágil.

 Gestor/Responsable de calidad.

Paradigmas de la ingeniería de software:

Los paradigmas de la ingeniería de software son enfoques o metodologías que


se utilizan para el desarrollo de software. Cada paradigma tiene su propio conjunto de
principios, prácticas y herramientas que guían el proceso de desarrollo.

Algunos de los paradigmas de ingeniería de software más comunes incluyen:

 Paradigma imperativo: Se basa en la descripción de los pasos que se deben


seguir para lograr un resultado. Es el paradigma más tradicional y se utiliza en
lenguajes de programación como C, Java y Python.

 Paradigma funcional: Se basa en la definición de funciones que transforman


datos. No se centra en los pasos a seguir, sino en las transformaciones que se
deben realizar. Se utiliza en lenguajes de programación como Haskell, Lisp y
Scala.

 Paradigma orientado a objetos: Se basa en la organización del software en


objetos que encapsulan datos y comportamiento. Se utiliza en lenguajes de
programación como C++, Java y Python.

 Paradigma declarativo: Se basa en la declaración del resultado deseado, sin


especificar los pasos para lograrlo. Se utiliza en lenguajes de programación
como SQL y Prolog.
 Paradigma de modelado de datos: Se basa en la creación de modelos de datos
que representan la realidad del problema que se quiere resolver. Se utiliza en
metodologías de desarrollo de software como UML y BPMN.

Es importante tener en cuenta que los paradigmas de ingeniería software no son


excluyentes. Se pueden utilizar varios paradigmas en un mismo proyecto, o incluso se
puede cambiar de paradigma a medida que el proyecto avanza.

Modelos de la ingeniería de software:

 Son descripciones abstractas del proceso de desarrollo de software.


 Proporcionan una visión general de las etapas o fases involucradas en el
desarrollo.
 Se enfocan en los aspectos fundamentales del proceso, como la secuencia de
actividades y los artefactos que se producen.
 Algunos ejemplos comunes de modelos incluyen:
o Modelo en cascada: Es un modelo en la que las etapas se organizan de
arriba a abajo. Se desarrollan las diferentes funciones en etapas
diferenciadas y obedeciendo un riguroso orden. Antes de cada etapa se
debe revisar el producto para ver si está listo para pasar a la siguiente
fase. Los requisitos y especificaciones iniciales no están predispuestos
para cambiarse, por lo que no se pueden ver los resultados hasta que el
proyecto ya esté bastante avanzado.
o Modelo en espiral: Es un tipo de Modelo de desarrollo de software en
el que las actividades se crean en espiral y se llevan a cabo en el orden
en que se eligen en función del análisis de riesgo.
En cada iteración de este modelo, los objetivos o alternativas deben
elegirse en función de las características, que incluyen la experiencia
personal, los criterios a satisfacer y las formas de gestión del sistema.
o Modelo de prototipos: A modelo prototipo es una aplicación funcional
del producto que da una idea de las características fundamentales del
producto o sistema final.
o Modelo incremental: Es una técnica de desarrollo de software basada
en un patrón cíclico de lanzamiento y actualización y un aumento
constante en la adición de funciones.
o Modelo V: Proporciona apoyo a los métodos de gestión de la calidad y
describe cómo estas distintas etapas pueden interactuar entre sí,
además de las fases de desarrollo del proyecto.

Metodologías de la ingeniería de software:

 Son conjuntos de prácticas, herramientas y técnicas que se utilizan para


implementar un modelo de desarrollo de software.
 Proporcionan guías específicas para llevar a cabo las actividades del proceso
de desarrollo.
 Se enfocan en los aspectos prácticos del desarrollo, como la planificación, la
ejecución, el control y la evaluación del proyecto.
 Algunos ejemplos comunes de metodologías incluyen:
o Metodología Scrum: Se itera sobre bloques de tiempos cortos y fijos
(entre dos y cuatro semanas) para conseguir un resultado completo en
cada iteración.
o Metodología Kanban: Consiste en dividir las tareas en porciones
mínimas y organizarlas en un tablero de trabajo dividido en tareas
pendientes, en curso y finalizadas.
o Metodología XP (Programación Extrema): Su principal objetivo es
crear un buen ambiente de trabajo en equipo y que haya un feedback
constante del cliente.
o Metodología de lean: Está configurado para que pequeños equipos de
desarrollo muy capacitados elaboren cualquier tarea en poco tiempo.
El aprendizaje, las reacciones rápidas y potenciar el equipo son
fundamentales.
Capas de la ingeniería de software:

El enfoque de ingeniería del software cuenta con un compromiso organizacional


con la calidad porque no es posible incorporar la ingeniería del software en una
organización que no está centrada en conseguir calidad.

La ingeniería del software es una tecnología multicapa. Se puede ver como un


conjunto de componentes estratificados, que reposan sobre ese enfoque de calidad.

Estos componentes que forman parte de la ingeniería del software son:


 Procesos: un marco de trabajo que ayuda al jefe de proyecto a controlar
la gestión del proyecto y las actividades de ingeniería.
 Métodos: las actividades tecnicas requeridas para la creacion de productos de
trabajo.
 Herramientas: la ayuda automatizada para los procesos y métodos.

Ingeniería de software diseño:

Según Roger Pressman (1998):


El diseño del software es realmente un proceso de muchos pasos pero
que se clasifican dentro de uno mismo. En general, la actividad del
diseño se refiere al establecimiento de las estructuras de datos, la
arquitectura general del software, representaciones de interfaz y
algoritmos. El proceso de diseño traduce requisitos en una
representación de software.

Ingeniería de software basado en componentes:

La Ingeniería del Software Basada en Componentes (CBSE), también


conocida como Desarrollo Basado en Componentes (CBD), es un paradigma de
desarrollo de software que se basa en la reutilización de componentes de software
para construir aplicaciones. Los componentes son unidades modulares de software
que encapsulan funcionalidad específica y pueden ser combinados entre sí para crear
sistemas más complejos.

Tendencias de la ingeniería de software:

El panorama de la ingeniería de software esta en constante evolución, con nuevas


tecnologías y enfoques que surgen constantemente. Para seguir siendo competitivos y
crear software innovador, es fundamental que los ingenieros de software estén al día
con las ultimas tendencias. Las cuales este 2024 son según ASAP Consulting:

 Desarrollo impulsado por la IA


 Ciberseguridad
 Aplicaciones web progresivas
 Cloud computing y SaaA
 Blockchain y web 3.0
 Tecnología sostenible

Mitos de la ingeniería de software:

La ingeniería de software, como cualquier disciplina, está plagada de mitos y


creencias erróneas que pueden obstaculizar el trabajo efectivo y la creación de
software de calidad. Es importante desmitificar estas ideas para fomentar un enfoque
más realista y efectivo en el desarrollo de software. Algunos de estos mitos son:
1. El software se puede desarrollar a la perfección: La idea de que un
software puede ser perfecto, sin errores ni defectos, es una ilusión. La
complejidad inherente del software y los constantes cambios en los requisitos
hacen que sea imposible alcanzar la perfección absoluta.
2. Escribir código rápido es lo más importante: La velocidad a la hora de
escribir código no siempre se traduce en un mejor software. Priorizar la
rapidez puede llevar a descuidar la calidad, la legibilidad y la mantenibilidad
del código.
3. La documentación no es necesaria: La documentación es una parte
fundamental del proceso de desarrollo de software. Una buena documentación
facilita la comprensión, el mantenimiento y la evolución del software a lo
largo del tiempo.
4. Las pruebas de software no son importantes: Las pruebas de software
son un paso crucial para garantizar la calidad y confiabilidad del software.
Detectar y corregir errores en las primeras etapas del desarrollo es mucho más
barato y eficiente que hacerlo más adelante.
5. Solo los programadores pueden ser ingenieros de software: La
ingeniería de software es un campo multidisciplinario que requiere diversas
habilidades, incluyendo análisis de requisitos, diseño de sistemas, pruebas,
gestión de proyectos y comunicación.
6. El software siempre debe seguir el plan original: Los planes de software
son flexibles y deben adaptarse a los cambios en los requisitos y las
necesidades del usuario. La rigidez en la planificación puede impedir la
adaptación a nuevas ideas y oportunidades.
7. El software solo se desarrolla para computadoras: El software se está
expandiendo a una gran variedad de dispositivos, desde smartphones y
wearables hasta dispositivos IoT y vehículos autónomos.
CONCLUSION

La ingeniería de software ofrece un abanico de oportunidades profesionales


para aquellos que estén dispuestos a sumergirse en este mundo dinámico y desafiante.
La constante evolución de la tecnología, la demanda creciente de soluciones
innovadoras y la posibilidad de contribuir al desarrollo de herramientas que impactan
positivamente en la sociedad son solo algunos de los atractivos que hacen de esta
disciplina una carrera gratificante y llena de posibilidades.

Sin embargo, el éxito en este campo requiere dedicación, aprendizaje continuo


y una actitud adaptable. Los futuros ingenieros de software deben estar preparados
para enfrentar nuevos retos, adoptar nuevas tecnologías y mantenerse a la vanguardia
de las tendencias para crear software de alta calidad que responda a las necesidades
del mundo actual y del futuro.
En definitiva, la ingeniería de software es un campo apasionante que ofrece
oportunidades para aquellos que estén dispuestos a asumir el reto de crear soluciones
innovadoras y transformadoras a través del poder del código.

BIBLIOGRAFIA
 José Ramon Pascual (2019). [página wed]. Disponible en:
https://www.disrupciontecnologica.com/acoplamiento-y-cohesion/
 UNIR La universidad en internet (2021). [página wed]. Disponible en:
https://colombia.unir.net/actualidad-unir/ingenieria-de-software-que-es-
objetivos/#:~:text=El%20ingeniero%20de%20software%20est%C3%A1,crecer%20en
%20%C3%A1reas%20muy%20diversas.
 Sandro Javier Bolaños Castro (2014). Paradigmas en la construcción de software.
[Libro en línea]. Disponible en: file:///C:/Users/usuario/Downloads/Dialnet-
ParadigmasEnLaConstruccionDeSoftware-4797401.pdf
 Pooja Sahrma (2022). [página wed]. Disponible en:
https://cynoteck.com/es/blog-post/top-software-development-models-to-choose-
from/#Types_of_Software_Development_Life_Cycle_SDLC_Models
 Santander Universidades (2020). [página wed]. Disponible en:
https://www.santanderopenacademy.com/es/blog/metodologias-desarrollo-
software.html
 José Flavio Sosa Gaspar (2011). [página wed]. Disponible en:
https://sosagas.blogspot.com/2011/09/capas-de-la-ingenieria-de-software.html
 Sebastián Pizar (2018). [presentación en linea]. Disponible en: chrome-
extension://efaidnbmnnnibpcajpcglclefindmkaj/https://eva.fing.edu.uy/
pluginfile.php/243156/mod_resource/content/2/Dise%C3%B1o%20-%20Clase
%203.pdf#:~:text=La%20ingenier%C3%ADa%20de%20software%20basada,llamadas
%20'componentes%20de%20software'.&text=Surgi%C3%B3%20del%20fracaso
%20del%20desarrollo,para%20apoyar%20la%20reutilizaci%C3%B3n%20efectiva.
 Joaquín Fuentes (2003). Capitulo 2 Ingeniería de software, análisis y diseño. [Libro
en linea]. Disponible en:
chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/http://catarina.udlap.mx/
u_dl_a/tales/documentos/lis/fuentes_k_jf/capitulo2.pdf
 Asap ADM (2024). [página wed]. Disponible en: https://asap-consulting.net/6-
tendencias-en-desarrollo-de-software-para-2024/
 Camilo Andrés Montoya Hernández (2016). [página wed]. Disponible en:
https://www.bluetab.net/es/mitos-y-verdades-de-los-ingenieros-de-software/

También podría gustarte