miércoles, 30 de septiembre de 2009

BALANCED SCORECARD - CUADRO DE MANDO INTEGRAL

1. Definición
El Cuadro de Mando Integral es una herramienta muy útil para la dirección de empresas en el corto y en el largo plazo. Primero, porque al combinar los indicadores financieros y no financieros permite adelantar tenedencias y realizar una política estratégica proactiva. Y segundo, porque ofrece un método estructurado para seleccionar los indicadores guía que implica a la dirección de la empresa.

La eficacia del cuadro de mando integral radica en una buena compresión de sus fundamentos, una aplicación completa que implique a la dirección de la empresa.
Es una herramienta que permite implementar la estrategia y la misión de una empresa a partir de un conjunto de medidas de actuación, pone énfasis en la consecuación de objetivos financieros, e incluye los inductores de actuación futura para el logro de esos objetivos, proporciona una estructura para transformar la estrategia en acción, posibilita a través del diagrama causa-efecto establecer las hipótesis estratégicas (a través de la secuencia si/entonces), permitiendo anticipar a futuro, como el negocio creará valor para los clientes.
El BSC es un modelo de gestión que traduce la estrategia en objetivos relacionados, medidos a través de indicadores ligados a unos planes de acción que permiten alinear el comportamiento de los miembros de la organización.
A través de un sistema coherente de elementos, como los mapas estratégicos, la asignación de recursos y la evalucación del desempeño, el Cuadro de Mando Integral engrana las piezas normalmente descoordinadas en nuestras organizaciones, para adecuar el comportamiento de las personas a la estrategia empresarial.
Podríamos decir que el BSC nos proporciona una "fotografía" que nos permite examinar cómo estamos acometiendo hoy nuestra estrategia a medio y largo plazo. Para enfocar esa "fotografía" previamente, es necesario concretar nuestra visión del negocio en objetivos estratégicos relacionados entre sí según diferentes perspectivas. Con este ejercicio se consigue hacer que la estrategia sea más entendible y, por tanto, más facil comunicable, Este esfuerzo también nos permite organizar todos los elementos de gestion de la empresa en torno a sus verdaderos objetivos.




2. Elementos de un Balanced Scorecard
    2.1. Misión, Visión y Valores 
La aplicación del BSC empieza con la definición de la misión, visión y valores de la organización. La estrategia de la organización sólo será consistente si se han conceptualizado esos elementos.
¿Quiere decir que el modelo debe comenzar por la definición o revisión de la misión, visión y valores? No necesariamente, pues em muchos ya están definidos. Además, son mucho mas sontenibles en el tiempo que los otros elementos del modelo. Lo que parece claro es que son el punto de partida.
A partir de la definición de la misión, visión y valores se desarrolla la estrategia, que puede ser representada directamente en forma de mapas estratégicos, o conceptualizada, antes, en otro formato. De nuevo, lo importante no es si el desarrollo de la estregia forma parte del modelo; lo realmente importante es si hay una estrategia definida y adecuada. Si lo está, será el punto de partida para el desarrollo de los elementos del modelo; en caso contrario, el primer paso consistirá en la definición de la estrategia. En numerosas implantaciones, la estrategia suele ya estar definida, y de lo que se trate es de plasmarla en un mapa estratégico.

  2.2 Perspecivas, Mapas Estratégicos y Objetivos
      2.2.1. Mapa Estratégico
Los mapas estratégicos permite a una organización describir e ilustrar, el lenguaje claro y  conciso, sus objetivos, iniciativas, objetivos de mercado, medidas de desempeño y todos los lazos de unión entre las piezas de la estrategia. De este modo, los empleados tienen una representación visual de cómo su trabajo se relaciona con los objetivos generales de la empresa, mientras que los directivos tienen  un conocimiento más profundo de su estrategia y los medio para corregir cualquier error o desviación que se produzca durante la ejecución de la estrategia.
El mapa estratégico ayuda a valorar la importancia de cada objetivo estratégico, ya que nos lo presenta agrupados en perspectivas.

      2.2.2. Perspectiva
Las perspectivas son aquellas dimensiones críticas claves en la organización. Las cuatro perspectivas más comúnmente utilizadas son:
  • Perspectiva Financiera: ¿Qué debemos hacer para satisfacer las expectativas de nuestros accionistas?
  • Perspectiva del Cliente: ¿Qué debemos hacer para satisfacer las necesidades de nuestros clientes?
  • Perspectiva Interna: ¿En qué proceso debemos ser excelentes para satisfacer esas necesidades?
  • Perspectiva del Aprendizaje: ¿Qué aspectos son críticos para poder mantener esa excelencia?
       2.2.3. Objetivo Estratégico
Determina en forma cualitativa lo que se desea alcanzar. Los objetivos estratégicos son el resultado del proceso de planificación.
Ejemplo de objetivos estratégicos:
  • Perspectiva Financiera
          - Aumentar el valor de la unidad
          - Crecimiento de ventas en segmentos clave
          - Mantener la rentabilidad fijada por la central
  • Perspectiva del Cliente
          - Fidelizar los cliente rentables
          - Mejorar la densidad de productos por cliente
          - Penetrar en nuevos canales
          - Aumentar ventas de nuevos productos
          - Mejorar la satisfacción de clientes
  • Perspectiva Interna
          - Identificar nuevos cliente
          - Aumentar la intensidad de la relación con los clientes
          - Mejorar la calidad de servicio
          - Gestionar los recursos de forma más eficiente          
          - Reforzar la imagen/marca         
  • Perpesctiva del Aprendizaje y Crecimiento
          - Mejorar las competencias de las personas clave
          - Mejorar la comunicación interna
          - Potenciar las alianzas clave
          - Adaptar la tecnología a la necesidades
          - Cambiar a una gestión de procesos

       2.3. Propuesta de Valor al Cliente
Dado que el BSC ha de ser sencillo y facilmente entendible, es clave seleccionar aquellos objetivos estratégicos de primer nivel que son prioritarios. Para ello, resulta de gran utilidad definir la propuesta de valor al cliente, es decir, lo que diferencia a nuestra organización ante los clientes. Diferentes gurús de la estrategia han distinguido formas de competir. Kaplan y Norton las resumen, siguiendo la clasificación de Trecy y Weserman, en:
  • Liderazgo de productos: se centra en la excelencia de sus productos y servicios, que ofrecen la máxima calidad y funcionalidad.
  • Relación con el cliente: se centra en la capacidad para generar vínculos con los clientes, para conocerlos y proporcionarles productos y servicios adecuados a sus necesidades.
  • Excelencia operativa: se centra en proporcionar productos y serivicios a un precio competitivo para la calidad y funcionalidad que ofrecen.
Las organizaciones intentan ser excelentes en una de esas estrategias, manteniendo unos estándares mínimos en las otras dos. Es lógico que las perspectivas del cliente y, por ende, las  de procesos y aprendizaje y crecimiento, se centren en objetivos relacionados con la estrategia para los que no se ha conseguido el mínimo requerido.

       2.4. Indicadores y sus Metas
Los indicadores (también llamados medidas) son el medio que tenemos para visualizar si estamos cumpliendo o no los objetivos estratégicos.
Un objetivo estratégico, como por ejemplo el desarrollo de capacidades comerciales de nuestro personal clave, puede medirse a través de indicadores.
Se pueden establecer dos tipos de indicadores:
  • Indicadores de resultado: miden la consecuencia del objetivo estratégico. También se les llama indicadores de efecto.
  • Indicadores de causa: miden el resultado de las acciones que permiten su consecución. También se llaman indicadores inductores.
       2.5. Iniciativas Estratégicas
Las iniciativas estratégicas son las acciones en las que la organización se va a centrar para la consecución de los objetivos estratégicos. En nuestras empresas hacemos cosas, pero ¿están realmente enfocadas hacia el cumplimiento de la estrategia? En muchas organizaciones encontramos un exceso de iniciativas y proyectos con falta de recursos y tiempo para llevarlos a cabo.
Es importante priorizar las iniciativas en función de los objetivos estratégicos. Si analizamos el impacto de las iniciativas en marcha en cada uno de los objetivos estratégicos, podemos visualizar, iniciativas que aportan poco valor al cumplimiento de estos objetivos y objetivos estratégicos sin soporte a la iniciativas.

       2.6. Responsables y Recursos
Cada objetivo, indicador e iniciativa debe tener un responsable. Una persona a cargo que controla su cumplimiento.
Otro aspecto clave para una implantación con éxito del BSC es asignar los recursos necesarios para el buen desarrollo de las iniciativas estratégicas. Es el primer para para el cumplimiento de la estrategia. Por ello es necesario establecer los equipos a cargo de cada iniciativa, así como el papel que diferentes personas van a jugar en ellos. Y también dotar a las iniciativas de los recursos necesarios para su cumplimiento. Se recomienda que el presupuesto contenga una partida de recursos asignados a las iniciativas estratégicas. Estos recursos deben estar diferenciados del presupuesto operativo, del presupuesto de inversión y de otros presupuestos que utilizan las empresas, asi podemos evitar que otras actividades engullan esos recursos que debieran dedicarse al cumplimiento de las iniciativas críticas definidas en el BSC.

       2.7. Evaluación Subjetiva
Aunque hemos hablado del establecimiento de indicadores para el seguimiento de los objetivos e iniciativas, es deseable dotar de una cierta flexibilidad al modelo como instrumento de evaluaciónm análisis y reflexión estratégica. Por ese motivo, es importante establecer los procedimientos para una evaluación subjetiva de los diferentes elementos, complementaria al cumplimiento de los indicadores específicos que utilicemos para la medición.
Los beneficios que proporciona el BSC no derivan únicamente de la existencia de un conjunto de elementos coherentes para el mejor entendimiento y comunicación de la estrategia. El proceso de diseño de esos elementos, y su posterior evaluación, son también de gran provecho.

3. Características del Cuadro de Mando Integral
El desarrollo de un sistema integral de gerencia requiere un sistema balanceado de indicadores. El sistema reconoce la causa y efecto entre acciones y resultados. Reconoce que para deleitar a un inversionista, la empresa tiene que ser rentable. Reconoce que para hacer feliz al cliente necesita reducir o eliminar costos y mejorar la calidad del producto o servicio. Para mantener la ventaja competitiva a largo plazo, es necesario aprender y aprender y a innovar. El Balanced Scorecard tiene las siguiente características:
  • Articula los factores que impulsan la estrategia de la organización.
  • Le pone brazos y manos a la visión/misión.
  • Permite, de forma concreta, entender la razón de ser de la organización y sus metas.
  • Define en concreto las metas críticas para alcanzar el éxito.
  • Permite su difusión a los largo y ancho de la organización.
  • Define el desarrollo de indicadores de desempeño para cada meta.
  • Asegura que todos entienden los indicadores de las áreas y de la empresa en general.
  • Comunica cómo estos están interralacionados.
  • Conecta cada medida a un sistema de retroalimentación formal.
  • Integra la comunicación con la regularidad.
  • Facilita la revisión de metas y acciones correctivas que puedan ser necesarios.

 


1. Definición
     Es un proceso que incluye:
  • Analizar un código o descripción física de un sistemas de software
  • Recuperar el nivel de abstracción anterior, con la ayuda de herramientas automáticas.
Es importante recalcar que la ingeniería inversa no cambia lo que hace el software. Sirve para extraer una perspectiva determinada, como por ejemplo: Datos o Funciones.
Lo que hace la ingeniería inversa es transformar la representacion del software a una forma más fácil de entender y más clara.


2. Proceso de la Ingeniería Inversa

Image Hosted by ImageShack.us

3. Elementos
Nivel de Abstracción:
Se refiere a la sotisficación de la información recuperda del codigo fuente. Aquí señalo los niveles de abstracción según su orden de menor a mayor, y son los siguientes:
- Representación del diseño procedimental
- Información de la estructura de datos
- Modelos de flujos de datos y flujos de control
- Modelos entidad-relación.


Completitud:
Se refiere al nivel de detalle que se proporciona en el nivel de abstracción.


4. Tipos
Ingeniería Inversa de Datos:
Se usa para modificar una base de datos. También para migrar a un nuevo sistema de gestión de base de datos y también para crear el modelo de datos del sistema del software.
Toda esta información extraída son: entidades, relaciones, atributos, etc. y se crean modelos de datos, como por ejemplo: Diagramas E-R.


Ingeniería Inversa de Lógica:
Se usa para entender mejor la aplicación y regenerar el código. También para migrar la aplicación a un nuevo sistema operativo. Además genera/complementa la documentación y comprueba que el código cumple con las especificaciones del diseño.
Toda la información extraída son las especificaciones de diseño y se crean modelos de flujo de control, diagramas de diseño, documentos de especificación de diseño, etc.




5. Cuando Aplicar la Ingeniería Inversa
  • Cuando la tecnología es obsoleta.
  • Cuando se hace un cambio de lenguaje de programación , sistema operativo , SGBD.
  • Cuando no hay especificaciones de diseño.
  • Cuando no hay cumplimiento de las especificaciones de diseño.
  • Cuando se integran dos sistemas en uno.


6. Aplicación en GNU/Linux
De la misma forma, pueden fabricarse y distribuirse legalmente los productos genéricos creados a partir de la información obtenida de la ingeniería inversa, como es el caso de algunos proyectos de Software Libre apliamente conocidos.
El programa SAMBA es un claro ejemplo de ingeniería inversa, dado que permite a sistemas operativos UNIX compartir archivos con sistemas Microsoft Windows. El proyecto SAMBA tuvo que investigar información confidencial (no liberada al pública en general por Microsoft) sobre los aspectos técnicos relacionado con el sistema de Archivos de Windows.
sábado, 26 de septiembre de 2009

Software Libre

Software Libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software. De modo más preciso, se refiere a cuatro libertades de los usuarios del software:
  • La libertad de usar el programa, con cualquier propósito (libertad 0).
  • La libertad de estudiar cómo funciona el programa, y adaptarlo a tus necesidades (libertad 1). El acceso al código fuente es una condición previa para esto.
  • La libertad de distribuir copias, con lo que puedes ayudar a tu vecino (libertad 2).
  • La libertad de mejorar el programa y hacer públicas las mejoras a los demás, de modo que toda la comunidad se beneficie. (libertad 3). El acceso al código fuente es un requisito previo para esto.
Un programa es software libre si los usuarios tienen todas estas libertades. Así pues, deberías tener la libertad de distribuir copias, sea con o sin modificaciones, sea gratis o cobrando una cantidad por la distribución, a cualquiera y a cualquier lugar. El ser libre de hacer esto significa (entre otras cosas) que no tienes que pedir o pagar permisos.
También deberías tener la libertad de hacer modificaciones y utilizarlas de manera privada en tu trabajo u ocio, sin ni siquiera tener que anunciar que dichas modificaciones existen. Si publicas tus cambios, no tienes por qué avisar a nadie en particular, ni de ninguna manera en particular.
La libertad para usar un programa significa la libertad para cualquier persona u organización de usarlo en cualquier tipo de sistema informático, para cualquier clase de trabajo, y sin tener obligación de comunicárselo al desarrollador o a alguna otra entidad específica.
La libertad de distribuir copias debe incluir tanto las formas binarias o ejecutables del programa como su código fuente, sean versiones modificadas o sin modificar (distribuir programas de modo ejecutable es necesario para que los sistemas operativos libres sean fáciles de instalar). Está bien si no hay manera de producir un binario o ejecutable de un programa concreto (ya que algunos lenguajes no tienen esta capacidad), pero debes tener la libertad de distribuir estos formatos si encontraras o desarrollaras la manera de crearlos.
Para que las libertades de hacer modificaciones y de publicar versiones mejoradas tengan sentido, debes tener acceso al código fuente del programa. Por lo tanto, la posibilidad de acceder al código fuente es una condición necesaria para el software libre.
Para que estas libertades sean reales, deben ser irrevocables mientras no hagas nada incorrecto; si el desarrollador del software tiene el poder de revocar la licencia aunque no le hayas dado motivos, el software no es libre.
Son aceptables, sin embargo, ciertos tipos de reglas sobre la manera de distribuir software libre, mientras no entren en conflicto con las libertades centrales. Por ejemplo, copyleft es la regla que implica que, cuando se redistribuya el programa, no se pueden agregar restricciones para denegar a otras personas las libertades centrales. Esta regla no entra en conflicto con las libertades centrales, sino que más bien las protege.
'Software libre' no significa 'no comercial'. Un programa libre debe estar disponible para uso comercial, desarrollo comercial y distribución comercial. El desarrollo comercial del software libre ha dejado de ser inusual; el software comercial libre es muy importante.
Pero el software libre sin `copyleft' también existe. Creemos que hay razones importantes por las que es mejor usar 'copyleft', pero si tus programas son software libre sin ser 'copyleft', los podemos utilizar de todos modos.
Cuando se habla de software libre, es mejor evitar términos como: `regalar' o `gratis', porque esos téminos implican que lo importante es el precio, y no la libertad.

MAPA CONCEPTUAL SOBRE EL SOFTWARE LIBRE

Image Hosted by ImageShack.us


EL SOFTWARE LIBRE EN LAS ESCUELAS



TIPOS DE LICENCIAS

Licencia GLP:
Los programas de ordenador suelen distribuirse con licencias propietarias o cerradas.
Estas licencias son intransferibles y no exclusivas, es decir, no eres propietario del programa, sólo tienes derecho a usarlo en un ordenador o tantos como permita expresamente la licencia y no puedes modificar el programa ni distribuirlo.La licencia GPL o General Public License, desarrollada por la FSF o Free Software Foundation, es completamente diferente. Puedes instalar y usar un programa GPL en un ordenador o en tantos como te apetezca, sin limitación. También puedes modificar el programa para adaptarlo a lo que tu quieras que haga. Además, podrás distribuir el programa GPL tal cual o después de haberlo modificado.Puedes hacer esto, regalando el programa o vendiéndolo, tu única obligación, es facilitar siempre con el programa binario el código fuente, es decir, el programa de forma que pueda ser leido por un programador. Los programas propietarios o cerrados, solo se distribuyen en binario, listos para ejecutarse en el ordenador.

Un programa GPL es libre, es decir, no es \"shareware\" o \"freeware\", éstos también puedes conseguirlos en un cd-rom al comprar un revista o descargarlos de internet, pero no incluyen el código fuente y no tienes permiso para modificarlos, es decir, no son libres.Los programas distribuidos con licencia GPL tampoco son piratas, utiliza otra licencia para atacar barcos.Los programas GPL no tienen garantía, igual que casi todos los programas propietarios, no obstante, ofrecen más derechos a sus usuarios y su sistema abierto hace que los defectos sean detectados y depurados a gran velocidad con la ayuda de cientos de programadores a través de internet. Por otro lado, nada impide a una empresa garantizar el Software Libre junto a otros servicios que oferte.

Licencias estilo BSD  
Llamadas así porque se utilizan en gran cantidad de software distribuido junto a los sistemas operativos BSD. El autor, bajo tales licencias, mantiene la protección de copyright únicamente para la renuncia de garantía y para requerir la adecuada atribución de la autoría en trabajos derivados, pero permite la libre redistribución y modificación, incluso si dichos trabajos tienen propietario. Son muy permisivas, tanto que son fácilmente absorbidas al ser mezcladas con la licencia GNU GPL con quienes son compatibles. Puede argumentarse que esta licencia asegura “verdadero” software libre, en el sentido que el usuario tiene libertad ilimitada con respecto al software, y que puede decidir incluso redistribuirlo como no libre. Otras opiniones están orientadas a destacar que este tipo de licencia no contribuye al desarrollo de más software libre (normalmente utilizando la siguiente analogía: "una licencia BSD es más libre que una GPL si y sólo si se opina también que un país que permita la esclavitud es más libre que otro que no la permite").

Licencias estilo MPL y derivadas   
Esta licencia es de Software Libre y tiene un gran valor porque fue el instrumento que empleó Netscape Communications Corp. para liberar su Netscape Communicator 4.0 y empezar ese proyecto tan importante para el mundo del Software Libre: Mozilla. Se utilizan en gran cantidad de productos de software libre de uso cotidiano en todo tipo de sistemas operativos. La MPL es Software Libre y promueve eficazmente la colaboración evitando el efecto "viral" de la GPL (si usas código licenciado GPL, tu desarrollo final tiene que estar licenciado GPL). Desde un punto de vista del desarrollador la GPL presenta un inconveniente en este punto, y lamentablemente mucha gente se cierra en banda ante el uso de dicho código. No obstante la MPL no es tan excesivamente permisiva como las licencias tipo BSD. Estas licencias son denominadas de copyleft débil. La NPL (luego la MPL) fue la primera licencia nueva después de muchos años, que se encargaba de algunos puntos que no fueron tenidos en cuenta por las licencias BSD y GNU. En el espectro de las licencias de software libre se la puede considerar adyacente a la licencia estilo BSD, pero perfeccionada.

Copyleft  
Hay que hacer constar que el titular de los derechos del autor (copyright) de un software bajo licencia copyleft puede también realizar una versión modificada bajo su copyright original, y venderla bajo cualquier licencia que desee, además de distribuir la versión original como software libre. Esta técnica ha sido usada como un modelo de negocio por una serie de empresas que realizan software libre (por ejemplo MySQL ); esta práctica no restringe ninguno de los derechos otorgados a los usuarios de la versión copyleft. También podría retirar todas las licencias de software libre anteriormente otorgadas, pero esto obligaría a una indemnización a los titulares de las licencias en uso. En España, toda obra derivada está tan protegida como una original, siempre que la obra derivada parta de una autorización contractual con el autor. En el caso genérico de que el autor retire las licencias "copyleft", no afectaría de ningún modo a los productos derivados anteriores a esa retirada, ya que no tiene efecto retroactivo. En términos legales, el autor no tiene derecho a retirar el permiso de una licencia en vigencia. Si así sucediera, el conflicto entre las partes se resolvería en un pleito convencional.










jueves, 24 de septiembre de 2009

Estimaciones de un Proyecto de Software

Número de Iteraciones por Fase
Rational Software Corporation recomienda según el tipo de proyecto lo siguiente:
Proyecto
Inicial
Elaboración
Construcción
Implementación
Total
Bajo
0
1
1
1
3
Tipico
1
2
2
1
6
Alto
1
3
3
2
9
Muy Alto
2
3
3
2
10









Puntos de Casos de Uso
El punto de Casos de Uso (Use Case Point - UCP)  está determinada por la siguiente ecuación:
                                         UCP=(PA+PCU)*UUCP
PA=Ponderación de Actores
PCU=Poderación de los Casos de Uso
UUCP=Puntos de Casos de uso inajustable
             UUCP=TCF*EF

Ponderación de Actores

Como parte inicial de este proceso considere los actores del sistema
Por cada actor, determinar si es: simple, promedio o complejo.
Un actor simple es otro sistema con una interfaz de programación de aplicaciones definida.
Un actor promedio es otro tipo de sistema que interactua como medio a un protocolo de comunicación(por ejemplo tcpip) o es una persona que interactua como medio a interfaz basada en texto (como por ejemplo un antiguo terminal ASCII).
Un actor complejo es una persona que interactua como medio a una interfaz gráfica para usuario.

Tipo
Descripcion
Factor
Simple
Interfaz con otro sistema
1
Promedio
Interaccion o interfaz con un protocolo
2
Complejo
Interfaz gráfica
3







                   PA=PAS+PAP+PAC  

PAS= Nro. de actores simples*factor de ponderación simple
PAP=Nro. de actores promedio*factor de ponderación promedio
PAC=Nro. de actores complejos*factor de ponderación compleja


 Ponderación de los Casos de Uso (PCU)
Se realiza un proceso similar, pero esta vez el aspecto al analizar son los casos de uso.
Se debe determinar si es: simple, promedio o complejo. 
La base de esta decisión es el numero de transacciones en caso de uso, incluyendo casos de uso secundario.

Para este propósito una transacción es definido como un conjunto de actividades atómicas, que puede ser realizado en su totalidad o en parte de ello.
 


Tipo
Descripcion
Factor
Simple
Menos de 3 transacciones
5
Promedio
Entre 4 y 7 transacciones
10
Complejo
Mas de 7 transacciones
15







               PCU=PCUS+PCUP+PCUC

PUCS=Nro. de casos de usos simple * factor ponderado simple
PCUP=Nro. de casos de uso promedio * factor ponderado promedio
PCUP=Nro. de casos de uso complejos * factor ponderado complejo

Ponderaciones de Fatores Técnicos
Una vez calculado las ponderaciones anteriores, ya se tiene una idea de la complejidad de los casos y de las interfaces. Ahora se debe ponderar los puntos de casos de uso inajustables (UUCP), para factores como:
- La complejidad técnica del proyecto.
- El nivel de experiencia del equipo del proyecto
El rango de valores se asigna a cada factor y varia entre 0 y 5
                 - 0 = Irrelevante
                 - 1 = Mas o menos regular
                 - 2 = Regular
                 - 3 = Básico
                 - 4 = Muy Básico
                 - 5 = Esencial

Factor Técnico de Complejidad (TCF)
Tipo
Descripcion
Factor
T1
Sistema Distribuido
2
T2
Tiempo de respuesta o velocidad de rendimiento
1
T3
Eficiencia del usuario final(en línea)
1
T4
Procesamiento complejo interno
1
T5
Código que debe ser rehusado
1
T6
Facilidad de instalación
0.5
T7
Facilidad de uso
0.5
T8
Portabilidad
2
T9
Facilidad de cambio
1
T10
Concurrencia
1
T11
Incluir diferentes características especiales de seguridad
1
T12
Proveer directiva de acceso por nivel
1
T13
Facilidad de entrenamiento de usuarios
1


























         
TFactor=(Valor asignado) * (ponderación del factor)
                            TCF=0.6 + (0.01 * TFactor)

Factor Técnico del Nivel de Experiencia del Equipo (EF)
Tipo
Descripcion
Factor
F1
Familiridad con el proceso de desarrollo

1.5

F2
Experiencia con el desarrollo de aplicaciones

0.5

F3
Experiencia orientada a objetos

1
F4
Capacidad del líder del equipo

0.5

F5
Motivación



1
F6
Establecer los requerimientos

2
F7
Trabaja a tiempo parcial

-1
F8
Deficiencias en el manejo de lengiajes de programacion



-1


 

























EFactor=(Valor asignado) * (ponderación del factor)
                            EF=1.4 + (-0.03 * EFactor)


Estimaciones del Proyecto 
Para determinar el tiempo estimado del proyecto (TEP) por persona realiza lo siguiente:

                TEP=(((FactorHorasPesona)*UCP/48)+FC)/NPE 
FC=Factor de Contingencias
NPE= Nro. de personas del equipo

El factor de contingencias varía entre 3 a 4 semanas. En caso se tuviera una forma de calcular personalizado para este factor se puede aplicar.
Las unidades que resultan de este cálculo se semana por persona. Para determinar el numero de horas por persona, se tiene en cuenta lo siguiente:

-Promedio del valor asignado de F1 a F6=PVAF1F6
-Promedio del valor asignado de F7 a F8=PVAF7F8
SPVA=PVAF1F6+PVAF7F8 

Si SPVA es menor igual a 2, entonces :  20 horas/persona

Si SPVA esta entre 3 a 4, entonces :  28 horas/persona
Si SPVA es mayor que 5, entonces :  replantear el proyecto

- Para establecer el nro. de personas que participarán en el proyecto dependerá mucho de la necesidad que el usuario tenga de que el sistema esta implantado.
- Otro aspecto de tener en cuenta es buscar el punto de equilibrio entre el tiempo, el número de personas y el costo del mismo de tal manera que sea rentable la propuesta de desarrollo .
- Finalmente para determinar el costo aproximado del proyecto de multiplicará el numero de personas del equipo por el salario promedio del mercado para un especialista en desarrollo de software. 
 


 

 





 
Objetivos primarios en la realización del documento de definición del proyecto
  • Desarrollar un conjunto de expectativas comunes alrededor de las cuales se pueda realizar el proyecto.
  • Desarrollar un conjunto de documentos de referencia que se puedan utilizar para medir el proyecto.
  • Identificar las condiciones bajo las cuales se realizará el proyecto para incluir por definición el trabajo que se va a realizar, diferir y excluir del proyecto y asi también identificar el rol que interpretarán cada uno de sus miembros.
  • Describir el proyecto de tal modo que cualquier miembro del/ de los equipo(s) puedan comprender el principio básico que se aplicó en la realización del trabajo.
Documento de Definición del Proyecto
¿Qué es?
El Documento de Definición del Proyecto describe el plan general del proyecto. También establece los límites del mismo.
Eb Documento de Definición del Proyecto incluye su objetivo, su planteamiento de trabajo, su enfoque, sus hitos, sus recursos y sus roles. Este se debe desarrollar, revisar y aprobar. Una vez aprobada la Definición del Proyecto, el Gerente del proyecto se reúne con el equipo para llegar a un acuerdo en sus compromisos y productos a entregar. La Definición del Proyecto se publica en la base de datos apropiada del producto de trabajo.
¿Por qué?

La Definición del Proyecto documenta el propósito del proyecto. El Documento de Definición del Proyecto incluye el alcance proyectado, su enfoque, recursosm estándares de calidad, mediciones del proyecto, el aseguramiento de la calidad, preparación organizacional, plan de prueba, riesgos, recursos, plan de capacitación e hitos en la realización del trabajo.



 Componentes
El Documento de Definición del Proyecto contiene muchas secciones. El propósito de esta seccion es ayudarle a crear una definición para el proyecto e Implantacion del software.
El Documento de Definición del Proyecto incluye:

  • Resumen Ejecutivo
  • Introducción --> Misión, Objetivos, Beneficios, Historia y /o Antecedentes, Documentos Relacionados.
  • Alcance del Proyecto
  • Hitos del Proyecto
  • Presupuesto del Proyecto--> Introducción, Suspuestos del Proyecto, Detalles del Presupuesto
  • Supuestos/Dependencias del Proyecto--> Supuestos , Dependencias
  • Restricciones del Proyecto-->Cuadrícula de Dimensión del Proyecto, Detalles de las Restricciones
  • Riesgos del Proyecto-->Enfoque para resolver los riesgos identificados, Probabilidad de Aparición, Impacto Estimado del Proyecto, Valor
  • Organización del Proyecto--> Equipo del Proyecto, Departamentos/Terceros Participantes, Roles y Responsabilidades, Consejo de Control de Cambio
  • Enfoque del Proyecto--> Definición, Planeación, Implantación, Cierre, Administración del Cambio, Comunicación, Medición, Preparación Organizacional, Aseguramiento de la Calidad, Controlm Administración de Riesgos
  • Requerimientos del Sistema--> Requerimientos del Servidor de la Base de Datos, Requerimientos de PC del Cliente, Requerimientos de SCT y Terceros
  • Requerimientos del Desarrollador
  • Compatibilidad del Software.
  • Productos a Entregar del Proyecto
  • Criterios de Exito del Proyecto
  • Autorización para Proceder
  • Planes de Soporte--> Plan de Admisnitración de Configuración, Plan de Preparació Organizacional, Plan de Comunicación, Plan de Subordinación, Plan de Aseguramiento de la Calidad, Plan de Educación/Capacitación, Plan de Seguridad, Plan de Prueba y Aceptación, Plan de Instalación
1. Funciones Básicas

El SO es el responsable principalmete de 2 cosas:
  • Crear un entorno de máquina abstracta con varios componentes autónomos abstractos.
  • Coordinar el uso de los componentes segun las políticas del administrador de la máquina.
Con el paso de los años, las funciones de los SO han ido destilándose para satisfacer uno de los siguientes requerimiento básicos:
  • Gestión de dispositivos
  • Gestión de procesos, hilos y recursos
  • Gestión de memoria
  • Gestión de archivos.

Gestión de Dispositivos


El SO gestiona la asignación, aislamiento y compartición de los dispositivos según las políticas elegidas por el diseñador o el administrador del sistema.La gestión de dispositivos concierne a la forma en que se manejan los dispositivos genéricos.En un gestor de dispositivos hay partes dependientes del dispositivo (manejadores de dispositivos) y partes independientes del dispositivo (el software en el que se ejecuta el manejador dependiente del dispositivo.
Al repartir el diseño en componentes dependientes e independientes , la tarea de agregar un dispositivo a un computador se simplifica en gran medida. Primero, el diseñador del SO decide qué aspectos de la gestion del dispositivo son dependientes del dispositivo y qué partes pueden ser independientes de todos los dispositivos. La partes independientes se implementan, entonces, en la base del sistema operativo (funcionarán con todos los dispositivos). La partes dependientes ser implementan en el manejador de cada tipo de dispositivo. Esto significa que la parte independiente del gestor de dispositivo presenta llamadas para leer o escribir sobre cualquier dispositivo.

Gestión de Procesos, Hilos y Recursos
Los procesos y los hilos son las unidades básicas de computo definidas por los programadores y los recursos(abstractos) son los elementos del entorno de cómputo que necesita un proceso para que puedan ejecutarse sus hilos.
La gestion de procesos, hilos y recursos es responsable de la administracion del procesador y otros recursos abstractos. Coopera con le gestor de memoria para administrar la memoria primaria.

Gestión de Memoria

Coopera con el gestor de procesos para administrar la asignación y  utilización del recursos memoria primaria. El gestor de memoria asigna memoria a los procesos en competencia por ella segun cierta política y garantiza el aislamiento del recurso. Si el SO soporta memoria virtual, entonces esa parte del gestor de memoria coopera con los gestores de dispositivo y de archivos para gestionar la memoria y los dispositivos de paginación.

Gestion de Archivos
Los archivos son la abstracción de los dispositivos de almacenamiento. La información almacenada en la memoria principal será sobrescrita tan pronto como se desocupe la memoria de un proceso. Aquella información que haya que guardar deberá ser copiada en un dispositivos de almacenamiento persistente, como un CD-ROM o un disco magnético. El gestor de archivos implementa una abstracción interactuando con el gestor de dispositivos y el gestor de memoria. En los sistemas operativos modernos, el sistema de archivos puede estar distribuida sobre una red de máquinas de forma que un proceso de una de las máquinas  pueda leer y escribir archivos almacenados y su sistema local, así como archivos alojados en dispositivos de almacenamiento de otras máquinas accesibles mediante la red.
jueves, 10 de septiembre de 2009

Historia y Evolucion de los Sistemas Operativos


La evolución de los sistemas operativos es paralela a la evolución de las computadoras para las que fueron diseñadas a fin de controlarlas; por lo tanto está dividido en cuatro generaciones: 



1.   Primera Generación (1940-1955): tubos de vacío y tableros de conmutación
En esta primera generación se dio en una época de tecnología de tubos al vacío (bulbos) y computadoras del tamaño de salones de clase. Cada máquina era única en estructura y propósito. Había poca necesidad de un software estándar de sistema operativo, ya que el uso de cada computadora estaba restringido a unos cuantos profesionales, que trabajaban en aplicaciones matemáticas, científicas o militares, todos estos familiarizados con la idiosincrasia de su hardware.
Un programa típico incluía todas las instrucciones que la computadora necesitaba para llevar a cabo las tareas solicitadas. Daba instrucciones explicitas al lector de tarjetas (cuándo empezar, cómo interpretar los datos sobre tarjetas, cuándo terminar), al CPU (dónde y cuándo almacenar las instrucciones en la memoria, qué calcular, dónde encontrar los datos, dónde enviar la salida.) y al dispositivo de salida (cuándo empezar, cómo imprimir el producto terminado, cómo dar formato a la pagina y cuándo terminar).
En esa época los programadores operaban las máquinas desde la consola principal, todo eso era un proceso en el que ellos debían hacer todo para que puedan eliminar los errores de un programa; el programador detenía el procesador, leía el contenido de cada registro, efectuaba las correcciones en las localizaciones de memoria y reanudaba la operación.
Con el paso del tiempo, el hardware y el software de cómputo se hicieron más estándares y la ejecución de un programa re3queria menos pasos y conocimiento de los mecanismos internos de la computadora.
Se desarrollaron compiladores y ensambladores para traducir a código binario los comandos de los lenguajes de alto nivel que se estaban desarrollando.
Los sistemas operativos rudimentarios empezaron a tomar forma con la creación de macros, programas de videoteca, subrutinas, estándares y programas de utilería. Además incluían subrutinas de unidades de dispositivos- programas prescritos que estandarizaban la norma en que se utilizaban los dispositivos de entrada y salida.
Estos primeros programas tenían una desventaja importante, ya que estaban diseñados para utilizar sus recursos de manera conversadora, a costa de la comprensión. Esto significaba que muchas instrucciones utilizaban una lógica complicada, sólo comprensible para el programador original, por lo que era casi imposible que cualquier otra persona eliminara errores o cambiar el programa más tarde.




2.   Segunda Generación (1955-1965): transistores y sistemas por lotes
En los años sesenta aparecen los Sistemas Operativos para sistemas compartidos con:
-Multiprogramación: varios programas de usuarios se encuentran al mismo tiempo en el almacenamiento principal, cambiando el procesador rápidamente de un trabajo a otro.
- Multiprocesamiento: varios procesadores se utilizan en un mismo sistema para incrementar el poder de procesamiento.
Posteriormente aparece la independencia de dispositivo:
-      El programa del usuario especifica las características de los dispositivos que requieren los archivos.
-      El S. O. asigna los dispositivos correspondientes según los requerimientos y las disponibilidades.
Las máquinas se instalaban en cuartos de computadoras especialmente acondicionados con aire, con cuerpo de operadores profesionales para accionarlas. un programador primeramente escribiría el programa en papel ( en FORTRAN o en lenguaje Ensamblador ) y después lo perforaría en tarjetas. Después llevaría la pila de tarjetas al cuarto de introducción al sistema y la entregaría a uno de los operadores el cual iniciaba el proceso en la computadora, este proceso desperdiciaba mucho tiempo.
Dado el alto costo del equipo, no es sorprendente que las personas buscaran rápidamente maneras de reducir el tiempo perdido. La solución que generalmente se adoptaba era el sistema de lote. La idea implícita en este sistema era la de conjuntar un cajón lleno de trabajos en el cuarto de introducción al sistema y después leerlos en una cinta magnética mediante el uso de una computadora ( relativamente ) pequeña y poco costosa, como la IBM 1401.      
Después de casi una hora de recolectar un lote de trabajos, la cinta se volvía a enrollar y se llevaba al cuarto de maquinas. Después el operador cargaba un programa especial ( el ancestro del sistema operativo de hoy en día ) , el cual leía el primer trabajo y lo ejecutaba, la salida se escribía en una segunda cinta, en vez de imprimirse. Después de terminar cada trabajo, el sistema operativo leía automáticamente el siguiente trabajo de la cinta, y comenzaba a ejecutarlo.



3.   Tercera Generación (1965-1980): circuitos integrados y multiprogramación
Esta generación se identifica con el desarrollo de las computadoras S-360 de IBM.
Eran una serie de máquinas de software compatible, diferían solo en el precio y el rendimiento (memoria, velocidad del procesador, número de dispositivos de E/S permitidos, etc.). El software tenía que funcionar en sistemas con pocos o muchos periféricos, y en entornos comerciales y científicos y ser eficientes para los diferentes usos.
Crear un programa que satisficiera estos requisitos era casi imposible y el resultado fue un sistema operativo enorme, muy complejo que constaba de millones de líneas de lenguaje ensamblador escritos por miles de programadores y contenía miles y miles de errores. Estos problemas dieron origen a nuevas versiones que corregían los errores anteriores.
A pesar de su enorme tamaño y sus errores el OS/360 y los sistemas operativos similares a él construidos por otros fabricantes de computadoras lograron satisfacer a sus clientes en un grado razonable, y también popularizaron varias técnicas clave que no existían en la anterior generación. Una de las más relevantes era la multiprogramación.
Otra característica importante de los SO era la de poder leer trabajos de las tarjetas al disco, tan pronto como se llevaban al cuarto de las computadoras. El sistema operativo después de terminar de ejecutar un proceso podía cargar uno nuevo del disco en esa partición que había quedado libre, técnica denominada spooling, también utilizada para la salida.
El desperdicio de tiempo entra la presentación del trabajo y la obtención de las salidas dio como resultado el deseo de tiempo compartido, variante de la multiprogramación, en la que cada usuario tenía una terminal en línea.
Gracias a este progreso tecnológico (miniaturización de transistores, compiladores y sistemas operativos), el ámbito de uso se extendió debido principalmente a dos aspectos: la reducción de tamaño y precio de los ordenadores, que permitió el aumento del número de usuario que los podían comprar; y el aumento de potencia de computación, que permitió que un mismo ordenador pudiera ejecutar varias tareas.
Por lo tanto la generación se resume de la siguiente manera:
-      Difusión de la multiprogramación:
o   Partición de la memoria en porciones, con trabajos distintos en cada una de ellas.
o   Aprovechamiento del tiempo de espera consecuencia de operaciones de e / s, para utilizar la CPU para otros procesos.
-      Protección por hardware del contenido de cada partición de memoria.
-      Aparición de técnicas de spooling:
o   Operación simultánea y en línea de periféricos.
o   Almacenamiento de trabajos de entrada y de salida en dispositivos transitorios rápidos (discos), para disminuir el impacto de los periféricos más lentos.
-      Son sistemas de modos múltiples, es decir que deben soportar sistemas de propósitos generales; son grandes y complejos pero muy poderosos.
-      Interponen una capa de software entre el usuario y el hardware.
-      Aparecen los lenguajes de control de trabajos, necesarios para especificar el trabajo y los recursos requeridos.
-      Soportan timesharing (tiempo compartido), variante de la multiprogramación con usuarios conectados mediante terminales en línea, permitiendo la operación en modo interactivo o conversacional.
-      Aparecen los sistemas de tiempo real, que requieren tiempos de respuesta muy exigentes, especialmente para usos industriales o militares.
-      Se difunden las computadoras de rango medio.

 


4.   Cuarta Generación (1980 – Hasta la fecha): computadores personales
Debido a la evolución en las computadoras y a la disponibilidad de potencia de computo y a la potencia altamente interactiva, ésta era dio inicio a una gran innovación de software para PC, un software amigable con el usuario. Dos sistemas operativos dominaron inicialmente el ámbito de las PC y las estaciones de trabajo: MS-DOS de Microsoft y UNIX. El MS-DOS, dominó en las PC y el UNIX en las estaciones de trabajo y los servidores de red, pero su popularidad se centra sobre maquinas de arquitectura RISC (Reduced Instruction Set Computer) de alto rendimiento.
Otra tendencia que marco esta era fue el auge de las redes de ordenadores por lo tanto se necesitaba de sistemas operativos de red y sistemas operativos distribuidos.
Entonces esta generación tiene las siguientes características:
-      Aparición de software amigable con el usuario, destinado a usuarios no profesionales y con una interfase gráfica muy desarrollada.
-      Desarrollo de sistemas operativos de red y sistemas operativos distribuidos.
-      Sistemas operativos de red:
o   Los usuarios están conscientes de la existencia de varias computadoras conectadas.
o   Cada máquina ejecuta su propio S. O. local.
o   Son similares a los S. O. de un solo procesador pero con el agregado de:
§  Controlador de interfaz de la red y su software de bajo nivel.
§  Software para conexión y acceso a archivos remotos, etc.
-      Sistemas operativos distribuidos:
o   Aparece ante los usuarios como un S. O. de un solo procesador, aún cuando de soporte a varios procesadores.
o   Los usuarios no son conscientes del lugar donde se ejecutan sus programas o donde se encuentran sus archivos, ya que lo debe administrar el S. O. automáticamente.
o   Deben permitir que un programa se ejecute mediante varios procesadores a la vez, maximizando el paralelismo.
-      Aparición de emuladores de terminal para el acceso a equipos remotos desde computadoras personales (PC).
-      Gran énfasis en la seguridad, en especial por el desarrollo de los sistemas de comunicaciones de datos.
-      El S. O. crea un ambiente de trabajo según el concepto de máquina virtual, que lo aísla del funcionamiento interno de la máquina.
-      Proliferación de sistemas de bases de datos, accesibles mediante redes de comunicación.
Copyright © 2021 TRUJILLOSOFT