5. Actividad 3.3 Diagrama de casos de uso y obtención de requisitos

 

Actividad 3.3 Diagrama de casos de uso y obtención de requisitos

 

Propósito: Conocer y desarrollar la documentación inicial del proyecto a desarrollar durante la materia de Fundamentos de Ingeniería de Software.

 

Desarrollo.

Para la siguiente actividad y de acuerdo al proyecto planteado en clase debes realizar lo siguiente para comenzar a determinar la información inicial.

1.- Nombre del proyecto.

2.- Planteamiento del problema.

3.- Objetivo General y Objetivos Específico.

4.- Requisitos funcionales y no funcionales.

5.- Diagramas de caso de uso actual

6.- Diagrama de caso de uso propuesto

 

 

PROYECTO: APP DICCIONARIO DEL IDIOMA ESPAÑOL---TOJOL-ABAL

4.....................................................................

1. Introducción. U3


En esta actividad consta de analizar los requisitos funcionales y no funcionales de la empresa “HOTEL TEPEXANO” ya que es muy importante de cumplir todos los requisitos de la ingeniería de software.

Los requisitos de la ingeniería de software constan de 6 fases, con respecto de la práctica nos pide realizar o analizar los requisitos antes mencionados,  bueno la primera fase de la ingeniería de software es Análisis  y entra los que son los Requisitos funcionales y no funcionales.

Los funcionales son todos los beneficios o características del sistema, ya sea visualidad de la interfaz, seguridad,  botones, entre otros, son todos las funciones del sistema y los nos funcionales se encara de cumplir el sistema que quiere hacer, nunca debe estar abajo, en mi pensar entra si el sistema cumple en cualquier sistema operativo.

 

 

A continuación verificaremos los requerimientos funcionales y no funcionales de la empresa HOTEL TEPEXANO.

4. Glosario

ANÁLISIS

Análisis: Fase del ciclo de vida de desarrollo software que consiste en la identificación de los elementos, estructura, funcionalidades, relaciones, etc. de los elementos que se quieren desarrollar.

 

ARQUITECTURAS

Arquitectura de sistemas: Es una descripción del diseño y estructura de un sistema informático, tanto desde el punto vista hardware como software.

Arquitectura de software: Es un conjunto de patrones que definen la estructura de un sistema software, es decir, los elementos que componen el sistema, sus propiedades y sus relaciones.


CASO DE USO

Abstracción que describe una clase de escenarios.

Los escenarios y los Casos de Usos se escriben en un lenguaje natural.

Los casos de uso son una técnica para la especificación de requisitos funcionales propuesta inicialmente por Ivar Jacobson (Jacobson, 1987), e incorporada a UML Modela la funcionalidad del sistema tal como la perciben los agentes externos, denominados actores, que interactúan con el sistema desde un punto de vista particular.

La vista de casos de uso captura la funcionalidad de un sistema, de un subsistema, o de una clase, tal como se muestra a un usuario exterior.


Ø  Reparte la funcionalidad del sistema en transacciones significativas para los usuarios ideales de un sistema.

Ø  Los usuarios del sistema se denominan actores y las particiones funcionales se conocen con el nombre de casos de uso.

Ø  La técnica que se utiliza para modelar esta vista es el diagrama de casos de uso.


Clases

Las clases son declaraciones o abstracciones de objetos, lo que significa, que una clase es la definición de un objeto. Cuando se programa un objeto y se definen sus características y funcionalidades, realmente se programa una clase.

Una clase es un contenedor de uno o más datos (variables o propiedad miembro) junto a las operaciones de manipulación de dichos datos (funciones/métodos).


Dominio

Requerimientos del Dominio

Incluyen terminología especializada del dominio o referencias a conceptos del dominio. Pueden ser:

 Requerimientos funcionales nuevos

Restringir los existentes o Establecer como se deben ejecutar cálculos particulares. Estos requerimientos se derivan del dominio de aplicación del sistema más que de las necesidades especificas del usuario


3. Solucion Practica

HOTEL: TEPEXANO

























































REQUERI-MIENTOS

FUNCIONALES

NO FUNCIONALES

1

El sistema deberá tener una base de datos para llevar cualquier control de operación

El sistema y el personal de control deberá de notificar  cualquier detalle, ya sea en mantenimiento o días sin disponibilidad de la empresa

2

El sistema debe generar un reporte de las habitaciones disponibles  no disponibles.

Anunciar cualquier información en la empresa

3

Los reportes generados solamente debe obtener el personal de control de la empresa, para que así, pueda facilitar las informaciones.

El sistema deber de contener algún manual de usuario

4

El sistema debe llevar un control de entrada y salida del cliente.

La empresa debe de tener algún personal de ayuda, es decir para acceso a la empresa o espacio de trabajo del controlador de la empresa.

5

Si  el proceso de control se hace con vías telefónicas o presenciales  será directamente con el personal de control de la empresa.

Si las notificaciones se hacen por vías telefónicas, deberá de funcionar en cualquier dispositivo o compañías.

6.

El personal de control debe permitir agregar nuevos clientes en caso si hay habitaciones disponibles

El sistema debe de disponer un almacenamiento muy alto.

7

El sistema deberá de verificar la autentificación de ingreso a los clientes

El cliente debe tener alguna identificación para ingresar a la empresa






2. Actividad 3.3 Determinación de requisitos

Propósito: De acuerdo a una situación poder plantear los requisitos funcionales y no funcionales que intervienen en el sistema. 


Desarrollo. Para la presente actividad debes analizar las siguientes problemáticas que se te presenta para dar solución a los siguientes cuestionamientos.

 1.- El hotel Tepexano desea automatizar el proceso de la reservación de sus habitaciones, actualmente realiza esta tarea por medio de llamadas telefónica o de manera presencial estas tareas son hasta cierto punto aceptables en temporadas regulares, pues en temporadas altas se incrementan las reservaciones ocasionado que con la presión de trabajo se puedan cometer errores como duplicar habitaciones o considerar ocupada a una habitación desocupada e incluso en ocasiones no tener bien el control de pago de habitaciones considerando que ya fue pagada y no es así o viceversa. Se propone la implementación del sistema de proceso de reservación de habitaciones en el hotel tepexano con el fin de reducir estos riesgos que son de vital importancia para el dueño del hotel ya que estas pérdidas de información significan para el pérdida de clientes y perdida de efectivo. El sistema de reservación hotelera es de la siguiente forma El proceso de control de las reservaciones solo se hace de manera telefónica y de manera presencial, llevando un registro en papel de los huéspedes y las habitaciones ocupadas. 



Determinar los requisitos funcionales y no funcionales que se pueden aplicar para la situación presentada y presentar dichos requisitos en una lista.

A_ Presentación


TECNOLÓGICO NACIONAL DE MÉXICO

INSTITUTO TECNOLÓGICO DE COMITÁN


CURSO: Fundamentos de ingeniería de software
CARRERA:  Ingeniería de sistemas computacionales

 

PRESENTA: TRINIDAD PEREZ SANTIS

N.C: A19700609



DOCENTE SERGIO CARALAMPIO LÓPEZ MEZA

CONTACTO:

F.I.S

24 / 10 / 2021


PRODUCTO DE APRENDIZAJE:

Investigación de fases y metodologías de desarrollo de software 


6. Fuentes de informaciones

 

Referencia bibliográfica

 

Ø https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx1WK1ntJzGebdpqC7Mi6CHgfE5P7cm6sn0Kb3bG9Ti1qFkRmPNTUBOG0ZtO9WrXvb5Cp6hw-cRmhsbsDf_E3P9uJutW2-FwZLhb5hsOUKsS-UoyamVMIWl-uL_iU6wIVGdB1aXBUxxsA/s1600/Sin+t%C3%ADtulo2.png

Ø  https://sites.google.com/site/fundamentosdeingendoftware/u1-fundamentos-ingenieria-de-software/1-3-etapas-del-desarrollo-software

Ø  http://cecyu1ingenieriadesw.blogspot.com/2014/09/1_64.html

Ø  https://www.4rsoluciones.com/blog/una-metodologia-desarrollo-software/

Ø  https://www.4rsoluciones.com/blog/una-metodologia-desarrollo-software/


5. Conclusion

 Conclusión

 

Como conclusión de esta investigación sobre el tema de fundamentos de ingeniería de software, es de suma importancia conocer las fases, metodologías porque si no conocemos estos, no llegaremos a lo que deseamos.

El desarrollo de software se ha convertido en una de las actividades más importantes de la sociedad moderna. Por ejemplo el   mundo de la  inteligencia artificial y la tecnología en general constituyen una parte fundamental de nuestras vidas, desarrollar software seguro de alta calidad será cada vez más importante.

De mi parte me llamo mucho la atención de las fases de desarrollo de software, si no contamos estas  fases de desarrollo de software no podemos  crear un software.  Muchas veces de los casos ya nos dirigimos a la tercera fase que es la codificación, pues a veces lo que deseamos, pero la mayor parte le falta algo.

Y la metodología de desarrollo de software es importante para planificar y controlar el proceso de desarrollo de un sistema de información, el software brinda al equipo de trabajo un marco para construir aplicaciones eficientes.

 

Para finalizar, he comprendido esta parte de fases y metodologías de desarrollo de software, igual he dado cuentas, de que algunas empresas crean su software tiene un buen funcionamiento, porque lo comprendan, utilizan estos pasos de desarrollo de software.

4. Metodologías de desarrollo de Software

 Aunque las metodologías de desarrollo de software no varían en lo esencial, sí que se puede hablar de modelos o marcos de trabajo distintos. Son métodos de trabajo que han sido creados para satisfacer necesidades específicas en los proyectos. Veamos los modelos más destacados en esta área:









Una metodología de desarrollo de software brinda al equipo de trabajo un marco para construir aplicaciones de manera eficiente y rigurosa, garantizando un producto cercano al esperado. Si no se desarrolla a partir de una metodología, el resultado final será impredecible y no se podrá controlar el avance del proyecto.

 

A lo largo de la historia de la computación han existido diversas metodologías, adaptadas a las posibilidades tecnológicas de cada momento:

 

Ø  Cascada.

El desarrollo es visto como el flujo de una catarata: las fases (análisis, diseño, implementación, testing, integración y mantenimiento) son secuenciales, impidiéndose iniciar una fase sin haber terminado la anterior.

Ø  Prototipado.

A lo largo de todo el ciclo de desarrollo se van implementando prototipos, o versiones preliminares del producto, hasta llegar al software final.

Ø  Incremental.

Una combinación de los anteriores. Es una metodología iterativa: en cada repetición, se entrega un producto no definitivo, pero plenamente funcional, para someterlo a la evaluación del cliente, con quien se mantiene un contacto permanente. Así, con cada iteración se avanza hacia el entregable final.

Ø  En espiral.

Un enfoque cíclico: se repiten varias veces las etapas de planificación, análisis, evaluación y desarrollo. Se minimiza el riesgo al dividir el proyecto en segmentos pequeños y, por lo tanto, controlables.

Ø  Metodologías ágiles.

Esta familia de métodos es la que más se aplica en la actualidad. Todos ellos se caracterizan por una permanente interacción entre los miembros del equipo de desarrollo, poca planificación, asesoría constante por parte del cliente e iteraciones cortas, al cabo de las cuales se entrega una demostración preliminar del producto. Son tanto incrementales como iterativas.

   Actualmente, la predominancia de la programación orientada a objetos y las   crecientes exigencias de productividad favorecen la aplicación de las       metodologías ágiles, que más adelante comentaremos en profundidad.


Estos grandes modelos de metodologías son los más empleados en la actualidad en la industria del desarrollo de programas de software. Contrario a lo que pueda pensarse a primera vista, no se excluyen en absoluto; de hecho, en algunos casos pueden ser complementarios y llegar a satisfacer necesidades de los proyectos que con un solo modelo no podrían ser cubiertas. Cuando es así, por lo general dan origen a grandes sistemas. 
















1. Introducción U1

 La industria del software avanza a pasos agigantados, un claro ejemplo de eso es la computación en la nube, que si bien antes teníamos que instalar un programa en nuestra computadora para poder acceder a todas las funcionalidades que tenía ahora se lo puede hacer mediante un navegador donde el programa se encuentra alojado en un servidor a varios kilómetros de distancia, dejando así disponible el hardware que se utilizaría para correr esta aplicación (memoria, disco, procesador).

 

A continuación se analiza más detalladamente que es el software, sus características y las diferentes metodologías que utilizan los desarrolladores para crear este producto, ya que la elaboración del software a medida(es decir con una función en específico), requiere de mucho esfuerzo por parte del programador como del cliente para que el producto pueda tener éxito.


Una estructura de proceso general para la ingeniería de software consta de cinco actividades:




3. Fases de Ingeniería de Software

 1.     Etapas del proceso

La ingeniería de 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:











La ingeniería del software es el proceso formal de desarrollo de software en el que las necesidades del usuario se traducen en requerimientos, estos se transforman en diseño que se implementa en código que se prueba, documental y se certifica para su uso operativo. Según la definición del IEEE la ingeniería del software se define como “la aplicación de un método sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento de software, esto es, la aplicación de la ingeniería al software”.

 

Etapa de análisis:

Es el proceso de investigar un problema que se quiere resolver. Definir claramente el Problema que se desea resolver o el sistema que se desea crear. Identificar los componentes principales que integrarán el producto. Se extraen los requisitos del producto de software. En esta etapa la habilidad y experiencia en la ingeniería del software es crítica para reconocer requisitos incompletos, ambiguos o contradictorios. Usualmente el cliente/usuario tiene una visión incompleta/inexacta de lo que necesita y es necesario ayudarle para obtener la visión completa de los requerimientos.  El contenido de comunicación en esta etapa es muy intenso ya que el objetivo es eliminar la ambigüedad en la medida de lo posible.

 

Etapa de Diseño:

Determinar cómo funcionará de forma general sin entrar en detalles incorporando consideraciones de la implementación tecnológica, como el hardware, la red, etc.  Consiste en el diseño de los componentes del sistema que dan respuesta a las funcionalidades descritas en la segunda etapa también conocidas como las entidades de negocio. Generalmente se realiza en base a diagramas que permitan describir las interacciones entre las entidades y su secuenciado.

 

Etapa de Desarrollo:

Se traduce el diseño a código. Es la parte más obvia del trabajo de ingeniería de software y la primera en que se obtienen resultados “tangibles”. No necesariamente es la etapa más larga ni la más compleja aunque una especificación o diseño incompletos/ambiguos pueden exigir que, tareas propias de las etapas anteriores se tengan que realizarse en esta.

 

Etapa de Pruebas o Verificación Prueba:

Consiste en comprobar que el software responda/realice correctamente las tareas indicadas en la especificación. Es una buena praxis realizar pruebas a distintos niveles (por ejemplo primero a nivel unitario y después de forma integrada de cada componente) y por equipos diferenciados del de desarrollo (pruebas cruzadas entre los programadores o realizadas por un área de test independiente).

 

Etapa de Implementación o Entrega Implantación:

Consiste en poner a disposición del cliente el producto.

 

 Etapa de Mantenimiento:

En esta etapa se realizan un mantenimiento correctivo (resolver errores) y un mantenimiento evolutivo (mejorar las funcionalidades y/o dar respuesta a nuevos requisitos).

 Etapa final EOL (End-of-Life):

El fin del ciclo del producto consiste en realizar todas las tareas necesarias para asegurar que los clientes y los empleados están conscientes de que el producto ya no será vendido ni soportado.









2. Conceptos básicos

 

  Ingeniería

Ø  Es la profesión en la que el conocimiento de las ciencias naturales y matemáticas obtenidos con el estudio, la práctica y la experiencia se aplica con juicio para desarrollar formas de utilizar de modo económico, los materiales y fuerzas de la naturaleza para beneficio de la humanidad

 

Software

Ø  Es el conjunto de todos los programas que existen dentro de una computadora.

Ø  Es el producto del desarrollo que realizan los ingenieros de software resultado de requerimientos de información.

 

La Ingeniería de Software

ü  Es una disciplina de la Ingeniería que comprende todos los aspectos de la producción del software desde las etapas iniciales de la especificación del sistema hasta el mantenimiento de éste después de que se libera.

La Ingeniería de Software incluye:

Ø  Personas (quién lo hace)

Ø  Proceso (la manera en que se hace)

Ø  Proyecto (la realización)

Ø  Producto (la aplicación de artefactos)