viernes, 30 de noviembre de 2012

Arquitectura de software

estas indican la estructura, funcionamiento e interacción entre las partes del software.

Puntos claves

>
La Arquitectura del Software es el diseño de más alto nivel de la estructura de un sistema.
Una Arquitectura de Software, también denominada Arquitectura lógica, consiste en un conjunto de patrones y abstracciones coherentes que proporcionan el marco.
> Una arquitectura de software se selecciona y diseña con base en objetivos y restricciones. Los objetivos son aquellos prefijados para el sistema de información, pero no solamente los de tipo funcional, también otros objetivos como la mantenibilidad, auditabilidad, flexibilidad e interacción con otros sistemas de información. Las restricciones son aquellas limitaciones derivadas de las tecnologías disponibles para implementar sistemas de información. Unas arquitecturas son más recomendables de implementar con ciertas tecnologías mientras que otras tecnologías no son aptas para determinadas arquitecturas. Por ejemplo, no es viable emplear una arquitectura de software de tres capas para implementar sistemas en tiempo real.
> La arquitectura de software define, de manera abstracta, los componentes que llevan a cabo alguna tarea de computación, sus interfaces y la comunicación entre ellos. Toda arquitectura debe ser implementable en una arquitectura física, que consiste simplemente en determinar qué computadora tendrá asignada cada tarea.

Arquitecturas mas comunes
Generalmente, no es necesario inventar una nueva arquitectura de software para cada sistema de información. Lo habitual es adoptar una arquitectura conocida en función de sus ventajas e inconvenientes para cada caso en concreto. Así, las arquitecturas más universales son:
* Monolítica: Donde el software se estructura en grupos funcionales muy acoplados.
* Cliente-servidor: Donde el software reparte su carga de cómputo en dos partes independientes pero sin reparto claro de funciones.
* Arquitectura de tres niveles: Especialización de la arquitectura cliente-servidor donde la carga se divide en tres partes (o capas) con un reparto claro de funciones: una capa para la presentación (interfaz de usuario), otra para el cálculo (donde se encuentra modelado el negocio) y otra para el almacenamiento (persistencia). Una capa solamente tiene relación con la siguiente.

Otras arquitecturas afines menos conocidas son:
En pipeline.
Entre pares.
En pizarra.
Orientada a servicios.
Dirigida por eventos.
Máquinas virtuales.

Cliente-Servidor

Un servidor es una aplicación que ofrece un servicio a usuarios de Internet; un cliente es el que pide ese servicio. Una aplicación consta de una parte de servidor y una de cliente, que se pueden ejecutar en el mismo o en diferentes sistemas. Los usuarios invocan la parte cliente de la aplicación, que construye una solicitud para ese servicio y se la envía al servidor de la aplicación que usa TCP/IP como transporte. TCP es un protocolo orientado a conexión. No hay relaciones maestro/esclavo. Las aplicaciones, sin embargo, utilizan un modelo cliente/servidor en las comunicaciones. El servidor es un programa que recibe una solicitud, realiza el servicio requerido y devuelve los resultados en forma de una respuesta. Generalmente un servidor puede tratar múltiples peticiones (múltiples clientes) al mismo tiempo.




Principales caracteristicas

En la arquitectura C/S el remitente de una solicitud es conocido como cliente. Sus características son:
* Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la comunicación (dispositivo maestro o amo).
* Espera y recibe las respuestas del servidor.
* Por lo general, puede conectarse a varios servidores a la vez.
* Normalmente interactúa directamente con los usuarios finales mediante una interfaz gráfica de usuario.

Al receptor de la solicitud enviada por el cliente se conoce como servidor. Sus características son:
* Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan entonces un papel pasivo en la comunicación (dispositivo esclavo).
* Tras la recepción de una solicitud, la procesan y luego envían la respuesta al cliente.
* Por lo general, aceptan conexiones desde un gran número de clientes (en ciertos casos el número máximo de peticiones puede estar limitado).
* No es frecuente que interactúen directamente con los usuarios finales.

Casos de uso

Un caso de uso es una descripción de los pasos o las actividades que deberán realizarse para llevar a cabo algún proceso. Los personajes o entidades que participarán en un caso de uso se denominan actores.En el contexto de ingeniería del software, un caso de uso es una secuencia de interacciones que se desarrollarán entre un sistema y sus actores en respuesta a un evento que inicia un actor principal sobre el propio sistema.


Actores

Se le llama actor a toda entidad externa al sistema que guarda una relación con éste y que le demanda una funcionalidad. Esto incluye a los operadores humanos pero también incluye a todos los sistemas externos, además de entidades abstractas, como el tiempo. En el caso de los seres humanos se pueden ver a los actores como definiciones de rol por lo que un mismo individuo puede corresponder a uno o más Actores. Suele suceder sin embargo, que es el sistema quien va a tener interés en el tiempo.

Relaciones

* Comunica ("communicates"): Relación (asociación) entre un actor y un caso de uso que denota la participación del actor en dicho caso de uso.
* Usa ("uses") (o "include"): Relación de dependencia entre dos casos de uso que denota la inclusión del comportamiento de un escenario en otro.
* Extiende ("extends"): Relación de dependencia entre dos casos de uso que denota que un caso de uso es una especialización de otro. Por ejemplo, podría tenerse un caso de uso que extienda la forma de pedir azúcar, para que permita escoger el tipo de azúcar (normal, dietético o moreno) y además la cantidad en las unidades adecuadas (cucharadas o bolsas).

domingo, 21 de octubre de 2012

SCRUM Y SUS ROLES


Basicamente las personas relacionadas es este tipo de metodologia se pueden dividir en dos grupos que se identifican como "Roles Principales" y "Roles Auxiliares".

Roles Auxiliares

Product Owner: El Product Owner representa la voz del cliente. Se asegura de que el equipo Scrum trabaja de forma adecuada desde la perspectiva del negocio. El Product Owner escribe historias de usuario.

ScrumMaster (o Facilitador): El Scrum es facilitado por un ScrumMaster, cuyo trabajo primario es eliminar los obstaculos que impiden que el equipo alcance el objetivo del sprint. El ScrumMaster no es el líder del equipo (porque ellos se auto-organizan), sino que actua como una proteccion entre el equipo y cualquier influencia que le distraiga.

Equipo de desarrollo: El equipo tiene la responsabilidad de entregar el producto. Un pequeño equipo de 3 a 9 personas con las habilidades transversales necesarias para realizar el trabajo (analisis, diseño, desarrollo, pruebas, documentacion, etc).

Roles Auxiliares

Los roles auxiliares en los "equipos Scrum" son aquellos que no tienen un rol formal y no se involucran frecuentemente en el "proceso Scrum", sin embargo deben ser tomados en cuenta.

Stakeholders (Clientes, Proveedores, Vendedores, etc): Se refiere a la gente que hace posible el proyecto y para quienes el proyecto producirá el beneficio acordado que justifica su producción. Sólo participan directamente durante las revisiones del sprint.

Administradores: Es la gente que establece el ambiente para el desarrollo del producto.

Apple buscando independizarse de Samsung



Samsung fabricó el procesador A5, que fue utilizado en el iPhone 4S y el iPad 2.

Pese a la cantidad de batallas que han tenido que librar en el campo de patentes, Samsung y Apple continuan siendo socios en la fabricación de las partes internas en el iPhone, iPad y iPod touch, en especial de los procesadores de estos dispositivos. Sin embargo, parece que la compañía de la manzana esta haciendo varios esfuerzos por romper lazos con la surcoreana en este campo.
Actualmente el acuerdo se limita a que Samsung fabrica los procesadores A6, mientras que Apple se encarga de hacer el diseño de los mismos, lo que no ocurrió con los chips A4 y A5.
“Hay tres tipos de clientes de chips (…) algunos quieren que nos ocupemos de todo, desde el diseño del chip y la arquitectura hasta la fabricación. Otros quieren que simplemente los diseñemos y fabriquemos. Y algunos quieren que sólo hagamos los chips. Apple es ahora del tercer tipo, dijo un empleado de Samsung al diario, haciendo referencia al diseño del procesador A6, que se encuentra en el iPhone 5.
Samsung participo activamente en el diseño de los procesadores A4 y A5 de los productos de la compañía de la manzana, queda claro que este es el siguiente paso de Apple para reducir su dependencia de la surcoreana.
Pero este tema no es nuevo. Recordemos que en septiembre pasado Reuters informó que Apple decidió reducir sus pedidos de chips de memoria para su nuevo iPhone a su principal proveedor y competidor, con el objetivo de diversificar su línea de suministro de chips de memoria. 
Y para terminar de confirmar la intención de Apple por independizarse de Samsung, The Wall Street Journal informó recientemente que la compañía de Cupertino contrató a Jim Mergard, un importante diseñador de chips que trabajó unos meses en Samsung, pero abandonó la compañía luego de recibir una oferta de trabajo por parte de Apple. Mergard también fue empleado de AMD, el segundo gran fabricante de chips a nivel mundial.

ACTORES (CASOS DE USO)

* Un actor podr ia ser cualquier cosa que se comunica (interacciona) con el sistema y que es externo a el.
* Los actores no necesariamente coinciden con los USUARIOS. Un usuario puede interpretar distintos roles,
correspondientes a distintos actores.
* Los actores representan papeles (ROLES) que interpretan personas, perifericos u otros sistemas cuando el sistema esta en uso.
* Un actor podr ia desempeñar distintos papeles dependiendo
del caso de uso en que participe.
* Un actor representan un conjunto coherente de papeles que los usuarios de una entidad (sistema, subsistema, clase) pueden desempeñar al interaccionar con la misma.

Tipos de actores:

Primarios: interaccionan con el sistema para explotar su funcionalidad; trabajan directa y frecuentemente con el software.
Secundarios: soporte del sistema para que los primarios puedan trabajar.
Iniciadores: no utilizan directamente el sistema pero desencadenan el trabajo de otro actor. (No aparecen en UML pero si los consideran otros autores)


Para que el actor se comunica con el sistema...?
ACTOR -> SISTEMA 

- Para iniciar el caso de uso (siempre los inicia un actor).
- Para solicitar informaci on del sistema.

- Para modi car la informaci on del sistem.a
- Para informar al sistema de que ha ocurrido algo en su
entorno que le incumbe.


Para que el sisrtema se comunica con el actor
SISTEMA -> ACTOR

- Para comunicarle que ha sucedido algo, en el sistema, que
le concierne.
- Para que le ayude a tomar una decisi on necesaria para
complir los objetivos del sistema.
- Para delegar alguna responsabilidad en el actor.

sábado, 20 de octubre de 2012

SCRUM VS RUP

                  

 

VS


Como se sabe RUP es una metodología para el proceso de software extensamente usado, pero cuando se piensa en una metodologia agil o mejor dicho, en un marco de procesos como SCRUM, vienen al momento los beneficios o desventajas que uno puede tener con el otro.
El enfoque en RUP es establecer una serie de reglas para el desarrollo de un proyecto. Lo cual  en proyectos de mediano tamaño nos encasilla y limita en lugar de simplemente establecer orden. En SCRUM al contrario “los principios SCRUM” si es que asi se les puede llamar tienden a ser lineas guía y “pactos funcionales” para los desarrolladores.
Comparando ambas metodologias, el tipo de documentación de RUP hace referencia a las comunicaciones formales con la finalidad de ser mas predictivos, mientras que en SCRUM se enfoca en las comunicaciones informales continuas y a la adaptación al cambio, con la finalidad de ser mas adaptivas.
La otra diferencia esta relacionada con las iteraciones de desarrollo, mientras que en RUP tienden a ser pocas y largas, en SCRUM tienden a ser muchas pero frecuentes. En la metodología SCRUM se realizan reuniones diarias las cuales son llamadas ’Daily Scrum’ y es donde se sostiene una pequeña charla sobre el estado del proyecto. En particular muestran los impedimentos para progresar que se atraviesan y que la gerencia debe resolver. También informan lo que se ha hecho para tener una actualización diaria de donde va el proyecto. La literatura de SCRUM se enfoca principalmente en la planeacion iterativa y el seguimiento del proceso.

viernes, 19 de octubre de 2012

MEDIDAS DE CALIDAD EN LAS METRICAS DE UN SOFTWARE



Aunque hay muchas medidas de la calidad de software, la correccion, facilidad de mantenimiento, integridad y facilidad de uso suministran indicadores utiles para el equipo del proyecto.

Tales como:
Corrección: La correccion es el grado en el que el software lleva a cabo una funcion requerida. Debido que le corresponde operar correctamente.

Facilidad de mantenimiento: El mantenimiento del software cuenta con mas esfuerzo que cualquier otra actividad de ingeniería del software. La facilidad de mantenimiento es la habilidad con la que se puede corregir un programa si se encuentra un error, se puede adaptar si su entorno cambia o optimizar si el cliente desea un cambio de requisitos.

Integridad: En esta epoca de intrusos informaticos y de virus, la integridad del software ha llegado a tener mucha importancia. Este atributo mide la habilidad de un sistema para soportar ataques (tanto accidentales como intencionados) contra su seguridad. El ataque se puede ejecutar en cualquiera de los tres componentes
del software, ya sea en los programas, datos o documentos.
Para medir la integridad, se tienen que definir dos atributos adicionales:
amenaza y seguridad. La amenaza es la probabilidad (que se logra evaluar o concluir de la evidencia empírica) de que un ataque de un tipo establecido ocurra en un tiempo establecido. La seguridad es la probabilidad (que se puede estimar o deducir de la evidencia empírica) de que se pueda repeler el ataque de un tipo establecido.

Facilidad de uso: Si un programa no es “amigable con el usuario”, practicamente esta proximo al fracaso, incluso aunque
las funciones que realice sean valiosas. La facilidad de uso es un intento de cuantificar “lo amigable que pude ser con el usuario” y se consigue medir en funcion de cuatro caracteristicas:
* destreza intelectual o física solicitada para aprender el sistema.
* el tiempo requerido para alcanzar a ser moderadamente eficiente en el uso del sistema.
* aumento neto en productividad (sobre el enfoque que el sistema reemplaza) medida cuando alguien emplea el sistema moderadamente y eficientemente.
* valoracion subjetiva (a veces obtenida mediante un cuestionario) de la disposicion de los usuarios hacia el sistema.

viernes, 14 de septiembre de 2012

4 x 4 dinamismo al exponer conocimiento

El 4 de 4, es una forma muy practica, emprendedora y bastante divertida de dar a conocer nuestros conocimiento a cerca de un tema planteado por el docente.
Basicamente el 4 x 4 es una dinamica que consta de 8 personas de las cuales 4 participantes ubicados en forma de cruz seran los llamados "expertos" como su nombre muy bien lo dice son los encargados de tratar el tema con fluidez, apoyados en sus conciencias que seran las personas ubicada adyacentes de cada experto y ubicados diagonalmente entre si, por consiguiente cada experto cuenta con 2 conciencias a las cuales puede recurrir al momento de necesita ayuda a cerca del tema. El tiempo establecido para tratar la problematica planteada oscila entre 5 y 15 minutos, ese es el tiempo del cual disponen los expertos para desarrollar el tema; una vez terminado el tiempo llega una etapa en la que se interactua con el publico y es un espacio solamente del publico en el cual pueden lanzar criticas, observaciones, aclaraciones etc. a cerca de lo tratado por la mesa llamada 4 x 4.



Funciones de Windows 7 ausentes en Windows 8...



Para asombro de muchos, Microsoft, basándose en el feedback recibido a través de los usuarios de Windows, ha quitado de la nueva versión del más famoso sistema operativo de la actualidad muchas características y funcionalidades que estaban presentes en Windows 7. En este artículo conoceremos cuáles son para evaluar si alguna de ellas es lo suficientemente importante como para detenernos a pensar si debemos actualizar a la nueva versión de Windows o no. 

Para asombro de muchos, microsoft basandose en el feedback recibido a traves de los usuarios de windows han quitado la nueva version del mas famoso sistema operativo de la actualidad muchas caracteristicas y funcionalidades que estaban presentes en W7.
Una de las primeras cosas que nota el usuario de W8 es la falta del historico boton de inicio, y con el tambien se ha ido para siempre el menu inicio. En su lugar los desarrolladores de microsoft han implementado a los que ellos llaman "pantalla de inicio"

Otro de los componentes de Windows que han sufrido grandes cambios es el Explorador de Windows, que además de cambiar su nombre por el de “Explorador de Archivos", también ha sido objeto de profundas modificaciones en su interfaz, de la cual se ha eliminado por completo la barra de menús. Este elemento ha sido reemplazado por la llamada “Cinta” o Ribbon, la cual promete grandes ventajas y mayor productividad.


Otra acción cuestionada por cientos de miles de usuarios, es la desaparición de la característica denominada “Explorador de juegos”. Esto posiblemente se deba a las nuevas estrategias de ventas y tendencias de consumo del sector.
En relación a los temas de escritorio y ventanas que adornan Windows, en esta nueva versión del sistema operativo de Microsoft han desaparecido tanto el tema Basic como el Classic. En reemplazo de ellos, ahora tenemos disponible un tema estilo Metro UI que coincide con el color del fondo de pantalla.


Otro clásico que desaparece. Desde los tiempos de Windows Vista que los usuarios contaban con la posibilidad de ubicar en su escritorio los llamados Gadgets, unos pequeños programas que ofrecen la capacidad de mostrarnos información variada. Pero lejos de contentarse con esta eliminación, los desarrolladores de Windows también se ha encargado de hacer desaparecer la barra lateral, más conocida como “Sidebar”.


Estas son, a grandes rasgos, las características de Windows 7 que no estarán disponibles en Windows 8.

miércoles, 5 de septiembre de 2012

SPLAVIA


Que es es SPLAVIA?
Como lo describen sus iniciales. Es un servicio de plataforma virtual interactiva de aprendizaje.

SPLAVIA es la plataforma empleada en nuestra institucion, la cual cuenta con una cantidad de ventajas y facilidades bastante considerables ya que por medio de estas podemos realizar nuestras actividades, trabajos etc. permitiendoles a su vez la revision de los mismo. Tambien nos brinda la posibilidad de una facil comunicacion ya que posee chat integrado que nos permitiria comunicarnos entre estudiantes o con los docentes de las distintas asignaturas; se pueden realizar listados con las descripciones de las actividades que se veran durante un tiempo establecido ya sea primero corte, segundo, tercero o durante todo el semestre brindandonos la posibilidad a nosotros los estudiantes de tener como especie de "agenda en linea" de cada una de las asignaturas y los distintos temas a tratar con el paso de las clases. Entre otros beneficios adicionales que nos ofrece.

martes, 4 de septiembre de 2012

Propuesta del proyecto de aula




En esta ocasion, me tomo la molestia de resaltar la importancia de uno de los puntos fundamentales en el tan mencionado PROYECTO DE AULA, como lo es la propuesta y el desarrollo de esta misma.
La propuesta de un proyecto basicamente esta basada en lo que se quiere hacer y al publico que va dirigido con un fin mas alla que academico con la posibilidad de abrir nuevas puertas y generar una posible opcion de ingresos mediante creaciones innovadoras. En una propuesta de proyectos se conocen datos basicos como lo son:
* Nucleo Problemico, el cual sera el tema en la que gira la propuesta y posteriormente el proyecto.

* Titulo Del Proyecto, este punto si es bastante autentico porque sera el nombre que hayamos decidido colocarle a nuestra propuesta.

* Tema Del Proyecto, las problematicas que se han adoptado en el proyecto y sus respectivos temas valga la redundancia

* Objetivo Inicial Del Proyecto, en pocas palabras el objetivo general. Con que fin fue creado dicha propuesta y por consiguiente su proyecto.

* Duracion Del Proyecto, el tiempo q abarca el proyecto.

* Observaciones Del Tutor, las respectivas correcciones que se realizan con el paso del tiempo y los avances del proyecto.
Es de suma importancia tener claros los puntos para que al momento de realizar la propuesta no se presenten conflictos y se especifiquen los puntos de manera clara y precisa.

martes, 21 de agosto de 2012

HERRAMIENTAS DE RECOLECCION DE HECHOS



Entrevista



















Considerada la principal arma de cualquier analista de sistema, ya que esta le permite hacer una serie de preguntas a las personas involucradas en la problematica. Esta se divide en dos partes que son:
Entrevista formal: Esta son una serie de preguntas dirigidas al tema de manera concreta, es bastante estructurada y realizada por un "stake holder".
Entrevista informal: Esta se realiza de manera mas abierta, comunmente no es estructurada y a las preguntas que conforman esta a su vez se determinan durante la entrevista, no estan establecidas como en el caso anterior.

Cuestionarios / Encuestas

















Comenzamos aclarando que cuestionario y encuesta no son lo mismo, por muchas similitudes que tengan ambos. ¿POR QUE?

Cuestionario son una serie de preguntas de algun tema en especifico, o de temas sueltos para analizar el coeficiente intelectual de alguna persona. Mientras que la encuesta al igual que el cuestionario son una serie de preguntas de un tema en especifico o temas sueltos, pero esta vez no es para analizar a un solo individuo si no para conocer las problemas generales de una comunidad determinada en dichos temas planteados.

Revision de documentos




















Etapa donde se verifica que todos los procesos que se esten realizando vayan de acuerdo a las leyes que lo rigen, si esta fase no es realizada por el analista, la emperesa o la entidad donde se este desarrollando dicho proyecto se ve en la obligacion de realizarlo.

Por ultimo tenemos la tecnica de observacion "strobe", esta consiste en una observacion estructurada del ambiente la cual afirma o niega lo dicho en las narraciones realizada en las respectivas encuestas o cuestionarios.



jueves, 9 de agosto de 2012

HERRAMIENTAS PARA EL DESARROLLO DE SISTEMAS

A continuacion se les presentara una serie de herramientas las cuales estan a disposicion de cualquier analista de sistemas y que le ayudaran a mejorar el desempeño de alguna tarea en espeficico si se utiliza de manera adecuada, aunque en esta ocasion nos enfocaremos en el desarrollo de sistemas en computadora. Divididas en las siguiente categorias: analisis, diseño y desarrollo.

Herramientas de analisis

















* Herramientas para recoleccion de datos
Descripcion de sistemas y procedimientos en uso y se documentan procesos y actividades de desicion.

Herramientas para diagramacion
Representaciones graficas y de actividades asociados con el analisis estructurado.

* Herramientas para el diccionario
Descripcion de los elementos del sistema.

Herramientas para diseño













* Herramientas de especificacion
Apoyo a caracteristicas como entrada, salida, procesamiento y especificaciones de control.

* Herramientas para presentacion
La manera como van organizado los datos, encabezados, mensajes y otros medios de entrada y salida.

Herramientas para el desarrollo



















* Herramientas para ingeneria de software
Diseño de software, procedimientos, controles y documentacion correspondiente.

Generadores de codigo
Codigo fuente y las aplicaciones a partir de especificaciones funcionales bien articuladas.

* Herramientas para prueba
Fase de evaluacion del sistema, para analizar el grado de perfeccion alcanzado respecto a las espectativas.

viernes, 3 de agosto de 2012

Herramientas "CASE"


Las herramientas CASE (Computer Aided Software Engineering ó mejor dicho en español quiere decir Ingeniería De Software Asistida Por Computadora). Es considerada la principal herramienta de un analista de sistemas, ademas hay razones de sobra para que las personas que desempeñan dicha profesion la utilicen y una de las principales es que aumenta la productividad del analista, mejora la comunicacion analista-usuario, integracion de las actividades del ciclo de vida y evaluar de manera precisa los cambios en el mantenimiento.
Esta a su vez se divide en dos grandes grupos que son, herramientas CASE de alto nivel y de bajo nivel; basicamente las herramientas CASE de alto nivel son implementadas por los analistas como tal ya que les brinda la posibilidad de crear y modificar el diseño de un sistema debido a que toda esta informacion se encuentra almecenada en un lugar llamado deposito CASEC donde se guardan todos los elementos y la informacion de la cual se pueden generar informes donde se muestre donde se esta el programa incompleto o donde tiene errores etc.  
Por su lado las herramientas CASE de bajo nivel son las empleada por trabajadores y programadores se maneja de cierto modo un perfil mas bajo que la anterior pero brinda ventajas tambien.
* El sistema se puede generar mas rapido que si se tuviera que escribir todos los programas.
* La generacion de codigo reduce el tiempo invertido en el mantenimiento.
* Se puede integrar mas de un lenguaje de computadora, de tal manera que se facilita la migración de sistemas de una plataforma.
* El codigo generado esta libre de errores de programacion.
En resumen ademas de la importancia que posee esta herramienta en la vida de un analista a su vez le brinda la posibilidad de desarrollarse y brindar resultados beneficiosos para ambos tanto para el analista, como para el entorno en el cual se desenvuelve.