Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Buenas Practicas de Software
Buenas Practicas de Software
Introducción.
Además, los proyectos resultantes no tienen una clara definición y distinción entre
los requerimientos y el diseño. Es decir, no distinguen claramente entre lo que se
quiere construir y la forma en como se debe construir el software.
APUNTES DE APOYO PARA PREPARAR EL 2DO EXAMEN BPS
En muchos de los casos, los problemas que se encuentran en el desarrollo de un
proyecto o producto de software provienen de la Ingeniería de Requerimientos.
Por esta razón, es importante definir de forma clara cual es el proceso y los métodos
que definen a esta fase de la Ingeniería de Software.
Concepto de requerimientos.
Importancia de la IR permite:
Las herramientas de Gestión de Requisitos se caracterizan por tener las siguientes propiedades:
Gatherspace Gatherspace
MagicDraw No Magic
• Informales
o Los desarrolladores deben tratar los requerimientos con tantos
stakeholders como sea posible.
• Formal
o El equipo de desarrollo debe conducir al cliente, explicándole las
implicaciones de cada requerimiento
o Antes de una revisión formal, es conveniente realizar una revisión
informal.
Como salida tiene dos cifras: estimación de costes y estimación de tiempo. En este
artículo no se incluye nada sobre presupuestos, cada cual puede realizar los
APUNTES DE APOYO PARA PREPARAR EL 2DO EXAMEN BPS
presupuestos como considere oportuno, pero para poder establecer un coste, sí es
necesario determinar el tiempo que va a llevar desarrollar una aplicación.
La estimación se inicia con una descripción del ámbito del producto. El problema se
descompone en un conjunto de problemas de menor tamaño y cada uno de éstos
se estima guiándose con datos históricos y con la experiencia.
APUNTES DE APOYO PARA PREPARAR EL 2DO EXAMEN BPS
El objetivo primordial es hacer estimaciones razonables de recursos, costos y una
planificación temporal.
El seguimiento manual de los requisitos no solo puede ser tedioso, sino que,
lamentablemente, los humanos son falibles y propensos a cometer errores. Esto no
solo es cierto cuando se trata de registrar datos, sino que también es relevante en
la etapa de construcción. Los requisitos de seguimiento pueden mejorar la precisión
y la responsabilidad en ambos aspectos.
Los requisitos de seguimiento almacenan automáticamente todos los datos con los
que está trabajando, por lo que puede usarlos como referencia más adelante. Esto
puede ayudarlo a crecer y mejorar constantemente, lo que lo lleva a un escalado
más fluido y a un mejor producto.
Por si fuera poco cada vez que una empresa se plantea un proceso de cambio de
software, lo lógico es aprovechar para hacer un rediseño de los procesos de trabajo
en la empresa, eliminando los procesos innecesarios y optimizando todos aquellos
que ofrezcan un margen razonable para la mejora. Muchas veces estos cambios
vienen acompañados de reestructuraciones a nivel de personal. Esto implica que
el trabajo de muchas personas se verá afectado.
No podemos olvidar que el mejor software con la mejor adaptación posible a las
necesidades de una empresa se convertirá en un absoluto fracaso si no logramos
involucrar al equipo de profesionales de la empresa en su uso, adopción y
expansión
Para que una versión sea considerada un éxito, es necesario que cumpla con
los siguientes objetivos:
• Implementado a tiempo.
• Implementado dentro del presupuesto.
• Su impacto en los usuarios actuales es escaso o nulo.
• Satisface las necesidades de los usuarios actuales y nuevos, los avances
tecnológicos y/o las exigencias de la competencia
Para hacer una correcta identificación de los clientes y poder realizar un análisis de
manera asertiva se pueden implementar una serie de técnicas de acuerdo al cliente
con el que se esté tratando.
La definición del alcance tiene como propósito describir y delimitar claramente las
necesidades del cliente, las cuales pretenden ser cumplidas con el proyecto.
o Los entregables que hacen parte del alcance. Se recomienda describir y listar
los entregables finales, principalmente los que deben ser aprobados por el
cliente.
o Los tipos de datos que están en el alcance y fuera de él. Los “tipos de datos”
se refieren a la categoría del negocio de los entregables tales como datos
financieros, datos de ventas, datos de los empleados, etc.
o Las fuentes de datos (bases de datos) que están en el alcance y fuera de él.
Esto es similar a los tipos de datos, excepto que ahora se está refiriendo a
los datos agregados tales como base de datos de clientes, Contabilidad
general, sistema de facturación y cobranza, etc.
APUNTES DE APOYO PARA PREPARAR EL 2DO EXAMEN BPS
o Áreas involucradas en el alcance y fuera de él. En algunos casos, las áreas
involucradas en el proyecto ayudan a delimitar el alcance.
o Condiciones fuera del alcance. Se recomienda como punto de claridad y
contraste al describir entregables que no serán creados, qué organizaciones
no serán impactadas, qué facilidades y funciones no serán incluidas, entre
otros aspectos.
Cualquier información creada anteriormente debe ser usada como base para definir
el alcance de manera mas detallada. Si por alguna razón no se cuenta con suficiente
información para la definición del alcance, se debe buscar apoyo con el patrocinador
para reunir información adicional.
Para tener una buena definición de requerimientos es necesario realizar una buena
identificación de los mismos, posterior a esto es importante definirlos de manera
detallada, donde se involucre la información aportada por los usuarios
Para realizar una correcta definición de los requerimientos del proyecto y que éstos
satisfagan las necesidades verdaderas del cliente, se deben tener en cuenta las
siguientes actividades:
Definición de Requerimientos
• Requerimientos Funcionales:
o Estos requerimientos se utilizan para determinar que hará el Software,
definiendo las relaciones de su operación y su implementación, sin
olvidar que deben ser explícitos también en lo que el sistema no debe
hacer y que validaciones se deben realizar, teniendo en cuenta cual
será el comportamiento del sistema.
o Los Requerimientos funcionales se pueden dividir en dos puntos de
vista: El primero tiene relación con el usuario, donde se identifica la
relación del usuario con el sistema desde el punto de vista del mismo;
El segundo tiene relación con el sistema dando respuesta al usuario,
es decir desde el punto de vista de lo que realiza el sistema.
o Para un desarrollador de sistemas es natural dar interpretaciones de
un requerimiento ambiguo con el fin de simplificar su implementación.
Sin embargo, a menudo no es lo que el cliente desea. Se tienen que
estipular nuevos requerimientos y se deben hacer cambios al sistema,
retrasando la entrega de éste e incrementando el costo. En principio,
la especificación de requerimientos funcionales de un sistema debe
estar completa y ser consistente con lo solicitado por el usuario.
• Requerimientos no funcionales.
o Estos requerimientos se basan en las restricciones de los servicios o
funciones ofrecidos por el sistema. Incluyen restricciones de tiempo,
sobre el proceso de desarrollo, estándares, usabilidad, portabilidad,
entre otros.
APUNTES DE APOYO PARA PREPARAR EL 2DO EXAMEN BPS
o Los Requerimientos funcionales son los requerimientos que no se
refieren directamente a las funciones específicas que entrega el
sistema, sino a las propiedades emergentes de éste como la fiabilidad,
la respuesta en el tiempo y la capacidad de almacenamiento.
o Los requerimientos no funcionales surgen de la necesidad del usuario,
debido a las restricciones en el presupuesto, a las herramientas
utilizadas, a las políticas de la organización, a la necesidad de
interoperabilidad con otros sistemas de software o hardware o a
factores externos como los reglamentos de seguridad, las políticas de
privacidad, etcétera.
o Los dos tipos de requerimientos especificados son de gran
importancia para el desarrollo de una aplicación en software, por lo
tanto siempre deben ser escritos con claridad, contener la mayor
especificación de las necesidades expuestas por el cliente, esto con
el fin de tener un soporte base desde el cual se trabajaran y no
presentar ambigüedades en la definición y el resultado del producto.
La figura a continuación muestra los inconvenientes que se pueden
presentar cunado no se hace una identificación correcta de los
requerimientos.
Las técnicas agrupadas como generales son las que permiten investigar aspectos
generales para posteriormente ser especificados con un mayor detalle con el apoyo
de técnicas más específicas. Estas técnicas son más abiertas y requieren ser
APUNTES DE APOYO PARA PREPARAR EL 2DO EXAMEN BPS
adecuadamente orientadas para cubrir la información que se requiere capturar, es
importante que para sacar el mayor provecho de estas técnicas se debe tener un
dialogo lo más abierto posible entre las organizaciones de desarrollo de software y
las empresas cliente
Entrevista
Antes de iniciar una entrevista es importante tener en cuenta los siguientes Tips a
tener en cuenta, no es obligación realizarlas todas pero si es recomendable estudiar
cuales son las que más se aplica para cada organización o cada proyecto.
2.- Estudiar como será el entorno donde se llevara a cabo la entrevista para
identificar que tan confortables estarán las personas y así obtener la información
de la manera más eficiente.
5.- Revisar como es la relación del cliente con la organización que realizará la
identificación de los requerimientos, esto con el fin de facilitar el trabajo y la
disposición de ambas partes.
Lluvia de ideas
Esta técnica es abierta y se utiliza para explorar necesidades iniciales con la ayuda
de la identificación de ideas de todas las personas que hacen parte del equipo de
apoyo para la identificación de los requerimientos. Es utilizada para investigar
nuevos servicios o necesidades que no son claramente identificadas.
Algunos Tips para tener en cuenta cuando se realice una lluvia de ideas:
1.- Escoger un sitio tranquilo que permita que las personas involucradas se
sientan cómodas y dispuestas para dar a conocer sus ideas.
3.- Tomar nota de las ideas que las personas expresan en los equipos de trabajo.
Cuestionarios
Observación
Esta técnica permite obtener información directa sobre la forma en que se realizan
las actividades. Es una técnica que sirve para revisar que no existen omisiones o
interpretaciones erróneas sobre el proceso que se realiza. Hay que tener en cuenta
que se debe utilizar si el cliente lo permite y si el proyecto así lo amerita.
Escenarios
Identificación de elementos
Preguntas generales:
Grupos focales
En la reunión se establece, de por sí, una relación de afinidad por la que todas las
respuestas giran en torno a la situación a analizar. El contexto de uso y aplicación
del producto y las características que se estudian van quedando claros para todos,
APUNTES DE APOYO PARA PREPARAR EL 2DO EXAMEN BPS
más si desde el principio el moderador tiene la habilidad de exponer el propósito de
la reunión con nitidez.
La habilidad para conducir el debate, sugerir y plantear los temas, atemperar las
discusiones sobre aspectos banales y centrarla en los relevantes, es una cuestión
que va a determinar la cantidad y calidad de la información a obtener.
Entrevista individual
Análisis contextual
Con esta técnica, lo que se hace es, no sólo pedir al cliente que cuente su
experiencia de uso y responda a las sagaces y hábiles preguntas de los métodos
anteriores, sino que se le solicita, además, ver cómo utiliza el producto para
comprender el por qué de su necesidad y discutir sobre el terreno cada uno de los
detalles y particularidades de uso. En esta técnica de análisis, la colaboración del
cliente pasa de contar y relatar su experiencia y opinión, desde luego en sus
expresiones y en sus propios términos, a dejar ver al fabricante cómo realmente se
construye esa opinión y se acumula esa experiencia.
APUNTES DE APOYO PARA PREPARAR EL 2DO EXAMEN BPS
Clientes piloto
Arthur D. Little llama a este tipo de clientes «lead adopters» y señala algunas
condiciones que deben cumplir con ese papel de cliente piloto. En primer lugar, se
espera que sean empresas exigentes en aquellos aspectos del producto que se
quiere verificar. Se está solicitando que sean más exigentes que la media de los
demás clientes, para estar seguros de que el proceso trata con rigor y profundidad,
incluso con severidad, las características a estudiar.
Con la aplicación de esta técnica se busca dar el primer paso hacia la tendencia
actual de integración de la empresa en amplias redes de cooperación. En la red,
clientes y proveedores colaboran, no sólo en la generación de valor, sino también
en su gestión, contribuyendo a crear estructuras operativas eficaces, consistentes
y dinámicas con las que afrontar la creciente diversidad y dificultad de los mercados.
Una práctica es un método o técnica utilizada para llevar a cabo una parte de un
proceso y describe cómo se realiza. Las mejores prácticas son aquellas técnicas o
métodos que permiten incrementar la satisfacción del cliente al incorporar su uso en
nuestro proceso.
APUNTES DE APOYO PARA PREPARAR EL 2DO EXAMEN BPS
Los siguientes conceptos están enfocados en las mejores prácticas en el análisis,
diseño y las relacionadas a los requerimientos.
Ver más allá del modelado. Algunas veces los requerimientos que tienen una mayor
prioridad son complejos, lo cual motiva que se inviertan esfuerzos para explorarlos
antes de comenzar su desarrollo para reducir el riesgo general del desarrollo.
Tomar una primera aproximación amplia. Es mejor intentar plasmar la idea general
en lugar de enfocarse en algún aspecto particular del sistema, esto permite obtener
un conocimiento general del sistema.
Tratar de definir la totalidad de los requerimientos al inicio del proyecto suele fallar
debido a dos razones principales:
Tratar los requerimientos como una pila priorizada. Se ubican los requerimientos en
una pila ordenados por prioridad de acuerdo a cuando deben implementarse,
decisión que debe tomarse en conjunto con el cliente. En caso de requerirse un
cambio a un requerimiento debe tratarse como un nuevo requerimiento y agregarse
a la pila.
Reconocer que existe una amplia variedad de clientes. Incluso entre los miembros
de una misma empresa es común que haya puntos en los que no exista un acuerdo
sobre lo que se espera del sistema. Por ello es necesario definir a la persona que
servirá de intermediario entre el cliente y el equipo de desarrollo, y que funcionará
como la fuente oficial de información y priorización.
Explicar las técnicas. Todo el equipo debe tener un entendimiento básico de una
técnica de modelado, incluyendo los clientes. Por ejemplo, el tomar unos momentos
para explicar qué es una tarjeta CRC y por qué se utiliza, puede ayudar a facilitar el
proceso.
APUNTES DE APOYO PARA PREPARAR EL 2DO EXAMEN BPS
Adoptar la terminología de los clientes. No debemos insistir en que los clientes sean
capaces de entender terminología técnica del desarrollo. Para ellos se está
construyendo el sistema, por tanto, es su terminología la que debemos utilizar para
el modelado del sistema. Un artefacto útil para consolidar está práctica es elaborar
y mantener un glosario de términos de negocio.
Análisis y diseño
Los diseños ágiles se van construyendo, no se definen por completo al inicio. El
diseño general del sistema se construye conforme avanza el desarrollo del proyecto
cambiando y evolucionando constantemente.
Cada modelo puede ser utilizado para diversos propósitos. Cada modelo puede ser
utilizado para diversos propósitos, por ejemplo un caso de uso puede usarse para
modelar la naturaleza esencial de un proceso o para modelar un proceso a detalle.
Probar con código. Nunca debe asumirse que un diseño funciona, sino que debe
probarse codificándolo para determinar si funciona.
Se debe conocer que se tiene que construir y para qué va a servir, sin embargo, la
mayor parte de los clientes no saben realmente que es lo que quieren y mucho
menos como implementarlo en un desarrollo.
Vale la pena sentarse con el cliente y los usuarios finales de la aplicación y definir
a donde se quiere llegar y como lo haremos.
Si un proyecto tiene una duración de 10 meses, no podemos tener al cliente sin ver
nada durante los 10 meses de desarrollo, hay que ir mostrando los resultados, cosa
que también nos servirá para ir realizando determinados ajustes y no llegar al final
del proyecto y el cliente nos haga cambiar más de la mitad de los desarrollos.
Si, por el contrario, queremos hacer uso de un IDE que pueda servirnos para varios
lenguajes de programación, podemos hacer uso de alguno que permita importar
librerías y funciones de algún lenguaje concreto como es sublimetext.
Cuando vamos a comenzar con los desarrollos hay que definir nuestra forma de
trabajar: La forma de llamar y definir las funciones, las variables, el nombre de los
ficheros, atributos, etc. En un buen código se distinguen fácilmente estos elementos.
Un código que no sigue alguna normalización resulta más complicado de mantener.
Agrupa en funciones las operaciones que se repitan, y aíslala del resto del código,
el esfuerzo necesario para el mantenimiento del código disminuirá. Si estos trozos
de código son requeridos por otros ficheros, no solo elimínalos del flujo natural, si
no que colócalo en un fichero aparte y accesible por todos los elementos del código.
6.- No inventes.
Divide los desarrollos complejos en varios más sencillos. Enrocarse en buscar una
solución que abarque todas las posibilidades o funcionalidades te va a hacer perder
APUNTES DE APOYO PARA PREPARAR EL 2DO EXAMEN BPS
mucho el tiempo. Divide el desarrollo en funcionalidades y prográmalas atendiendo
a su función principal y a la integración con el resto.
Realizarás muchas pruebas durante el desarrollo del software y sobre todo al final
de este. Prepara una batería de pruebas que puedas ejecutar en cualquier
momento. Muchas veces el ajuste de algunos elementos provoca alguna
incongruencia con otros, con tu batería de pruebas debes poder detectar esto.
10.- Optimización.
11.- Seguridad.
12.- Documentación.
Durante los desarrollos intenta documentar todo lo que haces para facilitar el
entendimiento del desarrollo y funcionamiento del software al personal del proyecto
y futuras personas que trabajen en é
Fin de tema………