Teoria General De Sistemas

Aqui encontraras temas que te ayudaran con conocimiento basico de un ingeniero que esperas para la informacion

Comienza ahora con tu conocimiento

¿Qué aprenderás en este curso?

Aprenderas los temas basicos de un geniero de sistemas, encontraras un buen conocimientos de un ingeniro, muy garantazada la informacion

¿Qué es la Teoría General de Sistemas?

La teoría de sistemas o teoría general de los sistemas es el estudio interdisciplinario de los sistemas en general. Su propósito es estudiar los principios aplicables a los sistemas en cualquier nivel en todos los campos de la investigación. Teoria General de Sistemas, mas que teoría se trata de una concepción estructurada o metodología que tiene como propósito estudiar el sistema como un todo, de forma integra, tomando cómo base sus componentes y analizando las relaciones e interrelaciones existentes entre éstas y mediante la aplicación de estrategias científicas, conducir al entendimiento globalizante y generalizado del sistema.

HTML

El Lenguaje de Marcado de Hipertexto (HTML) es el código que se utiliza para estructurar y desplegar una página web y sus contenidos. Por ejemplo, sus contenidos podrían ser párrafos, una lista con viñetas, o imágenes y tablas de datos

CSS

CSS, en español «Hojas de estilo en cascada», es un lenguaje de diseño gráfico para definir y crear la presentación de un documento estructurado escrito en un lenguaje de marcado.​

JAVASCRIPT

JavaScript es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos, ​basado en prototipos, imperativo, débilmente tipado y dinámico.

Principios de la Teoría de sistemas

Según esta teoría, todo sistema se compone de: Entradas, insumos o inputs. Que son aquellos procesos que incorporan informacion, energia o materia al sistema, proviniendo del afuera. Salidas, productos o outputs. Que son lo obtenido mediante el funcionamiento del sistema y que por lo general salen del sistema al medio externo. Transformadores, procesadores o throughput. Mecanismos del sistema que producen cambios o convierten entradas en salidas. Retroalimentación. Aquellos casos en que el sistema convierte sus salidas en entradas. Medio ambiente. Todo lo que rodea al sistema y existe fuera de él, lo cual a su vez constituye un sistema dentro de otro sistema y así hasta el infinito. A partir de este último factor, se reconocen tres tipos de sistemas: Sistemas abiertos. Aquellos que comparten información libremente con su medio ambiente. Sistemas cerrados. Aquellos que no comparten información de ningún tipo con su medio ambiente. Son siempre sistemas ideales. Sistemas semiabiertos o semicerrados. Aquellos que comparten la menor información posible con su medio ambiente, aunque sin llegar a ser cerrados.

Los objetivos originales de la Teoría General de Sistemas son los siguientes:

Impulsar el desarrollo de una terminología general que permita describir las características funciones y comportamientos sistémicos.

Desarrollar un conjunto de leyes aplicables a todos estos comportamientos.

Promover una formalización (matemática) de estas leyes.

CORTE 1Semanas 3 y 4.

Dato Interesante

La primera formulación en tal sentido es atribuible al biólogo Ludwig von Bertalanffy (1901-1972), quien acuñó la denominación "Teoría General de Sistemas". Para él, la TGS debería constituirse en un mecanismo de integración entre las ciencias naturales y sociales y ser al mismo tiempo un instrumento básico para la formación y preparación de científicos. Si bien el campo de aplicaciones de la TGS no reconoce limitaciones, al usarla en fenómenos humanos, sociales y culturales se advierte que sus raíces están en el área de los sistemas naturales (organismos) y en el de los sistemas artificiales (máquinas).

Conceptualización de Sistema

Un sistema es una serie de elementos que funcionan en conjunto para alcanzar un objetivo, o varios objetivos en común, al aceptar una entrada, procesarla y producir una salida de manera organizada. Este es aquel que aúna por un lado la parte física de la informática y por otra, la parte digital o no tangible de la informática. En otras palabras, un sistema informático debe estar compuesto por hardware y software para que pueda denominarse como tal.

subsistema

-Un subsistema es un sistema que es parte de otro sistema mayor (suprasistema o supersistedma). En otras palabras, un subsistema es un conjunto de elemento interrelacionados que, en sí mismo, es un sistema, pero a la vez es parte de un sistema superior.

-Los subsistemas tienen 9 características: propósito, limite, contorno, componentes, interacciones, recursos, ingresos, egresos y subproductos, si no las tienen no se pueden clasificar como y un subsistema otra determinante en la habilidad de funcionar como un sistema.

niveles de organización

¿Que es una Jerarquía?

Son los sistemas interceptados por Subsistemas mas Pequeños.

NIVEL 1: Estructuras Estáticas Formado por las estructuras estáticas,con propiedades estructurales, aunque la estructura pueda ser un poco compleja Boulding nos muestra que no hay gran variedad de elementos ni propiedades emergentes del sistema.

NIVEL 2: Sistemas Dinámicos Simples Complejidad son los sistemas dinámicos simples. De movimientos predeterminados. Denominado también el nivel del movimiento del reloj.

NIVEL 3: Sistemas cibernéticos o de control Complejidad son los mecanismos de control o los sistemas cibernéticos. Sistemas equilibrantes que se basan en la transmisión e interpretación de información. (ejemplo el termostato).

NIVEL 4: Sistemas Abiertos Complejidad el de los sistemas abiertos. Sistema donde se empieza a diferenciar de las materias inertes donde se hace evidente la automantención de la estructura.

NIVEL 5: Genético Social Complejidad denominado genético – social. Nivel tipificado por las plantas donde se hace presente la diferenciación entre el genotipo y el fenotipo asociados a un fenómeno de equifinalidad, ejemplo el girasol.

NIVEL 6: Animal Complejidad de la planta al reino animal. Aquí se hace presenta receptores de información especializados y mayor movilidad.

NIVEL 7: El hombre Complejidad es el nivel humano. Es decir el individuo humano considerado como sistema.

NIVEL 8: Las estructuras sociales Organización constituido por las organizaciones sociales. Llamado también sistema social, a organización y relaciones del hombre constituyen la base de este nivel.

NIVEL 9: Sistemas trascendentes Complejidad el de los sistemas trascendentales. Donde se encuentra la esencia, lo final, lo absoluto y lo inescapable.

los sistemas abiertos y cerrados

la división de los sistemas abiertos y cerrados, no todos concuerdan en la definición de ellos. Por ejemplo, Forrester, define como “sistema cerrado” a aquél cuya corriente de salida, es decir, su producto, modifica su corriente de entrada, es decir, sus insumos. Un sistema abierto es aquél cuya corriente de salida no modifica a la corriente de entrada. Un ejemplo del primer caso lo tenemos en el sistema de calefacción en que la corriente de salida, calor, modifica la información que recibe el regulador del sistema, el termostato. Von Bertalanffy (que fue el creador de la Teoría del Sistema Abierto señala que un sistema cerrado es aquel que no intercambia energía con su medio (ya sea de importación o exportación) y el sistema abierto es el que transa con su medio.

Finalmente V. L. Parsegian, define un sistema abierto como aquel en que Existe un intercambio de energía y de información entre el subsistema (sistema) y su medio o entorno.

El intercambio es de tal naturaleza que logra mantener alguna forma de equilibrio continuo (o estado permanente) y Las relaciones con el entorno son tales que admiten cambios y adaptaciones.

los sistemas abiertos y cerrados

la división de los sistemas abiertos y cerrados, no todos concuerdan en la definición de ellos. Por ejemplo, Forrester, define como “sistema cerrado” a aquél cuya corriente de salida, es decir, su producto, modifica su corriente de entrada, es decir, sus insumos. Un sistema abierto es aquél cuya corriente de salida no modifica a la corriente de entrada. Un ejemplo del primer caso lo tenemos en el sistema de calefacción en que la corriente de salida, calor, modifica la información que recibe el regulador del sistema, el termostato. Von Bertalanffy (que fue el creador de la Teoría del Sistema Abierto señala que un sistema cerrado es aquel que no intercambia energía con su medio (ya sea de importación o exportación) y el sistema abierto es el que transa con su medio.

Sinergia y Recursividad.

Tipos De Sinergia. Sinergia Positiva La sinergia positiva surge cuando los elementos que componen el sistema están bien integrados entre si

Sinergia Negativa La sinergia negativa surge cuando en un sistema se tiende a la desintegracion

Sinergia Neutra Cuando la interacción no produce efectos multiplicadores de ningún tipo, ni positivos ni negativos La recursividad es una técnica muy empleada en la programación informática y consiste en que una función se llame a sí misma. El ejemplo clásico es la función que calcula la factorial de un número.

CORTE 2 Semanas 6, 7, 8 y 9.

El principio de la organicidad: El mundo en equilibrio.

Significa que un objeto es un sistema cuando la variabilidad que experimenta la totalidad es menor que las variabilidades de cada una de sus partes o componentes. Los mecanismos homeostáticos buscan el desequilibrio y ponen al sistema en equilibrio.

El mundo puede ser representado como un sistema o como una colección de muchos sistemas, se puede decir que es un sistema dentro de “El sistema”; estas actuan y se interrelacionan unos con otros dentro de una realidad dinámica.

La organicidad se caracteriza de los sistemas abiertos, estos mantienen en estado ordenado mientras se hace la ectracción de neguentropía del medio. Es decir, esta capta la informacion del medioambiente suficiiente para sobrevivir.

Entropía como un elemento desorganizador.

La entropía nos muestra que todo sistema termodinámico tiende al equilibrio; el universo tiende a distribuir la energía uniformemente.

Esta se define como la tendencia que tienen todos los sistemas a alcanzar su estado más probable, el estado más probable es el caos, la desorganización, la eliminación de diferencias que hacen lo identificable. Sin embargo, es la neguentropia la que está destinada a mantener y mejorar la organización del sistema.

Subsistemas de control.

El subsistema de control es el encargado de asegurarse que el desempeño del sistema sea el correcto, ya que brinda una retroalimentación de forma tal que permite a los gerentes tomar acciones correctivas en caso de ser necesarias. Los sistemas en general poseen una característica que los lleva a no solo permanecer sino a crecer y expandirse (principio de organicidad). Para poder llevar a cabo esta función es indispensable que se desarrolle una capacidad de adaptación con el entorno que rodea al sistema, es decir, debe controlar su conducta con el fin de regularla de un modo conveniente para su supervivencia, y esto lo logra a través de una retroalimentación negativa y autocontrol.

- Ejemplos:

Para que haya un control exactamente no es posible, puesto que no se tienen estándares de comparación.

Se mantiene una modificación de los objetivos.

Generalidades de la retroalimentación positiva y la retroalimentación negativa.

La retroalimentación positiva favorece el cambio introducido en el sistema, aumentando el estímulo que irrumpió en el sistema. En el caso de la retroalimentación negativa, esta busca que el equilibrio o estado original del sistema se mantenga, reduciendo el estímulo que produjo el cambio. El sistema que pasa por el proceso de retroalimentación puede ser un organismo natural (cualquier ser vivo, órganos del cuerpo), un ente social (un partido político, una compañía, un sistema económico) o de otra índole (un dispositivo electrónico, un plan de negocios).

Composición de un bucle de retroalimentación

Estos bucles se componen por una serie de variables susceptibles de ser controladas durante el proceso de retroalimentación: por ejemplo, la temperatura corporal o la presión sanguínea.

Receptores en el organismo: son sensores que perciben cualquier cambio en estas variables.

El centro de control del sistema: toma una decisión según la información recibida.

la retroalimentación positiva se asocia a la introducción de inestabilidad en el mismo. Hay una reacción en cadena que irrumpe con el estado del sistema, estimulando el crecimiento continuo y acelerado de alguna acción, así como de sus efectos.

Características de la retroalimentación positiva

Promueve el cambio en el estado de un sistema.

Ocurre con menor frecuencia en los procesos biológicos del ser humano.

Sus resultados son exponenciales.

No es común que haya retroalimentación positiva en el proceso de homeostasis.

Puede ser causar un círculo vicioso, ya que degenera un estado de equilibrio.

Es común que factores externos deban entrar en juego para detener un proceso de retroalimentación positiva.

La retroalimentación negativa reacciona ante un estímulo e intenta detenerlo, reduciendo su impacto. El objetivo es el de regresar el sistema a su estado original. Por ejemplo, la temperatura corporal se regula a través de la retroalimentación negativa. Ante una subida en la temperatura del cuerpo, este reacciona produciendo sudor. De esta forma, el sudor permite que el cuerpo se enfríe.

Características de la retroalimentación negativa

Reduce las alteraciones que son introducidas en un sistema.

Es más común en los procesos biológicos del cuerpo humano.

Minimiza el ritmo en el que se produce una acción (recuperando el estado original del sistema).

Se relaciona con el proceso de homeostasis.

Es común que un proceso de retroalimentación negativa se detenga por sí solo cuando el equilibrio ha sido reestablecido.

Sus efectos no son exponenciales.

Análisis de Sistemas, Cual es el papel del analista de sistemas.

Es uno de los procesos de organización o diseño que toda empresa desarrolla; con el fin de estudiar o evaluar el problema que se presenta y la forma de cómo se opera en la compañía; para así poder corregir e interpretar la información obtenida proyectando mejoras favorables para la empresa. Dependiendo de los objetivos del análisis, podemos encontrarnos ante dos problemáticas distintas:

Análisis de un sistema ya existente para comprender, mejorar, ajustar o predecir su comportamiento.

Análisis como paso previo al diseño de un nuevo sistema-producto.

Consiste en definir el problema, identificar sus causas, especificar la solución e identificar los requerimientos de información que debe cumplir una solución de sistemas. El analista de sistemas crea un mapa de la organización y los sistemas existentes, en el cual se identifica a los propietarios y usuarios principales de los datos, junto con el hardware y software existente.

tipos de sistemas de información

1.Sistemas de Información de Gestión: Es un conjunto de herramientas organizativas, técnicas, tecnológicas y de información que se integran en un único sistema para recoger, almacenar, procesar y producir información destinada a realizar funciones de gestión. son un tipo de sistemas de información que recopilan y procesan información de diferentes fuentes para ayudar en la toma de decisiones en lo referente a la gestión de la organización.

2.Sistemas de Información Ejecutiva: Proporcionan un acceso rápido a la información interna y externa, presentada a menudo en formato gráfico, pero con la capacidad de presentar datos básicos más detallados si es necesario. Este sistema dispone de un enfoque con interfaces de usuario y pantallas gráficas fáciles de usar. Muchas empresas lo utilizan porque proporciona informes sólidos y capacidades de desglose.

¿Cuál es el papel del analista de sistemas?

Un analista de sistemas ayuda a las empresas u otras organizaciones a utilizar la tecnología informática de forma eficaz y eficiente. También investigan el hardware y el software que forman parte de los sistemas informáticos de una organización, además de las formas en que se utilizan los sistemas.

Requerimientos, Investigación de requerimientos.

Los requerimientos de un sistema de software, cuando se ven en su conjunto son extensos y detallados, y además contienen múltiples relaciones entre sí. Es una característica que debe incluirse en un nuevo sistema ,la cual es proporcionada normalmente por los usuarios.

Los requerimientos se caracterizan de la siguiente forma:

Requerimientos funcionales: son aquellos que describen cualquier actividad que este deba realizar, en otras palabras, el comportamiento o función particular de un sistema o software cuando se cumplen ciertas condiciones. Por lo general, estos deben incluir funciones desempeñadas por pantallas específicas, descripciones de los flujos de trabajo a ser desempeñados por el sistema y otros requerimientos de negocio, cumplimiento, seguridad u otra índole. puede ser una descripción de lo que un sistema debe hacer. Este tipo de requerimiento específica algo que el sistema entregado debe ser capaz de realizar.

Requerimientos no funcionales: Estos requerimientos son restricciones sobre los servicios y funcionalidades ofrecidos por el sistema. Estos incluyen restricciones en el tiempo que se debe demorar un proceso, restricciones sobre el proceso de desarrollo y estándares. Suelen presentar dificultades en su definición dado que su conformidad o no conformidad podría ser sujeto de libre interpretación, por lo cual es recomendable acompañar su definición con criterios de aceptación que se puedan medir. Algunos ejemplos de aspectos solicitables son la disponibilidad, el testeo, el mantenimiento, la facilidad de uso, etc.

Requerimientos de dominio: Estos son requerimientos que provienen del dominio de aplicación del sistema y reflejan características y restricciones de ese dominio. Estos pueden ser funcionales o no funcionales. Los requerimientos del dominio son importantes debido a que a menudo reflejan loa fundamentos del dominio de aplicación. Investigación de requerimientos: Es el estudio y documentación de la necesidad del usuario o de un sistema ya existente usando para ello técnicas como el análisis de flujo de datos y análisis de decisión. Es aquí donde se debe y se pueden aplicar. entrevistas, cuestionarios, observación y revisión de documentos existentes, entre otros.

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). Mucha gente piensa por confusión que UML es un lenguaje de programación y esta idea es errónea: UML no es un lenguaje de programación. Como decimos, UML son una serie de normas y estándares que dicen cómo se debe representar algo.

beneficios de UML

Mejor soporte a la planeación y al control de proyectos.

Modelar sistemas (y no sólo de software) utilizando conceptos orientados a objetos.

Alta reutilización y minimización de costos.

Encaminar el desarrollo del escalamiento en sistemas complejos de misión crítica.

TIPOS DE DIAGRAMAS EN UML

Diagramas de secuencia: Suelen usarse para representar objetos software y el intercambio de mensajes entre ellos, representando la aparición de nuevos objetos de izquierda a derecha.

Diagramas de clases: Puede ayudarte a modelar sistemas de diversas formas. Uno de los tipos más populares en el UML es el diagrama de clases. Popular entre los ingenieros de software para documentar arquitectura de software, los diagramas de clases son un tipo de diagrama de estructura porque describen lo que debe estar presente en el sistema que se está modelando.

Diagramas de colaboración: también se conocen como diagramas de comunicación. Pueden demostrar cómo se comunican los objetos para ejecutar las acciones específicas o un aspecto de un caso de uso. Los diseñadores pueden usar diagramas de colaboración para explicar e identificar los roles de los objetos que realizan un flujo específico de eventos en un caso de uso.

Especificación de requerimientos

Es una actividad primordial en el desarrollo de sistemas de software que orienta en todo momento las acciones del equipo de trabajo; la manera de realizarla varía de acuerdo con la naturaleza del proyecto y a las prácticas adoptadas por los desarrolladores. Una forma relativamente reciente de especificar requerimientos es mediante el paradigma orientado a aspectos: un enfoque que propone una manera diferente de conceptualizar las características importantes del software, para administrar mejor la naturaleza transversal de algunas de ellas.

Estructura básica y dependencias externas

La ERS es el principal producto del proceso de Ingeniería de Requisitos junto con los modelos conceptuales que se incluyen en el Análisis del Sistema (DAS). Aunque existen diversas propuestas sobre su contenido y el número de documentos en los que puede dividirse, en el contexto de MADEJA se asumirá que la ERS es un documento que contiene tanto las necesidades de negocio de clientes y usuarios, como la propuesta de solución de los ingenieros de requisitos (requisitos del sistema a desarrollar, o requisitos de producto en terminología de CMMI-DEV).

Estructura básica y dependencias externas

La ERS es el principal producto del proceso de Ingeniería de Requisitos junto con los modelos conceptuales que se incluyen en el Análisis del Sistema (DAS). Aunque existen diversas propuestas sobre su contenido y el número de documentos en los que puede dividirse, en el contexto de MADEJA se asumirá que la ERS es un documento que contiene tanto las necesidades de negocio de clientes y usuarios, como la propuesta de solución de los ingenieros de requisitos (requisitos del sistema a desarrollar, o requisitos de producto en terminología de CMMI-DEV).

Estructura detallada y dependencias internas

La estructura detallada de la ERS puede verse en la siguiente figura, en la que también se muestran las tareas que producen cada uno de sus contenidos. No se han incluido las tareas relacionadas directamente con la calidad de los requisitos, Analizar los requisitos del sistema, Verificar la calidad de los requisitos del sistema y Validar los requisitos del sistema, porque su impacto en la ERS consiste en mejorar la calidad de su contenido y no en producirlo directamente.

La importancia de especificar los requerimientos

Los requerimientos de los sistemas deben ser especificados sin ambigüedad antes de seguir adelante en el proceso de desarrollo. Sin embargo, en la realidad existen aplicaciones para las cuales esta especificación nunca se lleva a cabo, o se realiza de manera superficial; estas prácticas impiden fijar metas objetivas, realizar evaluaciones de manera efectiva y llevar un control adecuado de la evolución de los requerimientos durante el ciclo de vida del proyecto (Braude, 2008).

métodos para investigar requerimientos

1 .Entrevistas: Son útiles para obtener y documentar información detallada sobre los requerimientos y sus niveles de granularidad. El éxito de las entrevistas depende del grado de conocimiento del entrevistador y entrevistado, disposición del entrevistado de suministrar información, buena documentación de la discusión y en definitiva de una buena relación entre las partes.

2. Encuetas o cuestionarios: El éxito de las entrevistas depende del grado de conocimiento del entrevistador y entrevistado, disposición del entrevistado de suministrar información, buena documentación de la discusión y en definitiva de una buena relación entre las partes. El inconveniente es que la respuesta puede ser limitada, ya que es posible que no tenga mucha importancia para los encuestados llenar el cuestionario.

3. Tormenta de ideas ( Brainstorming ): Es una técnica de reuniones en grupo cuyo objetivo es la generación de ideas en un ambiente libre de críticas o juicios. Como técnica de recopilación de información de requisitos, la tormenta de ideas puede ayudar a generar una gran variedad de vistas del problema y a formularlo de diferentes formas, sobre todo al comienzo del proceso de ingeniería de requisitos, cuando todavía los requisitos están muy difusos.

4. Observación: Consiste en la observación directa de las prácticas profesionales que se realizan habitualmente en la organización para la que se va a desarrollar el software. Como sabemos, en muchos casos los procesos son una cosa en papel y otra muy diferente en la práctica. Los observadores experimentados saben qué buscar y cómo evaluar la relevancia de lo que observan. En observación pasiva, el observador no hace preguntas, limitándose solo a tomar notas y a no interferir en el desempeño normal de las operaciones. En observación activa, el observador puede conversar con el usuario.

5. Escenarios: Estos se utilizan para documentar el comportamiento del sistema cuando se le presentan eventos específicos. Cada evento de interacción distinto, o la selección de un servicio del sistema, se documentan como un escenario de eventos distinto. Los escenarios de eventos incluyen una descripción del flujo de datos y las acciones del sistema, y documenta las excepciones que puedan surgir. 3 convenciones para los diagramas utilizados en los escenarios de eventos son: Las entradas y salidas de la información de control se ubican en la parte superior de cada recuadro. Las excepciones se muestran en la parte inferior del recuadro. Si existen varias excepciones posibles, éstas se encierran en un recuadro. Los datos proporcionados desde un punto de vista o proporcionados a éste se representan como elipses.

6. ETHICS (Implementación Efectiva de Sistemas Informáticos desde los puntos de vista Humano y Técnico): Constituye un método bastante evolucionado para fomentar la participación de los usuarios en los proyectos. Creado por E. Mumford en 1979, coordina la perspectiva social de los sistemas con su implementación técnica. Un sistema no tiene éxito si no se ajusta a los factores sociales y organizacionales que rigen a la empresa. Se busca la satisfacción de los empleados en el trabajo a través de estudios integrales.

Requerimientos funcionales y no funcionales.

Requerimientos funcionales

Los requisitos funcionales son declaraciones de los servicios que prestará el sistema, en la forma en que reaccionará a determinados insumos. Cuando hablamos de las entradas, no necesariamente hablamos sólo de las entradas de los usuarios. Pueden ser interacciones con otros sistemas, respuestas automáticas, procesos predefinidos. En algunos casos, los requisitos funcionales de los sistemas también establecen explícitamente lo que el sistema no debe hacer. Muchos de los problemas en la ingeniería de software (hablando sobre el proceso de desarrollo en sí mismo) comienzan con especificaciones de requisitos inexactas. Es natural que un Analista de Negocio (o quien sea que esté definiendo y documentando los requerimientos del sistema) tome algunas suposiciones como conocimiento universal, o dé por sentado algún comportamiento. Pero recuerde, también es natural que un desarrollador de sistemas interprete un requisito ambiguo de la manera más simple posible, para simplificar su implementación.

Requerimientos no Funcionales

Se trata de requisitos que no se refieren directamente a las funciones específicas suministradas por el sistema (características de usuario), sino a las propiedades del sistema: rendimiento, seguridad, disponibilidad. En palabras más sencillas, no hablan de “lo que” hace el sistema, sino de “cómo” lo hace. Alternativamente, definen restricciones del sistema tales como la capacidad de los dispositivos de entrada/salida y la representación de los datos utilizados en la interfaz del sistema. se originan en la necesidad del usuario, debido a restricciones presupuestarias, políticas organizacionales, la necesidad de interoperabilidad con otros sistemas de software o hardware, o factores externos tales como regulaciones de seguridad, políticas de privacidad, entre otros.

Tres tipos de requerimientos no funcionales

Requerimientos no funcionales de producto: Suele referirse a limites o restricciones sobre el comportamiento del sistema, por lo cual establece límites y restricciones sobre lo que los diseñadores (arquitectos de software) e ingenieros de software pueden hacer. Algunos de estos requerimientos pueden ser fáciles de cuantificar, por ejemplo, el desempeño y la confiabilidad, pero otros son más difíciles como por ejemplo usabilidad y adaptabilidad. 3 requerimientos de producto: Requerimientos de usabilidad: La usabilidad se define como el esfuerzo que necesita hacer un usuario para aprender, usar, ingresar datos e interpretar los resultados obtenidos de un software de aplicación. En tiempos recientes, la usabilidad ha adquirido mucha importancia, en especial ante la demanda de desarrollo de software para móviles y tabletas. Requerimientos de eficiencia: Son aspectos que indican la proporción entre el nivel de cumplimiento del software y la cantidad de recursos necesitados bajo condiciones establecidas. Las subcaracterísticas son: comportamiento en el tiempo, comportamiento según otros recursos. Requerimientos de seguridad: Capacidades funcionales o no funcionales que debe tener un sistema para cumplir atributos en el área de seguridad de tecnología de información, seguridad de datos, seguridad lógica, control de acceso a información (restricciones de acceso), autenticidad de la información, privacidad, entre otros aspectos.

Requerimientos no funcionales organizacionales: Se derivan de las políticas y procedimientos de la organización como por ejemplo estándares de procesos o requerimientos de implementación. Pueden incluir metodologías de desarrollo de software, estándares de programación (codificación) y herramientas de soporte al desarrollo de software (por ej. Herramientas CASE) que deben usarse (siguiendo las políticas de la organización), también reportes a la gerencia que deben proveerse, entre otros. 3 requerimientos de organizacionales: Requerimientos de entorno: Describen el ambiente operativo en el que se debe desenvolver el sistema. Requerimientos operacionales: Procedimientos operativos que describen como será usado el sistema dentro del contexto de la organización. Requerimientos de desarrollo: Lenguaje de programación a usar, estándares de codificación, patrones (y anti-patrones) de diseño y programación, herramientas para gestionar el desarrollo de software, entorno de desarrollo de software (ambiente de desarrollo), entorno de pruebas de software (ambiente de pruebas), entre otros aspectos.

Requerimientos no funcionales externos: Este tipo de requerimientos incluyen limitaciones de índole económica, interacción o necesidad del sistema de interoperar con otros sistemas, requerimientos regulatorios en el área de salud, seguridad industrial o protección de datos, requerimientos legales concernientes con licencias, regulaciones o certificaciones que necesita el producto según la industria en el que se desempeñe, entre otros.

Factibilidad económica, operativa y técnica

Factibilidad económica: Es el análisis de los costos e ingresos de un proyecto en un esfuerzo por determinar si resulta o no lógico y posible poder completarlo. Es un tipo de análisis de costo-beneficio del proyecto examinado, que evalúa si es posible implementarlo. El costo y el tiempo son los factores esenciales involucrados en este campo de estudio. Se evalúa el costo de desarrollo y el costo de operación. También se calcula el marco de tiempo aproximado para recibir los retornos contra la inversión, tomando en cuenta el valor futuro del proyecto.

Factibilidad operativa: Es una medida del correcto funcionamiento de una posible solución a los problemas dentro de una organización. También es una medida de los sentimientos que despierta un sistema o un proyecto en las personas que en él participan, miden la urgencia del problema y la aceptabilidad de la solución. Se refiere a todos aquellos recursos donde interviene algún tipo de actividad (Procesos), depende de los recursos humanos que participen durante la operación del proyecto. Durante esta etapa se identifican todas aquellas actividades que son necesarias para lograr el objetivo y se evalúa y determina todo lo necesario para llevarla a cabo. Si los usuarios están contentos con el sistema actual, no tienen problemas con su manejo y por lo general no están involucrados en la solicitud de un nuevo sistema, habrá una fuerte resistencia a la implementación del nuevo sistema. Las posibilidades de que entre en funcionamiento son bajas.

Factibilidad técnica: Consiste en determinar inicialmente si para desarrollar tu negocio requieres de maquinarias, equipos, tecnología y conocimientos o experiencia en un área específica, que puede ser parte de un proceso fundamental o de apoyo como un programa de contabilidad, lo cual depende del tipo de negocio. El analista debe averiguar si es posible actualizar o incrementar los recursos técnicos actuales de tal manera que satisfagan los requerimientos bajo consideración. Sin embargo, en ocasiones los “agregados” a los sistemas existentes son costosos y fructíferos, simplemente porque no cumplen las necesidades con eficiencia.

CORTE 3Semanas 11, 12, 13, 14

Sistemas de informática administrativa (SIA)

Es el conjunto de elementos que examina y recupera los datos provenientes del ambiente que captura, filtra datos a partir de las transacciones y operaciones efectuadas dentro de la administración. En el manual de un sistema administrativo deben figurar las responsabilidades y los roles que corresponden a cada puesto dentro de la organización y a cada unidad administrativa. Es importante resaltar que la existencia de un sistema como éste beneficia ampliamente el funcionamiento de una compañía, y facilita considerablemente tareas tales como las auditorías, así como el control del trabajo de cada empleado. En otras palabras, es una aplicación informática cuya función básica es la de actuar como catálogo de información sobre tramitación administrativa, incluyéndose procedimientos administrativos y servicios tanto dirigidos al ciudadano como propios de las Administraciones Públicas.

Tipos de sistemas

Nivel estratégico: Permite que la alta dirección de las empresas pueda analizar y monitorear tendencias, patrones, metas y objetivos estratégicos de la organización. Su función principal es compaginar los cambios del entorno externo con la capacidad organizacional existente. Por ejemplo: Sistemas de apoyo a Ejecutivos.

Nivel administrativo: Es la administración de una organización. Incluye todos los aspectos de la supervisión y revisión de las operaciones del negocio, así como las áreas relacionadas, que incluyen las finanzas, contabilidad, marketing y gestión de proyectos. Por ejemplo: Un sistema de control de reubicación que informe los costos totales de la mudanza, búsqueda de vivienda y financiamiento de vivienda para empleados de todas las divisiones de la empresa y notifique cualquier costo actual que exceda los presupuestos.

Nivel de conocimiento: Son sistemas de información basados en conocimiento que apoyan la creación, organización y difusión del conocimiento empresarial a los empleados y administradores a través de la compañía. El propósito de estos sistemas es ayudar a las empresas comerciales a integrar el nuevo conocimiento en los negocios y ayudar a la organización a controlar el flujo del trabajo de oficina. Los sistemas a nivel del conocimiento, especialmente en forma de estaciones de trabajo y sistemas de oficina, están entre las aplicaciones de crecimiento más rápido en los negocios actuales.

Nivel operativo: Es la base de la pirámide y abarca a toda la fuerza laboral responsable de hacer que todos los procesos sucedan dentro de una empresa. La productividad de los empleados es lo que garantiza el éxito del flujo de trabajo. No solo hablamos de capacidad de producción, sino de todos los aspectos de la efectividad y efectividad del equipo, como el correcto uso de los recursos, seguimiento de objetivos y medición de procesos. El objetivo principal de los sistemas a este nivel es responder a las preguntas de rutina y seguir el flujo de las transacciones a través de la organización.

Estructura de un sistema de información administrativo

Entradas: Datos obtenidos de fuentes internas y externas; la fase de entrada es permanente porque los datos nuevos se suman continuamente al sistema cuando se realizan las transacciones.

Procesamiento: fase durante la cual los datos obtenidos son transformados, organizados y archivados; la mejor manera de procesar datos, actualmente, es por medio de las computadoras.

Salidas: Relatos, diagramas, cuadros, resúmenes escritos compilados y producidos durante la fase de procesamiento; una vez que las salidas son utilizadas para tomar decisiones estas deben ser producidas en un formato que permita al usuario final tener un acceso rápido.

Retroalimentación: Mecanismo de verificación y ajuste, que ayuda a los administradores a determinar qué información generada es necesaria; los informes pueden ser comparados con pronósticos, patrones y otros med

4 ventajas

Permitir a las organizaciones mantener un mejor control administrativo y operativo que permita gestionar mejor los recursos, el tiempo, y la atención al cliente para agilizar cada uno de estos procesos.

Disponibilidad de mayor y mejor información para los usuarios en tiempo real.

Permite comparar resultados alcanzados con los objetivos programados, con fines de evaluación y control.

Disminuye errores, tiempo y recursos superfluos.

4 desventajas

El tiempo que pueda tomar su implementación.

Problemas técnicos, si no se hace un estudio adecuado, como fallas de hardware o de software o funciones implementadas inadecuadamente para apoyar ciertas actividades de la organización.

Resistencia al cambiar por parte de los administradores.

Falta de costumbre al utilizar un sistema para soportar el proceso de toma de decisiones.

Modelado de decisión de objetivos únicos y múltiples

Son procedimientos que ayudan a analizar los problemas que existen en cualquier sistema y nos guían a tomar las mejores decisiones para la solución de estos.

Modelos de objetivos y atributos múltiples

Modelos de Objetivo Único: Hace énfasis en la multidimensionalidad la cual contrasta con los modelos de objetivo único

Modelos de costo-beneficio: Se trata de obtener los mayores y mejores resultados al menor esfuerzo invertido, tanto por una buena técnica como por una buena motivación.

Modelos de costo-beneficio: Se trata de obtener los mayores y mejores resultados al menor esfuerzo invertido, tanto por una buena técnica como por una buena motivación.

métodos de programación a multiobjetivo

Modelos de sistemas dinámicos: Son un tipo especial de modelo de estimulación, que muestra la relación entre los estados y flujos de un sistema. Puede utilizarse para analizar cambios en los niveles de las salidas del sistema, debido a fluctuaciones en las entradas.

Algoritmo de Klee: Es una herramienta de análisis, utilizada para la priorización de causas, se basa en ponderaciones y calificaciones dadas tanto por los analistas del problema como por los representantes de la empresa o proceso. Por medio de un algoritmo de Klee, se pretende descartar la o las variables de mayor criticidad que actualmente están afectando el óptimo funcionamiento del proceso.

Modelo de planeación de recursos hidráulicos: Las funciones de utilidad proporcionan la información necesaria para clasificar las alternativas y sus consecuencias. El supuesto subyacente a esos modelos es que los autores de decisiones son “racionales” y buscan maximizar su utilidad esperada

Procedimiento general para comparar de atributos múltiples complejas

Árbol de decisiones: Es un diagrama en forma de árbol que muestra la probabilidad estadística o determina un curso de acción. Muestra a los analistas y, a los que toman las decisiones, qué pasos deben tomar y cómo las diferentes elecciones podrían afectar todo el proceso. Todo ello soportado en datos. Este método se usa para realizar un análisis que consiste en delinear de forma gráfica los posibles resultados, costos y consecuencias de una decisión compleja.

Puntuación de las alternativas: Se dan las puntuaciones de los distintos aspectos recogidos, todos aquellos que son susceptibles de ser medidos cualitativa o cuantitativamente.

Establecimiento de pesos de factores: Es un momento delicado, con frecuencia hay contar con otros miembros del equipo de diseño. Quizás la forma más efectiva de asignar estos valores de peso es analizar cuál es el factor que se considera más importante y a éste se le asigna el valor máximo de 10, y el peso de cada uno de los otros factores se asigna en relación con éste.

modelos distintos

Modelos de intercambio: Que proporcionan métodos por los cuales pueden compararse y evaluarse situaciones de medios y fines. Con respecto a los lenguajes HDL, no existe mayor problema ya que éstos son realmente archivos de texto ASCII. El inconveniente aparece cuando hablamos de esquemas de circuitos, máscaras o rutados. Una de las primeras soluciones fue la de trabajar con imágenes jpeg de las mismas y no con los propios diseños y si bien este mecanismo es funcional tiene la clara desventaja de que para poder trabajar sobre el diseño se lo debe transcribir por completo

Modelos de juicio o evaluación: Por modelo se entiende a toda representación ideal a escala diferente de la entidad implicada, mediante la cual se puede entender o explicar de mejor manera el objeto en sí. Igualmente puede considerarse como una abstracción teórica de una realidad. los cuales se integra indicaciones e información en juicios globales o compuestos

Modelos de sistemas de investigación: Describen como puede validarse la verdad, en el contexto de un método de razonamiento particular.

Sistemas Complejos.

Es la unión de diversos elementos, que tiene diferentes objetivos particulares, pero que en sinergia, trabajan para cumplir objetivos generales, estos sistemas pueden ser tangibles e intangibles, dependiendo del contexto. Funcionan a través de información o estímulos recibidos, que es procesado de manera particular y en conjunto, para dar un resultado general. También puede ser Un grupo de cosas, vivas o inanimadas, capaces de interactuar entre ellas dando lugar a un determinado comportamiento. Y aquí viene la parte difícil: un sistema no complejo puede ser enteramente entendido a través del estudio de sus unidades individuales. Al contrario, para entender el comportamiento de un sistema complejo se requiere algo más que la simple suma de la contribución de cada elemento. Un sistema puede ser físico o concreto (una computadora, un televisor, un humano) o puede ser abstracto o conceptual (un software). Cada sistema existe dentro de otro más grande, por lo tanto, un sistema puede estar formado por subsistemas y partes, y a la vez puede ser parte de un supersistema.

4 tipos de sistemas

Sistemas abstractos: Compuestos por conceptos, planes, hipótesis e ideas. Muchas veces solo existen en el pensamiento de las personas. Es el software.

Sistemas aislados: Son aquellos sistemas en los que no se produce intercambio de materia ni energía.

Sistemas simples: Estos no cuentan con subsistemas, lo que permite identificar fácilmente a los elementos constitutivos de los mismos.

Sistemas artificiales: Se caracterizan por ser producto de la creación humana, por lo que dependen de la presencia de otros para poder existir.

propiedades de sistemas complejos

Conectados: Estas relaciones se pueden representar en forma de redes donde cada agente es uno de los nodos. Frecuentemente, estas redes presentan una configuración tal que permite que la información fluya en ellas muy rápidamente.

Retroalimentación: Es un proceso mediante el cual dos sistemas que están interactuando modifican su comportamiento de acuerdo con las respuestas que uno recibe del otro.

Adaptativos: Estos sistemas son capaces de adaptarse a su entorno, sin una dirección centralizada “inteligente”. Por ejemplo: la evolución darwiniana en la que los seres vivos se adaptan a los cambios del entorno o como una colonia de hormigas es capaz de regular la temperatura de su hormiguero.

Concepto Multidisciplinar

Se denomina equipo multidisciplinario o multidisciplinar a aquel formado por un grupo de personas con diferentes formaciones académicas, especializaciones y experiencias profesionales, que trabajan en conjunto ya sea de forma habitual o durante un tiempo determinado para resolver un problema complejo común afrontándolo desde distintos ángulos.

ventajas de un equipo multidisciplinario

Mejora el aprendizaje de sus miembros: El trabajar codo con codo con profesionales de otras especializaciones contribuye a mejorar el nivel de conocimientos de todos ellos individualmente. Esto enriquece al profesional y le hace más valioso. Además, contribuye a una mejor apreciación de los talentos del compañero, a conocer sus dificultades y a ser consciente de lo que aportar al trabajo de equipo.

Aumenta la diversidad de perspectivas desde las que abordar soluciones: Cuando se trata de la resolución de cuestiones y problemas complejos. Al afrontar estos desde distintos ámbitos y con visiones muy diferentes facilita encontrar soluciones eficaces. Además, dado que los miembros de un equipo de este tipo tienen perspectivas y ángulos de solución diferentes, sus argumentaciones acostumbran a ser más sólidas y se basan en argumentos más completos. El trabajo dentro de un equipo multidisciplinar facilita la toma de resoluciones reales y efectivas.

Facilita el reparto del trabajo: Las habilidades, talentos y preparación de cada miembro del equipo son claras. Y por ello el reparto del trabajo es más sencillo. Además, también evita que este sea generador de conflictos.

Inconvenientes

Uno de los inconvenientes que puede presentar un equipo multidisciplinar es que, al fomentar una mayor comunicación dentro del propio equipo, las relaciones evolucionen a un término que esté más cercano a lo personal que a lo profesional.

Ejemplos de sistemas Complejos

Flujo térmico.

Ondas elásticas.

Humedad.

Campo gravitatorio.

Geodinámica.

Campo magnético.

Todos estos sistemas los hemos estudiado muy bien, pero aún no podemos comprender como interactúan y hacen evolucionar al sistema (Tierra). Todavía hay mucha información oculta en esas interrelaciones de sistemas. Otros sistemas complejos son:

Los ecosistemas.

El tiempo atmosférico.

Las ciudades.

Modelos de trafico

La teoría de trafico consiste en la aplicación de modelas matemáticos para explicar entre la capacidad de una red de comunicación, la demanda de servicios de usuario le imponga y el nivel de calidad que la red pueda alcanzar. Como dicha demanda es naturaleza estadística, se puede representar mediante algún proceso estocástico adecuado, con la que se constituyen diferentes Modelos de Trafico. Dado un modelo de trafico particular, el desempeño de la red puede ser predecible, en principio, aplicando herramientas adecuadas proporcionadas principalmente por la Teoría de Procesos Estáticos y otros recursos matemáticos. Los resultados de dicho análisis de desempeño son los puntos principales de partida para el diseño de mecanismo de control de red en aspecto tan variados como el control de admisión, el control de flujo, el control de congestión, el control de la memoria en las colas, etc.

Un ejemplo tradicional y supremamente exitoso es el de las redes telefónicas, en las que la relación tráfico-desempeño se describe mediante una expresión cerrada y compacta, la fórmula B de Erlang, con la que se calcula la probabilidad de que una llamada sea rechazada, ρB, cuando hay N circuitos sobre los que los usuarios imponen una intensidad de tráfico ρa, definida como el producto de la tasa de llegada de llamadas por la duración promedio de cada llamada:

Sistemas dinámicos

Ejemplo de sistema dinámico:

Un claro ejemplo sería un corral de gallinas que se reproduce de tal forma que este año la cantidad de gallinas es XK, el próximo año seria X(K+1). De esta manera podemos poner nombres a la cantidad de gallinas que habrá cada año, así: año inicial X0, primer año X1, segundo año X2,…………., …………, año k Xk.

Tipos de sistemas dinámicos:

Los sistemas dinámicos se dividen en sistemas discretos en el tiempo y continuos en el tiempo: Un sistema dinámico se dice discreto si el tiempo se mide en pequeños lapsos; estos son modelados como relaciones recursivas, tal como la ecuación logística

donde t denota los pasos discretos del tiempo y x es la variable que cambia con este.

El sistema dinámico continuo es expresado como una ecuación diferencial ordinaria: por ejemplo:

Donde x es la variable que cambia con el tiempo t. La variable cambiante x es normalmente un número real.

3. Determinismo débil y fuerte

Determinismo: Es una doctrina filosófica que sostiene que todo acotamiento físico, incluso el pensamiento y las acciones humanas, esta causalmente determinados por la irrompible cadena causa-consecuencia y, por tanto, el estado actual “determina” en algún sentido el futuro.

Determinismo débil: Sostiene que es la probabilidad lo que está determinado por los hechos presentes, o que existe una fuerte correlación entre el estado presente y los estados futuros, aunque admitiendo la influencia de sucesos esencialmente aleatorios e impredecibles.

Determinismo fuerte: Sostiene que no existen sucesos genuinamente aleatorios o azarosos y que, en general, el futuro es potencialmente predecible a partir del presente. El pasado también podría ser “predecible” si conocemos perfectamente una situación puntual de la cadena de causalidad.

Redes complejas

Una red compleja se refiere a una red (modelada como grafo) que posee ciertas propiedades estadísticas y topológicas no triviales que no ocurren en redes simples. Distribuciones de grado que siguen leyes de potencia, estructuras jerárquicas, estructuras comunitarias, longitud entre cualesquiera dos entes del sistema corto, o alta cohesividad local.

Un ejemplo de redes con tales características en la naturaleza son las redes sociales, las neuronas, las redes de tráfico aéreo y las redes tróficas, etc.

Contenido Profecional,

coter 1,2 y 3

Toda la informacion necesaria de contenido profecional la encontraras aqui, ifmotamte mas.

Semana 2,3,4,6,7,8,9,11,12,13,14 y 15

VERSIONAMIENTO: GIT - GIT LAB - GIT HUB

GIT: es un sistema de control de versiones distribuido gratuito y de código abierto diseñado para manejar todo, desde proyectos pequeños hasta proyectos muy grandes, con rapidez y eficiencia. Git es fácil de aprender y ocupa poco espacio con un rendimiento ultrarrápido . Supera a las herramientas SCM como Subversion, CVS, Perforce y ClearCase con funciones como sucursales locales económicas , áreas de preparación convenientes y múltiples flujos de trabajo .

GIT LAB

GitLab es una plataforma Git y DevOps basada en la nube que ayuda a los desarrolladores a supervisar, probar y desplegar su código. GitLab ofrece un servicio web de control de versiones y desarrollo de software colaborativo basado en Git. Además de ser un gestor de repositorios, ofrece generación de wikis y un sistema de seguimiento de errores. GitLab es una suite completa que permite gestionar, administrar, crear y conectar los repositorios con diferentes aplicaciones y hacer todo tipo de integraciones, ofreciendo un ambiente y una plataforma para realizar varias etapas de su SDLC/ADLC y DevOps. GitLab ofrece una amplia gama de características DevOps, como la integración continua, la seguridad e incluso herramientas de despliegue de aplicaciones. También ofrece herramientas esenciales de gestión de proyectos para supervisar y controlar a los miembros de tu equipo.

GIT HUB

Github es un portal creado para alojar el código de las aplicaciones de cualquier desarrollador, y que fue comprada por Microsoft en junio del 2018. La plataforma está creada para que los desarrolladores suban el código de sus aplicaciones y herramientas, y que como usuario no sólo puedas descargarte la aplicación, sino también entrar a su perfil para leer sobre ella o colaborar con su desarrollo. Como su nombre indica, la web utiliza el sistema de control de versiones Git diseñado por Linus Torvalds. Un sistema de gestión de versiones es ese con el que los desarrolladores pueden administrar su proyecto, ordenando el código de cada una de las nuevas versiones que sacan de sus aplicaciones para evitar confusiones. Así, al tener copias de cada una de las versiones de su aplicación, no se perderán los estados anteriores cuando se va a actualizar. Así pues, Git es uno de estos sistemas de control, que permite comparar el código de un archivo para ver las diferencias entre las versiones, restaurar versiones antiguas si algo sale mal, y fusionar los cambios de distintas versiones. También permite trabajar con distintas ramas de un proyecto, como la de desarrollo para meter nuevas funciones al programa o la de producción para depurar los bugs.

AWS - AZURE

AWS Amazon Web Services (AWS) es la plataforma en la nube más adoptada y completa en el mundo, que ofrece más de 200 servicios integrales de centros de datos a nivel global. Millones de clientes, incluso las empresas emergentes que crecen más rápido, las compañías más grandes y los organismos gubernamentales líderes, están usando AWS para reducir los costos, aumentar su agilidad e innovar de forma más rápida.

Mayor funcionalidad

AWS cuenta con una cantidad de servicios y de características incluidas en ellos que supera la de cualquier otro proveedor de la nube, ofreciendo desde tecnologías de infraestructura como cómputo, almacenamiento y bases de datos hasta tecnologías emergentes como aprendizaje automático e inteligencia artificial, lagos de datos y análisis e internet de las cosas. Esto hace que llevar las aplicaciones existentes a la nube sea más rápido, fácil y rentable y permite crear casi cualquier cosa que se pueda imaginar.

Más seguro

AWS está diseñado para ser el entorno de informática en la nube más flexible y seguro disponible en la actualidad. Nuestra infraestructura principal se creó para cumplir con los requisitos de seguridad del ejército, los bancos internacionales y otras organizaciones que deben cumplir requisitos de confidencialidad estrictos. Esto cuenta con el respaldo de un amplio conjunto de herramientas de seguridad en la nube, con 230 servicios y características de seguridad, conformidad y gobernanza. AWS es compatible con 90 estándares de seguridad y certificaciones de conformidad y los 117 servicios de AWS que almacenan datos de los clientes ofrecen la función de cifrar esos datos.

AZURE

La plataforma Azure está compuesta por más de 200 productos y servicios en la nube diseñados para ayudarle a dar vida a nuevas soluciones que permitan resolver las dificultades actuales y crear el futuro. Cree, ejecute y administre aplicaciones en varias nubes, en el entorno local y en el perímetro, con las herramientas y los marcos que prefiera.

Seguridad De AZURE

Aunque la transformación digital de las empresas está en pleno apogeo, no está exenta de riesgos. De hecho, uno de los mayores desafíos consiste en garantizar la seguridad, la protección de datos e información personal y, la conformidad a las diferentes reglamentaciones vigentes.

CARACTERÍSTICAS – MICROSOFT AZURE

MÁQUINAS VIRTUALES Aplicaciones en la nube y máquinas virtuales Windows y Linux de gran capacidad. APLICACIONES WEB Y MÓVIL Plataforma de creación de aplicaciones para todo tipo de dispositivos. ALMACENAMIENTO EN LA NUBE Gran capacidad de almacenamiento de archivos, datos y discos. BASES DE DATOS Apoya el crecimiento rápido y la innovación gracias a servicios de bases de datos securizados de clase empresarial y completamente gestionados. APRENDIZAJE AUTOMÁTICO Crea la nueva generación de aplicaciones utilizando funcionalidades de inteligencia artificial para todo tipo de desarrolladores y escenarios. ANÁLISIS Reúne, almacena, procesa, analiza y visualiza datos, con independencia de su naturaleza, volumen y velocidad de procesado. INTERNET DE LAS COSAS Integra funcionalidades IoT en dispositivos y plataformas sin cambiar tu infraestructura. REDES VIRTUALES Configura redes privadas, balancea cargas de DNS y dominios alojados en Azure. SERVICIOS MULTIMEDIA Y CDN Codifica, almacena y transmite contenido audio y vídeo en directo o bajo demanda. COPIAS DE SEGURIDAD Copias de seguridad en servidores en la nube. ADMINISTRACIÓN Autenticación de acceso, sincronización de directorios, gestión de identidades y accesos VISUAL STUDIO Entorno de desarrollo de aplicaciones web y móviles en Azure

TRELLO - JIRA

TRELLO Trello es una herramienta flexible para la gestión del trabajo, con la que los equipos pueden diseñar planes, colaborar en proyectos, organizar flujos de trabajo y hacer un seguimiento del progreso de una manera visual, productiva y gratificante. Trello gestiona los grandes hitos y las tareas diarias, desde la lluvia de ideas hasta la planificación y la ejecución, para colaborar juntos y sacar el trabajo adelante.

Cómo funciona Trello

Para saber cómo funciona Trello lo apropiado es que te instales la aplicación y vayas probando. La herramienta es tan sencilla que no necesitarás de mucha ayuda para comprenderla. Aún así, lo mejor es que veas este vídeo-tutorial que te lo explica rápidamente:

JIRA

Jira Software forma parte de una gama de productos diseñados para ayudar a equipos de todo tipo a gestionar el trabajo. En principio, Jira se diseñó como un gestor de incidencias y errores. Sin embargo, se ha convertido en una potente herramienta de gestión de trabajo para todo tipo de casos de uso, desde la gestión de requisitos y casos de prueba hasta el desarrollo de software ágil.

¿Qué hace a JIRA tan especial?

Trabajar en Agile con múltiples equipos interdisciplinarios o equipos dispersos en distintas partes del mundo, es un nivel de complejidad totalmente diferente. JIRA es la herramienta que mejor logró adaptarse a las empresas y equipos que realmente quieren trabajar con Agile, ya sea utilizando la metodología Scrum, Kanban u otras. Además, JIRA puede adaptarse a empresas que no tienen nada que ver con el mundo del desarrollo de software, ya que su flujo de procesos también permite adecuarse a diferentes industrias y necesidades.

¿Para qué sirve un framework?

Un framework sirve para acometer un proyecto en menos tiempo, y en el sector de la programación, con un código más limpio y consistente, de manera rápida y eficaz. El framework ofrece una estructura base que los programadores pueden complementar o modificar según sus objetivos. Como hemos indicado, usar frameworks les permite esa agilización y automatización de procesos, pero, llegados a este punto, no podemos dejar de lado otro tipo de ventajas: Favorecen el trabajo colaborativo:contar con esa estructura base, con unos estándares de programación, permite que distintos miembros de un mismo equipo trabajen de manera coordinada. Además, favorece que se comparta código y se reduzca la curva de aprendizaje de otros miembros del equipo o la tuya propia. Minimiza la posibilidad de riesgos:usar frameworks hace más fácil encontrar errores pero, sobre todo, evitarlos. Te garantiza, por lo tanto, mayor seguridad y, además, es habitual que exista una comunidad de desarrolladores detrás del mismo a los que hacerles llegar cualquier duda relativa al uso del framework. Fácil acceso a recursos e información útil:existen infinidad de frameworks y, cuando estos están muy extendidos, resulta muy fácil encontrar módulos, herramientas o información para usarlos. Además, te pueden permitir utilizar programación avanzada a la que, de otra manera, sería mucho más difícil llegar.

Gestores De Dependencia

En un proyecto web complejo tal vez sean necesarias diversas herramientas como frameworks, plugin, librerías y otros recursos. El número de recursos que puedes necesitar puede ir creciendo dependiendo del tipo de proyecto que estés desarrollando. Ya que estar pendiente de todos estos recursos, en particular cuando ya se trata de un gran número de ellos, puede ser complicado deberás utilizar un gestor de dependencias. Estos gestores permiten instalar, organizar y mantener actualizadas todas las dependencias del proyecto, de modo que sólo debes ejecutar un comando y el gestor de dependencias realizará las verificaciones necesarias por ti. A continuación, te mencionamos algunos gestores de dependencias que te pueden ser de utilidad en tus proyectos.

CocoaPods

CocoaPods es un gestor de dependencias para aplicaciones desarrolladas en Swift y Objective-C. Posee más de 24 mil librerías y puede ser de utilidad para proyectos de cualquier escala. Puedes especificar las dependencias para tu proyecto en un archivo de texto, CocoaPods soluciona las dependencias entre librerías, recoge el código fuente para todas las dependencias y mantiene un espacio de trabajo en el que puedes crear tu proyecto.

RubyGems

RubyGems aloja todos los paquetes para Ruby. A estos paquetes se les llama “gemas” Con RubyGems buscar e instalar gemas creadas por otros desarrolladores, además mediante la API puedes publicar tus propias gemas y colaborar con la comunidad de Ruby. De hecho, uno de los principales objetivos de RubyGems es incentivar a los desarrolladores a colaborar y de esta manera hacer crecer la comunidad

Composer

Composer es un gestor de dependencias para PHP que crea un archivo llamado composer.json en la raíz del proyecto que, al ejecutar un solo comando, descarga automáticamente todas las dependencias que necesita tu proyecto. Cabe destacar que Composer funciona por proyecto y no de manera global. Es decir, descarga las dependencias necesarias por cada proyecto que realices en PHP, aunque es compatible con comando globales, así que puedes usarlo para instalar ciertas dependencias de forma global.

NuGet

NuGet es el gestor de paquetes para la plataforma .NET. Puedes usar NuGet para crear y utilizar paquetes en tus proyectos. En la actualidad alberga más de 700 mil paquetes, así que es bastante probable que encuentres sistemas de utilidad para tus proyectos. Al utilizar NuGet para instalar paquetes, el programa copiará los archivos de la librería en la carpeta de proyecto y lo actualizará automáticamente. Al eliminar un paquete, NuGet revierte cualquier cambio que se haya realizado, de modo que tu proyecto queda tal y como estaba antes de instalar dicho paquete.

Pip

Pip es el gestor de dependencias utilizado para Python. De hecho, viene incluido en versiones de Python 2.7.9 o mayores; así como en Python 3.4 o mayores, de tal manera que ni siquiera necesitas instalarlo si estás utilizando alguna de estas versiones de Python, aunque es posible que debas actualizar Pip antes de empezar a utilizarlo.

SOAP - REST

SOAP (Simple Object Access Protocol) Es un protocolo ligero para el intercambio de información en entornos descentralizados y distribuidos. Los mensajes SOAP son las transmisiones de información de remitentes a destinatarios. Los mensajes SOAP se pueden combinar para crear patrones de petición/respuesta. También es independiente del transporte, pero habitualmente se lleva a través de HTTP para ejecutarse con la infraestructura de Internet existente. Soap es esencial para los servicios web, interfaces a través de las cuales un dispositivo puede hacer uso del servicio de un servidor. Los buscadores, las tiendas en línea y otros muchos servicios en Internet funcionan a través de dichos servicios web, y SOAP es uno de los protocolos que lo hacen posible.

Este protocolo esta basado en XML y se componen en tres partes:

Sobre: El sobre define una infraestructura para describir qué hay en un mensaje y cómo procesarlo. Representa un marco global para expresar que es el mensaje, a quien va dirigido y sí que es opcional u obligatorio. Reglas de codificación: Define las reglas que permiten intercambiar datos de distintos tipos entre los usuarios. El conjunto de reglas de codificación expresa instancias de tipos de datos definidos por la aplicación. Las normas de codificación definen un mecanismo de serialización que se puede utilizar para intercambiar instancias de tipos de datos definidos por la aplicación. La convención: para representar llamadas a procedimientos y respuestas.

características principales de SOAP

Extensibilidad: seguridad y WS routing son extensiones Neutralidad: bajo el protocolo de transporte TCP puede ser utilizado sobre cualquier protocolo de aplicación como HTTP, SMTP o JMS. Independencia: permite cualquier modelo de programación.

REST

Es una interfaz para conectar varios sistemas basados en el protocolo HTTP (uno de los protocolos más antiguos) y nos sirve para obtener y generar datos y operaciones, devolviendo esos datos en formatos muy específicos, como XML y JSON. REST se apoya en HTTP, los verbos que utiliza son exactamente los mismos, con ellos se puede hacer GET, POST, PUT y DELETE. De aquí surge una alternativa a SOAP. REST llega a solucionar esa complejidad que añadía SOAP, haciendo mucho más fácil el desarrollo de una API REST, en este caso de un servicio en el cual nosotros vamos a almacenar nuestra lógica de negocio y vamos a servir los datos con una serie de recursos URL y una serie de datos que nosotros los limitaremos, es decir, será nuestro BACKEND nuestra lógica pura de negocios que nosotros vamos a utilizar. API REST: Es una interfaz de programación de aplicaciones (API o API web) que se ajusta a los límites de la arquitectura REST y permite la interacción con los servicios web de RESTful. El informático Roy Fielding es el creador de la transferencia de estado representacional (REST). Las API son conjuntos de definiciones y protocolos que se utilizan para diseñar e integrar el software de las aplicaciones. En otras palabras, las API le permiten interactuar con una computadora o un sistema para obtener datos o ejecutar una función, de manera que el sistema comprenda la solicitud y la cumpla.

características de REST

Protocolo cliente/servidor sin estado: Cada petición HTTP contiene toda la información necesaria para ejecutarla, lo que permite que ni cliente ni servidor necesiten recordar ningún estado previo para satisfacerla. Aunque esto es así, algunas aplicaciones HTTP incorporan memoria caché. Se configura lo que se conoce como protocolo cliente-caché-servidor sin estado. Interfaz uniforme: Para la transferencia de datos en un sistema REST, este aplica acciones concretas (POST, GET, PUT y DELETE) sobre los recursos, siempre y cuando estén identificados con una URI. Esto facilita la existencia de una interfaz uniforme que sistematiza el proceso con la información. Sistema de capas: Arquitectura jerárquica entre los componentes. Cada una de estas capas lleva a cabo una funcionalidad dentro del sistema REST.

ventajas de REST

Nos permite separar el cliente del servidor. Esto quiere decir que nuestro servidor se puede desarrollar en Node y Express, y nuestra API REST con Vue por ejemplo, no tiene por qué estar todos dentro de un mismo. Visibilidad, fiabilidad y escalabilidad. La separación entre cliente y servidor tiene una ventaja evidente y es que cualquier equipo de desarrollo puede escalar el producto sin excesivos problemas Se puede migrar a otros servidores o realizar todo tipo de cambios en la base de datos, siempre y cuando los datos de cada una de las peticiones se envíen de forma correcta. Es totalmente independiente de la plataforma, así que podemos hacer uso de REST tanto en Windows, Linux, Mac o el sistema operativo que nosotros queramos.

desventajas de REST

La seguridad es una deficiencia y puede llegar a ser una tarea muy difícil de implementarla correctamente. En un esquema REST puedes tener varios servidores donde unos no saben que los otros existen. No sabes si un usuario ha iniciado sesión en un servidor y si le has enviado ciertos datos. Tampoco sabes realmente en qué servidor puede caer una solicitud.

Diferencias entre SOAP y REST

Es posible que muchos sistemas heredados sigan rigiéndose por SOAP, aunque REST haya surgido más tarde y se considere una alternativa más rápida en los escenarios basados en la Web. Las API de REST son ligeras, así que son ideales para los contextos más nuevos, como el Internet de las cosas (IoT), el desarrollo de aplicaciones móviles y la informática sin servidor. Los servicios web de SOAP ofrecen seguridad y cumplimiento de las operaciones integrados que coinciden con muchas de las necesidades empresariales, pero que también los hacen más pesados.

Motores de bases de datos

Es el servicio principal para almacenar, procesar y proteger los datos. El Motor de base de datos proporciona acceso controlado y procesamiento de transacciones rápido para cumplir con los requisitos de las aplicaciones consumidoras de datos más exigentes de su empresa. Use Motor de base de datos para crear bases de datos relacionales para el procesamiento de transacciones en línea o datos de procesamiento analíticos en línea. Se pueden crear tablas para almacenar datos y objetos de base de datos como índices, vistas y procedimientos almacenados para ver, administrar y proteger los datos. Teniendo en cuenta la gran cantidad de información que se almacena en una Base de Datos y que cada vez son más las aplicaciones y personas que requieren de su uso, los Motores de Bases de Datos, nacen como alternativa para optimizar el procedimiento de acceso, consulta y extracción o inyección de información de las Bases de Datos, creando así un entorno más sencillo, agradable y eficaz a la hora de Utilizarlas.

Los Motores de Bases de Datos debe cumplir con los siguientes parámetros:

Abstracción de la información, Independencia, Redundancia mínima, Consistencia, Seguridad Integridad, Respaldo y recuperación, Control de la concurrencia, Tiempo corto de respuesta.

Principales motores de bases de datos

MySQL: Es el gestor de bases de datos más utilizado en el mundo. Se trata de un sistema multiusuario y multihilo que se emplea en la mayoría de las páginas web actuales y en apps de software libre. Entre las ventajas principales del gestor de bases de datos MySQL está su sencillez de uso y su buen rendimiento. Además, resulta muy sencillo de instalar y configurar y permite soporte multiplataforma. MariaDB: Es básicamente el mismo software del motor MySQL. Cuando Oracle adquirió a MySQL (en realidad adquirió a Sun Microsystems) Michael Widenius, uno de los creadores de MySQL inició un desarrollo en forma independiente del software (en términos técnicos se denomina un fork) creando MariaDB. Totalmente compatible con MySQL puede reemplazarlo fácilmente. Es una buena elección para quienes buscan independencia total de Oracle y más “pureza” desde el punto de vista open source. Oracle: Este es un software propietario, es decir se requiere comprar una licencia para usarlo. Ofrece transacciones ácidas y soporte de datos semiestructurados además del modelo relacional clásico (XML, JSON, RDF). En general es un motor muy sólido y eficiente y una buena elección si es que hay un presupuesto generoso porque el costo de las licencias puede ser elevado. SQLite: Se trata de una biblioteca en C que permite realizar transacciones de datos. Su principal ventaja es que no necesita usar un servidor ni configuraciones, por lo que ocupa mucho menos espacio que otros gestores. Además, ofrece un buen rendimiento y cumple con los criterios de atomicidad, consistencia, aislamiento y durabilidad. PostgreSQL:Este motor es uno de los más utilizados en el mundo y se considera hoy el más avanzado entre los motores relacionales open source. Suele ser considerado como alternativa a MySQL. También soporta transacciones ácidas e incluye un optimizador de consultas sofisticado y mecanismos de respaldo muy sólidos para situaciones de desastres. Nuevamente, este motor es esencialmente relacional por lo que puede no ser el apropiado en casos como el de redes sociales u otros que requieran modelos de grafo.

El lenguaje de las bases de datos: SQL

el SQL, Structured Query Language o lenguaje de consulta estructurada. Básicamente, se trata de un lenguaje ideado para gestionar y recuperar información en gestores de bases de datos (relacionales). Para ello, hace uso del cálculo relacional y del álgebra. Gracias a ello permite la inserción de datos en los gestores, la realización de actualizaciones, consultas, o modificaciones, así como borrado de datos o controlar el acceso a la información. En base a ello, la compañía IBM desarrollo el lenguaje SEQUEL, el cual fue posteriormente ampliado y mejorado para ser usado por el gestor de bases de datos System R, en 1977. Este lenguaje, SEQUEL, fue evolucionado y perfeccionado para dar lugar a lo que hoy conocemos por lenguaje SQL. En los años 80, pasa a ser el lenguaje usado por la mayoría de bases de datos relacionales, hasta que en el año 1986 es finalmente reconocido y estandarizado por el ANSI (Instituto Nacional Estadounidense de Estándares).

Entre las principales características del lenguaje SQL están las siguientes:

Permite crear, modificar y borrar esquemas de relación. Usa el álgebra y el cálculo relacional para la realización de consultas. Contiene reglas basadas en comandos para asegurar la integridad de los datos. Se pueden incluir instrucciones en diferentes lenguajes de programación como C++, Pascal, Java, PHP, etc.

Por otro lado, el lenguaje SQL está preparado para manejar diferentes tipos de datos:

Int: son datos de valores enteros, con signo o sin signo. Varchar: cadenas de palabras formadas por caracteres alfanuméricos (también permite caracteres especiales). Time: hora Date: fecha

OWASP - SONARQUBE - JENKINS

OWASP (Open Web Application Security Project) Es un proyecto sin ánimo de lucro a nivel mundial que busca mejorar la seguridad del software en general. Para esto, la organización se ha provisto de una serie de herramientas y documentos que explican cuáles son las brechas de seguridad más comunes en cualquier sistema de información. Sobra decir, que todos los materiales de OWASP están disponibles de manera libre (gratuita) para su libre consulta y uso. El objetivo principal del proyecto OWASP Application Security Verification Standard (ASVS) es normalizar el rango de cobertura y nivel de rigor disponible en el mercado a la hora de realizar la verificación de seguridad de aplicaciones web utilizando un estándar abierto comercialmente viable. Los atacantes pueden usar diferentes rutas a través de la aplicación de un negocio para causar importantes daños al mismo. 3 riesgos para una empresa: La probabilidad asociada con cada agente de amenaza Vector de ataque Debilidad de seguridad

Principales vulnerabilidades

Top 10 de las vulnerabilidades más importantes: Inyección SQL: Es un tipo de ciberataque encubierto en el cual un hacker inserta código propio en un sitio web con el fin de quebrantar las medidas de seguridad y acceder a datos protegidos. Una vez dentro, puede controlar la base de datos del sitio web y secuestrar la información de los usuarios. Secuencia de comandos en sitios cruzados (XSS): Son un ciberataque que se produce cuando un pirata informático inyecta código malicioso en un sitio web legítimo. En otras palabras, Los ataques de XSS son un tipo de ataque de inyección de código, una amplia categoría de ciberdelitos. Para realizar uno de estos ataques de inyección, un pirata informático añade (inyecta) su propio código en un programa vulnerable. Pérdida de autenticación y gestión de sesiones: Son críticas en la seguridad de las aplicaciones y en especial de las aplicaciones WEB, ya que permiten a un atacante suplantar la información de un determinado usuario, pudiendo llegar a obtener una cuenta de administración que le permita sabotear los controles de autorización y registro de la aplicación. La autenticación y establecimiento de sesión permite que un usuario se identifique como usuario de la aplicación y sea reconocido como tal por los mecanismos de control de acceso. Referencia directa insegura a objetos: Permiten a un atacante la posibilidad de obtener manipular referencias internas de la aplicación para acceder a objetos sin autorización. Es decir, la aplicación desarrollada que es vulnerable a este tipo de ataques permite el acceso a ficheros, directorios o registros de la base de datos a partir, entre otros, de un enlace a una URL o a un parámetro en un formulario. Falsificación de peticiones en sitios cruzados: Cuando los navegadores envían credenciales de autenticación automáticamente, como en el caso de las cookies de sesión, los atacantes pueden crear páginas web que generan peticiones falsas indistinguibles de las auténticas. Este tipo de ataques se centra no tanto en el robo de datos ya que el atacante no puede ver la respuesta a la petición manipulada sino en el cambio de estado de estos. Dependiendo del nivel de acceso de la víctima el atacante podría desde cambiar datos de la cuenta de la víctima hasta tomar control de la aplicación web pasando por transferir dinero, etc. Configuración de seguridad defectuosa: En un entorno de aplicación web los intentos de acceso pueden buscar su entrada mediante cuentas por defecto, versiones obsoletas con vulnerabilidades sin actualizar, directorios desprotegidos, etc. Por ello, tiene que estar todo bien configurado. Almacenamiento criptográfico inseguro: En muchas aplicaciones es necesario almacenar información con seguridad. Para ello, se recurre a bases de datos u otros soportes usando en muchos casos técnicas de cifrado. Pero se cometen errores al aplicar esas técnicas de cifrado. Fallo de restricción de acceso a URL: Frecuentemente, una aplicación solo protege funcionalidades delicadas previniendo la visualización de enlaces o URLs a usuarios no autorizados. Los atacantes utilizan esta debilidad para acceder y llevar a cabo operaciones no autorizadas accediendo a esas URLs directamente. Protección insuficiente en la capa de transporte: Un problema muy común en los sitios web es que usan HTTPS para la autentificación y luego continúan el resto de navegación mediante HTTP. En otros casos, aunque la web realiza toda la comunicación vía HTTPS, responde igualmente si las peticiones se le realizan mediante HTTP. Esto permite ataques Man in The Middle. Los ataques de intermediario son una amenaza común para los dispositivos móviles que buscan puntos de acceso Wi-Fi públicos. Redirecciones y reenvíos no validados: Las aplicaciones redirigen a los usuarios a otras páginas. Detectar redirecciones sin validar es fácil. Es necesario buscar redirecciones donde el usuario puede establecer la dirección URL completa. Sin una validación apropiada, los atacantes pueden redirigir a las víctimas hacia sitios de phishing o malware, o utilizar reenvíos para acceder páginas no autorizadas.

SONARQUBE.

Es una plataforma de código abierto para la inspección continua de la calidad del código a través de diferentes herramientas de análisis estático de código fuente. Proporciona métricas que ayudan a mejorar la calidad del código de un programa permitiendo a los equipos de desarrollo hacer seguimiento y detectar errores y vulnerabilidades de seguridad para mantener el código limpio. El análisis estático corresponde al proceso de evaluar un software sin ejecutarlo, debo mencionar que si pretendemos evaluar la cobertura de los test estos se deben ejecutar. Se distribuye bajo licencia GNU Lesser General Public License, en su versión Community, aunque también dispone de licencias superiores (principalmente para lenguajes más antiguos). Su función principal es la de realizar análisis estático del código con el objetivo de detectar los errores lo antes posible.

4 características

Realiza revisiones automáticas con análisis de código estático detectando problemas que afectan la calidad del código. Es ampliable con el uso de complementos. Admite los lenguajes de programación más populares como Java, C / C ++, Objective-C, C #, PHP, Flex, Groovy, JavaScript, Python, PL / SQL, COBOL, etc. Facilita informes ofreciendo información objetiva de la calidad actual de los proyectos utilizando métricas y gráficos de prueba de calidad avanzados.

beneficios de SonarQube

Ayuda al equipo a mejorar en sus habilidades como programadores al facilitar un seguimiento de los problemas de calidad. Alerta de manera automática a los desarrolladores de los errores de código para corregirlos previamente a la implementación en producción. Favorece la productividad al reducir la complejidad del código acortando tiempos y costes adicionales al evitar cambiar el código constantemente.

aspectos que en las SonarQube nos ayuda:

Código duplicado: La duplicación de código es generalmente considerada una señal de estilo de programación pobre o perezosa, ya que un buen desarrollo está más asociado a la reutilización de este. Código muerto: Es el código dentro de un programa de software que el programa no puede alcanzar o que realmente no utiliza. Puede estar presente por una amplia variedad de razones y, a medida que las personas trabajan con el software, identifican el código muerto y deciden qué hacer al respecto. En algunos casos, las personas pueden eliminarlo de manera segura sin comprometer el programa, y pueden hacerlo para que el programa sea más eficiente. Estándares de codificación: Conjunto de convenciones establecidas de ante mano (denominaciones, formatos, etc.) para la escritura de código. Estos estándares varían dependiendo del lenguaje de programación elegido y además varían en cobertura, algunos son más extensos que otros.

JENKINS

Es un servidor automatizado de integración continua de código abierto capaz de organizar una cadena de acciones que ayudan a lograr el proceso de integración continua (y mucho más) de manera automatizada. Al usar Jenkins, las compañías de software pueden acelerar su proceso de desarrollo del código; ya que Jenkins puede automatizar, agilizar y aumentar el ritmo de toda la compilación y las pruebas de los proyectos. Además, Jenkins puede ser implementado a lo largo de todo el ciclo de vida completo del desarrollo. Con Jenkins, las organizaciones pueden acelerar el proceso de desarrollo de software a través de la automatización. Integra procesos de ciclo de vida de desarrollo de todo tipo, incluidos compilación, documentación, prueba, empaquetado, etapa, implementación, análisis estático entre otros.

funciones de Jenkins

Control de versiones: Es la práctica de rastrear y gestionar los cambios en el código de software. A medida que un desarrollador edita el código, el sistema de control de versiones toma una instantánea de los archivos. Después, guarda esa instantánea de forma permanente para que se pueda recuperar más adelante si es necesario. Entrega continua: Es un enfoque en el que los equipos producen software en ciclos de vida cortos, asegurando que el software se puede entregar en cualquier momento y, cuando se haga, hacerlo manualmente. Implementación continua: hace referencia al lanzamiento automático de los cambios que implementa el desarrollador desde el repositorio hasta la producción, para ponerlos a disposición de los clientes. Adoptar la implementación continua significa que puede hacer llegar las funcionalidades a los usuarios del modo más rápido posible sin poner en entredicho la calidad.

ventajas de usar Jenkins

Jenkins está siendo administrada por la comunidad, que es muy abierta. Todos los meses, celebran reuniones públicas y reciben aportes del público para el desarrollo del proyecto Jenkins. Jenkins también admite arquitectura basada en la nube para que pueda implementar Jenkins en plataformas basadas en la nube. La razón por la que Jenkins se hizo popular es que fue creado por un desarrollador para desarrolladores.

desventajas de usar Jenkins

Una de las razones por las cuales muchas personas no implementan Jenkins se debe a su dificultad para instalar y configurar Jenkins. Su interfaz está desactualizada y no es fácil de usar en comparación con las tendencias actuales de la interfaz de usuario. Aunque Jenkins es amado por muchos desarrolladores, no es tan fácil mantenerlo porque Jenkins se ejecuta en un servidor y requiere algunas habilidades como administrador del servidor para monitorear su actividad.

TIPOS DE PLATAFORMAS

Tanto empresas, profesionales como usuarios utilizan cada vez más servicios en la nube (Cloud Computing). Este modelo basado en diferentes capas, maneja nueva terminología como IaaS, PaaS, SaaS, etc. que se prestan a ser confundidas unas con otras. Gracias a estos servicios, las empresas están evitando realizar grandes inversiones tanto en software como en hardware. Además, obtienen múltiples ventajas de tener todas sus aplicaciones en la nube, permitiendo a sus empleados poder acceder a ellas desde cualquier dispositivo en cualquier lugar y a cualquier horario.

Que es IAAS

Infraestructura como servicio (IaaS) se refiere a los servicios en línea que proporcionan un alto-nivel de APIs utilizadas para indireccionar detalles a bajo nivel de infraestructura como recursos de informática física, ubicación, dato partitioning, scaling, seguridad, copia de seguridad etc.

Qué es PaaS:

El servicio PaaS ofrece plataformas como servicios. En estas plataformas se pueden lanzar aplicaciones como bases de datos, middleware, herramientas de desarrollo, servicios de inteligencia empresarial, etc. Este tipo de servicios es el ideal para los desarrolladores que sólo quieran centrarse en la implementación y administración de sus aplicaciones. Al no tener que preocuparse por los recursos de hardware y software (sistemas operativo), mejoran su eficacia, centrándose sólo en la parte que les interesa.

Google App Engine:

este servicio de Google está enfocado a que el cliente pueda publicar aplicaciones web online, sin tener que preocuparse por la infraestructura donde hacerlo. Así, el cliente se enfoca solamente en la construcción y configuración de sus aplicaciones, siendo Google la encargada de aprovisionar de los recursos necesarios.

WordPress:

la instalación de WordPress en un servidor para diseñar una página web, da como resultado un sitio o página web que es accesible para los usuarios desde cualquier dispositivo, a través de internet. WordPress es un software que se está ejecutando en un servidor remoto donde el usuario interactúa con él sin tener nada que ver con la infraestructura necesaria para su funcionamiento.

SCRUM – KANBAN

SCRUM La metodología SCRUM es un Framework adaptable, iterativo, rápido, flexible y eficaz que esta diseñado para entregar valor al cliente durante todo el desarrollo del proyecto. El objetivo primordial es satisfacer las necesidades del cliente a través de un entorno de transparencia en la comunicación, responsabilidad y progreso continuo.Este Framework es muy ágil y completo en el desarrollo de proyectos. Scrum puede aplicarse a todo tipo de proyecto, pero no todos los proyectos requieren usar Scrum

elementos del manifiesto ágil SCRUM:

1. Individuos e interacciones sobre procesos y herramientas. 2. Software funcionando sobre documentación extensiva. 3. Colaboración con el cliente sobre negociación contractual. 4. Respuesta ante el cambio sobre seguir un plan.

Roles en SCRUM

Roles en SCRUM

Podemos encontrar dos categorías: Roles centrales: Su participación es indispensable para el proyecto, son los responsables por el éxito del proyecto, los cuales son: ° Product ower. ° Scrum master. ° Equipo Scrum. Roles no controles: Su participación es importante pero no depende de ellos el fracaso o éxito del proyecto, pero a ellos hay que tenerlos en cuenta ya que su rol puede ser decisivo para el proyecto, estos son: ° Stakeholdres: Clientes. Usuario. Patrocinador ° Vendedor. ° Scrum Guidance Body.

KANBAN

Kanban es uno de las formas para mantener un equilibrio entre el trabajo que se necesita y la disponibilidad de cada miembro del equipo. La metodología de Kanban se basa por medio de tableros. Es un método de gestión de proyectos de manera visual que le permite a los equipos un flujo de trabajo y la carga de trabajo. Cada una de las columnas representa una etapa de trabajo, puede tener columnas como inicio, medio o fin del proyecto y también columnas de tareas dividías a cada miembro del equipo.

Los principios de Kanban:

Hay cuatro principios básicos que te ayudaran al implemento de la metodología Kanban: Empieza con lo que haces ahora: Puedes utilizar con los proyectos que tienes ahora. Comprometerse a buscar cambios progresivos y evolutivos: Los grandes cambios pueden ser perjudiciales para el equipo, al tener varios cambios al mismo tiempo, puede generar que el sistema no funcione como se esperaba. Por esto está diseñado esta metodología que fomenta la mejora continua y el cambio progresivo. Respetar los procesos, los roles y las responsabilidades actuales: A comparación de otras metodologías Lean, Kanban no posee roles integrados y puede funcionar con la estructura y los procesos actuales de tu equipo. Impulsa el liderazgo en todos los niveles: Con Kanban no solo puede provenir de cualquier dirección y no solo "de arriba a abajo".

CMS - ERP - RPA

CMS Un C.M.S (Content Management System) o sistema de gestión de contenido, es un sistema online que permite poner en marcha una página web rápida y sencilla. Se trata de un Software que ayuda a administrar contenido dinámico, por ejemplo, un blog, una ecommerce o cualquier tipo de página web. Es especialmente para los que necesitan una actualización constante. Gracias a los C.M.S, muchos usuarios sin conocimiento en programación puede administrar una página web con una interfaz gráfica. Anterior mente para crear desde cero una página web se necesita diferentes lenguajes de programación y subir contenido de manera manualmente al servicio, sin embargo, los C.M.S hacen que esta acción sea totalmente accesible. Un C.M.S permite utilizar un editor de contenido para crear desde publicaciones y paginas hasta tiendas online y contenidos diversos. Lo que hace esencial un C.M.S es administrar todo el proceso de subida de contenido por el usuario, solo toca publicarlo y aparecerá automáticamente en la web.

E.R.P

La planificación de recursos empresariales, también conocida como E.R.P, es un sistema que ayuda a manejar, automatizar y, administrar los procesos empresariales de distintos áreas: Fabricación. cadena de consumo. Operaciones. Finanzas. Recursos humanos. Venta por menor. Los sistemas E.R.P desarrollan los silos de datos e integran la información obtenida por cada departamento, así, ayudan a las directivas a extraer conocimiento y mejorar la toma de decisiones.

Ventajas y características de los sistemas E.R.P.

Al estar pendiente de los avances del sistema E.R.P ayuda a manejar los temas de decisiones, ayudando a prevenir problemas y ayudando a manejar la productividad general. Al unir la información entrante de varios orígenes, los sistemas E.R.P ayudan a manejar los procedimientos operativos. Con una vista integral empresarial, será posible responder a los cambios normativos y asegurar que todos los sistemas cumplan sus trabajas reglamentarios en todo el mundo. Al tener bien claro el sistema E.R.P, brindan las siguientes ventajas: Optimización de operaciones. Coordinación de equipos. Unificación de la información. Mejorar la toma de decisiones. Reducción de costos.

R.P.A

La atomización robótica de procesos o R.P.A es una tecnología de software fácil de manejar para todo aquello que quiera automatizar tareas digitales. Los usuarios de software pueden ilimitar, programar, aprender y luego ejecutar procesos empresariales basados en reglas. La R.P.A permite crear bots mediante la observación de las acciones digitales de los humanos. Los robots de software pueden interactuar con cualquier aplicación o sistema de la forma que la hacen las personas.

ISO 9001 / ISO 27001

ISO 9001 La norma ISO 9001 es la encargada en la gestión de cantidad más reconocida a nivel mundial. Pertenece a la gran familia ISO 9000 de normas de sistemas de gestión de la calidad, ayudando a todas las organizaciones a cumplir con las expectativas y necesidades de cada cliente. Un sistema de gestión ISO 9001 (SGC) ayudara con el control y gestión de manera continua la calidad en todos los procesos. Describe alcanzar un desempeño y un consistente y eficaz. El ISO 9001 es una muy poderosa y útil herramienta que ayuda a gestionar y organizar su negocio de manera efectiva, aumentando la resistencia operativa y planificar a largo plazo.

Beneficios del ISO 9001

Diseñado para ser una poderosa herramienta de mejora empresarial, el ISO 9001 ayuda: Satisfacer las necesidades de los clientes. Mejorar de manera continua, optimizando las operaciones y reduciendo costos, Construir un negocio más sostenible. Demostrar que tiene una jerarquía corporativa sólida, motivando el nivel de compromiso de los trabajadores a través de procesos internos más eficientes. Trabajar junto con las partes interesadas y su cadena de suministros.

ISO 27001

La norma ISO 27001 establece bunas prácticas de implementación de un sistema de gestión de seguridad de toda la información. Esto protege toda la información de tu organización, que es el activo más importante, y también genera una mayor confianza entre tus clientes, proveedores y empleados.

¿Qué es la seguridad de la información?

Es el proceso integrado que permite proteger la identificación y gestión de la información y todos los riesgos que se podría enfrentar. Se hace a través de estrategias y acciones de mitigación para mantener de manera confidencial los datos de una empresa. Para implementar la seguridad de información en tu organización, es importante que tenga tres elementos claves: Las personas: Encargados en realizar la gestión y el tratamiento de la información. Los procesos: Son todas las funciones que se realizan para cumplir con su objetivo planeado. La tecnología: Está relacionada con los servicios y la infraestructura de la empresa, es la que se encarga del manejo y el desarrollo de la información, también, brinda el almacenamiento, recuperar, difundir y darles mantenimiento a los datos de importancia.

Espero te haya serviso el conocimiento de basico de un ingeniero