web engrg session 2-1

Upload: sean-gregory-cordero

Post on 09-Apr-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Web Engrg Session 2-1

    1/71

    WEB

    ENGINEERING

    Part II

  • 8/8/2019 Web Engrg Session 2-1

    2/71

    What is Web Engineering?

    Discussed Last Session:

  • 8/8/2019 Web Engrg Session 2-1

    3/71

    Web System Team.Graphic Designers (look and feel)People with library science background

    Database designers (optimum way to store the

    information that is to be accessed through the

    web system)programmers (develop the code)

    network security experts (security aspects)computer experts (hardware architecture based

    on performance requirements)Web architects (overall architecture for the Web

    system that shows how individual parts are puttogether to create the web system), and;people who has the knowledge to plan a web

    development project and manage it

  • 8/8/2019 Web Engrg Session 2-1

    4/71

    The primary causes of Web-systems failures are

    a flawed design and development process, andpoor management of development efforts.

    The way we address these concerns is critical to

    realizing the Webs full potential.

  • 8/8/2019 Web Engrg Session 2-1

    5/71

    The American Heritage Dictionary of the

    English Language, (Third Edition) defines

    engineering as:

    The application of scientific and mathematicalprinciples to practical ends such as the design,

    manufacture, and operation of efficient and

    economical structures, machines, processes,

    and systems.

  • 8/8/2019 Web Engrg Session 2-1

    6/71

    The researchers who first proposed the need for an

    Engineering approach for developing large complex

    web systems defined Web Engineering as follows.

    Web Engineeringdeals with the establishmentand use of sound scientific, engineering and

    management principles, disciplined and

    systematic approaches to the successful

    development, deployment and maintenance of high

    quality Web-based systems and applications.

  • 8/8/2019 Web Engrg Session 2-1

    7/71

    Do we need an Engineering

    Approach to developing largecomplex Web Systems?

  • 8/8/2019 Web Engrg Session 2-1

    8/71

    Development of large-scale software in the early

    70s:

    Lack of suitable process models andapplication architectures gave rise to a software

    crisis.

  • 8/8/2019 Web Engrg Session 2-1

    9/71

    Web Engineering is very similar to SoftwareEngineering?!

    There are many similarities between Software

    Engineering and Web Engineering; but we also

    have to acknowledge the differences.

  • 8/8/2019 Web Engrg Session 2-1

    10/71

    The two key attributes of Web systems that distinguish their

    development from traditional software development are:

    growth of requirements

    continual change of information content.

    scalable and maintainable: These features cant be added

    later.

  • 8/8/2019 Web Engrg Session 2-1

    11/71

    What knowledge constitute WebEngineering?

  • 8/8/2019 Web Engrg Session 2-1

    12/71

    Web System Development Maturity Model

  • 8/8/2019 Web Engrg Session 2-1

    13/71

    WEB SYSTEM DESIGN

  • 8/8/2019 Web Engrg Session 2-1

    14/71

    Building and deploying a Web system is a multi-step

    process, in which many steps influence one another

    and are iterative.

    Most Web systems are bound to continuously evolve

    and change, to meet the changing/growing needs ofthe organization.

    Development requires knowledge and expertise from

    many different disciplines.

  • 8/8/2019 Web Engrg Session 2-1

    15/71

    We need a sound process for building Websystems that:

    Assists us in capturing the changing requirements and

    managing the complexity of the development process,

    Assists in the integration of the know-how from variousdisciplines,

    Facilitates the communication among various members

    involved in the development process the development

    team, stakeholders and end-users -, and

    Supports the continuous evolution and maintenance and

    management of the content.

  • 8/8/2019 Web Engrg Session 2-1

    16/71

    Deployment of Web systems in their intended

    operational environment.One can develop a technically best Web site, but if

    it is not properly used for various reasons, it is a

    major failure.

    Web system have a front end and a back end.Front end is for the public to access

    information about the organization.

    Back end is for employees of the organizationto manage and up-date the information in the

    Web system.

  • 8/8/2019 Web Engrg Session 2-1

    17/71

    Web information or electronic-business (e-business)

    system in an organization causes a paradigm shift and

    can significantly impact on the work and the way various

    business processes are carried out.Internal users of the system must be retrained to

    enhance their understanding and use of Web and

    web-related technologies and to successfully cope

    with the transition.Other factors, including reengineering of business

    processes, organizational policy, changes to recruitment

    and human resources policies in an organization alsocontribute to successful deployment and use of the Web

    systems.

  • 8/8/2019 Web Engrg Session 2-1

    18/71

    Seven Essential Steps for Successful Web System

    Development

    1. Understanding the overall function and operational

    environment of the systems including the

    corporate/business objectives and requirements and clearly

    identifying the stakeholders.

    2. Identifying and specifying both technical and non-

    technical requirements of the stakeholders and the

    overall system.

    3. Developing an appropriate architecture for the Web-based system that meets those requirements.

  • 8/8/2019 Web Engrg Session 2-1

    19/71

    Seven Essential Steps for Successful Web System

    Development (cont.)

    4. Satisfactorily addressing the non-technical issues, such

    as revised/updated business processes, organizational and

    management policies, human resources development, and

    legal, cultural and social aspects.

    5. Identifying sub-projects or sub-processes to implement

    the architecture.

    6. Developing and implementing the sub-projects.

    7. Incorporating appropriate and effective mechanisms to

    manage the evolution and change/maintenance.

    .

  • 8/8/2019 Web Engrg Session 2-1

    20/71

    WEB PROJECT PLANNING

    AND MANAGEMENT

  • 8/8/2019 Web Engrg Session 2-1

    21/71

    Figure 2: Development Process for Web Systems

    Context

    Analysis

    Process

    Model

    Product

    Model

    Sub Project Plans

    Web Site / Environment

    Development

    Web Site / Environment

    Maintenance

    QualityContro

    l&Assurance

    Documentation

    ProjectMa

    nagement

  • 8/8/2019 Web Engrg Session 2-1

    22/71

    Context Analysis

    The first essential step in developing a Web system

    is context analysis.

    Understand the major objectives and corporate

    requirements of the system, gather informationabout the operational/application environment and

    identify the stakeholders. Based on these needs, decide on both the

    technical and non-technical requirements

    Broader requirements (such as what thesystem should do), and, Specific requirements (such as security,

    access control and performance).

  • 8/8/2019 Web Engrg Session 2-1

    23/71

    Within the broader context:

    Developers have to understand the specific needs associated

    with scalability, maintainability, availability andperformance of the system.

    Example:

    If the information content and the functions of the system aregoing to evolve considerably: It must be scalable.

    If the information on the Web site changes frequently: Must

    facilitate easy maintainability of information.

    If it is critical to ensure very high availability and catering for

    very high peak or uncertain demand: Web site to run on

    multiple servers with load balancing and other performance

    enhancement mechanisms.

  • 8/8/2019 Web Engrg Session 2-1

    24/71

    The features such as design for scalability,

    maintainability and performance need to be built

    into the initial system architecture, as it is

    impossible or very hard to add these features ifthe initial architecture does not support it.

  • 8/8/2019 Web Engrg Session 2-1

    25/71

    Example:

    An E-business Web site that gives product information.

    Information about a product (color, price and availability)may appear on many different pages and this information

    can change frequently.

    If this Web site was designed as static HTML (hypertext

    mark-up language) pages, then every time the productinformation changes one has to change each and every

    page that contains this information.

    If the information about a product is stored in a central

    database and the various web pages that contain this

    information is dynamically created by extracting the relevant

    information from this database, then we only need to

    change information in one place to keep the Web site

    current.

  • 8/8/2019 Web Engrg Session 2-1

    26/71

    Context Analysis:

    Identify the broader requirements such as purpose of

    the Web site as well as specific requirements such as

    maintainability, scalability, performance, quality control

    mechanism for information that will be placed on theWeb site and security.

    Provides us with sufficient information to decide on the

    broader architecture or Product Model of the system.

  • 8/8/2019 Web Engrg Session 2-1

    27/71

    Figure 2: Development Process for Web Systems

    Context

    Analysis

    Process

    Model

    Product

    Model

    Sub Project Plans

    Web Site / Environment

    Development

    Web Site / Environment

    Maintenance

    QualityContro

    l&Assurance

    Documentation

    ProjectMa

    nagement

  • 8/8/2019 Web Engrg Session 2-1

    28/71

    Product Model

    Shows how various components are linked

    together to meet those requirements. Should include the overall

    1. physical system architecture (the network andthe various servers - web servers, application

    servers, database servers, etc),

    2. application architecture (a map of the various

    information modules and the functions

    available) and the

    3. software architecture (various software anddatabase modules required to implement the

    application architecture).

  • 8/8/2019 Web Engrg Session 2-1

    29/71

    Appropriate system architecture is very

    important especially if performance andsecurity of the Web system are critical

    factors.

  • 8/8/2019 Web Engrg Session 2-1

    30/71

    Example:

    Web site for 1998 Olympic Winter Games in Nagano,

    Japan meeting the performance requirement was acritical factor.

    Hence, a network and server architecture that includes

    redundant hardware, load balancing, Web server

    acceleration, and efficient management of dynamicdata was designed and implemented.

    If the performance and security is not a critical issue,

    one can use a standard server architecture connected

    to the Internet, without the need for special design

    effort.

  • 8/8/2019 Web Engrg Session 2-1

    31/71

    The application architecture, also called as product

    model, shows a map of various information and

    functional modules.

    Examples of functional modules are a login page,

    shopping trolley, etc. that will capture user input and

    process it.

  • 8/8/2019 Web Engrg Session 2-1

    32/71

  • 8/8/2019 Web Engrg Session 2-1

    33/71

    Application architecture of the ABC Internet College

    Personalized Tutoring system

  • 8/8/2019 Web Engrg Session 2-1

    34/71

    Software Architecture

  • 8/8/2019 Web Engrg Session 2-1

    35/71

    Means of Fulfilling the Requirements

    Requirement Means of Fulfillment

    Corporate look and feel thatcan be changed Create pages using templates

    Ensure informationconsistency

    Information should be stored in a single place (ina database or an XML

    file) without duplication of information.

    Need for information updateand maintenance

    Provide a back-end system to edit information indata repository

    Ability to easily add newpages

    Navigation links need to be dynamicallygenerated

    Decentralized administration Provide a multiuser login system to access back-

    end. Needs a user management system, andability to assign specific functions and data setsto content managers

    Quality control mechanism forinformation

    Web robot module and metadata standard forWeb pages.

  • 8/8/2019 Web Engrg Session 2-1

    36/71

    Figure 2: Development Process for Web Systems

    Context

    Analysis

    ProcessModel

    ProductModel

    Sub Project Plans

    Web Site / Environment

    Development

    Web Site / Environment

    Maintenance

    QualityContro

    l&Assurance

    Docume

    ntation

    ProjectMa

    nagement

  • 8/8/2019 Web Engrg Session 2-1

    37/71

    Process Model

    The implementation of the system based on the product model,

    calls for a set of activities, which include a detailed analysis of

    requirements, design, testing and deployment. We also need to

    carry out a set of activities to address the non-technical issues

    identified in context analysis.

    A process model specifies a set of sub-projects or sub-processes

    that need to be carried out to develop and implement the overall

    system.

    Example: the development of the front-end web site

    and the back-end web site can be considered as two sub projects.

    This enables parallel development reducing the over all

    development time.

  • 8/8/2019 Web Engrg Session 2-1

    38/71

    In a large, complex Web application development, the persons

    who develop the content generally come from journalism,

    library science, marketing or public relations background.

    The people who develop the screen layout come from a visual

    arts and graphic design background. The software developers

    come from computing, software and IT background.

    Thus it is important to make sure that the various

    processes enable these three groups to work andcommunicate effectively.

  • 8/8/2019 Web Engrg Session 2-1

    39/71

    Figure 2: Development Process for Web Systems

    Context

    Analysis

    ProcessModel

    ProductModel

    Sub Project Plans

    Web Site / Environment

    Development

    Web Site / Environment

    Maintenance

    QualityContro

    l&Assurance

    Docume

    ntation

    ProjectMa

    nagement

  • 8/8/2019 Web Engrg Session 2-1

    40/71

    Sub Project Planning

    The next phase is to develop a project plan for each of the sub

    projects identified in the process model. Project plans should listthe tasks that need to be done, a timeline and the resource

    requirements. Based on the project plan, development activities

    can take place.

    Know the following:

    1] tasks required to carry out; 2] people with what type of skills

    are required to carry out these tasks; and, 3] the time estimates.

    Often the development of front-end Web site and the back-end

    web site are done as two sub projects. The coupling of the front-

    end web site and the back-end web site will be via the datarepository. In order to properly plan the development of these

    Web sites one should know how to develop Web sites.

  • 8/8/2019 Web Engrg Session 2-1

    41/71

    Figure 2: Development Process for Web Systems

    Context

    Analysis

    ProcessModel

    ProductModel

    Sub Project Plans

    Web Site / Environment

    Development

    Web Site / Environment

    Maintenance

    QualityContro

    l&Assurance

    Docume

    ntation

    ProjectMa

    nagement

  • 8/8/2019 Web Engrg Session 2-1

    42/71

    Web Site Development

    Most Web site development consists of designing the web

    site and constructing the web site to deliver the content

    and the required functionality.

    Early Web development activities were mainly focused on

    development of content, its presentation and navigation.

    Now, with the growing number of Web based business

    applications, there is a need to provide customized

    information to users and also to get various information

    from the users and process them.

  • 8/8/2019 Web Engrg Session 2-1

    43/71

    Experts have developed and refined a two-stage

    approach to web site development; designing the

    web site and construction of the web site (Figure 5).

    This approach decouples the creative design phase

    often done by Graphic designers from construction

    phase which is often done by software developers. As

    often, content developers and software developers

    come from different backgrounds, this de-coupling isvery advantageous.

  • 8/8/2019 Web Engrg Session 2-1

    44/71

    Figure 5:Two-stage approach to Design and

    Construction of Web Sites

  • 8/8/2019 Web Engrg Session 2-1

    45/71

    Web Site Design

    The web site design process starts with a detailed analysis of

    requirements and development of appropriate specification.

    A prototype is constructed from the design which usually

    contains a set of sample pages that can be used for

    evaluating the screen layout and navigation among differentpages. Based on the feedback, either the design or the

    specifications can get changed.

    One can iterate through this process until stakeholders are

    happy with the screen layout and the navigation structure.

    The creative part of this process is the design. Figure 6 shows

    various inputs to the design process and the typical outcomes

    from this process.

  • 8/8/2019 Web Engrg Session 2-1

    46/71

    Figure 6: Web Site Design Process

  • 8/8/2019 Web Engrg Session 2-1

    47/71

    Once we develop a structure for organizing the

    information, we have to decide on navigation

    mechanisms that need to be provided to access thiscontent. Access to information can be provided by

    hyperlinks or search facility.

  • 8/8/2019 Web Engrg Session 2-1

    48/71

    Based on the information structure, we need to

    develop sample Web pages to display each type of

    information.

    Example: If the application is a product catalogue, we

    need to develop the Homepage and a sample page for

    each product type. These sample pages will act as

    templates for creating other product pages which will be

    done by application software in response to a user requestwhen web site is operational.

    We can use tools such as Dreamweaver or any CMS for

    developing these sample pages and the prototype Web

    site.

    By developing a prototype web site based on sample

    pages we can test the proposed navigation mechanisms

    for its ease of use and other features.

  • 8/8/2019 Web Engrg Session 2-1

    49/71

    If new content needs to be developed, it is better to comeup with guidelines to assist the content development

    process as part of the design process.

    If content is drawn from a legacy system we need to develop a

    process to convert the legacy information to the requiredstructure and format.

    The output of the design process and the original

    specifications that were developed at the start of the Web

    site development process will form the input to the nextstage the web site construction process.

  • 8/8/2019 Web Engrg Session 2-1

    50/71

    Web Site Construction

    Now, almost every Web server provides a suitable interface to

    communicate and to make use of external software modules.

    Common Gateway Interface (CGI) was one of the early

    standards that was adopted for communication between theweb server and the external software modules.

    Today, there are various implementations of this concept in the

    form of Application Program Interfaces (API) such as ISAPI

    used by the Microsoft IIS Web server.

  • 8/8/2019 Web Engrg Session 2-1

    51/71

    Except for simple systems that are based on HTML

    pages, every other system makes use of external

    software modules to provide the interactivity andcustomization of information provided to the user.

    A simple example is processing the information a user

    submits via a form. These software modules specifically

    developed for these applications are known asapplication software.

  • 8/8/2019 Web Engrg Session 2-1

    52/71

    Use of application software enables us to develop

    maintainable and scalable Web sites, in addition to

    making the Web site interactive.

    The basic principle of building a maintainable web site is

    not to store data that is going to change with time at

    multiple locations.

  • 8/8/2019 Web Engrg Session 2-1

    53/71

    We can further enhance the maintainability by developing a

    back-end Web site that will enable authorized people (based on

    a user ID and a password) to make these changes through a setof forms.

    This type of approach will enable us to have a decentralized

    maintenance approach where different people can have

    responsibility for maintaining different information on the WebSite.

  • 8/8/2019 Web Engrg Session 2-1

    54/71

    To facilitate scalability, a Web system needs to be built

    using a component- based architecture and the

    navigational links and buttons need to be dynamicallycreated.

    Use of component-based architecture enables us to

    easily add new functions or information modules, by

    simply adding these functions as new components.

  • 8/8/2019 Web Engrg Session 2-1

    55/71

    Figure 2: Development Process for Web Systems

    Context

    Analysis

    ProcessModel

    ProductModel

    Sub Project Plans

    Web Site / Environment

    Development

    Web Site / Environment

    Maintenance

    QualityControl&Assurance

    Docume

    ntation

    ProjectManagement

  • 8/8/2019 Web Engrg Session 2-1

    56/71

    Web Site Maintenance

    Once the Web site is developed and commissioned, we enter

    then into the maintenance phase. There are three major

    types of maintenance:

    Content maintenance

    Software maintenance, and

    Hardware and network maintenance.

    The decision on how the content will be maintained is takenat the context analysis stage. Thus what is required at the

    maintenance phase is to implement the appropriate content

    maintenance procedures.

  • 8/8/2019 Web Engrg Session 2-1

    57/71

    The software maintenance can be sub-divided into four

    categories: corrective, preventive, perfective and adaptive

    maintenance.

    Often, when the system is in operation, various bugs in

    software can surface. Thus we need to implement a set of

    procedures to correct these bugs and document the

    changes that were made. This is known as corrective

    maintenance.

    Also, we invariably come across errors or omissions in

    software, especially in the business logic before a problem

    occurs. Rectifying these is preventive maintenance.

    Though the system may be functioning flawlessly, we may

    come up with a better way to implement a function, and the

    process of carrying out this modification is known as

    perfective maintenance.

  • 8/8/2019 Web Engrg Session 2-1

    58/71

    Also, from time to time, the requirements can change

    marginally such as how the commission or tax is calculated.

    Thus we need to carry out adaptive maintenance to adapt the

    system for new business rules.

    It is useful to break the software maintenance activities into

    these four categories, as this will enable us to prioritize the

    activities.

  • 8/8/2019 Web Engrg Session 2-1

    59/71

    We also need to periodically maintain the hardware and

    the network, and fix the failures as and when theysurface.

  • 8/8/2019 Web Engrg Session 2-1

    60/71

    Figure 2: Development Process for Web Systems

    Context

    Analysis

    ProcessModel

    ProductModel

    Sub Project Plans

    Web Site / Environment

    Development

    Web Site / Environment

    Maintenance

    QualityControl&Assurance

    Docume

    ntation

    ProjectManagement

  • 8/8/2019 Web Engrg Session 2-1

    61/71

    Project Management, Documentation

    and, Quality Control and Assurance

    These functions are spread throughout the lifecycle of the

    system.

    There are well-established methodologies and

    techniques to perform these tasks. Proven techniques

    used in systems engineering can be used with minor

    changes for development of large and complex web sites.

  • 8/8/2019 Web Engrg Session 2-1

    62/71

    PROSPECTS OF WEB ENGINEERING

    As we improve our ability to build Web systems, the

    systems we need to build are likely to get more

    complex.

    The quality requirements and features of these systems

    may also change, with more emphasis on performance,

    correctness and availability of Web systems, as we will

    increasingly dependent on Web systems in a number of

    critical applications, where the consequences and

    impact of errors and failures could be serious.

  • 8/8/2019 Web Engrg Session 2-1

    63/71

    Further, as systems become larger, a large team of people

    with different types and levels of skills would be required,

    necessitating distributed collaborative development.

    As we try to exploit some of the yet unrealized potentials of

    the Internet and Web, there will be many new challenges

    and problems, and hopefully new approaches and

    directions would be developed to meet the challenges and

    solve the problems we may face on our mission to build a

    better cyberspace for us.

  • 8/8/2019 Web Engrg Session 2-1

    64/71

    Like the Web, which is dynamic and open, Web

    engineering needs to evolve rapidly, adapting to the

    changes and responding to the newer needs.

    Successfully convincing developers of Web applications

    about the need for and the benefits of Web engineering

    approaches, which if implemented thoughtfully, will go a

    long way to reduce the complexity and lead to

    successful development.

  • 8/8/2019 Web Engrg Session 2-1

    65/71

    Web Engineering

    Tools

  • 8/8/2019 Web Engrg Session 2-1

    66/71

    Web Engineering Tools

    Web Servers APACHE: http://www.apache.orgMicrosoft IIS: http://www.microsoft.com

    Image Maps

    MapEdit: http://www.boutell.com/mapedit/

    MapThis:http://www.abdn.ac.uk/tools/ibmpc/mapthis/

  • 8/8/2019 Web Engrg Session 2-1

    67/71

    Menu/Button/Effects Magic Buttons: http://www.pagetutor.com/ JavaScript Maker: http://www.byte-sizesoftware.com/jsc.htm

    Applet Glide Navigation Pro:http://www.usingit.com/products/java/applet/agnpro/index.html

    Apycom Menu Applets: http://www.apycom.com/apmenu/

    Java Tools Javalyzer Java Disassembler:

    http://www.bold.net.au/~ianduff/

    Web Engineering Tools

  • 8/8/2019 Web Engrg Session 2-1

    68/71

    Graphics Ulead JavaRazor interactive graphics:

    http://www.ulead.com/jr/runme.htm

    CrossArtist dynamic digital content:http://www.crossartist.com/

    ConeGen VRML2 cone generator:http://www.stack.nl/~vincentn/ConeGen/index.html

    StyleSheet Tools xStyle: http: http://www.greenmojo.com/ CSS Style Generator: http://www.10002.org/Download

    Web Engineering Tools

  • 8/8/2019 Web Engrg Session 2-1

    69/71

    CGI Tools CGI Programming Tools:http://www.cgiexpert.com/CGI Mail Form generator:

    http://www.lss.com.au/lss/windows/mf/mf_ins.htm

    Visual Perl Editor:http://www.xarka.com/vpe.html

    Web Engineering Tools

  • 8/8/2019 Web Engrg Session 2-1

    70/71

    Scripting Tools Nathan Leveck's HTML Parser: http://nl-html-

    parser.sourceforge.net/

    PHP - Hypertext Preprocessor:http://www.php.net/ PHP Introduction:

    http://www.zend.com/zend/art/intro.php COLDFUSION ColdFusion Server - ColdFusion

    Studio: http://www.allaire.com

    Microsoft Active Server Pages:http://csbs.utsa.edu/users/gjeffery2/doit/

    Web Engineering Tools

  • 8/8/2019 Web Engrg Session 2-1

    71/71

    E-Commerce Tools Gamma GenCat: http://www.gamma-

    burst.com/gencat/index.html Auto Search Submitter: http://download.snoop.dk/freew.html

    Gate Keeper Security: http://www.pagetutor.com/

    Miscellaneous AnalogX CGISearch search authoring:

    http://www.analogx.com/ Hot Potatoes multiple choice question writer:

    http://web.uvic.ca/hrd/halfbaked/ http://www.winfiles.com http://www.download.com http://www.cookiecentral.com

    Web Engineering Tools