2.
1 Diseño de modelos propuestos
¿Qué es diseño de software?
El diseño de software es el proceso por el que un agente crea una especificación de un
artefacto de software, pensado para cumplir unos objetivos, utilizando un conjunto de
componentes primitivos y sujeto a restricciones. Es un hecho que las empresas que más
crecen son las que más invierten en diseño y mejor lo gestionan. El diseño visual es
efectivamente el aspecto que mayor credibilidad aporta a un producto, pero DISEÑAR es
más.
Diseñar es conocer a tus clientes y sus necesidades, hacer test, crear prototipos,
definir requisitos, tomar decisiones sobre estrategia de empresa, información o procesos.
El éxito de un software también depende de:
Su facilidad de uso.
Una buena interfaz de usuario.
Sus funcionalidades.
Unos contenidos adecuados.
Si no quieres perder dinero debes hacer intervenir al diseño desde la concepción de la
idea, sólo con ingeniería no vas a cumplir objetivos.
CASO PRÁCTICO.
"Hotel Facultad de informática"
1. Definir un enfoque metodológico, desde el punto de vista de ingeniería de
software para abordar el problema
Se realiza un breve análisis de la metodología que será empleada por el departamento de
sistemas para el desarrollo del Sistema Informático, precisando los motivos por los cuales
se desean obtener los resultados esperados de su aplicación. La situación dada, “Creación
de un sistema de Información de Reservas”, está enmarcada dentro de unas
características que hacen definir de antemano las variables a tratar. Dichas características
están dadas principalmente por:
· Requerimientos de hardware y software claramente especificados
· Personal asignado por labor
· Actividades definidas
· Organización del departamento de sistemas
· Asignación de responsabilidades altamente establecida
· Tiempo de desarrollo pactado (5 meses)
Esto nos asegura la búsqueda de una metodología ágil que permita el desarrollo de este
sistema en forma óptima. Entre las existentes, consideramos que la metodología que más
se acerca a la solución de nuestro problema es SCRUM.
SCRUM es un proceso de desarrollo de software iterativo e incremental utilizado
comúnmente en entornos de desarrollo ágiles de software. SCRUM, más que una
metodología de desarrollo software, es una forma de autogestión de los equipos de
programadores. Un grupo de programadores deciden cómo hacer sus tareas y cuánto van
a tardar en ello. SCRUM ayuda a que trabajen todos juntos, en la misma dirección, con un
objetivo claro. SCRUM permite además seguir de forma clara el avance de las tareas a
realizar, de forma que los "jefes" puedan ver día a día cómo progresa el trabajo.
La metodología que proponemos para el desarrollo del sistema es SCRUM el cual vamos a
tomar por las siguientes razones:
Los Requerimientos parecen estar bien definidos, y tendremos pocos tropiezos en
el desarrollo de la metodología.
El tiempo de desarrollo para el software es corto, como para llevar una
metodología como RUP.
Si el tiempo no es lo suficiente para terminar el proyecto al final del periodo se
puede dar un entregable al cliente.
Debido a que tenemos por lo menos una persona involucrada en el desarrollo del
sistema hace menos propenso a los errores en la entrega.
Para esta metodología necesitamos que todos los requerimientos definidos llevarlos a una
pila Backlog, para que los desarrolladores empiecen sus tareas de la manera más rápida.
Igualmente se debe empezar por que un miembro del equipo realice un prototipo y defina
unos estándares de diseño de la interfaz para que todo el equipo trabaje sobre este.
Las reuniones para este proyecto son importantes debido al corto tiempo ya que nos
permite detectar problemas y poder tomar decisiones para mejorar el proceso y corregir
los problemas. Por otra parte, es importante destacar que el equipo es pequeño y para
poder llevar esta metodología no necesitaremos tanto personal de trabajo con diferentes
roles
Para poder llevar esta metodología primero se tiene que empezar por definir qué es lo
más importante del proyecto y armar las historias. Se definen los roles de cada
participante del proyecto. También se definen las fechas de las reuniones tanto diarias
como quincenales para revisar el estado del proyecto.
2. Establecer los productos a entregar
Según SCRUM, los entregables son avances del trabajo, es decir prototipos. Cada cierto
tiempo (que debe establecerse en el equipo de trabajo) se hará revisión de un sistema
funcional para su evaluación.
El producto final a entregar está compuesto por el código fuente del sistema, instaladores
de la aplicación y manuales. El producto deberá cumplir los requerimientos iníciales para
las tres aéreas de interés el personal de mostrador, el personal de cocina y el personal
administrativo.
Al finalizar el proyecto, es necesario hacer entrega de:
– manuales de usuario
– manual operativo
– manual de instalación de la aplicación.
– Código fuente
3. Definir la estructura del equipo de desarrollo
a. Personal requerido
· Un líder de proyecto
· Un jefe de proyecto del departamento de sistemas
· Cinco desarrolladores
· Personal para soporte hardware y software de la empresa
· Personal de la empresa para definición de requerimientos
b. Perfiles
SCRUM es un proceso marco que incluye un conjunto de prácticas y roles predefinidos.
Los roles principales en Scrum son el Scrum Master, que mantiene los procesos y trabaja
de forma similar al director de proyecto, el Product Owner, que representa a
los stakeholders (clientes externos o internos), y el Team que incluye a los desarrolladores.
De acuerdo a los roles antes mencionados y los cargos asignados por la empresa, se
necesitan:
1. Scrum Master: Jefe de proyecto del departamento de sistemas
2. Product Owner: Director de administración
3. Stakeholders: Cada uno de los funcionarios del hotel que puedan establecer
requerimientos claros que ayuden al desarrollo del sistema. Entre ellos están:
· El personal de mostrador
· El personal de cocina
· El personal de administración
Cabe aclarar que este grupo de personas estará representado por el Product Owner
4. Team: Es el grupo de desarrolladores que, según las especificaciones del proyecto
estará constituido por 5 personas a las que se les supone buen conocimiento, tanto
del problema como de la herramienta a utilizar.
5. Personal de soporte y ejecución de aplicaciones: Es personal de carácter permanente
en la empresa ya que tienen por responsabilidad hacer que el software se ejecute
constantemente a la finalización del mismo y a su vez de mantener el departamento de
sistemas funcionando diariamente.
c. Cargos
· Director de administración
· Jefe de sistemas
· Analistas de sistemas o ingenieros (5) para desarrollo
· Analista de sistemas o ingeniero para soporte
d. Asignación salarial
Existen técnicas de asignación salarial que tienen en cuenta que el factor humano es
creativo y que debe estar comprometido con la empresa. La asignación salarial debe ser:
atractiva, retenedora y motivadora. En Colombia existen, según el departamento
administrativo del servicio civil siete categorías para las escalas salariales:
· Nivel directivo
· Nivel asesor
· Nivel ejecutivo
· Nivel profesional
· Nivel técnico
· Nivel administrativo
· Nivel operativo
Para realizar la asignación salarial se requiere tener en cuenta una serie de variables, que
se establecen teniendo en cuenta, además de otras características, aquellas dadas por la
actividad económica de la empresa (que la sabemos ya que es un hotel), pero además de
su recepción de ingresos.
Podríamos decir que las personas que se necesitan para el proyecto están en los
siguientes niveles:
· Nivel directivo: Líder de proyecto $ 4.000.00
Jefe de sistemas $ 5.500.00
· Nivel profesional: Los 5 desarrolladores de software $ 30,000.00
· Nivel técnico: Personal para soporte de sistemas $ 10,000.00
Como parte de la asesoría de cada miércoles donde se despejan dudas y se trabaja en las
siguientes actividades, la tarea para entregar va a realizar en este punto, el diseño de
procesos propuestos.
Diseño de modelos propuestos
Nombre del sistema.
Requisitos y requerimientos para realizar el sistema.
Establecer los productos a entregar
Definir la estructura del equipo de desarrollo (personal requerido)
Personal de soporte y ejecución de aplicaciones
Asignación salarial