Anda di halaman 1dari 20

INGENIERIA DE SOFTWARE - (301404A_612)

SEGUNDA FASE - MODELAMIENTO

JORGE LUIS ZARACHE


72.433.142
GRUPO: 301404_16

TUTORA
DIANA JUDITH MENDEZ

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA (UNAD).


ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERA
INGENIERIA SISTEMAS
INGENIERÍA DE SOFTWARE
BOGOTA
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 de Dicho Software.


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 con el 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.

Ciclo de vida del modelo.


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. El rol de jefe de proyecto debe además responder a la alta

dirección de la empresa, manteniéndola informada del progreso del equipo, y debe

trabajar estrechamente relacionado con el especialista de calidad que participa en el

proyecto. Además, es el responsable de controlar el trabajo de cada miembro del equipo

y evaluar el cumplimiento de sus planes. Conocimientos y Habilidades del Jefe de

Proyecto.

• 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 ara 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.

Conocimientos y Habilidades del Director de Desarrollo.

• Necesita poseer todas las habilidades de un diseñador.

• Estar bien ubicado, poseer madurez, visión y una gran experiencia que permita

detectar problemas rápidamente y ser mesurado al hacer juicios críticos en ausencia de

una completa información. Específicamente, el director de desarrollo de software, o

miembros de este equipo, debe combinar 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 la interfaz usuario. Debe estar muy relacionado con el cliente para

determinar claramente las funcionalidades del sistema. Se debe destacar que si en el

grupo es posible contar con personal especializado que pueda asumir el diseño de

interfaz de usuario sería conveniente que se destinara a dicha función, trabajando

estrechamente relacionado con el analista.

Conocimientos y Habilidades del Analista.

 Poseer conocimiento del dominio del negocio.

 Comprender los requerimientos de todos los interesados en el negocio, sus

estrategias y metas.

 Ser un buen facilitador y poseer excelentes habilidades para la comunicación

oral y escrita.

 Facilitar el modelamiento del software.

 Tomar parte en la definición de requerimientos del producto final del proyecto.

 Apreciar y evaluar la situación del cliente donde el producto final del proyecto

será instalado.

 Realizar un análisis costo-beneficio para cualquier cambio sugerido en el

proyecto.

 Discutir y soportar a quienes compran y venden el producto final del proyecto.

 Estar familiarizado con las herramientas utilizadas en la captura del modelo del

negocio.

 Estar familiarizado con todas las herramientas usadas para establecer

requerimientos.

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.

Conocimientos y Habilidades del Diseñador.

 Requerimientos del sistema.

 Tecnicas de diseño de software, incluyendo técnicas de análisis y

diseño orientado a objetos y UML.

 Tecnicas 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. De acuerdo con la entidad donde se aplique la

plantilla de roles, es posible que en algunos casos este rol deba asumir

la responsabilidad de implementar componentes y subsistemas de

prueba, así como desarrollar artefactos de instalación.

Conocimientos y habilidades del Programador.

 Ser un comunicador persuasivo que sea capaz de detectar y discutir

aspectos sensibles.

 Tecnicas de modelamiento del sistema.

 Requerimientos del sistema.

 Tecnicas de diseño de software, incluyendo técnicas de análisis y

diseño orientado a objetos y UML.

 Tecnologías con la cual el sistema ha sido implementado.

 Base de datos y técnicas de análisis y diseño orientadas a objetos.


 Administraci6n de Base de Datos.

 Comprensión del ambiente y el lenguaje de implementación.

 Poseer conocimientos y habilidades de programación.

Probador. Es el rol responsable de la planificación, diseño,

implementación y evaluación de la prueba, que incluye generar el plan

y el modelo de prueba, implementar los procedimientos de prueba,

evaluar la envergadura y resultados de las pruebas y su efectividad así

como generar un resumen de la evaluación de la prueba.

Conocimientos y Habilidades del Probador.

• Poseer conocimiento del sistema o aplicación a probar.

• Poseer conocimiento de pruebas y herramientas de pruebas

automáticas.

• Poseer habilidades para el diagnóstico y la solución de problemas.

• Poseer habilidades de programación.


Especialista de Soporte.

Se recomienda que en las empresas exista un departamento de soporte,

donde se designe un especialista que colabore con el equipo de

desarrollo del proyecto, interactuando esencialmente con el director de

desarrollo y el programador.

Conocimientos y Habilidades de Soporte.

 Dar soporte (con herramientas y procesos) respecto al

desarrollo de la organización.

 Seleccionar y adquirir herramientas.

 Configurar los procesos.

 Entrenar al personal.

 Garantizar soporte técnico sobre: tecnología de información,

política de backup, nuevas tendencias, herramientas CASE de

modelamiento, generación de código, etcétera.

Especialista de Calidad. Se recomienda que en las empresas exista un

departamento de calidad que designe especialista(s) para colaborar con

cada proyecto. Este especialista debe ajustar el plan de calidad definido

por el departamento a las características propias del proyecto para

establecer su plan de calidad. Además, tiene la responsabilidad de

definir, documentar y publicar el proceso de desarrollo a seguir. Debe

influir en el trabajo de todos los roles involucrados en el proceso de

desarrollo, controlar los resultados de las inspecciones y reuniones de

equipo, garantizando que se mantenga actualizada la agenda del

proyecto y que el producto obtenido esté libre de defectos.

Conocimientos y Habilidades del Especialista de Calidad.

 Orientación a metas.

 Poseer conocimiento del sistema.

 Tener experiencia en el dominio de la ingeniería de software.


 Dominar alguna metodología de desarrollo de software.

 Estar actualizado en las tendencias actuales de los estándares de

calidad y métodos de mejora de procesos.

Especialista de Seguridad.

Se recomienda que en las empresas exista al menos un especialista en

seguridad, teniendo en cuenta que puede dificultarse encontrar

suficiente personal capacitado para tener un departamento dedicado a

estas cuestiones. Este rol tiene la responsabilidad de dictar las políticas

de seguridad y protección que deberán seguirse en el diseño,

implementación e implantación del sistema, y debe trabajar

estrechamente vinculado con el diseñador y el director de desarrollo.

Interesados en el negocio (Clientes).

Los interesados en el negocio son individuos u organizaciones cuyos

intereses puedan resultar afectados positiva o negativamente como

resultado de la ejecución o finalización del proyecto. En este grupo se

encuentran entre otros, los clientes, los usuarios finales y los

inversionistas.

Instalador.

El rol de Instalador tiene la responsabilidad de diseñar y desarrollar los

instaladores del sistema además de elaborar la documentación técnica

como manuales de usuario y textos de ayuda. Se encarga de planificar

la transición del producto a la comunidad de usuarios. Para ser efectivo

debe trabajar estrechamente vinculado con el jefe del proyecto.

Conocimientos y habilidades.

 Experiencia en el desarrollo de sistemas.

 Habilidades de comunicación y coordinación con el

objetivo de estar actualizado sobre el estado del

desarrollo del producto y comunicar las necesidades de


las actividades de implementación at resto del equipo

de proyecto.

 Capacidad de planificación con vistas a asegurar que la

implementación pueda ejecutarse acorde con lo

planificado y con los recursos disponibles.

 Poseer experiencia y(o) estar entrenado en la escritura

técnica.

 Poseer experiencia o entrenamiento en desarrollar

sistemas de ayuda y(o) sitios Web.

 Poseer conocimientos sobre el dominio a documentar.

 Poseer buenas habilidades de comunicación porque

frecuentemente requiere hacer entrevistas a

diseñadores, probadores y usuarios con el objetivo de

generar una

 Documentación correcta y Útil.

Usuario Final.

El usuario final debe tener una estrecha relación con el implantador

recibiendo de este los manuales correspondientes para comenzar la

explotación del sistema.

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

LibreOffice the Document Foundation

Referencia: https://es.libreoffice.org/

Editor de Imigenes: Gimp

Referencia: http://www.gimp.org.es/

Editor Vectorial: Inkscape

C.1 en iCW

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.

 Incluir un mecanismo que permita probar que la información recolectada es

consistente.

 Apoyar la organización de los diagramas de manera automática.

 Permitir usuarios simultáneos en uno o Unas proyectos.

 Poder generar una implementación inicial junto con la documentación.

 Apoyar la ingeniería en reversa para asegurar que los cambios directos en la

implementación sean consistentes con los modelos administrados. Métodos de

Control.

Introducción.
El proceso de desarrollo de software propuesto está basado en el ciclo de vida

Incremental, ya que combina elementos del modelo en cascada aplicado en

forma iterativa y aplica secuencias.

Lineales de manera escalonada conforme avanza el tiempo. Además, se basa en

el comportamiento del modelo espiral, el cual realiza el Analisis de los riesgos

al final de cada iteración de desarrollo, y con base en el resultado de este

Analisis se realiza el plan de cada incremento. Este proceso se repite después de

la entrega de cada incremento (iteraciones de desarrollo) hasta que se elabore el

producto completo. Para la ejecución del proceso se elaboraron una serie

documentos, diagramas, formatos, instructivos y actas que permiten el registro

de las actividades de cada proceso.

Conclusiones

• No existe consenso sobre cuál es el mejor modelo del proceso software.

Distintos equipos de desarrollo pueden utilizar diferentes modelos de proceso

software para producir el mismo tipo de sistema software. Sin embargo,

algunos modelos son más apropiados para producir ciertos tipos de sistemas, de

forma que si no se utiliza un modelo adecuado puede ocurrir que el sistema

software resultante sea de menor calidad.

• La utilización de un ciclo de vida específico para el desarrollo de software,

basado en las condiciones del tipo de problemas a tratar, constituye uno de los

alcances notables del modelo ofrecido. El ciclo de vida contempla la noción de

fases generales que constituyen un marco de situación, estableciendo fases de

solución para un su problema concreto.

• A la hora de llevar a la realidad una idea de tecnología es fundamental contar

con un buen equipo de desarrollo de software, no funciona tener una buena idea

si no ejecutas debidamente, el éxito del desarrollo del proyecto depende de la

correcta selección y definición del equipo de trabajo y la asignación,


dependiendo de su perfil profesional, los roles que cumplirán, además es

necesario que cuenten con experiencia en el área de disentido de software.

• Es innegable la importancia que tiene el desarrollo de software, productos

tecnológicos que cada día tienen más demanda, en algún momento de nuestra

vida empresarial o laboral, vamos a necesitar algún tipo de desarrollo, sea

porque es necesario actualizarnos o para darle vida a nuestras ideas.


Referencias

[1] http://www.businessdictionary.com/definition/model.html

[2] http://en.wikipedia.org/wiki/Reference_model

[3] http://www.oasis-open.org/committees/download.php/19679/soa-rm-cs.pdf

[4] http://en.wikipedia.org/wiki/Reference_model

Anda mungkin juga menyukai