Está en la página 1de 25

PORTAFOLIO DE EVIDENCIA

INGENIERIA DE SOFTWARE

ALUMNO: Harry Martínez López


MTI: Edaly Castañeda Mendez
Contenido
INSTRUMENTACION...........................................................................................................................2
EXAMEN DIAGNOSTICO......................................................................................................................3
1.INVESTIGACIONES...........................................................................................................................4
2.DEFINICION...................................................................................................................................13
3.GLOSARIO......................................................................................................................................13
4.INF. FASES......................................................................................................................................17
5.INF. METODOLOGIAS.....................................................................................................................18
6. M.M. CASE....................................................................................................................................19
7. FODA INTEGRANTES.....................................................................................................................20
8. CASO PRACTICO............................................................................................................................21
INSTRUMENTACION
EXAMEN DIAGNOSTICO
1.INVESTIGACIONES
FASES DE LA INGENIERIA DE SOFTWARE

tapas del proceso

La ingeniería en software requiere llevar a cabo numerosas tareas agrupadas en etapas,


al conjunto de estas etapas se le denomina ciclo de vida. Las etapas comunes a casi todos los
modelos de ciclo de vida son las siguientes:

Obtención de requisitos:

Se debe identificar sobre qué se está trabajando, es decir, el tema principal que motiva el inicio del
estudio y creación del nuevo software o modificación de uno ya existente. A su
vez identificar los recursos que se tienen, en esto entra el conocer los recursos humanos y
materiales que participan en el desarrollo de las actividades.

Se tiene que tener dominio de la información de un problema, lo cual incluye los datos fuera del
software (usuarios finales, otros sistemas o dispositivos externos), los datos que salen del
sistema (por la interfaz de usuario, interfaces de red, reportes, gráficas y otros medios) y
los almacenamientos de datos que recaban y organizan objetos persistentes de datos (por
ejemplo, aquellos que se conservan de manera permanente).

También hay que ver los puntos críticos, lo que significa tener de una manera clara los aspectos
que entorpecen y limitan el buen funcionamiento de los procedimientos actuales, los problemas
más comunes y relevantes que se presentan, los motivos que crean insatisfacción y aquellos que
deben ser cubiertos a plenitud. Por ejemplo: ¿El contenido de los reportes generados, satisface
realmente las necesidades del usuario? ¿Los tiempos de respuesta ofrecidos, son oportunos?, etc.

Hay que definir las funciones que realizará el software ya que estas ayudan al usuario final y al
funcionamiento del mismo programa.

Se tiene que tener en cuenta cómo será el comportamiento del software ante situaciones
inesperadas como lo son por ejemplo una gran cantidad de usuarios usando el software o una
gran cantidad de datos entre otros.

Análisis de los requisitos:

Extraer los requisitos de un producto software es la primera etapa para crearlo. Durante la fase de
análisis, el cliente plantea las necesidades que se presenta e intenta explicar lo que debería hacer
el software o producto final para satisfacer dicha necesidad mientras que el desarrollador actúa
como interrogador, como la persona que resuelve problemas. Con este análisis, el ingeniero de
sistemas puede elegir la función que debe realizar el software y establecer o indicar cuál es la
interfaz más adecuada para el mismo.

El análisis de requisitos puede parecer una tarea sencilla, pero no lo es debido a que muchas veces
los clientes piensan que saben todo lo que el software necesita para su buen funcionamiento, sin
embargo, se requiere la habilidad y experiencia de algún especialista para reconocer requisitos
incompletos, ambiguos o contradictorios. Estos requisitos se determinan tomando en cuenta las
necesidades del usuario final, introduciendo técnicas que nos permitan mejorar la calidad de los
sistemas sobre los que se trabaja.

El resultado del análisis de requisitos con el cliente se plasma en el documento ERS (especificación
de requisitos del sistema), cuya estructura puede venir definida por varios estándares, tales como
CMMI. Asimismo, se define un diagrama de entidad/relación, en el que se plasman las principales
entidades que participarán en el desarrollo del software.

La captura, análisis y especificación de requisitos (incluso pruebas de ellos), es una parte crucial; de
esta etapa depende en gran medida el logro de los objetivos finales. Se han ideado modelos y
diversos procesos metódicos de trabajo para estos fines. Aunque aún no está formalizada, ya se
habla de la ingeniería de requisitos.

Finalidades del análisis de requisitos:

 Brindar al usuario todo lo necesario para que pueda trabajar en conjunto con el software
desarrollado obteniendo los mejores resultados posibles.

 Tener un control más completo en la etapa creación del software, en cuanto a tiempo de
desarrollo y costos.

 Utilización de métodos más eficientes que permitan el mejor aprovechamiento del


software según sea la finalidad de uso del mismo.

 Aumentar la calidad del software desarrollado al disminuir los riesgos de mal


funcionamiento.

Limitaciones:

Los softwares tienen la capacidad de emular inteligencia creando un modelo de ciertas


características de la inteligencia humana pero sólo posee funciones predefinidas que abarcan un
conjunto de soluciones que en algunos campos llega a ser limitado. Aun cuando tiene la capacidad
de imitar ciertos comportamientos humanos no es capaz de emular el pensamiento humano
porque actúa bajo condiciones.

Otro aspecto limitante de los softwares proviene del proceso totalmente mecánico que requiere
de un mayor esfuerzo y tiempos elevados de ejecución lo que lleva a tener que implementar el
software en una máquina de mayor capacidad.

Especificación:

La especificación de requisitos describe el comportamiento esperado en el software una vez


desarrollado. Gran parte del éxito de un proyecto de software radicará en la identificación de las
necesidades del negocio (definidas por la alta dirección), así como la interacción con los usuarios
funcionales para la recolección, clasificación, identificación, priorización y especificación de los
requisitos del software.

Entre las técnicas utilizadas para la especificación de requisitos se encuentran:

 Caso de uso
 Historias de usuario

Siendo los primeros más rigurosas y formales, los segundas más ágiles e informales.

Diseño y arquitectura:

Se refiere a determinar cómo funcionará de forma general sin entrar en detalles. Consiste en
incorporar consideraciones de la implementación tecnológica, como el hardware, la red, etc. Se
definen los Casos de Uso para cubrir las funciones que realizará el sistema, y se transforman las
entidades definidas en el análisis de requisitos en clases de diseño, obteniendo un modelo cercano
a la programación orientada a objetos.

La arquitectura de software consiste en el diseño de componentes de una aplicación (entidades del


negocio), generalmente utilizando patrones de arquitectura. El diseño arquitectónico debe permitir
visualizar la interacción entre las entidades del negocio y además poder ser validado, por ejemplo,
por medio de diagramas de secuencia. Un diseño arquitectónico describe en general el cómo se
construirá una aplicación de software. Para ello se documenta utilizando diagramas, por ejemplo:

 Diagrama de clases

 Diagrama de base de datos

 Diagrama de despliegue

 Diagrama de secuencia

Los diagramas de clases y de base de datos son los mínimos necesarios para describir la
arquitectura de un proyecto que iniciará a ser codificado. Dependiendo del alcance del proyecto,
complejidad y necesidades, el arquitecto elegirá cuales de los diagramas se requiere elaborar.

Las herramientas para el diseño y modelado de software se denominan CASE (Computer Aided
Software Engineering) entre las cuales se encuentran:

 Enterprise Architect

 Microsoft Visio for Enterprise Architects

Programación:

Reducir un diseño a código puede ser la parte más obvia del trabajo de ingeniería de software,
pero no es necesariamente la porción más larga. La complejidad y la duración de esta etapa está
íntimamente ligada al o a los lenguajes de programación utilizados.

Desarrollo de la aplicación:

Para el desarrollo de la aplicación es necesario considerar cinco fases para tener una aplicación o
programa eficiente, estas son:

 Desarrollo de la infraestructura: Esta fase permite el desarrollo y la organización de los


elementos que formaran la infraestructura de la aplicación, con el propósito de finalizar la
aplicación eficientemente.
 Adaptación del paquete: El objetivo principal de esta fase es entender de una manera
detallada el funcionamiento del paquete, esto tiene como finalidad garantizar que el
paquete pueda ser utilizado en su máximo rendimiento, tanto para negocios o recursos.
Todos los elementos que componen el paquete son inspeccionados de manera detallada
para evitar errores y entender mejor todas las características del paquete.

 Desarrollo de unidades de diseño de interactivas: En esta fase se realizan los


procedimientos que se ejecutan por un diálogo usuario-sistema. Los procedimientos de
esta fase tienen como objetivo principal:

 Establecer específicamente las acciones que debe efectuar la unidad de diseño.

 La creación de componentes para sus procedimientos.

 Ejecutar pruebas unitarias y de integración en la unidad de diseño.

 Desarrollo de unidades de diseño batch: En esta fase se utilizan una serie de combinación
de técnicas, como diagrama de flujo, diagramas de estructuras, tablas de decisiones, etc.
Cualquiera a utilizar será beneficioso para plasmar de manera clara y objetiva las
especificaciones y que así el programador tenga mayor comprensión a la hora de
programar y probar los programas que le corresponden.

 Desarrollo de unidades de diseño manuales: En esta fase el objetivo central es proyectar


todos los procedimientos administrativos que desarrollarán en torno a la utilización de los
componentes computarizados.

Pruebas de software:

Consiste en comprobar que el software realice correctamente las tareas indicadas en la


especificación del problema. Una técnica es probar por separado cada módulo del software, y
luego probarlo de manera integral, para así llegar al objetivo. Se considera una buena práctica el
que las pruebas sean efectuadas por alguien distinto al desarrollador que la programó, idealmente
un área de pruebas; sin perjuicio de lo anterior el programador debe hacer sus propias pruebas.

Implementación:

Una implementación es la realización de una especificación técnica o algoritmos con un programa,


componente software, u otro sistema de cómputo. Muchas especificaciones son dadas según a su
especificación o un estándar. Las especificaciones recomendadas según el World Wide Web
Consortium, y las herramientas de desarrollo del software contienen implementaciones de
lenguajes de programación. El modelo de implementación es una colección de componentes y los
subsistemas que contienen. Componentes tales como: ficheros ejecutables, ficheros de código
fuente y todo otro tipo de ficheros que sean necesarios para la implementación y despliegue del
sistema.

La etapa de implementación del diseño de software es el proceso de convertir una especificación


del sistema en un sistema ejecutable. Siempre implica los procesos de diseño y programación de
software, pero, si se utiliza un enfoque evolutivo de desarrollo, también puede implicar un
refinamiento de la especificación del software. Esta etapa es una descripción de la estructura del
software que se va a implementar, los datos que son parte del sistema, las interfaces entre los
componentes del sistema, y algunas veces los algoritmos utilizados.

Documentación:

Todo lo concerniente a la documentación del propio desarrollo del software y de la gestión del
proyecto, pasando por modelaciones (UML), diagramas, pruebas, manuales de usuario, manuales
técnicos, etc; todo con el propósito de eventuales correcciones, usabilidad, mantenimiento futuro
y ampliaciones al sistema.

Mantenimiento:

Mantener y mejorar el software para enfrentar errores descubiertos y nuevos requisitos.


Esto puede llevar más tiempo incluso que el desarrollo inicial del software. Alrededor de 2/3 de
toda la ingeniería de software tiene que ver con dar mantenimiento. Una pequeña parte de este
trabajo consiste en arreglar errores, o bugs. La mayor parte consiste en extender el sistema para
hacer nuevas cosas. De manera similar, alrededor de 2/3 de toda la ingeniería civil, arquitectura y
trabajo de construcción es dar mantenimiento.

https://www.bing.com/ck/a?!
&&p=6af71421c0081c33JmltdHM9MTY5MjgzNTIwMCZpZ3VpZD0yMjIwZjU0OC02OTFlLTYxYTUtMT
EzYi1lNjFhNjg3ZDYwODEmaW5zaWQ9NTE5Nw&ptn=3&hsh=3&fclid=2220f548-691e-61a5-113b-
e61a687d6081&psq=fases+de+la+ingenier
%c3%ada+en+software&u=a1aHR0cHM6Ly96aW1icm9uYXBwcy5jb20vZWR1Y2FjaW9uL3Npc3Rlb
WFzLWNvbXB1dGFjaW9uYWxlcy9pbmdlbmllcmlhLWRlLXNvZnR3YXJlL2Zhc2VzLWxhLWluZ2VuaWV
yaWEtc29mdHdhcmUv&ntb=1

METODOLOGIAS DE DESARROLLO DE SOFTWARE

Las metodologías de desarrollo de software se utilizan en el ámbito, entre otros, con el objetivo
de trabajar en equipo de manera organizada. Estas metodologías han ido evolucionando a lo largo
del tiempo, pasando de ser un mero trámite de organización a ser una base importantísima.

En las últimas décadas, las metodologías ágiles de desarrollo de software se han impuesto sobre
las demás, que señala que el 71 % de las empresas de ingeniería de software utiliza estas
metodologías. Por lo tanto, si quieres dedicar tu carrera profesional al desarrollo de software,
deberás aprender cómo funcionan las metodologías ágiles.

Algunas empresas siguen usando metodologías tradicionales de desarrollo de software, que


pueden seguir siendo válidas en función del proyecto y de la empresa. Sea como sea, emplear
metodologías de desarrollo de software es imprescindibles y similares para generar software de
alta calidad.
¿Qué es una metodología de desarrollo de software?

Las metodologías de desarrollo de software son un conjunto de técnicas y métodos


organizativos que se aplican para diseñar soluciones de software informático. El objetivo de las
distintas metodologías es el de intentar organizar los equipos de trabajo para que estos desarrollen
las funciones de un programa de la mejor manera posible.

Cuando se trata de desarrollar productos o soluciones para un cliente o mercado concreto, es


necesario tener en cuenta factores como los costes, la planificación, la dificultad, el equipo de
trabajo disponible, los lenguajes utilizados, etc. Todos ellos se engloban en una metodología de
desarrollo que permite organizar el trabajo de la forma más ordenada posible.

El desarrollo de software puede ser un sector especialmente complejo, sobre todo cuando se trata
de grandes aplicativos y equipos de trabajo. Ponerse a desarrollar un producto sin una
metodología clara desembocará en un proceso aún más complejo, que conducirá a problemas,
retrasos, errores y, en definitiva, un mal resultado final.

El trabajo con una metodología de desarrollo de software permite reducir el nivel de dificultad,
organizar las tareas, agilizar el proceso y mejorar el resultado final de las aplicaciones a
desarrollar.

¿Qué tipos de metodologías de desarrollo de software existen?


En la actualidad se pueden diferenciar dos grandes grupos de metodologías de desarrollo de
software: las ágiles y las tradicionales. A continuación, se explican las características de cada una
de ellas.

Metodologías de desarrollo de software tradicionales

Las metodologías de desarrollo de software tradicionales se caracterizan por definir total y


rígidamente los requisitos al inicio de los proyectos de ingeniería de software. Los ciclos de
desarrollo son poco flexibles y no permiten realizar cambios, al contrario que las metodologías
ágiles; lo que ha propiciado el incremento en el uso de las segundas.

La organización del trabajo de las metodologías tradicionales es lineal, es decir, las etapas se
suceden una tras otra y no se puede empezar la siguiente sin terminar la anterior. Tampoco se
puede volver hacia atrás una vez se ha cambiado de etapa. Estas metodologías, no se adaptan
nada bien a los cambios, y el mundo actual cambia constantemente. Las principales metodologías
tradicionales o clasicas son:

 Waterfall (cascada): es una metodología en la que las etapas se organizan de arriba a


abajo, de ahí el nombre. 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.

 Prototipado: se basa en la construcción de un prototipo de software que se construye


rápidamente para que los usuarios puedan probarlo y aportar feedback. Así, se puede
arreglar lo que está mal e incluir otros requerimientos que puedan surgir. Es un modelo
iterativo que se basa en el método de prueba y error para comprender las especificidades
del producto.

 Espiral: es una combinación de los dos modelos anteriores, que añade el concepto de
análisis de riesgo. Se divide en cuatro etapas: planificación, análisis de riesgo, desarrollo de
prototipo y evaluación del cliente. El nombre de esta metodología da nombre a su
funcionamiento, ya que se van procesando las etapas en forma de espiral. Cuanto más
cerca del centro se está, más avanzado está el proyecto.

 Incremental: en esta metodología de desarrollo de software se va construyendo el


producto final de manera progresiva. En cada etapa incremental se agrega una nueva
funcionalidad, lo que permite ver resultados de una forma más rápida en comparación con
el modelo en cascada. El software se puede empezar a utilizar incluso antes de que se
complete totalmente y, en general, es mucho más flexible que las demás metodologías.

 Diseño rápido de aplicaciones (RAD): esta metodología permite desarrollar software de


alta calidad en un corto periodo de tiempo. Los costes son mucho más altos y el desarrollo
más flexible, aunque requiere una mayor intervención de los usuarios. Por otro lado, el
código puede contener más errores, y sus funciones son limitadas debido al poco tiempo
del que se dispone para desarrollarlas. El objetivo es iterar el menor número posible de
veces para conseguir una aplicación completa de forma rápida.
Metodologías de desarrollo de software ágiles

Como hemos dicho al principio del artículo, las metodologías ágiles de desarrollo de software son
las más utilizadas hoy en día debido a su alta flexibilidad y agilidad. Los equipos de trabajo que
las utilizan son mucho más productivos y eficientes, ya que saben lo que tienen que hacer en cada
momento. Además, la metodología permite adaptar el software a las necesidades que van
surgiendo por el camino, lo que facilita construir aplicaciones más funcionales.

Las metodologías agiles se basan en la metodología incremental, en la que en cada ciclo de


desarrollo se van agregando nuevas funcionalidades a la aplicación final. Sin embargo, los ciclos
son mucho más cortos y rápidos, por lo que se van agregando pequeñas funcionalidades en lugar
de grandes cambios.

Este tipo de metodologías permite construir equipos de trabajo autosuficientes e


independientes que se reúnen cada poco tiempo para poner en común las novedades. Poco a
poco, se va construyendo y puliendo el producto final, a la vez que el cliente puede ir aportando
nuevos requerimientos o correcciones, ya que puede comprobar cómo avanza el proyecto en
tiempo real.

Las principales metodologías ágiles son:

 Kanban: metodología de trabajo inventada por la empresa de automóviles Toyota.


Consiste en dividir las tareas en porciones mínimas y organizarlas en un tablero de trabajo
dividido en tareas pendientes, en curso y finalizadas. De esta forma, se crea un flujo de
trabajo muy visual basado en tareas prioritarias e incrementando el valor del producto.

 Scrum: es también una metodología incremental que divide los requisitos y tareas de
forma similar a Kanban. Se itera sobre bloques de tiempos cortos y fijos (entre dos y cuatro
semanas) para conseguir un resultado completo en cada iteración. Las etapas son:
planificación de la iteración (planning sprint), ejecución (sprint), reunión diaria (daily
meeting) y demostración de resultados (sprint review). Cada iteración por estas etapas se
denomina también sprint.

 Lean: está configurado para que pequeños equipos de desarrollo muy capacitados
elaboren cualquier tarea en poco tiempo. Los activos más importantes son las personas y
su compromiso, relegando así a un segundo plano el tiempo y los costes. El aprendizaje, las
reacciones rápidas y potenciar el equipo son fundamentales.

 Programación extrema (XP): es una metodología de desarrollo de software basada en las


relaciones interpersonales, que se consideran la clave del éxito. Su principal objetivo es
crear un buen ambiente de trabajo en equipo y que haya un feedback constante del
cliente. El trabajo se basa en 12 conceptos: diseño sencillo, testing, refactorización y
codificación con estándares, propiedad colectiva del código, programación en parejas,
integración continua, entregas semanales e integridad con el cliente, cliente in situ,
entregas frecuentes y planificación.

https://www.bing.com/ck/a?!
&&p=980ec1806536a747JmltdHM9MTY5MjgzNTIwMCZpZ3VpZD0yMjIwZjU0OC02OTFlLTYxYTUtM
TEzYi1lNjFhNjg3ZDYwODEmaW5zaWQ9NTc1OQ&ptn=3&hsh=3&fclid=2220f548-691e-61a5-113b-
e61a687d6081&psq=metodolog
%c3%ada+de+desarrollo+de+software+clasica&u=a1aHR0cHM6Ly93d3cuYmVjYXMtc2FudGFuZGVy
LmNvbS9lcy9ibG9nL21ldG9kb2xvZ2lhcy1kZXNhcnJvbGxvLXNvZnR3YXJlLmh0bWw&ntb=1

IMPORTANCIA DE LAS HERRAMIENTAS CASE EN LA INGENIERIA DE SOFTWARE

Herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por
Computadoras). Son diversas Aplicaciones informáticas destinadas a aumentar la productividad en
el Desarrollo de software reduciendo el coste de las mismas en términos de tiempo y de dinero.
Estas herramientas nos pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del
software en tareas como el diseño de proyectos, cálculo de costes, implementación de parte del
código automáticamente con el diseño dado, Compilación automática, documentación o detección
de errores entre otras.

Es un sistema de software que intenta proporcionar ayuda automatizada a las actividades del
proceso de desarrollo de software. Los sistemas CASE a menudo se utilizan como apoyo al método.
La primera herramienta CASE como hoy la conocemos fue Excelerator en 1984, era para PC.
Actualmente la oferta de herramientas CASE es muy amplia y tenemos por ejemplo el EASYCASE o
WINPROJECT .

Las herramientas CASE son importantes en la ingeniería de software porque permiten:

Aplicar metodologías estructuradas y agilizar el trabajo.

Facilitar la realización de prototipos y el desarrollo conjunto de aplicaciones.

Simplificar el mantenimiento de los programas.

Mejorar y estandarizar la documentación.

Aumentar la portabilidad de las aplicaciones.

https://www.ecured.cu/Herramienta_CASE
2.DEFINICION
Ingeniería de software:
Es un enfoque sistemático y disciplinado para el diseño, desarrollo, implementación y
mantenimiento de software de alta calidad.

3.GLOSARIO
1. Ingeniería de Software: El proceso sistemático de diseño, desarrollo, prueba y
mantenimiento de software de alta calidad siguiendo estándares y principios.

https://www.bing.com/ck/a?!
&&p=1b6c49e6d7d5ef4dJmltdHM9MTY5MjgzNTIwMCZpZ3VpZD0yMjIwZjU0OC02OTFlLTY
xYTUtMTEzYi1lNjFhNjg3ZDYwODEmaW5zaWQ9NTg3OA&ptn=3&hsh=3&fclid=2220f548-
691e-61a5-113b-e61a687d6081&psq=fases+de+la+ingenier
%c3%ada+en+software&u=a1aHR0cHM6Ly9oaXN0aW5mLmJsb2dzLnVwdi5lcy8yMDEwLzE
yLzI4L2luZ2VuaWVyaWEtZGVsLXNvZnR3YXJlLw&ntb=1

2. Requisitos: Las especificaciones funcionales y no funcionales que describen lo que el


software debe hacer y cómo debe hacerlo.

https://www.bing.com/ck/a?!
&&p=6af71421c0081c33JmltdHM9MTY5MjgzNTIwMCZpZ3VpZD0yMjIwZjU0OC02OTFlLTYx
YTUtMTEzYi1lNjFhNjg3ZDYwODEmaW5zaWQ9NTE5Nw&ptn=3&hsh=3&fclid=2220f548-
691e-61a5-113b-e61a687d6081&psq=fases+de+la+ingenier
%c3%ada+en+software&u=a1aHR0cHM6Ly96aW1icm9uYXBwcy5jb20vZWR1Y2FjaW9uL3N
pc3RlbWFzLWNvbXB1dGFjaW9uYWxlcy9pbmdlbmllcmlhLWRlLXNvZnR3YXJlL2Zhc2VzLWxh
LWluZ2VuaWVyaWEtc29mdHdhcmUv&ntb=1

3. Ciclo de Vida del Software: El conjunto de fases por las que pasa el software, como
planificación, análisis, diseño, implementación, pruebas y mantenimiento.

https://www.bing.com/ck/a?!
&&p=2f86b5cb4c37f7d2JmltdHM9MTY5MjgzNTIwMCZpZ3VpZD0yMjIwZjU0OC02OTFlLTYx
YTUtMTEzYi1lNjFhNjg3ZDYwODEmaW5zaWQ9NTU2Mg&ptn=3&hsh=3&fclid=2220f548-
691e-61a5-113b-e61a687d6081&psq=ingenier
%c3%ada+en+software+concepto&u=a1aHR0cHM6Ly9lcy53aWtpcGVkaWEub3JnL3dpa2kv
SW5nZW5pZXIlQzMlQURhX2RlX3NvZnR3YXJlIzp-
OnRleHQ9U2UlMjBjaXRhbiUyMGxhcyUyMGRlZmluaWNpb25lcyUyMG0lQzMlQTFzJTIwcm
Vjb25vY2lkYXMlMkMlMjBmb3JtdWxhZGFzJTIwcG9yLHBhcmElMjBkZXNhcnJvbGxhciUyQyU
yMG9wZXJhciUyMHklMjBtYW50ZW5lcmxvcy4lMjAuLi4lMjBNJUMzJUExcyUyMGVsZW1lbn
Rvcw&ntb=1
4. Diseño Arquitectónico: La creación de la estructura general del software, incluyendo
componentes, módulos y sus interacciones.

https://www.bing.com/ck/a?!
&&p=78438a7cccd0f893JmltdHM9MTY5MjgzNTIwMCZpZ3VpZD0yMjIwZjU0OC02OTFlLTYx
YTUtMTEzYi1lNjFhNjg3ZDYwODEmaW5zaWQ9NTIxOA&ptn=3&hsh=3&fclid=2220f548-
691e-61a5-113b-e61a687d6081&psq=ingenier
%c3%ada+en+software+concepto&u=a1aHR0cHM6Ly9tZXhpY28udW5pci5uZXQvaW5nZW
5pZXJpYS9ub3RpY2lhcy9pbmdlbmllcmlhLWRlLXNvZnR3YXJlLXF1ZS1lcy1vYmpldGl2b3Mv&
ntb=1

5. Prototipado: Crear una versión preliminar y simplificada del software para validar y refinar
requisitos y diseño.

https://www.bing.com/ck/a?!
&&p=78438a7cccd0f893JmltdHM9MTY5MjgzNTIwMCZpZ3VpZD0yMjIwZjU0OC02OTFlLTYx
YTUtMTEzYi1lNjFhNjg3ZDYwODEmaW5zaWQ9NTIxOA&ptn=3&hsh=3&fclid=2220f548-
691e-61a5-113b-e61a687d6081&psq=ingenier
%c3%ada+en+software+concepto&u=a1aHR0cHM6Ly9tZXhpY28udW5pci5uZXQvaW5nZW
5pZXJpYS9ub3RpY2lhcy9pbmdlbmllcmlhLWRlLXNvZnR3YXJlLXF1ZS1lcy1vYmpldGl2b3Mv&
ntb=1

6. Desarrollo Ágil: Un enfoque de desarrollo de software iterativo e incremental que se


centra en la colaboración, la adaptabilidad y la entrega temprana de funcionalidades.

https://www.bing.com/ck/a?!
&&p=78438a7cccd0f893JmltdHM9MTY5MjgzNTIwMCZpZ3VpZD0yMjIwZjU0OC02OTFlLTYx
YTUtMTEzYi1lNjFhNjg3ZDYwODEmaW5zaWQ9NTIxOA&ptn=3&hsh=3&fclid=2220f548-
691e-61a5-113b-e61a687d6081&psq=ingenier
%c3%ada+en+software+concepto&u=a1aHR0cHM6Ly9tZXhpY28udW5pci5uZXQvaW5nZW
5pZXJpYS9ub3RpY2lhcy9pbmdlbmllcmlhLWRlLXNvZnR3YXJlLXF1ZS1lcy1vYmpldGl2b3Mv&
ntb=1

7. Pruebas de Software: Proceso de verificación y validación del software para asegurar que
cumpla con los requisitos y funcione correctamente.

https://www.bing.com/ck/a?!
&&p=78438a7cccd0f893JmltdHM9MTY5MjgzNTIwMCZpZ3VpZD0yMjIwZjU0OC02OTFlLTYx
YTUtMTEzYi1lNjFhNjg3ZDYwODEmaW5zaWQ9NTIxOA&ptn=3&hsh=3&fclid=2220f548-
691e-61a5-113b-e61a687d6081&psq=ingenier
%c3%ada+en+software+concepto&u=a1aHR0cHM6Ly9tZXhpY28udW5pci5uZXQvaW5nZW
5pZXJpYS9ub3RpY2lhcy9pbmdlbmllcmlhLWRlLXNvZnR3YXJlLXF1ZS1lcy1vYmpldGl2b3Mv&
ntb=1

8. Mantenimiento de Software: Realizar cambios, correcciones y mejoras en el software


después de su entrega.

https://www.bing.com/ck/a?!
&&p=78438a7cccd0f893JmltdHM9MTY5MjgzNTIwMCZpZ3VpZD0yMjIwZjU0OC02OTFlLTYx
YTUtMTEzYi1lNjFhNjg3ZDYwODEmaW5zaWQ9NTIxOA&ptn=3&hsh=3&fclid=2220f548-
691e-61a5-113b-e61a687d6081&psq=ingenier
%c3%ada+en+software+concepto&u=a1aHR0cHM6Ly9tZXhpY28udW5pci5uZXQvaW5nZW
5pZXJpYS9ub3RpY2lhcy9pbmdlbmllcmlhLWRlLXNvZnR3YXJlLXF1ZS1lcy1vYmpldGl2b3Mv&
ntb=1

9. Control de Versiones: El seguimiento y la gestión de cambios en el código fuente a lo largo


del tiempo para mantener un historial y facilitar la colaboración.

https://www.bing.com/ck/a?!
&&p=78438a7cccd0f893JmltdHM9MTY5MjgzNTIwMCZpZ3VpZD0yMjIwZjU0OC02OTFlLTYx
YTUtMTEzYi1lNjFhNjg3ZDYwODEmaW5zaWQ9NTIxOA&ptn=3&hsh=3&fclid=2220f548-
691e-61a5-113b-e61a687d6081&psq=ingenier
%c3%ada+en+software+concepto&u=a1aHR0cHM6Ly9tZXhpY28udW5pci5uZXQvaW5nZW
5pZXJpYS9ub3RpY2lhcy9pbmdlbmllcmlhLWRlLXNvZnR3YXJlLXF1ZS1lcy1vYmpldGl2b3Mv&
ntb=1

10. Despliegue: Poner el software en un entorno de producción para que los usuarios finales
lo utilicen.

https://www.bing.com/ck/a?!
&&p=78438a7cccd0f893JmltdHM9MTY5MjgzNTIwMCZpZ3VpZD0yMjIwZjU0OC02OTFlLTYx
YTUtMTEzYi1lNjFhNjg3ZDYwODEmaW5zaWQ9NTIxOA&ptn=3&hsh=3&fclid=2220f548-
691e-61a5-113b-e61a687d6081&psq=ingenier
%c3%ada+en+software+concepto&u=a1aHR0cHM6Ly9tZXhpY28udW5pci5uZXQvaW5nZW
5pZXJpYS9ub3RpY2lhcy9pbmdlbmllcmlhLWRlLXNvZnR3YXJlLXF1ZS1lcy1vYmpldGl2b3Mv&
ntb=1

11. Ciclo de Deming (PDCA): Un ciclo de mejora continua que consiste en Planificar, Hacer,
Verificar y Actuar, utilizado para mejorar los procesos de desarrollo y mantenimiento del
software.

https://www.bing.com/ck/a?!
&&p=78438a7cccd0f893JmltdHM9MTY5MjgzNTIwMCZpZ3VpZD0yMjIwZjU0OC02OTFlLTYx
YTUtMTEzYi1lNjFhNjg3ZDYwODEmaW5zaWQ9NTIxOA&ptn=3&hsh=3&fclid=2220f548-
691e-61a5-113b-e61a687d6081&psq=ingenier
%c3%ada+en+software+concepto&u=a1aHR0cHM6Ly9tZXhpY28udW5pci5uZXQvaW5nZW
5pZXJpYS9ub3RpY2lhcy9pbmdlbmllcmlhLWRlLXNvZnR3YXJlLXF1ZS1lcy1vYmpldGl2b3Mv&
ntb=1

12. Diagrama de Flujo de Datos: Una representación gráfica de los procesos y flujos de datos
dentro de un sistema de software.

https://www.bing.com/ck/a?!
&&p=78438a7cccd0f893JmltdHM9MTY5MjgzNTIwMCZpZ3VpZD0yMjIwZjU0OC02OTFlLTYx
YTUtMTEzYi1lNjFhNjg3ZDYwODEmaW5zaWQ9NTIxOA&ptn=3&hsh=3&fclid=2220f548-
691e-61a5-113b-e61a687d6081&psq=ingenier
%c3%ada+en+software+concepto&u=a1aHR0cHM6Ly9tZXhpY28udW5pci5uZXQvaW5nZW
5pZXJpYS9ub3RpY2lhcy9pbmdlbmllcmlhLWRlLXNvZnR3YXJlLXF1ZS1lcy1vYmpldGl2b3Mv&
ntb=1

13. Diagrama de Clases: Una representación visual de las clases en un sistema, junto con sus
atributos y relaciones.

https://www.bing.com/ck/a?!
&&p=78438a7cccd0f893JmltdHM9MTY5MjgzNTIwMCZpZ3VpZD0yMjIwZjU0OC02OTFlLTYx
YTUtMTEzYi1lNjFhNjg3ZDYwODEmaW5zaWQ9NTIxOA&ptn=3&hsh=3&fclid=2220f548-
691e-61a5-113b-e61a687d6081&psq=ingenier
%c3%ada+en+software+concepto&u=a1aHR0cHM6Ly9tZXhpY28udW5pci5uZXQvaW5nZW
5pZXJpYS9ub3RpY2lhcy9pbmdlbmllcmlhLWRlLXNvZnR3YXJlLXF1ZS1lcy1vYmpldGl2b3Mv&
ntb=1

14. Refactorización: Proceso de reestructurar el código sin cambiar su comportamiento


externo para mejorar la legibilidad y el mantenimiento.

https://www.bing.com/ck/a?!
&&p=78438a7cccd0f893JmltdHM9MTY5MjgzNTIwMCZpZ3VpZD0yMjIwZjU0OC02OTFlLTYx
YTUtMTEzYi1lNjFhNjg3ZDYwODEmaW5zaWQ9NTIxOA&ptn=3&hsh=3&fclid=2220f548-
691e-61a5-113b-e61a687d6081&psq=ingenier
%c3%ada+en+software+concepto&u=a1aHR0cHM6Ly9tZXhpY28udW5pci5uZXQvaW5nZW
5pZXJpYS9ub3RpY2lhcy9pbmdlbmllcmlhLWRlLXNvZnR3YXJlLXF1ZS1lcy1vYmpldGl2b3Mv&
ntb=1

15. UML (Lenguaje de Modelado Unificado): Un lenguaje estándar utilizado para modelar y
visualizar los aspectos de diseño y arquitectura del software.
https://www.bing.com/ck/a?!
&&p=78438a7cccd0f893JmltdHM9MTY5MjgzNTIwMCZpZ3VpZD0yMjIwZjU0OC02OTFlLTYx
YTUtMTEzYi1lNjFhNjg3ZDYwODEmaW5zaWQ9NTIxOA&ptn=3&hsh=3&fclid=2220f548-
691e-61a5-113b-e61a687d6081&psq=ingenier
%c3%ada+en+software+concepto&u=a1aHR0cHM6Ly9tZXhpY28udW5pci5uZXQvaW5nZW
5pZXJpYS9ub3RpY2lhcy9pbmdlbmllcmlhLWRlLXNvZnR3YXJlLXF1ZS1lcy1vYmpldGl2b3Mv&
ntb=1
4.INF. FASES
5.INF. METODOLOGIAS
6. M.M. CASE
7. FODA INTEGRANTES
8. CASO PRACTICO
Casos prácticos
1. Sistema de Gestión de Biblioteca:
a. Contexto: Una biblioteca universitaria necesita un sistema de gestión de biblioteca
eficiente para administrar sus libros, revistas y recursos digitales. El objetivo es
facilitar la búsqueda y el préstamo de materiales a estudiantes y profesores.
b. Desarrollo: Los ingenieros de software diseñan un sistema que permite a los
usuarios buscar libros por título, autor o tema, realizar reservas en línea y recibir
notificaciones por correo electrónico cuando los libros estén disponibles. También
desarrollan una interfaz de administración para que el personal de la biblioteca
pueda realizar un seguimiento de los préstamos y la disponibilidad de los
materiales.
c. Implementación: Se implementa el sistema utilizando tecnologías web y una base
de datos para el almacenamiento de información. Se integra con el sistema de
autenticación de la universidad para la identificación de usuarios.
d. Pruebas y Mantenimiento: Se realizan pruebas exhaustivas para garantizar que el
sistema funcione correctamente. Se brinda mantenimiento regular para corregir
errores, actualizar la base de datos y agregar nuevas funciones según sea
necesario.
2. Sistema de Reservas de Vuelos en Línea:
a. Contexto: Una aerolínea internacional desea desarrollar un sistema de reservas en
línea para sus clientes. El objetivo es permitir a los usuarios buscar vuelos,
seleccionar asientos, hacer reservas y gestionar sus itinerarios de manera
eficiente.
b. Desarrollo: Un equipo de ingenieros de software diseña una plataforma de
reservas que se integra con los sistemas de información de vuelos de la aerolínea.
Los clientes pueden buscar vuelos por fecha, destino y preferencias de asientos.
También pueden ver información sobre tarifas y horarios.
c. Implementación: El sistema se implementa como una aplicación web y una
aplicación móvil para múltiples plataformas. Se utilizan servicios de pago en línea
para procesar las transacciones y se implementa una base de datos para el
seguimiento de reservas y datos de clientes.
d. Pruebas y Mantenimiento: Se realizan pruebas exhaustivas de carga, rendimiento y
seguridad. El sistema se somete a pruebas de estrés antes de su lanzamiento. Se
proporciona mantenimiento continuo para garantizar que la información de vuelos
y las tarifas estén actualizadas y que el sistema siga funcionando sin problemas.
3. Aplicación de Gestión de Proyectos:
a. Contexto: Una empresa de desarrollo de software necesita una aplicación de
gestión de proyectos para organizar y supervisar las tareas y los recursos en sus
proyectos. El objetivo es mejorar la colaboración entre los miembros del equipo y
garantizar que los proyectos se completen a tiempo y dentro del presupuesto.
b. Desarrollo: Un equipo de ingenieros de software desarrolla una aplicación que
permite a los miembros del equipo crear proyectos, asignar tareas, establecer
plazos y realizar un seguimiento del progreso. La aplicación también incluye
herramientas para la gestión de recursos y la generación de informes.
c. Implementación: La aplicación se implementa como una plataforma basada en la
nube para facilitar el acceso desde cualquier ubicación. Se utiliza autenticación de
usuarios y se establecen permisos de acceso para garantizar la seguridad de los
datos.
d. Pruebas y Mantenimiento: Se realizan pruebas exhaustivas de funcionalidad y
seguridad. Los usuarios prueban la aplicación y se recopilan sus comentarios para
realizar mejoras. El mantenimiento continuo incluye la corrección de errores y la
adición de nuevas características según las necesidades del equipo.

Cual seria la mejor manera de solucionar estos casos prácticos argumentar

Sistema de gestión de biblioteca: La mejor manera de solucionar los casos prácticos del sistema de
gestión de la biblioteca sería utilizando un enfoque basado en las necesidades de los usuarios. En
primer lugar, es necesario realizar una investigación exhaustiva para comprender las necesidades
de los usuarios, tanto estudiantes como profesores. Esto incluye comprender sus hábitos de
búsqueda, sus preferencias de préstamo y sus necesidades de acceso a los materiales. Además de
las funciones básicas, el sistema también debe ofrecer funciones avanzadas, como la posibilidad de
crear listas de lectura, guardar notas y comentarios sobre los materiales y acceder a recursos
digitales. Estas funciones pueden ayudar a los usuarios a aprovechar al máximo los recursos de la
biblioteca.

Por último, es importante realizar pruebas exhaustivas del sistema para garantizar que funcione
correctamente. Estas pruebas deben incluir pruebas de usabilidad, pruebas de rendimiento y
pruebas de seguridad.

Sistema de reserva de vuelo en línea: El sistema de reservas de vuelos en línea descrito en los
casos prácticos parece ser un sistema bien diseñado y ejecutado. El sistema cumple con los
objetivos de la aerolínea de permitir a los usuarios buscar vuelos, seleccionar asientos, hacer
reservas y gestionar sus itinerarios de manera eficiente. El sistema se implementó utilizando
tecnologías web y móviles. Esto permite a los usuarios acceder al sistema desde cualquier
dispositivo. También se utilizaron servicios de pago en línea para procesar las transacciones, lo que
facilita y agiliza el proceso de reserva.

En general, el sistema de reservas de vuelos en línea descrito en los casos prácticos parece ser un
sistema bien diseñado y ejecutado que cumple con los objetivos de la aerolínea.
Aplicación de Gestión de Proyectos: El sistema de gestión de proyectos descrito en los casos
prácticos parece ser un sistema bien diseñado y ejecutado. El sistema cumple con los objetivos de
la empresa de desarrollo de software de mejorar la colaboración entre los miembros del equipo y
garantizar que los proyectos se completen a tiempo y dentro del presupuesto.

El sistema se desarrolló utilizando un enfoque basado en las necesidades del usuario. Los
ingenieros de software realizaron una investigación exhaustiva para comprender las necesidades
de los usuarios, tanto de los miembros del equipo como de la empresa. Esto ayudó a asegurar que
el sistema ofreciera una experiencia de usuario positiva y que fuera capaz de satisfacer las
necesidades comerciales de la empresa.

En general, el sistema de gestión de proyectos descrito en los casos prácticos parece ser un sistema
bien diseñado y ejecutado que cumple con los objetivos de la empresa de desarrollo de software.

9. PREOYECTO

Plataforma de Reservas y Citas: (Jael, Harry y Vicario)

Descripción; Crear una aplicación web que permita a em presas y profesionales ofrecer

servicios de reserva y citas en INE a, como médicos, salones de belleza o restaurantes.

Características clave: Calendario de citas, disponibilidad en tiempo real, notificaciones por correo
electrónico o SMS, gestión de clientes y pagos.

También podría gustarte