Desarrollo y Construcción del Software

Para empezar con el desarrollo de este blog me gustaria hacer enfasis en un aspecto introductor tal como iniciar hablando un poco acerca del trabajo colaborativo.

¿Qué es el trabajo colaborativo?

El trabajo colaborativo es aquel que abarca todas las dinámicas de producción o colaboración entre un grupo de personas con la finalidad de alcanzar un objetivo en común. Este concepto en la mayoria de los casos suele confundirse con el llamado "trabajo en equipo", aunque ambos conceptos tienen en común la cooperación de el grupo de personas que realizara algun trabajo en especifico, existen diferencias notables entre ambos conceptos.Por una parte,el trabajo en equipo busca reconocer a una persona como un lider el cual tiene la función de organizar o delegar a otra dentro del mismo grupo con el fin de que se cumpla una tarea especifica, mientras que el trabajo colaborativo no necesita reflejar ningún rol lider. Este conceptos posee las siguientes caracteristicas.

  • Suele caracterizarse por tener una metodología de colaboración voluntaria entre el grupo de personas las cuales muestren una actitud de cooperación en donde se compartan los saberes previos que dichos integrantes tengan sobre el tema a tratar o se den ideas de como tratar el tema abordo, ademas de generar un sentimiento de pertenencia en el que se refleje el interes por el trabajo colaborativo.



Actualmente, el trabajo colaborativo se ha visto afectado positivamente dado que se encuentra asociado con el internet, el cual permite el acceso a diferentes herramientas que cumplen con el objetivo de dar un soporte o facilitar dicho trabajo a realizar, se ha evidenciado que al incluir tales herramientas se ha disminuido notoriamente la perdida de tiempo y de información y le ha dado paso al aumento notable de resultados positivos. Los elementos que componen al trabajo colaborativo son los siguientes:
  • Objetivos: Deben ser comunes y deben estar bien definidos.
  • Ambiente: Deber ser controlado y cerrado.
  • Motivación: Deben tener sentido de cooperación con la organización que requiere el trabajo colaborativo.
  • Aporte Individual: Conoimiento o experiencia con respecto al 
  • tema de interes.
  • Pasos del proceso grupal: Definidos de forma clara y previa.
  • Reglas: Definidas previamente.
  • Desarrollo Personal.
  • Productividad 
  • Software
Uno de los mejores ejemplos más actuales que definen el trabajo colaborativo en estos tiempos es Wikipedia esta es una versión electrónica de las enciclopedias en papel, en este sitio los usuarios pueden entrar a editar, corregir e incluso generar contenido de temas de interes. Estas publicaciones se crean bajo la licencia "Creative Commons" la cual permite que sea de uso para cualquier tipo de usuario.


Hay que aclarar que actualmente existen diferentes tipos de software aparte de Wikipedia que se encargan de facilitar un poco más el trabajo colaborativo, tales como: 

  • Software de Comunicación Online: En estos se encuentran aplicaciones como Gmail,Slack, Yammer, Skype, entre otras. Estas tiene el objetivo de facilitar la comunicación entre personas o incluso empresas.
  • Software de Gestión de Proyectos Online: En este grupo se encuentra aplicaciones como Asana, Trello y Basecamp,las cuales facilitan la realizacion de tareas y proyectos.
  • Software de Colaboración de Documentos Online: En esta categoria se encuentran aplicacione tales como Microsoft 365, Google Docs, Quip, GitHub, su objetivo principal es crear y editar documentos ya sean de giro empresarial o academico.
  • Software para Compartir Archivos Online:Exiten plataformas como Dropbox,Google Drive, One Drive, etc. Estos aplicativos tienen el objetivo de facilitar los trabajo colaborativos de manera grupal ya que varias pesonas pueden acceder a dichos trabajos que se mantengan guardados.




Ya mencionamos un tema que bastante importante para este blog, ahora podemos entrar en materia con el siguiente tema.

¿Qué es el desarrollo de Software?

Para iniciar con este tema, empecemos defininiendo dicho termino, el desarrollo de software hace referencia a un conjunto de actividades las cuales estan dedicadas principalmente al proceso de creación y gestión. Definiendo puntualmente el software, este se define como un conjunto de instrucciones o programas que se encargan de dar indicaciones al software, este es independiente del hardware ya que el software es la parte lógica, existen tres tipos de software básicos:

  • Software de Sistema: Su función es proporcionar funciones básicas taes como el sistema operativo, administracion de discos y control del hardware, etc.
  • Software de Programación: Brinda a los programadores herramientas donde se puedan editar textos, compiladores, enlazadores, depuradores.
  • Software de Aplicación: Cumplen con realizar una tarea especifica, facilitan la investigación, la comunicación y la escritura y organización de textos.


En la actualidad, el desarrollo de software en la actualidad ha traido consecuencias positivas en ambitos empresariales y académicos ya que facilita las gestión de diversas tareas, cambiando las tareas manuales a automaticas inimizando el tiempo de gestión.

Ahora, hablemos de las etapas que tiene el desarrollo de software.

Etapas del desarrollo del software

1. Especificación de Requerimientos: En esta fase se realiza un breve acuerdo en el se acuerda el requerimiento o la funcionalidad que debe cumplir el software a crear, esta etapa cuenta con las siguientes actividades:


  • Obtención de requerimientos: Se realiza un inventario de los requerimientos que debe cumplir el software, esto se hace mediante cuestionarios, entrevistas, esta recoleccion de datos se trasladan al siguiente paso.
  •  Análisis de Requerimientos: Se determina si el requerimiento es viable teniendo en cuenta el costo y el tiempo que se invierte en la gestión de los diversos proyectos, se debera comprender de manera exacta el requerimiento.
  • Especificación de Requerimiento: Se formaliza la especificación del requerimiento y se lleva a cabo una socialización con todos los interesados en el proyecto.
  •  Validación de requerimiento: Se valida que el requerimiento se calro, no redundante, sea valido y este completo.

2. Etapa de Planeación: En esta etapa se especifica una estrategia para el proyecto a realizar en donde se define el paso a paso que se debe seguir para poder crear el producto deseado.

3. Etapa de Diseño: En esta etapa los ingenieros de software empiezan a crear diseños de forma abstracta donde se tiene en cuenta la funcionalidad que va tener este proyecto, en esta etapa se proporcionan modelos de arquitectura de software, estructura de datos, interfaces,etc. Esta etapa tiene sus propias actividades las cuales son:

  • Diseño de Arquitectura: Esta actividad utiliza los conocimiento que ya se tienen de programación el cual sirve para crear el diseño general del proyecto.
  • Especificación Abstracta del Sistema:  En esta etapa se especifica el servicio que va a cumplir dicho proyecto y las restricciones que puede llegar a tener.
  • Diseño de Interfaz: En esta fase se diseña y se documentan todos los elementos graficos que se puedan utilizar para poder mantener una comunicación entre la persona y la maquina.
  • Diseño  de Componente: En esta etapa se designan las funciones que va a cumplir el proyecto a crear.
  • Diseño de Estructura de Datos: Se especifica la estructura de datos que requiere el proyecto, en pocas palabras, la estructura de datos es la que nos permite organizar la información y tambien nos proporciona posibles soluciones a algun problema que se presente.
  • Diseños de Algoritmo: Se especifican los algoritmos requeridos en el proyecto, es decir, aquel conjunto de pasos que facilitara la gestión de alguna tarea o problema.
4. Etapa de Desarrollo: En esta etapa se tiene en cuenta todo lo recopilado en las etapas anteriores y se procede con la parte de programación, es decir, se empieza escogiendo un lenguaje de programación el cual se debe acomodar a los requerimientos del proyecto, es importante seguir los siguientes lineamientos.

  • Reducir la complejidad
  • Anticipar la diversidad o cambios
  • Facilitar las pruebas de software
  • Ajustarse a la normatividad vigente para el sistema a desarrollar.
5. Etapa de Implantación: En esta ultima fase se pone en marcha el producto de software desarrollado en donde el cliente validar y aceptara los requerimientoos del software, este consta de las siguientes actividades:

  • Corrección de errores de programación
  • Implementación de nuevos requerimientos
  • Ajustes


Para poder entender un poco más sobre el desarrollo del software hay que conocer un poco más sobre los componentes de este proceso.

Componentes del software

Desde la etapa de planificación en el desarrollo se empieza a tener en cuenta los componentes del software, los cuales tienen la función de cumplir diversas tareas, los componentes son:

  1. Software Operativo: Consiste en un conjuto de programas que tienen la función de controlar todo aquello relacionado con el hardware, tal como el almacenimiento y el disco duro.
  2. Lenguaje de Programación: El lenguaje es el encargado de generar codigos que estabecen instrucciones las cuales seran tomadas por la maquina, siguiendo reglas sintactica, semánticas y símbolos estipulados.
  3. Aplicación Informática: Este componente permite al usuario hacer entre una o más tareas diferentes desde un nivel de menor complejidad a mayor complejidad, un ejemplo de estas son la hoja de cálculo, la base de datos y procesadores de textos.
  4. Paquetes de Software: Son diversos aplicativos que son de caracer complementario, es decir, no requieren la intervención de algun otro programa para poder realizar alguna tarea.
  5. Driver: Es un controlador de dispositivos con la finalidad de conectar al sistemaoperativo con elementos como el teclado, la impresoras, los parlantes, el mouse, etc.

Teniendo en cuenta las etapas del desarrollo del software surgen unas metodologias para el desarrollo del software, hablemos de ello.

Generalidades de las metodologías del desarrollo de Software

Las metodologías del desarrollo del software consisten en la organizacion del proceso a desarrollar, es decir, se debe designar un paso a paso claro y preciso para que el proyecto se exitoso, esto se logra gracias a las fases del desarrollo de software. Gracias a dichas etapas se generan uno modelos de desarrollo los cuales tienen como prioridad los aspectos técnicos y administrativos con el fin de que se obtener resultados positivos.

Modelos de Desarrollo de Software:

  • Modelo de cascada: Este modelo genere un orden riguroso de todas las fases de desarrollo, teniendo que cuenta que una etapa NO puede empezar si no ha finalizado la anterior, el obejtivo de este módelo es generar facilidad para detectar en que área o tarea se suelen generar error.

  • Modelo en Espiral: En este caso tal como indica su nombre, las actividades se desarrolon en espiral, en otras palabras, el orden de las acciones que se van a realiza se eliger luego de haber analizado los riesgos que conlleva teniendo en cuenta objetivos, caracteristicas y si los gastos o riesgos son de caracter fundamental.
  • Mdodelo en V: En esta etapa las tareas que se van a realizar pueden interactuar entre sí, es decir,  este modelo es más usado para la etapa de verificación y validación.

Por ultimo, me gustaría finalizar este tema dando una pequeña conclusión de lo que se aprendió a lo largo de este blog.

Conclusión:

En el transcurso de este blog se pudo aprender que en el trabajo colaborativo nosotros como seres humanos debemos ser capaces de mostrar actitudes de responsabilidad frente a la gestión de diversos proyectos, con la evolución de los avances tecnologicos nos han facilitado la gestión de diversas tareas en muchas ocaciones disminuyendo el tiempo de gestión o incluso facilitandonos el trabajo grupal. Por otro lado, el desarrollo de software esta lleno de etapas cuyo objetivo es velar porque se cumplan los requerimientos.

Bibliografia:



Comentarios