domingo, 31 de octubre de 2021

Aspectos claves de la Reingeniería




Modificación de documentación:

Para poder volver a reconstruir un sistema de software se debe de empezar por su diseño y si un sistema cuenta con una documentación mal estructurada o mal diseñada no se podrá realizar una correcta reingeniería del sistema.


Ingeniería inversa:

Para una mejor reingeniería se necesita de una ingeniería inversa que pueden tener nombres similares, pero no es lo mismo, la ingeniería inversa es un proceso que se encarga de tratar de entender que procesos tomaron para llevar acabo el diseño de un sistema, al aplicar una ingeniería inversa se puede mejorar y facilitar el proceso de reingeniería


Cambio o modificación de código:

Otro aspecto clave para la reingeniería de software es la modificación del código ya que aquí se puede tomar el código fuente que da el sistema y realizar un totalmente nuevo e incluso de en otro lenguaje de programación que beneficie la reingeniería.


Modificación de datos:

Si los datos del sistema al que se le aplicara Mantenieniento son demasiado débiles será difícil aplicar un mantenimiento, es por eso que la mejor forma de mejorar este problema es aplicando una ingeniería inversa y modificar los datos.


La economía:

En el mundo del software los programas que se diseñan tienen que tener una cierta rentabilidad, ya que la razón por la cual fueron creados fue para mejorar los aspectos de un trabajo y generar más ganancias, de no cumplirse esto el software debe ser cambiado y ahí es donde se aplica la reingeniería

 

 

 

 

domingo, 24 de octubre de 2021

El mantenimiento del sistema.

Mapa conceptual 


¿Por qué resulta necesario realizar mantenimiento del software? ¿Qué le pasa usualmente a un software que no se mantiene?

Es necesario el mantenimiento del software ya que sin un mantenimiento adecuado el software dejaría de funcionar correctamente, es esto se debe a que el software se deteriora con el tiempo y necesita una renovación por decirlo de una manera.

 

¿Cómo es posible clasificar los tipos de mantenimiento en función de sus objetivos?

Los tipos de mantenimiento se podrá catalogar como parte del proceso de desarrollo del sistema, esto se puede hacer posible de colocar junto a los objetivos ya que los mantenimientos en realidad se podrían tomar como mejoras hasta el punto de perfeccionar el sistema.

 

¿Qué problemas plantea el mantenimiento?

El mantenimiento del sistema plantea varios problemas entre ellos esta:

Desarrollado con tecnologías y técnicas “anticuadas”: es decir que se trabajó con tecnología muy vieja y ahora es muy difícil mejorar o actualizar el sistema

Ausencia de documentación adecuada (decisiones de diseño): esto quiere decir que la documentación del sistema no se realizó de manera correcta y por ende el diseño del sistema no quedo en óptimas condiciones.

Degradación calidad del producto: el producto o sistema está demasiado deteriorado y es difícil realizar el manteamiento 

 

¿Qué necesidades conflictivas aparecen durante el mantenimiento?

Durante el manteamiento surgen muchas necesidades, muchas de ellas conflictivas como:

Falta de información necesaria para la actualización

Falta de recurso tecnológico

Falta de tiempo para realizar el trabajo.

 

¿Qué hay que hacer para que los atributos de calidad del software no se degraden durante el mantenimiento?

Para que los atributos del software no se dañen o degraden demasiado rápido con el tiempo se debe de programar un mantenimiento preventivo con una frecuencia más alta, este tipo de mantenimiento es más fácil de hacer y mas económico.  

domingo, 17 de octubre de 2021

Entrega del Sitema

 ¿Cuándo corresponde comenzar la planificación de la liberación de un sistema? ¿Por qué?

La planificación de la liberación de debe realizar cuando el proyecto ya está terminado y se han realizado todas las pruebas necesarias para poder determinar un funcionamiento correcto.

Esto se hace debido a que la liberación del sistema es prácticamente la entrega de un producto final a un cliente y no se puede hacer una entrega de un producto a medias o con errores que pueden causar problemas en el funcionamiento del sistema.


¿Qué aspectos resulta necesario atender durante la liberación?

Los aspectos a tomar en cuenta en la liberación son:

Ayudar a los usuarios a entender y usar el sistema: para que los usuarios entiendan el sistema se debe realizar el siguiente proceso:

Entrenamiento: aquí se capacitan los usuarios para que puedan usar el sistema de forma adecuada y se le pueda obtener la máxima eficiencia

Documentación: se les entrega la documentación necesaria a los usuarios para poder tener un mejor entrenamiento y se le facilite la capacitación, la documentación puede ser, manual de usuario tanto de uso como para la solución de algún problema frecuente por mala práctica y por supuesto manual de configuración correcta.

Solución de Problemas: se hace por medio de guía de mensajes de error y con posibles soluciones, también con la habilitación de una guía rápida de solución o también con una asistencia en línea.

Conversión:  se cambia un sistema viejo e ineficiente por uno nuevo y más eficiente.

Instalación: se instala el software en los equipos de modo que siempre esté disponible y funcional para el uso del cliente o usuario

 

¿Qué relevancia tiene la documentación del software para su puesta en funcionamiento?

La documentación para la implementación de un sistema tiene mucha relevancia ya que la documentación es la que siempre tiene que estar disponible para el usuario o cliente final para poder resolver alguna duda que puede tener con respecto a la funciones o utilización de alguna herramienta que no quedo muy claro en el entrenamiento, pero la documentación puede solventar la duda.

¿Por qué resulta conveniente asignar recursos para la solución de problemas durante el período inicial de la implantación de un sistema?

Este recurso es importante y conviene mucho que se asigne en el presupuesto inicial y se tenga listo para esa etapa, ya que, si durante la implementación del sistema ocurre algún imprevisto, como por ejemplo fallas en compactibilidad de software con el equipo y se tiene que llevar a revisión, el recurso económico no se toma para la solución del problema no se toma de la parte de las ganancias y no genera pérdidas en el proyecto.

 

¿Qué problemas podríamos encontrar al momento de implementar un sistema?

Los problemas más comunes pueden ser los de compactibilidad de hardware, aunque es un punto a tomar durante el desarrollo, siempre hay diferencia entre los equipos que puede resultar en un problema, otro puede ser la deficiencia del personal o la mala disposición a la utilización de nuevo sistema,

 

¿Qué hacer si el problema es «resistencia al cambio tecnológico»?

Lo más recomendable es que el cliente ya haya previsto una resistencia por parte de los usuarios del uso de herramientas tecnológicas, y de alguna manera se hayan ido preparando para el cambio, pero si el problema se transfiere en la implementación lo idea es cambiar a los usuarios que de ninguna manera pusieron de su parte para poder hacer la transición de tecnología.

domingo, 10 de octubre de 2021

Pruebas de software

 

El software a evaluar se trata de un avance de aplicación web hibrida creada con el Ionic framework se ha implementado un login por medio de métodos, donde se probará lo siguiente .

Verificación de creación de la Página login y configuración

 Captura de datos y envío de credenciales

Verificación de usuario y contraseña

 

Pruebas de funciones

Creación de página login y configuración

Se evaluará

                Creación de página

                Configuración de inicio

                Tipos de datos permite ingresar


La página de login fue creada y agregara como página de inicio de la app

 

               


                

Al tratarse del logueo lo normal es que el usuario puede ingresar caracteres alfanuméricos y la contraseña se tapada, verificamos que se haga de esa manera.


 

 

Captura de datos y envío de credenciales

Se evaluará

Captura de datos y verificación de campos llenos

Envió de datos y verificación de credenciales


Sin el ingreso del Password no se activa el botón de login, pasa de la misma manera cuando no hay usuario, es una manera muy simple de evitar el envió de campos vacíos y evita trabajo innecesario al sistema



Cuando se realiza él envió de datos se verifica en la base y se aprueba o no el logueo, si es erróneo nos aparecerá este mensaje y nos pedirá que se vuelva a intentar.

una falla en esta parte es que podemos visualizar que la contraseña es visible al usuario.




Verificación de usuario y contraseña

Se evaluará

las credenciales correctas sean aceptadas

Para verificar las credenciales el sistema manda la información a la base y verifica las credenciales

En el caso de la aplicación el usuario es admin y la contraseña es admin, al tratarse de un avance son credenciales validas que se usan para las respectivas pruebas como es el caso.

Se modificará el código para que el usuario y contraseña puedan ser visibles, aunque se sabe que esto no es permitido en las pruebas de software

Línea modificada.



Se coloca las credenciales



Al presionar login automáticamente entramos a la aplicación.




Con estas pruebas, se puede verificar que el sistema de login funciona de manera adecuada. 



 


 

domingo, 3 de octubre de 2021

Ejemplo de Prueba de los Programas

Qué tipo de pruebas a desarrollado a los sistemas que han desarrollado (Ya sea en su lugar de trabajo o a los que han desarrollado durante el desarrollo de sus carreras)

 
Prueba Unitaria




La prueba unitaria es la que más he utilizado para examinación y verificación del correcto funcionamiento es la prueba unitaria, ya que los programas o software que he desarrollado no representan una gran cantidad de información a examinar y no siento que allá resultado difícil realizar la inspección del código y de igual manera para el equipo de trabajo, se mantuvieron todos de acuerdo en usar este tipo de prueba unitaria.

En la mayoría de ocasiones se lograron obtener resultados favorables, casi siempre se encontraban fallas en la sintaxis del código, pero eran más comunes errores de lógica y ordenamiento.



Partiendo de los tipos de pruebas presentados seleccione una, que usted no ha aplicado, y explique por qué la ha seleccionado   
  
   
Prueba de Integración Big - Bang



Esta prueba me parece muy curiosa y la he seleccionado por que es una prueba que evalúa prácticamente todo el sistema completo, esto se escucha muy prometedor para el que está realizando pruebas unitarias, ya que al evaluar todo el sistema sería más fácil, pero esto tiene complicaciones como su nombre lo dice  Big - Bang, estamos hablando de una explosión de pruebas que quizá resulte muy complicado de realizar para proyectos grandes, y es más recomendado para proyectos pequeños, por esa razón llama mucho mi atención, ya que como desarrollador pequeño o independiente, poder realizar pruebas a un sistema en conjunto sería una herramienta muy útil y podría ayudar a mejorar la calidad de los productos. 

domingo, 26 de septiembre de 2021

Prueba de los programa



Es importante considerar, que la etapa de prueba no es la primera instancia en que se localizan defectos también las revisiones de requerimientos y diseño contribuyen a descubrir los problemas en instancias tempranas del desarrollo.

Existen muchos tipos de pruebas: 
  • prueba unitaria: es una forma de comprobar el correcto funcionamiento de una unidad de código. Por ejemplo, en diseño estructurado o en diseño funcional una función o un procedimiento, en diseño orientado a objetos una clase

  • prueba de integración: Pruebas integrales o pruebas de integración son aquellas que se realizan en el ámbito del desarrollo de software una vez que se han aprobado las pruebas unitarias y lo que prueban es que todos los elementos unitarios que componen el software, funcionan juntos correctamente probándolos en grupo.

  • prueba de función: es una prueba de tipo caja negra basada en la ejecución, revisión y retroalimentación de las funcionalidades previamente diseñadas para el software.

  • prueba de desempeño: son las pruebas que se realizan, desde una perspectiva, para determinar lo rápido que realiza una tarea un sistema en condiciones particulares de trabajo

  • prueba de aceptación: las pruebas de aceptación pertenecen a las últimas etapas previas a la liberación en firme de versiones nuevas a fin de determinar si cumplen con las necesidades y/o requerimientos de las empresas y sus usuarios.

  • prueba de instalación: pueden buscar errores que se produzcan en el proceso de instalación y que afecten la percepción y la capacidad del usuario para utilizar el software instalado

Defectos y Fallas del software

Por lo general se interpreta que el software no hace lo que especifican los requerimientos. La falla puede ser el resultado de alguna de varias razones:

  • La especificación puede ser errónea o puede haberse omitido algún requerimiento. 
  • La especificación puede contener un requerimiento que es imposible de implementar con el software y el hardware prescrito. 
  • El diseño del sistema puede contener un defecto. 
  • El diseño del programa puede contener un defecto. 
  • El código del programa puede estar errado. 

Una falla es el resultado de uno o más defectos en algunos aspectos del sistema.
  • Muchos programadores consideran que la prueba es una comprobación de que sus programas operan correctamente. 
  • La idea de demostración de exactitud es realmente lo inverso de lo que entraña la prueba. 
  • Se prueba un programa para demostrar la existencia de un defecto



Tipos de Defectos 

Defectos Algorítmicos: Se produce cuando el algoritmo o la lógica de un componente no producen la salida apropiada para una entrada dada, debido a que algo esta mal en los pasos del procesamiento.

Defectos de Sintaxis: Se realiza mientras se buscan defectos algorítmicos. En este caso, se desea asegurar que se han utilizado apropiadamente las estructuras del lenguaje de programación.

Defectos de computación y de precisión: Ocurre cuando la implementación de una fórmula es errónea o no calcula el resultado con el grado requerido de exactitud. Ej.: Mezcla de flotantes y enteros resultado inesperado.

Defectos de Documentación: Es cuando la documentación no corresponde con lo que el programa realmente hace. Se tiende a confiar en la documentación al pasar de una etapa a otra y al modificar.

Defectos de sincronización o de coordinación: Al desarrollar sistemas de tiempo real, una consideración critica es la coordinación de los varios procesos que se ejecutan simultáneamente o una secuencia rigurosa definida. El defecto se produce cuando el código que coordina dichos eventos es inadecuado.


Aspecto de la prueba


¿Quién realiza las pruebas? 

Muchas veces se manifiestan dificultades para separar los sentimientos personales del proceso de prueba. Por lo tanto, a menudo se utiliza un equipo de prueba independiente. 

Es claro que nadie entrega su código para la prueba sino piensa que el código a sido realizado de acuerdo con la especificación, pero se puede estar demasiado apegado al código como para ser realmente objetivos y reconocer algunos de los defectos más sutiles. 

La visión de los objetos de prueba 

Al probar un componente, un grupo de componentes, un subsistema o un sistema, la propia visión del objeto de prueba puede afectar la forma que se lleva acabo la prueba. Si el objeto de prueba se ve desde afuera, como una “caja negra” o “caja cerrada” , cuyo contenido se desconoce, las pruebas consisten en alimentar la caja negra con entradas y anotar cuales son las salidas que se producen.

La desventaja de utilizar la prueba de caja negra en un componente, es que no se pueden seleccionar los casos de prueba más significativos porque no se tiene un conocimiento acabado del procesamiento. 
Para superar este problema el objeto de prueba puede verse como una “caja abierta”, “caja de cristal”, “caja blanca” o “caja transparente”, luego; se puede utilizar la estructura interna del objeto de prueba, para probar las diferentes maneras.


Prueba Unitaria


El proceso es similar al que se utiliza, cuando se prueba un programa asignado como tarea en la universidad: 
1. Se examina el código, leyendo minuciosamente, tratando de localizar defectos en los algoritmos, los     datos y la sintaxis. 
2. Comparar el código con las especificaciones y con el diseño hasta tener la certeza de considerar             todos los casos relevantes. 
3. Finalmente se desarrollan los casos de prueba para demostrar que las entradas se convierten                      realmente en las salidas esperadas.

El examen del código: El proceso de revisión del código es similar al de la revisión de requerimientos y diseño. Se conforma un equipo, integrado por el mismo programador y tres o cuatro expertos técnicos.

Recorridos de código: Se presenta el código y la documentación correspondiente al equipo de revisión y el equipo comenta sobre su exactitud.

Inspección de código: Este método fue presentado por Fagan (1976) en IBM. Es similar a una recorrida pero más formal. El equipo revisa el código y la documentación contra una lista de puntos de interés preparados.

Éxito de las revisiones de código: Puede sentirse incomodidad al tener a un grupo revisando el código propio
test case (Casos de Prueba): 
  • Un buen test case es aquel que tiene una alta probabilidad de encontrar un defecto no descubierto, no aquel en que el programa funciona correctamente. 
  • Un buen test case no es redundante, ni muy simple, ni muy complejo idealmente, el mejor de su clase. 
  • Un exitoso test case es aquel que descubre un defecto no descubierto. 
  • El diseño de test cases es muy difícil. 
  • El Testing no puede mostrar la ausencia de defectos, sólo puede mostrar que los defectos están presentes.

Prueba de Integración

Cuando se llega a un convencimiento de los componentes individuales están trabajando correctamente y se satisfacen los objetivos, se los combina en un sistema activo. Esta integración se planea y coordina para que al producirse una falla, se pueda tener alguna idea de lo que le ha dado origen. 

Integración Ascendente (bottom – up): Cuando se usa este método, se prueba primero en forma individual cada componente al nivel más bajo de la jerarquía del sistema. Luego los próximos componentes que se prueban son lo que llaman a los ya probados.

Integración Descendente (Top – Down):  El componente principal se prueba aisladamente, después todos los componentes llamados por el componente se combinan y se prueban como una unidad mayor. Este enfoque se vuelve a aplicar hasta que todos los componentes estén incorporados. En la prueba descendente no se necesitan programas controladores. Por otro lado la escritura de los talones puede ser difícil, porque estos deben permitir probar todas las posibles condiciones.

Integración Big - Bang: Cuando todos los componentes se prueban por separado, existe la tentación de mezclarlos juntos como un sistema final y ver si funciona la primera vez.  Muchos programadores usan este enfoque para sistemas pequeños, pero no es práctico para los grandes.

Integración Intercalada:  El sistema de se como tres capas, al igual que un sandwich: en el medio la capa objetivo, los niveles por encima del objetivo y los niveles por debajo del objetivo.  Este enfoque permite utilizar el enfoque bottom - up para verificar lo correcto de los utilitarios al principio de la prueba. Por lo tanto no se necesita escribir talones para los utilitarios porque están disponibles.








domingo, 12 de septiembre de 2021

Considerando objetos DOO



El diseño orientado por objetos (DOO), como otras metodología de diseños orientados a la información crean una representación del dominio del problema en el mundo real y lo transforma en un dominio de soluciones que es el software. 

A diferencia de otros métodos, el DOO da como resultado un diseño el cual interconexión los objetos de datos (elementos de datos) y las operaciones de procesamiento, de forma tal que encapsula la información y el procesamiento.  Este encapsulamiento es el paradigma fundamental de la orientación por objetos.

La naturaleza única del diseño orientado por objetos se debe a su habilidad para construir basándose en tres conceptos importantes del diseño del software: 

•Abstracción. 
•Ocultamiento de la información.
•Modularidad.





Conceptos básicos sobre la Orientación por Objetos


¿Qué es un Objeto?

Un objeto es una entidad física o abstracta que tiene un comportamiento antes ciertos estímulos, tanto externos como de otros objetos específicos que se encuentran dentro del sistema. 
Entonces ¿ Qué se puede considerar como objeto ? : Persona, equipo, hardware, materiales, información, software, procesos, procedimientos, etc.


Identidad de un objeto:
 
Cada objeto tiene su propia identidad que lo distingue de los demás objetos. En otras palabras, dos objetos distintos no son iguales aunque todos los valores de sus atributos sean idénticos.


Componentes para la construcción de Software de un objeto:

Cuando un objeto se transforma en una realización de software, consta de una interfaz, una estructura de datos privada y unos procesos llamados operaciones o métodos que son los únicos que pueden transformar legítimamente la estructura de datos



Ventajas de Sistemas OO

Un modelo OO representa bastante el domino del problema 
•Esto facilita el entendimiento del diseño 
•Es más sencillo impactar cambios en los requerimientos (comparado con otros enfoques) 
•Facilita la reutilización 
•Se cree que este enfoque es más natural 
•Entonces, provee estructuras más ricas para pensar y poder hacer abstracciones


Tres conceptos claves para la calidad de un diseño (además de ser correcto, claro)


Acoplamiento (bajo)

• Captura la fuerza de interconexión entre módulos 
• Cuánto más acoplados existe más dependientes entre si 
• Entonces, más difícil comprenderlos y modificarlos 
• El grado de acoplamiento entre módulos depende de: 
         Cuánta información se necesita sobre el otro módulo para entenderlo y qué tan compleja y                      explícita es esta información


Cohesión (alta)

Se focaliza en conocer porqué los elementos de un módulo están juntos en ese módulo 
• El objetivo es tener en un mismo módulo elementos que están fuertemente vinculados 
• Entonces, módulos más fáciles de entender y más fáciles de modificar 

Principio abierto-cerrado (cumplir con el principio)

Objetivo : promover la construcción de sistemas que sean fáciles de modificar 
• Módulos abiertos para la extensión 
        El comportamiento puede ser extendido 
• Módulos cerrados para la modificación 
        Extremo: cuando se hacen mejoras no es necesario tocar el código existente 
        La interfaz no debe cambiar y se debe asegurar que se mantiene el comportamiento


¿Ustedes cómo diseñan?

En lo personal y con la experiencia que he obtenido en diversas materias en la que se nos a solicitado diseños se podría decir que el método con el que mas me siente cómodo o con el que mas he realizado diseños del software es con el modelo de diagramas de clases y el modelo de diagrama Entidad relación.  





domingo, 22 de agosto de 2021

 La planificación y gestión de proyectos


La planificación y gestión de proyectos incluye implementar planes de acción para todas las fases del proyecto. En este sentido, decimos organización sistemática porque requiere una serie de pasos para ejecutarse. Además, necesita saber lo que tiene o puede tener para lograr su objetivo, en este caso estaremos mencionando la estimación de proyectos y la organización del equipo de trabajo

Estimación

La estimación es un proceso analítico imparcial con un objetivo de exactitud y para poder planificar y gestionar un proyecto se debe tener en cuenta las estimaciones de diversos factores como los costos, duracion, metas, compromiso, etc. 


Consideraciones basadas en estimaciones precisas: 

  •     Crear un cronograma detallado 
  •     Identificar el camino crítico 
  •     Priorizar la funcionalidad a entregar 
  •     Partir el proyecto en iteraciones

Factores importantes en la estimación:

  • No incluir alcance de proyecto
  • Estimar tamaños 
  • Economía a escala, al producir en mayor cantidad se reducen los costos
  • Factores del personal


Lenguaje de programación

La experiencia del equipo en el lenguaje y herramientas - 40% de impacto en productividad general. 

Herramientas de soporte y ambiente de programación – hasta 50% de impacto. 

Algunos lenguajes generan más funcionalidad por LOC (Líneas de Código).

Trabajar en lenguajes interpretados tiende a ser (hasta 2 veces) más productivo que en lenguajes compilados.

No existe una forma sencilla de estimar el esfuerzo requerido para desarrollar un sistema de forma precisa: 

1. Las estimaciones iniciales parten de la definición imprecisa de requisitos por parte del usuario. 

2. El software a desarrollar a menudo se ejecutará sobre entornos desconocidos por el equipo de desarrollo o bien utilizará tecnología de punta. 

3. Las personas que van a formar parte del proyecto (y sus habilidades) pueden ser desconocidas.

La productividad de los programadores en los proyectos es muy difícil de saber, pero se puede realizar una medición, y se hace por medio de las líneas de código.

Esta forma de medición tiene sus ventajas y desventajas como:

Ventajas:

Fácil de medir automáticamente a partir del código. 

Permite comparar proyectos y estimar proyectos futuros basándose en datos de proyectos pasados. 

La mayoría de las herramientas de estimación basan sus estimaciones de esfuerzo y duración en LOCs.

Desventajas:

Para medir se precisa que el código esté construido

Sujeto a variaciones personales/grupales y estilos de programación. 

Deseconomía de escala 

Productividad varía según tipo de sw. 

No pueden usarse para estimar asignaciones de tareas, porque productividad varía entre programadores. 

Requisitos, diseño y testing no producen LOCs 

Depende del lenguaje: 

  • Dificultad para medir productos implementados en más de un lenguaje. 
  • Difícil comparar proyectos en distintos lenguajes.

La organización y recursos humanos.

Para determinar el calendario del proyecto y estimar el esfuerzo y costo asociados, debemos saber: 

Cuánta gente va a estar trabajando en el proyecto

Qué tareas van a desarrollar y 

Qué habilidades y experiencia deben tener. 

Otro factor a tener en cuenta con las estimaciones son los equipos de trabajo o mas bien la selección de equipos de trabajo.


Para seleccionar personal y crear los equipos de trabajo se tiene que pasar por muchas muchas pruebas entre ellas, revisión de CV, entrevistas, y referencias del trabajador aspirante.

En la entrevista el aspirante tiene que mostrar algunas características para desempeñar el trabajo como:

  • Capacidad para desempeñar una tarea  
  • Interés en el trabajo 
  • Experiencia con aplicaciones similares, herramientas, lenguajes, técnicas y ambiente de desarrollo • Capacitación - estudios 
  • Capacidad para comunicarse con otros y compartir la responsabilidad 
  • Capacidad de supervisión 
  • Capacidad para resolver problemas 
  • Adaptabilidad – Capacidad de aprender, aceptar y asimilar cambios. 
  • Capacidad para resistir cierta cantidad de tensión. 
  • Personalidad
Una vez seleccionados los trabajadores se tiene que formar los equipos de trabajo, lo mas importante es que el grupo tenga un buen equilibrio en la mayoría de aspectos posibles.













un grupo de trabajo donde solo existen lideres no funciona de manera correcta, lo mas recomendables es que en el grupo solo exista un líder y este vaya enfocado a las tareas a realizar.

El lides del grupo estará obligado a realizar diversas actividades como:
  • Organización del modo de trabajo. 
  • Asignar el personal 
  • Asignar/ajustar los roles y responsabilidades
  • Definir/comunicar los objetivos 
  • Estimación del trabajo que puede realizar el personal 
  • Planificación de las tareas a realizar por cada miembro del equipo. 
  • Control de las actividades del personal 
  • Motivar 
  • Facilitar la comunicación entre los integrantes 
  • Resolución de problemas haciendo uso del personal disponible 
  • Brindar retroalimentación respecto a los logros
Los grupos de trabajos tiene que se creados de tal manera que este puede hacer una buena cohesión y así poder actuar siempre a favor del grupo de trabajo y de los objetivos planteados.








domingo, 25 de julio de 2021

El porqué de la ingeniería de software


La ingeniería de software es básicamente una ciencia que estudia el desarrollo, la creación y el mantenimiento de software de calidad y de confianza, esto se logra gracias a métodos y técnicas que han venido desarrollando a base de pruebas y errores, también se le conoce como producción de software ya que estos métodos buscan obtener la mayor rentabilidad en el mercado. 




La ingeniería de software empezó a mencionarse como termino por primera vez en 1968, pero sin embargo ya se venia apareciendo a finales de la década 1950,  debido a la llamada crisis del software que llego a estimular los avances a la ingeniería del software.


La crisis del software fue una etapa que se vivió un poco mas enfatizada entre 1960 y 1980, esta crisis realmente trato de una situación de producción del software insostenible debido a que en ese entonces no se habían desarrollados técnicas para la construcción del software, esto afecto directamente al cliente final ya que los productos resultaban ser malos y demasiados costosos, esto creo un mercado con poca tasa de rentabilidad y se tenia que buscar una solución y esto no paso hasta 1968 en una conferencia de la OTAN donde Friedrich L. Bauer hablo por primera vez sobre toda la problemática del desarrollo de software desde su deficiencia como sistemas, hasta los grandes costos que representa su desarrollo, ahí también se propuso la creación de la nueva rama ingeniería de software para dar solución al problema.



La ingeniera del software también ha tenido que superar muchas etapas de formación como toda rama de las ciencias, una de la mas complejas es la de la aplicación del software en diversas áreas, ya que los informáticos son expertos en programar, pero no conocen nada sobre la contabilidad, no son experto en finanzas y mucho menos en arquitectura, cuando a los ingenieros de software les piden desarrollar sistemas para un área diferente a la suya se entra en un factor de incompetencia y es necesario que alguien experto en esa área aborde el equipo y comience a dar su opinión y de igual manera se entra en la incompetencia ya que el experto no conoce nada sobre la programación y sus ideas no pueden ser aplicadas, para esto de igual manera se crearon métodos que ayudasen a solucionar problemas de este tipo.


El software también conlleva un papel muy importante con la ética y responsabilidad, y es por eso que los software tiene que ir de la mano con la ley local que se aplica y así no entrar en controversia con los estados y claro sus usuarios.


La ingeniería del software tiene como objetivo los siguiente:

    Mejorar el diseño del software para mejorar su adaptabilidad

    promover la mejor calidad del software

    Tener mejor exactitud con los costos y tiempos de desarrollo

    Mejorar la organización de equipos de trabajo 

    


martes, 23 de agosto de 2016

Terms Of Computer

Direct access

The shortcut is a concept used in Microsoft Windows operating systems to refer to a file or object whose content contains instructions that redirect to another file system file or to a network location. He is represented by an icon with an arrow at the bottom left side of the icon.

Such files contain location information (program or document), usually represented by a custom icon. They are not editable using a text editor; You can only be edited from Windows Explorer.


Database

It is called database information banks containing data on various topics and categorized differently, but share with each other some kind of link or relationship that seeks to sort and classify them together.


Bit

Bit stands for binary digit (ie of 'bit' in Spanish referred to as bit, and to a lesser extent as bit). A bit is a binary digit numbering system. The storage capacity of a digital memory also measured in bits, because this word has several meanings.


Data buffer

In computer science, a buffer (English, buffer) is a memory space in which data is stored temporarily, usually for single use (generally use a FIFO queue system); its main use is to prevent the program or resource that requires either hardware or software, run out during data transfer (input / output) of irregular data or processing speed.


Byte

Byte (B) 1 2 (pronounced [bait] or [ 'bi.te]) is the basic unit of information used in computing and telecommunications, and is equivalent to an ordered set of bits (usually 8 bits, set April 3 May 6 7 8 9 10 which in Spanish also called octet).


Cache

In computing, cache memory is fast access to a computer, which temporarily stores the newly processed data (information).

A cache is a special memory buffer that have computers, which functions similarly to the main memory, but is smaller and faster access. It is used by the microprocessor to reduce access time to data located in the main memory that are used most frequently.


CD-R

A CD-R is a recordable compact disc format. (Compact Disc Recordable = Compact Disc Recordable). They can be recorded in multiple sessions, however aggregated information can not be erased or overwritten, instead you must use the free space left by the immediately previous session.


CD-ROM

A CD-ROM, also cederrón1 (English acronym Compact Disc Read-Only Memory) is a compact disc using laser beams to store and read large amounts of information in digital format. The CD-ROM standard was established in 1985 by Sony and Philips2. It belongs to a set of colorful books known as Rainbow Books that contains the technical specifications for all CD formats.


CD-RW

The compact disc-rewritable, known by the acronym CD-RW (English Compact Disc - ReWritable, originally R and W were used as the attributes of the CD, which means "read" and "write", reading and writing) is a type support digital optical disc used to store any kind of information.
This type of CD can be recorded multiple times, as it allows stored data to be deleted.



Cookie

A cookie, computer cookie or cookie is a small information sent by a website and stored in the user's browser so that the website can consult the previous user activity.

Its main functions are:

You take control of users: When a user enters their username and password, a cookie is stored so you do not have to be introducing them to each page server. However, a cookie does not identify a person, but to a combination of computer-computer class-user browser.
Getting information on the user's browsing habits, and attempted spyware (spyware), by advertising agencies and others. This can cause privacy and is one of the reasons why cookies have their detractors.


Cracker

The term cracker (English cracker, and East to crack, 'break', 'fail') is used to refer to people who "break" a system security.1 Crackers may be motivated by a multitude of reasons, including profit, protest, or the desafío.2 Mostly, it is understood that the crackers are engaged in unauthorized editing of proprietary software. However, it should be understood that although the binary executables are one of the main objectives of these people, a web application or any other computer system represent other types of attacks that similarly can be considered acts of cracking.


DIMM


SDRAM memory modules in DIMM format (two DIMM SDR SDRAM PC133 modules).
DIMMs (stands for dual in-line memory module, translatable as "memory module with dual contacts") are, like its predecessors SIMM RAM modules that plug directly into slots on the motherboard personal computers and consist of small printed circuit boards containing memory integrated circuits. DIMMs are externally recognizable by having each contact (or pin) of one of its separate sides opposite each other, unlike the SIMM that each contact is connected to its opposite. The physical layout of the DIMM doubles the number of different contacts with the bus.


Harddrive unit


In computing, the hard drive or hard disk drive (in English: Hard Disk Drive, HDD) is a data storage device that uses a magnetic recording system for storing digital files. It consists of one or more plates or hard disks, united by a common shaft rotating at high speed inside a sealed metal box. On each plate, and on each of its faces, a head read / write floating on a thin sheet of air generated by the rotation of the disks is placed. It is nonvolatile memory.



Pointing device

A pointing device is a hardware component (more specifically a human interface device) that allows the user to enter data into a computer space.

Systems computer-aided design (CAD) and gifted teams graphical user interface (GUI) assisted allow the user to control and provide data to the computer using physical movements of the device (point, click, drag), mainly by moving a mouse hand on the actual surface of a table and activating the switches in this. Peripheral movements are reflected on the screen as the pointer or cursor movements and other visual changes.


DRAM


DRAM stands for the English word Dynamic Random Access Memory, which means dynamic memory random (or dynamic RAM) access, to name a type of RAM technology based on capacitors, which lose their charge gradually, requiring a dynamic refresh circuit that every certain period, check that charge and replenished in a refresh cycle. In opposition to this concept comes the SRAM (static RAM), with which it is called the type of RAM semiconductor-based technology, while still powered, no need to refresh.


DVD



The DVD is a type of optical disk for data storage.

The DVD1 abbreviation stands for Digital Versatile Disc2 (Digital Versatile Disc), so that both acronyms (in Spanish and English) match. In the beginning, the "V" intermediate referred to video (digital videodisc) due to its development as a replacement for VHS format for video distribution to households


Driver

A driver or device driver is the software that communicates with the operating system peripherals. For example, a sound card can output an audio signal or take audio from the outside, a video card is capable of sending video signal to a monitor to show the desktop of a system, a mouse is able to mobilize an arrow virtual on screen, etc.


Firewall

Firewalls can be implemented in hardware or software, or a combination of both. Firewalls are frequently used to prevent unauthorized Internet users from accessing private networks connected to the Internet, especially intranets. All messages entering or leaving the intranet pass through the firewall, which examines each message and blocks those that do not meet the specified security criteria. It is also common to connect the firewall to a third network, called demilitarized zone, or DMZ, where the servers in the organization that must remain accessible from the external network are located.


Firmware


A very common device firmware: the television remote control.

A typical view of computer architecture as a series of abstraction layers: hardware, firmware, assembler, kernel, operating system and applications

Read-only memory containing the BIOS of an old motherboard.
The firmware is a computer program that establishes the lowest level logic that controls the electronic circuits of a device of any kind. It is tightly integrated with the electronic device, so that is the software that has direct interaction with the hardware, thus being responsible for external control to execute instructions correctly.

In short, a firmware is software that manages the hardware physically.

The BIOS program a computer is a firmware whose purpose is to activate a machine from its power and prepare the environment to load an operating system into RAM.



GIF

Graphics Interchange Format

1. Animation Gif-rotating earth. Note posterization blue gradient due to the restriction in the color palette.
developer
CompuServe
General information
.gif File extension
MIME type of image / gif
Type code GIF
Uniform Type Identifier com.compuserve.gif
Magic number GIF87a / GIF89a
Type format raster graphics
Open format?
[Edit data in Wikidata]
Graphics Interchange Format, GIF (CompuServe GIF) is a graphics format widely used on the World Wide Web, both for images and for animations.

The format was created by CompuServe in 1987 to provide a color image format for their file downloading areas, replacing their earlier RLE format in black and white. GIF became popular because he could use the LZW compression algorithm (Lempel Ziv Welch) to perform image compression, which was more efficient than the algorithm Run-length encoding (RLE) used by PCX and MacPaint formats. Therefore, large images could be discharged within a reasonable period of time, even with very slow modems.



Gigabyte

Information units (byte)
International System (decimal) ISO / IEC 80000-13 (binary)
Multiple (symbol) multiple SI (symbol) ISO / IEC
kilobyte (kB) 103 kibibyte (KiB) 210
megabyte (MB) 106 mebibyte (MiB) 220
gigabyte (GB) 109 gibibyte (GIB) 230
terabyte (TB) 1012 tebibyte (TIB) 240
petabyte (PB) 1015 pebibyte (GdP) 250
exabyte (EB) 1018 exbibyte (EIB) 260
zettabyte (ZB) 1021 zebibyte (ZiB) 270
yottabyte (YB) 1024 yobibyte (YIB) 280
See also: Nibble • • octal byte
A gigabyte is a unit of information storage whose symbol is the GB, equivalent to 109 (one thousand million- 1,000,000,000) bytes. The term comes from the Greek giga / guígas / which means "giant". In colloquial language, "gigabyte" is often abbreviated as giga: "This computer has 2 gigabytes of RAM"


Hacker

The term hacker has different meanings. According to the dictionary of hackers, 1 is any individual who is dedicated to program enthusiastically, that is an enthusiastic expert of any kind, who believes that making information accessible to all is an extraordinary well.2 According to Eric Raymond the main reason that these people have to create software in their spare time, and then distribute them free of charge, is to be recognized for their iguales.3 the term hacker was born in the second half of the twentieth century and its origin is linked to the clubs and laboratories of MIT.


Hardware

good article

Tipical Hardware of a PC:
1. Monitor.
2. Main board.
3. Microprocessor (CPU) and socket.
4. A RAM module and three slots.
5. Two expansion cards and three slots.
6. Power supply.
7. Optical (CD, DVD, BD).
8. Hard disk drive or solid state drive.
9. keyboard.
10. Mouse.
The term hardware refers to all physical parts of a computer system; its components are: electrical, electronic, electromechanical and mecánicos.1 are cables, cabinets or boxes, peripherals of all kinds and any other physical element involved; contrary, the software is intangible and is called software.


HTML


HTML stands for HyperText Markup Language (hypertext markup language), refers to markup language for developing web pages. It is a standard that serves as a reference for the software that connects to the development of web pages in different versions, defines a basic structure and code (called HTML) for defining content of a web page, including text, images, videos , games, among others. It is a standard by the World Wide Web Consortium (W3C) or WWW Consortium, an organization dedicated to the standardization of almost all technologies related to the web, especially in relation to their writing and interpretation. the most important being its crucial web language invention in the emergence, development and expansion of the World Wide Web (WWW) is considered. Is the standard that has been imposed on display of web pages and is the one that all current browsers have adopted.


HTTP

Hypertext Transfer Protocol, or HTTP (in Spanish Hypertext Transfer Protocol) is a communication protocol that allows the transfer of information on the World Wide Web. HTTP was developed by the World Wide Web Consortium and the Internet Engineering Task Force, a collaboration that culminated in 1999 with the publication of a series of RFC, the most important of them is the RFC 2616 that specifies the version 1.1. 

.


Internet

The Internet (or, again, the internet) 3 is a decentralized set of communications networks interconnected using the family of TCP / IP protocols, which ensures that the heterogeneous physical networks that comprise a unique global logical network. Its origins date back to 1969, when the first connection of computers, known as ARPANET, between three universities in California (United States) was established.


Intranet

An intranet is a computer network that uses Internet Protocol technology to share information, operating systems, or computing services within an organization. This term is used in contrast to Extranet, a network between organizations, and instead refers to a network within an organization. Sometimes the term refers only to the internal organization of the website, but may be a more extensive part of the infrastructure of information technology organization, and may be composed of several local area networks. The goal is to organize the desktop of each individual with minimal cost, time and effort to be more productive, profitable, timely, secure and competitive.


Java

Java is a programming language for general purpose concurrent object oriented which was specifically designed to have as few implementation dependencies as possible. His intention is to allow application developers to write the program once and run on any device (known in English as WORA, or "write once, run anywhere"), which means that the code is executed on a platform You not have to be recompiled to run on another. Java is from 2012, one of the most popular programming languages in use, particularly for client-server applications web, with some 10 million users reported.


JPEG

Joint Photographic Experts Group (JPEG), Group Joint Photographic Experts, is the name of an expert committee that created a standard compression and encoding files and still images. This committee was integrated from the beginning by the merger of several groups in an attempt to share and develop their expertise in digital imaging. ISO, three years earlier (April 1983), had started its investigations in the area.


Kernel

In computing, a core or kernel (from the Germanic root Kern, heart, bone) is software that is an essential part of the operating system, and is defined as the part that runs in privileged mode (also known as kernel mode). It is the main responsible for providing various programs secure access to computer hardware or basic form, is responsible for managing resources, through system call services.


Pencil 

In optics, a pencil or pencil of rays is a geometric construct used to describe a beam or portion of a beam of electromagnetic radiation or charged particles, in the form of Typically a narrow cone or cylinder.

Which Antennas strongly bundle in azimuth and elevation are Often Described as "pencil-beam" antennas. For example a phased array antenna can send out a beam That is extremely thin. Such antennas are used for tracking radar. See Beamforming for further details.


LCD

A liquid crystal display or LCD (English acronym liquid crystal display) is a thin, flat screen formed by a number of color or monochrome pixels arranged in front of a light source or reflector. It is often used in electronic devices batteries because it uses very small amounts of electricity.