Grupo #1
2017-5126 | 2017-5642 | 2018-7321 | 2018-6198 | 2018-7090
Anthony Caceres Erick Brito Angel Abreu Eslokaren Alcantara John Buret
Período académico: 2020 C-3
Fecha de entrega: 5/Septiembre/2020
Nombre del Profesor: Leandro Fondeur
Nombre del tema de estudio: Software e Ingeniería de Software
1. De al menos cinco ejemplos de la forma en que se aplica la ley de las
consecuencias imprevistas al software de cómputo.
1. La dependencia del Software en la humanidad, haciendo que nuestro trabajo
sea mucho más fácil.
2. La combinación de HTTP y HTML dieron inicio a los navegadores web, hoy
en día indispensable en cualquier dispositivo móvil o computadora.
3. Casi todos los softwares estarían en internet.
4. Que todos los sistemas electrónicos usaron software.
5. Que lo que hacía una empresa completa lo puede hacer una sola persona o un
grupo mucho más pequeño.
2. Diga algunos ejemplos (tanto positivos como negativos) que indiquen
el efecto del software en nuestra sociedad.
Positivos:
1. La comunicación se hace mucho más fácil, ya que existen aplicaciones como
Facebook, Whatsapp.
2. Se puede usar para el entretenimiento, por ejemplo Youtube.
Negativos:
1. Lo único negativo que encuentro es la adicción que pueden llegar a crear ciertas
aplicaciones.
3. Desarrolle sus propias respuestas a las cinco preguntas planteadas al
principio de la sección 1.1. Analícelas con sus compañeros estudiantes.
● ¿Por qué se requiere tanto tiempo para terminar el software?
Tal vez para ofrecer un trabajo de calidad.
● ¿Por qué son tan altos los costos de desarrollo?
Diría porque si se quiere un producto de calidad se tiene que pagar lo necesario por
este.
● ¿Por qué no podemos detectar todos los errores antes de entregar el software a
nuestros clientes?
Según yo porque nosotros solo trabajamos en la parte del desarrollo, el cliente será
quien le de varios usos y con esos usos encuentre los fallos.
● ¿Por qué dedicamos tanto tiempo y esfuerzo a mantener los programas
existentes?
Tal vez porque los programas existentes se le hará más fácil de manejar a un usuario.
● ¿Por qué seguimos con dificultades para medir el avance mientras se desarrolla
y
¿Mantiene el software?
Porque se hace lo que el cliente pida, y los clientes no son conscientes del proceso.
4. Muchas aplicaciones modernas cambian con frecuencia, antes de que
se presenten al usuario final y después de que la primera versión ha
entrado en uso. Sugiera algunos modos de elaborar software para
detener el deterioro que produce el cambio.
El modo más efectivo para desarrollar una apps de este tipo es estudiando lo que
causa el cambio. La aplicación sería una aplicación de monitoreo constante y
auto adaptable a dichos cambios, esto puede evitar de una manera significativa
el deterioro en mi opinión personal no se puede detener totalmente el deterioro
si no que se puede frenar a un paso muy lento con la apps de monitoreo que nos
notifiquen de un problema futuro. Solo hay que crear una app que evalué el
estado de otra app periódicamente y así se detectarán problemas antes de que
sugan y el programa deje de funcionar.
5. Considere las siete categorías de software presentadas en la sección
1.1.2. ¿Piensa que puede aplicarse a cada una el mismo enfoque de
ingeniería de software? Explique su respuesta.
Yo pienso que si por que al final el enfoque de un ingeniero en software es diseñar
software de alto rendimiento que pueden perdurar en el tiempo con la menor cantidad
de errores, por que tanto en el software de sistema, el de aplicación, el de ingeniería y
ciencias, el de incrustado, el software de línea de productos, las aplicaciones Web y la
inteligencia artificial, el enfoque es el mismo diseñar un software de alta calidad que
cumpla al 100% las funcionalidades requeridas
6. La figura 1.3 muestra las tres capas de la ingeniería de software arriba
de otra llamada "compromiso con la calidad”. Esto implica un
programa de calidad organizacional como el enfoque de la
administración total de la calidad. Haga un poco de investigación y
desarrolle los lineamientos de los elementos clave de un programa para
la administración de la calidad.
Hoy en día se utilizan varios tipos de herramientas en la ingeniería de software las cuales se
crearon con el fin de sostener los métodos y procesos de la ingeniería de software.
Dentro de estas herramientas se pueden resaltar:
● Diseño de software: el cual consiste en la serie de programas de escritorio utilizados
para la creación de diagramas UML el cual guía la codificación del software.
● Construcción de software: estas herramientas son mayormente son los IDE como
Visual Studio, NetBeans, Eclipse, entre otros.
● Testeo del software: Consiste en realizar pruebas en el software, análisis de
rendimiento y pruebas unitarias.
● Mantenimiento de software: como nos indica el capítulo 1 del libro cada que se
implementan nuevas funciones en un software surgen nuevos errores dentro de este
(curva idealizada software) por lo cual hay que aplicar herramientas que permitan
mantener el software funcional las cuales son: ingeniería inversa y reingeniería.
● Administración de configuración: esta herramienta es la que de manera general
revisa la configuración para conservar la confianza y la forma de adoptarse del
software. También se puede adicionar que se manejan problemas y se controlan las
versiones con esta herramienta.
● Herramienta de administración: esta herramienta se encarga de tener clara la
planificación del proyecto, así como estar al tanto del progreso de este, también se
tiene en cuenta la gestión de riesgo de este.
● Herramienta de procesos: dentro de esta se incluyen el modelado de procesos y la
gestión del mismo.
● Herramienta de calidad de software: en esta se abarca la auditoría y análisis del
software donde se analizan datos y el flujo de control.
Luego de conocer en su mayoría las herramientas que se utilizan en la ingeniería de software
también existen métodos dentro de estas estos son algunos de ellos:
● Métodos heurísticos: dentro de estos métodos se encuentran los métodos
estructurados, orientados a los datos y objetos.
● Modelo cascada: este es el que tiene un enfoque de desarrollo secuencial(esto
significa que se trabaja por etapas y cada nueva etapa debe esperar a que la actual
termine).
● Modelo de espiral: habiendo tocado el modelo anterior este con este modelo se da a
entender que en vez de trabajar 1 a 1 debido a la gran demanda de solicitudes por los
negocios la ingeniería de software se puede adaptar para trabajar múltiples solicitudes
de manera paralela.
● Método de prototipo: la ingeniería de software puede ofrecer un producto pequeño al
usuario para prueba de este y esto se puede lograr en poco tiempo y con reducidos
recursos.
Respetando estos conceptos de la ingeniería de software podemos lograr una administración
de calidad para nuestro software en desarrollo.
7. ¿Es aplicable la ingeniería de software cuando se elaboran webapps?
Justifique su respuesta. ¿cómo puede modificarse para que asimile las
características únicas de éstas?
Si porque las webapps son software en constante evolución y que presentan unas
características de alto rendimiento para poder brindarle una buena experiencia al
usuario final.
Este tipo de software puede modificarse con técnicas de seguridad para proteger el
contenido sensible y con métodos que brinden opciones ágiles y rápidas para desarrollar
una aplicación completa.
8. A medida que el software gana ubicuidad, los riesgos para el público
(debidos a programas defectuosos) se convierten en motivo de
preocupación significativa. Desarrolle un escenario catastrófico pero
realista en el que la falla de un programa de cómputo pudiera
ocasionar un gran daño (económico o humano).
El cohete espacial Falcon 9 de SpaceX ha logrado enviar dos seres humanos al espacio,
pero detrás de todo, esta un codigo de unas 200,000 líneas en la que destacan C# y C++,
además de una versión de Linux en sus sistemas de control de propulsión y navegación.
Ahora imaginemos que el gran cohete de SpaceX tiene un pequeño error en su sistema
el cual no fue detectado. Esto podría causar que el cohete no se pueda controlar y se
desvíe de su trayectoria, lo que causaría grandes pérdidas económicas.
9. Describa con sus propias palabras una estructura de proceso. Cuando
se dice que las actividades estructurales son aplicables a todos los
proyectos, ¿significa que se realizan las mismas tareas en todos los
proyectos sin que importe su tamaño y complejidad? Explique su
respuesta.
La estructura de proceso es la comunicación con el cliente para saber los requerimientos
de su producto, luego en la etapa de planeación se asigna un tiempo y un presupuesto,
para luego modelar el diseño del producto deseado y proceder con la construcción del
código, probarlo, detectar los riesgos y luego entregar al consumidor.
10. Las actividades sombrilla ocurren a través de todo el proceso del
software. ¿Piensa usted que son aplicables por igual a través del
proceso, o que algunas se concentran en una o más actividades
estructurales? Explique su respuesta.
Las actividades sombrilla se concentran en varias actividades estructurales enfocándose
de modo principal en la gestión,el rastreo y el control del proyecto. Me explico , a la
hora de desarrollar un producto sin importar su tamaño o complejidad , aplicamos un
sinnúmero de actividades estructurales que a su vez son aplicables en todo el proceso
como es el caso de la actividades sombrilla siendo algunos de sus enfoques principales
entre sus procesos: gestión del riesgo , de la reutilización y de la configuración de
software, entre otros.
11. Agregue dos mitos adicionales a la lista presentada en la sección 1.6.
También diga la realidad que acompaña al mito.
Mito: El software se puede desarrollar incluso sin un equipo de gestión de proyecto.
Realidad: El desarrollo de software complejo requiere tiempo y enorme energía por
parte de los equipos involucrados. Sin un método, el desarrollo de software es
imposible. El resultado de un equipo de producción que no sigue un sistema eficiente
o que sigue un método defectuoso resultará en un software defectuoso – y
eventualmente, caos.
Mito: Obtener soporte para software a la medida es costoso y difícil.
Realidad: El mantenimiento de software a la medida es en muchos casos más barato
y fácil que software hecho
12. Seleccione un artículo del mes de Agosto/Septiembre'20 del siguiente
link ([Link] y
prepare un resumen. Además incluya:
● Título del artículo seleccionado,
Coronavirus: miles de certificaciones ISO caducan
● Nombre del articulista
Alex Scroxton
● Fecha en que se escribió.
19 Aug 2020
● Resumen
Con la actual pandemia (Covid-19) miles de certificaciones de sistemas de
gestión ISO corren el riesgo de caducar en los próximos meses, ya que los
organismos de certificación luchan por superar la acumulación de citas de
auditoría de recertificación pérdidas y pospuestas.
Para restaurar las certificaciones caducadas,las organizaciones afectadas
pueden verse obligadas a pagar costos tres veces más altos de lo que
esperarían pagar por una auditoría ISO anual, junto con más tiempo y
recursos. Si bien gran parte de la respuesta a la pandemia ha sido trasladar
todo en línea a plataformas virtuales basadas en la nube, nfoSaaS señaló que
esto era esencialmente imposible para las auditorías ISO.
La incómoda verdad es que, en las circunstancias actuales, algunas
organizaciones pueden decidir no volver a auditarse y simplemente dejar que
sus certificaciones ISO caduquen.
El ingeniero de seguridad senior de DomainTools, Tarik Saleh, dijo que las
medidas de distanciamiento social habían agregado capas de complejidad
a la ya compleja tarea de mantener las organizaciones seguras y en
cumplimiento.