UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
INGENIERIA DE SOTFWARE
UNIDAD 2: SEGUNDA FASE- MODELAMIENTO
ESTUDIANTES:
WIRIS RAFAEL CONTRERAS
CODIGO: 1051816706
GRUPO: 301404_19
TUTOR:
PILAR ALEXANDRA MORENO
Asignatura:
INGENIERIA DE SOTFWARE
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
octubre 2019
DESARROLLO DE LA ACTIVIDAD
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. Descripción de la Situación Problema Descrita en el
Contexto del Caso de Estudio. Debido a la insuficiente información acerca del turismo en territorio
nacional, los municipios no pueden exponer sus servicios turísticos, dar a conocer sus lugares más
representativos, diferentes servicios que se pueden ofrecer, entre otros. El software por desarrollar
permite que toda esa información esté al alcance de los turistas, de esta manera se podría programar
una visita a un municipio específico o a varios. Identificación del Tipo de Software (tipo de
aplicación) Que Propone. Un Software de Gestión es ideal para este caso de estudio, debido a que
es necesario procesar información en base de datos para alojar todos los datos importantes de cada
municipio. El software que propongo es un aplicativo o app para celulares, originalmente para el
sistema Android y a futuro en el sistema 10S. Esta app permitirá al usuario la portabilidad y la
actualización de la información en tiempo real, el tipo de app sería un servicio web que cumpla
con los requerimientos y características para tener en cuenta en el desarrollo de esta. La página
sería diseñada en cualquier editor de páginas dinámicas web como DreamWeaver, luego incrustada
como un elemento View en un software de desarrollo como Android Studio o B4A. Para su
distribución, la aplicación se subiría al Play Store, se debe socializar a los clientes y usuarios para
hacerla popular y así conseguir muchas descargas
Descripción de los Requerimientos y Características para tener en cuenta en el desarrollo
del software.
Requerimientos Funcionales.
Requerimiento Funcional Descripción
R1 Informaciones de los El sistema debe organizar la información
municipios de acuerdo con la ubicación geográfica de
los municipios.
R2 Información de lugares El sistema debe mostrar los lugares
y establecimientos turísticos, como también tiendas, hoteles
de los lugares visitados.
R3 Promocionar eventos El sistema debe promover los eventos que
se realicen en el departamento.
R4 Información histórica de los El sistema debe mostrar información
municipios de Colombia. histórica de los lugares visitados.
R5 Registro de comentario El sistema debe permitir realizar
comentarios de los lugares visitados.
R6 Registro de El sistema debe permitir las subgerencias
subgerencias del lugar visitado.
R7 Calificación El sistema debe permitir la calificación por
estrellas.
R8 Comprar y Reservar El sistema debe permitir hacer compras en
líneas en tiendas especificando los
productos y hacer reservas de las
habitaciones de los hoteles.
Requerimientos No Funcionales.
Requerimiento No Funcional Descripción
R1 Interfaz grafica El sistema debe presentar una interfaz
sencilla y agradable al usuario.
R2 Ordenar la información El sistema debe mostrar información
ordenada.
R3 Promocionar eventos El sistema debe promover los eventos
que se realicen en el departamento.
R4 Respuesta en el tiempo El sistema debe mostrar información
en tiempo real.
R5 Portabilidad El sistema debe descargase con
facilidad y estar disponible para todos
los sistemas operativos móviles y tener
acceso en línea
2. Modelo de desarrollo de software seleccionado.
Modelo de Desarrollo de Software Seleccionado por Prototipos o Iterativo. El modelo de
desarrollo de software que se propone es el modelo por prototipos o iterativo, este tipo de
desarrollo de software cuenta con un sinnúmero de etapas de depuración y mejoramiento, esto
hace que se pueda mostrar al cliente el proceso. El modelo por prototipos o iterativo permite refinar
sistemas complejos con base en un sistema mínimo definido al principio del proceso de la
especificación del sistema y de los cuales el cliente no tiene la definición completa de requisitos.
3. Explicación y justificación de la selección del modelo.
Prototipos o Iterativo. El proceso comienza con la definición de requisitos por parte del cliente y
así se llega a los objetivos globales del sistema. Con base en los requisitos conocidos se diseña un
primer acercamiento a la solución el cual se implementa como una versión funcional del software,
dicho prototipo es evaluado por el cliente y así definir nuevos alcances y requisitos.
Por medio de dichas iteraciones, de un prototipo a otro se logra el sistema completo. Este
enfoque tiene ventajas y desventajas entre otras están:
El cliente ve lo que parece una versión del software y no tiene en cuenta que para
realizarse un prototipo rápido, se rebaja la calidad del producto software de esa manera el
cliente puede no entender que se debe realizar de nuevo el sistema y querrá tener como
versión final de su sistema el prototipo ya desarrollado.
De forma demasiado frecuente la gestión de desarrollo del software es muy lenta.
Documentar el desarrollo suele ser tedioso y puede perderse control por parte de los jefes
de proyectos debido a la cantidad de versiones desarrolladas.
Por el otro lado el paradigma por prototipos también cuenta con una aceptación amplia
debido a que el cliente le gusta ver versiones inmediatas de su sistema. También suele ser
muy efectivo para el manejo y la identificación de errores en etapas tempranas del
proceso de desarrollo. Algunos de los beneficios que ofrecen los ciclos iterativos a las
empresas en el momento de poner en marcha un proyecto.
Análisis de avances: Al fraccionar el proyecto en etapas, el equipo de trabajo tiene la
posibilidad de analizar los resultados en cada una de ellas e incorporar mejoras para la
entrega final. Todo lo contrario que algunos métodos tradicionales, en los que se fija una
fecha de entrega y el análisis se realiza sobre los resultados finales.
Manejo de riesgos: Este modelo de planificación por secciones también permite la
evaluación de riesgos que pueden irrumpir durante la ejecución del proceso. Los ciclos
iterativos son partidarios de soluciones parciales en vez de esperar hasta el final para
realizar un (análisis macro) del proyecto.
Retroalimentación: El llamado (feedback) es unas de las características de los métodos
de vida iterativos. Al plantear un desarrollo dosificado, cada fase propicia el diálogo entre
el equipo de trabajo, el líder del proyecto y por supuesto, el cliente. Todo lo que deba
analizarse o corregirse debe ir en consonancia con los objetivos propuestos y la
satisfacción del destinatario.
Flexibilidad: No sólo en cuanto a la introducción de cambios, sino también en las
situaciones en que los objetivos no hayan sido claramente definidos desde el inicio. En
estos casos, el proceso mismo puede ser la oportunidad para fijarlos y llevarlos a cabo.
4. Descripción de las fases del ciclo de vida y su aplicación para la propuesta de
desarrollo, de acuerdo al modelo seleccionado.
El modelo por prototipos o iterativo es un modelo derivado del ciclo de vida en cascada. Este
modelo busca reducir el riesgo que surge entre las necesidades del usuario y el producto final por
malentendidos durante la etapa de recogida de requisitos. Consiste en la iteración de varios ciclos
de vida en cascada. Al final de cada iteración se le entrega al cliente una versión mejorada o con
mayores funcionalidades del producto. El cliente es quien después de cada iteración evalúa el
producto y lo corrige o propone mejoras. Estas iteraciones se repetirán hasta obtener un producto
que satisfaga las necesidades del cliente.
Este modelo se suele utilizar en proyectos en los que los requisitos no están claros por parte del
usuario, por lo que se hace necesaria la creación de distintos prototipos para presentarlos y
conseguir la conformidad del cliente, una de las principales ventajas que ofrece este modelo es
que no hace falta que los requisitos estén totalmente definidos al inicio del desarrollo, sino que se
pueden ir refinando en cada una de las iteraciones, igual que otros modelos similares tiene las
ventajas propias de realizar el desarrollo en pequeños ciclos, lo que permite gestionar mejor los
riesgos, gestionar mejor las entregas, la primera de las ventajas que ofrece este modelo, el no ser
necesario tener los requisitos definidos desde el principio, puede verse también como un
inconveniente ya que pueden surgir problemas relacionados con la arquitectura.
5. Descripción del equipo de trabajo y de los roles que implementarán de acuerdo al
modelo seleccionado.
Jefe de Proyecto.
En proyectos grandes, sin dudas, es preciso dividir la gestión del proyecto (jefe del proyecto) de
la dirección técnica (director de desarrollo) incluso se requiere un director de planificación
debido al volumen y complejidad de las tareas. Sin embargo, en la propuesta, el rol de jefe de
proyecto se encarga de realizar las funciones propias de la gestión del proyecto y de la
planificación. En dependencia de la empresa, si no se dispone de suficiente personal, este rol
debería también dirigir las cuestiones técnicas por lo que sería el más apropiado para asumir las
responsabilidades definidas para el rol de director de desarrollo. Y tener las siguientes
habilidades.
Poseer experiencia en el dominio de la aplicación y en el desarrollo del software.
Poseer habilidades para el análisis y manejo de riesgos, estimación, planificación y
análisis de decisión.
Poseer habilidades de presentación, comunicación y negociación. •
Mostrar liderazgo y capacidades para la creación de equipos.
Poseer buenas habilidades para manejo de tiempo y un historial de tomas de decisiones
rápidas y efectivas bajo tensión.
Poseer buenas habilidades interpersonales y mostrar ser juicioso en la selección del
personal.
Estar enfocado en la entrega de valor del cliente, de forma tal que exactamente se
cumplan con las necesidades del cliente.
Director de Desarrollo.
El director de desarrollo debe poseer la visión global del proyecto para ser efectivo, el director de
desarrollo y el jefe del proyecto necesitan trabajar estrechamente vinculados, el director de
desarrollo como líder en los aspectos técnicos y el jefe de proyecto en los aspectos
administrativos.
Habilidades del Director de Desarrollo.
Necesita poseer todas las habilidades de un diseñador.
debe tener las siguientes habilidades:
Liderazgo
Orientación a Metas
Habilidad de Comunicación
Ser Proactivos.
Poseer experiencia.
Analista.
El rol de analista será responsable de analizar los procesos de negocios, especificar los requisitos
y diseñar el interfaz usuario. Debe estar muy relacionado con el cliente para determinar
claramente las funcionalidades del sistema.
Habilidades del Analista.
Poseer conocimiento del dominio del negocio.
Ser un buen facilitador y poseer excelentes habilidades para la comunicación oral y
escrita.
Facilitar el modelamiento del software.
Apreciar y evaluar la situación del cliente donde el producto final del proyecto será
instalado.
Diseñador
Rol del diseñador debe definir las responsabilidades, operaciones, atributos y relaciones de varias
clases y determinar cómo ajustarlas al ambiente de implementación. Es responsable lector la base
de datos definiendo las tablas, los índices, las vistas, las restricciones, triggers, y los
procedimientos o parámetros de almacenamiento, así como todo aquello que resulte necesario
almacenar, recuperar y borrarlos objetos persistentes.
Habilidades del Diseñador.
Requerimientos del sistema.
Técnicas de diseño de software, incluyendo técnicas de análisis y diseño orientado a
objetos y UML.
Técnicas de diseño de bases de datos.
Tecnologías con las cuales el sistema ha sido implementado.
Comprender la arquitectura del sistema, como fue representada por el director de
desarrollo.
Comprender el rol de probador del sistema.
Conocer en general los principios del manejo de la configuración.
Programador.
El rol de programador debe implementar componentes, localizar y corregir defectos.
Habilidades del Programador.
Ser un comunicador persuasivo que sea capaz de detectar y discutir aspectos sensibles.
Técnicas de modelamiento del sistema.
Requerimientos del sistema.
Técnicas de diseño de software, incluyendo técnicas de análisis y diseño orientado a
objetos y UML.
Administraci6n de Base de Datos.
Comprensión del ambiente y el lenguaje de implementación.
Poseer conocimientos y habilidades de programación.
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).
Herramientas.
Las herramientas son aplicaciones que apoyan la administración del proceso de software. El
conjunto de estas herramientas se conoce como ingeniería de software asistida por computadora
(CASE, Computer-Aided Software Engineering), cuyo objetivo es asistir al desarrollador durante
las diferentes actividades del ciclo de vida del proceso de software. Las herramientas para
utilizar como apoyo al proceso del desarrollo del software son: Editor de Texto:
Libre Office
Editor de Imágenes: Gimp
Editor Vectorial: Inkscape
Generadores de Modelos Gráficos (diagramas): Lucidehart
Las herramientas CASE son indispensables en la administración del proceso de software. La
selección de estas herramientas debe considerar el apoyo a las metodologías utilizadas:
Proveer apoyo explícito para cada paso del método.
Administrar toda la informaci6n que el método requiere obtener o especificar.
Permitir manejar grandes cantidades de información y ser escalable.
Apoyar la organización de los diagramas de manera automática.
Permitir usuarios simultáneos a los proyectos.