Está en la página 1de 15

UNIVERSIDAD DEL NORTE DE TAMAULIPAS

CAMPUS:
MIER

ASIGNATURA:
INGENIERÍA WEB

TEMA:
TAREA 2

DOCENTE:
GUILLERMO FRANCISCO DOMINGO

GRADO: 7º
SEPTIMO CUATRIMESTRE

CARRERA:
LICENCIATURA EN CIENCIAS DE LA EDUCACIÓN Y TECNOLOGÍAS DE LA INFORMACIÓN Y LA
COMUNICACIÓN

ALUMNO:
JESUS ANGEL JIMENEZ NAVA

CD. MIER, TAM.                                                  02 DE SEPTIEMBRE DEL 2021

1
UNIDAD 2

FORMULACIÓN, PLANEACIÓN Y VERIFICACIÓN PARA INGENIERÍA WEB

ÍNDICE

Portada……………………………………………………………………………………………………………….……………...…..1

ÍNDICE……….………………………………………………………………………….………………………………………………….2

2.7.3.- Prueba de Nivel de Componentes……….…….…………………………………………………………………..3

2.7.4.- Pruebas de Navegación………………………………………………………………………………………………….6

2.7.5.- Pruebas de Configuración…… …………….………………………………………………………………………..7

2.7.6.- Pruebas de Seguridad………………………………………………….……………..…………………………………7

2.7.7.- Pruebas de Desempeño…………………………..…………………………………………………………………….7

2.8.- Implementación…………………………………………….…………………………………………………………………8

2.9.- Evaluación de las Aplicaciones Web…………………….……………………………………………………..….10

2.10.- Mantenimiento de las Aplicaciones Web………………………………………….…………………………..14

Referencias Bibliográficas……………………………….………………………………………………………………………15

2
UNIDAD 2
FORMULACIÓN, PLANEACIÓN Y VERIFICACIÓN
PARA INGENIERÍA WEB

2.7.3.- Prueba de Nivel de Componentes.


El diseño en el nivel de componentes tiene lugar una vez terminado el diseño
de la arquitectura. En esta etapa se ha establecido la estructura general de los
datos y del programa del software. El objetivo es traducir el modelo del diseño
a software operativo.

El diseño de datos a nivel de componentes se centra en la representación de


estructuras de datos a las que se accede directamente a través de uno o más
componentes del software.

El diseño en el nivel de componente transforma los elementos estructurales de


la arquitectura del software en una descripción de sus componentes en cuanto a
procedimiento. La información obtenida a partir de los modelos basados en
clase, flujo y comportamiento sirve como la base para diseñar los componentes.

Un componente es un bloque de construcción de software de cómputo. Desde


la visión orientada a objetos, un componente contiene un conjunto de clases que
colaboran. Cada clase dentro de un componente se elabora por completo para
que incluya todos los atributos y operaciones relevantes para su implantación.

En el contexto de la ingeniería de software tradicional, un componente es un


elemento funcional de un programa que incorpora la lógica del procesamiento,
las estructuras de datos internas que se requieren para implantar la lógica del
procesamiento y una interfaz que permite la invocación del componente y el
paso de los datos. Dentro de la arquitectura del software se encuentra un
componente tradicional, también llamado módulo, que tiene tres funciones
importantes: 1) como componente de control que coordina la invocación de
todos los demás componentes del dominio del problema, 2) como componente
del dominio del problema que implanta una función completa o parcial que
requiere el cliente y 3) como componente de infraestructura que es responsable
de las funciones que dan apoyo al procesamiento requerido en el dominio del
problema.

Los componentes son entidades desplegables. Es decir, no son compilados en


un programa de aplicación, sino que se instalan directamente sobre una
plataforma de ejecución. Los métodos y atributos definidos en sus interfaces
pueden ser accedidos por otros componentes. 
 

3
 
Ejemplo. Un modelo de componente de recopilación de datos.
Los pasos siguientes representan un conjunto de tareas comunes para el diseño
en el nivel de componentes cuando se aplica a un sistema orientado a objetos:

Paso 1. Identificar todas las clases de diseño que correspondan al dominio del
problema. Con el uso del modelo de requerimientos y arquitectónico, se elabora
cada clase de análisis y componente de la arquitectura.

Paso 2. Identificar todas las clases de diseño que correspondan al domino de la


infraestructura. Estas clases no están descritas en el modelo de los
requerimientos y con frecuencia se pierden a partir del modelo arquitectónico;
sin embargo, deben describirse en este punto.

Paso 3. Elaborar todas las clases de diseño que no sean componentes


reutilizables. La elaboración requiere que se describan en detalle todas las
interfaces, atributos y operaciones necesarios para implantar la clase. Mientras
se realiza esta tarea, deben considerarse los heurísticos del diseño.

Paso 4. Describir las fuentes persistentes de datos (bases de datos y archivos) e


identificar las clases requeridas para administrarlos.

Paso 5. Desarrollar y elaborar representaciones del comportamiento para una


clase o componente. Los diagramas de estado UML fueron utilizados como
parte del modelo de los requerimientos para representar el comportamiento
observable desde el exterior del sistema y el más localizado de las clases de
análisis individuales.

Paso 6. Elaborar diagramas de despliegue para dar más detalles de la


implementación. Los diagramas de despliegue se utilizan como parte del diseño
de la arquitectura y se representan en forma de descriptor. Durante el diseño en
el nivel de componentes pueden elaborarse diagramas de despliegue que
representen la ubicación de paquetes de componentes clave.

Paso 7. Rediseñar cada representación del diseño en el nivel de componentes y


siempre considerar alternativas.
 
 
DIAGRAMA DE DESPLIEGUE O DISTRIBUCIÓN

4
 
Un diagrama de despliegue muestra la configuración de nodos que participan
en la ejecución y los componentes que residen en ellos.
 
NODO

Es un objeto físico en tiempo de ejecución que representa un recurso


computacional generalmente tiene memoria y capacidad de procesamiento. Los
nodos pueden contener objetos, instancias del componente.

Un nodo representa típicamente un procesador o un dispositivo sobre el que se


pueden desplegar los componentes.

 
EJEMPLOS:
 
EJEMPLO 1. Diagrama de despliegue o Distribución de un
usuario conectándose a Internet, el cual está compuesto por lo
  siguiente:
 
 El usuario hace la petición por medio del teclado y a través del monitor
que quiere conectarse a Internet.
 En la estación de trabajo se tiene instalado un navegador web que es el
que recibe la petición del usuario.
 El navegador Web envía un mensaje de petición de conexión mediante
un protocolo HTTP o HTTPS al servidor Web.
 El servidor Web recibe el mensaje en la interfaz Web de la capa de
aplicación y manda la petición a la interfaz de la base de datos que se
quiere consultar. La Interfaz manda un mensaje al servidor de la base de
datos y al archivo log donde quedaría almacenada ese proceso.
 Y por último la petición del usuario llega hasta la base de datos creada en
el gestor de base de datos MySQL y alojada en el servidor de base de
datos. Dicho enlace se da ya sea por medio del protocolo TCP/IP o por
medio de una conexión local o socket.
 
Aquí tenemos dos nodos, el cliente y el servidor, cada uno de ellos contiene
componentes. El componente del cliente utiliza una interface de uno de los
componentes del servidor. Se muestra la relación existente entre los nodos. A

5
esta relación podríamos asociarle un estereotipo para indicar qué tipo de
conexión disponemos entre el cliente y el servidor, así como modificar su
cardinalidad para indicar que soportamos diversos clientes. Como los
componentes pueden residir en más de un nodo, podemos situar el componente
de forma independiente, sin que pertenezca a ningún nodo y relacionarlo con
los nodos en los que se sitúa.

2.7.4.- Planeación de proyectos de ingeniería Web.

6
Las pruebas de navegación garantizan que todos los mecanismos que permiten
al usuario de la WebApp viajar a través de ella sean funcionales y validar que
cada USN pueda ser alcanzado por la categoría de usuario adecuada. 

La primera prueba de navegación inicia con la prueba de interfaz. Estas


pruebas inicialmente son probadas por los Ingenieros Web para luego pasar
que prueben los usuarios. 

Prueba de sintaxis de navegación. Con cada mecanismo de navegación


se prueba: vínculos navegación, redirigir (destinos removidos), mapas de
sitio, motores de búsqueda. 

Prueba de semántica de navegación. Se deben probar los USN


(unidad semántica de navegación). Si no se han hecho los USN en el análisis, se
puede tomar los casos de uso para armar casos de prueba de navegación
respondiendo a las siguientes preguntas:

2.7.5.- Pruebas de Configuración.


En las pruebas de compatibilidad en pruebas de interfaz usuario se probaron
solo del lado del cliente, mientras que en estas pruebas de configuración se
prueban un conjunto de probables configuraciones de cliente y servidores. 

2.7.6.- Pruebas de Seguridad.


La era de la información ha impulsado a las organizaciones a extender sus
actividades y servicios hacia el mundo digital.
Una de las mejores formas que han encontrado para hacerlo es a través de las
aplicaciones web. Sin embargo, a pesar de sus ventajas; este tipo de
herramientas se ha convertido en uno de los vectores de ataque favoritos de los
cibercriminales. Por esa razón, la seguridad de aplicaciones web se ha
transformado en uno de los temas de mayor interés para profesionales de
seguridad y empresas de todo el mundo.
Si lo que buscas es proteger de forma efectiva los datos sensibles de tus clientes
y tu organización, en el ciberespacio; no dejes de leer estás 7 mejores prácticas
de seguridad de aplicaciones web.

¿Cuál son las consecuencias que traen los ataques a la seguridad de las
aplicaciones web para las empresas?

7
Existen diversas consecuencias negativas que este tipo de ataques puede traer a
las empresas, entre ellas tenemos:

 Pérdidas financieras importantes.


 Robo de datos sensibles.
 Percepción negativa de la marca
 Desconfianza por parte de los clientes.

Por suerte existen una serie de medidas que se pueden tomar con las cuales las
empresas podrán disminuir los alcances de cualquier ciberataque que atente
contra la seguridad de aplicaciones web. Acá te presentamos algunas de ellas.

5.- Mejores prácticas para garantizar la seguridad de aplicaciones web

1.- Lleva a cabo una evaluación de riesgos

2.- Establece estrategias contra entradas dañinas de usuarios

3.- Protege los datos sensibles

4.- Desarrolla un sistema seguro de restablecimiento de contraseñas

5.- Utiliza una herramienta de seguridad de aplicaciones web

2.7.7.- Pruebas de Desempeño.


La prueba de rendimiento o desempeño es una técnica de prueba de
software no funcional que determina cómo la estabilidad, la velocidad, la
escalabilidad y la capacidad de respuesta de una aplicación se mantiene bajo
una determinada carga de trabajo. Es un paso clave para asegurar la calidad
del software.
Los objetivos de las pruebas de rendimiento o desempeño incluyen la
evaluación de la salida de la aplicación, la velocidad de procesamiento, la
velocidad de transferencia de datos, el uso del ancho de banda de la red, el
máximo de usuarios concurrentes, la utilización de la memoria, la eficiencia
de la carga de trabajo y los tiempos de respuesta de los comandos.
Razones para las pruebas de rendimiento

Las organizaciones realizan pruebas de rendimiento al menos por una de las


siguientes razones:

 Para determinar si la aplicación satisface los requisitos de rendimiento


(por ejemplo, el sistema debe manejar hasta 1.000 usuarios simultáneos).

8
 Para localizar los cuellos de botella informáticos dentro de una
aplicación.
 Para establecer si los niveles de rendimiento reclamados por un
proveedor de software son realmente verdaderos.
 Para comparar dos o más sistemas e identificar el que mejor funciona.
 Para medir la estabilidad en los casos de picos de tráfico.

2.8.- Implementación.
Debido al crecimiento e impacto de Internet en los años recientes, se ha visto un
incremento considerable en el desarrollo de software basado en la web, así
como la necesidad de migrar sistemas de software ya existentes a ambientes
web. Esto originó el desarrollo de propuestas metodológicas y herramientas
adecuadas para el desarrollo de sistemas en este ambiente, denominado
Ingeniería Web, que toma en cuenta las características propias de este tipo de
aplicaciones.
En la actualidad existen diferentes metodologías y herramientas que apoyan y
facilitan el desarrollo de estas aplicaciones, sin embargo, se siguen
desarrollando propuestas con nuevos enfoques para mejorar su calidad. La
Ingeniería Web, es una gran área de oportunidad para la investigación y
desarrollo de herramientas que permitan desarrollar aplicaciones web de alta
calidad.
Hoy en día, el software es visto y utilizado cada vez más como un producto útil
en la solución de problemas en diversas áreas de la vida del ser humano, por lo
tanto es muy importante que sea un producto de calidad. Algunos enfoques,
refieren que la calidad de un producto depende en gran medida del proceso
utilizado para su creación; en el caso del software, esto es el proceso de
desarrollo de software o proceso de software.

Cuando un software se desarrolla adecuadamente, satisface las necesidades de


los usuarios, funciona impecablemente durante mucho tiempo, es fácil de usar
y modificar, y también es entregado en el tiempo y costos planeados. Por el
contrario, cuando no se desarrolla adecuadamente, no cubre los requerimientos
de los usuarios, es propenso a errores, es difícil de modificar e incluso más
difícil de utilizar y se convierte en un problema para los usuarios.
En los años recientes, se ha visto un incremento considerable en el desarrollo de
software basado en la web, así como la necesidad de migrar sistemas de
software ya existentes a estos ambientes.

Lo anterior, debido al crecimiento e impacto de Internet y particularmente de la


World Wide Web en las áreas de negocios, comercio, industria, finanzas,
educación, gobierno, entretenimiento y personales, entre otras, lo cual ha

9
provocado que los requerimientos de los usuarios de software se vean
influenciados y cambien hacia estos ambientes. Este incremento, enfrentó a los
desarrolladores de software a la necesidad de aprender y aplicar en forma
rápida tecnologías de vanguardia para desarrollar estos sistemas.
Las necesidades actuales de desarrollo de software están altamente
influenciadas por el impacto del Internet y de la World Wide Web (www). Cada
vez más, las empresas e instituciones necesitan y dependen de aplicaciones
basadas en la web, lo cual requiere por parte de los desarrolladores un amplio
conocimiento de tecnologías de vanguardia que le permitan desarrollarlas, sin
embargo, esto no es suficiente, también se requiere del conocimiento de las
metodologías y herramientas que permitan analizar, planear, modelar e
implementar un sistema de calidad que responda a los requerimientos del
usuario en forma, tiempo y costos y que además permita en forma sencilla su
mantenimiento, crecimiento y evolución.
Estas consideraciones se encuentran en la Ingeniería Web, que promueve una
forma de trabajo disciplinada y sistemática y el uso de herramientas que
faciliten el desarrollo, implantación y mantenimiento de aplicaciones web de
alta calidad.
La Ingeniería Web, es una gran área de oportunidad para la investigación y
desarrollo de herramientas que permitan desarrollar aplicaciones web de alta
calidad.

2.9.- Evaluaciones de Aplicaciones Web.


Evaluación de calidad web: Métodos, técnicas y uso de métricas de usabilidad

La norma ISO 8402 define la calidad como el conjunto de propiedades y


características de un producto o servicio, que le confieren aptitud para satisfacer
unas necesidades explícitas o implícitas.

Observamos que la calidad es sinónimo de unos factores que pueden ser


medidos:

 Eficiencia
 Flexibilidad
 Facilidad de uso
 Portabilidad
 Seguridad, etc.

Modelo de Mc Call

La ISO 9126 [basada en el modelo de Mc Call] plantea un modelo normalizado


que permite evaluar y comparar productos sobre la misma base.

10
Aquí la calidad queda definida a un alto nivel de abstracción por seis
características:

 Funcionalidad: Las funciones satisfacen necesidades declaradas o


implícitas [ISO 9126: 1991]
 Fiabilidad: Capacidad de un sistema para mantener su nivel de
rendimiento
 Usabilidad: Esfuerzo necesario para el uso y la valoración individual de
tal uso, por parte de un conjunto de usuarios. [ISO 9126: 1991]
 Portabilidad: Es la capacidad de un sistema para ser transferido de un
entorno a otro. [ISO 9126: 1991]
 Mantenibilidad: Es el esfuerzo necesario para realizar modificaciones
específicas. [ISO 9126: 1991]
 Eficiencia: Es la relación entre el nivel de prestaciones de un sistema y el
volumen de recursos utilizados en condiciones declaradas. [ISO 9126:
1991]

Este estándar no proporciona métricas ni métodos de medición, por lo que no


son prácticas las mediciones directas de las características de calidad.

Para resolver este problema se revisó la ISO 9126 y se incluyó un nuevo modelo
de calidad que distingue entre tres aproximaciones a la calidad de producto
en ISO 14598, a saber:

 Calidad Interna: Se mide por las propiedades estáticas del código,


utilizando técnicas de inspección
 Calidad externa: Se mide por las propiedades dinámicas del código
cuando éste se ejecuta
 Calidad en uso: Se mide por el grado por el cual el software está
realizado en función de las necesidades del usuario en el entorno de
trabajo para el que fue construido

Usabilidad: Métodos y técnicas de evaluación

A la hora de calificar la calidad de una aplicación web, uno de los factores más
importantes es la usabilidad. Es el atributo más visible ya que determina el
grado de satisfacción del usuario respecto de la aplicación web; de ello depende
que sea utilizada o no.

Ocurre que la ingeniería de software se ocupa de aquellos atributos del


software relacionados con características internas del sistema, [fiabilidad,
seguridad, productividad] dejando de lado la perspectiva del usuario.

11
Pero en el caso de las aplicaciones web, estas están diseñadas para que sean
usadas por los usuarios, existe una interacción entre los usuarios y el sistema
web.

El término usabilidad según [Bevan, Kirakowsky, Maissel] es planteado desde


tres puntos de vista:

 Orientado al producto
 Orientado al usuario
 Orientado al rendimiento del usuario

ISO 9126-1

Este estándar define la usabilidad como la capacidad de un producto software


de ser comprendido, aprendido, usado y de ser atractivo para el usuario, en
condiciones específicas de uso.

Esta definición es pone el énfasis en los atributos internos y externos del


producto, los cuales contribuyen a su usabilidad. Se observa que la usabilidad
no depende sólo del producto, sino también del usuario. Es interesante, al
respecto, consultar la definición de la ISO 9241-11.

J. Nielsen

El principal problema de la usabilidad reside en que es una cualidad demasiado


abstracta para ser medida directamente.

Por esta razón Nielsen la descompone en cinco atributos para poder estudiarla:

 Facilidad de aprendizaje
 Eficiencia
 Recuerdo en el tiempo
 Tasa de errores
 Satisfacción

Métodos de evaluación de usabilidad

Se pueden considerar dos grupos de UEM [Usability Evaluation Methods]:

Los UEM empíricos, donde participan:

 Usuarios
 Evaluadores
 Observadores

12
 Expertos en test

Aquí se utilizan técnicas tales como pensar en voz alta

Los UEM analíticos donde no tienen acceso los usuarios, incluyen un equipo de


especialistas en usabilidad. Para el proceso de inspección se utilizan directrices
o heurísticas para realizar el proceso de inspección.

Métricas de usabilidad

Por medición se entiende el proceso de atribuir números o simbolos a los


atributos de las entidades en el mundo real. a través de la medición es posible
juzgar lo que se mide.

Una métrica es la correspondencia del mundo real, a un mundo formal. Una


métrica es un valor numérico asignado a algún evento del mundo real,
software, sitio web, aplicación web, etc.

Un atributo es la característica de una entidad de tipo directo o indirecto, por


ejemplo, links no operativos, microcódigo no accesible, etc.

El uso de métricas no limita la intervención humana y ofrece una reducción de


la subjetividad en la evaluación de calidad de un sitio o aplicación web, etc.

Métricas de evaluación de calidad

Estas son las métricas propuestas en el estándar ISO 9126-4:

 Métricas relacionadas con la efectividad


 Métricas relacionadas con la productividad
 Métricas relacionadas con la seguridad
 Métricas relacionadas con la satisfacción

13
2.10.- Mantenimiento de Aplicaciones Web.
Toda aplicación web es efectiva siempre y cuando se mantenga actualizada
tanto tecnológica como funcionalmente, proporcionando al usuario lo que
necesita en cada momento. Del mismo modo que las empresas
y organizaciones evolucionan en la forma de hacer las cosas,
las aplicaciones informáticas deben seguir el mismo camino para lograr su
único objetivo, que es el de servir al usuario a realizar su trabajo de una manera
más eficiente.

Todo proyecto de desarrollo de software va ligado a un mantenimiento de


aplicaciones que posibilitan la evolución tecnológica de las empresas y evitan
que las aplicaciones caigan en desuso y queden obsoletas, provocando pérdidas
económicas y de tiempo. Los servicios de mantenimiento que ofrece IriTec
implican el soporte técnico y humano a los usuarios tanto en el desarrollo de
elementos correctivos como en evolutivos que doten de mayor funcionalidad a
las aplicaciones de la empresa.
IriTec tiene la capacidad, no sólo de proporcionar el mejor servicio de
mantenimiento de las aplicaciones web desarrolladas en proyectos, sino de
incluir en estos servicios de mantenimiento y evolución, aplicaciones de
terceros que necesitan de un nuevo impulso tecnológico o de una mejora en el
servicio prestado.
Una aplicación web solo es efectivo si se mantiene actualizado periódicamente,
y una aplicación del tipo que sea solo es útil si hace lo que usted necesita en
cada momento. Su proyecto evoluciona día a día, así lo debería hacer su sitio
web o sus aplicaciones de intranet y de gestión para adaptarse a la realidad
actual de su empresa o proyecto.

aspectos importantes para el mantenimiento

*Actualizar sus contenidos.


*Realizar un mantenimiento periódico.
*Añadir nuevas páginas.
*Mantenimiento Automático

14
Referencias Bibliográficas

https://virtual.itca.edu.sv/Mediadores/stis/37___diseo_a_nivel_de_compon
entes.html

 ngeniería de software. Un enfoque práctico. Roger S. Pressman - VII Edición.


 Ingeniería de Software. Ian Sommerville. 7ª. Edición.
 Análisis y Diseño de Sistemas. Kendall y Kendall. 3ª. Edición

https://sites.google.com/site/talleringesoftware/unidad-6-verificacion-y-
validacion-de-aplicaciones-web-1/6-4-ejemplos-de-pruebas-para-webapps

https://www.gb-advisors.com/es/seguridad-de-aplicaciones-web-5-mejores-
practicas/

octubre 12, 2018Tech-Blog

https://www.microfocus.com/es-es/what-is/performance-testing

https://www.revistahypatia.org/~revistah/index.php?
option=com_content&view=article&id=131&Itemid=247
[1] Pressman Roger S., 2002, ‘Ingeniería del Software. Un enfoque práctico’, Ed. Mc GrawHill, 5ª. Ed., ISBN 844-81-3214-9, pp. 601.
[2] Murugesan San, Deshpande Yogesh, Hansen Steve, Ginige Athula. 2001. “Web Engineering: A New Discipline for Development of
Web-Based Systems", in Web Engineering: Managing Diversity and Complexity of Web Application Development, S. Murugesan and Y.
Deshpande, Eds.: Springer-Verlag, 2001.

https://sites.google.com/site/talleringesoftware/unidad-6-verificacion-y-
validacion-de-aplicaciones-web-1/6-6-evaluacion-de-las-aplicaciones-web

https://sites.google.com/site/talleringesoftware/unidad-6-verificacion-y-
validacion-de-aplicaciones-web-1/6-7-mantenimiento-de-las-aplicaciones-web

15

También podría gustarte