Logo Studenta

Ingenieria de software actividad I y II

¡Este material tiene más páginas!

Vista previa del material en texto

REPÚBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN UNIVERSITARIA UNIVERSIDAD
EXPERIMENTAL DE LA GRAN CARACAS (UNEXCA)
CARRERA: PNFI -PROSECUCIÓN
ASIGNATURA: INGENIERÍA DE SOFTWARE. SECCIÓN - AI30232-C2
TRABAJO #1.
PROFESOR: INTEGRANTES:
ING. LESLY YAJAIRA SINZA B, PEDRO M. C.I. V-13.691.869.
CARACAS, ABRIL 2023.
INTRODUCCIÓN
La ingeniería de software es el proceso de diseño, construcción y mantenimiento de software utilizando
métodos y herramientas de ingeniería para lograr alta calidad y eficiencia en el proceso de desarrollo.
A continuación, presentamos un resumen de las etapas de la ingeniería de software y sus ciclos:
1. Planificación: en esta etapa se definen los objetivos del software y se establece un plan para
alcanzarlos. Se identifican factores críticos como el presupuesto, plazo, recursos y se establecen
las estrategias para manejarlos.
2. Análisis: se lleva a cabo la recopilación y análisis de información que ayude a comprender los
requisitos y los usuarios finales que utilizarán el software.
3. Diseño: se define la arquitectura del software, se elabora un diseño detallado y se especifican los
detalles técnicos de la solución que se está construyendo.
4. Implementación: en esta etapa se lleva a cabo la programación y la codificación del software a
partir del diseño acordado.
5. Pruebas: se realizan pruebas exhaustivas del software para detectar errores y fallos. Las pruebas
pueden variar desde pequeñas pruebas de unidad hasta grandes pruebas de integración y
aceptación.
6. Despliegue: el software se prepara para su despliegue en el entorno de producción.
7. Mantenimiento: se realizan mejoras y actualizaciones al software para mantenerlo actualizado,
seguro y en óptimas condiciones.
Las etapas del ciclo de vida del software incluyen: planificación, análisis, diseño, implementación,
pruebas, despliegue y mantenimiento. Cada etapa tiene sus propios requisitos y desafíos y requiere
diferentes habilidades y enfoques de los profesionales de la ingeniería de software.
La uml (unified modeling language) es un lenguaje de modelado visual que permite representar
gráficamente diversos aspectos del software. La uml se utiliza ampliamente en la ingeniería de software
para describir el diseño y la estructura del software. Uml se utiliza para crear diagramas como diagramas
de casos de uso, diagramas de clases, diagramas de secuencia y diagramas de estado, que ayudan a
visualizar cómo diferentes componentes del software interactúan entre sí.
En resumen, la ingeniería de software es un enfoque disciplinado y sistemático para el desarrollo de
software, que incluye numerosas etapas y ciclos de vida. La herramienta de modelado uml es
ampliamente utilizada en la ingeniería de software para crear diagramas que ayudan a visualizar y
comunicar el diseño del software.
La ingeniería de software es importante por varias razones:
1. Ayuda a crear software de alta calidad y eficiente: la ingeniería de software utiliza métodos y
herramientas disciplinados y sistemáticos para desarrollar software que sea confiable, seguro,
fácil de usar y escalable.
2. Mejora la productividad: la ingeniería de software ayuda a las empresas a desarrollar software de
manera más rápida y rentable, lo que mejora la productividad y la eficiencia de la empresa.
3. Permite una mejor gestión de proyectos: la ingeniería de software ayuda a las empresas a
planificar y gestionar proyectos de software de manera efectiva, evitando costosos retrasos y
errores en el proceso.
4. Facilita la colaboración: la ingeniería de software permite que los equipos de desarrollo de
software trabajen juntos de manera efectiva y colaborativa, lo que mejora la calidad y la eficiencia
del software producido.
En resumen, la ingeniería de software es vital para el desarrollo de software de alta calidad y eficiencia
que cumpla con las necesidades de la sociedad y las empresas. La aplicación de métodos y herramientas
disciplinados y sistemáticos es la clave del éxito en la ingeniería de software.
CONTENIDO
1.- Defina que es ingeniería del software y explique cada una de sus etapas.
La ingeniería de software es una disciplina que se centra en la aplicación de principios y técnicas de
ingeniería para el desarrollo y mantenimiento de software de alta calidad que es efectivo, eficiente,
seguro y fácil de mantener. Los principales objetivos de la ingeniería de software son:
• Aumentar la calidad del software
• Reducir el tiempo de desarrollo
• Reducir los costos de desarrollo
• Asegurar la facilidad de mantenimiento del software
Las etapas del ciclo de vida de desarrollo de software (sdlc) típicamente incluyen las siguientes fases:
1. Requerimientos: en esta etapa se identifica y se definen los requerimientos del software que se
va a desarrollar. Se debe tener en cuenta quiénes son las partes interesadas, los objetivos y los
requerimientos funcionales y no funcionales del software.
2. Diseño: en esta etapa se desarrolla la arquitectura del software y se crea el diseño detallado del
software a partir de los requerimientos especificados en la fase anterior.
3. Implementación: en esta etapa se lleva a cabo la codificación del software y se produce el
producto final.
4. Pruebas: en esta etapa se realiza la validación y verificación del software, para asegurarse de
que funcione de acuerdo a los requerimientos definidos.
5. Mantenimiento: esta fase implica la corrección de errores, la mejora del software y el
mantenimiento del software para asegurar que siga funcionando correctamente.
Es importante destacar que no todas las metodologías de desarrollo de software utilizan exactamente
estas mismas etapas. Algunas metodologías omiten algunas etapas, combinan etapas o agregan otras
etapas adicionales según las necesidades. En general, sin embargo, estas etapas proporcionan una guía
útil para el desarrollo de software efectivo y bien estructurado.
* los requerimientos en ingeniería de software son una parte esencial del ciclo de vida de desarrollo de
software (sdlc). Estos requisitos representan las necesidades y expectativas de los usuarios y clientes del
software. En términos generales, los requerimientos definen lo que el software debe hacer, las funciones
que debe incluir y el comportamiento esperado.
La ingeniería de requerimientos es la tarea de identificar, analizar y gestionar los requerimientos en el
ciclo de vida de desarrollo de software. Es un proceso continuo que se realiza en estrecha colaboración
con el cliente o usuarios finales, para garantizar que se cumplan sus expectativas y necesidades.
Durante la fase de requerimientos, los ingenieros de software recopilan datos sobre las necesidades del
usuario y del negocio, y luego los procesan para crear una lista de requerimientos funcionales y no
funcionales. Los requerimientos funcionales indican las acciones que un usuario realiza en el software,
mientras que los requerimientos no funcionales especifican los criterios importantes para la calidad del
software, como la seguridad y la usabilidad.
Una vez que se recopilan y analizan los requerimientos, se crean documentos que describen los
requerimientos y se validan con el cliente. Los documentos de requerimientos sirven como guía para el
diseño y la implementación del software. Los requerimientos también se utilizan durante la fase de
pruebas para determinar si el software cumple con los criterios especificados.
En resumen, los requerimientos en ingeniería de software son una parte fundamental del proceso de
desarrollo de software. Los ingenieros de software deben trabajar en estrecha colaboración con los
clientes para identificar los requerimientos y crear una lista completa y precisa de requerimientos, para
garantizarla calidad y la satisfacción del usuario final del software.
* diseño: la ingeniería de software es el proceso de aplicar principios y técnicas de ingeniería para
desarrollar software de alta calidad de manera efectiva y eficiente, para lo cual es necesario seguir un
ciclo de vida de desarrollo de software (sdlc) que incluye varias fases. El diseño es una de estas fases y
es un proceso importante para la planificación de una solución de software que cumpla con los
requerimientos del cliente y los usuarios finales.
El diseño de software abarca la creación de la arquitectura del software y el diseño detallado del software
a partir de los requerimientos especificados en la fase de requerimientos. El objetivo del diseño es
producir un conjunto de elementos de software que se puedan utilizar para implementar el software.
El diseño de software es un proceso creativo pero estructurado que implica la identificación y el análisis
de los componentes del software y sus interacciones. El diseño se puede dividir en varias categorías,
como el diseño arquitectónico, el diseño de datos, el diseño de interfaz de usuario, etc. El diseño debe
ser examinado para asegurarse de que cumple con los requerimientos y especificaciones, antes de pasar
a la siguiente fase del ciclo de vida de desarrollo de software.
En resumen, el diseño de ingeniería del software es el proceso de planificar y diseñar una solución de
software estructurada y bien organizada, que cumpla con los requerimientos del cliente y los usuarios
finales. El diseño debe ser examinado y validado para garantizar que sea adecuado para su posterior
implementación en la fase de implementación del ciclo de vida de desarrollo de software.
* la implementación en ingeniería de software es la fase del ciclo de vida de desarrollo de software (sdlc)
en la que se crea el software real a partir del diseño detallado elaborado en la fase anterior. En la
implementación se escribe el código necesario para que el software funcione como se diseñó, y se
realizan las pruebas necesarias para validar su correcto funcionamiento.
Durante la implementación, los ingenieros de software trabajan en estrecha colaboración para codificar el
software según los diseños previamente acordados en la fase de diseño. Se pueden utilizar diferentes
lenguajes de programación y herramientas para implementar el software, dependiendo de las
necesidades del proyecto.
Tras la implementación, se realizan pruebas del software para asegurarse de que funcione según lo
esperado y que cumpla con los requerimientos de usuarios y clientes. Las pruebas pueden incluir
pruebas unitarias, de integración y de aceptación del usuario.
En resumen, la implementación de ingeniería de software es la fase en la que se crea el software real y
se valida su funcionamiento. Es un paso crucial en el proceso de desarrollo de software y debe llevarse a
cabo con cuidado y atención, para asegurar la calidad y la satisfacción del usuario final.
* pruebas: las pruebas en la ingeniería de software son una parte clave del proceso de desarrollo de
software y son necesarias para garantizar la calidad del software y su adecuado funcionamiento.
Existen diferentes tipos de pruebas en la ingeniería de software, incluyendo:
1. Pruebas unitarias: pruebas que se realizan en los componentes individuales del software, como
funciones o módulos.
2. Pruebas de integración: pruebas que se realizan para comprobar que los diferentes componentes
del software interactúan correctamente entre sí.
3. Pruebas funcionales: pruebas que se realizan para evaluar que el software funciona según lo
especificado en los requerimientos del usuario.
4. Pruebas no funcionales: pruebas que se realizan para evaluar aspectos no funcionales del
software, como su rendimiento, seguridad y capacidad de escalabilidad.
5. Pruebas de aceptación del usuario: pruebas que se realizan para evaluar la facilidad de uso y la
satisfacción del usuario con el software.
Es importante realizar pruebas en las diferentes fases del ciclo de vida de desarrollo de software para
detectar y corregir posibles errores a tiempo, antes de que el software sea liberado y utilizado por los
usuarios. Las pruebas también pueden llevarse a cabo mediante diferentes métodos y herramientas,
incluyendo pruebas manuales y automatizadas, que varían en función de las necesidades del proyecto y
las preferencias del equipo de desarrollo.
* el mantenimiento en la ingeniería de software se refiere a la modificación o mejora del software después
de su entrega y puesta en operación. Este mantenimiento puede dividirse en cuatro tipos:
1. Mantenimiento correctivo: consiste en corregir errores o fallas encontrados en el software
después de su entrega.
2. Mantenimiento adaptativo: se refiere a las modificaciones realizadas al software para adaptarse a
cambios en el entorno en el que se encuentra, como cambios en la tecnología o en los
requerimientos del usuario.
3. Mantenimiento perfectivo: se trata de mejoras realizadas al software para mejorar su
funcionamiento o su calidad, sin necesariamente corregir errores.
4. Mantenimiento preventivo: tiene por objetivo evitar la aparición de errores en el software a través
de la identificación y corrección temprana de áreas problemáticas.
Es importante tener un buen mantenimiento de software para asegurar su correcto funcionamiento a largo
plazo y para evitar problemas mayores en el futuro. El mantenimiento del software también puede incluir
actividades como la documentación y la gestión de la configuración del software
2.- Defina que es el ciclo de vida de un software.
El ciclo de vida del software, también conocido como sdlc (del inglés "software development life cycle"),
es un proceso estructurado y sistematizado que se utiliza para planificar, crear, probar y poner en marcha
un software. El ciclo de vida del software abarca desde la identificación de los requerimientos del software
hasta su mantenimiento y mejora continua.
El ciclo de vida del software consta de diversas etapas, que pueden incluir la identificación de
requerimientos, diseño, codificación, pruebas, despliegue, mantenimiento y mejora. Cada una de estas
etapas es crítica para el desarrollo exitoso del software y debe llevarse a cabo de manera cuidadosa y
detallada para garantizar la calidad y el éxito del software.
El ciclo de vida del software puede variar según el tipo de software y la metodología de desarrollo que se
utilice. Es por eso que en la industria software se han desarrollado diferentes modelos de ciclo de vida del
software, con el fin de ofrecer una guía que se adapte a diferentes necesidades y fines.
En general, una buena gestión del ciclo de vida del software es esencial para el desarrollo de software de
alta calidad que cumpla con las expectativas del usuario y del cliente.
3.- Que es el análisis y diseño orientado a objetos.
El análisis y diseño orientado a objetos (adoo) es un enfoque del desarrollo de software que se centra en
el modelado de sistemas como un conjunto de objetos que interactúan entre sí . Este enfoque utiliza la
programación orientada a objetos (poo) para permitir una mayor modularidad, flexibilidad y reutilización
del software. En el adoo, se utilizan técnicas de análisis y diseño para identificar y modelar los objetos,
sus propiedades y su comportamiento, y cómo interactúan entre sí para lograr los objetivos del sistema.
El adoo tiene como objetivo mejorar la calidad del software, su mantenibilidad y su eficiencia, a través del
uso de la poo y el enfoque centrado en los objetos. Uml es un lenguaje standard utilizado en análisis y
diseño orientado a objetos para la notación y modelado de los objetos.
4. Defina los fundamentos principales de la programación orientada al objetos.
Los fundamentos principales de la programación orientada a objetos son:
1. Clases y objetos:la programación orientada a objetos se basa en la creación de clases, que son
plantillas para crear objetos. Los objetos son instancias de una clase, creados a partir de la
misma, y contienen sus propias características y comportamientos.
2. Encapsulación: se refiere a la ocultación de los detalles internos de un objeto para protegerlo y
garantizar su correcto funcionamiento. Los objetos deben estar diseñados de manera que solo
puedan ser modificados a través de sus métodos públicos, sin necesidad de acceder
directamente a sus atributos.
3. Herencia: permite que una clase herede los atributos y/o métodos de otra clase, lo que facilita la
reutilización del código y la creación de jerarquías de clases.
4. Polimorfismo: se refiere a la capacidad de los objetos para comportarse de diferentes maneras
según el contexto. El polimorfismo permite crear métodos que pueden utilizarse con diferentes
argumentos sin necesidad de crear varios métodos similares.
La programación orientada a objetos se trata de un paradigma muy popular en la industria del software
porque permite crear programas más organizados, escalables y mantenibles en el tiempo.
* objeto y clase
En la programación orientada a objetos, una clase es una plantilla que sirve para crear objetos. La clase
define los atributos y métodos que tienen los objetos que se creen a partir de ella. Los atributos son las
características de un objeto y los métodos son las funciones que el objeto puede realizar. Un objeto es
una instancia de una clase, es decir, una variable que contiene los valores para los atributos de la clase.
Cada objeto creado a partir de una misma clase tiene sus propios valores de atributos, pero comparten
los mismos métodos definidos en la clase.
En resumen, una clase es una plantilla que define los atributos y métodos de los objetos que se crean a
partir de ella, mientras que un objeto es una instancia de una clase , es decir, una variable que contiene
los valores para los atributos definidos en la clase.
* herencia:
La herencia es uno de los conceptos fundamentales de la programación orientada a objetos. Se refiere a
la capacidad de una clase de heredar características (atributos y/o métodos) de otra clase, a la vez que
puede añadir nuevas características propias . La clase original que se está heredando se llama "clase
padre" o "superclase", y la clase que hereda de ella se llama "clase hija" o "subclase". Al heredar de una
clase, la subclase obtiene todos los atributos y métodos de la clase padre, y puede modificarlos, añadir
nuevos atributos y métodos y/o sobrescribir los existentes.
La herencia permite a los programadores reutilizar código existente, escribir código menos repetitivo y
organizar mejor el diseño del programa. También ayuda a crear una jerarquía de clases, en la que
diferentes clases heredan de otras clases más generales en función de las características que
comparten.
Es importante tener en cuenta que la herencia solo es adecuada cuando las clases tienen una relación de
"es-un", es decir, cuando la subclase es un tipo especial de la superclase. Si este no es el caso, puede
ser más apropiado utilizar composición en lugar de herencia.
* abstracción:
La abstracción es un concepto fundamental en la programación orientada a objetos , que se refiere a la
capacidad de un objeto para representar una idea o concepto de forma simplificada, a través de la
definición de las propiedades y métodos que son esenciales para su correcto funcionamiento.
En términos prácticos, la abstracción implica la creación de una clase que define un conjunto de
propiedades y métodos que son esenciales para representar un objeto o entidad en particular. Esta clase
puede ser utilizada como una plantilla para crear objetos reales en el programa, que heredarán estas
propiedades y métodos y podrán utilizarlos para realizar tareas específicas.
La abstracción es especialmente útil en la programación orientada a objetos porque permite la creación
de objetos y clases abstractas que representan conceptos complejos de manera simple y clara. Además,
al separar los detalles internos del objeto de la forma en que se utiliza en el programa, se aumenta la
modularidad del código y se simplifica su mantenimiento y evolución.
En resumen, la abstracción es un concepto fundamental en la programación orientada a objetos, que se
refiere a la capacidad de un objeto para representar una idea o concepto de forma simplificada , a través
de la definición de las propiedades y métodos esenciales para su correcto funcionamiento. La abstracción
es especialmente útil para crear objetos y clases abstractas y para aumentar la modularidad y simplificar
el mantenimiento del código.
* encapsulamiento.
En la programación orientada a objetos, la encapsulación es uno de los pilares fundamentales que se
refiere a la ocultación de los detalles internos de un objeto para protegerlo y garantizar su correcto
funcionamiento . Para lograr esto, se utilizan los modificadores de acceso en los atributos y métodos de
una clase:
• Public: se puede acceder al atributo o método desde cualquier parte del programa.
• Private: solo se puede acceder al atributo o método desde la misma clase.
• Protected: se puede acceder al atributo o método desde la misma clase y las subclases.
Por norma general, se recomienda utilizar el modificador de acceso "private" en la mayoría de los
atributos de una clase, y proporcionar métodos públicos (getters y setters) para acceder a ellos desde
fuera de la clase.
Sin embargo, en algunos casos puede ser necesario tener una propiedad "public" , como es para
propósitos de acceso a miembros estáticos de la propia clase. Por otro lado, en algunas situaciones
específicas, puede ser necesario tener una propiedad "protected" . La elección del modificador de acceso
depende de las necesidades específicas de la aplicación y del diseño de la clase.
En resumen, la encapsulación es un concepto fundamental en poo y se logra mediante la utilización de
modificadores de acceso en los atributos y métodos de una clase. La elección del modificador de acceso
adecuado depende de las necesidades específicas de la aplicación y del diseño de la clase. Los atributos
y métodos que no necesitan ser accedidos desde fuera de la clase deben marcarse como "private",
mientras que aquellos que necesitan ser accedidos desde subclases deben marcarse como "protected".
* polimorfismo en la programación orientada a objetos
El polimorfismo es un concepto fundamental en la programación orientada a objetos . Se refiere a la
capacidad que tienen los objetos de una clase para responder de manera diferente a un mismo mensaje
o método. En otras palabras, diferentes objetos pueden compartir el mismo nombre de método pero cada
uno de ellos implementa el método de forma diferente, según sus características y comportamiento
específicos .
El polimorfismo se utiliza para crear clases más abstractas y reutilizables, lo que permite que un mismo
código pueda utilizar objetos de diferentes clases. Esto se logra mediante la definición de una clase base
que define un método común, y las subclases que heredan de ella pueden sobrescribir ese método y
darle su propia implementación.
El polimorfismo es un elemento clave en el diseño de sistemas de software grandes y complejos, ya que
permite una mayor flexibilidad en la forma en que se implementa el comportamiento de los objetos en
diferentes partes del programa.
En resumen, el polimorfismo es la capacidad de los objetos de una clase para responder de manera
diferente a un mismo mensaje o método, lo que permite la reutilización y flexibilidad en el diseño de un
sistema de software orientado a objetos. Se utiliza comúnmente en conjunto con la herencia y la
encapsulación para crear clases más abstractas y reutilizables.
5.- ¿Que es uml?
Uml son las siglas de "unified modeling language" o "lenguajeunificado de modelado", y se refiere a un
estándar internacional utilizado para la representación visual de sistemas de software y otros sistemas
complejos. Es un lenguaje de modelado visual que utiliza una variedad de diagramas para describir
diferentes aspectos del sistema en cuestión, como la estructura, el comportamiento y las relaciones entre
los diferentes componentes del sistema.
El objetivo de uml es proporcionar una forma común de representar los sistemas de software para que los
diseñadores, desarrolladores y otros miembros del equipo puedan entender fácilmente las diferentes
partes del sistema y cómo interactúan entre sí. Uml es una herramienta muy útil para la comunicación y el
diseño de software, y es utilizado por profesionales de la ingeniería de software en todo el mundo.
En resumen, uml es un estándar internacional utilizado para la representación visual de sistemas de
software y se compone de una variedad de diagramas para describir diferentes aspectos del sistema. Es
una herramienta muy útil para la comunicación y el diseño de software, y es utilizado frecuentemente por
profesionales de la ingeniería de software.
6. Fase de análisis orientado a objeto.
En el análisis orientado a objetos, la fase de análisis es la etapa inicial del proceso de desarrollo de
software. Durante esta fase, el equipo se enfoca en comprender la naturaleza y requisitos del sistema
que se va a desarrollar, así como también en identificar los principales objetos que lo conformarán y las
relaciones que existen entre ellos.
En esta fase, se utiliza uml para crear diferentes tipos de modelos y diagramas que ayuden a visualizar y
entender el sistema. Los principales modelos que se suelen crear durante la fase de análisis incluyen el
modelo de casos de uso, el modelo de objetos y el diagrama de flujo de datos, entre otros.
El objetivo principal de la fase de análisis es crear una comprensión clara y completa de lo que se
requiere del sistema, para que posteriormente en la fase de diseño se puedan tomar decisiones y
construir una solución que satisfaga esos requisitos . En resumen, la fase de análisis en el desarrollo de
software orientado a objetos se enfoca en el entendimiento de los requisitos y la identificación de los
principales objetos y relaciones del sistema a desarrollar 
7. Como obtener los requisitos.
Para obtener los requisitos en ingeniería de software se requiere realizar una serie de actividades que
permitan entender y documentar las necesidades y expectativas de los usuarios y el negocio en relación
al sistema que se está desarrollando. Algunas de las técnicas que se utilizan para obtener los requisitos
son:
1. Entrevistas: se realizan entrevistas a los usuarios, expertos en el negocio y otros interesados
para comprender sus necesidades y expectativas.
2. Cuestionarios: se utilizan cuestionarios para recolectar información de los diferentes interesados
en el sistema.
3. Análisis de documentos: se revisan documentos y reportes existentes relacionados con el
sistema o proceso a diseñar.
4. Observación: se observa el funcionamiento y uso del sistema o proceso actual, si existiera y se
identifican posibles mejoras y oportunidades de automatización.
5. Taller participativo: se realizan reuniones con usuarios y expertos para discutir y definir los
requisitos del sistema.
6. Prototipado: se construyen prototipos del sistema para validar y refinar los requisitos.
Es importante mencionar que obtener los requisitos es un proceso iterativo y que debe involucrar a todos
los interesados en el desarrollo del sistema. Además, todos los requisitos deben ser correctamente
documentados y validados antes de ser considerados para la implementación.
8.- Tres ejemplos de casos de uso.
Aquí te presento tres ejemplos de casos de uso en la ingeniería de software:
1. Un caso de uso para un sistema de gestión de inventario en una tienda minorista, donde uno de los
requisitos es que los clientes deben poder buscar y comprar productos a través de una tienda en línea.
2. Un caso de uso para un sistema de registro de estudiantes en una universidad, donde uno de los
requisitos es que los estudiantes puedan inscribirse en cursos específicos y ver su horario de clases.
3. Un caso de uso para un sistema de reservas de vuelos en una aerolínea, donde uno de los requisitos
es que los clientes puedan buscar vuelos disponibles, reservar asientos y pagar por sus boletos en línea.
En todos estos ejemplos, los casos de uso se utilizan para describir cómo los usuarios interactúan con el
sistema y cómo el sistema debe responder a sus acciones para cumplir con los requisitos del negocio.
Estos casos de uso pueden ser documentados como diagramas de casos de uso en uml , lo que permite
a los desarrolladores visualizar cómo los diferentes usuarios interactúan con el sistema y cómo se deben
manejar diferentes situaciones.
CONCLUSIÓN
La ingeniería de software es fundamental en proyectos educativos y de investigación en el campo del
software. La aplicación de métodos y herramientas disciplinados y sistemáticos permiten el desarrollo de
software de alta calidad y eficiencia, que cumpla con las necesidades de los usuarios y organizaciones
involucradas en estos proyectos.
En proyectos educativos, la ingeniería de software ayuda a desarrollar software educativo efectivo y de
fácil uso para facilitar la enseñanza y el aprendizaje. Mientras que en proyectos de investigación de
software, las técnicas de ingeniería de software son empleadas para desarrollar software innovador y
avanzado para explorar nuevas posibilidades en el campo del software.
En la fase de análisis orientado a objeto, la ingeniería de software se enfoca en identificar y definir los
objetos, clases y relaciones necesarias para el sistema a desarrollar. En esta fase se realizan actividades
de obtención de requisitos, como la identificación de necesidades de los usuarios y la definición de las
funcionalidades que debe cumplir el software.
Esto implica una estrecha colaboración entre el equipo de desarrollo y los usuarios involucrados en el
proyecto, utilizando técnicas como entrevistas, encuestas y prototipos para obtener una comprensión
clara de las necesidades y requerimientos del sistema.
El uso de uml en esta fase de análisis permite una representación gráfica y una comunicación más clara y
efectiva entre los desarrolladores y usuarios, lo que ayuda a asegurar que los requisitos se comprenden y
documentan de manera adecuada.
En la fase de implementación, la ingeniería de software se enfoca en la creación del código a partir de los
diseños y especificaciones definidos en la fase de análisis y diseño. Esto incluye la escritura de código,
pruebas unitarias y documentación.
En general, la combinación del análisis orientado a objeto, la obtención de requisitos efectiva y el uso de
uml en el proceso de desarrollo de software mejora en gran medida la calidad y eficiencia del proyecto de
software, asegurando que el software cumpla con las necesidades del usuario y las especificaciones de
diseño. En resumen, la fase de análisis orientado a objeto y el uso de uml son fundamentales en el éxito
del desarrollo de software, asegurando que el software desarrollado satisfaga las necesidades del usuario
y cumpla con los requisitos del proyecto.
En conclusión, la ingeniería de software cumple un rol fundamental en el desarrollo de proyectos
educativos y de investigación de software, ya que permite el desarrollo de software de alta calidad y
eficiencia que cumpla con las necesidades de los usuarios y organizaciones involucradas en estos
proyectos.
REFERENCIAS BIBLIOGRÁFICAS.
1.- https://www.microsoft.com/es-ww/microsoft-365/business-insights-ideas/resources/guide-to-uml-
diagramming-and-database-modeling
2. https://www.tutorialspoint.com/sdlc/sdlc_overview.htm
3. https://support.sophos.com/support/s/article/kb-000035144?language=en_us4. https://es.wikipedia.org/wiki/dise%c3%b1o_de_software
5. https://resources.workable.com/es/ingeniero-de-software-integrado-descripcion-del-puesto
6. https://www.tutorialspoint.com/sp/software_engineering/software_maintenance_overview.htm
7. https://www.tutorialspoint.com/sdlc/sdlc_overview.htm
8. https://learn.microsoft.com/es-es/dotnet/csharp/fundamentals/tutorials/oop
9. https://www.linkedin.com/learning/c-sharp-esencial-3
10. https://learn.microsoft.com/es-es/dotnet/csharp/fundamentals/object-oriented/inheritance.
11. https://learn.microsoft.com/es-es/dotnet/visual-basic/programming-guide/concepts/object-oriented-
programming
12. https://learn.microsoft.com/es-es/dotnet/csharp/fundamentals/object-oriented/polymorphism
13. https://www.linkedin.com/learning/c-sharp-programacion-orientada-a-objetos
14. https://www.microsoft.com/es-ww/microsoft-365/business-insights-ideas/resources/guide-to-uml-
diagramming-and-database-modeling
15. https://www.tutorialspoint.com/es/software_engineering/software_requirements.htm
https://www.tutorialspoint.com/sdlc/sdlc_overview.htm
https://support.sophos.com/support/s/article/KB-000035144?language=en_US
https://es.wikipedia.org/wiki/Dise%C3%B1o_de_software
https://resources.workable.com/es/ingeniero-de-software-integrado-descripcion-del-puesto
https://www.tutorialspoint.com/sp/software_engineering/software_maintenance_overview.htm
https://www.tutorialspoint.com/sdlc/sdlc_overview.htm
https://learn.microsoft.com/es-es/dotnet/csharp/fundamentals/tutorials/oop
https://www.linkedin.com/learning/c-sharp-esencial-3
https://learn.microsoft.com/es-es/dotnet/csharp/fundamentals/object-oriented/inheritance
https://learn.microsoft.com/es-es/dotnet/visual-basic/programming-guide/concepts/object-oriented-programming
https://learn.microsoft.com/es-es/dotnet/visual-basic/programming-guide/concepts/object-oriented-programming
https://learn.microsoft.com/es-es/dotnet/csharp/fundamentals/object-oriented/polymorphism
https://www.linkedin.com/learning/c-sharp-programacion-orientada-a-objetos
https://www.microsoft.com/es-ww/microsoft-365/business-insights-ideas/resources/guide-to-uml-diagramming-and-database-modeling
https://www.microsoft.com/es-ww/microsoft-365/business-insights-ideas/resources/guide-to-uml-diagramming-and-database-modeling
https://www.tutorialspoint.com/es/software_engineering/software_requirements.htm

Continuar navegando