SlideShare a Scribd company logo
1 of 84
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




An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   1
​
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.
  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com             2
Pero Qué ?
      A medida que las WebApps son má grandes y
                                     s
       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

  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com           3
Y Cuá es la Respuesta?
    l


    La Ingeniería Web




  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   4
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


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com      5
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.



 An Introduction to Web Engineering
 Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   6
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




  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   7
Qué es un Proceso Á
                  gil?
      La ingeniería web á combina una filosofía y un
                         gil
       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 á destaca su entrega a travé s de aná
                    gil                                  lisis
       y diseñ o (aunque estas actividades no son
       fomentadas), y la comunicació n activa y continua entre
       los desarrolladores y los clientes.


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com     8
¿Qué es un Framework WebE?
      Un framework es conjunto de actividades que siempre
       se llevará a cabo para todos los proyectos de
                n
       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"
  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   9
Un Framework Gené rico




 An Introduction to Web Engineering
 Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   10
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.
         An Introduction to Web Engineering
         Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   11
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


    An Introduction to Web Engineering
    Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   12
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.
  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com      13
El Proceso de WebE
      El proceso debe ser á y adaptable, pero
                            gil
       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!


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   14
WebE Process Activities & Actions




  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   15
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




  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   16
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
  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   17
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ú de metas y objetivos para la creació n de
                       n
       cada incremento aplicació n web
      identifica el alcance del esfuerzo de desarrollo y
       proporciona un medio para determinar un resultado exitoso




  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com         18
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.
  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com         19
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.




  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com                            20
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.

  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com       21
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 á para la
                           gil
       planificació n
      Adaptar el esfuerzo y el tiempo
       dedicado a la planificació n de la
       complejidad de la aplicació n web
       incremento
  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   22
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

  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   23
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
  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   24
Pair Walkthrough
par 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.


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com           25
Change Management
Gestió n del Cambio




  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   26
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
  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   27
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

  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com              28
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.

  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   29
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


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com                     30
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.


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   31
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


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com     32
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

  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   33
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.

  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com               34
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


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   35
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.


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com            36
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


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   37
Design Actions




  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   38
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.

  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com          39
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.
      An Introduction to Web Engineering
      Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com              40
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



  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   41
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
  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   42
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.


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   43
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



  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com            44
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.




  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com                 45
Construction and Deployment




  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   46
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.


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   47
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.

 An Introduction to Web Engineering
 Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com         48
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)!


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com            49
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

  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com     50
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.




  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com             51
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.




   An Introduction to Web Engineering
   Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com                       52
Testing Strategy-I
  1. 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.




  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   53
Testing Strategy - II
  6. 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.
  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   54
The Testing Process




  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   55
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.



  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com                     56
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?


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com                57
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.

  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com                58
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.
  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com      59
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.

   An Introduction to Web Engineering
   Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com                           60
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.


   An Introduction to Web Engineering
   Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com                        61
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


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com     62
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?


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com            63
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?
  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com         64
Qualitative Assessment




   An Introduction to Web Engineering
   Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   65
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).




  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com                      66
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




  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   67
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?


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   68
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.
  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com                        69
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.


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com        70
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?


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com                  71
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?


  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   72
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.
  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com            73
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)




  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com                                   74
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.



   An Introduction to Web Engineering
   Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com                  75
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.
  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com                    76
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.



  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com                                    77
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.

  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com            78
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


 An Introduction to Web Engineering
 Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com              79
Content Management




 An Introduction to Web Engineering
 Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   80
CMS Repository




  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   81
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?




  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com   82
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



  An Introduction to Web Engineering
  Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com     83
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




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

More Related Content

Viewers also liked

Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
arienneya
 
Lego mindstorms manual de usuario nxt 2.0
Lego mindstorms manual de usuario nxt 2.0Lego mindstorms manual de usuario nxt 2.0
Lego mindstorms manual de usuario nxt 2.0
Nico Fonseca
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
Mirsha01
 

Viewers also liked (20)

QUÉ ES MySQL
QUÉ ES MySQLQUÉ ES MySQL
QUÉ ES MySQL
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Robotc guia
Robotc guiaRobotc guia
Robotc guia
 
GUÍA DE CONSTRUCCIÓN LEGO MINSTORM 9797
GUÍA DE CONSTRUCCIÓN LEGO MINSTORM 9797GUÍA DE CONSTRUCCIÓN LEGO MINSTORM 9797
GUÍA DE CONSTRUCCIÓN LEGO MINSTORM 9797
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Ingeniería web
Ingeniería webIngeniería web
Ingeniería web
 
Ingeniería web
Ingeniería webIngeniería web
Ingeniería web
 
Transferencia de bases de datos entre sistemas gestores
Transferencia de bases de datos entre sistemas gestoresTransferencia de bases de datos entre sistemas gestores
Transferencia de bases de datos entre sistemas gestores
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Guia de robotica
Guia de roboticaGuia de robotica
Guia de robotica
 
INGENIERIA WEB
INGENIERIA WEBINGENIERIA WEB
INGENIERIA WEB
 
0102 introducción-e_ingeniería_web
0102  introducción-e_ingeniería_web0102  introducción-e_ingeniería_web
0102 introducción-e_ingeniería_web
 
Pressman y sommerville, GUI
Pressman y sommerville, GUIPressman y sommerville, GUI
Pressman y sommerville, GUI
 
Lego mindstorms manual de usuario nxt 2.0
Lego mindstorms manual de usuario nxt 2.0Lego mindstorms manual de usuario nxt 2.0
Lego mindstorms manual de usuario nxt 2.0
 
Presentacion curso ingenieria web ing. aldo zanabria
Presentacion curso ingenieria web   ing. aldo zanabriaPresentacion curso ingenieria web   ing. aldo zanabria
Presentacion curso ingenieria web ing. aldo zanabria
 
My sql para principiantes
My sql para principiantesMy sql para principiantes
My sql para principiantes
 
Ingenieria Web
Ingenieria WebIngenieria Web
Ingenieria Web
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Creación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchCreación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbench
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 

Similar to Ja ss tutorial español

DanBowersResume Updated Office
DanBowersResume Updated OfficeDanBowersResume Updated Office
DanBowersResume Updated Office
Dan Bowers
 
Resume for Ladan Jamali
Resume for Ladan JamaliResume for Ladan Jamali
Resume for Ladan Jamali
Ladan Jamali
 

Similar to Ja ss tutorial español (20)

Web Engineering
Web EngineeringWeb Engineering
Web Engineering
 
Introduction to Web Frameworks
Introduction to Web FrameworksIntroduction to Web Frameworks
Introduction to Web Frameworks
 
8 years of experience in .Net web technologies
8 years of experience in .Net web technologies8 years of experience in .Net web technologies
8 years of experience in .Net web technologies
 
Resume Partha Roy
Resume Partha RoyResume Partha Roy
Resume Partha Roy
 
Full Stack Web Development Basics to Know.pdf
Full Stack Web Development Basics to Know.pdfFull Stack Web Development Basics to Know.pdf
Full Stack Web Development Basics to Know.pdf
 
About Deepra
About DeepraAbout Deepra
About Deepra
 
The Ultimate Guide to Modern Web App Development.ppt
The Ultimate Guide to Modern Web App Development.pptThe Ultimate Guide to Modern Web App Development.ppt
The Ultimate Guide to Modern Web App Development.ppt
 
Perficient PepsiCo Rich Internet Apps Seminar
Perficient PepsiCo Rich Internet Apps SeminarPerficient PepsiCo Rich Internet Apps Seminar
Perficient PepsiCo Rich Internet Apps Seminar
 
Web engineering cse ru
Web engineering cse ruWeb engineering cse ru
Web engineering cse ru
 
Building a Strong Online Presence: The Essentials of Full Web Development
Building a Strong Online Presence: The Essentials of Full Web DevelopmentBuilding a Strong Online Presence: The Essentials of Full Web Development
Building a Strong Online Presence: The Essentials of Full Web Development
 
Cake Php Consultant
Cake Php ConsultantCake Php Consultant
Cake Php Consultant
 
Continuous Integration and Orchestration: Putting the AppDev in DevOps
Continuous Integration and Orchestration: Putting the AppDev in DevOpsContinuous Integration and Orchestration: Putting the AppDev in DevOps
Continuous Integration and Orchestration: Putting the AppDev in DevOps
 
Top Benefits Of Using Popular Web Development Frameworks.pdf
Top Benefits Of Using Popular Web Development Frameworks.pdfTop Benefits Of Using Popular Web Development Frameworks.pdf
Top Benefits Of Using Popular Web Development Frameworks.pdf
 
Learn Web Development Online: Best Courses for Beginners
Learn Web Development Online: Best Courses for BeginnersLearn Web Development Online: Best Courses for Beginners
Learn Web Development Online: Best Courses for Beginners
 
R-Style Lab Web Development Portfolio
R-Style Lab Web Development PortfolioR-Style Lab Web Development Portfolio
R-Style Lab Web Development Portfolio
 
Slides chapter 16
Slides chapter 16Slides chapter 16
Slides chapter 16
 
DanBowersResume Updated Office
DanBowersResume Updated OfficeDanBowersResume Updated Office
DanBowersResume Updated Office
 
Tech Stack & Web App Development For Startups
Tech Stack & Web App Development For StartupsTech Stack & Web App Development For Startups
Tech Stack & Web App Development For Startups
 
.Net @ Neev
.Net @ Neev.Net @ Neev
.Net @ Neev
 
Resume for Ladan Jamali
Resume for Ladan JamaliResume for Ladan Jamali
Resume for Ladan Jamali
 

Ja ss tutorial español

  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 1
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 2
  • 3. Pero Qué ?  A medida que las WebApps son má grandes y s 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 3
  • 4. Y Cuá es la Respuesta? l La Ingeniería Web An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 4
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 5
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 6
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 7
  • 8. Qué es un Proceso Á gil?  La ingeniería web á combina una filosofía y un gil 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 á destaca su entrega a travé s de aná gil lisis y diseñ o (aunque estas actividades no son fomentadas), y la comunicació n activa y continua entre los desarrolladores y los clientes. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 8
  • 9. ¿Qué es un Framework WebE?  Un framework es conjunto de actividades que siempre se llevará a cabo para todos los proyectos de n 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" An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 9
  • 10. Un Framework Gené rico An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 10
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 11
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 12
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 13
  • 14. El Proceso de WebE  El proceso debe ser á y adaptable, pero gil 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! An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 14
  • 15. WebE Process Activities & Actions An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 15
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 16
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 17
  • 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ú de metas y objetivos para la creació n de n cada incremento aplicació n web  identifica el alcance del esfuerzo de desarrollo y proporciona un medio para determinar un resultado exitoso An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 18
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 19
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 20
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 21
  • 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 á para la gil planificació n  Adaptar el esfuerzo y el tiempo dedicado a la planificació n de la complejidad de la aplicació n web incremento An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 22
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 23
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 24
  • 25. Pair Walkthrough par 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 25
  • 26. Change Management Gestió n del Cambio An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 26
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 27
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 28
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 29
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 30
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 31
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 32
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 33
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 34
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 35
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 36
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 37
  • 38. Design Actions An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 38
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 39
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 40
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 41
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 42
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 43
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 44
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 45
  • 46. Construction and Deployment An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 46
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 47
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 48
  • 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)! An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 49
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 50
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 51
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 52
  • 53. Testing Strategy-I 1. 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 53
  • 54. Testing Strategy - II 6. 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 54
  • 55. The Testing Process An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 55
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 56
  • 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? An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 57
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 58
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 59
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 60
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 61
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 62
  • 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? An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 63
  • 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? An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 64
  • 65. Qualitative Assessment An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 65
  • 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). An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 66
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 67
  • 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? An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 68
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 69
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 70
  • 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? An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 71
  • 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? An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 72
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 73
  • 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) An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 74
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 75
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 76
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 77
  • 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. An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 78
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 79
  • 80. Content Management An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 80
  • 81. CMS Repository An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 81
  • 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? An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 82
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 83
  • 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 An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 84