Autor: Valeria Corona
Estudiante de la carrera de Ingenieria de Software.CETYS
El domino del problema:
Para resolver un problema de la vida real con un sistema computacional, es necesario definir todos los requisitos que se necesitarán para interpretarlo matemáticamente y que cumpla precisamente con lo que el usuario necesita.
Por ejemplo:
- Un vendedor que necesita una agenda de todos sus clientes junto con su información de pedidos.
Para aplicar un sistema que resuelva este problema, el programador debe tener en cuenta las herramientas de software que necesitará para guardar los datos de los clientes, acomodarlos, relacionarlos con los pedidos, visualizarlos y permitir la edición de la información por parte del usuario final tomando en cuenta las necesarias restricciones para que usuarios no deseados no corrompan la información.
La dificultad de administrar el proceso de desarrollo:
Un sistema es la unión varias actividades que trabajan en conjunto para realizar cierta tarea, por lo que se dice que un sistema es complejo. Para la administración del desarrollo de sistemas muy grandes, normalmente se cuenta con un gran equipo de trabajo que se divide las pequeñas actividades que conformarán el sistema. La dificultad se encuentra en la coordinación de los equipos de trabajo para que al final todas las actividades trabajen en conjunto para la buena funcionalidad del sistema y tenga una facilidad de mantenimiento. Por ejemplo:
- Un productor necesita a un equipo para desarrollar un videojuego.
En este caso, el productor será quien decida las consolas y plataformas en las que se podrá correr el juego, pero el equipo que lo desarrolle deberá dividirse las tareas de la programación, el diseño, la interacción con la consola, los sonidos, los gráficos, el análisis de los eventos que ocurrirán en el juego, etc. Al final todas las tareas se juntarán para conformar el juego, pero para que éste funcione correctamente, cada parte del equipo debió considerar las tareas de otros; como por ejemplo, el que se encarga de los gráficos debe estar al tanto del que hace el de diseño para que al momento de correr el juego la imagen se vea lo mejor posible.
Los problemas de caracterizar el comportamiento de los sistemas discretos:
En el mundo real las variantes de los sucesos se consideran continuos, pero las variantes de un sistema computacional siempre son discretas, por lo tanto, pasar esas variantes del mundo real a un sistema computacional resulta un trabajo difícil, pues es necesario considerar un número finito de variantes a partir de opciones infinitas. Por ejemplo:
- Un investigador necesita una simulación del crecimiento de bacterias.
El investigador y la persona o las personas que desarrollen el sistema para simulación, necesitarán considerar ciertas variantes de mundo real que se puedan simular en el sistema computacional como: cuál es el tipo de bacteria, la temperatura a la que se encuentren las bacterias, el tamaño de la muestra inicial, el tiempo de crecimiento, la alimentación, el ambiente, etc. Y después, considerar el impacto de cada variante sobre las bacterias. Al final la simulación será únicamente una aproximación debido a que siempre habrá variantes que no se incluyeron en el sistema.
Cada vez la humanidad intenta acercarse más a la forma en que trabaja el mundo natural; conforme se descubre un misterio natural, el hombre lo imita o lo representa, y muchas de esas imitaciones o representaciones se han hecho en los últimos años por medio del software. Por esto, en mi opinión, las complejidades que conllevan los sistemas computacionales siempre han sido parte de la naturaleza misma y de la naturaleza humana, ya que cada pequeña cosa conforma una más grande, así como los sistemas computacionales, sistemas solares e incluso jerarquías sociales; y cada problema humano se puede convertir en un problema computacional que conlleve todas sus dificultades. En otras palabras, la complejidad computacional es simplemente natural.
Allende, O. (2002). La tecnología orientada a objetos y la ingeniería de software ante la complejidad inherente al software. Recuperado el 2 de febrero de 2014 de http://www.utm.mx/edi_anteriores/pdf/nfnotas217.pdf




