Web Engineering
LECTURE 3
Some Lectures Notes Belongs to Dr. Federico M. Facca
1
Agenda
1. What is Web Engineering?
2. Defining Web Applications.
3. The Case for Web Engineering.
4. Categories of Web Applications.
5. Characteristics of Web Apps.
6. Key Knowledge Areas
2
1- What is Web Engineering?
A science that Extends Software Engineering to
Web applications, but with Web-centric
approaches.
3
1- What is Web Engineering?
A science that brings to Web-based system
development:
◦ Control
◦ Risk minimization
◦ Enhanced maintainability and quality
4
Agenda
1. What is Web Engineering?
2. Defining Web Applications.
3. The Case for Web Engineering.
4. Categories of Web Applications.
5. Characteristics of Web Apps.
6. Key Knowledge Areas
5
2- Defining Web Applications
Unlike traditional software, the Web serves as both
development & user platform.
A Web application is a system that utilizes
standards & technologies to deliver Web-specific
resources to clients (typically) through a browser.
6
2- Defining Web Applications
7
Agenda
1. What is Web Engineering?
2. Defining Web Applications.
3. The Case for Web Engineering.
4. Categories of Web Applications.
5. Characteristics of Web Apps.
6. Key Knowledge Areas
8
3- The Case for Web Engineering
Web-based system is a living system—it grows,
evolves, and changes.
An appropriate infrastructure is necessary to
support the growth of a Web based system in a
flexible and controlled manner
9
3- The Case for Web Engineering
Application development on the Web remains
largely ad hoc.
◦ Individual experience
◦ Little or no documentation for code/design
Short-term savings lead to long-term problems in
operation, maintenance, usability, etc.
10
3- The Case for Web Engineering
Why Now ?
◦ Most projects are now Web-based
◦ More “mission-critical” apps moving to the Web
11
3- The Case for Web Engineering
Top Web project pitfalls
• not meeting functionality and the users’ needs
• poor usability
• poor performance
• security breaches
• not functioning properly, including errors and crashes
• poor maintainability
• poor scalability
• schedule and cost over-runs
• abandoned projects—poor project management
12
Agenda
1. What is Web Engineering?
2. Defining Web Applications.
3. The Case for Web Engineering.
4. Categories of Web Applications.
5. Characteristics of Web Apps.
6. Key Knowledge Areas
13
4- Categories of Web Applications
Semantic
Web
Complexity
Social Web
Collaborative
Workflow Portal
Based Oriented
Transactional
Interactive
Doc-Centric
Development History
14
4.1Portal-Oriented
Single points-of-entry to heterogeneous information
◦ Yahoo!, [Link], [Link]
Specialized portals
◦ Business portals (e.g., employee intranet)
◦ Marketplace portals (horizontal & vertical)
◦ Community portals (targeted groups)
15
4.2 Semantic Web
Berners-Lee: Information on the Web should be readable to machines,
as well as humans.
Using metadata and ontologies to facilitate knowledge management
across the WWW.
Content syndication (RSS, Atom) promotes re-use of knowledge
Is the Semantic Web even possible?
Authors devote a chapter to the Semantic Web, but we will not focus on
it in this course.
16
Agenda
1. What is Web Engineering?
2. Defining Web Applications.
3. The Case for Web Engineering.
4. Categories of Web Applications.
5. Characteristics of Web Apps.
6. Key Knowledge Areas
17
5- Characteristics of Web Apps
How do Web applications differ from traditional applications?
Or, another way, what Software Engineering methods & techniques can be adapted
to Web Engineering?
3 dimensions
◦ Product
◦ Usage
◦ Development
To this we can add a 4th dimension peculiar on the web, need for continuous and fast
evolution!
18
5.1 Characteristics - Product
The “building blocks” of a Web application
Content
◦ Document character & multimedia (# of dimensions?)
◦ Quality demands
Navigation Structure (Hypertext)
◦ Non-linearity
◦ Disorientation & cognitive overload
User interface (Presentation)
◦ Aesthetics جماليات
◦ Self-explanation
19
5.2 Characteristics - Usage
Much greater diversity compared to traditional non-Web applications
Social Context (Users)
◦ Spontaneity
◦ Heterogeneous groups
Technical Context (Network & Devices)
◦ Quality-of-Service
◦ Multi-platform delivery
Natural Context (Place & Time)
◦ Globality
◦ Availability
20
5.3 Characteristics - Development
The Development Team
◦ Multidisciplinary
◦ Community (including Open Source)
Technical Infrastructure
◦ Lack of control on the client side
◦ Immaturity
Process
◦ Flexibility
◦ Parallelism
Integration
◦ Internal
◦ External
21
5.4 The 4th Dimension: Evolution
All the above previous dimension are governed by the evolution principle
◦ Continuous change
◦ Competitive pressure
◦ Fast pace
Software Engineering: evolution is planned in a constant number of release
version
Web Engineering: evolution is continuous
◦ Nowadays this is becoming true also for SE… it’s a loop, when a discipline
overlaps its ancestor, the ancestor learn something back!
22
A well-engineered Web system
◦ is functionally complete and correct
◦ is usable
◦ is robust and reliable
◦ is maintainable
◦ is secure
◦ performs reasonably even under flash and peak loads
◦ is scalable
◦ is portable, where required (perform across different common platforms), compatible with multiple
browsers
◦ is reusable
◦ is interoperable with other systems
◦ has universal accessibility
◦ is well-documented
23
Agenda
1. What is Web Engineering?
2. Defining Web Applications.
3. The Case for Web Engineering.
4. Categories of Web Applications.
5. Characteristics of Web Apps.
6. Key Knowledge Areas.
24
4 Key Knowledge Areas
Software
Hypermedia
Engineering
•Process • Design & Structure
•Design Information Space
•Implementation Web • Navigation
•Test • Visualization
•Operation Engineering • Usability
•Maintenance • Collaboration
Network Information
Engineering © 1997-2005 Dr. Martin Gaedke
Systems
•Physical Layer •Data Design, ER,...
•Internet Layer Others... •RDBMS
•Transport Layer •Query Languages
•Performance •[Link]: FS,...
25
Summary
THAT ’S ALMOST ALL FOR TODAY…
26
Things to keep in mind
❑Web Engineering is not about HTML and JavaScript and web
technology - Like Software Engineering is not about C or Java!
❑It aims at systematic development of Web applications
according to a specific methodology
❑Web Engineering ask for multidisciplinary approach.
❑Standards are important in Web like in all the other Engineering
fields
27
Extra Resources
Suggested
◦ Google “Web Engineering”
28
Assignment
Pick up two of the categories introduced today and
provide a small essay on it
◦ Max 2 pages Word, Times 11pt – check plagiarism.
◦ Figures do not count for the space.
◦ Blackboard
29