71
CHAPTER I INTRODUCTION 1.1 Web Engineering The World Wide Web (www) has become a major delivery platform for a variety of complex and sophisticated enterprise applications in several domains. In addition to their inherent multifaceted functionality, these Web Applications (WebApp) exhibit complex behavior and place some unique demands on their usability, performance, security and ability to grow and evolve. However, a vast majority of these applications continue to be developed in an ad-hoc way, contributing to problems of usability, maintainability, quality and reliability. While Web development can benefit from established practices from other related disciplines, it has certain distinguishing characteristics that demand special considerations. In the recent years, there have been some developments towards addressing these problems and requirements. As an emerging discipline, Web engineering actively promotes systematic, disciplined and quantifiable approaches towards successful development of high-quality, ubiquitously usable Web-based systems and applications. In particular, Web engineering focuses on the methodologies, techniques and tools that are the 1

Uncovertebral joint injury in cervical facet dislocation: the headphones sign

Embed Size (px)

Citation preview

CHAPTER I

INTRODUCTION

1.1 Web Engineering

The World Wide Web (www) has become a major delivery

platform for a variety of complex and sophisticated

enterprise applications in several domains. In addition

to their inherent multifaceted functionality, these Web

Applications (WebApp) exhibit complex behavior and place

some unique demands on their usability, performance,

security and ability to grow and evolve.

However, a vast majority of these applications

continue to be developed in an ad-hoc way, contributing

to problems of usability, maintainability, quality and

reliability. While Web development can benefit from

established practices from other related disciplines, it

has certain distinguishing characteristics that demand

special considerations.

In the recent years, there have been some

developments towards addressing these problems and

requirements. As an emerging discipline, Web engineering

actively promotes systematic, disciplined and

quantifiable approaches towards successful development of

high-quality, ubiquitously usable Web-based systems and

applications.

In particular, Web engineering focuses on the

methodologies, techniques and tools that are the

1

foundation of WebApp development and which support their

design, development, evolution, and evaluation. WebApp

development has certain characteristics that make it

different from traditional software, information system,

or computer application development.

Web engineering is neither a clone, nor a subset of

software engineering, although both involve programming

and software development. While Web Engineering uses

software engineering principles, it encompasses new

approaches, methodologies, tools, techniques, and

guidelines to meet the unique requirements of Web-based

applications.

1.2 Motivation

Although the development of web application may seem

easy, it is often more complex and challenging than many

of us think. In many ways, it is also different and more

complex than traditional software development [6]. Two

key attributes distinguish Web-based systems development

from traditional software development: rapid growth of

the requirements of Web-based systems needs to be

designed and built for scalability and maintainability;

these features can't be added later. Success in building,

implementing, and maintaining a Web-based system largely

depends on how well we address these issues.

2

In addition, a Web-based system must meet the needs

of its many different stakeholders. The stakeholders are

the diverse range of the system's users, persons who

maintain the system, the organization that needs the

system, and also those who fund the system development.

These needs add to the complexity of Web-based system

design and development. Furthermore, development of Web-

based systems calls for people with knowledge and

expertise in many different areas.

Many organizations and developers have successfully

developed large high-performance Web-sites and

applications, but others have failed or face the

potential for major failures. A recent survey on Web-

based application development by the Cutter Consortium

highlighted the problems plaguing large Web-based

projects. Those problems are:

1. Delivered systems didn't meet business needs 84% of

the time.

2. Delivered systems didn't have the required

functionality 53% of the time.

3. Schedule delays plagued the projects 79% of the

time.

4. Projects exceeded the budget 63% of the time.

The emerging Web engineering discipline deals with

the process of developing Web-based systems and

applications. The essence of Web engineering is to

successfully manage the diversity and complexity of

WebApp development and hence avoid potential failures,

3

which can have serious implications. It is a proactive

approach to building WebApps.

Web application quality, reliability and

functionality are important factors because software

glitches could block entire businesses and determine

strong embarrassments. These factors have increased to

motivate the need for methodologies, tools and models to

improve WebApps [6, 7].

1.3 Objectives of the Thesis

Based on the background theory, the higher quality

the WebApp requires the more attention to the web

engineering process and methodology should be given. So,

it is worthy of research in the sense of how to improve

WebApps by using web engineering techniques to the better

way.

Web applications have become complex and crucial for

many firms. Web engineering is a methodology which can

help companies to create successful web information

systems and actively promotes systematic, disciplined and

quantifiable approaches towards the development of high-

quality, ubiquitously usable web-based systems and

applications.

The purpose of this document is to provide a precise

and clear guide for the methodology and the development

model based on Web engineering concepts and principles.

As a knowledge source this documentation capture and

present the procedure of developing e-business

4

application by using the powerful PHP web scripting

language, the stable Apache web server, and the fast

MySQL database server.

1.4 Contributions of the Thesis

Web engineering is multidisciplinary and encompasses

contributions from diverse areas: systems analysis and

design, software engineering, hypermedia/hypertext

engineering, requirements engineering, human-computer

interaction, user interface, information engineering,

information indexing and retrieval, testing, modeling and

simulation, project management, and graphic design and

presentation.

This thesis intended to contribute a process and a

systematic approach to development of high quality Web-

based systems. It also promotes the establishment and use

of sound scientific, engineering and management

principles, and disciplined and systematic approaches to

development, deployment and maintenance of Web-based

systems.

As web applications became increasingly integrated

in business strategies for small and large companies

(e.g. E-commerce), the need to develop reliable, usable

and adaptable systems grows in importance. So, this

thesis contributes to many business people to build the

e-commerce applications smoothly.

5

1.5 Organization of the Thesis

Organization of the thesis is important. The thesis is

easy to read and understand with the systematical

structure. This thesis tries to give readers an easily-

navigate view. The research about web engineering

techniques through a case study on web applications is

organized as follows:

The chapter 2 reviews the literatures concerning of the

research topic: web engineering process, methods and

development. Through the literature review, the addressed

methodologies are analyzed and applied to WebApps.

The chapter 3 further broadens the web engineering

methodologies and web development process. All the

related contents of the web techniques are explored to

key areas and the activities.

The chapter 4 describes the detailed analysis modeling

and program implementation of e-commerce application.

The chapter 5 discusses the conclusion and results for

this research.

6

CHAPTER II

LITERATURE REVIEW

2.1 Evolutionary Web Application Development

Web Applications are evolutionary. For many WebApps,

it's not possible to specify fully what they should or

will contain at the start of their development, because

their structure and functionality will evolve over time.

Hence, Web-based system development isn't a one-time

event, as currently perceived and practiced by many Web

developers; it is, instead, an interactive process with a

long lifecycle.

As web engineers now place greater emphasis on the

performance, correctness, and availability of Web-based

systems, the development process assumes greater

significance. A sound process is a prerequisite for

success, especially when a distributed team of people

with different types and levels of skills and expertise

work together to develop large WebApps.

Web development, therefore, should be considered as

a process consisting of many phases, steps, and

7

activities. The Web development process breaks the Web

development efforts into manageable chunks and offers

techniques to help developers successfully manage and

complete Web projects. A sound process helps developers

address the complexities of Web-based systems, minimizes

the development risks, deals with the likelihood of

change, delivers the WebApps on time, and provides

feedback for management on project progress.

To be effective, the development process should be

planned well and clearly define a set of steps that

developers can follow. Furthermore, it should be

measurable and trackable. The process should also

facilitate the WebApp's continual refinement and

evolution based on feedback from users and clients. Such

processes and methodologies have been applied in a number

of successful WebApps, including those of the ABC

Internet College, University of Western Sydney, 2000

Sydney Olympics, 1998 Nagano Winter Olympics, and Vienna

International Festival.

2.2 Perspectives for Web Engineering

Web engineering is more complex than traditional

Information System (IS) engineering in that it raises

many new issues such as presentation issues, user

8

profiling, navigation support, etc. Developing e-business

systems is also a complicated task. It involves many

different disciplines and requires knowledge of e-

business technologies as well as business processes.

This section addresses some of the most fundamental

themes of Web Engineering and in the same time it tries

to explain the significance and the usefulness of Web

Engineering from the e-Commerce viewpoint.

In most cases, development of Web-based systems has

been ad hoc, lacking systematic approach, quality control

and assurance procedures. Hence, there is now legitimate

and growing concern about the manner in which Web-based

systems are developed and their quality and integrity.

Web Engineering, an emerging new discipline, advocates a

process and a systematic approach to development of high

quality Web-based systems. It promotes the establishment

and use of sound scientific, engineering and management

principles, and disciplined and systematic approaches to

development, deployment and maintenance of Web-based

systems. An e-Commerce system is a case where we can

apply the Web Engineering discipline. E-Commerce systems

are mainly Web-based systems, thus the processed and the

systematic approaches described within the Web

Engineering framework can be applied in the development

of a Web-based e-Commerce system.

9

CHAPTER III

WEB ENGINEERING METHODOLOGIES AND DEVELOPMENT

3.1 Web Applications and Application Domain

A web application is a software system based on

technologies and standards of the World Wide Web

Consortium (W3C) that provides Web specific resources

such as content and services through a user interface,

the Web browser.

The categorization of the various types of WebApps

assists in estimating their level of complexity and the

development effort required. Dart (1999) provides the

following most common application categories reported in

the Web engineering literature [9]:

1. Informational – Read-only content with navigation

and links.

2. Download – Information available for downloading by

the user.

10

3. Customizable – Content can be customized based on

user needs.

4. Interaction – Communication among users via chat

rooms, bulletin boards, or instant messaging.

5. User input – Communication via online forms.

6. Transaction oriented – Order processing (products

and services).

7. Service oriented – The application provides an

online service (e.g. estimating a mortgage payment).

8. Portal – A starting point that channels the user to

other WebApps outside the domain of the portal

application.

9. Database access – Querying a database and retrieving

information.

3.2 Attributes of Web-Based Systems and Applications

In the early days of the World Wide Web “Websites”

consisted of little more than a set of linked hypertext

files that presented information using text and limited

graphics.

Today, WebApps have evolved into sophisticated

computing tools that not only provide standalone function

to the end-user, but also have been integrated with

corporate databases and business applications.

There is little debate that WebApps are different

than the many other categories of computer software.

Powell summarizes the primary differences when he states

11

that Web-based systems “involve a mixture between print

publishing and software development, between marketing

and computing, between internal communications and

external relations, and between art and technology.”

The following attributes are encountered in the vast

majority of WebApps.

1. Network intensiveness. A WebApp resides on a network and

must serve the needs of a diverse community of

clients. A WebApp may reside on the Internet.

Alternatively, an application may be placed on an

Intranet or an Extranet.

2. Concurrency. A large number of users may access the

WebApp at one time. In many cases, the patterns of

usage among end-users will vary greatly.

3. Unpredictable load. The number of users of the WebApp

may vary by orders of magnitude from day to day. 100

users may show up on Monday; 10,000 may use the

system on Thursday.

4. Performance. If a WebApp user must wait too long (for

access, for server-side processing, for client-side

formatting and display), he or she may decide to go

elsewhere.

5. Availability. Although expectation of 100 percent

availability is unreasonable, users of popular

WebApps often demand access on a “24/7/364” basis.

6. Data driven. The primary function of many WebApps is to

use hypermedia to present text, graphics, audio, and

video content to the end-user. In addition, WebApps

12

are commonly used to access information that exists

on databases that were not originally an integral

part of the Web-based environment (e.g. e-commerce

or financial applications).

7. Content sensitive. The quality and aesthetic nature of

content remains an important determinant of the

quality of a WebApp.

8. Continuous evolution. Unlike conventional application

software that evolves over a series of planned,

chronologically spaced releases, WebApps evolve

continuously. It is not unusual for some WebApps

(specifically, their content) to be updated on a

minute-by-minute schedule or for content to be

independently computed for each request.

9. Immediacy. Although immediacy-the compelling need to

get software to market quickly-is a characteristic

of many application domains, WebApps often exhibit a

time to market that can be a matter of a few days or

weeks. Web engineering must use methods for

planning, analysis, design, implementation, and

testing that have been adapted to the compressed

time schedules required for a WebApp development.

10. Security. Because WebApps are available via

network access, it is difficult, if not impossible,

to limit the population of end-users who may access

the application. In order to protect sensitive-

content and provide secure modes of data

transmission, strong security measures must be

13

implemented throughout the infrastructure that

supports a WebApp and within the application itself.

11. Aesthetics. An undeniable part of the appeal of a

WebApp is its look and feel. When an application has

been designed to market or sell product or ideas,

aesthetics may have as much to do with success as

technical design.

These general attributes apply to all WebApps, but with

different degrees of influence [9].

3.3 Steps to Successful Development

Building and deploying a Web-based system involves

multiple steps. These steps influence one another and are

iterative. We recommend the following 10 key steps for

successful development and deployment of WebApps [7]:

1. Understand the system's overall function and

operational environment, including the business

objectives and requirements.

2. Clearly identify the stakeholder_ that is, the

system's main users, the organization that needs the

system, and who funds the development.

3. Specify the (initial) functional, technical, and

nontechnical requirements of the stakeholders and

the overall system. Furthermore, recognize that they

may not remain the same; rather, they are bound to

change and evolve over time during system

development and also at each iteration/revision.

14

4. Develop an overall architecture of the Web-based

system that meets the technical and nontechnical

requirements.

5. Identify subprojects or sub processes to implement

the architecture. If the subprojects are too complex

to manage, further divide them until they become a

set of manageable tasks.

6. Develop and implement the subprojects.

7. Incorporate effective mechanism to manage the Web

system's evolution, change, and maintenance. As the

system evolves, repeat the overall process, or some

parts of it, as required.

8. Address the nontechnical issues, such as revised

business processes, organizational and management

policies, human resources development, and legal,

cultural, and social aspects.

9. Measure the system's performance.

10. Refine and update the system.

3.4 Web Engineering Methods

The development of Web-based systems and

applications incorporates specialized process models,

software engineering methods adapted to the

characteristics of WebApp development, and a set of

important enabling technologies. Process, methods, and

technologies (tools) provide a layered approach to Web

15

Engineering that is conceptually identical to the

software engineering layers.

A basic demand of any website is that its WebApp

must work in the sense that it must be possible to use

the website for its intended purpose – this is addressed

by research into Web engineering methods, models and

tools.

The Web engineering methods landscape encompasses a

set of technical tasks that enable a Web engineer to

understand, characterize, and then build a high-quality

WebApp. Web engineering methods can be categorized in the

following manner:

1. Communication methods define the approach used to

facilitate communication between Web engineers and

all other WebApp stakeholders (e.g., end-users,

business clients, problem domain experts, content

designers, team leaders, project managers).

Communication techniques are particularly important

during requirements gathering and whenever a WebApp

increment is to be evaluated.

2. Requirements analysis methods provide a basis for

understanding the content to be delivered by a

WebApp, the function to be provided for the end-

user, and the modes of interaction that each class

of user will require as navigation through the

WebApp occurs.

3. Design methods encompass a series of design techniques

that address WebApp content, application and

16

information architecture, interface design, and

navigation structure.

4. Testing methods incorporate formal technical reviews of

both the content and design models and a wide array

of testing techniques that address component level

and architectural issues, navigation testing,

usability testing, security testing, and

configuration testing.

The mechanics of analysis, design, and testing must

be adapted to accommodate the special characteristics of

WebApps.

In addition to the technical methods that have just

been outlined, a series of umbrella activities (with

associated methods) are essential for successful Web

engineering. These include project management techniques

(e.g. estimation scheduling, risk analysis) software

configuration management techniques, and review

techniques [9].

3.5 Web Engineering Process

The web engineering process models embrace the agile

development philosophy. Agile development emphasizes a

lean development approach that incorporates rapid

development cycles.

Even when rapid cycle times dominate development

thinking, it is important to recognize that the problem

must still be analyzed, a design should be developed,

17

implementation should proceed in an incremental fashion,

and an organized testing approach must be initiated.

However, these framework activities must be defined

within a process that (1) embrace change, (2) encourages

the creativity and independence of development staff and

strong interaction with WebApp stakeholders, (3) builds

systems using small development teams, and (4) emphasizes

evolutionary or incremental development using short

development cycles.

The attributes of Web-based systems and applications

have a profound influence on the WebE process that is

chosen. A software engineer chooses a process model based

on the attributes of the software that is to be

developed. The same holds true for a Web engineer.

If immediacy and continuous evolution are primary

attributes of a WebApp, a Web engineering team might

chose an agile process model that produces WebApp

releases in rapid-fire sequence. If WebApp is developed

over a longer time period e.g., a major e-commerce

application, an incremental process model might be

chosen.

The network intensive nature of applications in this

domain suggests a population of users that is diverse

(thereby making special demands on requirements

elicitation and modeling) and an application architecture

that can be highly specialized (thereby making demands on

design). Because WebApps are often content-driven with an

emphasis on aesthetics, it is likely that parallel

18

development activities will be scheduled within the Web

engineering process and involve a team of both technical

and non-technical people (e.g., copywriters, graphic

designers) [9].

3.5.1 Defining the Framework

Any one of the agile process models (e.g., Extreme

Programming, Adaptive Software Development, SCRUM) can be

applied successfully as a Web engineering process.

To be effective, any engineering process must be

adaptable. That is, the organization of the project team,

the modes of communication among team members, the

engineering activities and tasks to be performed, the

information that is collected and created, and the

methods used to produce a high-quality product must all

be adapted to the people doing the work, the project

timeline and constraints, and the problem to be solved.

Before defining a process framework for Web engineering,

the following must be recognized:

1. WebApps are often delivered incrementally. That is, framework

activities will occur repeatedly as each increment

is engineered and delivered.

2. Changes will occur frequently. These changes may occur as a

result of the evaluation of a delivered increment or

as a consequence of changing business conditions.

3. Timelines are short. This mitigates against the creation

and review of voluminous engineering documentation,

19

but it does not preclude the simple reality that

critical analysis, design, and testing must be

recorded in some manner.

The web engineering process within the generic

process framework:

1. Customer communication. Within the WebE process,

customer communication is characterized by two major

tasks: business analysis and formulation. Business

analysis defines the business/organizational context

for the WebApp. In addition, stakeholders are

identified, potential changes in business

environment or requirements are predicted, and

integration between the WebApp and other business

applications, databases, and functions is defined.

Formulation is a requirements gathering activity

involving all stakeholders. The intent is to

describe the problem that the WebApp is to solve

using the best information available. In addition,

an attempt is made to identify areas of uncertainty

and where potential changes will occur.

2. Planning. The project plan for the WebApp increment is

created. The plan consists of a task definition and

a timeline schedule for the time period projected

for the development of the WebApp increment.

3. Modeling. Conventional software engineering analysis

and design tasks are adapted to WebApp development,

merged, and then melded into the WebE modeling

activity. The intent is to develop rapid analysis

20

and design models that define requirements and at

the same time represent a WebApp that will satisfy

them.

4. Construction.WebE tools and technology are applied to

construct the WebApp that has been modeled. Once the

WebApp increment has been constructed, a series of

rapid tests are conducted to ensure that errors in

design (i.e., content architecture, interface,

navigation) are uncovered. Additional testing

addresses other WebApp characteristics.

5. Deployment. The WebApp is configured for its

operational environment, delivered to end-users, and

then an evaluation period commence. Evaluation

feedback is presented to the WebE team, and the

increment is modified as required.

Figure: 3.1. Web Engineering Process

3.5.2 Refining the Framework

21

Web engineering process model must be adaptable.

That is, a definition of the engineering tasks required

to refine each framework activity is left to the

discretion of the Web engineering team. In some cases, a

framework activity is conducted informally. In others, a

series of distinct tasks will be defined and conducted by

team-members. In every case, the team has responsibility

for producing a high-quality WebApp increment within the

time period allocated.

It is important to emphasize that tasks associated

with Web engineering framework activities may be

modified, eliminated, or extended based on the

characteristics of the problem, the product, the project,

and the people on the Web engineering team [9].

3.6 Formulating Web-Based Systems

Formulation of Web-based systems and applications

represents a sequence of Web engineering actions that

begins with the identification of business needs, moves

into a description of WebApp objectives, defines major

features and functions, and performs requirements

gathering that leads to the development of an analysis

model. Formulation allows stakeholders and the Web

engineering team to establish a common set of goals and

objectives for the construction of the WebApp. It also

identifies the scope of the development effort and

provides a means for determining a successful outcome.

22

Analysis is a technical activity that is a continuation of

formulation- identifies the data, functional, and

behavioural requirements for the WebApp.

Before considering formulation in more detail, it is

reasonable to ask where formulaion stops and requirements

analysis begins. There is no easy answer to this

question. Formulation focuses on the “big picture”- on

business needs and objectives and related information.

However, it is virtually impossible to maintain this

level of abstraction. Stakeholders and Web engineers want

to define required content, discuss specific

functionality, enumerate specific features, and identify

the manner in which end-users will interact with the

WebApp.

Although the requirements gathering activity for Web

engineering may be abbreviated, the overall requirements

gathering objectives proposed for software engineering

remain unchanged. Adapted for WebApps, these objectives

become:

Identify content requirements.

Identify functional requirements.

Define interaction scenarios for different

classes of users.

The following requirements gathering steps are

conducted to achieve these objectives:

1. Ask stakeholders to define user categories and

develop descriptions for each category.

23

2. Communicate with stakeholders to define basic WebApp

requirements.

3. Analyze information gathered and use information to

follow-up with stakeholders.

4. Define use-cases that describe interaction scenarios

for each user class.

3.7 Web Development Process

Based on the practical experience in building

successful WebApps, the development process are

recommended shown in Figure 3.2. This process assists in

capturing the requirements, enables integration of know-

how from different disciplines, facilitates communication

among various members involved in the development

process, supports continuous evolution and maintenance,

facilitates management of the information content, and

assists in successfully managing the complexity of the

development process.

24

Figure: 3.2. Development Process for Web-based Systems

3.7.1 Context Analysis

The first essential step in developing a Web-based

system is context analysis. In this step, we elicit and

understand the system's major objectives and

requirements, gather information about the operational

and application environment, and identify the system's

primary stakeholders. In addition to the functional

requirements, the system's requirements for scalability,

maintainability, availability, and performance need to be

specifically elicited and understood by the developers at

the beginning of the development process. Based on this

information, the system's technical and nontechnical

25

Qual

ity Co

ntro

l and

Assu

rance

requirements, which, in turn, influence the system

design.

For instance, if the information content and the

system's functions are going to evolve considerably, as

in e-business systems, the system needs to be designed for

scalability. On the other hand, if the information

changes frequently- as in online electronic product

catalogs, product price lists, brochures, and daily news

columns- the system must be designed for easy information

maintainability in order to keep the information current

and consistent. Where an application demands very high

peak or uncertain demands, the system may need to run on

multiple Web servers with load balancing and other

performance enhancement mechanisms [2, 8]. Examples of

this category of application are online stock trading,

online banking, and highly accessed sports and

entertainment Websites, such as those for the Olympics,

Wimbledon, and the Oscars.

Thus, it is very important to recognize that

scalability, maintainability, and/or performance need to

be built into the initial system architecture. It would

be very hard, or even impossible, to add these features

if the initial architecture is not designed to support

them. To illustrate this, consider an e-business Web site that

provides product information, such as color, price, and

availability that appears on many different pages and may

change frequently. If the Web site is designed as static

HTML pages, then every time a product's information

26

changes, someone has to incorporate the change in every

page that contains this information. This is a cumbersome

and laborious task, and often changes may be made only on

a few pages, not on all of them. As a consequence of

this, information appearing on different pages will be

inconsistent.

A better approach to ensure consistency of

information across all Web pages is to automatically

retrieve the information, when and where needed, from a

single information source. If product information is

stored in a single central database, then by extracting

the relevant information from this database, web

engineers can dynamically create various Web pages that

contain this information. In the database-driven

approach, they need to change the information only in one

place- the database. Further, the database-driven Web

sites can have a back-end system that allows an

authorized person, who need not be skilled in Web page

development, to make information changes easily through a

Web interface, from anywhere. Such a Web site requires a

completely different architecture than a Web site that

has only static HTML pages. Hence, an appropriate

architecture needs to be chosen early in system

development.

Thus, the context analysis assists us in capturing

and deriving key information required developing a

WebApp. In addition, it can also identify nontechnical

issues and needs that have to be addressed for successful

27

implementation and application of the system. These may

include reengineering of business processes where

required, organizational and management policies, staff

training, and legal, cultural and social issues.

Context analysis can minimize or even eliminate the

major problems plaguing large Web-based system

development, such as delivered systems that don't meet

business needs and don't have the required functionality.

But many developers and project managers overlook this

essential first step in Web system development and hence

face the problems later, when it is hard to correct them.

3.7.2 Product Model

A product model of the system describes various

components of the system and how they are linked. The

following three types of architectures constitute the

product model:

1. An overall system architecture describing how the network

and the various servers such Web servers,

application servers, and database servers interact

2. An application architecture depicting various information

modules and the functions available

3. A software architecture identifying various software and

database modules required to implement the

application architecture

28

A suitable product model for an application is

developed based on the system's requirements derived from

the context analysis.

3.7.3 System, Application and Software Architecture

Development of appropriate system architecture is

important, especially if high performance and/or high

security of the Web-based system are critical needs. For

applications such as those used for the 1998 Nagano

Winter Olympic Games and the 2000 Sydney Olympic Games,

high performance and high availability were primary

requirements. Hence, design of these system's network and

server architecture incorporated redundant hardware and

advanced features such as load balancing, Web server

acceleration, and efficient management of dynamic data to

boost the performance [8]. Where performance and security

are not critical requirements, a standard Web server is

adequate.

The application architecture shows us a map of various

information and functional modules. An information module

may provide the same information to all the users or

provide customized or personalized information to each

user. Functional modules- such as login pages,

registration pages, Web forms for data collection, and

the shopping carts used in e-commerce systems- collect and

process the user's input.

29

The application architecture is then mapped into a

software architecture, displaying various software and

database modules required to provide the required

functionality, shown in Figure 3.3. Specific requirements

for look and feel, consistency of information,

scalability, maintainability, and quality control

mechanisms determine the software architecture.

3.7.4 Process Model

A process model specifies the activities that need

to be carried out to develop and implement the system.

The activities include detailed analysis of requirements,

design, testing, and deployment. To better manage a large

project, each major activity may, however, be divided

into a set of subprojects. In addition, the process model

should also include activities that address the

nontechnical issues identified in the context analysis.

A Web-based application consists of: (1) information

content, and (2) software required to deliver the

content, to assist in maintenance and quality assurance

of the content, and to provide various interactive

capabilities. Hence, we need a process to develop the

information structure, information content, screen lathe

user, and navigation mechanism. We also require a process

to develop the required software.

In a large WebApp development project, the content

is generally developed by people with journalism, library

30

science, marketing, or public relations backgrounds.

Computer graphic designers and visual art specialists

develop page lathe users, and computing, software, and IT

professionals develop the software, database, and

information systems. It is important to ensure that the

development processes enable these three diverse groups

to work together and communicate effectively.

Many software development process models can be

suitably adapted for Web development. Considering the

strengths and limitations of the various models and the

requirements of the application, we can choose and use an

appropriate process model. For example, for small-scale

trial applications, a model incorporating interactive

refinement of an initial prototype is most suitable.

Figure: 3.3. Software Architecture

3.7.5 Project Plan and Web Site Maintenance

To successfully manage Web development, a sound

project plan and a realistic schedule are necessary.

Progress of development activities must be monitored and

manages. Project planning and scheduling techniques used

in other disciplines can be used for Web development.

After a Web-based system is developed and deployed,

it needs to be continually maintained. Web maintenance can

31

Web pages

be classified into three main categories: content

maintenance, software maintenance, and hardware and

network maintenance.

Content maintenance is a continual process. We need

to formulate content maintenance procedures, based on the

decision taken at the context analysis stage on how the

information content would be maintained, and then we need

to implement them. The hardware and the network also need

to be periodically maintained, and failures need to be

fixed when they surface. It is also important to

periodically review information and Web security risks

and take suitable measures to fix those weaknesses.

3.7.6 Project Management, Documentation, and Quality

Assurance

Poor project management will defeat good

engineering. The purpose of project management is to

ensure that all the key processes and activities work in

harmony. Building successful Web-based applications

requires close coordination among the various efforts

involved in the Web development cycle.

Activities such as project management, quality

assurance, and documentation spread throughout the Web

development lifecycle. Software engineering methodologies

and techniques used for these activities can also be used

with suitable modification for Web development.

32

3.8 Web Site Development

Web site development consists of development of Web

page content and application software to deliver the

content and functionality. In addition, computer hardware

and the network infrastructure also need to be developed

and deployed. The performance, availability (up-time),

and security required for the application govern the

design of the network and computer hardware. Arun

Iyengar, et al. [8] and Valeria Cardellini, et al. [2]

discuss the design of computer hardware and network

infrastructure to support high-performance Web sites.

To better manage Web site development, a two-stage

approach are developed and refined, and have used it

successfully in this projects, shown in Figure 3.4. It

decouples the content development from application

software development, and this decoupling is necessary,

as content developers and software developers come from

different backgrounds and have different skills and

expertise. The outcome of the Web page content

development process, described below, forms the input for

the application software development process.

Figure: 3.4. Two-stage Approach to Web Site

Development

33

ApplicationSoftware Development

3.8.1 Web Page Content Development

Web page content development is an important

activity; it determines what information is presented and

how it is presented to the system's users. Content

development starts with a detailed analysis of the Web-

based system requirements and moves on to development of

appropriate specifications for Web pages. Web pages are

then designed to meet the specifications. The prototype

usually contains a set of sample pages to evaluate the

page lathe user and navigation among different pages.

Based on the feedback from the stakeholders, the page

design and/or the specifications may be suitably

modified. This process may go through a few iterations

until the stakeholders and designers are satisfied with

the screen lathe user and the navigation structure.

Design is the creative part of Web page content

development, and it needs to take into consideration the

stakeholders' requirements, users' cognitive abilities,

technical issues, nontechnical issues, and earlier

experiences, as shown in Figure 3.5.

Knowledge of users' cognitive skills and issues is

useful for arriving at a good design. The designer should

know how the users would perceive and comprehend

information, as well as how the fonts, color, and lathe

user contribute to enhancing the users' comprehension.

This is very important, as the usability of a Web site

34

will determine its success. Furthermore, to meet the

needs of global users, a Website's usability may have to

be examined from a global perspective. Shirley Becker and

Florence Mottay [1] argue that usability requires

cultural sensitivity in language translation along with

appropriate use of color, design, and animation. Jacob

Nielsen discusses how to design usable Web sites, and

Molly Hammar Cloyd describes how to design user-centered

WebApps.

In designing a Web-based system, it is important

that the designers be aware of and take into

consideration the technological constraints and their

impact on the WebApp. For example, it may not be feasible

to use very large graphics or long video clips due to

bandwidth limitations. The designer should also consider

nontechnical aspects such as legal, moral, and social

issues that are relevant to the environment in which the

application will be used.

The outcome of the design process include an

appropriate information structure, information access

methods, look and feel for the Web pages, and guidelines

for content development.

35

Figure: 3.5. Web Page Content Design Process

3.8.2 Information Structure

To better organize, store, and present information

in a given application, we need to create an appropriate

information structure. The choice of information

structure depends on the type of application, the nature

of the information, and the technology used to store and

retrieve the information. The information structure also

determines the granularity of information (i.e., the

level of detail) that can be directly accessed.

For instance, information can be stored as a

document using HTML or XML, or it can be stored in a

database. If we store the information in a database or as

an XML document, we can further subdivide the information

content into smaller subsections (such as title,

headings, subheadings, author, and keywords) and provide

direct access to the content of those subsections. If, on

36

Guidelines for Content Development

the other hand, the information is stored as a HTML

document, we cannot get this fine granularity in

information access, as HTML is not a content markup

language but a presentation markup language.

After determining the information structure, we then

need to design appropriate navigation mechanisms to

access the information content. Hyperlinks and search

facilitates are the commonly used access methods.

If the application is an online product catalog, the

home page and a sample Web page for each product type is

necessary. These sample pages will serve as templates for

the creation of other product Web pages automatically by

the application software. The product Web pages will be

created in response to a user's request (when the Web

site is operational). Development tools such as Frontpage

and Dreamweaver can be used to develop the sample pages

and to prototype the Web site. The prototype Web site is

used to test the proposed navigation mechanisms for their

ease of use and other usability features.

Furthermore, as part of the design process,

guidelines for content creation also need to be

formulated if the information content is to be newly

created or to be changes. If information is drawn from

legacy or ERP systems, a mechanism to convert the

information into a suitable structure and format for the

Web-based system must be developed.

3.8.3 Application Software Development

37

To provide interactivity and present customized

information, most WebApps use external software modules,

known as application software. A simple example of this

is the software for processing the information a user

submits via a Web form.

Application software also enables us to develop

maintainable and scalable Web sites. As the mention

earlier, one basic principle of building a maintainable

Web site is to store the data that changes over time in a

single location. This way, even if data appears on

different pages on a site (e.g., a salesperson's contact

information might appear on every page that describes a

product he or she deals with), all the changes can be

made in just one place.

Web engineers can further enhance the

maintainability by developing a back-end Web site that

will enable authorized persons to make the changes

through an online form. This approach enables them to

implement a decentralized maintenance mechanism in which

different people can be assigned responsibility for

maintaining specific sections of the information.

To facilitate scalability, a Web-based system needs

to be built on a component-based architecture, and the

navigational links and buttons need to be dynamically

created. A component-based architecture allows us to

easily add new functions or information modules simply by

adding the required functions as new components. As

38

navigational links and buttons are dynamically created,

user-requested Web pages will contain links to these new

components as well.

As the system needs to be designed for scalability

and maintainability, an emphasized in the methodology is

needed to decide on the application software architecture

as part of the product model. The application software

architecture impacts the processes to be used for

developing the system, and this will in turn determine

the development time and cost. The application software

architecture is suitable for a scalable and maintainable

Web site, shown in Figure 3.5. It can also support Web-

enabled back-end systems to facilitate decentralized

maintenance.

CHAPTER IV

IMPLEMENTATION

4.1 Analysis Modeling for E-Commerce Application

39

Web sites are typically complex and highly dynamic.

They require short development phases in order to get the

product up and running quickly. Frequently, developers go

straight to the coding phase without really understanding

what they are trying to build or how they want to build

it. Server-side coding is often done adhoc, database

tables are added as needed, and the architecture evolves

in a sometimes unintentional manner. But some modeling

and disciplined software engineering can make the

software development process much smoother and ensure

that the Web system is more maintainable in the future

[9].

4.1.1 Developing Use-cases

Use cases are the dominant element of the

interaction model for WebApps. It is not uncommon to

describe 100 or more use-cases when large, complex

WebApps are analyzed, designed, and constructed. However,

a relatively small percentage of these use-cases describe

the major interactions between end-user categories

(actors) and the system. Other use-cases refine the

interactions, providing the analysis detail necessary to

guide design and construction [9].

40

Figure: 4.1. Use-case Diagram for Product Catalog

41

Figure: 4. 2. Use-case Diagram for Shopping Cart

4.1.2 Sequence Diagram

UML sequence diagrams provide a shorthand

representation of the manner in which user actions (the

dynamic elements of a system defined by use-cases)

collaborate with analysis classes (the structural

elements of a system defined by class diagrams). Since

analysis classes are extracted from use-case

42

descriptions, there is a need to ensure that traceability

exists between the classes that have been defined and the

use-cases that describe system interaction.

Figure: 4. 3. Edit Shopping Cart Sequence Diagram

4.2 Program Implementation

4.2.1 User Guide

If the users enter into the e-commerce site, they

can see catalog, categories and each item with its

price as an e-commerce homepage.

Figure: 4.4. E-commerce Homepage

43

11 :destroy()

On the left content, the users can see the product

“Categories”, “Manufactures” name and “What’s New?”

product with its prices.

Figure: 4.5. E-commerce Page for Product Categories

The users can see manufacturers by clicking drop-

down list, and whenever they select the manufacturer

name, respective product is shown on the catalog with its

prices.

44

Figure: 4.6. E-commerce Page for Product Manufacturers

The users can click the arrow beside “What’s New?”

and see new products with their prices and product list

details.

Figure: 4.7. E-commerce Page for New Products

45

On the right, the users can see “Shopping Cart” in

order to know the product quantity they buy in their

carts. They can see “Bestsellers” items in our shop and

“Specials” items with amazing prices to “Get Them While

They’re Hot!”.

Figure: 4.8. E-commerce Page for Special Items

They can see “Reviews” in details which are remarked

by the existing customers.

46

Figure: 4.9. E-commerce Page for Reviews from Users

The “MHW” e-commerce site assigns each role to each

user.

For a new customer, he or she can click “Create an

Account” to link account information page. He or she must

fill the required information in each field to create an

account. The user’s email address and password must be

confirmed to login next time. All of the information the

user filled is validated and continued, user account is

created successfully.

47

Figure: 4.10. E-commerce Page for User Account Creation

The user must use her email address and password

correctly to log-in with authorized access.

48

Figure: 4.11. E-commerce Page for User Log-in

The authorized user is welcomed as a new customer to

shop in the site. The customer can see new products and

purchase the product as she likes. If she wants to buy an

item (e.g."Frantic" movie), she can click on that item

link and "Add to Cart".

49

Figure: 4.12. E-commerce Page for User Shopping View

The customer can enter the quantity she buy in “Qty

text box” and then click “Update” button. If our site

doesn’t has the product quantity she wants, “Products

marked with *** don’t exist in desired quantity in our

stock” message is shown in red.

The customer chooses the items she wants, but if she

changes her mind not to buy the undesired item, she can

remove it by making a check in check-box under “Remove”

and then click "Update" button. Then, she can continue

shopping for other items or check-out the items which she

buys.

50

Figure: 4.13. E-commerce Page for User Shopping-Cart

If the customer wants to pay by credit card, she

must select "Credit Card" radio option and must fill her

"Credit Card Number” correctly and select "Credit Card

Expiry Date".

If the customer wants to deliver by cash, she must

select "Cash on Delivery" radio option and click

“Continue” to “Confirm Order” for next level.

51

Figure: 4.14. E-commerce Page for Payment Information

If the customer’s shopping step has reached

"Finished" level, then “Order Has Been Processed!”

Successfully. Then, the user can link “Log Off” menu to

out.

52

Figure: 4.15. E-commerce Page for Successful Order

Processing

4.2.2 Admin Guide

For the admin role, the existing user name is “admin”

and the password is “dircd1” or the user can create the

desire user name and password anymore.

i. Configuration

The Configuration section will setup all the basic

store configuration.

Click on "Configuration" and a drop down of text links

will appear.

Click on one of the drop downs and to the right the

user will see the listings.

53

To edit any of these listings click in the space of

each listing and when that listing is highlighted,

click on the "edit" button on the right.

Figure: 4.16. E-commerce Page for Admin: Configuration

i. Catalog

The Catalog section will input all the user products

and category folders including setting up the user

products as an expected date, setup product

attributes, manufacturers, check the user reviews, &

put products on special.

ii. Modules

The modules section is where the user will setup the

user payment, shipping, and order total ordering.

54

iii. Customers

a. Customers

This is a list of all the user customers that the

user can edit all but the password field and/or

delete customers. The password field does not show

up.

Each individual customer can be emailed from this

section.

b. Orders

These are the user "pending" orders. Click the

"edit" button to see the order and the user can

change the status of the order, put comments in the

comments box, and notify the customer of the

progress of their order. The user also have an

invoice and packing slip capability.

iv. Taxes

This section sets up the user taxes and zone for the

user store.

v. Localization

This sets up the user default currency, language,

and order status to notify the user customers.

55

The Orders Status can added to or the name changed

by clicking the "edit" button after that line has

been clicked and is highlighted.

vi. Reports

This section shows how many products have been

viewed, purchased, and the total of customer orders.

vii. Tools

The Tools section is used to backup the user

database, manage a banner, file manager, send the

user customers an email, send the user customers a

newsletter, give the user server information, and

see who's online.

CHAPTER V

RESULTS AND DISCUSSION

5.1 Conclusion

In this deliverable, the research presents a

methodology which can assist companies in becoming e-

business enabled. Specifically it adopts web engineering

principles and develops tools and guidelines.

As web engineers begin to place greater emphasis on

the performance, correctness, and availability of Web-

based systems, sound development processes and

methodologies assume greater significance. And as systems

become larger, large teams of people with different types

56

and levels of skills will be required to work together,

necessitating distributed collaborative development. A

well-defined process and good project management are the

keys to success in Web development.

A Web development process and methodology that have

been successfully applied in the development of many

WebApps and the key recommendations for successfully

developing and implementing large maintainable and

scalable WebApps are to:

Adopt a sound strategy and follow a suitable

methodology to successfully manage the development

and maintenance of Web sites.

Recognize that, in many cases, development of a

WebApp is not an event, but a process, since the

application's requirements evolve. It will have a

start, but it will not have a predictable end as in

most traditional software development.

Within the continuous process, identify, plan, and

schedule various development activities such that

they have a defined start and finish.

Remember that the planning and scheduling of the

activities is very important to successfully manage

the overall development, allocate resources, and

monitor progress.

Repeat these activities, as required, to meet the

changing needs and requirements of the WebApp.

Consider the big picture during planning and

designing WebApps. If the user do not, the user may

57

end up redesigning the entire system and repeating

the process all over again. If the user’s address

the changing nature of requirements and information,

appropriate look and feel, and all other related

aspects early on, the user can build into the design

efficient and cost-effective ways of managing change

and new requirements.

Recognize that development of a large WebApp calls

for team-work and shared responsibility among the

team members, and motivate a team culture.

Most web engineers stress that without a well-

defined, systematic approach, it is impossible for a

group of people to effectively work together on a large

Web development project. Moreover, Web developers and

their project managers move away from an ad hoc

approach to a well-planned, systematic approach for the

development of large, high-performance, evolutionary,

and/or mission-critical Web sites and applications.

5.2 Future Work

Web engineering is raised not only to allow the

creation of functional websites, but also the creation of

easy-to-use ones. We show that information in the process

and models which will lead to better usability in the

development of websites future. For the web engineers,

Web engineering techniques are the most important aspects

in their work: On one hand, the more systematic the

58

process and methodologies for web pages, the more

powerful the websites can be.

To be a perfect e-commerce site, this system should

give the information for each stakeholder who surfing

this website. This way, we hope that this research will

assist web engineers in deciding how to use web

engineering process, models and techniques to their web

applications make sense.

In our current and future work, we concentrate on

process, tools and methodologies which support for

improving usability in the context of Web Engineering.

REFERENCES

[1] Becker, S.A., and Florence E. Mottay. A Global

Perspective on Web Site Usability, IEEE Software, Vol.

18, No. 1, Page 54-61, 2001.

[2] Cardellini, Valeria, Michele Colajanni, and Philip

S. Yu. Dynamic Balancing on Web Server Systems, IEEE

Internet Computing, Vol.3, No.3, Page 28-39, 1999.

[3] Cloyd, Hammer, M., Designing User-Centered WebApps

in Web Time, IEEE Software, Page 62-69, 2001.

59

[4] Ginige, Athula, and San Murugesan, Web Engineering:

An Introduction, IEEE Multimedia, Vol. 8, No.1, Page

14-18, 2001.

[5] Ginige, Athula, and San Murugesan, The Essence of

Web Engineering, IEEE Multimedia,Vol. 8, No. 2, Page

22-25, 2001.

[6] Iyengar, Arun, Jim Challenger, Daniel Dias, and Paul

Dantzig, High Performance Web Site Design

Techniques, IEEE Internet Computing, Vol. 4, No. 2, Page

17-26, 2000.

[7] Shneiderman, Ben, Universal Usability, Communications

of the ACM, Vol. 43, No. 5, Page 85-91, 2000.

[8] Nielsen, Jacob., Designing Web Usability: The Practice of

Simplicity., New Riders Publishing, 1999.

[9] Pressman, R.S., Software Engineering: A

Practitioner’s Approach, Sixth Edition, Singpore,

ISBN: 007-123840-9, 2005.

60

1

ACKNOWLEDGEMENT

I would like to express my sincere thanks to Daw

Soe Mya Mya Aye, Lecturer, Head of Department of

Computer Studies, University of Yangon, for her kind

permission to carry out this research.

Next, I am grateful to Daw Khin Maw Thet,

Principal, Co-operative Training School, Pathein who

grants me to do this work.

I am also thankful to all the teachers of

Department of Computer Studies for their comments and

suggestions. I would like to express my deep gratitude

to Daw Myat Su Hlaing, Demonstrator, Department of

Computer Studies, University of Yangon, who was the

head of my thesis. She gave me proactive supervision

of my research work, decisive guidance and great

attention.

I would like to deeply thank my parents who not

only encouraged but also challenged me throughout my

life.

Finally, my special thanks go to U Zaw Latt,

Assistance Lecturer, University of Pathein and U Phyo

Wai Lin who help me to smooth my thesis.

i

ABSTRACT

The Internet and World Wide Web (www) has

revolutionized the whole world. In recent years, there

has been rapid growth, in Web Application (Web Apps)

development process and their management. The

technologies have drawn us all (with billions more who

will eventually follow) into the information age. They

have become integral to daily life in every way. Internet

together with web application tools have given solution

to many problems and have made the processing and

dissemination of information fast and timely. Web

applications have become complex and crucial for many

firms. Web engineering is a methodology which can help

companies to create successful web information systems

and actively promotes systematic, disciplined and

quantifiable approaches towards the development of high-ii

quality, ubiquitously usable web-based systems and

applications. In this research, the paper intended to

provide an e-commerce web application for computer

accessories by the methodology and the development model

based on web engineering concepts and principles. The

program in this research is developed by using the

powerful PHP web scripting language, the stable Apache

web server, and the fast MySQL database server. This

system can give the benefit of getting more customers,

making customers spend more in our e-commerce site,

reducing the costs of fulfilling orders. The idea of

having an e-commerce web site was enough to get many

business people salivating with anticipation in the

future.

TABLE OF CONTENTS

iii

ACKNOWLEDGEMENTS i

ABSTRACT ii

TABLE OF CONTENTS

iii

LIST OF FIGURES v

Page

CHAPTER I INTRODUCTION1.1 Web Engineering

1

1.2 Motivation

2

1.3 Objectives of the Thesis

3

1.4 Contributions of the Thesis

3

1.5 Organization of the Thesis

4

CHAPTER II LITERATURE REVIEW2.1 Evolutionary Web Application Development

5

2.2 Perspectives for Web Engineering

6

CHAPTER III WEB ENGINEERING METHODOLOGIES

iv

AND DEVELOPMENT3.1 Web Applications and Application Domain

7

3.2 Attributes of Web-Based Systems andApplications 7

3.3 Steps to Successful Development

9

3.4 Web Engineering Methods

10

3.5 Web Engineering Process

11

3.5.1 Defining the Framework

12

3.5.2 Refining the Framework

14

3.6 Formulating Web-based Systems

14

3.7 Web Development Process

15

3.7.1 Context Analysis

16

3.7.2 Product Model

18

3.7.3 System, Application and Software

Architecture 18

3.7.4 Process Model

19

v

3.7.5 Project Plan and Web Site

Maintenance 20

3.7.6 Project Management,

Documentation, and 21

Quality Assurance

3.8 Web Site Development

21

3.8.1 Web Page Content Development

22

3.8.2 Information Structure

23

3.8.3 Application Software Development

24

CHAPTER IV IMPLEMENTATION4.1 Analysis Modeling for E-Commerce

Application 26

4.1.1 Developing Use-cases

26

4.1.2 Sequence Diagram

27

4.2 Program Implementation

28

4.2.1 User Guide

28

4.2.2 Admin Guide

36

vi

CHAPTER V RESULTS AND DISCUSSION5.1 Conclusion

38

5.2 Future Work

39

REFERENCES

LIST OF FIGURES

Figure

Page

3.1 Web Engineering Process 14

3.2 Development Process for Web-based Systems

16

3.3 Software Architecture

20

vii

3.4 Two-stage Approach to Web Site Development

22

3.5 Web Page Content Design Process

23

4.1 Use-case Diagram for Product Catalog

26

4.2 Use-case Diagram for Shopping Cart

27

4.3 Edit Shopping Cart Sequence Diagram

27

4.4 E-commerce Homepage 28

4.5 E-commerce Page for Product Categories

29

4.6 E-commerce Page for Product Manufacturers

29

4.7 E-commerce Page for New Products

30

4.8 E-commerce Page for Special Items

30

4.9 E-commerce Page for Reviews from Users

31

4.10 E-commerce Page for User Account Creation

32

4.11 E-commerce Page for User Log-in

33

4.12 E-commerce Page for User Shopping View

33

viii

4.13 E-commerce Page for User Shopping-Cart

34

4.14 E-commerce Page for Payment Information

35

4.15 E-commerce Page for Successful Order Processing

35

4.16 E-commerce Page for Admin: Configuration

36

WEB ENGINEERING TECHNIQUES THROUGH A

CASE STUDY ON WEB APPLICATIONS

MRes (THESIS)

ix

TIN NILAR WIN

DEPARTMENT OF COMPUTER STUDIES

UNIVERSITY OF YANGON

MYANMAR

APRIL, 2012

x