miércoles, 9 de enero de 2013

WebApps



WEBAPPS
MÉTRICAS  ESTÉTICAS (DISEÑO GRÁFICOS).
Por su naturaleza, el diseño estético se apoya en el juicio cualitativo y por general no es sensible a la medición ni a las métricas. Sin embargo Ivory et al. (ivo01) proponen un conjunto de medidas que pueden ser utiles para valorar el impacto de diseño estético.
MÉTRICAS DE CONTENIDOS.
Las métricas en esta categoría se enfoca en la complejidad del contenido y en los grupos de objetos de contenido que se organiza en paginas (Men01)-
MÉTRICAS DE NAVEGACIÓN.
Las métricas en esta categoría abordan la complejidad del flujo de navegación (Men01) En general, son útiles solo para aplicaciones web estáticas, y no incluyen vínculos y paginas generados de manera dinámica.
Usar un subconjunto de las métricas sugeridas pueden servir para derivar relaciones empíricas que permiten a un equipo de desarrollo de webapps valorar la calidad técnica y predecir el esfuerzo con base en las estimaciones de complejidad estimadas
MÉTRICAS TÉCNICAS PARA WEBAPPS.
Objetivo.- Auxiliar a las ingenierías web a desarrollar métricas webapps significativas que proporcionen comprensión acerca de la cualidad global de una aplicación.
Mecánicas.- la mecánica de las herramientas varia
Herramientas representativas.- Netmechanic Tools, desarrollada por netmechanic ( www.netmechanic.com) , es una colección de herramientas que ayudan a mejorar el desempeño de sitios web y que se enfocan en conflictos específicos de implementación



Portafolio Ingeniería de Software





¿Que es la Ingeniería de Software??


Es una disciplina o área de la informática o ciencias de la computación, que ofrece metodo y tecnicas para desarrollar y mantener software de calidad que resuelven problemas de todo tipo. Hoy día es cada vez más frecuente la consideración de la Ingeniería del Software como un nueva área de la ingeniería, y el Ingeniero del Software comienza a ser una profesión implantada en el mundo laboral internacional, con derechos, deberes y responsabilidades que cumplir, junto a una, y reconocida consideración social en el mundo empresarial y, por suerte, para esas personas con brillante futuro.




El Producto




Que es un producto ?
Un producto es cualquier cosa que se puede ofrecer a un mercado para satisfacer un deseo o una necesidad

Quien lo hace?
un equipo de programadores,analistas,ingeniero,diseñadores entre otros.

Porque es importante?
porque nace de una necesidad

Cuáles son los pasos?
  • Planificar
  • Ciclo de vida
  • Desarrollar
  • Darle soporte


Cual es el producto obtenido?
software capaz de satisfacer los requerimientos previamente mencionados

La Evolución del Software


Quien es el gestor del software?
el líder,el que organiza al equipo
el producto cumple dos funciones :
  • producto
  • vehículo para entregar


Democratización del conocimiento?

La comunicación científica es importante, porque de esta forma el conocimiento se registra,   acumula y dispersa. Nos explica que gracias a la sociedad de la información y mediante sus tecnologías,   la difusión de conocimiento científico a crecido, pero algo aún más importante es que ha creado redes de conocimiento, en las que el objetivo no solo es la difusión, sino acceder y conocer los aportes, para someter a revisión y crítica los trabajos hay publicados.

Programadores

Un programador es aquella persona que escribe, depura y mantiene el código fuente de un programa informático, es decir, del conjunto de instrucciones que ejecuta el hardware de una computadora para realizar una tarea determinada. La programación es una de las principales disciplinas dentro de la informática.




Hardware Vs Software

Diferencias:
  • El software no se estropea se deteriora.
  • El software son programas que la computadora usa para realizar sus tareas. El hardware son las partes físicas de la computadora, incluye el teclado, el mouse, el procesador, el disco duro.




Aplicaciones del Software


Aplicaciones del software?

Software de sistemas:
Consiste en programas informáticos que sirven para controlar e interactuar con el sistema operativo, proporcionando control sobre el hardware y dando soporte a otros programas

Software de tiempo real:
Es un sistema cuyo funcionamiento se degrada si los resultados no se producen de acuerdo   con los requerimientos   temporales especificados.

Software de gestión:
El proceso de la información constituye la mayoría de las áreas de aplicación del software

Software de ingeniería y científico: 
Está caracterizado por los algoritmos de manejo de números

Software empotrado:
Se utiliza para controlar productos y sistemas de los mercados industriales y de consumo,ejecuta funciones limitadas

Software de computadoras personales:
El mercado de software de computadoras personales han germinado en las pasadas dos décadas.
aplicaciones:
  • Hoja de cálculo
  • Multimedia
  • Entretenimiento
  • Gestión de bases de datos
  • Procesamientos de textos


Software basados en la Web:La páginas web buscadas por un explorador son software que incorpora instrucciones ejecutables(HTML,Java).

Software de inteligencia artificial:Hace uso de un algoritmos no numéricos para resolver problemas complejos para los que no son adecuados el calculo o analisis directo.



Tipos de Software

Software de Aplicación: 
Aquí se incluyen todos aquellos programas que permiten al usuario realizar una o varias tareas específicas. Aquí se encuentran aquellos programas que los individuos usan de manera cotidiana como: procesadores de texto, hojas de cálculo, editores, telecomunicaciones, software de cálculo numérico y simbólico, videojuegos, entre otros.

Software de Programación: 
Son aquellas herramientas que un programador utiliza para poder desarrollar programas informáticos. Para esto, el programador se vale de distintos lenguajes de programación. Como ejemplo se pueden tomar compiladores, programas de diseño asistido por computador, paquetes integrados, editores de texto, enlazadores, depuradores, intérpretes, entre otros.

Software de Sistema: 
Es aquel que permite a los usuarios interactuar con el sistema operativo así como también controlarlo. Este sistema está compuesto por una serie de programas que tienen como objetivo administrar los recursos del hardware y, al mismo tiempo, le otorgan al usuario una interfaz. El sistema operativo permite facilitar la utilización del ordenador a sus usuarios ya que es el que le da la posibilidad de asignar y administrar los recursos del sistema, como ejemplo de esta clase de software se puede mencionar a Windows, Linux y Mac OS X, entre otros. Además de los sistemas operativos, dentro del software de sistema se ubican las herramientas de diagnóstico, los servidores, las utilidades, los controladores de dispositivos y las herramientas de corrección y optimización.


Software según su Licencia

Software libre: 
Es un software que, para cualquier propósito, se puede usar, copiar, distribuir y modificar libremente, es decir, es un software que incluye archivos fuentes.
  
Software semi-libre:
Es un software que posee las libertades del software libre pero sólo se puede usar sin  fines  de lucro, por lo cual lo cataloga como software no libre.

Software freeware: 
Es un software que  se puede usar, copiar y distribuir libremente pero que no incluye archivos fuentes. Para la FSF, el software freeware no es software libre, aunque tampoco lo califica como semi-libre ni propietario. El software freeware se asemeja más al software libre  porque no se debe pagar para adquirirlo o utilizarlo.

Software de dominio público: 
(Public Domain Software), es un software libre que tiene como particularidad la ausencia de Copyright, es decir, es libre
sin derechos de autor. En este caso los autores renuncian a todos los derechos que les puedan corresponder.

Software shareware: 
Es un tipo particular de software propietario, sin embargo, la diferencia está en su forma de distribución y  los efectos que su uso ocasiona.
El software shareware se caracteriza porque es de libre distribución o copia, de tal forma que se puede usar, contando con el permiso del autor, durante un periodo limitado de tiempo, después de esto se debe pagar para continuar utilizándolo, aunque la obligación es únicamente de tipo moral ya que los autores entregan los programas confiando en la honestidad de los usuarios.                                                                      

Software GNU:
(GNU General Public License GPL) es la licencia que acompaña los paquetes distribuidos por el Proyecto GNU, más una gran variedad de software que incluye el núcleo del sistema operativo Linux.                                                         

Software de libre no protegido con copyleft:
El software libre no protegido con copyleft viene desde el autor con autorización para redistribuir y modificar así como para añadirle restricciones adicionales. Si un programa es libre pero no protegido con copyleft, entonces algunas copias o versiones modificadas pueden no ser libres completamente.

Licencia de software de Copyleft:
El software protegido con copyleft es software libre cuyos términos de distribución no permiten a los redistribuidores agregar ninguna restricción adicional cuando éstos redistribuyen o modifican el software. Esto significa que cada copia del software, aun si ha sido modificado, debe ser software libre. 

Software de fuente abierta:sus términos de distribución cumplen los criterios de:

  • Distribución libre
  • Inclusión del código fuente
  • Permitir modificaciones y trabajos derivados en las mismas condiciones que el software original
  • Integridad del código fuente del autor, pudiendo requerir que los trabajos derivados tengan distinto nombre o versión
  • No discriminación a personas o grupos
  • Sin uso restringido a campo de actividad



Software privativo: aquél cuyo uso, redistribución o modificación están prohibidos o necesitan una autorización.




Proceso
Un proceso es un conjunto de actividades o eventos (coordinados u organizados) que se realizan o suceden bajo ciertas circunstancias con un fin determinado. Este término tiene significados diferentes según la rama de la ciencia o la técnica en que se utilice.

Marco
es una estructura conceptual y tecnológica de soporte definido, normalmente con artefactos o módulos de software concretos, con base a la cual otro proyecto de software puede ser más fácilmente organizado y desarrollado.

Herramienta
es un objeto con el fin de facilitar la realización de una tarea  que requiere de una aplicación correcta (siempre y cuando hablemos de herramienta material). Existen herramientas didácticas que sirven para realizar un proceso.

Etapas

  • Análisis de requerimientos
  • Especificación
  • Diseño y Arquitectura
  • Programación
  • Pruebas
  • Mantenimientos



Modelos de ciclos de vida del software

Un modelo de ciclo de vida define el estado de las fases a través de las cuales se mueve un proyecto de desarrollo de software.
El primer ciclo de vida del software, "Cascada", fue definido por Winston Royce a fines del 70.

Un modelo de ciclo de vida de software es una vista de las actividades que ocurren durante el desarrollo de software, intenta determinar el orden de las etapas involucradas y los criterios de transición asociadas entre estas etapas.

Modelo Cascada:
Este es el más básico de todos los modelos, y sirve como bloque de construcción para los demás modelos de ciclo de vida. La visión del modelo cascada del desarrollo de software es muy simple; dice que el desarrollo de software puede ser a través de una secuencia simple de fases. Cada fase tiene un conjunto de metas bien definidas, y las actividades dentro de una fase contribuye a la satisfacción de metas de esa fase o quizás a una subsecuencia de metas de la fase.




Modelo De Desarrollo:
Los riesgos asociados con el desarrollo de sistemas largos y complejos son enormes. Una forma de reducir los riesgos es construir sólo una parte del sistema, reservando otros aspectos para niveles posteriores. El desarrollo es el proceso de construcción siempre incrementando subconjuntos de requerimientos del sistema.







Modelo Espiral
El modelo espiral de los procesos software es un modelo del ciclo de meta-vida. En este modelo, el esfuerzo de desarrollo es iterativo. Tan pronto como uno completa un esfuerzo de desarrollo, otro comienza. Además, en cada desarrollo ejecutado, puedes seguir estos cuatros pasos:
  • Determinar qué quieres lograr.
  • Determinar las rutas alternativas que puedes tomar para lograr estas metas.
  • Seguir la alternativa seleccionada en el paso 2.
  • Establecer qué tienes terminado





Modelo Concurrente: 
Como el modelo espiral, el modelo concurrente provee una meta-descripción del proceso software. Mientras que la contribución primaria del modelo espiral es en realidad que esas actividades del software ocurren repetidamente, la contribución del modelo concurrente es su capacidad de describir las múltiples actividades del software ocurriendo simultáneamente.
Esto no sorprende a nadie que ha estado involucrado con las diversas actividades que ocurren en algún tiempo del proceso de desarrollo de software.


Gestión de Proyectos





La gestión de proyectos es el proceso por el cual se planifica, dirige y controla el desarrollo de un sistema aceptable con un costo mínimo y dentro de un período de tiempo especifico.

Causas de proyectos fallidos por la gestión de proyectos.

Dentro de las principales causas por las que puede fallar un proyecto, se encuentra el hecho de que los analistas no respetan o no conocen bien las herramientas y las técnicas del análisis y diseño de sistemas, además de esto puede haber una mala gestión y dirección del proyecto. Además existen una serie de factores que pueden hacer que el sistema sea mal evaluado, entre estas están:

  • Necesidades no satisfechas o no identificadas
  •  Cambio no controlado del ámbito del proyecto
  • Exceso de costo
  •  Retrasos en la entrega


Aunque estos factores pueden influir de manera muy trascendente en la falla de un proyecto, generalmente están acompañados de otro tipo de falencias.
Pero ¿Cuáles de estos errores de gestión de proyectos ocasionan que no se cumplan los requisitos, que se sobrepase los tiempos de entrega o se aumenten repetidas veces los costos.

La respuesta a esta pregunta puede ser hallada en dos fuentes principalmente, deficiencias en las herramientas y las técnicas de análisis del diseño de sistemas o la mala gestión de los proyectos.

En el caso de las necesidades no satisfechas o no identificadas, el error puede aparecer debido a que se omiten datos durante el desarrollo del proyecto, es por esto que es muy importante no saltar ninguna etapa del ciclo de vida del desarrollo de sistemas.




martes, 8 de enero de 2013

Metricas de Producto



METRICAS DEL PRODUCTO

La métrica es un elemento clave para  entender mejor los atributos de los modelos a crear, y estos mismos se pueden valorar la calidad de los productos.
En Ingeniería de Software estas no se rigen a las leyes de las cuantitativas de la física, puesto que estas son indirectas.

Esto, hace  que se convierta en un conflicto ya que  algunos  miembros de la comunidad del software continúan argumentando que el software es inmensurable es decir no tiene medida directa  por lo tanto   posponen la medición, para  comprender mejor el software., lo cual es un error.
La métrica en Ing. De Software es imperfecta, pero posee  reglas bien definidas, las cuales proporcionan comprensión inmediata.

MEDIDAS, MÉTRICAS E INDICADORES.

Estos tres  términos son muy susceptibles a ser usados  de forma intercambiable, se d deben tomar en cuentan las pequeñas diferencias existentes en ellas.

En Ing. De Software,  una MEDIDA,  es un indicio de  la extensión, cantidad, dimensión  de algo un atributo de un producto o proceso.
La medición ocurre cuando  se ha recolectado un punto de datos, la medición ocurre  como el resultado de  la recolección de uno o más puntos de datos.

Un INDICADOR, es una métrica o combinación  de métricas  que proporcionan comprensión acerca del proceso de software.


EL RETO DE LA METRICA COMO PRODUCTO.

Durante las cuatro décadas pasadas, muchos investigadores intentaron desarrollar una métrica, que proporcione una medida abarcadora de la complejidad del software.

Fenton, la caracteriza como o una búsqueda imposible del “Santo Grial”, Zus, toma una visión un poco diferente en cuanto a la complejidad de la, misma, lo cual toma una analogía de que el software es como un auto nuevo, lo cual mide el atractivo según el usuario.

Lo cual debemos tener en cuenta que estas características o atractivos no deben ser tomados de forma arbitraria.

PRINCIPIOS DE MEDICION

Para presentar una serie de métricas, ROCHE, sugiere un proceso de medición de cinco actividades:

FORMULACION.  Medidas y métricas, apropiadas para la representación del software.
RECOLECCION. Acumulación de datos, para derivar las métricas.
Análisis. Calculo de la métrica
INTERPRETACION.  Evaluación de la métrica
RETROALIMENTACION. Recomendaciones de interpretación de la métrica.

Las métricas  de software serán útiles solo si se caracterizan efectivamente y si se validan de manera adecuada, y debe tener las siguientes características:
·         Una métrica debe tener propiedades matemáticas deseables.
·         El valor de la métrica debe aumentar o disminuir de  manera uniforme.
·         Cada métrica debe medirse de manera empírica, es decir debe  funcionar en varios lenguajes de programación.

MEDICION DE SOFTWARE ORIENTADO A META

El paradigma Meta/Pregunta/Meta (MPM), fue desarrollado por Basili y Weiss,  como una técnica para identificar  métricas significativas para cualquier parte del proceso de software.
MPM, enfatiza:

·         Establecer una meta de medición explicita  que sea específica, para la característica del producto que se quiera valorar.

·         Definir un conjunto de preguntas que deban responderse con la finalidad de lograr la meta

·         Identificar métricas bien formuladas que ayuden a responder dichas preguntas.