miércoles, 23 de noviembre de 2011

Puntos Extras

Sistemas Distribuidos

Un sistema distribuido se define como una colección de computadores autónomos conectados por una red, y con el software distribuido adecuado para que el sistema sea visto por los usuarios como una única entidad capaz de proporcionar facilidades de computación. [ Colouris 1994 ]
Los sistemas distribuidos se implementan en diversas plataformas hardware, desde unas pocas estaciones de trabajo conectadas por una red de área local, hasta Internet, una colección de redes de área local y de área extensa interconectados, que en lazan millones de ordenadores.
Las aplicaciones de los sistemas distribuidos varían desde la provisión de capacidad de computo a grupos de usuarios, hasta sistemas bancarios, comunicaciones multimedia y abarcan prácticamente todas las aplicaciones comerciales y técnicas de los ordenadores. Los requisitos de dichas aplicaciones incluyen un alto nivel de fiabilidad, seguridad contra interferencias externas y privacidad de la información que el sistema mantiene. Se deben proveer accesos concurrentes a bases de datos por parte de muchos usuarios, garantizar tiempos de respuesta, proveer puntos de acceso al servicio que están distribuidos geográficamente, potencial para el crecimiento del sistema para acomodar la expansión del negocio y un marco para la integración de sistema usados por diferentes compañías y organizaciones de usuarios.
Características:
• Concurrencia.- Esta característica de los sistemas distribuidos permite que los recursos disponibles en la red puedan ser utilizados simultáneamente por los usuarios y/o agentes que interactúan en la red.
• Carencia de reloj global.- Las coordinaciones para la transferencia de mensajes entre los diferentes componentes para la realización de una tarea, no tienen una temporización general, esta más bien distribuida a los componentes.
• Fallos independientes de los componentes.- Cada componente del sistema puede fallar independientemente, con lo cual los demás pueden continuar ejecutando sus acciones. Esto permite el logro de las tareas con mayor efectividad, pues el sistema en su conjunto continua trabajando.


Antipatron

Un antipatron del diseño es la parte inversa de lo que es un patrón, por lo tanto es un contexto que conduce a una mala solución de un problema presentado. En este contexto se prepara al diseñador para que no trabaje mediante la intuición ya que los antipatrones son documentados para que los compañeros no escojan las malas soluciones, aunque se consideran una buena practica en el diseño de programación debido a que los programadores deben de reconocer los antipatrones e identificarlos a simple vista para evitarlos en el ciclo de formación del software. El concepto se puede aplicar en el área de la ingeniería de una manera general y de una manera u otra en todas las áreas donde se desarrolla el ser humano, aunque no es escuchada con frecuencia fuera del campo de la ingeniería.
El concepto de antipatron tuvo sus orígenes en el libro Design Patterns , donde participo Gang of Four, en este los artistas declararon dichas soluciones como patrones de diseño y describen los antipatrones como la contraparte de los patrones de diseño. Algunos de los antipatrones de gestión son : Responsable ausente , el cual es una situación donde el responsable o el principal coordinador se ausenta en un paradero desconocido, niñito de oro, es una situación donde algunas responsabilidades recaen en manos de miembros del grupo por medio de relaciones personales ,gestor pero no líder es una situación en el que existe un coordinador de cualidades brillantes pero sin don de liderazgo , las estrellas nacientes, es aplicado a personas que tienen un amplio potencial en el desarrollo del trabajo. Otros son recién llegados, ejecutivos sin carácter, arma definitiva, pollo sin cabeza, rodeos improductivos, negociador de jaula de acero, entre otras. Otros antipatrones están dedicados a la gestión de proyectos, el diseño de software, diseño orientado a objetos, programación, gestión de la configuración, entre otras áreas del diseño de la programación.
Al documentarse los antipatrones, además de los patrones de diseño, se dan argumentos a los diseñadores de sistemas para no escoger malos caminos, partiendo de documentación disponible en lugar de simplemente la intuición.
Los antipatrones se consideran una parte importante de una buena práctica de programación. Es decir, un buen programador procurará evitar los antipatrones siempre que sea posible, lo que requiere su reconocimiento e identificación tan pronto como sea posible, dentro del ciclo de vida del software.
El concepto de antipatrón se puede aplicar a la ingeniería en general, e incluso a cualquier tarea realizada por el hombre. Aunque no se escucha con frecuencia fuera del campo ingenieril, la noción está ampliamente extendida.

conceptos

UML: es un conjunto de herramientas, que permite modelar (analizar y diseñar) sistemas orientados a objetos.
OMG: El Object Management Group u OMG (de sus siglas en inglés Grupo de Gestión de Objetos) es un consorcio dedicado al cuidado y el establecimiento de diversos estándares de tecnologías orientadas a objetos, tales como UML, XMI, CORBA. Es una organización sin ánimo de lucro que promueve el uso de tecnología orientada a objetos mediante guías y especificaciones para las mismas. El grupo está formado por diversas compañias y organizaciones con distintos privilegios dentro de la misma.

- OOSAD: Object-Oriented Systems Analysis and Design, que los modelos de enfoque de un sistema como un grupo de interacción de objetos . Cada objeto representa una entidad de interés en el sistema que se modela y se caracteriza por su clase, su estado (elementos de datos), y su comportamiento.
OOSE: Object-Oriented Software Engineering (OOSE) es una técnica de diseño de software que se utiliza en el diseño de software de programación orientada a objetos. OOSE es desarrollado por Ivar Jacobson en 1992. OOSE es la primera metodología orientada a objetos de diseño que emplea a los casos de uso en el diseño de software.OOSE es uno de los precursores del Lenguaje de Modelado Unificado (UML), como Booch y OMT.Se incluye un requisitos, un análisis, un diseño, implementación y un modelo de prueba. Los diagramas de interacción son similares a los diagramas de secuencia UML. Diagramas de transición de estado son como los diagramas de estados UML.
.
OOP: La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe variedad de lenguajes de programación que soportan la orientación a objetos.

Biblioteca

 Caso Biblioteca
• La universidad X tiene un sistema de información que le 
maneja el catálogo de biblioteca y los préstamos.
• El usuario ingresa con un nombre (matrícula, # de nómina) 
y contraseña (nip asignado por biblioteca).
• Puede buscar dentro del catálogo aquellos libros que le 
interesan; se le despliegan los datos bibliográficos (incluida 
imagen).
– Considerar que el libro no siempre está disponible: prestado, en 
reparación, en encuadernación, apartado, etc.
• También se puede sacar los libros prestados
– Siempre y cuando el usuario no tenga muchas multas.
– Si los libros son de consulta, no se pueden sacar.
– El tiempo de préstamo es diferente si se trata de un alumno de 
licenciatura, maestría, doctorado o un maestro.



Herencia.
Usuario
·                     Alumno
1.                 Licenciatura
2.                 Maestría
3.                 Doctorado
·                     Empleado
1.                 Profesor
·                     Préstamo
1.                  Licenciatura
2.                 Maestría
3.                 Doctorado
4.                 Maestro

Realizado por:
Ana Lucia Macias Ortiz 
Sofia Carolina Rosas Vazquez

Diagrama

Diagramas UML

Lenguaje Unificado de Modelado (LUM o UML, por sus siglas en inglés, Unified Modeling Language) es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; está respaldado por el OMG (Object Management Group). Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocio, funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y componentes reutilizables.

Herramientas UML

Pero volviendo a la definición de UML como "conjunto de herramientas", si nos imaginamos UML como una caja de herramientas con su martillo, destornillador, alicates, etc. Veamos qué contiene nuestra caja de herramientas:


Diagrama de casos de uso
Diagrama de clases
Diagrama de estados
Diagrama de secuencias
Diagrama de actividades
Diagrama de colaboraciones
Diagrama de componentes
Diagrama de distribución
Pero siguiendo con la analogía, si vamos a colgar un cuadro no usaremos todas las herramientas de nuestra caja, posiblemente sólo usemos el martillo para clavar el clavo.

Lo mismo pasa con UML, una vez que conozcamos las herramientas usaremos en cada momento las más adecuadas a nuestras necesidades. Nos os voy a decir que esto sea fácil, pues hay que saber para qué sirven y qué limitaciones tienen unas y otras para conocer su utilidad. Pero se puede alcanzar este conocimiento con un poco de práctica y sentido común.


¿Qué no es UML?

UML no es un método de desarrollo. No te va a decir cómo pasar del análisis al diseño y de este al código. No son una serie de pasos que te llevan a producir código a partir de unas especificaciones.

UML al no ser un método de desarrollo es independiente del ciclo de desarrollo que vayas a seguir, puede encajar en un tradicional ciclo en cascada, o en un evolutivo ciclo en espiral o incluso en los métodos ágiles de desarrollo.
http://www.ingenierosoftware.com/analisisydiseno/uml.php
http://es.wikipedia.org/wiki/Lenguaje_Unificado_de_Modelado

Patrones de Diseño

Un patrón describe un problema que ocurre de forma repetida y sin parar… y después describe la base de la solución a ese problema, de una manera tal que uno puede utilizar esta solución un millón de veces.

Un patrón de diseño (en programación orientada a objetos, POO) es una descripción de diversos objetos y clases preparados para resolver un problema de diseño general aplicado a un contexto específico. Un patrón de diseño identifica las instancias y clases que participan en dicho patrón además de sus papeles, sus relaciones y sus responsabilidades para llevar a cabo la tarea a resolver. Cada patrón de diseño se centra en resolver un problema particular en la POO. Describe cuando se puede aplicar, si puede ser aplicado desde el punto de vista de las limitaciones del diseño y las consecuencias tanto positivas como negativas que tiene su utilización.
parámetros que se emplean para describir los patrones de diseño:

Nombre del patrón y clasificación, intención (¿Que hace este patrón?) ,otros nombres por los que también es conocido, motivación (escenario que ilustra su funcionamiento), aplicabilidad (en que escenarios es válido), estructura (representación gráfica de las clases involucradas y diagramas de interacción para ilustrar secuencias de peticiones y colaboraciones entre objetos), participantes (clases, objetos y sus responsabilidades), colaboraciones (como los participantes pueden colaborar en sus responsabilidades), consecuencias (¿Cómo el patrón realiza su cometido?¿Cuales son los compromisos a tener en cuenta al aceptar esta solución?), implementación (dificultades, riesgos, pistas o técnicas a tener en cuenta a la hora de implementar el patrón), ejemplo de código, usos conocidos y patrones relacionados.

http://www.novanebula.net/blog/archives/151-Patrones-de-diseno.html
http://www.minid.net/2006/01/02/patrones-de-diseno/
http://es.wikipedia.org/wiki/Patrón_de_diseño

jueves, 3 de noviembre de 2011

Patrones de Diseño

Los patrones de diseño que yo pienso que pudieran quedar con mi proyecto son: 

- Observador: este seria un patron ya que para ver las puntuaciones finales necesita tener los otros puntajes. 

Fábrica Abstracta [Creacional] “Permite trabajar con objetos de distintas familias de manera que las familias no se mezclen entre sí y haciendo transparente el tipo de familia concreta que se esté usando. En mi programa seria al momento de las diferentes tipos de puntajes pero aun asi del mismo tipo

El patrón de diseño State se utiliza cuando el comportamiento de un objeto cambia dependiendo del estado del mismo, este seria para definir los estados de  en progreso, nada  y acabada.

Pruebas

Herencia en mi proyecto

La herencia de mi proyecto se aplicaría según yo en tres casos especiales:

  • Primero en  la sección de junta de jefas pues de ahí se crea o se hacen submenús que seria junta de jefas en la mañana y junta de jefas con el material y se eliminase el apartado de junta de jefas se perdería toda
  • Luego se notaría en asistencia porque de la asistencia se deriva dependiendo de las insignias que las niñas tienen y de si el eslabón trae o no distintivos
  • Y al final sería en Técnica, osea en la construcción porque de ahí se necesitan los demás aspectos como amarres buenos, amarres malos, puntos extras, estética, firmeza

sábado, 24 de septiembre de 2011

Cuarta entrada Retroalimentacion

Un ejercicio que realizamos en clase fue la retroalimentacion de proyectos como compañera tuve a Sofia Rosas que va a hacer como proyecto un sistema para implementar en su papelería donde iria ingresando los materiales vendidos y listado de materiales. Le sugerí que ademas de eso cuando llegase a un numero determinado o mas bien limite el programa le informase que se estaba acabando ese producto para asi saber que rebastecer y no rebastecer ese producto cuando ya no tuviese ese producto. Las dos tuvimos la idea de que cuando nuestro proyecto funcionase deberiamos tomar video funcionando ademas de hacer un manual de usuario para que otra persona lograse usarlo de la manera correcta.

Tercer entrada

Aqui estan las clases que creo yo encontre en mi programa


Clase: Listado de lugares
Atributos:  puntuaciones  en  técnica, intelectual,  asistencia, material, pasada de pruebas, puntos extras
Metodo: Acomodar conforme se va ingresando los datos de mayor a menor, Ver el listado, salir
Clase: junta de jefas
Atributos: eslabones, materiales, maquetas
Metodo: Ingresar datos , multiplicar los números para irlos ordenando
Clase: Tecnica
Atributos: numero de amarres bien hechos, numero de amarres mal hechos, estética, firmeza, tejidos
Metodo: Ingresar los datos correspondientes para multiplicar e ir sumando los datos y ordenarlos
Clase : Asistencia
Atributos: cursos, uniforme completo, distintivos
Metodo: Ingresar los datos de cada aspecto, sumar y multiplicar dependiendo del caso
Clase: Fisica(triangulo)
Atributos: Numero de niñas en  cada triangulo(pequeño, mediano y grande)
Metodo: Ingresar el numero de niñas vivas dependiendo de cada triangulo, multiplicar y sumar


*Nota: en fisica escogi un juego al azar en la realizacion de mi programa tendre que preguntar por el juego que ese sabado se va a jugar para asi poder realizar con el juego correcto

jueves, 25 de agosto de 2011

Primer Entrada


La primer entrada en el blog es una descripción de lo que sera mi trabajo
La cadena esta conformada por eslabones y
cada eslabón suele contar con un mínimo de 8 niñas
final en la materia de Programacion Orientada a Objetos. Mi programa tratara de ahorrar tiempo a la jefatura de una cadena o un escuadrón en el momento de dar puntuaciones. Tomando en cuenta los diferentes rubros de calificar y otorgar los puntos para las puntuaciones finales y así ahorrar tiempo y esfuerzo, ya que las puntuaciones suelen hacerse  con calculadora en mano  y a veces hay errores o suele perderse mucho tiempo.
Cadena es un grupo de niñas y adolecentes de entre  12 y 18 años que se dividen por eslabones, todos son liderados por la jefatura quien es la que se encarga en hacer las puntuaciones, organizar los juegos y todo lo que la cadena necesite.
Las construcciones son diferentes y
se toman en cuenta diferentes puntos
Un ejemplo sencillo seria un sábado normal de junta en cadena, se toma en cuenta a las niñas que van a pasar pruebas, depende de que insignia se busque y de que si paso o no la prueba se dan determinados puntos, empezando la junta se toma asistencia el numero de niñas sin curso vale determinados puntos y si tiene insignias de iniciadas, adiestradas jefas subjefas(para cada insignia se tiene que haber pasado las pruebas necesarias de los cursos) y también si llevan su uniforme completo, además de si tienen distintivos, todo tiene diferentes puntos. Luego para calificar la construccion se toma en cuenta  el numero de amarres, firmeza, estética, etc. También en juego son puntuaciones diferentes si se pierde no hay puntos si se llega a empatar hay determinados puntos y también si se gana. También durante toda la junta se dan puntos o también se quitan.  Y al final de la junta la jefatura cuenta todo esto lo suma y después dan a conocer los
La jefatura dando a conocer los lugares
en que cada eslabón quedo
lugares de cada eslabón conforme a sus puntuaciones. Son muchas cosas que a lo largo del semestre en lo que estaré avanzando mi programa iré describiendo con mas detalle cada aspecto.Mi programa sera desarrollado para ahorrar tiempo y hacer mas eficaz el trabajo de la jefatura. Pues los datos serán ingresados y multiplicaran sumaran o restaran según sea el caso para después ir ordenándolos por lugares. Espero que mi programa pueda a llegar a ser implementado y usado satisfactoriamente.