27 de octubre de 2023

Fusionar dos repositorios git

 Para unir project-a en project-b


cd path/to/project-b
git remote add project-a /path/to/project-a
git fetch project-a --tags
git merge --allow-unrelated-histories project-a/master # or whichever branch you want to merge
git remote remove project-a


Fusión de subárbol

Puede fusionar el repositorio A en un subdirectorio de un proyecto B utilizando la estrategia de fusión de subárbol . Esto se describe en Subtree Merging and You por Markus Prinz.

git remote add -f Bproject /path/to/B
git merge -s ours --allow-unrelated-histories --no-commit Bproject/master
git read-tree --prefix=dir-B/ -u Bproject/master
git commit -m "Merge B project as our subdirectory"
git pull -s subtree Bproject master

--allow-unrelated-historiesSe necesita la opción para Git> = 2.9.0.)


Otro método

Otra manera que no reescribe ningún historial, por lo que todas las ID de confirmación seguirán siendo válidas. El resultado final es que los archivos del segundo repositorio terminarán en un subdirectorio. El repositorio tendrá más de una confirmación de raíz, pero eso no debería suponer un problema.

  1. Agregue el segundo repositorio como control remoto:

    cd firstgitrepo/
    git remote add secondrepo username@servername:namerepositoryandsoon
    
  2. Asegúrese de haber descargado todos los commits de secondrepo:

    git fetch secondrepo
    
  3. Cree una rama local a partir de la rama del segundo repositorio:

    git branch branchfromsecondrepo secondrepo/master
    
  4. Mueva todos sus archivos a un subdirectorio:

    git checkout branchfromsecondrepo
    mkdir subdir/
    git ls-tree -z --name-only HEAD | xargs -0 -I {} git mv {} subdir/
    git commit -m "Moved files to subdir/"
    
  5. Combina la segunda rama en la rama principal del primer repositorio:

    git checkout master
    git merge --allow-unrelated-histories branchfromsecondrepo
    




Referencias

How do you merge two Git repositories? - Stack Overflow       

¿Cómo fusionas dos repositorios Git? (qastack.mx)

Combina dos repositorios Git sin romper el historial de archivos (qastack.mx)


git commit con fecha especifica

 Se puede hacer un commit especificando la fecha y hora que uno desee, para esto primero debemos establecer una variable GIT_COMMITTER_DATE

set GIT_COMMITTER_DATE

con su valor:

set GIT_COMMITTER_DATE="2023-09-15 11:03:56"

o bien si lo unificamos

GIT_COMMITTER_DATE="2023-09-15 11:03:56" git commit --date="2023-09-15 11:03:56"

si sale algun error "no se reconoce un comando interno o externo" en Windows se puede ejecutar el siguiente comando: 

cmd /v /c "set GIT_COMMITTER_DATE=2023-09-15 11:03a +0000 &&
git commit --amend --no-edit --date=/"2023/09/15 11:03a +0000/""

o bien en la terminal CMD

set GIT_COMMITTER_DATE=2023-09-15 11:03a +0000 &&
git commit --amend --no-edit --date="2023/09/15 11:03a +0000"


Observe que se introduce la misma fecha, en el mismo orden

18 de abril de 2023

Modelos de desarrollo de sistemas

i)             Modelo Estructurado

Somerville (2011) explica que los modelos estructurales de software muestran la organización de un sistema, en términos de los componentes que constituyen dicho sistema y sus relaciones. Como modelos estáticos, muestran la estructura del diseño del sistema, o modelos dinámicos, que revelan la organización del sistema cuando se ejecuta. No son lo mismo: la organización dinámica de un sistema como un conjunto de hilos en interacción tiende a ser muy diferente de un modelo estático de componentes del sistema.

Los modelos estructurales de un sistema se crean cuando se discute y diseña la arquitectura del sistema. El UML permite especificar el papel de los objetos que participan en la asociación. En este nivel de detalle, los diagramas de clase parecen modelos semánticos de datos. Los modelos semánticos de datos se usan en el diseño de base de datos.

 



Clases y asociaciones en el Mentcare system, tomado de Sommerville (2011)


ii)           Programación Orientada a Objetos

La programación orientada a objetos es un enfoque conceptual especifico para diseñar programas, utilizando un lenguaje de programación orientado a objetos que se basa en dividir el programa en modelos de objetos físicos o simulados. Las propiedades mas importantes de la POO son:

·       Abstracción

·       Encapsulamiento

·       Polimorfismo

·    Herencia

·    Reusabilidad

Los elementos fundamentales de la POO son las clases y objetos, por lo que el enfoque orientado a objetos responde ¿Qué objetos del mundo real puede modelar? Objetos físicos en términos de sus clases, componentes, propiedades y comportamiento, y sus objetos instanciados o creados de las clases.

La idea fundamental de la orientación a objetos es combinar (encapsular) en una sola unidad tanto los datos como las funciones que operan sobre los datos.


iii)          Diccionario de Datos

El diccionario de datos se usa para buscar las estructura y relaciones del componente requerido. También las definiciones de los elementos de datos y sus relaciones (metadatos) se guardan. Además, puede ser descrito como diccionario de recursos de información.

Aunque no hay un formato estándar para la información guardada en el diccionario de datos, varias características son comunes.

·         Todos los elementos de datos definidos en todas las tablas de todas las bases de datos.

·         Las tablas definidas en todas las bases de datos

·         Los índices definidos para cada tabla de base de datos.

·         Las bases de datos definidas

·         Los usuarios y administradores de la base de datos.

·         Los programas que acceden a la base de datos.

·         Autorizaciones de acceso.

·         Las relaciones entre elementos de datos.

Como ejemplo se tienen las DBMS que pueden tener diccionarios de datos integrados o autónomos. Los metadatos guardados en el diccionario de datos con frecuencia son la base para monitorear el uso de la base de datos y la asignación de derechos de acceso a los usuarios.


iv)          Diseño de Interfaces de Usuario

Describe la presentación de información entre los actores y el sistema. Se especifica en detalle cómo se verán las interfaces de usuario al ejecutar cada uno de los casos de uso.

Se recomienda que antes de que empiece la programación, se debe desarrollar y probar algunos diseños de la interfaz de usuario.

Hace uso de algunos principios y atributos, técnicas y recursos para su inclusión. Por lo que los enfoques para el prototipado de interfaces de usuario son:

·         Enfoque dirigido por secuencias de comandos.

·         Lenguajes de programación visuales.

·         Prototipado basado en internet


v)           Lenguaje Unificado de Modelado

Es una notación estándar para el modelado de sistemas, que se usa para especificar, visualizar, construir y documentar artefactos de un sistema de software. Y su objetivo es lograr modelos que, además de describir con cierto grado de formalismo tales sistemas, puedan ser entendidos por los clientes o usuarios de aquello que se modela.


Cuestionario

 En el modelado de datos ¿Qué nivel de abstracción de datos describe como se almacenan los datos?

El nivel más bajo, el físico.

 

¿A qué modelo de datos corresponde XML, JSON?

Al modelo de datos semiestructurado

 

¿Cuáles son los modelos de datos que están basados en objetos?

El modelo entidad relación (E-R) y el orientado a objetos.

 

¿Como se clasifican los modelos de datos?

Modelo relacional

Modelo entidad – relación

Modelo de datos orientado a objetos

Modelo de datos semiestructurado

 

¿Qué modelo muestra clases conceptuales significativas en un dominio del problema?

El modelo de dominio

 

¿Cuál es la función del diccionario de datos?

Guardar las definiciones de los elementos de datos y sus relaciones (metadatos) para buscar la estructura y relaciones del componente requerido.

 

Mencione algunos de los atributos de usabilidad para el diseño de interfaces

Aprendizaje

Velocidad de funcionamiento

Robustez

Recuperación

Adaptación

 

Mencione en que consiste el prototipado del sistema en el proceso de diseño general de la UI.

Es la construcción de prototipos en papel antes de empezar la programación, para desarrollar y probar algunos diseños de la interfaz de usuario, y poder ver como se varan las interfaces al ejecutar cada uno de los casos de uso.

 

¿Para qué se utiliza el modelado de requisitos?

Su objetivo es delimitar el sistema y capturar la funcionalidad que ofrecerá desde la perspectiva del usuario. Y su propósito es comprender en su totalidad el problema y sus implicaciones. Siendo la primera actividad del desarrollo del sistema.

 

¿Qué es un modelo de objeto?

Es un modelo de un sistema de software que se estructura y organiza como un conjunto de clases de objetos y las relaciones entre dichas clases. Pueden existir varias perspectivas diferentes del modelo, como una perspectiva de estado y una de secuencia.


3

Ventajas del modelo estructurado y del modelo orientado a objetos.

Los métodos Estructurados proporcionan un marco para el modelado, así como para la obtención de requisitos y análisis del sistema.

Permiten definir un proceso para usarse en derivar un conjunto de reglas y directrices para aplicar a los modelos.

Ambos modelos ofrecen una representación grafica adecuada para ver los datos, las relaciones y sus restricciones.

Permiten un enfoque poco costoso y muy efectivo para modelar el desarrollo de sistemas.

Una característica muy deseable del OODM es su capacidad de permitir que cualquier atributo de objeto contenga objetos que definan diferentes tipos de datos (o clases) en diferentes ocasiones. Con asignación tardía el tipo de datos de un atributo no se conoce hasta el tiempo de ejecución.


4

Diagrama de Clases realizado en StarUML:

REALIZACIÓN PEDIDO TELEFÓNICO DE CLIENTE.

Elaboración de un pedido telefónico de un cliente.

 

Se debe considerar:

·         El cliente solicita un producto y es atendido por un vendedor de la empresa.

·         Si el cliente es nuevo se le abre una ficha de cliente.

·         Para el cliente y el producto solicitado se realizan simultáneamente las siguientes acciones:

o   Consultar el stock. Si no existen existencias del artículo se informa al cliente y se termina el proceso.

o   Consultar el riesgo del cliente. Si el crédito que tiene el cliente supera el valor del artículo se informa al cliente y se termina el proceso.

 

·         Una vez hechas estas comprobaciones, si son correctas, se informa del precio al cliente que lo puede aceptar o rechazar. Si lo rechaza se termina y si lo acepta el cliente realiza el pedido y el vendedor lo registra y se termina el proceso.

 

 

 



 

 

Fuentes Consultadas

Larman, C. (2002). UML y patrones. Introducción al análisis y diseño orientado a objetos (1a ed.). México: Pearson Prentice Hall.

Pressman, R. (2010). Ingeniería del software. Un enfoque práctico (7a ed.). México: Mcgraw Hill.

Silberschatz, A., Korth, H., & Sudarshan, S. (2006). Fundamentos de bases de datos (5a ed.). Madrid, España.

Sommerville, I. (2005). Ingeniería del software (7a ed.). Madrid, España: Pearson educación.

Sommerville, I. (2011). Ingeniería de software (9a ed.). Ciudad de México, México: Pearson educación.

UnADM. (2020). Unidad 1. Herramientas para el modelado de software. En Métodos y Modelos de Desarrollo de Software. Ciudad de México, México: UnADM.

UnADM. (2020). Unidad 2. Modelos para el desarrollo de software. En Métodos y modelos de desarrollo de software. Ciudad de México, México.

UnADM. (2020). Unidad 3. Modelos para el desarrollo de sistemas. En Métodos y Modelos de Desarrollo de Software. Ciudad de México, México.

Weitzenfeld, A. (2005). Ingeniería de software orientada a objetos con UML, java e Internet. Ciudad de México, México: Thomson.

27 de marzo de 2023

“Diseños de Investigación”

 

Los tipos de Investigación

 

Clasificar una investigación tiene que ver con la profundidad de la misma; es decir, según el nivel de conocimiento que se desea alcanzar. También existen otros tipos de investigaciones que se clasifican según el tiempo de duración o según la naturaleza de la información que se recoge para responder al problema de investigación

 

La Investigación Exploratoria se obtiene la información inicial para continuar con una investigación más rigurosa, o bien se deja planteada y formulada una hipótesis, es un primer acercamiento a algo que se desconoce.

 

La Investigación Descriptiva es la que se utiliza, para representar la realidad de sujetos de estudio que se pretenda analizar., en la que se examinan las características del tema a investigar, definirlo y formular hipótesis, seleccionando la técnica para la recolección de datos y las fuentes a consultar.

 

La Investigación Correlacional mide el grado de relación que existe entre dos o más conceptos o variables, en un contexto en particular. para saber cómo se puede comportar un concepto o variable conociendo el comportamiento de otra u otras variables relacionadas.

 

La Investigación Explicativa se acerca y busca explicar las causas que originaron, es decir, interpreta una realidad o la explicación del por qué y para qué del objeto de estudio; a fin de ampliar el “¿Qué?” de la investigación exploratoria y el “¿cómo?” de la investigación descriptiva. Es decir busca establecer las causas en distintos tipos de estudio, estableciendo conclusiones y explicaciones para enriquecer o esclarecer las teorías, confirmando o no la tesis inicial.

 

 


Título de la Investigación

Ingeniería Del Software y Ciberseguridad

Problema que aborda

La tendencia a pensar que la ciberseguridad es solo añadir subsistemas de hardware y software a nuestro sistema informático. Y la tendencia a menospreciar la ingeniería del software, hay quien ha escrito que la ingeniería del software no debería ser ingeniería;

Pregunta de investigación  o Hipótesis

Qué relación hay entre ingeniería del software y ciberseguridad para el desarrollo de software seguro y de calidad

Objetivos

Demostrar la necesidad de la ingeniería del software mediante la demostración de la falsedad de algunos de los mitos más perniciosos sobre el desarrollo del software.

Demostrar que la ingeniería del software es necesaria para desarrollar software de calidad.

Establecer la relación entre software de calidad y software seguro.

Determinar la relación entre el software seguro y la ciberseguridad.

Analiza someramente el impacto del factor humano en la ingeniería del software y en la ciberseguridad.

Metodología

Para demostrar la relación entre ingeniería del software y ciberseguridad se ha seguido un proceso lógico identificando la influencia de los mitos que se investigan, tratando de comprender el propio marco referencial de lo investigado, así como trata de ser objetivo y neutral para valorar las proposiciones existentes.

Instrumentos utilizados

Ver 5 de los muchos mitos que hay sobre el software y su desarrollo, eligiendo los cinco señalados por Cerrada (2007)

¿Tiene relación los objetivos con la metodología y el alcance planteado?

En cierta medida tiene un valor explicativo, aunque parcial, ya que el hecho de saber que los conceptos o variables se relacionan aporta cierta información explicativa, en la que se demuestra cuantitativamente los mitos de que el hardware es más importante que el software y cualitativamente la relación entre ingeniería de software y ciberseguridad. Por lo que existe relación entre el alcance

 

 

 


 

 

Título de la Investigación

Los Adolescentes y El Uso De Las Redes Sociales

Problema que aborda

Las TIC se han convertido en el agente de socialización y de transferencia cultural más importante en este nuevo milenio Los jóvenes perciben que el que no está en la red, “no existe”. Y esto puede entrañar sus riesgos para los adolescentes.

Pregunta de investigación  o Hipótesis

Como influencia en la vida de los adolescentes de la Comunidad Autónoma de Cantabria las Tecnologías de la Información y la Comunicación

Objetivos

Analizar algunas características relevantes de una muestra del uso de internet y de las redes sociales de los adolescentes escolarizados en la Comunidad Autónoma de Cantabria.

Metodología

Se optó por un muestreo por conglomerados, estratificado con el fin de que pudiera considerarse representativa de la CCAA. Utilizando la metodología de encuestas de manera presencial en línea.

Instrumentos utilizados

El instrumento utilizado fue un cuestionario amplio en el que se analizan una serie de áreas consideradas de relevancia para la investigación.

¿Tiene relación los objetivos con la metodología y el alcance planteado?

Existe relación en la integración del proceso del desarrollo de investigación al establecer una hipótesis donde los adolescentes están absortos en la red, planteando objetivos consistentes donde se pretende alcanzar las características del uso del internet y redes sociales, y delimitando esto al problema que se aborda con los adolescentes escolarizados en la comunidad, y con la metodología establecida se forman los resultados.

 

 

 

 

Título de la Investigación

Informática Forense

Problema que aborda

Comprobar técnicamente modificaciones en el sistema informático, extracciones de información, lectura de mensajes sin consentimiento del titular, o acceso sin autorización a datos.

Pregunta de investigación  o Hipótesis

¿cómo acreditar técnicamente algunos delitos informáticos?

Objetivos

Examinar la evidencia digital y recolectar pruebas informáticas para ser utilizadas en un procedimiento legal

Metodología

El análisis del disco duro se realiza por medio de un filtro de búsqueda selectivo definiendo palabras claves, obteniendo los fragmentos de texto para determinar si es necesario consultar la totalidad del fichero.

Instrumentos utilizados

Los datos se recopilan por medio de una copia clónica del disco duro del ordenador, para examinarla en el laboratorio de informática forense sin manipular la prueba electrónica original

¿Tiene relación los objetivos con la metodología y el alcance planteado?

Existe relación debido a que integra el proceso del desarrollo de investigación al establecer la pregunta de investigación, planteando objetivos específicos consistentes con el problema que se aborda, y delimitando los alcances

 

 

 


Cerrada, J. et al. (2007). Introducción a la ingeniería del software. Madrid: Editorial universitaria Ramón Areces, 9-10

 

Del BARRIO FERNÁNDEZ, Á., & Ruiz Fernández, I. (2014). LOS ADOLESCENTES Y EL USO DE LAS REDES SOCIALES. International Journal of Developmental and Educational Psychology, 3 (1), 571-576.

 

Hernández Sampier, R. (2004). Metodología de la Investigación. La Habana. Editorial Felix Varela.

 

Hidalgo Tarrero, J. (2014). INGENIERÍA DEL SOFTWARE Y CIBERSEGURIDAD. Instituto Español de Estudios Estratégicos, 88, Recuperado de http://www.ieee.es/Galerias/fichero/docs_opinion/2014/DIEEEO88-2014_Ingenieria_Software_Ciberseguridad_HidalgoTarrero.pdf

 

Picón, E. (2016) Informática Forense. LA GACETA. Recuperado de https://peritoinformatico.es/blog/articulo-informatica-forense/

 

Universia, (2017) Tipos de investigación: Descriptiva, Exploratoria y Explicativa; Costa Rica. Recuperado de http://noticias.universia.cr/educacion/noticia/2017/09/04/1155475/tipos-investigacion-descriptiva-exploratoria-explicativa.html