Introducción
Los requisitos son una especificación de lo que debe implementarse. Son descripciones de cómo debe comportarse el sistema, o de una propiedad o atributo del sistema. Pueden ser una restricción en el proceso de desarrollo del sistema.
Tipos de requisito
- Requisito de negocio
Objetivo de negocio de alto nivel de la organización que construye un producto o de un cliente que lo adquiere.
- Regla de negocio
Política, directriz, estándar o regulación que define o restringe algún aspecto del negocio. No es un requisito de software en sí mismo, sino el origen de varios tipos de requisitos de software.
- Restricción
Limitación impuesta a las opciones disponibles para el desarrollador en el diseño y construcción del producto.
- Requisito de interfaz externa
Descripción de una conexión entre un sistema y un usuario, otro sistema o un dispositivo.
- Característica
Una o más capacidades del sistema lógicamente relacionadas que proveen valor a un usuario y están descritas mediante un conjunto de requisitos funcionales.
- Requisito funcional
Descripción de un comportamiento que un sistema presentará bajo determinadas condiciones.
- Requisito no funcional
Descripción de una propiedad o característica qeu un sistema presentará o una restricción que debe respetar.
- Atributo de calidad
Tipo de requisito no funcional que describe un servicio o característica de rendimiento de un producto.
- Requisito de sistema
Requisito de alto nivel de un producto que contiene múltiples subsistemas, que pueden ser todos software o software y hardware.
- Requisito de usuario
Objetivo o tarea que específicos tipos de usuario debe conseguir con un sistema, o un atributo de producto deseado.
Los requisitos de usuario se pueden representar mediante casos de uso, historias de usuario y tablas evento-respuesta. Idealmente los propios usuarios deberían proporcionar esta información.
Gestión de Personas
- Reuniones semanales individuales
- Respetar su espacio y su tiempo
- Tomar notas
- Encajar a cada persona en su rol
- Proveer feedback (retroalimentación)
Cómo motivar al equipo
-
Empezar por uno mismo; para motivar a otros se debe estar motivado y notarse en todas las situaciones.
-
Siempre compartir la información que se tenga acerca del proyecto, el equipo debe hacer suyo al proyecto y conocer las circunstancias que le rodean y sus limitaciones, esto también puede llevar a que el equipo tome iniciativas para hacer sugerencias sobre nuevas formas de mejorar el proyecto.
-
Mantener un ambiente amigable. Las fechas y compromisos deben ser un reto, de tal forma que el equipo se sienta orgulloso de alcanzarlas, en lugar que sean una obligación impuesta.
-
Señalar los hitos del proyecto. Se puede preparar una celebración especial al alcanzarlos.
-
Mostrar aprecio por los miembros de su equipo. Al comunicarse ser humilde, elija las palabras cuidadosamente, utilizar más el nosotros que el yo.
-
No culpar a nadie. Para un buen ambiente se debe entender que es un logro de equipo o un error de equipo.
-
Dar retroalimentación positiva. Mencionar qué es lo que se ha realizado correctamente, las deficiencias y cómo el equipo lo puede hacer mejor. Terminar siempre la retroalimentación con una nota positiva.
-
Escuchar a los miembros del equipo.
-
Ganarse el respeto con acciones y no con palabras.
-
Apoyar siempre al equipo.
-
No todo el mundo puede realizar todos los trabajos. Al jefe del proyecto le corresponde escoger a la persona adecuada para el trabajo correcto. Aunque un miembro poco convencido de enfrentar una tarea nueva podría ganar mucha confianza al completar exitosamente el objetivo, el impacto a la moral es enorme en caso de no conseguirlo.
-
Comer juntos es un constructor de relaciones.
-
Permitir la creatividad del equipo.
-
Inculcar un sentido de propiedad o pertenencia en el equipo.
-
Realizar sesiones de tormenta de ideas.
-
Dividir el proyecto en partes, para poder dar metas alcanzables.
-
Considerar la pirámide de Maslow de las necesidades. No todos tenemos la misma motivación y necesidades.
Proceso de escritura
- Planificación
- Propósito
- Audiencia
- Entrega
- Investigación
- Preguntando a expertos
- Revisando documentación
- Utilizando el Software
- Escritura
- Organizar contenido e ideas
- Escribir el primer borrador
- Repasar y corregir
- Revisión/Edición
- Reorganizar contenido
- Modificar estilo
- Corregir gramática y puntuación
- Incorporar resultados de las pruebas
- Lanzamiento
- Como parte final crear un plan para las actualizaciones
Introducción
Intento de estimar el valor de $$\pi$$ mediante el método de Montecarlo basándonos en un círculo y su cuadrado circunscrito asociado.
Se hacen distintos lanzamientos aleatorios obteniendo puntos del cuadrado y se ve si están dentro del círculo o no. Como el área del círculo es $$\pi r^2$$ y el del cuadrado circunscrito es $$4 r^2$$, tomando puntos aleatorios del cuadrado la probabilidad de caer en el círculo será de $$\frac{\pi r^2}{4 r^2}= \frac{\pi}{4}$$. Por tanto podemos aproximar Pi de la forma:
$$\pi \simeq 4 \cdot \frac{aciertos}{tiradas},$$
siendo acierto el caer dentro del círculo.

En la figura se muestra un experimento con 1000 intentos, de los que 783 han caído dentro del círculo (puntos rojos) y 217 fuera (puntos azules). Este experimento daría la siguiente estimación de pi:
$$\pi \simeq 4 \cdot \frac{783}{1000} = 3.132$$
Programación
Seguridad
Sistemas
Software
Música
Matemáticas
Programación
Sistemas
Seguridad
Programación
Software
Productividad
Ciencia
Matemáticas
Literatura
Dibujo
Programación
Seguridad
Software
Fotografía
Dibujo
Literatura
Ciencia
Matemáticas
Historia
- [Esos mentirosillos del Canal Historia y su fantasiosa versión de la Segunda Guerra Púnica](Esos mentirosillos del Canal Historia y su fantasiosa versión de la Segunda Guerra Púnica)
Cine
Otros
Programación
Seguridad
Software
Productividad
Ciencia
Literatura
Cine
Ajedrez
Otros
Programación
Sistemas
Software
Matemáticas
Fotografía
Cine/TV
Historia
Aikido
Ajedrez
Otros
Programación
Software
Ciencia
Literatura
Fotografía
Tenis
Otros
Programación
Sistemas
Seguridad
Software
Redes
Ciencia
Fotografía
Música
Cine
Literatura
Ajedrez
Tenis
Otros
Programación
Ciencia
Ajedrez
Otros
Programación
Seguridad
Software
Productividad
Ajedrez
Fotografía
Ciencia
Literatura
Cine y Televisión
Otros
Programación
Sistemas
Fotografía
Ciencia
Otros
Programación
Sistemas
Fotografía
Música
Ajedrez
Problema: intento acceder a un html atacando al servidor web de Subversion con el navegador y el html se muestra en modo texto. ¿Por qué el navegador no es capaz de renderizarlo?
Nota: no se visualiza bien ni con chrome ni con mozilla, pero con internet explorer sí.
Explicación: Por defecto, SVN sirve los ficheros no binarios con el mime-type text/plain. Cuando un navegador recibe este mime-type sabe que no debe renderizarlo, ya que tiene que tratarlo como si fuera texto y mostrar el código fuente del html (menos explorer que parece que no sabe estas cosas…).
Solución: Cambiar el mime-type de los ficheros html a “text/html” y el de los ficheros css a “text/css“. Esto se indica mediante una propiedad SVN.
A veces trabajamos con muchos repositorios y hacemos cambios en varios de ellos a lo largo del día. Para ver si hemos hecho algún cambio tenemos que ir a cada repositorio a hacer un [code inline=”yes”]git status[/code] en cada uno de ellos. Si no somos muy ordenados, puede que hasta no recordemos dónde están nuestros repositorios.
Este script en Perl automatiza esta tarea, de forma que al terminar nuestra jornada podamos ver rápidamente si tenemos pendiente algún cambio:
Git con cygwin:
[Git con cygwin:
]1 es un software de control de versiones distribuido. Aunque es más sencillo instalarlo en Linux, también lo podemos instalar y configurar en Windows. Aunque los sistemas de control de versiones se utilizan principalmente para proyectos colaborativos, también lo podemos utilizar para tener control de cambios sobre nuestros propio software, aunque seamos el único desarrollador del mismo.
[Git con cygwin:
[Git con cygwin:
]1 es un software de control de versiones distribuido. Aunque es más sencillo instalarlo en Linux, también lo podemos instalar y configurar en Windows. Aunque los sistemas de control de versiones se utilizan principalmente para proyectos colaborativos, también lo podemos utilizar para tener control de cambios sobre nuestros propio software, aunque seamos el único desarrollador del mismo.
]2 es una plataforma de desarrollo basada en git, que podemos utlizar para tener nuestros proyectos online y para compartirlos con otros desarrolladores. Github nos proporciona un repositorio remoto que podemos tener sincronizado con nuestro repositorio local; si trabajamos con varios desarrolladores cada uno puede tener su propio repositorio local y utilizar github como repositorio servidor.
Por último, Cygwin nos ofrece una colección de herramientas Unix desde la línea de comandos de Windows.
Vamos a ver cómo tener cygwin y git instalado en windows y configurado para poder subir nuestros proyectos a github.
Ideonees un compilador y depurador en línea que permite compilar y ejecutar código en más de 40 lenguajes de programación.
¿Quieres aprender un lenguaje de programación, pero no te apetece instalar el compilador o intérprete correspondiente? Puedes utilizar Ideonepara escribir el código y compilarlo online.
Una idea muy buena.