Está en la página 1de 13

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 1:

INGENIERIA DE SOFTWARE 2

Profesora: Estudiante:

Ramirez Jose Cristhian Batidas C.I:28.310.112

Caracas, marzo 2023.


ÍNDICE

INTRODUCCIÓN.................................................................................................................3
INGENIERIA DE SOFTWARE...........................................................................................4
Concepto.............................................................................................................................4
Objetivo..............................................................................................................................5
Características....................................................................................................................5
Historia...............................................................................................................................6
Ingeniería de Software en la actualidad...........................................................................6
Diferencia Ingeniería de Software y Sistemas..................................................................7
Etapas de la Ingeniería de Software.................................................................................8
Ingeniería de Software herramientas...............................................................................8
CASE...................................................................................................................................9
Principios de la Ingeniería de Software..........................................................................10
Ingeniería de Software especialización...........................................................................11
CONCLUSIÓN....................................................................................................................12
BIBLIOGRAFIA..................................................................................................................13

2
INTRODUCCIÓN
En la época actual la mayor parte del área laboral e incluso en lo cotidiano
depende de menor o mayor medida de los sistemas de software; pero estos están ahí,
en el día a día de gran parte de la población, manejando en algunos casos información
o trabajos de suma importancia o de vital delicadeza y por lo cual es necesario que
estos sistemas de software cumplan con ciertos requisitos de calidad, de los cuales un
ingeniero de software debe encargarse de precisar siempre es sus proyectos.

Un producto de software de calidad y su mantenimiento a lo largo de su vida


útil es donde yace la labor e importancia de la ingeniería de software, naciendo en la
llamada crisis del software en busca de traer calidad y ética a esta nueva área que
recientemente estaba surgiendo, llevando al desarrollo tanto de la carrera en sí como a
los sistemas de software, llegando al punto actual en que se encuentra, una época en
el auge del desarrollo del software, sus metodologías, paradigmas, especialización,
herramientas, entre otros, los cuales busca ilustrar y detallar el presente documento.

3
INGENIERIA DE SOFTWARE

Concepto
IEEE std 610.12 (1990) “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 y el estudio de estos enfoques”. (p. 67)
W. Boehm (1976) “Ingenieria de software: La aplicación práctica del
conocimiento científico en el diseño y construcción de programas de computadora y
la documentación asociada requerida para desarrollarlos, operarlos y mantenerlos”.
(p. 1226)
Según Ian Sommerville (2011):
La ingeniería de software es una disciplina de ingeniería que se
interesa por todos los aspectos de la producción de software, desde las
primeras etapas de la especificación del sistema hasta el
mantenimiento del sistema después de que se pone en operación. (p. 7)
Objetivo
El objetivo de la ingeniería de software es entregar un producto informático de
calidad y para ello se busca que un ingeniero en sistema pueda cumplir con una
variedad de objetivos, tanto como ingeniero, como desarrollador de sistemas:
 Diseñar aplicaciones informáticas que se ajusten a las necesidades de las
organizaciones.
 Dirigir y coordinar el desarrollo de aplicaciones complejas.
 Intervenir en todas las fases del ciclo de vida de un producto.
 Estimar los costes de un proyecto y determinar los tiempos de desarrollo.
 Hacer el seguimiento de costes y plazos.
 Dirigir equipos de trabajo de desarrollo software.

4
 Organizar la realización de pruebas que verifiquen el correcto
funcionamiento de los programas y que se ajustan a los requisitos de
análisis y diseño.
 Diseñar, construir y administrar bases de datos.
 Dirigir y asesorar a los programadores durante el desarrollo de
aplicaciones.
 Introducir procedimientos de calidad en los sistemas, evaluando métricas e
indicadores y controlando la calidad del software producido.
 Organizar y supervisar el trabajo de su equipo de los técnicos de
mantenimiento y los ingenieros de sistemas y redes.
Características
1. Enfoque sistemático:
 Desarrollo ordenado y con control de calidad.
2. Aplicación de principios de ingeniería:
 Eficiencia, confiabilidad, escalabilidad y mantenibilidad.
3. Orientación a la calidad:
 Satisfacción del usuario y producto de alto valor.
4. Enfoque en la gestión de proyectos:
 Planificación, organización y control del proyecto.
5. Consideración de las necesidades del usuario:
 Interfaces intuitivas y fáciles de usar.
6. Evolución y mantenimiento:
 Actualización, corrección de errores y mejora del software.
7. Trabajo en equipo:
 Colaboración de profesionales con diferentes habilidades.
8. Ética y responsabilidad social:
 Impactos positivos en la sociedad.
9. Creatividad e innovación:
 Soluciones a problemas complejos.

5
Historia
El concepto “ingeniería de software” se propuso originalmente en 1968, en
una conferencia realizada para discutir lo que entonces se llamaba la “crisis del
software” (Naur y Randell, 1969). Se volvió claro que los enfoques individuales al
desarrollo de programas no escalaban hacia los grandes y complejos sistemas de
software. Éstos no eran confiables, costaban más de lo esperado y se distribuían con
demora.
A lo largo de las décadas de 1970 y 1980 se desarrolló una variedad de nuevas
técnicas y métodos de ingeniería de software, tales como la programación
estructurada, el encubrimiento de información y el desarrollo orientado a objetos. Se
perfeccionaron herramientas y notaciones estándar y ahora se usan de manera
extensa.
Ingeniería de Software en la actualidad
La ingeniería de software se encuentra en un momento crucial de su
desarrollo, caracterizado por una evolución constante y un impacto cada vez mayor
en todos los ámbitos de la vida. En el 2024, la disciplina se define por las siguientes
características:
 Demanda creciente: El mercado laboral para ingenieros de software está
en auge, con una demanda que supera ampliamente la oferta según dice la
plataforma global de datos e inteligencia empresarial Statista.
 Nuevos paradigmas: La aparición de tecnologías como la inteligencia
artificial, el aprendizaje automático, la computación en la nube y el
Blockchain está transformando la forma en que se diseña y desarrolla el
software. Los ingenieros de software deben estar al día con estas nuevas
tendencias para poder aprovecharlas al máximo.
 Enfoque en la experiencia del usuario: La experiencia del usuario (UX)
se ha convertido en un factor fundamental del éxito de cualquier software.
Los ingenieros de software deben trabajar en estrecha colaboración con los
diseñadores UX para crear interfaces intuitivas, fáciles de usar y que
satisfagan las necesidades de los usuarios.

6
 Seguridad y privacidad: La seguridad y la privacidad de los datos son
cada vez más importantes, especialmente en un mundo donde el software
se utiliza para gestionar información sensible. Los ingenieros de software
deben implementar las mejores prácticas de seguridad para proteger los
datos de los usuarios.
 Trabajo remoto: La pandemia aceleró la adopción del trabajo remoto en
la industria del software. Esta tendencia ofrece a los ingenieros de
software la flexibilidad de trabajar desde cualquier lugar del mundo.
 Aprendizaje continuo: El rápido ritmo de cambio en la industria del
software exige que los ingenieros de software se mantengan actualizados
constantemente. Existen diversas plataformas y recursos disponibles para
que los profesionales puedan aprender nuevas habilidades y mantenerse al
día con las últimas tendencias.
Diferencia Ingeniería de Software y Sistemas
Según Ian Sommerville (2011) “La ingeniería de sistemas se interesa por
todos los aspectos del desarrollo de sistemas basados en computadoras, incluidos
hardware, software e ingeniería de procesos. La ingeniería de software es parte de
este proceso más general”. (p. 6)
Etapas de la Ingeniería de Software
Las etapas de la ingeniería de software son un conjunto de pasos que se siguen
para desarrollar software. Estas etapas pueden variar según el proyecto, pero
generalmente incluyen las siguientes:
1. Análisis de requisitos: Como primera instancia se debe recabar
información primordial de la fuente principal para tener claro el fin del
proyecto a desarrollar.
2. Diseño del sistema: A continuación, se hace una idea y se esquematiza el
proyecto en termino macro para decidir el lenguaje de programación.
3. Implementación: En este punto el trabajo de desarrollo empieza y se
programa el software solicitado. Empleando códigos y elementos
necesarios para su funcionamiento.

7
4. Verificación: Una de las etapas más relevantes, se evalúa el proceso y se
corrigen fallas en caso de presentar errores en el proyecto.
5. Mantenimiento: Finalmente se asegura la calidad del software brindando
atención oportuna, capacitación y actualizaciones que permitan añadir
nuevas y mejores funcionalidades.
Ingeniería de Software herramientas
Los ingenieros de software actualmente cuentan con una amplia variedad de
herramientas para desarrollar y mantener un software. Estas herramientas pueden
automatizar tareas, mejorar la calidad del software y aumentar la productividad de los
ingenieros de software. Algunas de estas herramientas son:
 Entornos de desarrollo integrados (IDE): Los IDE proporcionan un
entorno completo para el desarrollo de software. Incluyen editores de
código, compiladores, depuradores y otras herramientas.
 Herramientas de control de versiones: Las herramientas de control de
versiones ayudan a los ingenieros de software a realizar un seguimiento de
los cambios en el código fuente. Permiten a los ingenieros deshacer
cambios, restaurar versiones anteriores del código y colaborar con otros
ingenieros.
 Herramientas de prueba: Las herramientas de prueba ayudan a los
ingenieros de software a probar el software para encontrar errores. Estas
herramientas pueden automatizar pruebas, generar informes de pruebas y
realizar pruebas de rendimiento.
 Herramientas de depuración: Las herramientas de depuración ayudan a
los ingenieros de software a encontrar y corregir errores en el software.
Permiten a los ingenieros ejecutar el código paso a paso, examinar el valor
de las variables y establecer puntos de interrupción.
 Herramientas de gestión de proyectos: Las herramientas de gestión de
proyectos ayudan a los ingenieros de software a planificar, organizar y
realizar un seguimiento del progreso de los proyectos de software. Estas

8
herramientas pueden usarse para crear tareas, asignar tareas, establecer
plazos y realizar un seguimiento del progreso.
CASE
CASE (Computer Aided Software Engineering) es un conjunto de
herramientas y métodos que ayudan a los ingenieros de software a desarrollar y
mantener software. Las herramientas CASE pueden automatizar tareas, mejorar la
calidad del software y aumentar la productividad de los ingenieros de software. Estas
se pueden dividir en cuatro categorías principales:
 Herramientas de análisis y diseño: Estas herramientas ayudan a los
ingenieros de software a definir los requisitos del software y a crear un
diseño del sistema.
 Herramientas de generación de código: Estas herramientas pueden
generar automáticamente código a partir de un diseño del sistema.
 Herramientas de prueba: Estas herramientas ayudan a los ingenieros de
software a probar el software para encontrar errores.
 Herramientas de gestión de proyectos: Estas herramientas ayudan a los
ingenieros de software a planificar, organizar y realizar un seguimiento del
progreso de los proyectos de software.
Principios de la Ingeniería de Software
La ingeniería de software se basa en un conjunto de principios fundamentales
que guían el desarrollo de software de alta calidad. Estos principios incluyen:
1. Rigor y formalidad: El desarrollo de software debe ser un proceso
disciplinado y bien definido. Se deben utilizar métodos y técnicas formales
para asegurar la calidad del software.
2. Modularidad: El software debe diseñarse como un conjunto de módulos
independientes que se puedan combinar para crear el sistema completo. Esto
facilita el desarrollo, el mantenimiento y la reutilización del software.
3. Interfaz bien definida: Los módulos de software deben tener interfaces
bien definidas que especifiquen cómo interactúan con otros módulos. Esto
facilita la integración de los módulos y la reutilización del software.

9
4. Abstracción: El software debe diseñarse utilizando técnicas de abstracción
para ocultar los detalles de implementación de los usuarios. Esto facilita el uso
y el mantenimiento del software.
5. Reutilización: Se debe fomentar la reutilización de software para reducir el
tiempo y el costo de desarrollo.
6. Pruebas: El software debe probarse exhaustivamente para asegurar que
cumple con los requisitos y que funciona correctamente.
7. Documentación: El software debe estar bien documentado para facilitar su
uso, mantenimiento y evolución.
8. Mantenibilidad: El software debe diseñarse para que sea fácil de mantener
y actualizar.
9. Portabilidad: El software debe diseñarse para que sea fácil de portar a
diferentes plataformas.
10. Eficiencia: El software debe ser eficiente en términos de uso de recursos.
La aplicación de estos principios puede ayudar a los ingenieros de software a
desarrollar software de alta calidad que sea confiable, eficiente y fácil de usar.

Ingeniería de Software especialización


La ingeniería de software tiene un amplio margen de especialización en la
época actual, dado que una gran parte del área laboral esta automatizado o hace uso
de algún sistema para hacer más eficiente y fácil su labor. Existiendo actualmente una
gran variedad de opciones en las que se puede especializar un ingeniero de software,
entre estos están:
 Desarrollo de aplicaciones web: Se centra en el diseño, desarrollo y
mantenimiento de aplicaciones web que se ejecutan en un navegador web. Los
especialistas en esta área tienen conocimientos en lenguajes de programación
web como HTML, CSS, JavaScript, y frameworks como React, Angular o
Vue.
 Desarrollo de aplicaciones móviles: Se enfoca en el diseño, desarrollo y
mantenimiento de aplicaciones para dispositivos móviles como smartphones y

10
tablets. Los especialistas en esta área tienen conocimientos en lenguajes de
programación para móviles como Java (Android) y Swift (iOS), y frameworks
como Flutter o React Native.
 Ingeniería de software para la nube: Se especializa en el diseño, desarrollo
y mantenimiento de software que se ejecuta en plataformas en la nube como
Amazon Web Services (AWS), Microsoft Azure o Google Cloud Platform.
Los especialistas en esta área tienen conocimientos en tecnologías de
virtualización, contenedores, DevOps y microservicios.
 Inteligencia artificial y aprendizaje automático: Se centra en el desarrollo
de software que utiliza técnicas de inteligencia artificial y aprendizaje
automático para resolver problemas complejos. Los especialistas en esta área
tienen conocimientos en algoritmos de aprendizaje automático, redes
neuronales profundas y procesamiento del lenguaje natural.
 Seguridad de software: Se especializa en la identificación, análisis y
prevención de vulnerabilidades de seguridad en software. Los especialistas en
esta área tienen conocimientos en criptografía, pruebas de penetración y
seguridad de aplicaciones web.
 Ingeniería de datos: Se enfoca en el diseño, construcción y mantenimiento
de sistemas para el almacenamiento, procesamiento y análisis de grandes
conjuntos de datos. Los especialistas en esta área tienen conocimientos en
bases de datos, Hadoop, Spark y herramientas de análisis de datos.
Es importante destacar que la ingeniería de software es una disciplina en constante
evolución.

11
CONCLUSIÓN

En la época actual la ingeniería de software está en auge, siendo los diferentes


sistemas de software imprescindibles a la hora de llevar una empresa a grandes
niveles tanto por la facilidad del almacenamiento y control de datos, como la
seguridad, la eficiencia en el trabajo, la publicidad, la automatización, las
herramientas, comunicación, entre otros; siendo necesario en toda área laboral si es
que se desea mejorar la mayor parte de los aspectos de la misma, sin embargo esto no
va solo al área laboral, si no tan bien al área social y personal pues los sistemas de
software son de gran ayuda e importancia para gran parte de la población pues estos
les traen comunicación, entretenimiento, herramientas, facilidades, entre otros
denotando la importancia de los sistemas de software y de la calidad necesaria.

Por ello, es de suma importancia la carrera de ingeniería de software, pues se


encargan de cumplir los criterios necesarios de calidad, el seguimiento durante la vida
útil del producto y los principios éticos y profesionales necesarios para el desarrollo
de los sistemas de software, siendo una carrera muy demandante, pues no solo el
ingeniero de software debe cumplir con sus estudios superiores, sino que al salir debe
estar en constante aprendizaje y estudio, ya que constantemente se están
desarrollando y mejorando nuevas tecnologías en el área del software, lo que lleva a
la reducción de vida útil u obsolescencia de los sistemas antiguos.

Ampliando cada vez más las áreas de especialización por las que puede optar
un ingeniero de software, los requerimientos mínimos que necesitará para el
desarrollo de sus proyectos, las actualizaciones que deberá aplicar a proyectos
antiguos y el mantenimiento de sus sistemas.

12
BIBLIOGRAFIA
 IEEE (1990). IEEE Standard Glossary of Software Engineering Terminology
(IEEE Std 610.12-1990). USA.
 B. W. Boehm (1976). "Software Engineering," IEEE Transactions on Computers,
vol. C25, no. 12. USA.
 Sommerville (2011). Ingeniería de Software, 9th ed. PEARSON EDUCACIÓN,
México.
 Pressman, R.S. (2014). Ingenieria del software: un enfoque practico, 7ma ed.
USA, New York.
 Dr. Francisco, G (2018). Capítulo 7 Ingeniería del Software [Libro en línea].
Consultado el 17 de Marzo del 2024 en:
chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://repositorio.grial.eu
/bitstream/grial/1228/4/07-rep.pdf
 Escuela Técnica Superior de Ingeniería de Sistemas Informáticos. (2014). [página
wed]. Disponible en:
https://www.etsisi.upm.es/estudios/grados/software/objetivos
 Daniel Diaz. (2022). [página wed]. Disponible en:
https://geekflare.com/es/software-engineering-tools/
 Plataforma Global de Datos e Inteligencia Empresarial Statista. (2023). [página wed].
Disponible en: https://www.statista.com/outlook/tmo/software/enterprise-
software/worldwide
 Universidad Autonoma de Peru. (2022). [página wed]. Disponible en:
https://www.autonoma.pe/blog/especializaciones-ingenieria-software/

13

También podría gustarte