Sei sulla pagina 1di 18

Ingeniería de Software

Unidad 2: Segunda Fase - Modelamiento

Presentado Por

David Tapiero Quijano


Elkin Dadey Alfonso
Camilo Hernando Mora Ruiz
Yeimy Lorena Cuviedes

Tutora:

Pilar Alexandra Moreno

Grupo:

301404_20

Universidad Nacional Abierta Y A Distancia (Unad)


Octubre de 2019
Bogotá D.C.
Introducción
Actividad Colaborativa

1. Resumen de la propuesta de software que trabajarán como grupo y que


seleccionaron en la fase anterior. (Tipo de software y descripción de la propuesta
de software).

La empresa “Moreno & Asociados S.A.S.” planea en solucionar la dificultad que tiene el
turista en movilizarse y que puede pasar en cualquier municipio de Colombia. Es necesario
garantizarle al turista una experiencia completa donde pueda acceder a los productos y
servicios, proporcionando un método útil, práctico, de fácil acceso e interacción, para
permitir solucionar más fácilmente necesidades comunes en cada turista como lo es la
comida, el hospedaje; además, de poder generar el interés por conocer nuevos lugares, dando
acceso a un conjunto de información que incluye la cultura y la historia de cada sitio. Esa
sería la problemática para solucionar que nos plantea el caso de estudio con la
implementación de este software, pienso que si esto se puede llevar a cabo será una buena
fuente de ingresos para los habitantes de los municipios que la utilicen, así como sus
comerciantes, además el desconocimiento que suele tener los turistas sobre los municipios,
además de ubicarlo y darle acceso a los servicios con lo que cuenta cada lugar. Los posibles
usuarios son los turistas que por medio de la App accederán a información.

Tipo de software

Es necesario plantear como se va a trabajar este software, en este caso el equipo cree y sugiere
que el tipo de software que se trabaje sea una aplicación móvil de tipo Software de
infraestructura empresarial, más específicamente dentro de este tipo que sea de gestión de
base de datos , pensamos que será el más adecuado por el flujo de información que se
trabajará ya que será bastante, y es necesario tener una base actualizada con la información
de productos y servicios específicos de cada municipio.
Descripción de la propuesta de software

El grupo estableció que es conveniente desarrollar el software a modo de aplicación móvil.


Con esto, cada usuario podrá descargar la aplicación y tener toda la información a la mano
en un celular, Tablet o cualquier dispositivo que permita la interacción entre el programa y
el usuario, y así acceder a la información contenida en esta después de un registro y Login
para mejorar la experiencia y ofrecer opiniones o críticas de acuerdo con los lugares,
productos o servicios.

También viendo el costo de desarrollo y de distribución es menor a comparación de otras


plataformas, pensamos que es perfecto trabajar una app móvil para este objetivo por que al
fin y al cabo 9/10 cuentas con un smartphone en el utilizan app de diferentes tipos para su
vida diaria. Algunas de las ventajas de las aplicaciones móviles que nos inspiraron a trabajar
de esta manera el proyecto fueron.

 Fortalecimiento de marca
 Mayor visibilidad
 Otro canal de venta
 Velocidad
 Usabilidad
 Notificaciones
 Disponibilidad offline
 Periféricos del dispositivo
 Fidelización de los clientes
 Se pueden ofertas y promociones como elemento de fidelización.
 Una sola persona puede manejar todos los aspectos de la aplicación.
2. Modelo de desarrollo de software seleccionado.

El modelo del software que se pretende trabajar es el de “Cascada”

CASCADA (WATERFALL)

DEFINICION DE
REQUERIMIENTOS

DISEÑO DEL
SOFTWARE Y DEL
SISTEMA.

IMPLEMENTACION Y
PRUEBAS UNITARIAS

INTEGRACION Y
PRUEBA DE
SISTEMAS

OPERACIÓN Y
MANTENIMIENTO
3. Explicación y justificación de la selección del modelo.

El modelo tipo cascada es más estático y predictivo. Es aplicable en proyectos en los que los
requisitos están fijados y no van a cambiar durante el ciclo de vida del desarrollo. Esta
aproximación divide el proyecto en fases secuenciales En este modelo, el desarrollo se
interpreta como el agua que va cayendo de un estanque al siguiente. Se le da mucho énfasis
a la planificación, a los tiempos, a las fechas límite y al presupuesto. De esta forma, cualquier
error de diseño detectado en la etapa de prueba conduce necesariamente al rediseño y nueva
programación del código afectado, aumentando los costos del desarrollo. La palabra cascada
sugiere, mediante la metáfora de la fuerza de la gravedad, el esfuerzo necesario para
introducir un cambio en las fases más avanzadas de un proyecto.

VENTAJAS

• Realiza un buen funcionamiento en equipos débiles y productos maduros, por lo que se


requiere de menos capital y herramientas para hacerlo funcionar de manera óptima.

• Es un modelo fácil de implementar y entender.

• Está orientado a documentos.

• Es un modelo conocido y utilizado con frecuencia.

• Promueve una metodología de trabajo efectiva: Definir antes que diseñar, diseñar antes que
codificar
1. Fases:
 Conceptualización: Se determina la arquitectura de la solución (división del de
sistemas en subsistemas).
 Análisis de requisitos: básicamente se definen los requisitos funcionales y de
rendimiento.
 Diseño: representación de la aplicación que sirve de guía a la implementación.
 Implementación: transforma el diseño en código.
 Prueba: validación e integración de software y sistemas.
 Instalación y comprobación: se instala el software al cliente, el cual comprueba la
corrección de la aplicación.
2. Posibles ventajas:
 Sencillo: sirve cuando el personal está poco cualificado.
 Aplicable: cuando el problema es estable y cuando se trabaja con técnicas conocidas.
3. Críticas:
 No se ve un producto hasta muy tarde en el proceso.
 Un error grave detectado en las últimas fases puede ser letal.
 Especificación de requisitos estable.
 Impone una estructura de gestión de proyectos.
 Fase muy rígida.

Por esta razón se decide trabajar este modelo sobre el proyecto de software que se está
trabajando, esta aplicación será grande ya que almacenara mucha información y se estima
que el alcance de la misma será mayor , es por esto que se debe realizar un enfoque más
detallado y ordenado para poder producirlo así mismo obtener un producto final igual o lo
más cercano posible a la realidad que se quiere, aparte es perfecto para nuestro proyecto
escrito ya que inicialmente en eso se basa este modelo , planear antes de actuar en este caso
antes de iniciar a codificar el software.
4. Descripción de las fases del ciclo de vida y su aplicación para la propuesta de
desarrollo, de acuerdo con el modelo seleccionado.

El modelo tipo cascada cuenta con las siguientes fases de cumplimiento para el desarrollo de las
aplicaciones.

Ahora bien, si se mira desde el punto de vista del desarrollador este modelo sería el perfecto para
trabajar sobre la aplicación, con esto la compañía Moreno & Asociados S.A.S planeara mejor la
ejecución del software. Por ser una organización dedicada al desarrollo de software este debe ir
debidamente planificado y probado para así mismo proceder a comercializarlo

 Requisitos:
Se analizan las necesidades de los usuarios finales del software para determinar qué objetivos
debe cubrir. Desde acá empezaremos a planificar que queremos con el software y que usuarios
va a cubrir. En este punto la compañía Moreno & Asociados S.A.S. ya cuenta con las bases
dadas y estudiadas sobre el funcionamiento de la APP. Esto con el fin de tener una idea clara de
hasta donde se espera llegar con el software.

 Rango de cobertura considerable para implementación

 Acceso fácil para cualquiera que desee utilizarlo

 Planes de pago acordes a la necesidad del cliente y del usuario

 Que cumpla con el principal objetivo de desarrollo que es facilitar la movilidad de turistas en
zonas del país

 Seguridad de la información para que los clientes estén tranquilos de que la información
alojada en la aplicación es segura y no se utilizara en contra de él.
 Análisis:
inicialmente se habló de que el software estaría enfocado en la parte turística esto con el fin de
proyectar municipios y locaciones de Colombia las cuales tienen lugares turísticos que poco se
conocen y con esto se pretende que los propios y extraños puedan informarse de manera más
clara y ágil, una vez definido el lugar en donde se probara inicialmente la aplicación validamos
la viabilidad de esta, costos de desarrollo y distribución. Se investigó y se observó que la mayoría
de turistas que viajan alrededor del país opta por buscar agencias de viajes, tours, guías y demás
para que se les facilite su movilidad en dicho lugar, esto es claramente una oportunidad de oro
donde la compañía de desarrollo podría trabajar, si bien es cierto que la App no podar abordar
todos los servicios que quizá una agencia de viajes ofrece si podrá hacerlo como un guía de carne
y hueso. Ahora bien, es necesario responder las siguientes incógnitas.

¿Es rentable desarrollarla?


¿El lugar elegido es el correcto para realiza una beta de la app?

Una vez planteadas las interrogantes se estructura una propuesta para el potencial cliente que desea
adquirir esta aplicación, que vendría en la beta ofreciendo lo básico y escuchado al cliente sobre que
se podría agregar a futuro.

 Diseño: una vez estructurados los requisitos del software se empieza con el diseño en pocas
palabras se documenta la descripción del diseño del software SDD en este momento aún no
entramos a plataformas de desarrollo ni lenguajes de programación es netamente documental

 Diseño de arquitectura
Se estructura el diseño del software antes de iniciar la codificación del mismo, en este caso
tomaremos los requisitos dados anteriormente y los transformaremos en requerimientos en un
idioma más técnico esto con el fin de ir formando nuestro software, que queremos que haga
inicialmente el software y a su vez la respuesta a cada petición que se haga , durante la
codificación del aplicativo irán apareciendo más inconvenientes al momento de transformar del
papel al código , pero su vez también se podrán incluir cosas que inicialmente no se tuvieron en
cuenta al momento del diseño, en pocas palabras el diseño vendría siendo en un ejemplo común
la receta de nuestro plato a trabajar , este diseño se dividen en varias fases pero no es momento
de entrar a trabajar tan detalladamente ,
 hablando de nuestro proyecto de App para turistas podemos iniciar viendo opciones de
entornos gráficos amigables y atractivos al cliente, lo primero entra por los ojos antes de ver el
funcionamiento, si planeamos y diseñamos unos gráficos adecuados esto será mucho más
llamativo para el usuario

 importante centrarnos en el tipo ya que siendo un software de gestión de bases de datos hay
que validar que flujo de información se va a trabajar, así mismo junto con el presupuesto dado
se elige una base de datos confiable y rentable para desarrollarlo

 menús de funcionamiento fáciles y entendibles para cualquier persona, tanto como para
consultar lugares como para agregarlos como cliente interesado.

 Implementación

Se inicia con la codificación del software en base a lo anterior mencionado, luego se estudia y
validan requerimientos, necesidades del cliente se intentará plasmar lo que está en la hoja al
lenguaje de programación seleccionado y a la codificación de este. Los desarrolladores de la
empresa trabajaran en base a la información recolectada, ya una vez codificado y armado la base del
software se empieza a trabajar en la parte grafica esto con el fin de desarrollar un producto beta que
cumpla con todas las normas de calidad y que no esté muy alejado del producto final.

 Verificación
En esta fase se ejecutará nuestro software beta antes del lanzamiento esto con el fin de ver algún
tipo de error que no se visualizó al momento de codificar. Acá ya realizamos pruebas con alguna
información introducida a la base y desde la opción de búsqueda y consulta procedemos a intentar
simular lo que inicialmente se quería y era buscar lugares turísticos y que nos salieran también
productos y servicios que en el lugar se manejan, así podemos trabajar sobre errores puntuales sin
cambiar nada de lo que está hecho simplemente reparando lo que nos pueda ir fallando a medida
que se hagan las diferentes pruebas, como son
 Funcionamiento
 Seguridad
 Estabilidad
 Red
 Tiempo real
Una vez realizadas estas pruebas se procede lanzar oficialmente la BETA de nuestro software con el
fin de escuchar, todas las peticiones y recursos que el cliente y los usuarios manifiesten a medida que
empiecen a utilizar la APP, inicialmente por ser una beta solo tendrá información puntual de pocos
lugares pero con el mismo funcionamiento , opciones de consulta y de registro de lugares, así como
el pago ya que por ser prueba no pedirá pago para poder registrar ningún lugar esto hasta el
lanzamiento del producto final.

 Mantenimiento

Finalmente se llega a la etapa del Mantenimiento en teoría es más las importante porque es la que
ocupa un 75% de los recursos destinados al desarrollo de esta App y es la única que seguirá
funcionando 24/7 después de que el producto se finalice. Esto porque el 100% seguro de que a medida
que la aplicación se popularice es posible tener que realizar reparaciones, actualizaciones y diversos
cambios que se vayan presentando, Debido a que el programa puede tener errores, puede no ser del
completo agrado del cliente o puede necesitar, eventualmente acoplarse a los cambios en su entorno.
Esto quiere decir que no se rehace el programa.

Las actividades de mantenimiento se agrupan en tres categorías funcionales:

Comprensión del software y de los cambios a realizar (Comprender): es necesario el


conocimiento a fondo de la funcionalidad, objetivos, estructura interna y requisitos del software.
Alrededor del 50% de tiempo de mantenimiento se dedica a esta actividad, a consecuencia de lo cual,
las herramientas CASE incorporan utilidades que automatizan este tipo de tareas aumentando de
manera notable la productividad.
Modificación del software (Corregir): crear y modificar las estructuras de datos, la lógica de
procesos, las interfaces y la documentación. Los programadores deben evitar los efectos laterales
provocados por sus cambios. Esta actividad representa ¼ del tiempo total de mantenimiento.
Realización de pruebas (Comprobar): realizar pruebas selectivas que nos aseguren la corrección
del software.

CATEGORIA ACTIVIDAD %TIEMPO

Comprensión del Estudiar las peticiones 20%


software y de los Estudiar la documentación 7%
cambios a realizar Estudiar el código 20%
Modificación del Modificar el código 18%
software Actualizar documentación 10%
Realización de
pruebas Diseño y aplicación de pruebas 25%

Se destinarán ingenieros disponibles para el mantenimiento preventivo predictivo correctivo de la


App, para que ningún servicio se vea afectado en el momento de que algún usuario este utilizando,
adicional a eso se tendrán líneas de atención con soporte remoto en todo momento para reportar fallas,
dentro de la aplicación también existirá un menú de reporte de errores para que el usuario mismo nos
pueda ayudar a mejorar.

Se pondrá todo el presupuesto y equipo de trabajo disponible para reparar actualizar y actuar en
caso de que sea necesario para la reparación.

No se trata de desarrollar una aplicación y dejar de trabajar después es el trabajo más difícil que es
mantenerla en funcionamiento por mucho tiempo y este es el trabajo del mantenimiento.

Algunos puntos que podrían tener intervención del área de mantenimiento serian si la app presenta
los siguientes inconvenientes

 Un error quizá común seria que el usuario no pueda encontrar lo que está buscando, que la
App sufra fallos repentinos de red y no pueda comunicarse con Google maps para habilitar los
mapas para así proceder con la búsqueda por GPS.
 Problemas de conexión a servicios web
 Problemas de conexión con pasarelas de pago
 Problemas relacionados con el servidor
 Problemas relacionados con la lógica de programación desarrollada
 Control y solución de bug reportados por los usuarios.

 Que el filtro de resultados no esté funcionando y no ordene las búsquedas en lo solicitado ya
sea popularidad o tipo de establecimiento
 Que las actualizaciones que se vayan sacando no acepten algunos dispositivos móviles, hay
que tener en cuenta de no realizar muchos cambios que impliquen más recursos del móvil si
no es necesario hacerlo para evitar que el usuario tenga problemas al momento de ingresar al
mismo
 Cuando sea necesario actualizaciones de adaptaciones de la app a nuevos teléfonos con más
tecnología, compatibilidad con sistemas operativos recientes

Se va construyendo una base de errores conocidos esto con el fin de solucionarlos más rápido y el
ingeniero a cargo pueda saber detalladamente que podría causar el problema
Acá es importante incluir o tender previsto presupuesto de expansión, si bien es cierto que
nada asegura que nuestra aplicación sea popular pero siempre es bueno pensar en grande y
preguntarnos ¿qué pasaría si lo es?, estamos preparados para eso? , Si la aplicación se vuelve
popular (y utiliza una base de datos alojada) podría requerir servidores adicionales u
optimización del código para que la expansión sea más eficiente y esto tiene costo de
desarrollo y tiempo por eso en este punto incluiremos este ítem previsto para futuras
expansiones de ser necesarias de código y servidores de bases de datos.
5. Descripción del equipo de trabajo y de los roles que implementarán de acuerdo
con el modelo seleccionado.

Roles para el modelo “Cascada"

LISTA DE TAREAS ROLES


Asignar tareas a los miembros del Equipo de Trabajo de Líder de desarrollo
acuerdo con cada rol, basado en el Planteamiento del software
actual
Comprender la Especificación de Requerimientos y rediseñar si Analista
es el caso
Documentar proceso de planeamiento de software y Analista
arquitectura de este
Verificar el planteamiento y diseño del software propuesto por Analista
el desarrollador
Supervisar la codificación del software se esté haciendo según Líder de desarrollo-Analista
lo estipulado en el análisis de requerimientos
Codificar el aplicativo según en planteamiento desarrollado Desarrollador
con anterioridad
Establecer o actualizar los Casos de Prueba y Procedimientos Desarrollador-Analista
de Prueba para pruebas de integración basadas en la
Especificación de Requerimientos y el Diseño de Software.
Verificar resultados desde el diseño hasta la codificación antes Líder de desarrollo-Analista
de proceder con la implementación
Supervisión de pruebas con aplicativa beta que se lanzó para Desarrollador-Líder de
verificar errores y demás desarrollo
Preparación de disponibilidad de plataformas Móviles para Analista de marketing-Analista
lanzar el producto luego de ser probado de sistemas
Disponibilidad para solucionar cualquier error y aplicar Desarrollador
actualización, mantenimientos, reparaciones, entre otras
cuando sea necesario

6. Descripción de las herramientas y métodos de control que sugieren utilizar


dentro del proceso de desarrollo de software (control de ejecución, control de
cumplimiento, control de calidad, etc.)

Validando varias opciones de métodos de control varias podríamos utilizar en este proyecto
de software, pero una que me llamo la atención y pienso yo que encaja perfectamente es la
SQA (Aseguramiento de la Calidad del Software) ya que esta implica revisar y auditar los
productos y actividades de software para verificar que se cumplen los procedimientos y los
estándares, además de proveer a las gerencias apropiadas (incluyendo a la de proyectos) con
los resultados de estas revisiones. Por lo tanto, SQA envuelve al PROCESO de desarrollo de
software completo: monitoreando y mejorando el proceso; asegurándose que cualquier
estándar y procedimientos adoptados sean seguidos; y, asegurándose que los problemas sean
encontrados y tratados.

Como se tratará de una aplicación que posiblemente utilicen muchas personas entre ellas,
gobernadores locales, extranjeros y demás personas que utilicen esto con fin más importante,
por esta razón en necesario que sea monitoreada constantemente y certificada en las normas
que sean necesarias. Las principales tareas para trabajar con este modelo serian

Actividades Principales

• Un plan de SQA es preparado para el proyecto de software de acuerdo con


procedimientos documentados.

• Las actividades del grupo de SQA son realizadas de acuerdo con los planes de SQA
• El grupo de SQA participa en la preparación y revisión de los planes de desarrollo,
estándares y procedimientos del proyecto.

• El grupo de SQA revisa las actividades de Ingeniería de Software para verificar el


cumplimiento de lo anterior

• El grupo de SQA audita los productos del trabajo designado para verificar el
cumplimiento de lo anterior.

• El grupo de SQA periódicamente reporta los resultados de sus actividades al grupo de


ingeniería de software.

• Las desviaciones detectadas en las actividades del software y en los productos del trabajo
de software son documentadas y manejadas de acuerdo con procedimientos previamente
documentados.

El grupo de SQA conduce periódicamente revisiones de sus actividades y reuniones con el


personal de SQA del cliente, según sea necesario.
Conclusiones

¿Por qué consideran que el modelo de software elegido por el grupo es el


más pertinente para responder a las necesidades planteadas en el caso
de estudio?
BIBLIOGRAFÍA

Carrizo, Dante, & Alfaro, Andres. (2018). Método de aseguramiento de la calidad en una
metodología de desarrollo de software: un enfoque práctico. Ingeniare. Revista
chilena de ingeniería, 26(1), 114-129. https://dx.doi.org/10.4067/S0718-
33052018000100114

Quality, F. P. (21 de Octubre de 2019). Obtenido de SQA (Aseguramiento de la Calidad del


Software): https://findingtc.com/sqa-aseguramiento-de-la-calidad-del-software/

Potrebbero piacerti anche