Web Engineering - Phase 6

21
1 King Saud University College Of Computer and Information Sciences Master in Computer Science Research Course CSC 595 Web Engineering Phase # 6 Final Report Submitted to: Prof. Hassan Mathkour Submitted by: Amani Mohd. Al Hussaini ID# 426221464

Transcript of Web Engineering - Phase 6

1

King Saud University College Of Computer and Information Sciences

Master in Computer Science Research Course

CSC 595

Web Engineering

Phase # 6

Final Report

Submitted to:

Prof. Hassan Mathkour

Submitted by:

Amani Mohd. Al Hussaini

ID# 426221464

2

Table of content

Subject Page

Abstract …………………………………………………………………………………………. 3

Introduction ……………………………………………………………………………………. 3

Section 1: Web Engineering 4

1.1 Complexity of Web-based Applications ………………………………………………... 4

1.1.1 Problems of web-based application development ………………………………….. 4

2.1 Web Engineering ………………………………………………………………………….. 4

2.1.1 Definition ………………………………………………………………………………… 4

2.1.2 First Appearance ……………………………………………………………………….. 5

2.1.3 Web engineering versus software engineering ……………………………………... 5

2.1.4 The Web Engineering process ………………………………………………………… 5

Section 2: Method and tool for web engnieering 7

2.1 SWM Method ……………………………………………………………………………… 7

Section 3: Prioritizied Requirments Methods 8

3.1 Trade-offs…………………………………………………………………………………… 8

Section 4: Metrics for web sites 9

4.1 For testing results ………………………………………………………………………… 9

4.2 After publishing …………………………………………………………………………… 10

Section 5: Reverse Engineering web applications 11

Conclusion ……………………………………………………………………………………... 12

Future work ……………………………………………………………………………………. 13

Survey …………………………………………………………………………………………… 14

Tables …………………………………………………………………………………………... 16

Appendixes ……………………………………………………………………………………... 17

Appendix A …………………………………………………………………………………. 17

Appendix B ………………………………………………………………………………….. 18

Appendix C ………………………………………………………………………………….. 19

References ……………………………………………………………………………………… 20

3

Web Engineering

Abstract

In the last few years our knowledage about how to develop large, complex web

systems have grown quickly. In this paper I tried to arrange this knowledge to

developing these large complex web systems through a new discipline called 'Web

Engineering'.

This paper describes web engineering, gives one of its method and tool and names a

lot of web metrics of web applications.

Introduction

The Internet and the World Wide Web have become widespread in all things of our

life, like if you want to download music, view movies, get medical advice, book hotel

rooms, sell personal items, schedule airline filghts, meet people, take collage courses

… and more than these [1].

But the question is: together with the spreading of the Internet and WWW and their

touching in every things in our life, is there any technique or mechanism used to

create high-quality Web Applications?. This is what I want to talk about, we have a

new technique is called Web Engnieering used to manage the development of

WebApp projects.

This paper is organized as follows: section 1 decribes what is Web Engineering,

section 2 presents one simple method and tool for web engnieering, section 3 presents

one Prioritizied Requirments Methods, section 4 names a lot Web Metrics for web

sites, section 5 describes Reverse Engineering web applications and section 6

conclusion of this paper.

4

Section 1: Web Engineering

1.1 Complexity of Web-based Applications:

Before talking about the complexity of web-based applications, first, we have to know

that web-based applications can be categrized into (7) seven categories and for a

given application may belong to more than one category. These categories are listed

in Table 1 [1].

The complexity of web-based applications has increased from informational

applications (like simple text and images) to online transactions. So, this complexity

needs a good management to deals with [1].

1.1.1 Problems of web-based application development:

Most of web developers do not concentrate on the requirements and analysis and

mertics for estimating the effort and time required for developing projects, so this

leads to poorly developed web-based applications that gives a high probability of

failures, also the projects will be over budget and time. So, as you know web-based

systems grow more complex, and a failure in one will spread to to other web-based

systems, and this leading to a 'Web crisis' [1].

A recent survey on Web-based project development was reported by Cutter

Consortium in 7 Nov. 2000, and it results that there are a lot of web-based projects

didn't meet the requirments, poor quality, over time and over budget due to poor

manaegment [1][13]. See appendix A.

1.2 Web Engineering:

As result of above and in order to avoid a 'Web crisis', web-based applications need a

process makes them easy to implement and process during the complexity. Web

Engineering is a process used to achieve greater success in the development of web-

based applications.

1.2.1 Definition:

First we want to define 'Engnieering':

The application of scientific and mathematical principle such as the design,

manufacture, and operation of efficient and econmical structres, machines, processes

and systems [13].

So, the development of web application needs for Engineering.

Web Engnieering is set of framework activites which make a process foucing on

deffirent aspects of successful development of large, complex web-based applications

[4].

5

1.2.2 First Appearance:

In 1998, Web engineering was established as a new discipline by some of professors

at the University of Western Sydney in Austalia. The key persons who established this

new discipline are Yogesh Deshpande and Steve Hansen [1].

During 1998-2000, the university organized a series of five intenrational workshops

on Web engineering to detect problems and find solutions in this area [1].

By the way, 'Web Engineering' term is still uncommon and not completely understood

by many [3] [14].

1.2.3 Web engineering versus software engineering:

Web engineering borrows many of software engnieering's concepts and priciples with

the same technical and management activites [1]. Web engineering still under

software engineering, but the information technology community should view Web

engineering as a new discipline and has its own rights [3].

The differences between traditional software approaches and web engineering

process [13] & [11]:

• In team size: in the traditional software approaches, the team size is big, while in

web engineering is small.

• In life-cycle time: in the traditional software approaches is long, while in web

engineering is short.

1.2.4 The Web Engineering process:

As web-based applications from static, content-directed information sources to

dynamic, user-directed application environments, it is necessary to develop a Web

engineering framework that involve an effective process model populated by

framework activites, this is what do we call it 'framework for web engineering' [4].

The framework activites are [4]:

• Formulation: activity that identifies the goals and objectives of the webApp.

• Planning: activity that estimates overall project cost, evaluates risks and defines a

development schedule for the webApp.

• Analysis: activity that establshes requirements for the webApp.

• Modeling: also called 'engineering', activity that incorporates two parallel tasks

perfomed by nontechnical members of the Web engineering team: content design

and production. These tasks is to design and produce all text, graphics, audio, and

vides conten that are to become integrated into the webApp.

• Page generation: is a construction activity that makes the pages of webApps. The

content defined in the modeling activity.

• Testing: activity that exercises webApp to detect the errors and ensure that the

webApp will operate correctly.

6

• Customer evaluation: activity that makes the webApp reviewed by the customer.

In [2] stated ten key steps for successful development, based on the authors

experience in building many web-based projects, and it is actually the same of the

above framework activites. See appendix B.

Web engineering has been successfully applied in a number of web applications like

Vienna International Festival, The ABC Internet Collage, 2000 Sydney Olympics, and

1998 Nagano Winter Olympics [1] [2].

There is a way to teahing web engineering by applying the Cognitive Flexibility

Theory (CFT) [14].

7

Section 2: Method and tool for web engnieering

2.1 SWM Method:

There are many methods that support web engineering, like Decemder, IBM, DiNucci

and Powell. All of these methods are ways of modelling web systems. In [8] the

authors proposed a simple method for wb engineering, this method called 'Simple

Web Method' (SWM).

The authors proposed this method for the following reasons:

• They want a method that simpler than the above-mentioned methods.

• They are interested in web development methods and techniques for teaching, so it

is easier to teach.

• They want a method that support all the development processes, since the above-

mentioned methods do not support.

The SWM support the following processes:

• Planning

• Analysis

• Design

• Building

• Maintenance

The authors have built a prototype called PAWS (Project Administration Web Site). In

this prototype, after the user have logged in, will see the interface of PAWS that

contains: Minutes, Documents, Tasks, Stages & Deliverables. to allow the project

team to add their minutes, documents, tasks. You can see the date, time and the

attenders of the meeting, the pending tasks from the last meeting and new task from

the current meeting. For more details, see [9].

PAWS has been used with a 2nd

year undergraduate group project on a Multimedia

course. They are 9 groups, each group has 4-5 students working on various web

projects.

There is a survey has been made about PAWS and you can see the results of this

survey in Appendix C.

8

Section 3: Prioritizied Requirments Methods

3.1 Trade-offs:

Since there are special characteristics for the development of WebApp like Time-to-

Market with high quality, there is conflict between them. This is what do we call it

'trade-off situation for wb engineering' [5].

The use of trade-off will be assistant in the development of WebApp if there are

conflicts between requirments to be resolved by prioritizing them [5].

Trade-off situation consists of several elements [5]:

• Number of requirments.

• Analysis of the advantages and disadvantages of the requirements.

• Analysis the costs needs to meet these requirments.

• Decision has to be made based on the advantages and disadvantages to give the

best result possible by balancing them.

Using trade-offs [5]:

1. Trade-offs can be started in two setting:

• Trade-off is scheduled in advance.

• Trade-off should be scheduled if there are situational circumstances that

needs it.

2. Clear understanding of the conflict, this helps to assess the conflict and choose the

best solution.

3. To perform a trade-off, there are two setting depand on what I mentioned in (1):

• For scheduled trade-off, it is straight forward and it is responsible by one

member of project team.

• For non-scheduled trade-off, if one of project team discovers a conflict and he

can not resolve it by himsef, he should prepare for a trade-off meeting and be

responsible for that trade-off.

4. Trade-off shoud result in a decision on what actions to take, and how to resolve

the conflict.

5. There is a limit on the number of person that can participate in trade-offs. The

upper limit is 10 persons and the lower limit is 4 persons to help speed up the

decision process.

There are a lot of methods for trade-off, but popular one and easy to learn is Quality

Function Deployment (QFD). For more information about this method see [5].

9

Section 4: Metrics for web sites

4.1 For testing results:

To improve the efficiency of the testing and maintenance for web application, it is

necessary to determine metrics for web application testing. The process of the testing

is accomplished by comparing and analyzing the expected testing results in test cases

and the actual results, then we can determine whether pass this testing or not. If the

actual results match with the expected results, then this testing can be passed. If there

are differences between them, that means there are problems should be solved and

and new test cases to retest the web application [7].

According to the above testing process, if the tester compare the two pages (expected

results & actual results) manually, he can find the differences quickly based on his

sight and intelligence. But when we are talking about Web Applications, the status is

different. Since the testing scale of web application is huge, the manual testing can

not be fit. So, we need automated testing tool to determaine the testing pass or not

[7].

Also, the automatic analysis and comparison for the testing results by tools have

difficulties. Since HTML is the main language to describe web applications, and it

only defines the displaying formats in browser of elements, but the contents of

displaying are consisted with the equipments of client-side. So, it is hard to identify

the page elements automaticlly and it brings many troubles in tsting results. The point

is to know how to separate between data and display in the Web pages.

In [7]the authors proposed a new method for testing results analysis and comparison

which uses the semantic label and XML description technique to realize the

information separation between data and display in the Web pages. The process of

this can be showen in the following figure:

10

4.2 After publishing:

The objectives of the web sites can be limited to: selling or purchasing, informing,

entertaining or communicating. In order to achieve these objectives and to reveal

user acceptance of the web site and reactions to changes in content and design,

measures have to be defined. In [6] some metrics was proposed under name

'Guidance Performance Indicator' GPI that can be applied to all kind of web sites.

These metrics and measurments can be categorized to structure, content and usage

data.

Since we have transactional and information driven web sites, for structure and

content measurments are easy to measure them, beacause it is easy to describe the

position and relation of one web page in comparison to the whole web site, also easy

to evaluate the composition and formatting of web pages. But for usage measurments

it is difficult to measure the the user intention and satisfaction.

To measure the the user intention and satisfaction in both transactional and

information driven web sites, we have to distinguish between navigation and content

pages. Navigation pages allow you to make a transition to contant page like: home

page, search page and site map. Contant pages represent the major part of a web site.

The time the user stays on each page can be an indicator to measure the user

intention and satisfaction, because the user will stay long time if he was intersted in

the content; but if he see undesired content, he will the page and the duration will be

short. To know how to build the metric, see [6].

Also, in [17] the authors present equations that can be applied to measure and

evaluate the peformance and scalability of web applications.

11

Section 5: Reverse Engineering web applications

The author in [11] presents his Ph.D Thesis that propose an approach for Reverse

Engineering Web Applications. This approach can help on understaning existing

undocumented web applications to be maintained.

Reverse engineering is an activity that examine the system, but does not change it. It

is understanding the application by modelling application's pages using UML class

diagram and the relationships among pages [10][11].

The below figure is summarized the process of reverse engineering web application

that is proposed in [11]:

The web sites can be categorized into three categories:

• Class 1: web sites that is static.

• Class 2: web sites that provide client-side interaction.

• Class 3: web sites that is dynamic and provide server-side database.

According to the above-mentioned classes, the authors in [10] provide case study for

the classes to evaluate reverse engineering capabilities of web tools. the authors

chose three web tools, and they are Microsoft FrontPage 2000, Dreamweaver

UltraDev 4 and SmartSite 3, consecutively. In each web tools, the authors describe

the framework of reverse engineering enviroment that involve: cognitive model

support, reverse engineering tasks, canonical activities and quality attributes and

miscellaneous characteristics. For more detail see [10].

12

Conclusion

Web engineering is challenge to delivered web applications on time, on budget, to

satisfy specifactions and project's objectives. Web engineering process will be

successful if it address the following:

• Short development life-cycle time:

In web engineering process, the time time to deliver the project should be short.

• Small development team:

In web engineering process, the development team should be small (do not exceed

6) to avoid arising conflicts the leads to poor development.

• Multidisciplinary development team:

In web engineering process, the different types of developer required to build a

successful solustion.

• Analysis and Evaluation:

In web engineering process, the developers should focus on analysis and

evaluation phases.

• Requirments and Testing:

Web engineering process needs to focus more on requirements and testing phases.

• Maintenance:

If the web-based application needs to be impoved, web engineering process needs

to pay attention to maintenance.

The paper name a lot of metrics for web sites has to be applied to evaluate the

peformance and scalability of web applications and to measure if this web application

meet its objectives or not.

Also, the paper describes the use of trade-off method that assists in the development

of WebApp if there are conflicts between requirments to be resolved by prioritizing

them.

Furthermore, the paper describes Reverse Engineering Web Applications that can

help on understaning existing undocumented web applications to be maintained.

13

Future Work

• I proposed to make another survey contain deep questions on web engnieering

process to find more issues that happen in Saudi Arabia.

• I planned to search in some areas of web engineering like: project management -

quality control and assurance - development skills teams and staffing.

14

Survey

During the first two weeks of December 2006, I made a survey with a number of

people within organizations in the Saudi Arabia who are involved in the development

of Web-based applications. The purpose of this survey is to know how Web

Engineering is applied in Saudi Arabia. I have submitted a questionnaire to (5) five

different organizations. The following decribes the results of my questionnaire and

the conclusions that can be drawn about Web Engineering in Saudi Arabia.

I tried to give this questionnaire to more than one type of developer, because the types

of developers are classified under one of the following roles: software engineer,

creative designer, team manager, busiess expert or domin expert.

The results of this questionnaire can be divided into three parts. Part 1 describes the

web development team. Part 2 describes the characteristics of development project.

Part 3 describes Web engineering processes. Then my conclusions on this survey.

Part 1: Web development team

According to the results of the questionnaire, the average age of developers between

25 – 30 years. In some organizations do not allow to employ Female, so most of the

developers are male. In most of the organizations, the team size is small, do not

exceed 6 developers. About the multidisciplinary nature or diversity of the types of

developer within one team, in the organizations that employs (2) or (3) developers in

one team, both of them are programmers and there is no diversity. But in the

organizations that employs more than (3), there is a diversity.

Part 2: Characteristics of development project

According to the results of the questionnaire, the lif-cycle of web applications

development do not exceed (6) months in all organizations. About the time and the

budget,the projects that run over time range 30-40% and the projects that run over

budget range 0-10%. The reasons for projects running over time were: poor

communication between the developers and the clients, poor project effort estimation

techniques, poor project management and poor testing procedures. And The reasons

for projects running over budget were: poor project management, lack of resources

and unexpected cost. I asked if the developer find himself short of development

expertise during the develeopment of web application, and most of the answers was

no. And about the prime reason for projects not resulting, most of answer was

problem in analysis and requirements phase in web engineering processes.

Part 3: Web engineering processes

According to the results of the questionnaire, most of the organizations do not have a

well-documented development process for building web-based projects. About the

process of building web applications, all the organizations set their building process

in many different words, but all of them leads to the same meaning: Analysis and

requirements phase, Design phase, implementation phase, testing phase, evaluationg

phase, training phase and maintenance phase. I asked about the features of the

15

development process, if it is successful, and the answer was: scoping document, good

management and good relation with clients. Also I asked about the features of the

development process, if it is difficult, and the answer was: problems with managing

the development process, poor communication with clients and poor documentation. I

asked how to measure the success of the project, and the answer was: client is happy

with the deliverable, passing testing phase and achieving budget and time estimates. I

asked to identify wich tool and technologies they are using to implement the web

applications, most of them are using: ASP.NET, SQL server 2000, Windows 2003

server.

I aked about the conflicts between the developers, some of the organizations answered

there is no conflicts; but other organizations answered there is conflicts like: conflict

with team manager about management, conflict between two developers and work of

one of them depend on work of another developer. And how to solve these conflict,

they said there is a team manager, department manger and policy to solve the

conflicts.

My conclusions on this survey

From the foregoing discussing about the survey, I found that some organizations in

Saudi Arabia use web engnieering process in some aspects, only:

• Short development life-cycle time: one project takes, approximately 6 months.

• Small development team: the team size do not exceed 6 developers.

• Multidisciplinary development team: this is only in few of the organizations.

But other aspects are not used, that why the delivered web applications always over

time, over budget, to do not satisfy specifactions and project's objectives.

My suggestions

• Conducting yearly or monthly workshops in Saudi Arabia about Web

Engineering like the international Workshops on Web Engineering to impove Web

engineering in Saudi Arabia.

• Providing courses and trainings in every organizations in Saudi Arabia by some

experts from abroad to impove Web engineering in Saudi Arabia.

16

Tables

Category Examples

Informational Online newspapers, product catalogs

Interactive Registration forms, online games

Transactional Booking hotel rooms

Workflow Online scheduling airline filghts

Collaborative work

environments Distributed authoring systems, collaboative design tools

Online communities,

marketplaces meeting people, chat group

Web portals Electronic shopping malls

Table 1: Categories of Web applications [1]

17

Appendixes

Appendix A

A resent survey on Web-based projects development was reported by Cutter

Consortium in 7 Nov. 2000, and the result was as follow:

• Projects didn't meet business needs: 84%.

• Projects exceeded the time: 79%.

• Projects exceeded the budget: 63%.

• Projects didn't have the required functionality: 53%.

• Projects with poor quality: 52%.

18

Appendix B

Ten key steps for successful development:

1. Understand the overall function of the system, objectives and requirements.

2. Identify the development team.

3. Specify the technical and non-technical requirements.

4. Develop an overall architecture of the webApp that meets the technical and non-

technical requirements.

5. Identify subprojects or subprocesses to implement the architecture.

6. Develop and implement the subprojects

7. Incorporate effective mechanisms to manage the web project's evolution, change,

and maintenance.

8. Address the non-technical issues.

9. Measure the system's performance.

10. Refine and update the system.

19

Appendix C

A formal evaluation of the use of PAWS has been undertaken. A questionnaire was

given to all students and they received 29 replies.

86% of students felt that they mostly or completely understood the method.

80% of students felt that they mostly or completely understood what to do at each

stage.

Negative comments were sought about the method and a few students mentioned that

some of the deliverables were not clearly defined.

The most useful part of the method was felt to be the project plan (27%). Useful parts

of the group project were felt to be supervisor meetings (14%) and the web site

(10%).

83% of students felt that they mostly or completely understood PAWS.

68% of students felt that they mostly or completely understood how to use PAWS,

leaving 32% who felt that they only partly understood.

The most useful parts of PAWS were found to be:

Minutes 35%

Tasks 25 %

Uploading documents 15%

27% of students did not like the user interface of PAWS.

45% did not feel that PAWS was user friendly, mentioning particularly the user

interface and uploading difficulties from home.

20

References [1] Ginige, A. and S. Murugesan, "Web Engineering: An Introduction", IEEE MultiMedia, 2001,

pp. 14 – 18.

[2] Ginige, A. and S. Murugesan, "The Essence of Web Engineering", IEEE MultiMedia, 2001,

pp. 22 - 25.

[3] Deshpande, Y. and S. Hansen, "Web Engineering: Creating a Discipline among Disciplines",

IEEE MultiMedia, 2001, pp. 82 - 87.

[4] Pressman, R., "What a Tangled Web We Weave", IEEE MultiMedia, 2000, pp. 18 - 21.

[5] Ziemer, S. and T. Stalhane, "The use of Trade-offs in the development of Web Applications",

ICWE Workshops 2004, pp 269 – 281

[6] Stolz, C., M. Viermetz, M. Skubacz and R. Neuneier, "Guidance Performance Indicator - Web

Metrics for Information Driven Web Sites",Preoceedings of the 2005 IEEE/WIC/ACM

International Conference on Web Intelligence (WI'05), IEEE, 2005.

[7] Lei, Xu., B. Xu, Y. He, H. Chen and Q. Zhu, "Research on the Analysis and Measurement for

Testing Results of Web Applications",Proceedings of the 2005 International Conference on

Cyberworlds (CW'05), IEEE, 2005.

[8] Lockyer, M., G. Griffiths, B. Hebbron and B. Oates, "A Teaching Method &Tool for Web

Engineering", Proceedings of the 3rd IEEE International Conference on Advanced Learning

Technologies (ICALT'03), IEEE, 2003.

[9] Griffiths, G., B. Hebbron, M. Lockyer and B. Oates, "A Simple Method & Tool for Web

Engineering", SEKE'02, ACM, 2002, pp 755 - 762.

[10] Tilley, S. and S. Huang, "Evaluating the Reverse Engineering Capabilities of Web Tools for

Understanding Site Content and Structure: A Case Study", IEEE, 2001.

[11] Tramontana, P., "Reverse Engineering Web Application", Proceedings of the 21st IEEE

International Conference on Software Maintenance (ICSM'05), IEEE, 2005.

[12] Schranz, M., "Engineering Flexible World Wide Web Services", ACM.

[13] Ginige, A., "Web Engineering: Managing the Complexity of Web Systems Development",

SEKE'02, ACM, 2002, pp 721 – 729.

[14] Mendes, E., "Applying the Cognitive Flexibility Theory to Teaching Web Engineering", The

Australia Computing Education Conference (ACE2003), ACS, 2003.

[15] Joumana, D. and S. Al-Nasrawi, "FSM Behavioral Modeling Approach for Hypermedia Web

Applications: FBM-HWA Approach", Proceedingsof the Advanced International Conference

on Telecommunications and Internaational Conference on Internet and Web Applications

and Services (AICT/ICIW 2006), IEEE, 2006.

[16] Glissonn, W. and P. Welland, "Web Development Evolution: The Assimilation of Web

Engineering Security", Proceedings of the Third Latin American Web Congress (LA-

WEB'05), IEEE, 2005.

21

[17] GAN, Z., D. WEI and V. VARADHARAJAN, "Evaluating the Performance and Scalability of

Web Application Systems", Proceedings off the Third International Conference on

Information Technology and Applications (ICITA'05), IEEE, 2005.

[18] Kaplan, A. and J. Lunn, "FlexXML: Engineering a More Flexible and Adaptable Web", IEEE

MultiMedia, 2001.

[19] Heberle, A., J. Rehse, B. Onasch and B. Sieling, "Utilizing Abstract WebEngineering

Concepts: an Architecture", IEEE MultiMedia, 2001.

[20] Kuhnke, C., J. Schneeberger and A. Turk, "A Schema-Based Approach to Web Engineering",

IEEE MultiMedia, 2000.