Setting up MSBuild with NUnit, NCover and NCoverExpxlorer

1. Introduction

The following guide will help you to create and execute an MSBuild configuration that will run tests with NUnit and also provide a NCover coverage report. The most challenging part was working with the free community edition for the tools, .NET 4.0, and also setting up the environment on a Windows 7 64 bit laptop.

2. Getting the right tools and know them

We need to download the right tools at the right version, I will provide a brief description of each

NUnit (2.6.0.12051)

This tool will help us to run our unit tests. You can download it from here: http://nunit.org/index.php?p=download. If you go to the bin folder, you will see two versions of the nunit-console application, we will be using nunit-console-x86.exe

NCover (1.5.8)

It will generate a coverage.xml file, that indicates how much code has been tested on our project. It has a community free option, which is the last option at the following link: http://www.ncover.com/download/current. You need to register in order to download it.

NCoverExplorer (1.4.0.7)

Helps us to create an HTML report file from the coverage.xml generated with NCover. The free version is available at: http://www.kiwidude.com/dotnet/DownloadPage.html

You will need to extract the files at a specific location.

NCoverExplorer Extras (1.4.0.5)

This package contains a couple of plugins that can help us with tasks in MSBuild, which can be downloaded also from: http://www.kiwidude.com/dotnet/DownloadPage.html

  • NCoverExplorer.MSBuildTasks.dll
  • NCoverExplorer.NAntTasks.dll

We’ll see how do we link these in the MSBuild file. I recommend you to put the extras folder in the same directory you installed NCoverExplorer

TestDriven.Net (3.3.2779)

As an alternative, you can download and install TestDriven.Net, which contains the three applications described above, you can get it here: http://www.testdriven.net/download.aspx

Note that, still you will need to get the NCoverExtras for the MSBuild task plugins

I recommend using TestDriven, since it also installs you a nice add-on for Visual Studio, which helps you to run tests easily. I will use TestDriven for the rest of the tutorial

3. Doing it

I suggest to go to https://github.com/aharita/calculator while reading the rest, so you can examine the complete source code. In this section I will explain some of the troubles I got into, and how to solve them. Some of those are particular to .NET 4.0 and having Windows 7 64 bit

MSBuild example file

We need to add three tasks in our MSBuild file

	<UsingTask
		TaskName="NCoverExplorer.MSBuildTasks.NCoverExplorer"
		AssemblyFile="C:\Program Files (x86)\TestDriven.NET 3\NCoverExplorer\NCoverExplorer.Extras\bin\NCoverExplorer.MSBuildTasks.dll"/>
	<UsingTask
		TaskName="NCoverExplorer.MSBuildTasks.NCover"
		AssemblyFile="C:\Program Files (x86)\TestDriven.NET 3\NCoverExplorer\NCoverExplorer.Extras\bin\NCoverExplorer.MSBuildTasks.dll"/>
	<UsingTask
		TaskName="NCoverExplorer.MSBuildTasks.NUnitProject"
		AssemblyFile="C:\Program Files (x86)\TestDriven.NET 3\NCoverExplorer\NCoverExplorer.Extras\bin\NCoverExplorer.MSBuildTasks.dll"/>

We also need to add the proper sections for handling NUnit, NCover and NCoverExplorer

	<Target Name="NUnitSimple">
		<Exec
			Command="&quot;C:\Program Files (x86)\TestDriven.NET 3\NUnit\2.6\nunit-console-x86.exe&quot; &quot;C:\Users\aharita\Documents\GitHub\calculator\Calculator.Tests\bin\Debug\Calculator.Tests.dll&quot;"/>
	</Target>

	<Target Name="NCoverSimple">
		<NCover
			ToolPath="C:\Program Files (x86)\TestDriven.NET 3\NCover\1.5.8\"
			CommandLineExe="C:\Program Files (x86)\TestDriven.NET 3\NUnit\2.6\nunit-console-x86.exe"
			CommandLineArgs="C:\Users\aharita\Documents\GitHub\calculator\Calculator.Tests\bin\Debug\Calculator.Tests.dll"
		/>
	</Target>

	<Target Name="NCoverExplorerSimple" DependsOnTargets="NCoverSimple">
		<NCoverExplorer
			ToolPath="C:\Program Files (x86)\TestDriven.NET 3\NCoverExplorer"
			ProjectName="Calculator Operations Tests"
			XmlReportName="CoverageSummary.xml"
			HtmlReportName="CoverageSummary.html"
			CoverageFiles="C:\Users\aharita\Documents\GitHub\calculator\coverage.xml"
		/>
	</Target>

Build.bat helper file

I also have a build.bat file that helps you to run msbuild with the build.xml MSBuild configuration

set COMPLUS_ProfAPI_ProfilerCompatibilitySetting=EnableV2Profiler
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe build.xml

4. Troubleshooting

There are some problems that you might have while trying to do the setup, the most common ones are:

Profiler connection not established.

The full error is:

</pre>
Profiled process terminated. Profiler connection not established.
error MSB6006: "NCover.Console.exe" exited with code 1.
<pre>

Solution is:

  • You need to use nunit-console-x86.exe on all the MSBuild references
  • You need to execute the following in the same command window you execute your msbuild script
    • set COMPLUS_ProfAPI_ProfilerCompatibilitySetting=EnableV2Profiler

You can see the example file provided on GitHub

Empty coverage.xml file

Sometimes, you will end up with an empty coverage.xml file, some solution to this:

  • Open nunit-console-x86.exe.config and change it as follows:
</pre>
<startup useLegacyV2RuntimeActivationPolicy="true">
 <!-- Comment out the next line to force use of .NET 4.0 -->
 <supportedRuntime version="v4.0.30319" />
 <supportedRuntime version="v2.0.50727" />
 </startup>
<pre>

4. Resources

Hopefully, this guide will be helpful and you won’t have the same headaches as I had trying to do the setup. Following are some links resources that helped me through the problem.

https://github.com/aharita/calculator

http://www.kiwidude.com/blog/2007/04/ncover-problems-fixes-part-1.html

http://kiwidudeuk.blogspot.mx/2007/04/ncover-problems-fixes-part-2.html

http://stackoverflow.com/questions/4921443/force-ncover-1-5-8-to-use-v4-framework-like-testdriven-net-does

Configurar SSL en Ubuntu 10.04 y Apache2

2010/06/17 1 comment

A continuación se listarán los comandos necesarios para instalar y configurar apache, así como el módulo SSL
Nota:Todo está por default y es solo para propósitos de aprendizaje


# Instalamos Apache
sudo aptitude install apache2


# Habilitamos el módulo SSL de apache
sudo a2enmod ssl


# Habilitamos la configuración SSL por default
sudo a2ensite default-ssl


# Reiniciamos el servidor
sudo /etc/init.d/apache2 restart

Eso es lo mínimo necesario, y podemos probar que funciona entrando a https://127.0.0.1
Si deseamos crear nuestro propio certificado, debemos seguir los siguientes pasos


# Crear un directorio y hacer todas las siguientes operaciones ahí
# Creamos las llaves
sudo openssl genrsa -des3 -out server.key 1024


# Creamos el certificado con la llave
sudo openssl req -new -key server.key -out server.csr


# Creamos nuestro certificado, contestando las preguntas que nos indique
sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt


# Abrimos el archivo de configuracion default-ssl, reemplazamos y añadimos la siguiente configuracion
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
SSLCertificateFile /directorio/donde/guardaste/el/certificado/server.crt
SSLCertificateKeyFile /directorio/donde/guardaste/el/certificado/server.key


# Reiniciamos el servidor
sudo /etc/init.d/apache2 restart

Todo fue basado de este sitio:
http://beginlinux.com/blog/2009/01/ssl-on-ubuntu-810-apache2/

Categories: universidad

Ruby getter y setter

A continuación se muestran 3 maneras de hacer un getter y setter en Ruby

# 1. Utilizando funciones normales
class Persona
  def set_nombre(nombre)
    @nombre = nombre
  end
  
  def get_nombre
    @nombre
  end
end

p = Persona.new
p.set_nombre("Alfonso")
x = p.get_nombre
puts x

# 2. Sin tener que mandar un parámetro
# al setter
class Persona
  def set_nombre=(nombre)
    @nombre = nombre
  end
  
  def get_nombre
    @nombre
  end
end

p = Persona.new
p.set_nombre = "Harita"
x = p.get_nombre
puts x

# 3. Utilizando attr_reader, attr_writer
# y/o attr_accessor
class Persona
  attr_accessor :nombre
end

p = Persona.new
p.nombre = "WooT"
x = p.nombre
puts x
Categories: universidad

Calculadora básica en Ruby

Pues aquí la calculadora que nos pidieron :D
Supongo que despues será más compleja


# Contiene las funciones basicas de una calculadora
class Calculadora

 # Se declaran las variables de la clase
 attr_accessor :x, :y

 def suma
  temp = x + y
  puts "La suma de es: #{temp}"
 end

 def resta
  temp = x - y
  puts "La resta es: #{temp}"
 end

 def multiplicacion
  temp = x * y
  puts "La multiplicacion es: #{temp}"
 end

 def division
  temp = x / y
  puts "La division es: #{temp}"
 end

 def modulo
  temp = x % y
  puts "El modulo es: #{temp}"
 end

 def potencia
  temp = x ** y
  puts "La potencia es: #{temp}"
 end
end

# Hacemos un objeto y utilizamos sus atributos y metodos
calc = Calculadora.new
calc.x = 3.0
calc.y = 2.0
calc.suma
calc.resta
calc.multiplicacion
calc.division
calc.modulo

Categories: universidad

Ahora comere…

Hola! quiero presentarles un sitio en el que estoy trabajando actualmente

http://www.ahoracomere.com

Es un sitio donde encontrarás una lista de restaurantes, los menus que ofrecen y sus precios! Te invito a checarlo… :)

Categories: universidad

Índices en bases de datos

2009/11/05 2 comments

Índice en base de datos

  • Estructura de datos que mejora la velocidad de las operaciones
  • Se utiliza sobre campos donde se hagan frecuentes búsquedas
  • Pueden ser creados utilizando una o más columnas
  • Son construidos sonre árboles B, B+, B* o sobre mezclas de ellos

Ventajas de utilizar índices

  • Se evita una búsqueda en la tabla completa
  • Se evita la sobrecarga de CPU, disco y concurrencia
  • Se evitan las lecturas secuenciales
  • Mayor rapidez en la ejecución de consultas

Desventajas al utilizar índices

  • Desventaja para las tablas que utilizan frecuentemente un insert, delete o update ya que los índices se actualizan cada que se modifica una columna
  • Ocupan espacio, a veces más que los propios datos

Ejercicio

Para demostrar la rapidez de una consulta al utilizar índices, se creó una base de datos y se agregó aproximadamente 1 millón de registros

En la siguiente foto podemos observar el tiempo que tarda una consulta sin índice en una tabla con más de 1 millón de registros, el cual es de 45 segundos en total:

Sin índice

Consulta sin índice

Podemos observar como el tiempo ha disminuido considerablemente cuando utilizamos índices en nuestra tabla, bajando el tiempo de consulta a 6 segundos aproximadamente:

Con índice

Consulta con índice

Si desean descargar la práctica para hacer pruebas. Los tiempos pueden variar dependiendo de la velocidad de CPU y la memoria Ram que tenga la computadora

http://dl.dropbox.com/u/1955604/Tareas/Optimizaci%C3%B3n%20de%20Sistemas%20de%20Informaci%C3%B3n/Indices.zip

¿Qué es el tiempo?

Para los griegos de la época clásica el tiempo era un dios: Cronos

Tiempo

  • Relación que se establece entre dos o más fenómenos, sucesos, cuerpos u objetos
  • Duración de los fenómenos… época, siglo
  • Duración de las cosas sujetas a mudanza
  • Aspecto mensurable de la duración
  • El número, o la medida, del movimiento según antes y después

La administración

  • Viene del latín ad-ministrare, o ministrare, que se deriva de minister el cual viene de manus, que significa la mano o las manos
  • Administrar era “servir (con las manos) a o para”

La administración del tiempo

  • Es el arte de hacer que sirva para el beneficio de las personas y de las sociedades
  • Como el tiempo no existe en sí, la administración del tiempo es la administración de sí mismo

Tiempos

  • Tiempo físico: Fenómeno aplicable a la realidad objetiva y por encima de las vicisitudes de los seres humanos
  • Tiempo psicológico: Experiencia subjetiva, como vivencia, como interiorización sujeta a toda la gama de los caracteres, de los caprichos y de las neurosis
  • Tiempo lineal
  • Tiempo cíclico

Experiencia del tiempo

  • Corporal
    • La vida fisiológica es una sucesión de ritmos: la inspiración y la espiración, el hambre y la saciedad, la atención y la dispersión, el cansancio y el descanso
    • Se vive el tiempo en el paso de las estaciones cada año, en las variaciones del cuerpo a través de la infancia y de la asolescencia, en la fuerza de la juventud, en la resistencia de la madurez, en el debilitamiento progresivo de la vejez y en el curso evolutivo de las enfermedades
  • Psicológica
    • Sentimos el fluir de los acontecimientos: 10 minutos alegres son una experiencia temporal muy diferente de 10 minutos de extrema tensión o dolor
    • Tomamos distancia con respecto a los hechos pasados, localizándolos en el tiempo: “Hace una semana”, “hace tres meses”
  • Social
    • Dejamos de ver 15 años a un compañero de escuela y al encontrárnoslo, advertimos y casi palpamos el paso del tiempo
    • Comparamos nuestra ciudad o barrio con lo que era hace 20 años

Enemigo o desperdiciador del tiempo

  • Cualquier circunstancia que se opone a la consecución de nuestros objetivos, o simplemente, que nos aparta de nuestros valores

    Objetivos y plan de desarrollo de un proyecto

    Referencias:

    http://cv.uoc.edu/UOC/a/moduls/90/90_156/programa/main/viu/dis_i_pla/viu09.htm
    http://www.monografias.com/trabajos15/objetivos-organizacionales/objetivos-organizacionales.shtml
    http://www.ie.itcr.ac.cr/mhernandez/Formulacion%20Proyectos%202006/Objetivos%20No.6.ppt
    http://www.mailxmail.com/curso-gestion-proyectos/desarrollo-plan-proyecto
    http://www.liderdeproyecto.com/manual/areas_de_conocimiento_del_pmbok.html

    Factores claves en la definición del objetivo del proyecto

    • Debe responder a la pregunta ¿Qué pretende nuestro trabajo?
    • Deben estar muy bien definidos, congruentes entre si, claros
    • No pueden sobrar o faltar objetivos, tiene que ajustarse exactamente al alcance del trabajo
    • Deben ser alcanzables
    • Deben ser cuantificables
    • Deben ser finitos
    • Deben tener un indicador

    Identificar los elementos que componen la estructura del plan de desarrollo de un proyecto

    • Se empieza por definir la principal unidad de trabajo que debe ser llevado a cabo
    • Se determina el tiempo requerido para completar cada fase del proyecto
    • Se determina la secuencia que deben seguir las distintas fases del proyecto
    • Se determina el tiempo y los gastos de cada fase del proyecto, siendo el resultado igual al presupuesto total disponible
    • Se determinan las necesidades de personal
    • Se determina la normativa y los procedimientos habituales a seguir durante el desarrollo del proyecto
    • Se establecen las pautas y los detalles de un posible plan de contingencia
    Administración de la Integración de Proyectos: Se refiere los procesos requeridos para asegurar que los elementos varios de un proyecto están coordinados apropiadamente. Consiste del desarrollo de un plan de proyecto, ejecución del plan de proyecto, y el control de cambios en general.
    Administración del Alcance del Proyecto: Se refiere el proceso requerido para asegurar que el proyecto incluye todo trabajo requerido, y sólo el trabajo requerido, para completar el proyecto de manera exitosa. Consiste de la iniciación, planeación del alcance, definición del alcance, verificación del alcance, y control de cambio al alcance.
    Administración del Tiempo del Proyecto: Se refiere los procesos requeridos para asegurar la terminación a tiempo del proyecto. Consiste en la definición de las actividades, secuencia de las actividades, estimación de duración de las actividades, desarrollo del cronograma y control de la programación.
    Administración de los Costos del Proyecto: Se refiere los procesos requeridos para asegurar que el proyecto es completado dentro del presupuesto aprobado. Consiste en la planificación de recursos, estimación de costos, presupuesto de costos, y control de costos.
    Administración de la Calidad del Proyecto: Se refiere los procesos requeridos para asegurar que el proyecto va a satisfacer las necesidades para lo cual fue desarrollado. Consiste en la planeación de la calidad, aseguramiento de la calidad, y control de calidad.
    Administración de los Recursos Humanos del Proyecto: Se refiere los procesos requeridos para hacer el uso más eficiente de las personas involucradas en el proyecto. Consiste en la planeación organizacional, adquisición de staff, y desarrollo del equipo.
    Administración de las Comunicaciones del Proyecto: Se refiere los procesos requeridos para asegurar la generación apropiada y a tiempo, colección, diseminación, almacenamiento, y la disposición final de la información del proyecto. Consiste en la planeación de la comunicación, distribución de la información, reportes de desempeño, y el cierre administrativo.
    Administración de Riesgo del Proyecto: Se refiere los procesos concernientes con la identificación, análisis, y respuesta al riesgo del proyecto. Consiste en la identificación del riesgo, cuantificación del riesgo, desarrollo de la respuesta al riesgo, y en el control de la respuesta al riesgo.
    Administración de la Procuración del Proyecto: Se refiere los procesos requeridos para adquirir bienes y servicios de fuera de la organización ejecutora. Consiste en la planeación de la gestión de la procuración, planear la solicitación, la solicitación, selección de proveedores, administración de contratos, y cierre de contratos.

    • Administración de la Integración de Proyectos
      • Procesos requeridos para asegurar que los elementos de un proyecto esten coordinados apropiadamente
      • Consiste del desarrollo de un plan de proyecto, ejecución del plan de proyecto, y el control de cambios en general
    • Administración del Alcance del Proyecto
      • Proceso requerido para asegurar que el proyecto incluya todo trabajo requerido, y sólo el trabajo requerido, para completar el proyecto de manera exitosa
      • Consiste de la iniciación, planeación del alcance, definición del alcance, verificación del alcance, y control de cambio al alcance
    • Administración del Tiempo del Proyecto
      • Procesos requeridos para asegurar la terminación a tiempo del proyecto
      • Consiste en la definición de las actividades, secuencia de las actividades, estimación de duración de las actividades, desarrollo del cronograma y control de la programación
    • Administración de los Costos del Proyecto
      • Procesos requeridos para asegurar que el proyecto es completado dentro del presupuesto aprobado
      • Consiste en la planificación de recursos, estimación de costos, presupuesto de costos, y control de costos
    • Administración de la Calidad del Proyecto
      • Procesos requeridos para asegurar que el proyecto va a satisfacer las necesidades para lo cual fue desarrollado
      • Consiste en la planeación de la calidad, aseguramiento de la calidad, y control de calidad
    • Administración de los Recursos Humanos del Proyecto
      • Procesos requeridos para hacer el uso más eficiente de las personas involucradas en el proyecto
      • Consiste en la planeación organizacional, adquisición de staff, y desarrollo del equipo
    • Administración de las Comunicaciones del Proyecto
      • Procesos requeridos para asegurar la generación apropiada y a tiempo, colección, diseminación, almacenamiento, y la disposición final de la información del proyecto
      • Consiste en la planeación de la comunicación, distribución de la información, reportes de desempeño, y el cierre administrativo
    • Administración de Riesgo del Proyecto
      • Procesos concernientes con la identificación, análisis, y respuesta al riesgo del proyecto
      • Consiste en la identificación del riesgo, cuantificación del riesgo, desarrollo de la respuesta al riesgo, y en el control de la respuesta al riesgo
    • Administración de la Procuración del Proyecto
      • Procesos requeridos para adquirir bienes y servicios de fuera de la organización ejecutora
      • Consiste en la planeación de la gestión de la procuración, planear la solicitación, la solicitación, selección de proveedores, administración de contratos, y cierre de contratos

    MoProSoft en sistemas de calidad

    Referencias:

    http://dl.getdropbox.com/u/1955604/Tareas/Sistemas%20de%20calidad%20en%20TI/MoProSoft_profesora.pptx
    http://dl.getdropbox.com/u/1955604/Tareas/Sistemas%20de%20calidad%20en%20TI/MoProSoft_alumnos.ppt


    MoProSoft

    • Conjunto de mejoras prácticas para el desarrollo del software
    • Enfocado al punto de vista organizacional
    • Significa “Modelo de Procesos para la Industria del Software”
    • Norma Mexicana apropiada a las características de tamaño de empresas mexicanas de desarrollo y mantenimiento de software

    Finalidad del modelo

    • Proporcionar un modelo basado en las mejores prácticas internacionales
    • Fácil de entender y aplicar
    • No costoso
    • Base para alcanzar evaluaciones exitosas como ISO o CMMI

    Categorías de procesos

    • Categoría de alta dirección (DIR)
      • Gestión de negocios: Establecer la razón de ser de la organización, sus objetivos y las condiciones para lograrlos
    • Categoría de gerencia (GER)
      • Gestión de procesos: Establecer los procesos de la organización, definir, plantear e implantar mejoras
      • Gestión de proyectos: Asegurar que los proyectos contribuyan al cumplimiento de los objetivos y estrategias de la organización
      • Gestión de recursos: Conseguir y dotar a la organización de los recursos humanos, infraestructura, ambiente de trabajo y proveedores. Crear y mantener la base de conocimientos
      • Bienes, servicios e infraestructura: Proporcionar proveedores de bienes, servicios e infraestructura que satisfagan los requisitos de adquisición de procesos y proyectos
      • Recursos humanos y ambiente de trabajo: Proporcionar los recursos humanos adecuados para cumplir las responsabilidades asignadas a los roles dentro de la organización, así como la evaluación del ambiente de trabajo
      • Conocimiento de la organización: Mantener disponible y administrar la base de conocimiento que contiene la información y los productos generados por la organización
    • Categoría de operación (OPE)
      • Administración de proyectos específicos: Establecer y llevar a cabo sistemáticamente las actividades que permitan cumplir con los objetivos de un proyecto en tiempo y costos esperados
      • Desarrollo y mantenimiento de software: Realización sistemática de las actividades de análisis, diseño, construcción, integración y pruebas de productos de software nuevos o modificados, cumpliendo con los requerimientos especificados

    Beneficios

    • Estructura de administración común en muchas organizaciones
    • Inicia un camino a la adopción de los modelos ISO 9000 o CMMI
    • Permite a las PyMes obtener acceso a las prácticas de ingeniería de software de clase mundial
    • Sirve para implementar un programa de mejora continua

    Implementación

    • Se evalúa la situación actual de la organización por un evaluador certificado por la NYCE (Normalización y Certificación Electrónica)
    • Se analizan los objetivos, metas, características de los proyectos, el personal y las tecnologías utilizadas, con el fin de diseñar un programa de mejora a la medida

    ISO/IEC 9126 – ISO 10006:2003 – ISO/IEC 27000

    2009/10/14 1 comment

    Referencias:

    ISO/IEC 9126

    • Estándar internacional para la evaluación del Software
    • Supervisado por el proyecto SQuaRE, ISO 25000:2005
    • Provee un entorno para que las organizaciones definan un modelo de calidad para el producto de software
    • Distingue entre fallo y no conformidad
    • Está basado en investigaciones de multiples modelos de calidad durante los últimos 30 años

    Está dividido en varias partes:

    • Modelo de calidad – Clasifica la calidad del software en un conjunto estructurado de características y sub-características de la siguiente manera
      • Funcionalidad – Las funciones satisfacen lo indicado o implica necesidades
      • Fiabilidad – Capacidad del software de mantener su nivel de prestación bajo condiciones y un tiempo establecido
      • Usabilidad – Esfuerzo necesitado para el uso
      • Eficiencia – Nivel de desempeño del software y cantidad de recursos necesitados
      • Mantenibilidad – Facilidad de extender, modificar o corregir errores
      • Portabilidad – Capacidad de ser transferido de una plataforma a otra
    • Métricas externas – Son las aplicables al software en ejecución
    • Métricas internas – Son las que no dependen de la ejecución del software
    • Calidad en las métricas de uso – Solo disponible cuando el producto final es usado en condiciones reales
    • Vista en uso
      • Efectividad – Facilitar al usuario alcanzar objetivos con precisión y completitud
      • Productividad – Permitir a los usuarios gastar la cantidad apropiada de recursos
      • Seguridad – Cumplir con los niveles de riesgo permitidos
      • Satisfacción – Cumplir con las expectativas de los usuarios

    ISO 10006:2003

    • Directrices para la calidad en la gestión de proyectos
    • Aplicable a proyectos pequeños o grandes, de larga o pequeña duración
    • No es una guía de administración de proyectos en sí
    • Es un documento guía, y no utilizado para una certificación o registro
    • Hace recomendaciones sobre la gestión de la información generada por la realización del proyecto
    • Se deben seguir los siguientes pasos por la organización
      • Identificar la información crítica
      • Organizar el sistema de colección de la información (Información dentro del proyecto e información del entorno y el cliente)
      • Validar y almacenar la información
      • Organizar un sistema que asegure su uso

    Ventajas

    • Reduce la variedad y tipos de productos
    • Reduce inventarios y costos de producción
    • Mejora la gestión y el diseño de productos
    • Mejora la comercialización de los productos
    • Agiliza los procesos pedidos

    Desventajas

    • No entra en las fases del proyecto ni describe los procesos necesarios para su ejecución
    • No incluye los procesos de gestión de la calidad y, por lo tanto, da a entender que estos procesos no forman parte de la gestión del proyecto

    ISO/IEC 27000

    • Estándares de seguridad publicados por la ISO (Organización Internacional para la Estandarización) y la IEC (Comisión Electrónica Internacional)
    • Contiene las mejores prácticas recomendadas en seguridad de la información para desarrollar, implementar y mantener especificaciones para los sistemas de gestión de la seguridad de la información (SGSI)
    • ISO/IEC 27000 – Vocabulario estándar para el SGSI
    • ISO/IEC 27001 – Certificación que deben obtener las organizaciones. Especifica los requisitos para la implantación del SGSI. Es la más importante de la familia. Adopta un enfoque de gestión de riesgos y promueve la mejora continua de procesos
    • ISO/IEC 27002 – Código de buenas prácticas para la gestión de seguridad de la información
    • ISO/IEC 27003 – Directrices para la implementación de un SGSI. Es el soporte de la norma ISO/IEC 27001
    • ISO/IEC 27004 – Métricas para la gestión de seguridad de la información
    • ISO/IEC 27005 – Gestión de riesgos en seguridad de la información. Proporciona recomendaciones y lineamientos de métodos y técnicas de evaluación de riesgos de seguridad en la información
    • ISO/IEC 27006:2007 – Requisitos para la acreditación de las organizaciones que proporcionan la certificación de los sistemas de gestión de la seguridad de la información
    • ISO/IEC 27007 – Guía para auditar al SGSI

    La seguridad de la información, según ISO 27001

    • Confidencialidad – La información no se revela a individuos, entidades o procesos no autorizados
    • Integridad – Mantenimiento de exactitud y completitud de la información y sus métodos de proceso
    • Disponibilidad – Acceso a individuos, entidades o procesos autorizados cuando lo requieran