Ja ss tutorial español

84
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 1 Introducción a la Ingeniería Web by Roger S. Pressman copyright © 2009 R.S. Pressman & Associates, Inc. Boca Raton, Florida, USA www.rspa.com

Transcript of Ja ss tutorial español

Page 1: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 1

Introducción a laIngeniería Webby Roger S. Pressman

copyright © 2009R.S. Pressman & Associates, Inc.Boca Raton, Florida, USAwww.rspa.com

Page 2: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 2

Sistemas basados en Web En los inicios de la Web, se construian

sistemas usando la informalidad, la urgencia, la intuición y el arte. La informalidad lleva a un ambiente de trabajo

fácil en el que uno puede hacer las cosas a su manera.

La urgencia lleva a la acción y a la toma de decisiones rápida.

La intuición es una cualidad intangible que le permite a la persona "sentir" su camino a través de situaciones complejas

El arte conduce a la forma estética y función a algo que agrada a los que lo encuentran.

El problema es que este enfoque puede y suele conducir a problemas.

Page 3: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 3

Pero Qué? A medida que las WebApps son más grandes y

complejas, La informalidad se mantiene, pero cierto grado

de requerimientos, planificación y diseño son necesarios.

La urgencia permanece, pero debe ser calmada por el reconocimiento de que decisiones pueden tener grandes consecuencias.

La intuición permanece, pero debe aumentarse con una gestión probada y patrones técnicos.

El arte permanece, pero debe complementarse con un solido diseño.

En pocas palabras, debemos adaptar el enfoque de la "vieja escuela" a las realidades del Web 2.0

Page 4: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 4

Y Cuál es la Respuesta?

La Ingeniería Web

Page 5: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 5

La Web Una tecnología indispensable

Prácticamente en todos los aspectos de la vida moderna

Una tecnología transformadora Cambia la forma en que hacemos las cosas Cambia la forma de adquirir y difundir información

Una tecnología que evoluciona En pocas palabras, gran impacto en todos en el mundo moderno

Page 6: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 6

WebApps Una Aplicación Web (WebApp) se compone de: sitios web completos funcionalidades especializadas dentro de

sitios web, y Aplicaciones de procesamiento de la

información que residen en Internet o en una Intranet o Extranet.

Page 7: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 7

Ingeniería Web Se define así:

Un ágil y framework disciplinado, para la construcción de aplicaciones web en la industria de calidad.

Se debe entender el significado de: Agile Disciplinado framework Industria de calidad

Page 8: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 8

Qué es un Proceso Ágil? La ingeniería web ágil combina una

filosofía y un conjunto de guías de desarrollo. La flosofía fomenta: La satisfacción del cliente Entrega Incremental temprana de la WebApp Pequeños equipos de proyectos altamente

motivados Métodos informales Productos de trabajo mínimo Simplicidad general de desarrollo

Un proceso ágil destaca su entrega a través de análisis y diseño (aunque estas actividades no son fomentadas), y la comunicación activa y continua entre los desarrolladores y los clientes.

Page 9: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 9

¿Qué es un Framework WebE?

Un framework es conjunto de actividades que siempre se llevarán a cabo para todos los proyectos de ingeniería Web - aunque la naturaleza de las actividades pueden variar para adaptarse al proyecto

Cada actividad del framework se compone de un conjunto de acciones

Las acciones abarcan tareas de trabajo productos de trabajo puntos de control de calidad, y Los hitos del proyecto

Un framework también tiene una serie de “actividades paraguas"

Page 10: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 10

Un Framework Genérico

Page 11: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 11

El Framework WebE : Actividades Comunicación. Implica la interacción fuerte y la

colaboración con el cliente (y otros interesados) y abarca la captura de requisitos y otras actividades relacionadas.

Planificación. Establece un plan gradual para el trabajo WebE.

Modelado. Comprende la creación de modelos que ayudan al desarrollador y al cliente para entender mejor los requerimientos y Diseño de la aplicación web

Construcción. Combina tanto la generación del código (por ejemplo, HTML, XML, Java) con la prueba que se requiere para descubrir errores en el código

Implementación.Ofrece una aplicación web para el cliente que lo evalúa y proporciona retroalimentación basada en la evaluación.

Page 12: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 12

La influencia de la Ingeniería del Software

Calidad: fomenta una cultura de procesos de mejora continua

Proceso: el pegamento que mantiene juntas las capas de la tecnología

Métodos: proporciona el cómo hacer técnico Herramientas: soporte para el proceso y los

métodos

Page 13: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 13

La Mejores Prácticas WebE

Tómese el tiempo para entender las necesidades y objetivos de negocio de productos, aunque los detalles de la aplicación web son vagos.

Describe cómo los usuarios interactúan con la aplicación web utilizando un enfoque basado en escenarios.

Siempre desarrollar un plan de proyecto, aunque sea muy breve.

Pasa algún tiempo modelado qué es lo que vas a construir.

Revisar los modelos de consistencia y calidad. Utilice las herramientas y la tecnología que le

permiten construir el sistema con tantos componentes reutilizables como sea posible.

No reinventar cuando se puede reutilizar. No se fíe de los primeros usuarios para depurar la

aplicación web-diseño y el uso de pruebas exhaustivas antes de liberar el sistema.

Page 14: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 14

El Proceso de WebE El proceso debe ser ágil y adaptable, pero también debe ser incremental

¿Por qué incremental? Requisitos evolucionan con el tiempo Los cambios se producen con frecuencia (y siempre en momentos inoportunos)

Líneas de tiempo son cortos Entrega incremental le permite gestionar este cambio!

Page 15: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 15

WebE Process Activities & Actions

Page 16: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 16

Activities Paraguas Gestión del cambio. Gestiona los efectos

del cambio, ya que cada incremento se integran ingeniería, herramientas que ayudan en la gestión de todo el contenido de aplicación web

Aseguramiento de la calidad. Define y lleva a cabo las tareas que ayudan a asegurar que cada producto de trabajo y el incremento de la calidad implementado exhibe

Gestión de riesgos. Considera los riesgos del proyecto y técnicos como un incremento está diseñado

Gestión de proyectos. Pistas y monitorea el progreso como un incremento está diseñado

Page 17: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 17

La actividad de comunicación

Entender el problema antes de empezar a resolverlo, y asegúrese de que la solución que concebir es que la gente realmente quiere

Para hacer esto, usted debe:

formular provocar negociar

Page 18: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 18

Formulation Se centra en la definición de las necesidades

del proyecto y el alcance comienza con la identificación de una necesidad

de negocio se mueve a una descripción de los objetivos de

aplicación web define las principales características de

aplicación web, y establece una base para la acción de

elicitación que sigue. permite a los actores y al equipo WEBE

establecer un conjunto común de metas y objetivos para la creación de cada incremento aplicación web

identifica el alcance del esfuerzo de desarrollo y proporciona un medio para determinar un resultado exitoso

Page 19: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 19

Elicitation La intención es reunir requisito detallado en

colaboración con todas las partes interesadas Para hacer esto: Una reunión (ya sea físico o virtual) se lleva a cabo

con la participación de todos los interesados. Reglas para la preparación y participación

establecidos. Un programa que se sugiere es formal suficiente para

cubrir todos los puntos importantes, pero lo suficientemente informales para fomentar el libre flujo de ideas.

Un facilitador (puede ser un cliente, un ingeniero de Web, o un extraño) controla la reunión.

Un mecanismo de definición (pueden ser hojas de trabajo, rotafolios, o pegatinas de pared o un tablón de anuncios electrónico, chat, foro o virtual) se utiliza.

Page 20: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 20

La captura de Interacción: Use Cases

Los casos de uso describen cómo una categoría de usuario específico (llamado un actor) va a interactuar con la aplicación web para llevar a cabo una acción específica.

Los casos de uso se desarrollan iterativa. Sólo los casos de uso necesarios para el incremento a construir se desarrolló durante la actividad de comunicación para el incremento.Los casos de uso permiten: proporcionar la información necesaria para la planificación y las actividades de modelización.ayudará a entender cómo los usuarios perciben su interacción con la aplicación web.ayudar a compartimentar el trabajo de ingeniería Web, ya que pueden ser organizados en incrementos de aplicación web.proporcionar una orientación importante para aquellos que tienen que probar la aplicación web.

Page 21: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 21

Negociacion Idealmente, los requisitos se definen en

detalle suficiente para proceder Pero, en realidad, los requisitos son a menudo

contradictorios o no factible (en el contexto de limitaciones del mundo real, tales como el costo o tiempo).

La negociación implica trabajar con los interesados para equilibrar la funcionalidad, el rendimiento y otras características del producto o del sistema contra el costo y tiempo de entrega.

Los mejores negociadores luchar por un resultado de ganar-ganar.

que es una buena idea para determinar cada una de las "condiciones" victoria de los interesados.

Page 22: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 22

La actividad de planificación

Pero el alcance de la planificación de actividades varía entre las personas involucradas en un proyecto WEBE

Un equipo líder planes, monitores, y coordina el trabajo conjunto de un equipo WEBE.

Un ingeniero Web gestiona el día a día del trabajo de planificación, seguimiento y control de las tareas técnicas.

Toma un enfoque ágil para la planificación

Adaptar el esfuerzo y el tiempo dedicado a la planificación de la complejidad de la aplicación web incremento

Page 23: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 23

directrices de planificación

Comprender el alcance antes de definir las tareas de trabajo o programar para un incremento

Filtrar acciones marco y tareas Asegúrese de tener el equipo adecuado

Evaluar los riesgos Definir un horario Identificar los filtros de calidad Determine cómo va a gestionar el cambio

Page 24: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 24

Gestión de la Calidad ¿Qué mecanismos de aseguramiento de la calidad puede el equipo utilizar?

Una actividad reflexiva, la comunicación profunda

Requisitos cuidadosos reunir Par de tutoriales para evaluar la calidad de todos los productos de trabajo

Crear una lista genérica que puede utilizar para evaluar los modelos

Usa pruebas para destapar errores

Page 25: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 25

Pair Walkthroughpar Tutorial

Revisar el producto, no el productor. Establecer una agenda y mantenerla. Una de las principales

enfermedades de las reuniones de todos los tipos es la deriva. Un tutorial debe mantenerse en la pista y en la fecha prevista.

Limitar el debate y la refutación. Cuando un asunto haya sido el revisor, puede que no haya acuerdo sobre su impacto. En lugar de gastar tiempo en debatir la cuestión, la cuestión debería ser grabadas para posterior resolución.

Enunciar las áreas problemáticas, pero no trate de resolver todos los problemas señalados. Un tutorial no es una sesión de resolución de problemas.

Tome notas escritas. Las notas pueden ser introducidos directamente en un ordenador portátil.

Dedique el tiempo suficiente para descubrir problemas de calidad, pero no más de un minuto. En general, un tutorial equipo debe ser completado dentro de 60 a 90 minutos como máximo.

Page 26: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 26

Change ManagementGestión del Cambio

Page 27: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 27

La actividad de modelización

Todos los modelos están equivocados, pero algunos modelos son útiles.? Caja George

Nos modelar nuestra percepción de la realidad, para que podamos entender y cambiarlo, pero nuestros modelos de la realidad no son perfectos.

El análisis del modelo ayuda a comprender la naturaleza del problema

Modelado de diseño ayuda a entender la estructura y arquitectura interna de la aplicación web

Page 28: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 28

Analysis Modeling Analysis modeling helps you to understand the

detailed requirements that will allow you to satisfy user needs

Analysis models look at content, interaction, function, and behavior, as well as the WebApp configuration

To determine the how much analysis modeling to do, examine the:

• Size and complexity of the WebApp increment• Number of stakeholders (analysis can help to identify conflicting requirements coming from different sources)

• Size of the WebE team• Degree to which members of the WebE team have worked together before (analysis can help develop a common understanding of the project)

• Degree to which the organization’s success is directly dependent on the success of the WebApp

Page 29: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 29

Analysis Outputs Information model. Identifies the full spectrum of

content to be provided by the WebApp. Content includes text, graphics and images, and video and audio data.

Interaction model. Describes the manner in which users interact with the WebApp.

Functional model. Defines the operations that will be applied to WebApp content and describes other processing functions that are independent of content but necessary to the end user.

Configuration model. Describes the environment and infrastructure in which the WebApp resides.

Page 30: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 30

The Information Model Identify content objects, their

relationships, and their architecture: External entities (e.g., other systems, databases, people) that

produce or consume information to be used by the WebApp Things (e.g., reports, displays, video images) that are part of the

information domain for the problem Occurrences or events (e.g., a quote or an order) that occur within

the context of a user’s interaction with a WebApp Roles (e.g., retail purchasers, customer support, salesperson)

played by people who interact with the WebApp Organizational units (e.g., division, group, team) that are relevant to

an application Places (e.g., manufacturing floor or loading dock) that establish the

context of the problem and the overall function of the WebApp Structures (e.g., sensors, monitoring devices) that define a class of

objects or related classes of objects

Page 31: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 31

The Interaction Model Can be represented using:

Use cases Sequence diagrams State diagrams User interface prototypes

In many instances, a set of use cases is sufficient to describe the interaction at an analysis level (further refinement and detail will be introduced during design)

However, when the sequence of interaction is complex and involves multiple analysis classes or many tasks, it is sometimes worthwhile to depict it using a more rigorous diagrammatic form.

Page 32: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 32

The Functional Model Addresses two processing elements of the WebApp, each representing a different level of procedural abstraction: user-observable functionality that is delivered by the WebApp to end users, and

the operations contained within analysis classes that implement behaviors associated with the class.

The UML activity diagram can be used to represent processing details

Page 33: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 33

The Configuration Model Among the many configuration issues that should be addressed are: Server hardware and operating system

environments Interoperability considerations on the server side

(e.g., large database access, other IT applications, specialized communication protocols)

On the client side: • Local OS

• Browser software

• Client hardware variations

Page 34: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 34

WebApp Design Jakob Nielsen states: “There are essentially

two basic approaches to design: the artistic ideal of expressing yourself and the engineering ideal of solving a problem for a customer.”

Even today, some proponents of agile software development use WebApps as poster children for the development of applications based on “limited design.” However --

• when content and function are complex• when the size of the WebApp encompasses hundreds of

content objects, functions, and analysis classes• when multiple people become involved in the design; and • when the success of the WebApp will have a direct impact on

the success of the business, • design cannot and should not be taken lightly.

Page 35: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 35

WebApp Design The design model encompasses content, aesthetics, architecture, interface, navigation, and component-level design issues.

The design model provides sufficient information for the WebE team to construct the final WebApp

Alternative solutions are considered, and the degree to which the current design model will lead to an effective implementation is also assessed

Page 36: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 36

Design Goals - I Simplicity. Although it may seem old-

fashioned, the aphorism “all things in moderation” applies to WebApps. Rather than feature-bloat, it is better to strive for moderation and simplicity.

Consistency. Content should be constructed consistently Graphic design (aesthetics) should present a

consistent look Architectural design should establish templates

that lead to a consistent hypermedia navigation Navigation mechanisms should be used consistently

Identity. The aesthetic, interface, and navigational design of a WebApp must be consistent with the application domain for which it is to be built.

Page 37: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 37

Design Goals - II Robustness. The user expects robust content and

functions that are relevant to the user’s needs. Navigability. Users should be able to understand

how to move about the WebApp without having to search for navigation links or instructions.

Visual appeal. Design characteristics (e.g., the look and feel of content, interface layout, color coordination, the balance of text, graphics and other media, and navigation mechanisms) contribute to visual appeal.

Compatibility. Most WebApps will be used in a variety of environments (e.g., different hardware, Internet connection types, operating systems, and browsers) and must be designed to be compatible with each

Page 38: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 38

Design Actions

Page 39: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 39

Interaction Design Design an interface to answer three generic questions:

• Where am I? The interface should (1) provide an indication of the WebApp that has been accessed and (2) inform users of their location in the content hierarchy.

• What can I do now? The interface should always help users understand their current options—what functions are available, what links are live, what content is relevant?

• Where have I been, where am I going? The interface must facilitate navigation. Hence, it must provide a “map” (implemented in a way that is easy to understand) of where users have been and what paths they may take to move elsewhere within the WebApp.

Page 40: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 40

Design Principles (Tognozzi) Anticipation. Designed so that it anticipates the user’s next

move. Communication. The interface should communicate the status of

any activity initiated by the user. Consistency. The use of navigation controls, menus, icons, and

aesthetics (e.g., color, shape, layout) should be consistent throughout the WebApp.

Controlled autonomy. The interface should facilitate user movement throughout the WebApp, but it should do so in a manner that enforces navigation conventions that have been established for the application.

Efficiency. The design of the WebApp and its interface should optimize the user’s work efficiency, not the efficiency of the Web engineer who designs and builds it or the client-server environment that executes it.

Flexibility. The interface should be flexible enough to enable some users to accomplish tasks directly and others to explore the WebApp in a somewhat random fashion.

Focus. The WebApp interface (and the content it presents) should stay focused on the user task(s) at hand.

Page 41: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 41

Other Design Issues Response time—action to response interval

“Help” facilities—value of content and guidance

Error handling—explication and guidance

Accessibility—availablity to those with disabilities

Internationalization—ability to convert to other languages

Page 42: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 42

Information Design Three key issues:

Content. What content is available? Composition. What views on that content do we wish

to provide users? Navigation. How do the users gain access to those

views?

There are different levels of abstraction at which we might consider these information design issues

Information design addresses how content can be organized, accessed, and managed

Page 43: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 43

Navigation Design ER modeling defines the information domain of the

application by identifying content (data) objects, attributes, relationships, and various type indicators that comprise the WebApp information space.

Slice design determines detailed information structure and access mechanisms by grouping content from the domain (captured in the ER model) into collections that can or should be presented together in order to be useful and meaningful

Navigation design establishes the links between the various slices and creates the information units that have interest for various user categories.

Page 44: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 44

Functional Design Functional design is not a discrete task that is

performed at just one point in the design process. Rather, it is interwoven with other design activities. User-level functionality is the expression of the WebApp

capabilities that support users in achieving their goals. Application-level functionality represents a lower-level

design of internal functionality that may not be directly visible to users

Application-level functionality is more deeply embedded within the structure of the WebApp and will often emerge out of the progressive design of the user-level functionality

Page 45: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 45

Design Patterns “A pattern is a named nugget of insight

which conveys the essence of a proven solution to a recurring problem within a certain context amidst competing concerns.” Brad Appleton

A way of capturing a description of a particular problem and a good solution to that problem

The intent of each design pattern is to provide a description that enables a designer to determine

(1) whether the pattern is applicable to the current work (2) whether the pattern can be reused (hence, saving design

time), and: (3) whether the pattern can serve as a guide for developing

a similar, but functionally or structurally different pattern.

Page 46: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 46

Construction and Deployment

Page 47: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 47

Some Basic Principles Keep the development environment and the

production environment separate. Do not develop directly on the servers that are accessible to your users!

Provide the developers with an environment that facilitates their productivity.

Where possible, undertake testing in the an environment that is identical to the one your users will see.

Page 48: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 48

Deployment Encompasses three actions: packaging, release, and

evaluation Deployment happens not once, but a number of times as

the WebApp moves toward completion Can be accomplished in a very fine-grained manner (not

always advisable) by releasing new components from the staging server to the production server after the individual components have been tested

Each package-release cycle provides end users with an operational WebApp increment that provides usable functions and features.

Each evaluation cycle provides the WebApp team with important guidance that results in modifications to the content, functions, features, and approach taken for the next increment.

Page 49: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 49

Deployment Principles Principle 1: Customer expectations for the

WebApp increment must be managed. Principle 2: A complete delivery package should

be assembled and tested. Principle 3: A support regime must be

established before the WebApp is delivered. Principle 4: Buggy WebApps should be fixed

first, delivered later (except where being first really is more important than the

possibility of adverse customer reactions)!

Page 50: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 50

Testing WebApps Testing is the process of exercising a

WebApp with the intent of finding (and ultimately correcting) errors.

Tests must be designed to uncover errors in WebApps that are implemented in: different operating systems browsers [or other interface devices such as set-

top boxes, personal digital assistants (PDAs), and mobile phones]

hardware platforms communications protocols “backroom” applications

Page 51: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 51

The “Dimensions” of Quality - I

Reviews and testing examine one or more of the following quality dimensions: Content is evaluated at both a syntactic and semantic

level. Function is tested to uncover errors that indicate lack of

conformance to stakeholder requirements. Each WebApp function is assessed for correctness, instability, and general conformance to appropriate implementation standards (e.g., Java or XML language standards).

Structure is assessed to ensure that it properly delivers WebApp content and function, is extensible, and can be supported as new content or functionality is added.

Page 52: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 52

The “Dimensions” of Quality - II

Usability is tested to ensure that each category of user is supported by the interface and can learn and apply all required navigation syntax and semantics.

Navigability is tested to ensure that all navigation syntax and semantics are exercised to uncover any navigation errors (e.g., dead links, improper links, erroneous links).

Performance is tested under a variety of operating conditions, configurations, and loading to ensure that the system is responsive to user interaction and handles extreme loading without unacceptable operational degradation.

Compatibility is tested by executing the WebApp in a variety of different host configurations on both the client and server sides. The intent is to find errors that are specific to a unique host configuration.

Interoperability is tested to ensure that the WebApp properly interfaces with other applications and/or databases.

Security is tested by assessing potential vulnerabilities and attempting to exploit each. Any successful penetration attempt is deemed a security failure.

Page 53: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 53

Testing Strategy-I1. The content model for the WebApp is reviewed to

uncover errors.

2. The interface model is reviewed to ensure that all use cases have been accommodated.

3. The design model for the WebApp is reviewed to uncover navigation errors.

4. The user interface is tested to uncover errors in presentation and/or navigation mechanics.

5. Selected functional components are unit tested.

Page 54: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 54

Testing Strategy - II6. Navigation throughout the architecture is tested. 7. The WebApp is implemented in a variety of

different environmental configurations and is tested for compatibility with each configuration.

8. Security tests are conducted in an attempt to exploit vulnerabilities in the WebApp or within its environment.

9. Performance tests are conducted.10. The WebApp is tested by a controlled and

monitored population of end users. The results of their interaction with the system are evaluated for content and navigation errors, usability concerns, compatibility concerns, and WebApp reliability and performance.

Page 55: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 55

The Testing Process

Page 56: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 56

Content Testing Content testing combines both reviews and the generation

of executable test cases. Reviews are applied to uncover semantic errors in content. Executable testing is used to uncover content errors that can

be traced to dynamically derived content that is driven by data acquired from one or more databases.

Content testing has three important objectives: to uncover syntactic errors (e.g., typos, grammar mistakes) in

text-based documents, graphical representations, and other media,

to uncover semantic errors (i.e., errors in the accuracy or completeness of information) in any content object presented as navigation occurs, and

to find errors in the organization or structure of content that is presented to the end user.

Page 57: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 57

Content Testing - Checklist

Is the information up to date and factually accurate? Is the information concise and to the point? Is the layout of the content object easy for the user to understand? Can information embedded within a content object be found

easily? Have proper references been provided for all information derived

from other sources? Is the information presented consistent internally and consistent

with information presented in other content objects? Can the content be interpreted as being offensive or misleading, or

does it open the door to litigation? Does the content infringe on existing copyrights or trademarks? Does the content contain internal links that supplement existing

content? Are the links correct? Does the aesthetic style of the content conflict with the aesthetic

style of the interface?

Page 58: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 58

User Interface Testing Verification and validation of a WebApp user interface

occurs at three distinct points in the WebE process. During communication and modeling the interface model

is reviewed to ensure that it conforms to customer requirements and to other elements of the analysis model.

During design, the interface design model is reviewed to ensure that generic quality criteria established for all user interfaces have been achieved and that application-specific interface design issues have been properly addressed.

During testing, the focus shifts to the execution of application-specific aspects of user interaction as they are manifested by interface syntax and semantics. In addition, testing provides a final assessment of usability.

Page 59: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 59

UI Testing Strategy Interface features are tested to ensure that design

rules, aesthetics, and related visual content are available to the user without error.

Individual interface mechanisms are tested in a manner that is analogous to unit testing.

Each interface mechanism is tested within the context of a use case or navigation pathway for a specific user category.

The complete interface is tested against selected use cases and navigation pathways to uncover errors in the semantics of the interface.

The interface is tested within a variety of environments (e.g., operating systems, browsers) to ensure that it will be compatible.

Page 60: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 60

UI: Testing specific elements - I

When a user interacts with a WebApp, the interaction occurs through one or more interface mechanisms. Each mechanism must be tested:

• Links. Navigation mechanisms that link the user to some other content object or function.

• Forms. A structured document containing blank fields that are filled in by the user.

• Client-side scripting. A list of programmed commands in a scripting language (e.g., JavaScript) that handle information input via forms or other user interactions.

• Dynamic HTML. Provides access to content objects that are manipulated on the client side using scripting or cascading style sheets (CSSs).

• Client-side pop-up windows. Small windows that pop up without user interaction.

• Server-side scripts. Black-box tests are conducted with an emphasis on data integrity and script processing once validated data has been received. In addition, performance testing can be conducted.

Page 61: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 61

UI: Testing specific elements - II

When a user interacts with a WebApp, the interaction occurs through one or more interface mechanisms. Each mechanism must be tested:

• Streaming and push content. Streaming content is encountered when material (usually audio or video) is downloaded in a manner that allows it to be displayed while it is still being downloaded (rather than having to wait for the entire content to be downloaded). Push content is encountered when content objects are downloaded automatically from the server side rather than waiting for a request from the client side. Both streaming and push content present testing challenges.

• Cookies. A block of data sent by the server and stored by a browser as a consequence of a specific user interaction. The content of the data is WebApp-specific (e.g., user identification data or a list of items that have been selected for purchase by the user).

• Application-specific interface mechanisms. Include one or more “macro” interface mechanisms such as a shopping cart, credit card processing, or a shipping cost calculator.

Page 62: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 62

Usability Testing Similar to interface semantics testing in the

sense that it evaluates: the degree to which users can interact effectively

with the WebApp the degree to which the WebApp guides users’

actions, provides meaningful feedback and enforces a consistent interaction approach.

Determines the degree to which the WebApp interface makes the user’s life easy

Page 63: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 63

Usability Test Categories

Interactivity. Are interaction mechanisms (e.g., pull-down menus, buttons, pointers) easy to understand and use?

Layout. Are navigation mechanisms, content, and functions placed in a manner that allows the user to find them quickly?

Readability. Is text well written and understandable? Are graphic representations intuitive and easy to understand?

Aesthetics. Do the layout, color, typeface, and related characteristics lead to ease of use? Do users “feel comfortable” with the look and feel of the WebApp?

Display characteristics. Does the WebApp make optimal use of screen size and resolution?

Time sensitivity. Can important features, functions, and content be used or acquired in a timely manner?

Personalization. Does the WebApp appropriately tailor itself to the specific needs of different user categories or individual users?

Page 64: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 64

Usability Evaluation: Checklist

Is the system usable without continual help or instruction? Do the rules of interaction help a knowledgeable user to

work efficiently? Do interaction mechanisms become more flexible as users

become more knowledgeable? Has the system been tuned to the physical and social

environment in which it will be used? Are users aware of the state of the system? Do users know

where they are at all times? Is the interface structured in a logical and consistent

manner? Are interaction mechanisms, icons, and procedures

consistent across the interface? Does the interaction anticipate errors and help the user

correct them? Is the interface tolerant of errors that are made? Is the interaction simple?

Page 65: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 65

Qualitative Assessment

Page 66: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 66

Compatability Testing WebApps operate in complex (and often

unpredictable) environments• Different browsers, screen resolutions, operating

systems, plug-ins, access bandwidths, etc. Serious errors can be caused by obscure

combinations Most common problem is deterioration in

usability:• Download speeds may become unacceptable• Missing plug-ins may make content unavailable• Browser differences can change page layout or

legibility• Forms may be improperly organized.

Compatibility testing strives to uncover these problems before the WebApp goes online.

• First step is to define a set of “commonly encountered” client-side configurations and their variants.

• Next, derive a series of compatibility validation tests (from existing interface tests, navigation tests, performance tests, and security tests).

Page 67: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 67

Component-Level Testing Component-level testing, also called function

testing, focuses on a set of tests that attempt to uncover errors in WebApp functions

Applies the following test-case design methods: Equivalence partitioning Boundary value analysis Path testing

Page 68: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 68

Selecting Components to Test

Which functionality in the Web site is most critical to its purpose?

Which areas of the site require the heaviest database interaction?

Which aspects of the site’s CGI, applets, ActiveX components, and so on are most complex?

What types of problems would cause the most complaints or the worst publicity?

What areas of the site will be the most popular? What aspects of the site have the highest security

risks?

Page 69: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 69

Navigation Testing Each of the following navigation mechanisms should be

tested: Navigation links. These mechanisms include internal links within the

WebApp, external links to other WebApps, and anchors within a specific Web page.

Redirects. These links come into play when a user requests a nonexistent URL or selects a link whose destination has been removed or whose name has changed.

Bookmarks. Although bookmarks are a browser function, the WebApp should be tested to ensure that a meaningful page title can be extracted as the bookmark is created and that dynamic pages are bookmarked appropriately.

Frames and framesets. Each frame contains the content of a specific Web page; a frameset contains multiple frames and enables the display of multiple Web pages at the same time.

Site maps. A site map provides a complete table of contents for all Web pages.

Internal search engines. An internal (local) search engine allows the user to perform a key word search within the WebApp to find needed content.

Page 70: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 70

Navigation Semantics As navigation design creates navigation structures that

collaborate to fulfill some subset of user requirements These are sometimes referred to as navigation

semantic units (NSUs) defined by a set of navigation paths (called “ways of

navigating”) that connect navigation nodes (e.g., Web pages, content

objects, or functionality). Taken as a whole, each NSU allows a user to achieve

specific requirements defined by one or more use cases for a user category.

Navigation testing exercises each NSU to ensure that these requirements can be achieved.

Page 71: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 71

Navigation Semantic Testing - I

Is the NSU achieved in its entirety without error? Is every navigation node (a destination defined for an NSU)

reachable within the context of the navigation paths defined for the NSU?

If the NSU can be achieved using more than one navigation path, has every relevant path been tested?

If guidance is provided by the user interface to assist in navigation, are directions correct and understandable as navigation proceeds?

Is there a mechanism (other than the browser back arrow) for returning to the preceding navigation node and to the beginning of the navigation path?

Do mechanisms for navigation within a large navigation node (e.g., anchor point links for a long Web page) work properly?

If a function is to be executed at a node and the user chooses not to provide input, can the remainder of the NSU be completed?

Page 72: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 72

Navigation Semantic Testing - II

If a function is executed at a node and an error in function processing occurs, can the NSU be completed?

Is there a way to discontinue the navigation before all nodes have been reached, but then return to where the navigation was discontinued and proceed from there?

Is every node reachable from the site map? Are node names meaningful to end users?

If a node within an NSU is reached from some external source, is it possible to process to the next node on the navigation path? Is it possible to return to the previous node on the navigation path?

Do users understand their location within the content architecture as the NSU is executed?

Page 73: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 73

Configuration Testing Configuration variability and instability are

important factors that make Web engineering a challenge.

• Hardware, operating system(s), browsers, storage capacity, network communication speeds, and a variety of other client-side factors are difficult to predict for each user.

The job of configuration testing is to test a set of probable client-side and server-side configurations to ensure that the user experience will be the same on all of them and to isolate errors that may be specific to a particular configuration.

Page 74: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 74

Configuration Testing Strategy

Server-side. configuration test cases are designed to verify that the projected server configuration [i.e., WebApp server, database server, operating system(s), firewall software, concurrent applications] can support the WebApp without error.

Client-side. On the client side, configuration tests focus more heavily on WebApp compatibility with configurations that contain one or more permutations of the following components:

Hardware. CPU, memory, storage, and printing devices Operating systems. Linux, Macintosh OS, Microsoft Windows, a mobile-

based OS Browser software. FireFox,Camino, Internet Explorer, Safari,

Mozilla/Netscape, Opera, and others User interface components. Active X, Java applets, and others Plug-ins. QuickTime, RealPlayer, and many others Connectivity. Cable, DSL, regular modem, industry-grade connectivity

(e.g., T1 lines)

Page 75: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 75

Security and Performance Testing

Security and performance testing address the three distinct elements of the WebApp infrastructure

the server-side environment that provides the gateway to Internet users

the network communication pathway between the server and the client machine

the client-side environment that provides the end user with a direct interface to the WebApp.

Security testing focuses on unauthorized access to WebApp content and functionality along with other systems that cooperate with the WebApp on the server side.

Performance testing focuses on the operating characteristics of the WebApp and on whether those operating characteristics meet the needs of end users.

Page 76: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 76

Security Testing One or more of the following security elements is

implemented: Firewalls. A filtering mechanism that is a combination of

hardware and software that examines each incoming packet of information to ensure that it is coming from a legitimate source, blocking any data that are suspect.

Authentication. A verification mechanism that validates the identity of all clients and servers, allowing communication to occur only when both sides are verified.

Encryption. An encoding mechanism that protects sensitive data by modifying it in a way that makes it impossible to read by those with malicious intent. Encryption is strengthened by using digital certificates that allow the client to verify the destination to which the data are transmitted.

Authorization. A filtering mechanism that allows access to the client or server environment only by those individuals with appropriate authorization codes (e.g., user ID and password).

Security tests should be designed to probe each of these security technologies in an effort to uncover security holes that can be exploited by those with malicious intent.

Page 77: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 77

Performance Testing Objectives:

• Does the server response time degrade to a point where it is noticeable and unacceptable?

• At what point (in terms of users, transactions, or data loading) does performance become unacceptable?

• What system components are responsible for performance degradation?• What is the average response time for users under a variety of loading

conditions?• Does performance degradation have an impact on system security?• Is WebApp reliability or accuracy affected as the load on the system grows?• What happens when loads that are greater than maximum server capacity are

applied?• What is the impact of poor performance on company revenues?

Load testing determines how the WebApp and its server-side environment will respond to various loading conditions.

Stress testing is a continuation of load testing, but in this instance the variables, N, T, and D are forced to meet and then exceed operational limits.

Page 78: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 78

Change/Content Management Change management procedures and a content

management system work in conjunction with one another to help ensure that

all requested changes to WebApp content and functionality are managed in a way that does not disrupt the Web engineering process or corrupt the quality of the WebApp itself, and

all WebApp content is properly collected, structured, and presented to the end user who requests it.

Change management: ensures that changes are made correctly, recorded for future reference, and do not conflict with other changes that have already been made.

Content management: collects, manages, and publishes all content that is seen by each end-user category, including content (and functions) that have undergone change.

Page 79: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 79

Changes A description that explains the nature of the change

from the point of view of the stakeholder(s) affected by the change

An impact that describes how the change will manifest itself externally (what end users will see) and how it will affect the internal content and functionality of the WebApp

A target that defines the specific WebApp objects (both content and functionality) that will be changed

An implementation pathway that describes the technical aspects of how the change will be made

A history that records when the change was requested, assessed, and implemented and what WebApp content and functionality was affected

Page 80: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 80

Content Management

Page 81: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 81

CMS Repository

Page 82: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 82

Future Directions Where is the Web going? How will users interact with a “new” Web, and how will this interaction change our lives, our work, and our world view?

How will Web engineers respond to future Web directions, and what tools and technology will be available to help them?

Page 83: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 83

The Future Change has begun to occur at an exponential rate

and we’re at the knee of the exponential curve. Get ready for an exciting ride! Things to watch:

Web 2.0 Blogs and wikis Mash-ups Ajax Syndication (RSS) Web services Semantic Web Applications The “real-time” Web

Page 84: Ja ss tutorial español

An Introduction to Web EngineeringCopyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 84

Additional Information One of the first books on Web Engineering: Pressman R.S. and D. Lowe, Web Engineering, McGraw-Hill, 2009 (available now)

Links to many Web Engineering resources can be found at: www.rspa.com/spi

This presentation can be downloaded from:• www.rspa.com/download/JaSSTutorial.ppt