Developing a Web--based system is no longer an event, it is

Pendahuluan dalam
Perekayasaan
Aplikasi Web
Dr. Mohammad Iqbal
Thanks to Bebo White

Premis dasar
Web-based system is no longer an event, it is
 Developing a Weba process
Web--based systems are growing systems
 Web
 Web
Web--based applications are adding a whole new

dimension to software development

Terminologi
 Web System – an infrastructure or system enabling the

operation of a Web application
 Web Application – a distributed application that


accomplishes a certain business need based on the
technologies of WWW and that consists of a set of WebWebspecific resources

Awalnya Web itu Sederhana
 “Even simple rules lead to complex behavior” – Wolfram,

New Science,
Science, 2002
 “It is now technically possible and feasible to put the

entire creative works of man online” – Kahle
Kahle,, The Internet
Archives
 E-commerce (Web/Internet) accounted for 2% of US retail

sales in 4Q, 2004 - $18.4 billion – US Census Bureau

Laju Kegagalan Proyek Software
(1/2)


IEEE Software
March/April 2005
www.computer.org/software

Laju Kegagalan Proyek Software
(2/2)

IEEE Software
March/April 2005
www.computer.org/software

Problems pada Proyek Berbasiskan
Web berskala besar

(Source: Epner, M., Cutter Consortium)

Bagaimana untuk sistem Web
Yang kompleks ?


Complex

Tingkat Kompleksitas
Dynamically
Created
Site

Web Application

Simple

Dynamic Data
Access
Static
Site

Service-Based
Web Application
and Federations


Service
Data
Collector Site

Document Centered

Application Centered

Following “Web Site Engineering: Beyond Web Page Design”, by Th. Powell et al.

Karakteristik
Today’s focus on largelarge-scale and ubiquitously useable Web Applications
Many Users – many languages – many cultures
Different access mechanisms
Many User Agents
Presents large volume of interrelated information (including different media)
and processes
Appropriate presentation
Progression through activities – finish one thing before starting another
Often guides user

Growing and increasing complexity
Many product iterations/versions/refinements (calls for Reuse)
Many developers and operators, complex handling of temporal media (e.g.
publishing of company news)
Customization, Personalization, Security issues
and a lot more...
E.g. “Up“Up-toto-date” by following trends

Generasi keke-4 Sistem Web?
Cluster:

IP/STS

Discovery

Classification

Classification

Classification


Identification Provider /
Security Token Service

Security
Context

P/LS
Presence /
Location Server

Presence/Location
Context

Web Services Universe
HTTP/SOAP

Communication

SOA Functionality

 Composition Engine
 Federation, Security
 Transaction, etc.

Configuration/Context
 Components, End Points
 Semantic Web
 Policy, Permissions, etc.

Model-driven
Modelsupport systems
SOAP =
Simple Object Access Protocol

Pengembangan Aplikasi Web

Ad-Hoc instead of a disciplined procedure
 Still Ad Copy
Copy--and
and--Paste Paradigm

 Lack between Design Model and Implementation Model
 Design concepts get lost in the underlying model
 Short lifecycle of a Web Application -> Maintenance and Evolution

issues -> Reuse issues

-> Web Crisis

Pengembangan Aplikasi Web Saat Ini
 Lacks rigor, systematic approach
 The completed system is not what the user wants
 System not developed on time, cost overruns
 Lacks scaleability and maintainability, hence limited useful

life
 Does not meet performance requirements
 Resources are wasted

Sistem Web : Problem
 Problems

 Inability to maintain
 Unable to meet evolving needs and grow at the rate needed –
scaleability
 Unreliable – crashes
 WebWeb-dependent organizations cannot afford to have
 Faulty systems – reliability, security issues
 Frequent downtime – dependability
 Wrong, inconsistent, or stale content/information
 Web systems problems are not easy to hide

Isu Pengembangan Web
 Many developers think that Web application development is just

accomplished using “off the shelf” tools

 They have been taught to think this way
 Certain classes of applications do fit this simple generalization
 Many other Web applications do not
 “There is more to Web application development than visual design and


user interface”

 Planning, system design, testing, continual maintenance, quality

assurance, performance evaluation, scalability,….

Pertimbangan Kualitas ?
 Lack of consideration to:
 Navigation
 Accessibility
 Scalability
 Reliability
 Maintainability
 Usability

 Compatibility and

interoperability
 Security
 Readability


Pengembangan Web – Tantangan
Politis (Non teknis)
teknis)
 Anyone can be a Web content creator and maintainer!

Ringkasan Pengembangan Sistem
Web kini (1/2)
 Less attention is given to development methodologies, testing and

evaluation, quality assessment and control

 Largely relies on individual’s own development practices
 Lack of realization of its lifecycle
 Analysis of needs, redesign, development (including coding),

management, metrics, maintenance
system-level and design decisions
 Calls for significant system-

 It is an exercise – not an event
 Legitimate concern about the manner in which they are created and

their longlong-term quality and integrity

Ringkasan Pengembangan Sistem
Web kini (2/2)
 In many cases, Web systems development is
 Chaotic - semrawut

Failure--prone – rawan kegagalan
 Failure
 Unsatisfactory – tidak nyaman

Fakta bahwa Sistem Web
Adalah Target #1
Penyerangan Digital?

Resiko Bisnis berbasiskan Web
 Long system delivery time
 Low responsiveness to business changes
 High project development and ongoing support costs
 Questionable system quality

Harapan pada Bisnis yang
berbasiskan Web
 Project delivery time – shorter
 System quality – improved
 Technology investment - optimized

Membutuhkan Proses
 Domination of the different requirements calls for a systematic

approach
 Producing highhigh-quality applications in a cost
cost--effective way
 Goal – application should be
 Maintainable and evolvable
 Reliable
 Efficient
 Appropriate for UI
 Delivered on time at predictable cost

Atau sekedar Perekayasaan
Perangkat Lunak sederhana saja
saja??
“Fundamental differences [between hypermedia and other
disciplines] however, make a pure transposition of
techniques both difficult and inadequate. An important
part of hypertext design concerns aesthetic and cognitive
aspects that software engineering environments do
not support.”
--Nanard & Nanard

Web Development vs. Software
Development
 They are different due to the nature and distinct

requirements of WebWeb-based systems
Web-based systems often require
 Even though Webprogramming and specialty software, the development of
that software is often unique

Web--Based Systems vs. Software
Web
(1/3)
Web--based systems:
 Web
document-oriented containing static or dynamic
 Are often document




content
More emphasis on “look and feel”
Are “content“content-driven” – process is driven by the availability of
content
Need to cater to users with diverse skills and capabilities
Are typically constrained to a short development time
making it difficult to apply the same levels of formal planning
and testing used in software development

Web--Based Systems vs. Software
Web
(2/3)
Web--based systems:
 Web
 Differ by means of their access and delivery medium
 Have different life spans
 Have differing development requirements
 Developers are vastly varied in terms of their background, skills,

knowledge, and system understanding
 Developers differ in their perception of Web systems

Web--Based Systems vs. Software
Web
(3/3)
Web--based systems:
 Web
 Should be scalable
 Have varying performance requirements – must be able to

cope with uncertain, random heavy demands on services
 Must be secure
 Are subject to assorted legal, social, and ethical scrutiny

Categories of WebWeb-Based Systems
Category

Examples

Informational

Online newspapers, manuals

Interactive

Registration forms

Transactional

Electronic shopping

Workflow-oriented

Status monitoring

Collaborative work

Distributed authoring

Online communities

Discussion groups

Web portals

Shopping malls

Web services

Enterprise applications

Engineering
Discussing the term in the context of (software)
engineering:

“Engineering is about the systematic application of scientific
knowledge in creating and building costcost-effective
solutions to practical problems”,
Berry [Report No. CMU/SEICMU/SEI-92
92--TRTR-34]

Why Engineering?
“scale-up”
 Engineering is associated with “scale New issues arise when scaling by 2+ orders of magnitude
 Skills of architects and all kinds of engineers are different

from those needed for designing and building simple
structures and simple systems

What is Web Engineering?
There is still no common answer

“Web Engineering is concerned with establishment and use of sound
scientific, engineering and management principles and disciplined and
systematic approaches to the successful development, deployment
and maintenance of high quality WebWeb-based systems and
applications”, SIGWEB Newsletter
“Web Engineering is a discipline among disciplines, cutting across
computer science, information systems, and software engineering, as
well as benefiting from several nonnon-IT specializations”, IEEE
Multimedia
“While Web Engineering adopts and encompasses many software
engineering principles, it incorporates many new approaches,
methodologies, tools, techniques, and guidelines to meet the unique
requirements of WebWeb-based systems. Developing Web
Web--based systems
is significantly different from traditional software development and
poses many additional challenges”
challenges”, IEEE MultiMedia

Web Engineering
The application of systematic, disciplined, and quantifiable
approaches to the design, production, deployment,
operation, maintenance and evolution of Web-based
software products.
---Gaedke, 2000

Web Engineering (1/2)
 A holistic and proactive approach to Web systems development
 Offers systematic approaches and disciplined processes for

development

 Deals with the management of complexity and diversity of Web

development

 Brings to WebWeb-based system development
 Control
 Risk minimization
 Enhanced maintainability and quality

Web Engineering (2/2)
 Other factors
 Document orientation
 Navigational design
 Changing technology
 Budget and time constraints
 People and internal politics
 Division between theory and practice
 Lack of understanding…

Goals of Web Engineering
 Develop high quality Web applications
 Effective
 Efficient
 Achieve desired application

 Maintain and evolve
 Plan for change – solution may change the problem

 Encourage the use of systematic, disciplined and

quantifiable approaches and process models

Key Knowledge Areas
Software
Engineering
•Process
•Design
•Implementation
•Test
•Operation
•Maintenance

Hypermedia

Web
Engineering

Information
Systems

Network
Engineering
•Physical Layer
•Internet Layer
•Transport Layer
•Performance

•Design & Structure
Information Space
•Navigation
•Visualization
•Usability
•Collaboration

Others...

•Data Design, ER,...
•RDBMS
•Query Languages
•Strg.Devices: FS,...

Web Engineering Activities (1/3)


Requirements specification and analysis



Web--based system analysis and design
Web



Web development methodologies and techniques



Migration of legacy systems to Web environments



Web--based realWeb
real-time applications development



Web--based multimedia application development
Web



Testing, verification and validation techniques and tools



Quality assessment, control and assurance

Web Engineering Activities (2/3)


Management of access to applications and privileges



Configuration and project management



“Web metrics” – metrics for estimation of development effort



Performance specification and evaluation



Update and maintenance



Development models, teams, and staffing



Human and cultural aspects



User--centric development
User

Web Engineering Activities (3/3)
 Graphics, animation, and streaming
 Copyright, legal and social aspects

Web Engineering is Multidisciplinary

Example – Web Project Management

Process Models and Web Engineering (1/2)
Code--and
Code
and--fix model (ad hoc development)
The Waterfall model
Prototyping model
Evolutionary Development model
Spiral model
Rational Unified Process model

Process Models and Web Engineering (2/2)
MSFv3 Process model
Agile Processes
Reuse--Oriented Approaches
Reuse
WebComposition Process model
Agile Processes, XP, Scrum
And many, many more…

Approaches to Managing a Project (1/2)

From Wysocki & McGary

Approaches to Managing a Project (2/2)

From Wysocki & McGary