Title: Despliegue de Proyectos de Software
1Despliegue de Proyectos de Software
- M.C. Juan Carlos Olivares Rojas
2- Este material se distribuye bajo una licencia
Creative Commons Reconocimiento 2.5 México. Usted
es libre de - copiar, distribuir y comunicar
públicamente la obra - hacer obras derivadas
- Bajo las condiciones siguientes
- Reconocimiento. Debe reconocer y dar
crédito al autor original (Juan Carlos Olivares
Rojas)
3Introducción
- Es la fase final del proyecto.
- El proyecto no se termina cuando se acaba de
construir, sino que va más allá. - Generalmente a etapa suele llamarse análisis
postmortem.
4Manifiesto Ágil
- Principios
- Individuos e interacciones sobre procesos y
herramientas - Trabajo sobre el software sobre documentación
comprensiva
5Manifiesto Ágil
- Clientes colaborativos sobre negociación de
contratos - Responder a los cambios sobre seguir el plan
- A continuación se muestra el manifiesto ágil
6Manifiesto Ágil
- Nuestra más grande prioridad es satisfacer a los
clientes a través de entregas tempranas y
continuas de software valioso. - Bienvenidos cambios de requerimientos, cuando
aparezcan tarde en el desarrollo. Los procesos
ágiles endurecen los cambios para la ventaja
competitiva de los clientes.
7Manifiesto Ágil
- Entrega de trabajos de software frecuentemente,
desde unas cuantas semanas hasta unos cuantos
meses, con una preferencia hacia los tiempos
cortos. - Personas de negocios y desarrolladores deben
trabajar juntos diariamente en el proyecto.
8Manifiesto Ágil
- Construir proyectos con individuos motivados. Dar
a los individuos el ambiente y soporte que ellos
necesitan y confiar en que ellos terminarán. - El método más eficiente y efectivo de obtener
información para y con el equipo de desarrollo es
la conversación cara a cara.
9Manifiesto Ágil
- Trabajo de software es la principal medida del
progreso. - Los procesos ágiles promueven el desarrollo
sustentable.
10Manifiesto Ágil
- Los patrocinadores, desarrolladores, y usuarios
deben ser capaces de mantener una paz constante
indefinidamente. - Atención continua para la excelencia técnica y el
buen diseño para mejorar la agilidad.
11Manifiesto Ágil
- Simplicidad el arte de maximizar la cantidad de
trabajo que no se hará- es esencial. - Las mejores arquitecturas, requerimientos, y
diseños emergen desde el interior de las
organizaciones.
12Manifiesto Ágil
- En intervalos regulares, el equipo reflexionará
en como ser más efectivos, luego cambiarán y
ajustarán su comportamiento acorde a la
situación.
13Introducción
- En general la fase de despliegue consta de las
siguientes fases - Entrega
- Soporte
- Retroalimentación
14Entrega
- Es la fase más importante de la etapa de
despliegue ya que es en este apartado cuando el
proyecto pasa a las manos de los clientes. - La fase de entrega no consiste solamente en la
instalación del software, es un proceso más
complejo e integral.
15Entrega
- Uno de los entregables de cualquier proyecto es
la documentación del mismo, dicha documentación
se da en dos partes documentación técnica y el
manual de usuario. - Los dos documentos son muy importantes pero son
totalmente distintos.
16Agenda
- El Manual Técnico consta generalmente de
- Delimitación
- Justificación
- Objetivos
- Análisis
- Diseño
- Programas
- Pruebas
17Agenda
- El Manual del Usuario debe contener los
siguientes elementos - Introducción
- Requerimientos de H/S
- Instalación
- Operación
18Manual Técnico
- Una adecuada documentación le proporciona
identidad y "personalidad" a un proyecto, de
manera que los usuarios responsables del mismo
podrían reconocer más fácilmente las ventajas y
desventajas, características y funcionalidades,
funciones y ventajas, así como costos y
beneficios que impliquen el desarrollo del
proyecto.
19Manual Técnico
- La documentación de un proyecto debe contar con
las siguientes características - Lenguaje claro y de acuerdo al nivel aplicado
- Gerencial.
- Técnico.
- Usuario.
- Contemplar todos los aspectos del proyecto.
20Manual técnico
- Los documentos que componen una adecuada
documentación de un proyecto deben ser los
siguientes - Carpeta general o profesional.
- Carpeta gerencial o resumen ejecutivo.
- Carpeta técnica.
- Plan económico (factibilidad).
21Carpeta profesional
- Consiste en un documento que detalla todos los
aspectos relacionados con el proyecto, identifica
todas las bases y orígenes sobre las que nace el
proyecto, además que especifica los pasos
necesarios, los recursos y aplicaciones que un
proyecto necesita. - El objetivo de la carpeta profesional es servir
de modelo para la implementación del proyecto a
desarrollar, de manera que las personas
involucradas obtengan información fácilmente en
cualquier etapa del proyecto.
22Carpeta profesional
- Los aspectos principales que debe de contemplar
la carpeta profesional son - Definición del problema a resolver (delimitar).
- Definición clara de objetivo y metas.
- Áreas que involucra.
- Conocimiento de la organización.
- Planteamiento claro (pasos).
23Carpeta profesional
- Investigación.
- Propuestas claras.
- Plan de trabajo.
- Recursos.
- Calendarización.
24Carpeta profesional
- Este documento va dirigido hacia personas que van
a estar relacionadas directamente con la
implementación del proyecto, por lo que su nivel
se orienta hacia el uso y aplicaciones utilizadas
para el definir el proyecto. - De preferencia se debe hacer carpetas
especializadas por cada tipo de usuario.
25Carpeta gerencial o resumen ejecutivo
- Este documento va dirigido hacia las personas de
más alto nivel de la empresa o hacia aquellas de
las que depende la decisión de implementar o no
el proyecto. - Generalmente se utiliza un lenguaje claro sin
tecnicismo, en términos ejecutivos. Su extensión
no debe ser mucha, y debe de recalcar los
aspectos mas importantes del proyecto.
26Carpeta gerencial o resumen ejecutivo
- Generalmente debe contener elementos gráficos y
resúmenes que ayuden a identificar más fácilmente
las ideas propuestas. - Esta carpeta es importante ya que va dirigido a
las personas que toman decisiones.
27Carpeta técnica
- Este documento contiene toda la información sobre
los recursos utilizados por el proyecto, llevan
una descripción muy bien detallada sobre las
características físicas y técnicas de cada
elemento. Por ejemplo características de
procesadores, velocidad, dimensiones del equipo,
garantías, soporte, proveedores y equipo
adicional. - Su extensión depende de la cantidad de recursos y
equipo utilizado y generalmente se presenta en
forma de fichas técnicas en donde se describe en
cada una las características de cada recurso.
28Carpeta económica (plan o propuesta).
- Este documento contiene información relacionada
con el aspecto económico y de factibilidad del
proyecto, su objetivo principal es describir
todos aquellos costos relacionados con el
desarrollo e implantación del proyecto, ayuda a
la empresa a establecer marcos de referencia y
evaluar mas fácilmente los alcances y
disponibilidad para llevar a cabo el proyecto.
29Carpeta económica
- Consta de 2 secciones, una de ellas es el plan
económico del desarrollo del proyecto y la otra
es el plan económico para implementar el proyecto
(la mas importante). - Generalmente en esta carpeta se incorpora el
estudio de factibilidad que permitirá a la
empresa a evaluar la posibilidad de poner en
marcha la realización del proyecto.
30Manual de usuario
- El manual de usuario es el documento técnico que
explica el funcionamiento del software o
prototipo desarrollado como producto resultante
del proyecto. - El manual de usuario detalla cada una de las
funciones del prototipo así como la forma en que
debe operar el usuario el desarrollo.
31Introducción
- La introducción indica el contexto en que fue
desarrollado el proyecto. - Detalla las características sobresalientes del
prototipo implementado. - Muestra cada una de las demás secciones del
manual de usuario.
32Requerimientos de H/S
- En el manual de usuario se necesita indicar las
características que debe poseer el software
desarrollado para poderse ejecutar. - Se debe detallar las características mínimas,
recomendadas y óptimas, tanto de hardware y
software.
33Instalación
- El manual de usuario debe indicar la forma en
como debe de instalarse el software desarrollado
para poderse ejecutar. - El proceso debe detallar cada una de las acciones
que necesita hacer el usuario para poner a punto
el sistema.
34Operación
- El manual de usuario debe indicar cada una de las
acciones que puede realizar el usuario sobre el
sistema. - El manual de usuario debe de servir de referencia
a todo tipos de usuarios desde usuarios limitados
hasta los administradores
35Documentación Técnica
- Uno de los principales problemas que se presenta
dentro de esta fase consiste en la redacción de
documentos y presentaciones técnicas. - A continuación se muestran algunas sugerencias
para este arduo proceso, comenzando con los 7
hábitos de los programadores altamente efectivos.
36Hábito 1 Ser proactivo
- No se debe escribir reactivamente, es decir,
escribir por que tengo que escribir. - Escribir más de lo que se me piden, sin descuidar
los tipos de texto y abusar del exceso. - Se debe encontrar el punto medio entre
información excesiva y faltante.
37Hábito 1 Ser proactivo
- Decidirse por escribir y no que el profesor les
asigne tema. - Se ocupa tener una planeación del documento, algo
que pocos hacen es decir, saber que escribir
antes de escribirlo.
38Hábito 2 Comenzar con el fin en mente
- El texto siempre debe expresar el objetivo por el
cual fue hecho. - El texto debe tener como objetivo general Quién
va a leer este documento y por qué?
39Hábito 3 Poner primero las cosas que son primero
- Este hábito tiene que ver con la administración
del tiempo. Generlamente se escoge una matriz con
4 áreas urgente-importante, no
urgente-importante, urgente-no importante, no
urgente-no importante. - Al clasificar estas cosas sabemos que poner y que
quitar en un escrito.
40Hábito 4 Pensar en ganar/ganar
- Está relación consiste en escribir textos con
claridad de tal forma que si escribimos bien, nos
sentimos bien, tenemos menos errores, el lector
revisa menos, entiende más, se le hace más claro
el documento - Hacer las cosas bien en términos hacia los demás
es mejor que simplemente hacerlas por cumplir.
41Hábito 5 Busca primero ser entendido y luego
entender
- Gastamos mucho tiempo en como escribir y como
hablar, pero poco tiempo en como oír. - Los escritores juegan un papel muy importante en
como los lectores perciben la idea de algo, por
eso es importante que el documento se entienda y
no que yo lo entienda.
42Hábito 6 Sinergizar
- Se basa en el fundamento que algo es tan bueno
como la suma de sus partes. - Escribir un documento en colaboración con otros,
o bien un documento ser revisado por varias
personas se ve sumamente enriquecido. - La revisión de los trabajos debe hacerse a través
de colegas o pares.
43Hábito 7 Afilar la vista
- Siempre se debe tener la mentalidad de renovar
las cosas, en este caso el estilo de escribir, el
formato del documento, etc. - Actividad no es lo mismo que productividad, se
debe tener una reflexión de lo que es el
documento en vistas de mejorar. - En áreas técnicas se conserva un protocolo pero
aún así los documentos pueden ir más allá que el
simple formato.
44Hipótesis
- Son explicaciones tentativas del fenómeno
investigado que se formulan como proposiciones. - Las hipótesis son el centro medular de cualquier
investigación. - Las hipótesis no son necesariamente siempre
verdaderas, pueden resultar ser falsas.
45Hipótesis
- Están formadas por variables las cuales pueden
ser dependientes si sufren variaciones al
alterarse otras, o independientes en el caso de
que no se alteran por el valor de otras
variables. - Las hipótesis pueden existir aún si el cuerpo
teórico no es abundante.
46Hipótesis
- Las hipótesis pueden ser descriptivas y
generalmente se manejan con la letra Hi, donde i
es un subíndice. - Las hipótesis reflejan la relación que existe
entre las variables. Es muy común que esa
relación se exprese en términos de lógica dado
que permite una fácil demostración.
47Hipótesis nulas
- Este tipo de hipótesis son lo contrario a las
hipótesis de investigación. Generalmente están
representados por la negación de la hipótesis. - Otro tipo de hipótesis corresponde a las
hipótesis alternativas, las cuales ofrecen otras
descripciones o explicación al problema de
investigación.
48Tipos de hipótesis
- Hi Esta silla es roja
- Ho Esta silla no es roja
- Ha1 Esta silla es azul
- Ha2 Esta silla es verde
- En donde Hi es la hipótesis, Ho es la hipótesis
nula y Ha es la hipótesis alternativa
49Experimento
- Experimento en su forma más general significa
elegir o realizar una acción y después observar
sus consecuencias. - La forma más científica consiste en un estudio en
el que se manipulan una o más variables
independientes para analizar las consecuencias de
éstas sobre una o más variables dependientes.
50Pasos de un Experimento
- Paso 1 decidir cuantas variables dependientes e
independientes deberán incluirse en el
experimento. - Paso 2 elegir los niveles o modalidades de
manipulación de las variables independientes y
traducirlos en cosas tangibles (experimentos).
51Pasos de un Experimento
- Paso 3 desarrollar el instrumento o instrumentos
para medir las variables dependientes e
independientes. - Paso 4 seleccionar una muestra de datos de una
población para el experimento (basándose en
métodos estadísticos). - Paso 5 considerar los actores (supervisores del
experimento).
52Pasos de un Experimento
- Paso 6 seleccionar el diseño experimental
apropiado para resolver nuestras hipótesis,
objetivos y preguntas de investigación. - Paso 7 elaborar la ruta crítica del proyecto del
experimento. - Paso 8 dividir los experimentos puros al azar
para ser más justos
53Pasos de un Experimento
- Paso 9 aplicar prepruebas, tratamientos
respectivos y pospruebas a los experimentos - La experimentación en muchas casos puede
realizarse a través de técnicas de simulación y
toma de decisiones como los escenarios del tipo
qué pasa si?
54Ortografía
- Se debe dar una leída al documento haciendo
énfasis en la pronunciación de las
palabras. - Utilizar correctores ortográficos más potentes
(Aspell, Jazzy). - Utilizar diccionarios electrónicos y manuales
de ortografía.
55Ortografía
- Tener cuidado con palabras polisemánticas u
homógrafas (planta), homófonas (casa, caza). - La mejor forma de escribir correctamente es
leyendo. - Cuidar el género y número de los sustantivos y
oraciones.
56Ortografía
- En general si se habla en tiempo pasado y
futuro generalmente se acentúan los verbos. - Si se cuenta con un sintetizador de voz (TTS
Reader), se debe de utilizar.
57Ortografía
- Se deben respetar las reglas gramaticales
de la acentuación agudas, graves,
esdrújulas, sobreesdrújulas. - No es lo mismo capítulo que capitulo.
- Otras aunque no llevan acentos se acentúan
para diferenciarlos más y mas.
58Ortografía
- Se debe tener cuidado al redactar un
documento y utilizar vocablos del idioma
original. - Méjico es incorrecto
- Ordenador, Ficheros
- Vosotros, etc.
59Ortografía
- Si se van a utilizar palabras en inglés o
idiomas extranjeros se deberán traducir,
salvo que el vocablo sea muy utilizado
(Web) o bien no exista una traducción
adecuada. - Se debe tener cuidado con las
configuraciones regionales (formatos de fecha
separadores de miles 1,80 litros, 1.453 pesos
etc.).
60Uso efectivo de Tablas
- Una sola tabla por página, de preferencia
en el cuerpo del documento y no como anexo. - Tratar de que la tabla quepa de manera
vertical en una página - Numere y titule la tabla en la parte superior
de la tabla. El titulo debe ser autodescriptivo
61Uso Efectivo de Tablas
- Etiquetar cada renglón y columna
- Usar tablas con bordes.
- Usar asteriscos para explicar a mayor detalle el
contenido de la tabla.
62Uso Efectivo de Tablas
- Trazar una sola gráfica por hoja.
- La gráfica debe estar en el cuerpo del
programa. - Dar a la gráfica un número secuencial y
un titulo descriptivo
63Uso Efectivo de Gráficas
- Etiquete cada eje y todas las líneas,
columnas, barras o rebanadas de pastel en
la gráfica - Incluya una clave para indicar las líneas con
colores, barras sombreadas o áreas
saturadas.
64Gráficos de Línea
- Se utilizan principalmente para mostrar
cambios a lo largo del tiempo. - Cuando las líneas no se solapan es
recomendable utilizar gráficas de área. - Cada variable debe ser representada con una
línea diferente
65Gráficas de Columnas
- Pueden mostrar la comparativa entre dos o
más variables a través del tiempo, pero son
usadas más frecuentemente para comparar
diferentes variables en un momento dado. - Las gráficas de columnas al 100 pueden
utilizarse para mostrar la distribución de
porcentajes a través del tiempo
66Gráficas de Barra
- Son similares a las de columna pero nunca
son usadas para mostrar un relación a lo
largo del tiempo. Son usadas para mostrar
una o más variables a través de
determinadas clases o categorías. - También existen gráficos de barra apilados al 100
67Gráficas de Pastel
- Se utilizan para mostrar como se divide algo en
un momento en particular. - Es una de las gráficas más representativas, su
problema radica en que ocupan mucho espacio
68Estilo Unificado
- Uso de espacio en blanco
- Uso de encabezados y pie de página
- Numeración de páginas
- Referencias y apéndices
69Presentación de la Propuesta
- Hable lo suficientemente fuerte para que la
audiencia lo pueda oír. - Mire a todas las personas mientras habla
- Haga apoyos visuales lo suficientemente
grandes para que se puedan ver
70Presentación de la Propuesta
- Use posturas que sean naturales a su estilo de
conversación. - Presente y termine la plática con confianza
- Sea usted mismo
- Esté preparado
71Presentación de la Propuesta
- Hable con naturalidad
- Recuerde respirar
- Revise el tiempo
- Matice la voz
72Soporte
- En esta etapa se garantiza que exista una
correcta preparación y algunas medidas
adicionales para poder operar de manera exitosa
el proyecto. - El soporte tiene que ver con elementos de
capacitación, de ayuda, de instalación entre
otros.
73Principios de Despliegue
- Se deben administrar las expectativas que el
cliente tiene del software. - Se debe ensamblar y probar un paquete de entrega
completo. - Se debe establecer un régimen de soporte antes de
entregar el software.
74Principios de Despliegue
- Se debe proporcionar material instructivo
apropiado a los usuarios finales. - El software con errores se debe arreglar primero
y entregar después.
75Tareas Genéricas para el Despliegue
- Ensamblar y probar todos los archivos ejecutables
y de datos. - Crear y probar toda la documentación del usuario.
Se pueden crear versiones electrónicas. - Implementar una guía de solución de problemas
76Tareas Genéricas para el Despliegue
- Establecer mecanismos de contacto, por ejemplo,
un sitio Web, correo electrónico, teléfono, etc. - Establecer mecanismos para la localización y
reportes de problemas. - Establecer mecanismos de retroalimentación por
parte de los usuarios.
77Retroalimentación
- En esta fase se obtienen características que se
deben de mejorar o agregar para la evolución del
software. - La evolución del software es un proceso natural.
Generalmente se da en esta etapa el mantenimiento
del sistema.
78Retroalimentación
- Existen diferentes tipos de mantenimiento
- Para reparar fallas del software (17)
- Para adaptar el software a diferentes ambientes
(18). - Para agregar o modificar funcionalidades del
sistema (65).
79Retroalimentación
- Lo ideal es encontrar mecanismos de predicción
que sean pretendan detectar fallas de los
sistemas. - Se debe ver la entrega de software como el
ensamblaje de las partes de algún dispositivo
físico como un mueble, un aparato eléctrico, un
juguete, etc.
80Optimización de velocidad
- Eliminar evaluaciones innecesarias
- for(int i0 iltsize() i)
- a (bc) / i
- Optimizado
- int tmp bc
- int s size()
- for(int i0 ilts i)
- a tmp / i
80
81Optimización de velocidad
- Eliminar subexpresiones comunes
- b Math.abs(a) c
- d e / (Math.abs(a) b)
- Optimizado
- int tmp Math.abs(a)
- b tmp c
- d e / (tmp b)
81
82Optimización de velocidad
- Aprovechar las variables locales
- for (int i0 i lt1000 i)
- a obj.b i
- Optimizado
- int localb obj.b
- for (int i0 i lt1000 i)
- a localb i
82
83Optimización de velocidad
- Expandir los ciclos
- for(int i0 i lt1000, i)
- ai 25
- Optimizado
- for(int i0 i lt100 i)
- ai 25
- ai 25 //8 veces más
-
83
84Optimización de velocidad
- Si se usan métodos gráficos solo actualizar las
partes de la pantalla que cambian. - Evitar la creación de objetos intermedios. Por
ejemplo cada vez que se concatena una cadena se
crea un objeto intermedio. En Java en lugar de
String se recomienda StringBuffer.
84
85Preguntas, dudas y comentarios?