lunes, 25 de febrero de 2013

10.-Qué es un blog y para qué sirve? ¿Qué otro producto de software conoce o se le ocurre pudiera funcionar mejor que un blog?


Bueno un blog básicamente es una página web personalizada en donde uno puede poner información personal, social, de entretenimiento, cultural, deportiva, científica y como en este caso académica.

Los blog son un espacio ciber-social los cuales nos brindan información y libertad de expresión casi de todo tipo y se han convertido muy populares debido a su diversificación, pero sobre todo por tener una interfaz sencilla y que cualquier usuario pueda hacer uso de ella.

Crear un blog es una tarea de 5 minutos, además de que tienes un sin fin de opciones para personalizarlo, sin que tengas que ser un experto programador, además todo lo que publiques en él, se puede interrelacionar con las redes sociales o noticias a través del RSS, por lo tanto la divulgación y difusión de tu blog es una realidad y esto ha convertido a los blogs como una herramienta de información muy poderosa sin la necesidad de ser costosa, es decir, elaborando tu página web.


Las redes sociales y la comunicación


¿Qué otro producto de software conoce o se le ocurre pudiera funcionar mejor que un blog?

Sin duda las redes sociales, es decir el poder de Facebook, Twitter, YouTube, Google Plus, no tiene comparación alguno, de hecho en lo particular pienso que el futuro de las comunicaciones viene de la mano de las redes sociales o de las aplicaciones móviles, por lo cual los medios clásicos de comunicación, TV, radio, periódicos, revistas han sido desplazados y muchas veces desprestigiados por las redes sociales, en si esto apenas es la punta del iceberg, tendremos que esperar un poco más para ver el alcance de las redes sociales así como su interacción con nosotros y de ello dependerá en gran medida el desarrollo e interación del software.


El poder de las redes sociales


9.-Acerca del blog


Lo primero que hicimos fue buscar información sobre los blogs disponibles en la red y ver las herramientas que nos ofrecían para poder publicar información en ellos, fue claro que desde el primer momento nos llamó la atención el de Google y sin duda fue el mejor, aparte de sus herramientas es muy conocido, por lo cual la decisión fue más fácil.

En nuestro blog publicamos nuestros puntos de vista sobre las preguntas que se nos asignaron, para poder responderlas buscamos información en la web, en libros especializados en la materia, en otros blogs e inclusive lo que hemos platicado y visto en clase.

Powered by Google

8.-Glosario y términos relacionados con la Ingeniería del Software

Algunas de las siguientes definiciones se han tomado o modificado de definiciones similares de otros documentos del W3C u otros estándares. Véanse los vínculos de las definiciones para más información.

  • API

Una API es una interfaz de programación de aplicaciones (application programming interface), un conjunto de funciones o métodos usados para acceder a cierta funcionalidad.

  • Aplicación cliente (client application)

Una aplicación (cliente) es cualquier programa de computadora que usa las interfaces de programación del Modelo de Objetos del Documento proporcionadas por la implementación anfitrión para realizar trabajo útil. Ejemplos de aplicaciones cliente son los scripts de un documento HTML o XML.

  • Artefacto de software (software artefact) 

Cualquier cosa que resulte del proceso de desarrollo de software; por ejemplo: documentos de requisitos, especificaciones, diseños, software, etc.

  • Contexto (context)

Un contexto especifica un patrón (o camino) de acceso: un conjunto de interfaces que nos ofrecen un medio de interaccionar con un modelo. Por ejemplo, imaginemos un modelo con arcos de diferentes colores que conectan nodos de datos. Un contexto podría ser una hoja de acetato coloreada que se coloca sobre el modelo, permitiéndonos obtener una vista parcial de la información total contenida en el modelo.

  • Conveniencia (convenience)

Un método de conveniencia es una operación sobre un objeto que podría realizar un programa consistente en operaciones más básicas sobre el objeto. Los métodos de conveniencia normalmente se proporcionan para hacer el API más fácil y simple de usar, o para permitir a programas específicos crear implementaciones más optimizadas para operaciones comunes. Análogamente se define una propiedad de conveniencia.

  • Correspondencia o enlace con el lenguaje (language binding)

Una correspondencia con un lenguaje de programación de una especificación IDL es una implementación de las interfaces de la especificación en el lenguaje dado. Por ejemplo, las correspondencias con el lenguaje Java de la especificación IDL del Modelo de Objetos del Documento implementaría las clases Java reales que proporcionarían la funcionalidad expuesta por las interfaces.

  • Interfaz (interface)

Una interfaz es una declaración de un conjunto de métodos sin información sobre su implementación. En los sistemas de objetos que soportan interfaces y herencia, las interfaces normalmente pueden derivar unas de otras.

  • Método (method)

Un método es una operación o función que está asociada a un objeto y que tiene permiso para manipular los datos del objeto.

  • Modelo (model)

Un modelo es la representación real de los datos obtenidos a partir de la información disponible. Ejemplos son el modelo de estructura y el modelo de estilo que representan la estructura analítica y la información de estilo asociada a un documento. El modelo podría ser un árbol, o un grafo orientado, o cualquier otra cosa.

  • Software

Denominación que reciben los programas informáticos.

  • Software de dominio público (public domain software)

Programa donado para uso público por su propietario o diseñador y que se podrá utilizar, copiar y distribuir con total libertad.

  • Software libre (free software)

Software completo con el código fuente que es distribuido libremente para que además de ser usado, pueda modificarse, redistribuirse, y si se desea, venderse sin que constituya piratería.
El usuario puede hacer las modificaciones que considere adecuadas sin necesidad de notificar estos cambios, mas debe distribuir su programa con el código fuente agregado. 

  • Software propietario (proprietary software)

Programa cuyos derechos de copia están en propiedad de un individuo o una empresa y sólo podrá ser utilizado por terceras personas mediante adquisición o permiso expreso del propietario.

lunes, 18 de febrero de 2013

5.-¿A qué se refiere la calidad del producto de software?

¿A qué se refiere la calidad del producto de software?

El ingeniero de software, ante todo, necesita determinar el Objetivo verdadero del software, así mismo, es de vital  importancia tener presente los requerimientos del cliente y aquellos que estos incluyen como requerimientos de calidad, no únicamente los requerimientos funcionales., el ingeniero de software tiene como responsabilidad obtener los requerimientos de calidad, que pueden no estar explícitos en un principio, tratar su importancia así como el nivel dificultad para alcanzarlos.
Otros aspectos fundamentales de la calidad de un producto de software son la facilidad de utilización.
Aquí se ve la importancia del rol del Ingeniero de Software para comenzar así un desarrollo de un óptimo producto.


Abstracción y diseño


 ¿A qué se refiere la calidad del proceso de desarrollo de software?

Las metodologías de desarrollo nos ayudan a realizar este proceso (el de desarrollo) reglado y prefijado para conseguir productos adecuados.
No se entiende un concepto como el de Fábrica de Software sin la asociación con el concepto de tareas repetibles, panificables, organizadas, igual que no se entiende una fábrica como un conjunto de tareas anárquicas, sin control ni organización.
Dentro de la Ingeniería de Software existen multitud de metodologías para el desarrollo de productos de software.
Un proceso de desarrollo de software determina quién debe hacer qué, cuándo y cómo, también define la forma en que se organiza el trabajo de un equipo de desarrollo y otros grupos de apoyo.

Cliclo de Vida  y Modelos de Proceso



Aquí también se determina la importancia del rol del desarrollador, entonces se puede decir que teniendo en cuenta esto se desligan varias características importantes para  el buen proceso de la misma (Calidad de Software).

Cabe resaltar ciertas características del modelo ISO 9126-1 :2001 que centran muy bien estos enfoques.
Donde podremos encontrar  características de Calidad Interna y Métricas de la Calidad de Software
Las características de Calidad Interna son:


ISO 9126-1

• Funcionalidad:
Conjunto de atributos que se relacionan con la existencia de un conjunto de funciones y sus propiedades específicas. Las funciones son aquellas que satisfacen lo indicado o implica necesidades. Las sub-características son: Idoneidad, Exactitud Interoperabilidad, Seguridad, Cumplimiento de normas.
 • Fiabilidad:
Conjunto de atributos relacionados con la capacidad del software de mantener su nivel de prestación bajo condiciones establecidas durante un período de tiempo establecido. Las sub-características son: Madurez, Tolerancia a fallas, Facilidad de Recuperación, Conformidad de Fiabilidad.

 • Usabilidad:
Conjunto de atributos relacionados con el esfuerzo necesitado para el uso, y en la valoración individual de tal uso, por un establecido o implicado conjunto de usuarios. Las sub-características son:
Aprendizaje, Comprensión, Operatividad, Atractividad, Conformidad de Usabilidad

 • Eficiencia:
Conjunto de atributos que se refieren a las relaciones entre el nivel de rendimiento del software y la cantidad de recursos utilizados bajo unas condiciones predefinidas. Las sub-características son: Compartimiento en el tiempo, Compartimiento de recursos, Conformidad de eficiencia.

 • Mantenibilidad:
Conjunto de atributos relacionados con la facilidad de extender, modificar o corregir errores en un sistema software. Las sub-características de la Facilidad de Mantenimiento son: Facilidad de análisis, Facilidad de cambio, Estabilidad y Facilidad de prueba.

 • Portabilidad:
Conjunto de atributos relacionados con la capacidad de un sistema software para ser transferido desde una plataforma a otra. Las sub-características de la Portabilidad son: Capacidad de instalación, capacidad de remplazamiento, Adaptabilidad y Co-Existencia.

Métricas:

Métricas Externas – ISO 9126-2:2003
Las cuales miden el software en sí mismo o software en ejecución (Calidad externa – Ambiente de Prueba).
Métricas Internas – ISO 9126-3: 2003
Las cuales miden el comportamiento del sistema, dichas métricas se aplican cuando el software no está en ejecución por ejemplo durante el diseño y codificación. (Calidad Interna – Ambiente de Desarrollo)
Calidad en Uso  – ISO 9126-4: 2004
El cual mide el efecto de usar el software en un contexto específico (Ambiente de Producción).
 ISO 9126-2, ISO 9126-3 e ISO 9126-4 están encaminados en ambientes de Prueba, Desarrollo y Producción respectivamente.


ISO una herramienta importante para la Ingeniería del Software







http://avanet.org/calidad-de-producto-y-proceso.aspx

7.-Tabla comparativa entre modelos de procesos




Tabla comparativa





Modelo
Características

Ventajas

Desventajas

Cascada
Ordena rigurosamente las etapas del ciclo de vida del software, de tal forma que el inicio de cada etapa debe esperar a la finalización de la inmediatamente anterior.
Se tiene todo bien organizado y no se mezclan las fases.
Es perfecto para proyectos que son rígidos, y además donde se especifiquen muy bien los requerimientos y se conozca muy bien la herramienta a utilizar.

En la vida real, un proyecto rara vez sigue una secuencia lineal, esto crea una mala implementación del modelo, lo cual hace que lo lleve al fracaso.
El proceso de creación del software tarda mucho tiempo ya que debe pasar por el proceso de prueba y hasta que el software no esté completo no se opera. Esto es la base para que funcione bien.

Prototipo
Éstos permiten testar el objeto antes de que entre en producción, detectar errores, deficiencias, etcétera. Cuando el prototipo está suficientemente perfeccionado en todos los sentidos requeridos y alcanza las metas para las que fue pensado, el objeto puede empezar a producirse.
 Es el único apto para desarrollos en los que no se conoce a priori sus especificaciones o la tecnología a utilizar. 
Este desconocimiento tiene la desventaja de ser altamente costoso y difícil para la administración temporal.
 Incremental
 Construir incrementando las funcionalidades del programa. Se realiza construyendo por módulos que cumplen las diferentes funciones  del sistema. Esto permite ir aumentando gradualmente las capacidades del software.
Construir un sistema pequeño siempre es menos riesgoso que construir un sistema grande.
Como desarrollamos independientemente las funcionalidades, es más fácil revelar los requerimientos del usuario.
Si se detecta un error grave, solo desechamos la última iteración.
No es necesario disponer de los requerimientos de todas las funcionalidades y en el comienzo del proyecto y además facilita la labor del desarrollo con la conocida  filosofía de divide & Vencerás
 .

 RAD
El desarrollo de software de "métodos rápidos" reduce el tiempo del ciclo de vida del software (por lo tanto, acelera el desarrollo) al desarrollar, en primera instancia, una versión prototipo y después integrar la funcionalidad de manera iterativa para satisfacer los requisitos del cliente y controlar todo el ciclo de desarrollo.
Comprar puede ahorrar dinero en comparación con construir.
Los entregables pueden ser fácilmente trasladados a otra plataforma.
El desarrollo se realiza a un nivel de abstracción mayor.
Visibilidad temprana.
Mayor Flexibilidad.
Menor codificación manual.
Mayor involucramiento de los usuarios.

Comprar puede ser más caro que construir.
Costo de herramientas integradas y equipo necesario.
Progreso más difícil de medir.
Menos eficiente.
Menor precisión científica.
Riesgo de revertirse a las prácticas sin control de antaño.
Más fallas (por síndrome de "codificar a lo bestia").

6.-Cronología sobre la evolución de los modelos de proceso en la ingeniería de softare

Cronología sobre cómo ha evolucionado la ingeniería de software

El Proceso de Desarrollo Software


 Modelo de proceso software:
—Descripción simplificada (abstracción) de un proceso de desarrollo de software real.












4.-¿A qué se refiere la calidad de un buen software?

En el desarrollo de software, la calidad de diseño acompaña a la calidad de los requisitos, especificaciones y diseño del sistema. La calidad del producto se centra principalmente en la implementación. Si la implementación sigue al diseño, y el sistema resultante cumple con los objetivos de requisitos y de rendimiento, la calidad puede considerarse es alta, es decir, todo debe de coincidir y funcionar de manera eficiente y eficazmente.

Porque el diseño no está peleado con la funcionalidad y calidad del Software.