web engineering - phase 6
TRANSCRIPT
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.