Pendahuluan
Pendahuluan dalam
dalam
Perekayasaan
Perekayasaan
Aplikasi
Aplikasi Web
Web
Aplikasi
Aplikasi Web
Web
Dr. Mohammad
Dr. Mohammad IqbalIqbal Thanks to
Premis
Premis dasar
dasar
Developing a WebDeveloping a Web--based system is no longer an event, it is based system is no longer an event, it is
a process a process
WebWeb--based systems are growing systemsbased systems are growing systems
WebWeb--based systems are growing systemsbased systems are growing systems
WebWeb--based applications are adding a whole new based applications are adding a whole new
Terminologi
Terminologi
Web System Web System –– an infrastructure or system enabling the an infrastructure or system enabling the
operation of a Web application operation of a Web application
Web Application Web Application –– a distributed application that a distributed application that
Web Application Web Application –– a distributed application that a distributed application that
accomplishes a certain business need based on the accomplishes a certain business need based on the
technologies of WWW and that consists of a set of Web technologies of WWW and that consists of a set of Web--specific resources
Awalnya
Awalnya Web
Web itu
itu Sederhana
Sederhana
“Even simple rules lead to complex behavior” “Even simple rules lead to complex behavior” –– Wolfram, Wolfram, New Science
New Science, 2002, 2002
“It is now technically possible and feasible to put the “It is now technically possible and feasible to put the
“It is now technically possible and feasible to put the “It is now technically possible and feasible to put the
entire creative works of man online”
entire creative works of man online” –– KahleKahle, The Internet , The Internet Archives
Archives
EE--commerce (Web/Internet) accounted for 2% of US retail commerce (Web/Internet) accounted for 2% of US retail
sales in 4Q, 2004
Laju
Laju Kegagalan
Kegagalan Proyek
Proyek Software
Software
(1/2)
(1/2)
IEEE Software March/April 2005
Laju
Laju Kegagalan
Kegagalan Proyek
Proyek Software
Software
(2/2)
(2/2)
IEEE Software March/April 2005
Problems
Problems pada
pada Proyek
Proyek Berbasiskan
Berbasiskan
Web
Web berskala
berskala besar
besar
Bagaimana untuk sistem Web
Yang kompleks ?
Tingkat Kompleksitas
Tingkat Kompleksitas
Web Application Service-Based Web Application and Federations Dynamically Created Site Comp lex Static Site Data Collector Site Dynamic Data Access and Federations Service Application Centered Document Centered Simp leKarakteristik
Karakteristik
Today’s focus
Today’s focus on largeon large--scale scale and ubiquitously useable Web Applicationsand ubiquitously useable Web Applications Many Users
Many Users –– many languages many languages –– many culturesmany cultures Different access mechanisms
Different access mechanisms Many User Agents
Many User Agents Presents
Presents large volume of interrelated informationlarge volume of interrelated information (including different media) (including different media) and processes and processes Appropriate presentation Appropriate presentation Appropriate presentation Appropriate presentation
Progression through activities
Progression through activities –– finish one thing before starting anotherfinish one thing before starting another Often guides user
Often guides user
Growing and increasing
Growing and increasing complexity complexity
Many product iterations/versions/refinements (calls for
Many product iterations/versions/refinements (calls for Reuse)Reuse)
Many developers and operators, complex handling of temporal media (e.g. Many developers and operators, complex handling of temporal media (e.g. publishing of company news)
publishing of company news)
Customization, Personalization, Security issues Customization, Personalization, Security issues and a lot more...
and a lot more... E.g. “Up
Generasi ke
Generasi ke--4 Sistem Web?
4 Sistem Web?
Identification Provider / Security Token Service
IP/STS IP/STS Security Context Presence / Location Server P/LS P/LS Presence/Location Context Cluster: Classification Classification Classification
Classification ClassificationClassification
Discovery Discovery
SOA Functionality
Composition Engine Federation, Security Transaction, etc.
Configuration/Context
Components, End Points Semantic Web
Policy, Permissions, etc.
Model
Model--drivendriven support systems support systems
Communication
Web Services Universe
HTTP/SOAP
SOAP =
Pengembangan
Pengembangan Aplikasi
Aplikasi Web
Web
Still Ad
Still Ad--Hoc instead of a disciplined procedureHoc instead of a disciplined procedure
Still AdStill Ad--Hoc instead of a disciplined procedureHoc instead of a disciplined procedure
CopyCopy--andand--Paste ParadigmPaste Paradigm
Lack between Design Model and Implementation ModelLack between Design Model and Implementation Model
Design concepts get lost in the underlying modelDesign concepts get lost in the underlying model
Short lifecycle of a Web Application Short lifecycle of a Web Application --> Maintenance and Evolution > Maintenance and Evolution
issues
issues --> Reuse issues> Reuse issues
Pengembangan
Pengembangan Aplikasi
Aplikasi Web
Web Saat
Saat Ini
Ini
Lacks rigor, systematic approachLacks rigor, systematic approach
The completed system is not what the user wantsThe completed system is not what the user wants
System not developed on time, cost overrunsSystem not developed on time, cost overruns
Lacks scaleability and maintainability, hence limited useful Lacks scaleability and maintainability, hence limited useful
Lacks scaleability and maintainability, hence limited useful Lacks scaleability and maintainability, hence limited useful
life life
Does not meet performance requirementsDoes not meet performance requirements
Sistem
Sistem Web : Problem
Web : Problem
ProblemsProblems
Inability to maintainInability to maintain
Unable to meet evolving needs and grow at the rate needed Unable to meet evolving needs and grow at the rate needed ––
scaleability scaleability
Unreliable Unreliable –– crashescrashes
Unreliable Unreliable –– crashescrashes
WebWeb--dependent organizations cannot afford to havedependent organizations cannot afford to have
Faulty systems Faulty systems –– reliability, security issuesreliability, security issues
Frequent downtime Frequent downtime –– dependabilitydependability
Wrong, inconsistent, or stale content/informationWrong, inconsistent, or stale content/information
Isu
Isu Pengembangan
Pengembangan Web
Web
Many developers think that Web application development is just Many developers think that Web application development is just
accomplished using “off the shelf” tools accomplished using “off the shelf” tools
They have been taught to think this wayThey have been taught to think this way
Certain classes of applications do fit this simple generalizationCertain classes of applications do fit this simple generalization
Certain classes of applications do fit this simple generalizationCertain classes of applications do fit this simple generalization
Many other Web applications do notMany other Web applications do not
“There is more to Web application development than visual design and “There is more to Web application development than visual design and
user interface” user interface”
Planning, system design, testing, continual maintenance, quality Planning, system design, testing, continual maintenance, quality
Pertimbangan
Pertimbangan Kualitas
Kualitas ??
Lack of consideration to:Lack of consideration to:
NavigationNavigation
AccessibilityAccessibility
ScalabilityScalability
Compatibility and Compatibility and
interoperability interoperability
SecuritySecurity
ReadabilityReadability
ReliabilityReliability
MaintainabilityMaintainability
Pengembangan
Pengembangan Web
Web –– Tantangan
Tantangan
Politis
Politis (Non
(Non teknis
teknis))
Ringkasan
Ringkasan Pengembangan
Pengembangan Sistem
Sistem
Web
Web kini
kini (1/2)
(1/2)
Less attention is given to development methodologies, testing and Less attention is given to development methodologies, testing and
evaluation, quality assessment and control evaluation, quality assessment and control
Largely relies on individual’s own development practicesLargely relies on individual’s own development practices
Lack of realization of its lifecycleLack of realization of its lifecycle
Lack of realization of its lifecycleLack of realization of its lifecycle
Analysis of needs, redesign, development (including coding), Analysis of needs, redesign, development (including coding),
management, metrics, maintenance management, metrics, maintenance
Calls for significant systemCalls for significant system--level and design decisionslevel and design decisions
It is an exercise It is an exercise –– not an eventnot an event
Legitimate concern about the manner in which they are created and Legitimate concern about the manner in which they are created and
their long
Ringkasan
Ringkasan Pengembangan
Pengembangan Sistem
Sistem
Web
Web kini
kini (2/2)
(2/2)
In many cases, Web systems development isIn many cases, Web systems development is
Chaotic Chaotic -- semrawutsemrawut
FailureFailure--prone prone –– rawanrawan kegagalankegagalan
Unsatisfactory Unsatisfactory –– tidaktidak nyamannyaman
Fakta bahwa Sistem Web
Adalah Target #1
Resiko
Resiko Bisnis
Bisnis berbasiskan
berbasiskan Web
Web
Long system delivery timeLong system delivery time
Low responsiveness to business changesLow responsiveness to business changes
High project development and ongoing support costsHigh project development and ongoing support costs
High project development and ongoing support costsHigh project development and ongoing support costs
Harapan
Harapan pada
pada Bisnis
Bisnis yang
yang
berbasiskan
berbasiskan Web
Web
Project delivery time Project delivery time –– shortershorter
System quality System quality –– improvedimproved
Technology investment Technology investment -- optimizedoptimized
Membutuhkan
Membutuhkan Proses
Proses
Domination of the different requirements calls for a systematic Domination of the different requirements calls for a systematic
approach approach
Producing highProducing high--quality applications in a costquality applications in a cost--effective wayeffective way
Goal Goal –– application should beapplication should be
Maintainable and evolvableMaintainable and evolvable
ReliableReliable
EfficientEfficient
Appropriate for UIAppropriate for UI
Atau
Atau sekedar
sekedar Perekayasaan
Perekayasaan
Perangkat
Perangkat Lunak
Lunak sederhana
sederhana saja
saja??
“Fundamental differences [between hypermedia and other disciplines] however, make a pure transposition of
techniques both difficult and inadequate. An important techniques both difficult and inadequate. An important part of hypertext design concerns aesthetic and cognitive aspects that software engineering environments do
not support.”
Web Development vs. Software
Web Development vs. Software
Development
Development
They are different due to the nature and distinct They are different due to the nature and distinct
requirements of Web
requirements of Web--based systemsbased systems
Even though WebEven though Web--based systems often require based systems often require
Even though WebEven though Web--based systems often require based systems often require
programming and specialty software, the development of programming and specialty software, the development of that software is often unique
Web
Web--Based Systems vs. Software
Based Systems vs. Software
(1/3)
(1/3)
WebWeb--based systems:based systems:
Are often documentAre often document--oriented containing static or dynamic oriented containing static or dynamic
content content
More emphasis on “look and feel”More emphasis on “look and feel”
More emphasis on “look and feel”More emphasis on “look and feel”
Are “contentAre “content--driven” driven” –– process is driven by the availability of process is driven by the availability of
content content
Need to cater to users with diverse skills and capabilitiesNeed to cater to users with diverse skills and capabilities
Are typically constrained to a short development time Are typically constrained to a short development time
making it difficult to apply the same levels of formal planning making it difficult to apply the same levels of formal planning and testing used in software development
Web
Web--Based Systems vs. Software
Based Systems vs. Software
(2/3)
(2/3)
WebWeb--based systems:based systems:
Differ by means of their access and delivery mediumDiffer by means of their access and delivery medium
Have different life spansHave different life spans
Have differing development requirementsHave differing development requirements
Have differing development requirementsHave differing development requirements
Developers are vastly varied in terms of their background, skills, Developers are vastly varied in terms of their background, skills,
knowledge, and system understanding knowledge, and system understanding
Web
Web--Based Systems vs. Software
Based Systems vs. Software
(3/3)
(3/3)
WebWeb--based systems:based systems:
Should be scalableShould be scalable
Have varying performance requirements Have varying performance requirements –– must be able to must be able to
cope with uncertain, random heavy demands on services cope with uncertain, random heavy demands on services cope with uncertain, random heavy demands on services cope with uncertain, random heavy demands on services
Must be secureMust be secure
Categories of Web
Categories of Web--Based Systems
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
Engineering
Engineering
Discussing the term in the context of (software) Discussing the term in the context of (software) engineering:
engineering:
“Engineering is about the systematic application of scientific “Engineering is about the systematic application of scientific
knowledge in creating and building cost
knowledge in creating and building cost--effective effective solutions to practical problems”,
solutions to practical problems”, Berry [Report No. CMU/SEI
Why Engineering?
Why Engineering?
Engineering is associated with “scaleEngineering is associated with “scale--up”up”
New issues arise when scaling by 2+ orders of magnitudeNew issues arise when scaling by 2+ orders of magnitude
Skills of architects and all kinds of engineers are different Skills of architects and all kinds of engineers are different
Skills of architects and all kinds of engineers are different Skills of architects and all kinds of engineers are different
from those needed for designing and building simple from those needed for designing and building simple structures and simple systems
What is Web Engineering?
What is Web Engineering?
There is still no common answer There is still no common answer
“Web Engineering is concerned with establishment and use of sound “Web Engineering is concerned with establishment and use of sound scientific, engineering and management principles and disciplined and scientific, engineering and management principles and disciplined and systematic approaches to the successful development, deployment systematic approaches to the successful development, deployment and maintenance of high quality Web
and maintenance of high quality Web--based systems and based systems and applications”, SIGWEB Newsletter
applications”, SIGWEB Newsletter
“Web Engineering is a discipline among disciplines, cutting across “Web Engineering is a discipline among disciplines, cutting across applications”, SIGWEB Newsletter
applications”, SIGWEB Newsletter
“Web Engineering is a discipline among disciplines, cutting across “Web Engineering is a discipline among disciplines, cutting across
computer science, information systems, and software engineering, as computer science, information systems, and software engineering, as well as benefiting from several non
well as benefiting from several non--IT specializations”, IEEE IT specializations”, IEEE Multimedia
Multimedia
““While Web Engineering adopts and encompasses many software While Web Engineering adopts and encompasses many software engineering principles, it incorporates many new approaches, engineering principles, it incorporates many new approaches,
methodologies, tools, techniques, and guidelines to meet the unique methodologies, tools, techniques, and guidelines to meet the unique requirements of Web
requirements of Web--based systems. Developing Webbased systems. Developing Web--based systems based systems is significantly different from traditional software development and is significantly different from traditional software development and poses many additional challenges
Web Engineering
Web Engineering
The application of systematic, disciplined, and quantifiable
approaches to the design, production, deployment,
operation, maintenance and evolution of Web-based
operation, maintenance and evolution of Web-based
software products.
Web Engineering (1/2)
Web Engineering (1/2)
A holistic and proactive approach to Web systems developmentA holistic and proactive approach to Web systems development
Offers systematic approaches and disciplined processes for Offers systematic approaches and disciplined processes for
development development
Deals with the management of complexity and diversity of Web Deals with the management of complexity and diversity of Web
development development
Brings to WebBrings to Web--based system developmentbased system development
ControlControl
Risk minimizationRisk minimization
Web Engineering (2/2)
Web Engineering (2/2)
Other factorsOther factors
Document orientationDocument orientation
Navigational designNavigational design
Changing technologyChanging technology
Changing technologyChanging technology
Budget and time constraintsBudget and time constraints
People and internal politicsPeople and internal politics
Division between theory and practiceDivision between theory and practice
Goals of Web Engineering
Goals of Web Engineering
Develop high quality Web applicationsDevelop high quality Web applications
EffectiveEffective
EfficientEfficient
Achieve desired applicationAchieve desired application
Achieve desired applicationAchieve desired application
Maintain and evolveMaintain and evolve
Plan for change Plan for change –– solution may change the problemsolution may change the problem
Encourage the use of systematic, disciplined and Encourage the use of systematic, disciplined and
•Process •Design
•Implementation •Test
•Design & Structure Information Space •Navigation
•Visualization
Key Knowledge Areas
Key Knowledge Areas
Web Engineering Software Engineering Hypermedia •Physical Layer •Internet Layer •Transport Layer •Performance •Test •Operation •Maintenance •Visualization •Usability •Collaboration
•Data Design, ER,... •RDBMS
•Query Languages •Strg.Devices: FS,...
Engineering
Network
Engineering InformationSystems
Web Engineering Activities (1/3)
Web Engineering Activities (1/3)
Requirements specification and analysisRequirements specification and analysis
WebWeb--based system analysis and designbased system analysis and design
Web development methodologies and techniquesWeb development methodologies and techniques
Migration of legacy systems to Web environmentsMigration of legacy systems to Web environments
WebWeb--based realbased real--time applications developmenttime applications development
WebWeb--based multimedia application developmentbased multimedia application development
Testing, verification and validation techniques and toolsTesting, verification and validation techniques and tools
Web Engineering Activities (2/3)
Web Engineering Activities (2/3)
Management of access to applications and privilegesManagement of access to applications and privileges
Configuration and project managementConfiguration and project management
“Web metrics” “Web metrics” –– metrics for estimation of development effortmetrics for estimation of development effort
Performance specification and evaluationPerformance specification and evaluation
Update and maintenanceUpdate and maintenance
Development models, teams, and staffingDevelopment models, teams, and staffing
Human and cultural aspectsHuman and cultural aspects
Web Engineering Activities (3/3)
Web Engineering Activities (3/3)
Graphics, animation, and streamingGraphics, animation, and streaming
Process Models and Web Engineering (1/2)
Process Models and Web Engineering (1/2)
Code
Code--andand--fix model (ad hoc development)fix model (ad hoc development) The Waterfall model
The Waterfall model Prototyping model Prototyping model
Evolutionary Development model Evolutionary Development model Evolutionary Development model Evolutionary Development model Spiral model
Spiral model
Process Models and Web Engineering (2/2)
Process Models and Web Engineering (2/2)
MSFv3 Process model MSFv3 Process model Agile Processes
Agile Processes Reuse
Reuse--Oriented ApproachesOriented Approaches
WebComposition Process model WebComposition Process model WebComposition Process model WebComposition Process model Agile Processes, XP, Scrum
Approaches to Managing a Project (1/2)
Approaches to Managing a Project (1/2)
Approaches to Managing a Project (2/2)
Approaches to Managing a Project (2/2)