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
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