lunes, 8 de septiembre de 2008

Descubren falla de seguridad en Firefox 3


Esta vulnerabilidad permite que un hacker tome control del PC del usuario de forma remota. Ya se está corrigiendo y no se ha reportado ningún caso.

La nueva versión del navegador Firefox tuvo una rápida acogida en el mercado: en solo 24 horas la descargaron 8,3 millones de personas (30.000 de ellas desde Colombia). Sin embargo, este programa gratuito también fue rápido para presentar una falla de seguridad seria.

Según el sitio web de tecnología ZDNet, un investigador cuyo nombre no se reveló descubrió una falla crítica en Firefox 3 que permite que un hacker tome control del PC del usuario de forma remota.

La fuente de ZDNet es TippingPoint's Zero Day Initiative (ZDI), una compañía que compra los derechos exclusivos de la información sobre vulnerabilidades de software. De acuerdo con ZDI, el error descubierto también afecta versiones tempranas de Firefox 2.0.

ZDNet dice que los detalles técnicos de la falla no se revelarán, al menos no mientras el equipo de la Fundación Mozilla, responsable del desarrollo de Firefox, corrige el error.

Es importante aclarar que la falla existe, pero no se ha reportado un solo caso de un hacker que la haya aprovechado.

martes, 6 de mayo de 2008

Almacenarán 1.000 terabytes en un CD

Almacenarán 1.000 terabytes en un CD
Equivalente a 200.000 DVD


Científicos de nanotecnologías consideran viable poder almacenar el equivalente a 200.000 DVD en un solo DVD. Samsung anuncia que tales discos estarán disponibles comercialmente dentro de 10 años.

El CD es un soporte de almacenamiento que se acerca a la obsolescencia. Sin embargo, la situación podría ser revertida.


El catedrático Min Gu de la Universidad Swinburne, en Melbourne, se dedica las investigaciones en el ámbito de la nanotecnología. Gu está abocado a un proyecto de 5 años de duración orientado al tema del almacenamiento en CD.

Gu aspira a optimizar la tecnología de almacenamiento en discos del tamaño de los actuales CD. El equipo anuncia una solución que permitirá almacenar en cada disco asombrosos 1.000 terabytes. Esta capacidad equivale a 20.000 veces la capacidad de un disco Blu-ray de alta definición, o 200.000 la de un DVD corriente.

Uno de los métodos descritos por el científico consiste en almacenar los datos en varias capas en los discos. Según indica, la tecnología DVD solo usa cuatro capas, mientras que su laboratorio ya ha llegado a las 52 capas y espera alcanzar las 200 o 300.

Samsung ya ha suscrito un acuerdo con los investigadores para la producción y distribución comercial de los discos. Según Samsung, los primeros modelos estarán disponibles en un horizonte de 10 años aunque actualmente ya existen un dispositivo de Verbatin BLU RAY de 25 GB en el mercado.

tomado de goldsystem.com

martes, 29 de enero de 2008

MySpace y Google contra Facebook y Microsoft

El gigante de las redes sociales MySpace se incorpora a la iniciativa de desarrolladores Google OpenSocial.

Con ello, MySpace se incorpora a otros servicios de redes sociales como Friendster, LinkedIn, y otros. En conjunto, se disponen a competir con Facebook y Microsoft.

En mayo pasado, Facebook comenzó a despegar definitivamente, tanto en términos de número de usuarios como en prestigio en el mercado. El crecimiento de la comunidad virtual se aceleró fuertemente después del lanzamiento de su plataforma abierta para desarrolladores, que implicó que programadores independientes comenzaron a crear diversas aplicaciones vinculadas al servicio.

MySpace continúa siendo el sitio más visitado de Estados Unidos. Se espera que los desarrolladores podrán trabajar con la red OpenSocial creando aplicaciones que funcionen independientemente de los servicios vinculados a ella.

Tomado de goldsystem.com.sv

miércoles, 24 de octubre de 2007

Nueva tecnología posibilita los discos duros de 1 Terabyte

Hitachi ha creado el cabezal de lectura más minúsculo existente para discos duros. La tecnología hace posible la producción de discos duros para máquinas de escritorio con capacidad de almacenamiento de 4 terabyte.

La compañía japonesa Hitachi anuncia un hito en el ámbito de la tecnología para discos duros. Hitachi ha creado el cabezal de lectura más pequeño de la historia para discos duros.
La nueva tecnología hace posible reducir la distancia entre los surcos de datos a 30-40 nanómetros; esta distancia es la mitad de la alcanzada en los modelos más avanzados existentes, e implica que puede haber espacio para muchos más surcos en el mismo disco duro.
Los nuevos cabezales CPP-GMR hacen posible aumentar en 400 % la capacidad de almacenamiento de los discos duros en relación con los modelos actuales más avanzados. De esa forma, la capacidad de almacenamiento puede ser incrementada a 500 y hasta 1000 gigabit por pulgada cuadrada; en el modelo top de Hitachi, con cabezal de lectura TMR, que puede ser comprado actualmente, la densidad de datos alcanza los 148 Gbit.
Hitachi anuncia que los discos duros para máquinas de escritorio con capacidad de almacenamiento de 4 terabyte y discos duros para computadoras portátiles con capacidad de 1 terabyte estarán en el mercado en 2011. Actualmente, el mayor disco duro de 3,5 pulgadas tiene una capacidad de 1 terabyte.

Fuente: Cnet.
Tomado de goldsystem

viernes, 31 de agosto de 2007

Guia

GESTIÓN DE PROYECTOS DE SOFTWARE

La gestión de proyectos busca las técnicas necesarias para planificar, organizar, supervisar y controlar proyectos de software. El objetivo de gestionar proyectos es tener un producto de alta calidad.

La gestión de un proyecto de software se centra en tres partes como son:
- Personal
- Problema
- Proceso

- Personal: El factor humano es importante en la ingeniería de software. Es importante tener la capacidad de gestión del personal con el fin de aumentar la preparación en la organización del software; ayudando a atraer, motivar y retener el talento necesario para mejorar su capacidad de desarrollo de software.

En toda organización que alcanza la madurez en el área de gestión de personal tiene una mayor probabilidad de implementar unas eficaces prácticas de ingeniería de software, esto guía a que las organizaciones tengan un proceso de software maduro.

- El problema: Se establecen los objetivos y se deben considerar soluciones alternativas e identificar las dificultades técnicas y de gestión. Con esta información es posible definir unas estimaciones razonables del costo, una valoración efectiva del riesgo, una subdivisión realista de las tareas del proyecto o una planificación del proyecto asequible que proporcione una indicación fiable del progreso.

El desarrollador de software y el cliente deben reunirse para definir los objetivos del proyecto. Los objetivos identifican las metas generales del proyecto sin considerar cómo se conseguirán.

Se identifican los datos primarios, funciones y comportamientos que caracterizan el problema, intenta abordar estas características de una manera cuantitativa. También se consideran las soluciones alternativas, estas permiten a los gestores y a los profesionales seleccionar el mejor enfoque.

- Proceso: En el proceso de software proporciona la estructura desde la que se puede establecer un detallado plan para el desarrollo del software. Las actividades estructurales se pueden aplicar a todos los proyectos de software, sin tener en cuenta su tamaño o complejidad, además permiten a las actividades estructurales adaptarse a las características del proyecto de software y a los requisitos del equipo del proyecto.


Personal

El proceso de software lo componen participantes que pueden clasificarse en cinco categorías:

- Gestores superiores: definen los aspectos de negocios que a menudo tienen una significativa influencia en el proyecto

- Gestores técnicos del proyecto: deben planificar, organizar y controlar a los profesionales que realizan el trabajo del software.

- Profesionales: proporcionan las capacidades técnicas para la ingeniería de un producto

- Clientes: especifica los requisitos para la ingeniería de software.

- Usuarios finales: interaccionan con el software una vez que se ha entregado para la producción.


Para gestionar un proyecto de software, se requiere que el jefe del equipo humano tenga motivación, organización, ideas o innovación. El gestor del proyecto debe concentrarse en entender el problema a resolver, gestionando el flujo de ideas. Existen otras características como dotes de gestión, incentivo de los logros, espíritu de equipo.

Hay muchos motivos por los que los proyectos de software pueden tener problemas como son:
- La escala del desarrollo es grande, esto conduce a tener complejidades y dificultades para coordinar a los miembros del equipo.
- La incertidumbre se dan cambios continuos que impactan en el equipo del proyecto
- La interoperatividad es una característica de los sistemas

El software nuevo debe comunicarse con el anterior y ajustarse a las limitaciones predefinidas impuestas por el sistema. Los miembros de un equipo de ingeniería del software comparten ideas, piden ayudas a medida que surgen los problemas e interactúan los unos con los otros.


Problema
Busca un análisis detallado de los requisitos del software proporcionaría la información necesaria para las estimaciones, claro esta que puede llevar semanas o meses. Se debe examinar el problema al inicio de proyecto, establecer el problema y delimitándolo.
La primera gestión un proyecto de software es determinar el ámbito del software. Se define el contexto, que limitaciones se imponen; el objetivo de la información, que datos se obtienen del software; y la función, que realiza el software para transformar la información.

Para la descomposición del problema tiende a aplicarse la estrategia de divide y vencerás, cuando se enfrenta a problemas complejos, es decir el problema se parte en problemas más pequeños y con esto se busca que sean manejables.


Proceso

Las fases que caracterizan el proceso de software se encuentran la definición, el desarrollo y el mantenimiento. El gestor del proyecto decide qué modelo es el más adecuado para desarrollar el proyecto, luego debe definir un plan preliminar, para luego continuar con la descomposición del proceso. Se debe tener en cuenta la maduración del problema, descomposición del proceso. Es importante invertir tiempo al principio del proyecto para tener un plan con buenas bases que se evidencian durante el desarrollo del proyecto y llevar el control de calidad de dicho proyecto.

viernes, 24 de agosto de 2007

Solución de preguntas

CUÁLES SON LAS FASES PARA EL DISEÑO DE UN SOFTWARE

Etapas en el ciclo
Una descripción de etapas con que podemos contar a lo largo del ciclo de vida del software; una vez delimitadas en cierta manera las etapas, habrá que ver la forma en que estas se afrontan (existen diversos modelos de ciclo de vida, y la elección de un cierto modelo para un determinado tipo de proyecto puede ser de vital importancia; el orden de las etapas es un factor importante, por ejemplo tener una etapa de validación al final del proyecto, tal como sugiere el modelo en cascada o lineal, puede implicar serios problemas sobre la gestión de determinados proyectos; hay que tener en cuenta que retomar etapas previas es costoso, y cuanto más tarde se haga más costoso resultará, por tanto el hecho de contar con una etapa de validación tardía tiene su riesgo y, por su situación en el ciclo, un posible tiempo de reacción mínimo en caso de tener que retornar a fases previas).

▲ Necesidades
Esta etapa tiene como objetivo la consecución de un primer documento en que queden reflejados los requerimientos y funcionalidades que ofrecerá al usuario del sistema a desarrollar (qué, y no cómo, se va a desarrollar).
Dado que normalmente se trata de necesidades del cliente para el que se creará la aplicación, el documento resultante suele tener como origen una serie de entrevistas cliente-proveedor situadas en el contexto de una relación comercial, siendo que debe ser comprendido por ambas.

▲ Especificaciones
Ahora se trata de formalizar los requerimientos; el documento obtenido en la etapa anterior se tomará como punto de partida para esta fase. Su contenido es aún insuficiente y lleno de imprecisiones que será necesario completar y depurar. Por medio de esta etapa se obtendrá un nuevo documento que definirá con más precisión el sistema requerido por el cliente (el empleo de los casos de uso).

Lo más normal será que no resulte posible obtener una buena especificación del sistema a la primera; serán necesarias sucesivas versiones del documento en que irán quedando reflejada la evolución de las necesidades del cliente.

▲ Análisis
Es necesario determinar que elementos intervienen en el sistema a desarrollar, así como su estructura, relaciones, evolución en el tiempo, detalle de sus funcionalidades, que van a dar una descripción clara de qué sistema vamos a construir, qué funcionalidades va a aportar y qué comportamiento va a tener. Para ello se enfocará el sistema desde tres puntos de vista relacionados pero diferentes:
- Funcional
- Estático
- Dinámico

▲ Diseño
Teniendo claro que debe hacer el sistema, determinaremos como se va hacer. ¿Cómo debe ser construido el sistema?; aquí se definirán en detalle entidades y relaciones de las bases de datos, se pasará de casos de uso esenciales a su definición como casos expandidos reales, se seleccionará el lenguaje más adecuado, el Sistema Gestor de Bases de Datos a utilizar en su caso, librerías, configuraciones hardware, redes, etc.

▲ Implementación
Se empieza a codificar algoritmos y estructuras de datos, definidos en las etapas anteriores, en el correspondiente lenguaje de programación y/o para un determinado sistema gestor de bases de datos.

▲ Pruebas
El objetivo de estas pruebas es garantizar que el sistema ha sido desarrollado correctamente, sin errores de diseño y/o programación. Es conveniente que sean planteadas al menos tanto a nivel de cada módulo (aislado del resto), como de integración del sistema (según sea la naturaleza del proyecto en cuestión se podrán tener en cuenta pruebas adicionales, ejemplo rendimiento).

▲ Validación
Esta etapa tiene como objetivo la verificación de que el sistema desarrollado cumple con los requisitos expresados inicialmente por el cliente y que han dado lugar al presente proyecto (para esta fase también es interesante contar con los use cases, generados a través de las correspondientes fases previas, que servirán de guía para la verificación de que el sistema cumple con lo descrito por estos).

▲ Mantenimiento y evolución
Finalmente la aplicación resultante se encuentra ya en fase de producción (en funcionamiento para el cliente, cumpliendo los objetivos para los que ha sido creada). A partir de este momento se entra en la etapa de mantenimiento, que supondrá ya pequeñas operaciones tanto de corrección como de mejora de la aplicación (por ejemplo mejora del rendimiento), así como otras de mayor importancia, fruto de la propia evolución. Ejemplo: nuevas opciones para el usuario debidas a nuevas operaciones contempladas para el producto.

La mayoría de las veces en que se desarrolla una nueva aplicación, se piensa solamente en un ciclo de vida para su creación, olvidando la posibilidad de que esta deba sufrir modificaciones futuras (que tendrán que producirse con casi completa seguridad para la mayor parte de los casos).



Fase de definición (¿qué hacer?)
- Estudio de viabilidad.
- Conocer los requisitos que debe satisfacer el sistema (funciones y limitaciones de contexto).
- Asegurar que los requisitos son alcanzables.
- Formalizar el acuerdo con los usuarios.
- Realizar una planificación detallada.

Fase de diseño (¿cómo hacerlo? Soluciones en coste, tiempo y calidad)
- Identificar soluciones tecnológicas para cada una de las funciones del sistema.
- Asignar recursos materiales para cada una de las funciones.
- Proponer (identificar y seleccionar) subcontratas.
- Establecer métodos de validación del diseño.
- Ajustar las especificaciones del producto.

Fase de construcción
- Generar el producto o servicio pretendido con el proyecto.
- Integrar los elementos subcontratados o adquiridos externamente.
- Validar que el producto obtenido satisface los requisitos de diseño previamente definidos y realizar, si es necesario, los ajustes necesarios en dicho diseño para corregir posibles lagunas, errores o inconsistencias.

Fase de mantenimiento y operación
- Operación: asegurar que el uso del proyecto es el pretendido.
- Mantenimiento (nos referimos a un mantenimiento no habitual, es decir, aquel que no se limita a reparar averías o desgastes habituales -este es el caso del mantenimiento en productos software, ya que en un programa no cabe hablar de averías o de desgaste).


FASES DEL CICLO DE VIDA

- Ciclo Cascada
- Ciclo Prototipo
- Ciclo Espiral
- Ciclo Desarrollo incremental
- Ciclo Evolutivo
- Ciclo Modelo basado en reutilización


ASPECTOS QUE SE DEBEN TENER EN CUENTA PARA LA SELECCIÓN CORRECTA DEL MODELO DE CICLO DE VIDA

- El alcance del ciclo depende de hasta dónde llegue el proyecto correspondiente. Un proyecto puede comprender un simple estudio de viabilidad del desarrollo de un producto, o su desarrollo completo o, llevando la cosa al extremo, toda la historia del producto con su desarrollo, fabricación, y modificaciones posteriores hasta su retirada del mercado.

- Las características (contenidos) de las fases en que dividen el ciclo. Esto puede depender del propio tema al que se refiere el proyecto (no son lo mismo las tareas que deben realizarse para proyectar un avión que un puente), o de la organización (interés de reflejar en la división en fases aspectos de la división interna o externa del trabajo).


CUÁL ES LA FUNCIONALIDAD DE LA INGENIERÍA DE SOFTWARE Y QUIENES SON LOS QUE SE BENEFICIAN DIRECTAMENTE

La Ingeniería de Software es la rama de la ingeniería que aplica los principios de la ciencia de la computación y las matemáticas para lograr soluciones costo-efectivas a los problemas de desarrollo de software, es decir, permite elaborar consistentemente productos correctos, utilizables y costo-efectivos.
El proceso de ingeniería de software se define como un conjunto de etapas parcialmente ordenadas con la intención de lograr un objetivo, en este caso, la obtención de un producto de software de calidad.

El proceso de desarrollo de software es aquel en que las necesidades del usuario son traducidas en requerimientos de software, estos requerimientos transformados en diseño y el diseño implementado en código, el código es probado, documentado y certificado para su uso operativo. Concretamente define quién está haciendo qué, cuándo hacerlo y cómo alcanzar un cierto objetivo.

Registro Visitas