miércoles, 29 de noviembre de 2017

Interfaz de Swee Home3D

                                                                    Interfaz


Elementos para diseñar la casa


Vercion del Programa




Otros elementos para el diseño de la casa

martes, 14 de noviembre de 2017

Definicion de UML


DEFINICIÓN Y CONCEPTO DE UML

UML son las siglas de “Unified Modeling Language” o “Lenguaje Unificado de Modelado”. Se trata de un estándar que se ha adoptado a nivel internacional por numerosos organismos y empresas para crear esquemas, diagramas y documentación relativa a los desarrollos de software (programas informáticos).

¿QUÉ ES Y PARA QUÉ SIRVE UML?

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, funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y compuestos reciclados.
El término “lenguaje” ha generado bastante confusión respecto a lo que es UML. En realidad, el término lenguaje quizás no es el más apropiado, ya que no es un lenguaje propiamente dicho, sino una serie de normas y estándares gráficos respecto a cómo se deben representar los esquemas relativos al software.
UML es una herramienta propia de personas que tienen conocimientos relativamente avanzados de programación y es frecuentemente usada por analistas funcionales (aquellos que definen qué debe hacer un programa sin entrar a escribir el código) y analistas-programadores (aquellos que, dado un problema, lo estudian y escriben el código informático para resolverlo en un lenguaje como Java, C#, Python o cualquier otro).







lunes, 6 de noviembre de 2017

Ingeniería de Requisitos


Ingeniería de Requisitos

En la ingeniería de sistemas y la ingeniería de software, la Ingeniería de requisitos o Ingeniería de requerimientos​ comprende todas las tareas relacionadas con la determinación de las necesidades o de las condiciones a satisfacer para un software nuevo o modificado, tomando en cuenta los diversos requisitos de las partes interesadas, que pueden entrar en conflicto entre ellos.

Muchas veces se habla de requerimientos en vez de requisitos; esto se debe a una mala traducción del inglés. La palabra requirement debe ser traducida como requisito, mientras que requerimiento se traduce al inglés como request.

El propósito de la ingeniería de requisitos es hacer que los mismos alcancen un estado óptimo antes de alcanzar la fase de diseño en el proyecto. Los buenos requisitos deben ser medibles, comprobables, sin ambigüedades o contradicciones, etc.

martes, 31 de octubre de 2017

Modelo de Negocios


Modelo de Negocios:

Un modelo de negocios es una "representación abstracta de una organización, ya sea de manera textual o gráfica, de todos los conceptos relacionados, acuerdos financieros, y el portafolio central de productos o servicios que la organización ofrece y ofrecerá con base en las acciones necesarias para alcanzar las metas y objetivos estratégicos.

Esta definición de Al-Debei, indica que la propuesta de valor, la arquitectura de valor (infraestructura organizacional y tecnológica), valor financiero y valor de red son las dimensiones primarias de los modelos de negocio.

Un modelo de negocio describe de manera racional cómo una organización crea, entrega y captura valor en contextos sociales, culturales, etc. El proceso de construcción de un modelo de negocios es parte de la estrategia de negocios. 

En la teoría y la práctica, el término modelo de negocio es utilizado para un amplio conjunto de descripciones que representan aspectos centrales de un negocio, entre ellos el propósito, proceso de negocio, mercado objetivo, las ofertas, estrategias, infraestructura, estructuras organizacionales, prácticas de comercio, procesos operacionales y las políticas. La literatura ha ofrecido diversas interpretaciones de los modelos de negocio. Por ejemplo, se suelen definir como diseños de las estructuras organizacionales para aprovechar una oportunidad comercial.

Los modelos de negocio son utilizados para describir y clasificar negocios, específicamente en un contexto de emprendimiento, pero también se utiliza dentro de las empresas por los directivos para explorar las posibilidades de desarrollo en el futuro. Los modelos de negocio privados, y conocidos, pueden ser como "recetas" para los directivos.
 Los modelos de negocio también suelen ser mencionados en el contexto de la contaduría dentro del desarrollo de reportes públicos.

Avance del Proyecto en Project Libre

Introduccion!!!!



Interfaz!!!!


Creacion del Proyecto!!!!

Campo de Trabajo!!!!

Asignacion de Tareas!!!!

WBS Mapa de Tareas Asignadas!!!!

jueves, 7 de septiembre de 2017

Metodologias de Desarrollo de Software


1.3.1 Metodologías clásicas

Cascada

En Ingeniería de Software el desarrollo en cascada, también llamado modelo en cascada, es el enfoque metodológico que ordena rigurosamente las etapas del proceso para el desarrollo de software de tal forma que el inicio de cada etapa debe esperar a la finalización de la etapa anterior.


Desventajas:
·         Los proyectos reales raramente siguen el flujo secuencial que propone el modelo, siempre hay iteraciones y se crean problemas en la aplicación del paradigma.
·         Normalmente, es difícil para el cliente establecer explícitamente al principio  todos los requisitos. El ciclo de vida clásico lo requiere y tiene dificultades en acomodar posibles incertidumbres que pueden existir al comienzo de muchos productos.
·         El cliente debe tener paciencia. Hasta llegar a las etapas finales del proyecto, no estará disponible una versión operativa del programa. Un error importante no detectado hasta que el programa este funcionando puede ser desastroso.

Método Incremental

El modelo incremental es una evolución del modelo de cascada; viene a suplir el problema de no poder retroceder en las fases de desarrollo del software. Es, por tanto, un modelo no secuencial. El funcionamiento es sencillo. Comienza con el análisis de los requisitos, tras el cual se prepara un primer diseño. La novedad de este modelo respecto del anterior, es la introducción de iteraciones para dividir diseños.

  

 Evolutivo

Desarrollo evolutivo. Este enfoque entrelaza las actividades de especificación, desarrollo y validación. Un sistema inicial se desarrolla rápidamente a partir de especificaciones abstractas. Éste se refina basándose en las peticiones del cliente para producir un sistema que satisfaga sus necesidades.
El desarrollo evolutivo consta del desarrollo de una versión inicial que luego de exponerse se va refinando de acuerdo de los comentarios o nuevos requerimientos por parte del cliente o del usuario final. Las fases de especificación, desarrollo y validación se entrelazan en vez de separarse.
Existen dos tipos de desarrollo evolutivo:




 Espiral

La metodología de desarrollo en espiral es una evolución de método clásico en cascada (Waterfall, top-down) y se considera un método de desarrollo incremental. Este tipo de metodología equivale al de cascada, pero en él se permite el solapamiento de varias etapas con el objetivo de flexibilizar y compensar el tiempo de desarrollo total y alcanzar resultados funcionales en etapas tempranas. Está considerada como un método de desarrollo rápido y eficiente.

Ventajas
·         Permite el desarrollo de proyectos en donde los objetivos finales están perfectamente definidos pero todos los detalles no pueden ser completamente establecidos al principio.
·         Es adaptable: algunos de los requerimientos (que no los objetivos) pueden cambiar durante el ciclo de desarrollo.
·         Permite la especialización de los equipos de trabajo.
·         Apela a una gestión de proyecto ordenada.
·         Facilita la distribución de recursos de desarrollo.
·         Economía: es posible mantener constantes los recursos de desarrollo.

·         Permite conseguir funcionalidad en etapas tempranas.

Prototipos

Este modelo consiste en un procedimiento que permite al equipo de desarrollo diseñar y analizar una aplicación que representa el sistema que sería implementado (McCracken y Jackson, 1982). Dicha aplicación, llamada prototipo, está compuesta por los componentes que se desean evaluar (i.e. las funciones principales).

Desarrollo basado en componentes

La metodología de software basada en Componentes surgió a finales de los 90's como una aproximación basada en la reutilización al desarrollo de sistemas de software. Está metodología fue motivada por la frustración de los desarrolladores de que el modelo orientados a objetos no aplicaba una reutilización extensiva, tal como ésta sugería originalmente, debido a que la utilización de clases implica el conocimiento detallado de ellas, lo cual significa que se debía tener acceso al código fuente lo que imposibilitaba el marketing de clases para su reutilización.

Otras Metodologías
Ganar-ganar

Para la metodología del desarrollo del proyecto GAse utilizó principalmente el modelo reciente Ganar-ganar ya que con este existen ganancias para todas las partes implicadas en nuestro caso para el usuario en el aprendizaje del dialecto mazahua y la recuperación del mismo en la sociedad y para el desarrollador en cuestión monetaria y emocional ya que se obtiene una satisfacción al realizar un sistema que pueda salvar un dialecto tan importante como el mazahua, para poder entender porque fue que nos referimos a dar a conocer que este modelo es el indicado, se dará una breve explicación de lo que trata este modelo para justificar su uso en nuestro sistema GA3.



Proceso Unificado (UP)

El Proceso Unificado de Desarrollo Software o simplemente Proceso Unificado es un marco de desarrollo de software que se caracteriza por estar dirigido por casos de uso, centrado en la arquitectura y por ser iterativo e incremental. El refinamiento más conocido y documentado del Proceso Unificado es el Proceso Unificado de Rational o simplemente RUP.




Metodologías Ágiles

El desarrollo ágil de software son métodos de ingeniería del software basados en el desarrollo iterativo e incremental, donde los requerimientos y soluciones evolucionan mediante la colaboración de grupos auto organizados y multidisciplinarios. Existen muchos métodos de desarrollo ágil; la mayoría minimiza riesgos desarrollando software en lapsos cortos. El software desarrollado en una unidad de tiempo es llamado una iteración, la cual debe durar de una a cuatro semanas.


Reingeniería

Los principios en que se basa la reingeniería, lejos de responder ahora a una moda más, revolucionan radicalmente la forma en que se ha diseñado el trabajo en el siglo XX, y constituyen una alternativa permanente de efectividad organizacional para los ejecutivos.
Todo esto provoco que para que las empresas se adaptaran y modificaran su entorno competitivo y dinámico aplicaran mecanismos de reingeniería para imponer un nuevo producto, proceso productivo o paradigma organizacional, constituyendo esto una nueva tendencia en el desarrollo de las organizaciones y que haya sido el resultado de los cambios cada vez más rápidos en su entorno.









1.3.2 Metodologías Agiles

Las metodologías ágiles son métodos de desarrollo de software en los que las necesidades y soluciones evolucionan a través de una colaboración estrecha entre equipos multidisciplinarios. Se caracterizan por enfatizar la comunicación frente a la documentación, por el desarrollo evolutivo y por su flexibilidad.
Existe una denominada Alianza Ágil que define los siguientes 12 principios para toda metodología ágil:

1.   Satisfacer al cliente con entregas tempranas y continuas de software valioso.
2.   Los requisitos cambiantes son bienvenidos, incluso en fases tardías del desarrollo.
3.   Entregar con frecuencia software funcionando, -de dos semanas a dos meses,- cuanto antes se haga mejor.
4.   El cliente y los desarrolladores deben trabajar juntos a diario a lo largo del proyecto.
5.   Individuos motivados. Darles el ambiente y el soporte que necesitan, y confiar en ellos para obtener el trabajo realizado.
6.   El método más eficiente y efectivo de transmitir información hacia y dentro del equipo es la conversación cara a cara.
7.   El software en funcionamiento es la medida principal de progreso.
8.   El desarrollo debe ser sostenible. Los participantes deben ser capaces de mantener un paso constante de manera indefinida.
9.   Atención continua a la excelencia técnica y a un buen diseño.
10. La simplicidad es esencial, maximizando el avance del trabajo no realizado.
11. Las mejores arquitecturas, los mejores requisitos y los mejores diseños emergen de equipos auto-organizados.
12. A intervalos regulares el equipo refleja la forma en que se puede volver más efectivo, entonces su comportamiento se ajusta y adecua en concordancia.






    1.3.3 Metodologías Otras Filosofías

·         La "Programación estructurada" o la "Programación Orientada a Objetos" son paradigmas o modelos de programación. Indican pautas de comportamiento en los sistemas de programación... no tienen nada que ver con el ciclo de vida del software ni la manera en la que debe realizarse cada tarea para un proyecto concreto... así pues... NO SON METODOLOGÍAS.

El lenguaje UML (Unified Modeling Languaje) es un gran logro de la ingeniería. Aún con sus carencias, y puntos criticables es un avance muy significativo: un lenguaje común para que todos los profesionales del desarrollo de sistemas -de software o no- expresen sus ideas... pero el UML no le indica a nadie la manera de realizar las cada tarea en un proyecto concreto: tan solo es una herramienta para expresar ideas... así pues... NO ES UNA METODOLOGÍA. Sin embargo, algunas metodologías de las que hemos comentado, como RUP o METRICA hacen referencia a UML como herramienta para expresar ideas.

Ejemplo de Heramienta Case


ProjectLibre es un software de administracion de proyectos de codigo abierto, similar a Microsoft Project. ProjectLibre corre sobre la Plataforma Java, lo que permite ejecutarlo en varios sistemas operativos.

El Software ProjectLibre Forma Parte de la Herramienta Case:






jueves, 24 de agosto de 2017

Conceptos Basicos


1.1 Conceptos basicos:

La ingeniería de software es una disciplina formada por un conjunto de métodos, herramientas y técnicas que se utilizan en el desarrollo de los programas informáticos (software).

Esta disciplina  trasciende la actividad de programación, que es la actividad principal a la hora de crear un software. El ingeniero de software se encarga de toda la gestión del proyecto  para que éste se pueda desarrollar en un plazo determinado y con el presupuesto previsto.

La ingeniería de software, por lo tanto, incluye el análisis previo de la situación, el diseño del proyecto, el desarrollo del software, las pruebas necesarias para confirmar su correcto funcionamiento y la implementación del sistema.


Los Ingenieros de Software deben:


·         Adoptar un enfoque sistemático para llevar a cabo su trabajo.


·         Utilizar las herramientas y técnicas apropiadas para resolver el problema planteado, de acuerdo a las restricciones de desarrollo y a los recursos disponibles.

Fases de la Ingenieria de Software


1.2 Fases de la Ingenieria de Software

Etapa de análisis: Es el proceso de investigar un problema que se quiere resolver. Definir claramente el Problema que se desea resolver o el sistema que se desea crear. Identificar los componentes principales que integrarán el producto.
Etapa de Diseño: Es el proceso de utilizar la información recolectada en la etapa de análisis al diseño del producto. La principal tarea de la etapa de diseño es desarrollar un modelo o las especificaciones para el producto o Componentes del Sistema.
 Etapa de Desarrollo: Consiste en utilizar los modelos creados durante la etapa de diseño para crear los componentes del sistema.
Etapa de Pruebas o Verificación Prueba : Consiste en asegurar que los componentes individuales que integran al sistema o producto, cumplen con los requerimientos de la especificación creada durante la etapa de diseño. Se recomienda aplicar las etapas: • Análisis • Diseño • Desarrollo • Prueba A cada uno de los ejercicios de este curso.
Etapa de Implementación o Entrega Implantación: Consiste en poner a disposición del cliente el producto.
 Etapa de Mantenimiento: Consiste en corregir problemas del producto y re- liberar el producto como una nueva versión o revisión (producto mejorado).
Etapa final EOL (End-of-Life) El fin del ciclo del producto consiste en realizar todas las tareas necesarias para asegurar que los clientes y los empleados están conscientes de que el producto ya no será vendido ni soportado.