1. ¿Es este articulo una evidencia de que se esta ante una crisis de software?
Si, ya que la imprecisión con la que fue construido el software fue la principal causa del desastre, recordemos que para construir un software, especialmente aquellos de los cuales depende no solo un sistema empresarial sino incluso vidas humanas como es el caso, necesitan análisis y un desarrollo exacto para que este no sufra este tipo de crisis. La baja calidad del software en función de los resultados denota que no se hizo un análisis correcto y una pequeña investigación en código, recordemos, un código puede ser parecido a otro pero nunca igual pues el resultado además de plagio, seria catastrófico como este caso. Así mismo el mantenimiento que tuvo que habérsele dado al software tuvo que haber adaptado el software conforme a las necesidades de la empresa y con ello detectar el problema (la manera en que pudieron hacerlo, bien podría hacerse usando benchmark, reconociendo a sus adversarios e identificar el problema para hacer las correcciones necesarias.)
2. ¿De que modo la aviación esta en mejores condiciones debido a la ingeniería de software?
Controlar un objeto de gran tamaño como lo seria un avión sin poder implementar sistemas de vuelo controlados y que dirijan una dirección segura seria imposible sin el software o bien acabaría en catástrofe. Un vuelo siempre necesita coordenadas y un área segura por donde transitar, sin el software y el sistema para el cual se trazan caminos seria como ir a ciegas, mas aun recordemos que existe una gran cantidad de aerolíneas las cuales igualmente transitan sobre nosotros, gracias al software se pueden buscar caminos seguros que no choquen con el camino trazado de otra aerolíneas y así evitar catástrofes. Los códigos implementados también forman parte de la mejora que el software ha hecho a la aviación, diferente del caso que se leyó, utilizar una base de datos consistente y con códigos únicos asegura la comunicación correcta y coordenadas seguras.
3. ¿Qué aspectos deben tenerse en cuanta durante el desarrollo de software para que en el futuro, se prevengan aspectos como este?
Primeramente construir el software a base de un código diferente y único de cualquier otro sistema que con el que pueda presentar choques e insistencias de código, talvez este seria el punto mas importante.
4. Dar un ejemplo de análisis de problema donde los componentes sean relativamente simples, pero la dificultad para la resolución del problema resida en la interacción entre los subproblemas que lo componen.
Un ejemplo seria cuando se quiere hacer un software que contenga el inventario de una tienda pequeña, y que necesita actualizarse cada cierto tiempo, pero que los productos y proveedores no puedan tener un id de mas de 3 cifras, dificultando la actualización de estos y el código de identificación para los nuevos proveedores, la combinación de estos al ingresar n proveedores que termine por acabar los id y obtengamos como resultado el choque de muchos proveedores.
5. Explicar la diferencia entre error, defecto y falla.
Un error es la inexactitud o equivocación al hacer alguna cosa, pensar, hacer una actividad, etc.
Un defecto el no cumplimiento de un requisito o de una expectativa razonable, ligada a un uso previsto, incluyendo los relativos a la seguridad
Y una falla es cuando algo es incapaz de funcionar correctamente. Que no sigue su curso normal
Dar un ejemplo que desemboque en un defecto en los requerimientos, en el diseño, en el código
Un análisis pobre al momento de la construcción de software, no tomar en cuenta todos los factores necesarios al momento de la fase de requerimientos, o bien tomar aquellos que no deberían ser tomados en cuenta, aislando los lo que el sistema necesita es decir un requerimiento mal definido.
Un ejemplo es un software que necesite de seguridad para poder accesar a el, y que no se hayan tomado en cuenta la diversidad de caracteres a utilizar dejando solo números y olvidando que este tiene que ser original y único, haciendo que así importantes. O al momento de comenzar con el análisis tener una concepción errada de muchos puedan acceder con diferente contraseña pero igual usuario.
Dar un ejemplo de:
1- Un defecto en los requerimientos que origine una falla
-En un banco se necesita que se trabaje con gran cantidad de cuentas bancarias, la mala asignación de estas en la base de datos al momento de buscar una conllevaría a que muchas cuentas choquen y así no se podría dar al cliente su dinero o hacer su transacción.
2-Un defecto en el diseño que origine una falla
-Un análisis hecho correctamente y que su implementación en el diseño nos de una falla seria cuando no se toma los elementos necesarios al momento que se diseñe que se no acepten caracteres como * – / ñ, y que sean necesarios en el ingreso de los datos.
3-Un defecto en los datos de prueba que origine una falla
-por ejemplo cuando se toma una cantidad de código para validar las identificaciones que se ingresan en un software para proveedores, y que este no consiga trabajar debidamente al no haberse tomado en cuenta que cada código debe ser único.
6. Muchas organizaciones compran software comercial, pensando que es mas barato que desarrollar y mantener que el software propio. Describe los pros y contras de la utilización de paquetes comerciales.
Pros:
-El factor económico seria el primero, recordemos que el recurrir a un gasto para poder desarrollar un propio software es algo que no todas las empresas pueden darse el lujo de tener.
-Si un producto es producido en masas, y son efectivamente comercializados en grandes cantidades, podemos decir que el software es de calidad, ya que muchos tenemos ese concepto de que si es hecho por una gran empresa que genera sus ganancias a partir de este, es por que en realidad son conocedores de su rama.
-El soporte técnico seria de primera mano, muchos software que son producidos en masa, siempre tienen una cantidad de personal disponible ante las dificultades que pueda presentársele a sus clientes, ejemplo de esto son los números de teléfono que con solo marcarlo podemos obtener acceso al técnico.
-Normalmente, un software de distribución comercial contiene licencia y privacidad obteniendo como resultado la seguridad de que este no pueda ser utilizado por otra persona a menos que se le autorice, por ejemplo las licencias que solo el mismo propietario puede utilizar al momento de instalar su software, cada uno es único y así se combate la piratería.
-El software comercial históricamente ha sido más seguro que el software libre
Contras:
- El soporte a este software seria únicamente dado por quienes lo construyeron y las personas capacitadas por estos, limitando la cantidad de recursos que puedan ayudarnos a solucionar el problema con mayor rapidez.
-El código de este no seria accesible para modificarlo y adaptarlo a las necesidades de la empresa.
-No cualquiera podría tener el software ya que de hecho hay que pagar un poco más por la licencia de este.
-El desarrollo, programación y actualización de este software solo lo hace la empresa que tiene los derechos. Como sucede con los productos Microsoft (Windows, Office, etc). Estos ocasionan retrasos tecnológicos y poca creatividad en los productos
- Muchas veces con estrategias comerciales se suele hacer que los usuarios actualicen su software comercial, sin que exista una necesidad verdadera de ello, consiguiendo de esta forma hacer que el usuario invierta en nuevas licencias, la mayoría de las veces innecesarias.