Casa del futuro
viernes, 15 de diciembre de 2017
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!!!!
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 GA3 se
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.
Suscribirse a:
Entradas (Atom)