1.2 Proporciona una serie de ejemplos (tanto positivos como negativos) que indican el impacto del software en nuestra sociedad.
El uso de software en nuestra sociedad tiene una serie de impactos positivos y negativos. Mientras que los aspectos positivos pueden ser extremadamente útiles, los negativos nos proporcionan algo así como una muleta. En general, el software no está diseñado para «lastimarnos» de ninguna manera, sino para hacer las cosas más fáciles y eficientes para nosotros.
1.3 Por ejemplo, la banca electrónica es un ejemplo perfecto de software que hace que nuestras vidas sean mucho más fáciles. Todo lo que no sea retirar dinero físicamente de su banco se puede hacer en línea. Incluso puede depositar sus cheques de pago ahora simplemente tomándole una foto con su teléfono inteligente. En el lado negativo, esa misma tecnología se puede usar para robar los números de su tarjeta de crédito y su identidad si cae en las manos equivocadas. Lo mismo con el software anti-seguridad.
Hay personas a las que se les paga un buen dinero para hackear su banco local y robarles solo para demostrar al banco que necesitan actualizar la seguridad de su red. En la mayoría de los casos, los bancos están agradecidos por este tipo de intrusión. Este mismo software, sin embargo, podría utilizarse con fines delictivos en los que el banco no estaría tan satisfecho. El software puede ser extremadamente útil y extremadamente peligroso dependiendo de quién lo esté usando y cómo.
1.4 Muchas aplicaciones modernas cambian con frecuencia, antes de que se presenten al usuario final y después de que se haya puesto en uso la primera versión. Sugiera algunas formas de crear software para detener el deterioro debido al cambio.
En primer lugar, las aplicaciones de software deben ser mantenibles. Lo que significa que debe diseñarse de tal manera que los cambios se puedan realizar con bastante facilidad a medida que crece la aplicación. Una forma de minimizar el deterioro debido al cambio es permitir que se incorporen actualizaciones automáticas. Tomemos el sistema operativo Windows, por ejemplo: tiene la opción de permitir la actualización automática de las plataformas de seguridad y firewall necesarias para garantizar que el sistema esté siempre «actualizado».»Dado que las aplicaciones anteriores siempre se actualizan, es importante crear software nuevo con las mismas capacidades.
1.5 Considere las siete categorías de software presentadas en la Sección 1.1.2. ¿Cree que se puede aplicar el mismo enfoque a la ingeniería de software para cada uno de ellos? Explica tu respuesta.
Millones de ingenieros de software de todo el mundo trabajan arduamente en proyectos de software en una o más de estas categorías. En algunos casos, se están construyendo nuevos sistemas, pero en muchos otros, se están corrigiendo, adaptando y mejorando las aplicaciones existentes. Debido a esto, es posible que se requiera un enfoque diferente de la ingeniería de software para categorías individuales. Muchos de los programas en los que trabajan los ingenieros de software son extremadamente antiguos y continúan actualizándose. Por lo tanto, tiene sentido que no use el mismo enfoque para un programa existente que usaría para un programa nuevo.
1.6 La figura 1.3 coloca las tres capas de ingeniería de software encima de una capa titulada «enfoque de calidad».»Esto implica un programa de calidad organizacional como la gestión de calidad total. Investigue un poco y desarrolle un esquema de los principios clave de un programa de gestión de calidad total.
La GCT se puede definir como la gestión de iniciativas y procedimientos que tienen como objetivo lograr la entrega de productos y servicios de calidad. Para definir la GCT se pueden identificar una serie de principios clave, entre los que se incluyen::
- Dirección Ejecutiva – La alta dirección debe actuar como el principal impulsor de la GCT y crear un entorno que garantice su éxito.
- Formación-Los empleados deben recibir formación periódica sobre los métodos y conceptos de calidad.
- Enfoque en el cliente: Las mejoras en la calidad deberían mejorar la satisfacción del cliente.
- Toma de decisiones: Las decisiones de calidad deben tomarse en función de las mediciones.
- Metodología y herramientas: El uso de la metodología y las herramientas adecuadas garantiza que las no conformidades se identifiquen, midan y respondan de manera coherente.
- Mejora continua: Las empresas deben trabajar continuamente para mejorar los procedimientos de fabricación y calidad.
- Cultura de la empresa: La cultura de la empresa debe tener como objetivo desarrollar la capacidad de los empleados para trabajar juntos para mejorar la calidad.
- Participación de los empleados: Se debe alentar a los empleados a ser proactivos a la hora de identificar y abordar los problemas relacionados con la calidad.
1.7 ¿Es aplicable la ingeniería de software cuando se crean aplicaciones web? Si es así, ¿cómo podría modificarse para adaptarse a las características únicas de las aplicaciones web?
El software se ha integrado profundamente en prácticamente todos los aspectos de nuestras vidas. La ingeniería de software es aplicable cuando se crean nuevos programas y cuando se actualizan los programas existentes, incluidas las aplicaciones web. Las aplicaciones web son una de una serie de categorías de software distintas. Y, sin embargo, se puede argumentar que las aplicaciones web son diferentes. Una de las principales modificaciones que exigen las aplicaciones web es la disponibilidad. Los usuarios del popular WebApps a menudo la demanda de acceso en un 24/7/365 base. Otra característica única de las aplicaciones web es su continua evolución.
A diferencia del software de aplicación convencional que evoluciona a través de una serie de versiones planificadas y espaciadas cronológicamente, las aplicaciones web evolucionan continuamente. Cuando se trata de la ingeniería de software aplicada a las aplicaciones web, se deben escuchar muchas voces. La apariencia de una aplicación web es una parte innegable del atractivo que, en última instancia, determinará el éxito de las Aplicaciones.
1.8 A medida que el software se vuelve más generalizado, los riesgos para el público (debido a programas defectuosos) se convierten en una preocupación cada vez más importante. Desarrollar un escenario apocalíptico pero realista en el que la falla de un programa de computadora podría causar un gran daño (económico o humano).
Uno de los primeros escenarios trágicos pero realistas que viene a la mente es el fracaso de programas específicos en un avión de pasajeros. Los principales programas computarizados en aviones tienen el mismo riesgo de fallar que cualquier otro programa, y pueden tener resultados catastróficos. Por ejemplo, el sensor que detecta la altitud de una aeronave permite al piloto saber cuántos pies está la aeronave sobre el suelo. Este programa es particularmente necesario cuando las condiciones climáticas podrían perjudicar la visibilidad de la pista de los pilotos.
Una vez que un avión de pasajeros comienza su vuelo decente y se prepara para aterrizar, el piloto utiliza estos programas para guiar al avión a un aterrizaje seguro. Si este programa fallara, y el clima dificultara la visibilidad de los pilotos, el piloto podría no saber cuán lejos del suelo está en realidad. Los accidentes de avión ocurren todo el tiempo, y cientos de pasajeros mueren cada año, principalmente debido a programas e instrumentos fallidos en el avión.
1.9 Describa un marco de proceso con sus propias palabras. Cuando decimos que las actividades marco son aplicables a todos los proyectos, ¿significa esto que se aplican las mismas tareas de trabajo a todos los proyectos, independientemente de su tamaño y complejidad? Explicar.
El proceso de ingeniería de software no ocurre simplemente mágicamente sin algún tipo de planificación organizativa y de orden. Un marco de proceso crea la base para el proceso de ingeniería mediante el uso de un pequeño número de actividades que son aplicables a todos los proyectos. El algoritmo paso a paso para un marco de procesos se compone de cinco actividades: comunicación, planificación, modelado, construcción e implementación. Todos los programas, independientemente de su tamaño y complejidad, se ajustan a estas actividades en ese orden. Aunque los detalles del proceso de software serán bastante diferentes para cada programa, las tareas involucradas en el marco siguen siendo las mismas.
1.10 Las actividades de paraguas se producen durante todo el proceso del software. Cree que se aplican de manera uniforme a lo largo del proceso, o que algunas se concentran en una o más actividades del marco.
En general, las actividades generales se aplican en todo un proyecto de software y ayudan a un equipo de software a administrar y controlar el progreso, la calidad, el cambio y el riesgo. Dado que el proceso de ingeniería de software no es un régimen rígido que deba ser seguido con precisión por un equipo de software, el proceso tiene mucho espacio para la adaptación.
Aunque las actividades paraguas que ocurren a lo largo del proceso generalmente se aplican a todos los aspectos del proceso, la ingeniería debe ser ágil y adaptable; específica al problema, al proyecto, al equipo y a la cultura organizacional. Debido a esto, un proceso adoptado para un proyecto puede ser significativamente diferente de un proceso adoptado para otro proyecto, y algunas actividades pueden concentrarse en una o más áreas.