Entradas

Mostrando entradas de 2017

COCOMO

¿Qué es COCOMO? (Constructive Cost Model) surge como una alternativa para incluir componentes de incerteza en las estimacións conforme al nivel de información disponible. Este es un modelo paramétrico que establece ecuaciones matemáticas para describir las relaciones entre el tamaño del software - factor primario de costo usualmente representado en términos de puntos de función - y otros factores secundarios que buscan capturar particularidades de producto, proceso, personas y plataforma. Submodelos El modelo básico estima el coste del proyecto –pequeño o mediano- en función de número de líneas de código estimadas. En este modelo, el algoritmo COCOMO establece varios criterios de desarrollo, dependiendo el nivel de dificultar no del nivel de experiencia de los desarrolladores –que se supone- sino de posibles dificultades que se pueden encontrar en el desarrollo o limitaciones del hardware usado en el desarrollo del software. El modelo intermedio se utiliza para estimaciones m...

Big Data

¿Qué es Big Data?  El concepto de Big Data aplica para toda aquella información que no puede ser procesada o analizada utilizando procesos o herramientas tradicionales. Sin embargo, Big Data no se refiere a alguna cantidad en específico, ya que es usualmente utilizado cuando se habla en términos de petabytes y exabytes de datos. Entonces ¿Cuánto es demasiada información de manera que sea elegible para ser procesada y analizada utilizando Big Data? Analicemos primeramente en términos de bytes: Gigabyte = 109 = 1,000,000,000 Terabyte = 1012 = 1,000,000,000,000 Petabyte = 1015 = 1,000,000,000,000,000 Exabyte = 1018 = 1,000,000,000,000,000,000 Big data, macrodatos, datos masivos, inteligencia de datos o datos a gran escala es un concepto que hace referencia a conjuntos de datos tan grandes que aplicaciones informáticas tradicionales del procesamiento de datos no son suficientes para tratar con ellos y a los procedimientos usados para encontrar patrones repetitivos dentro de es...

Calidad de una aplicación web

Imagen
Introducción Es común que al momento de realizar el desarrollo de una aplicación, se pase por alto algo tan importante como la calidad que tendrá la aplicación, esto es un error gravísimo en cualquier nivel de desarrollo. Sin dudas es una tarea complicada pero existen una serie de herramientas para ayudarnos en este proceso. Nos basaremos en un diagrama que representa los requisitos de calidad para aplicaciones web. Usabilidad  Se define como "la disciplina que estudia la forma de diseñar Sitios Web para que los usuarios puedan interactuar con ellos de la forma más fácil, cómoda e intuitiva posible". Esto quiere decir que la usabilidad es el requisito para que cualquier persona pueda utilizar la aplicación, entonces tenemos que basarnos en la simpleza y en diseños intuitivos. Como indica el diagrama la usabilidad también incluye la parte relacionada con el diseño y soporte, estas características son importantes para brindarle una experiencia completa al usuario y po...

Tarea de Ingeniería Web

Análisis de requisitos La ingeniería de requisitos del software es un proceso de descubrimiento, refinamiento, modelado y especificación. Se refinan en detalle los requisitos del sistema y el papel asignado al software. Podría hablarse de ellos como el análisis de los objetivos globales de una aplicación, así como la recopilación de información sobre los mismos. Dichos objetivos se convierten a: Identificar requisitos de contenido. Identificar requisitos funcionales. Definir escenarios de interacción para diferentes clases de usuarios. Preguntas de formulación Normalmente se sugieren una serie de preguntas para tenerlas como base, que deberán formularse y responderse de forma objetiva. ¿Quién va a utilizar la Web app? ¿Cuál es la motivación principal para la Web app? ¿Por qué es necesaria la Web app? Definición de las categorías de usuarios Las categorías de usuarios finales se identifican como parte de las tareas de formulación y de recopilación de requis...

Buenas Practicas del Desarrollo de Software

Buenas Prácticas aplicables al proceso de desarrollo  Participación activa de los clientes . Los clientes deben proveer información de manera regular, tomar decisiones de manera constante e involucrarse activamente en el proceso de desarrollo a través de herramientas y técnicas que faciliten su inclusión. Visualización de los requerimientos . Al principio de un proyecto ágil es necesario invertir algún tiempo para identificar el alcance del proyecto y crear la pila inicial de requerimientos organizados por prioridad. Información de una única fuente . Se obtiene al capturar la información en un lugar únicamente. Visualización de la arquitectura . Al principio de un proyecto ágil es necesario un modelado inicial de la arquitectura desde un nivel de abstracción alto para identificar una estrategia que permita la implementación de la solución. Documentar continuamente . Elaborar documentación entregable a través del ciclo de vida del producto de forma paralela a la creación ...

Web Apps

Atributos de las Web apps Inmediatez : debido a su plataforma de residencia (comunmente el Internet), una aplicación web es una de las versiones más rápidas de ejecutar software, ya que en cuestión de segundos puedes disponer del contenido y funciones de una aplicación de este estilo. Intensivas de red: una web app debe residir en la red (para ser considerada como una aplicación web), esta red puede ser una Intranet, Extranet, o incluso el mismo Internet que le permite ser utilizada desde cualquier parte del mundo. Controlada por el contenido: se presentan los contenidos a través de distintos contenidos multimedia como lo son gráficos, sonido y vídeo. Evolución continua : una aplicación web está totalmente abierta al cambio, de hecho se le planifican comúnmente actualizaciones para adaptarse a las necesidades del usuario. También se le considera incremental pues esta lista para crecer en cualquier momento. Seguridad : la seguridad es una parte esencial de estas aplica...

Proceso de SCRUM

Imagen
En general, el proceso de SCRUM se divide en distintas actividades.  1. Planificación de la iteración En el primer día de la iteración debe realizarse una reunión previa para planear en qué consistirá la misma. Selección de requisitos (4 hrs max) Para esta parte es necesario que el cliente presente al equipo la lista de requisitos priorizada del producto proyecto, el equipo cuestiona al cliente en caso de tener alguna dudna y finalmente seleccionan algunos de los requisitos que se completarán en la iteración. Planificación de la iteración (4 hrs max) El equipo deberá realizar la lista de tareas de iteración, la estimación del esfuerzo se debe realizar de forma conjunta. 2. Ejecución de la iteración Todos los días el equipo deberá reunirse como máximo por 15 minutos, y en este tiempo deberá revisarse los avances de cada integrante del equipo, esta también es llamada reunión de sincronización. En esta parte el Scrum Master se hará cargo de que el equip...

Ejemplo de artefactos en XP completo

Artefactos en XP

Artefactos de XP - Ejemplos desarrollados

HISTORIA DE USUARIO Historia de Usuario Número: 8 Nombre: Generación de comprobantes de pago a los usuarios Modificación (o extensión) de Historia de Usuario (No. y Nombre): Usuario: Sistema Iteración Asignada: 1 Prioridad en Negocio: Alta - 10 Puntos Estimados: 2 semanas Riesgo en Desarrollo: Bajo - 2 Puntos Reales: Descripción: Se realizará un sistema de compras en linea y es necesaria la generación de comprobantes de pago que se muestren dentro del sistema y que se envíe una copia al correo del cliente. Observaciones: No hay observaciones. TAREAS DE INGENIERÍA Tarea de Ingeniería Número Tarea: 1 Historia de Usuario (Nro. y Nombre): 8 – Generación de comprobantes de pago a los usuarios Nombre Tarea: Creación del formato de recibo Tipo ...

Ingeniería de software - Definiciones

Sistema socio-técnico El objetivo de los sistemas socio-técnicos es el desarrollo de sistemas de trabajo en los que los aspectos sociales y técnicos estén integrados y se apoyen mutuamente. Se sitúan dentro de una organización y están diseñados para ayudar a dicha organización con un objetivo amplio ya sea organizacional o de negocio. Propiedades emergentes de un sistema Son propiedades que no se atribuyen a ninguna parte específica del sistema, más bien surgen cuando el proyecto es integrado completamente, pueden se funcionales o no funcionales. Específicamente, los funcionales se refieren únicamente a las capacidades o funciones del sistema. Por el contrario los no funcionales aportan propiedades que no son operativas como la confiabilidad, en esta es importante mantener una métrica. Procesos, personas y sistemas informáticos Este punto se relaciona con los sistemas socio-técnicos y el proceso del negocio, al desarrollar un sistema primero tienes que entender como funciona ...

Comparación - Ingeniería de Software e Ingeniería en Sistemas Computacionales

Para comenzar hablaré sobre qué es una ingeniero e ingeniería para tener un punto de referencia. El origen de la palabra ingeniero se remonta a los tiempos de las antiguas civilizaciones, en este tiempo su definición era muy general. Solo eran personas que aplicaban los conocimientos, de forma practica. A pesar de existir ciertas definiciones anteriores a esta, la de Aquiles Gay fue la que ganó el podio para ocupar el primer lugar definiendolo de la siguiente forma: "El ingeniero es un hombre que partiendo de conocimientos, ideas, recursos, medios y material humano, construye objetos o productos tecnológicos, realiza proyectos técnicos o desarrolla procesos tecnológicos; su objetivo fundamental es, como planteo general, mejorar la calidad de vida del ser humano". Por otro lado tenemos que la definición de ingeniería es la siguiente: "Es la profesión en la que el conocimiento de las ciencias matemáticas y naturales adquiridas mediante el estudio, la experienc...

Metodologías ágiles - Ensayo XP vs SCRUM

Imagen
SCRUM Scrum es una metodología de desarrollo ágil, en la que se aplican un conjunto de buenas prácticas para trabajar colaborativamente y obtener un resultado de calidad en nuestros proyectos. Proporciona una estructura de roles, reuniones, reglas y artefactos. Los equipos son los responsables de crear y adaptar sus procesos dependiendo lo que el proyecto exija. Iteraciones o Sprints Scrum utiliza iteraciones de longitud llamadas Sprints, típicamente de dos semanas a días de duración.  Es una alternativa excelente al módelo clásico de cascada, si diferencia más destacable es que en cada etapa las iteraciones se repiten como se muestra en la siguiente imagen. Roles Product owner Única persona responsable de maximizar el retorno de la inversión (ROI) del esfuerzo de desarrollo Responsable de la visión del producto Constantemente re-prioriza el Backlog del Producto, ajustando las expectativas a largo plazo, como los planes de liberaciones Es el ár...

Evaluación I

1.    Los métodos ágiles se utilizan en: a)    Programación Orientada a Objetos b)    Desarrollo de software c)    Soporte de Software d)    Programación estructurada e)    Calidad de Software 2.    ¿Qué modelo de desarrollo de software utilizan los métodos ágiles? a)    Cascada b)    Lineal c)    Iterativo d)    Espiral e)    Evolutivo 3.    ¿Cuáles son las principales características en las que se basa el método ágil? a)    Trabajo en equipo, adaptable, avances funcionales b)    Satisfacción del cliente, reduce tiempo, una sola entrega final. c)    Comunicación, no se adapta a los cambios, no es interactivo. d)    Orientado a resultados, no hay comunicación, no hay trabajo en equipo 4.    ¿Cuáles son las características que  diferencian al método ágil del convencional? a)  ...

Mapa conceptual sobre metodologías ágiles

Imagen

Metodologías ágiles

¿Qué son? Las metodologías ágiles son una serie de técnicas para la gestión de proyectos que han surgido como alternativa a los métodos clásicos de gestión. Muy a menudo son confundidas como faltas de documentación o de control sobre el proyecto, en realidad lo que se desea minimizar es el impacto de las tareas no imprescindibles para el objetivo real del proyecto y aumentar la productividad del equipo responsable. Manifiesto ágil En el año 2001 varios críticos del desarrollo de software se reunieron en Snowbird, Utah  convocados por Kent Beck (creador de la metodología de programación extrema) para tratar de técnicas y procesos para desarrollar software. En esta reunión fue donde se creó el termino de "Métodos ágiles" y crearon varios principios sobre el mismo, se le denominó el manifiesto ágil y se engloban en cuatro postulados. A los individuos y su interacción , por encima de los procesos y las herramientas. El software que funciona , por encima de la documentación ...