why web engineering is needed for web applications and ... · why web engineering is needed for web...
TRANSCRIPT
Why Web Engineering Is Needed For Web
Applications and Services
Bebo WhiteStanford Linear Accelerator Center
March 10, 2005
My Basic PremisesMy Basic Premises
Developing a Web-based system is no longer an event, it is a processWeb-based systems are growing systemsWeb-based applications are adding a whole new dimension to software development
Developing a Web-based system is no longer an event, it is a processWeb-based systems are growing systemsWeb-based applications are adding a whole new dimension to software development
The Web Started SimpleThe Web Started Simple
“Even simple rules lead to complex behavior” – Wolfram, New Science, 2002“It is now technically possible and feasible to put the entire creative works of man online” – Kahle, The Internet ArchivesE-commerce (Web/Internet) accounted for 2% of US retail sales in 4Q, 2004 - $18.4 billion – US Census Bureau
“Even simple rules lead to complex behavior” – Wolfram, New Science, 2002“It is now technically possible and feasible to put the entire creative works of man online” – Kahle, The Internet ArchivesE-commerce (Web/Internet) accounted for 2% of US retail sales in 4Q, 2004 - $18.4 billion – US Census Bureau
1st Generation1st Generation
Web SystemApplication protocol: HTTP
Browser / User Agent
Web Application
Request
Response Resource Web Server
Web Application
Client-Side Server-Side
BrowserMosaicHTMLImages (GIF)HTML-FormsHelper
Audio, Video etc.
Web SystemHTTP
Web ServerHTTPCGI
DatabaseInformation Systems
2nd Generation2nd Generation
Web SystemApplication protocol: HTTP
Browser / User Agent
Web Application
Request
Response Resource Web Server
Web Application
Client-Side Server-Side
BrowserMosaic, NetscapeHTML, FramesImagesHTML-FormsHelper
Audio, Video etc.
Web SystemHTTPCookies
Web ServerHTTPServer-API & CGI
DatabaseInformation SystemsMedia Server
Some Definitions are in OrderSome Definitions are in Order
Web System – an infrastructure or system enabling the operation of a Web ApplicationWeb Application – a distributed application that accomplishes a certain business need based on technologies of the World Wide Web and that consists of a set of Web-specific resources
Web System – an infrastructure or system enabling the operation of a Web ApplicationWeb Application – a distributed application that accomplishes a certain business need based on technologies of the World Wide Web and that consists of a set of Web-specific resources
Problems with Large Web-based Projects
Problems with Large Web-based Projects
16
-84
47
-53
21
-79
37
-63
Satisfy Business Need
Have Required Functionality Delivered
In Time
Within Budget
(Source: Epner, M., Cutter Consortium, 7 November 2000)
Web Application DevelopmentWeb Application Development
Still Ad-hoc instead of a disciplined procedureCopy-and-Paste Paradigm
Lack between design-model and implementation-modelDesign-concepts get lost in the underlying modelMany short lifecycle of a Web Application: Maintenance and Evolution problems à Reuse Problems
à Web-Crisis
Still Ad-hoc instead of a disciplined procedureCopy-and-Paste Paradigm
Lack between design-model and implementation-modelDesign-concepts get lost in the underlying modelMany short lifecycle of a Web Application: Maintenance and Evolution problems à Reuse Problems
à Web-Crisis
HTML
HTML
HTMLImplementation-
ModelDesign-Model
Web Application DevelopmentCurrent Practices
Web Application DevelopmentCurrent Practices
Lacks rigor, systematic approachThe completed system is not what the user wantsSystem not developed on time, cost overrunsLacks scalability and maintainability, hence a limited useful lifeDoes not meet performance requirementsResources are wasted
Lacks rigor, systematic approachThe completed system is not what the user wantsSystem not developed on time, cost overrunsLacks scalability and maintainability, hence a limited useful lifeDoes not meet performance requirementsResources are wasted
Web Systems: ProblemsWeb Systems: Problems
ProblemsInability to maintainUnable to meet evolving needs and grow at the rate needed – scalabilityUnreliable – crashes
Web-dependent organizations cannot afford to have
Faulty systems – reliability, security issuesFrequent downtime – dependabilityWrong, inconsistent, or stale content/information
Web systems problems are not easy to hide
ProblemsInability to maintainUnable to meet evolving needs and grow at the rate needed – scalabilityUnreliable – crashes
Web-dependent organizations cannot afford to have
Faulty systems – reliability, security issuesFrequent downtime – dependabilityWrong, inconsistent, or stale content/information
Web systems problems are not easy to hide
Web Development IssuesWeb Development Issues
Many developers think that Web application development is just Web page creation using HTML, FrontPage, Dreamweaver, etc. with graphics design and/or simple hyperlinkingThey have been taught to think this way!Certain classes of applications do fit this simple generalization – e.g., personal Web pages, event brochures, etc.Many other Web applications go beyond simple content presentation/navigation
Many developers think that Web application development is just Web page creation using HTML, FrontPage, Dreamweaver, etc. with graphics design and/or simple hyperlinkingThey have been taught to think this way!Certain classes of applications do fit this simple generalization – e.g., personal Web pages, event brochures, etc.Many other Web applications go beyond simple content presentation/navigation
Web Development Issues (2)Web Development Issues (2)
“There is more to Web application development than visual design and user interface”Planning, system design, testing, continual maintenance, quality assurance, performance evaluation, scalability,…
“There is more to Web application development than visual design and user interface”Planning, system design, testing, continual maintenance, quality assurance, performance evaluation, scalability,…
Consideration to Quality?Consideration to Quality?
Lack of consideration to:NavigationAccessibilityScalabilityReliabilityMaintainabilityUsabilityCompatibility and interoperabilitySecurityReadability
Lack of consideration to:NavigationAccessibilityScalabilityReliabilityMaintainabilityUsabilityCompatibility and interoperabilitySecurityReadability
Web Development – Political Challenge
Web Development – Political Challenge
Anyone can be a Web content creator and maintainer!Anyone can be a Web content creator and maintainer!
Web System
Business Unit
IT Department
Web Development Team
Marketing
Finance/Accounting
PersonnelEtc, etc
(Adapted from Susan Dart, 2002)
Web System Development: Summary I
Web System Development: Summary I
Less attention is given to development methodologies, testing and evaluation, quality assessment and controlLargely relies on individuals’ own development practicesLack of realization of its lifecycle
Analysis of needs, redesign, development (including coding), management, metrics, maintenanceCalls for significant system-level and design decisions
It is an exercise – not an eventLegitimate concern about the manner in which they are created and their long-term quality and integrity
Less attention is given to development methodologies, testing and evaluation, quality assessment and controlLargely relies on individuals’ own development practicesLack of realization of its lifecycle
Analysis of needs, redesign, development (including coding), management, metrics, maintenanceCalls for significant system-level and design decisions
It is an exercise – not an eventLegitimate concern about the manner in which they are created and their long-term quality and integrity
Web System Development: Summary IIWeb System Development: Summary II
In many cases, Web Development is:ChaoticFailure-proneUnsatisfactory
In many cases, Web Development is:ChaoticFailure-proneUnsatisfactory
3rd Generation (Multi-Tier)3rd Generation (Multi-Tier)
Web SystemApplication protocol: HTTP, SOAP, WebDAV, other
Browser / User Agent
Web Application
Request
Response Resource Web Server
Web Application
Client-Side Server-Side
User AgentNetscape, IE, and PDA-Browser etc.Other Types of User AgentPlug-Ins, Applets, ActiveXScript-CodeDHTML, More...
Web SystemHTTP, WebDAV, SOAP, otherCookiesUDDIOther relevant protocols FTP, SMTPMore...
Web ServerHTTP, moreServer-API & CGIXML-SupportComponent-Support
ServletsWeb-Services
4th Generation?4th Generation?
SOA Functionalityn Composition Enginen Federation, Securityn Transaction, etc.
Configuration/Contextn Components, End Pointsn Semantic Webn Policy, Permissions, etc.
ModelModel--drivendrivensupport systemssupport systems
Communication
Identification Provider / Security Token Service
IP/STSIP/STS
SecurityContext
SecurityContext
Presence /Location Server
P/LSP/LS
Presence/LocationContext
Presence/LocationContext
Cluster:
ClassificationClassificationClassificationClassification
Web Services Universe
ClassificationClassification
UDDIUDDI
HTTP/SOAP© 1997-2005 Dr. Martin Gaedke
Universal Description,
Discovery, and Integration
Technology DriversTechnology Drivers
Computing power Still doubling every 18 monthsPC-based data centers
ConnectivityLow cost, broad reach InternetWireless, broadband access
Device proliferationPDAs, cell phones, gas pumpsTowards a digital devices decade
Internet standardsXML-based integration
User InterfaceMany (!) possibilities
Computing power Still doubling every 18 monthsPC-based data centers
ConnectivityLow cost, broad reach InternetWireless, broadband access
Device proliferationPDAs, cell phones, gas pumpsTowards a digital devices decade
Internet standardsXML-based integration
User InterfaceMany (!) possibilities
Range of ComplexityRange of Complexity
StaticSite
DataCollector Site
Dynamic DataAccess
Web Application
Service-BasedWeb Applicationand Federations
Dynamically Created
Site
Service
Application CenteredDocument Centered
Com
plex
Sim
ple
Following “Web Site Engineering: Beyond Web Page Design”, by Th. Powell et al.
CharacteristicsCharacteristicsToday’s focus on large-scale and ubiquitously useable Web Applications
Many Users – many languages – many culturesDifferent access mechanisms Many User Agents
Presents large volume of interrelated information (including different media) and processes
Appropriate presentationProgression through activities – finish one thing before starting anotherOften 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-to-date” by following trends
Today’s focus on large-scale and ubiquitously useable Web Applications
Many Users – many languages – many culturesDifferent access mechanisms Many User Agents
Presents large volume of interrelated information (including different media) and processes
Appropriate presentationProgression through activities – finish one thing before starting anotherOften 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-to-date” by following trends
All Aspects of HeterogeneityAll Aspects of Heterogeneity
Risks to Web-Based BusinessRisks to Web-Based Business
Long system delivery timeLow responsiveness to business changesHigh project development and ongoing support costsQuestionable system quality
Long system delivery timeLow responsiveness to business changesHigh project development and ongoing support costsQuestionable system quality
Desires from Web-Based BusinessDesires from Web-Based Business
Project Delivery Time - ShortenedSystem Quality - ImprovedTechnology Investment - Optimized
Project Delivery Time - ShortenedSystem Quality - ImprovedTechnology Investment - Optimized
Need for ProcessNeed for Process
Domination of the different requirements calls for a systematic approachProducing high-quality Products in a cost-effective wayGoal – Product should be
Maintainable and evolvableReliableEfficientAppropriate for User Interface (also wrt Hypermedia)Delivered in time with predictable cost
Domination of the different requirements calls for a systematic approachProducing high-quality Products in a cost-effective wayGoal – Product should be
Maintainable and evolvableReliableEfficientAppropriate for User Interface (also wrt Hypermedia)Delivered in time with predictable cost
Or simply Software Engineering?Or simply Software Engineering?
“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 and Nanard, 1995)
Web Development vs. Software DevelopmentWeb Development vs. Software Development
They are different due to the nature and distinct requirements of Web-based systemsEven though Web-based systems often require programming and specialty software, the development of that software is often unique
They are different due to the nature and distinct requirements of Web-based systemsEven though Web-based systems often require programming and specialty software, the development of that software is often unique
Web-based Systems vs Software I
Web-based Systems vs Software I
Web-based systems:Are document-oriented containing static or dynamic contentMore emphasis on “look and feel”Are “content-driven” – process is driven by the availability of contentNeed to cater to users with diverse skills and capabilitiesAre typically constrained to a short development time, making it difficult to apply the same levels of formal planning and testing as used in software development
Web-based systems:Are document-oriented containing static or dynamic contentMore emphasis on “look and feel”Are “content-driven” – process is driven by the availability of contentNeed to cater to users with diverse skills and capabilitiesAre typically constrained to a short development time, making it difficult to apply the same levels of formal planning and testing as used in software development
Web-based Systems vs Software II
Web-based Systems vs Software II
Web-based systems:Differ by means of their access and delivery mediumHave different lifespansHave differing development requirements
Developers are vastly varied in terms of their background, skills, knowledge, and system understandingDevelopers differ in their perception of Web systems
Web-based systems:Differ by means of their access and delivery mediumHave different lifespansHave differing development requirements
Developers are vastly varied in terms of their background, skills, knowledge, and system understandingDevelopers differ in their perception of Web systems
Web-based Systems vs. Software III
Web-based Systems vs. Software III
Web-based systems:Should be scaleableHave varying performance requirements –must be able to cope with uncertain, random heavy demands on servicesMust be secureAre subject to various legal, social, and ethical scrutiny
Web-based systems:Should be scaleableHave varying performance requirements –must be able to cope with uncertain, random heavy demands on servicesMust be secureAre subject to various legal, social, and ethical scrutiny
Why Engineering?Why Engineering?
Engineering is associated with scale-up. New issues arise when scaling by 2+ orders of magnitudeSkills of architects and all kinds of engineers are different from those needed for designing and building simple structures and simple systems
Engineering is associated with scale-up. New issues arise when scaling by 2+ orders of magnitudeSkills of architects and all kinds of engineers are different from those needed for designing and building simple structures and simple systems
Web EngineeringWeb Engineering
Web Engineering – is 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 – is the application of systematic, disciplined, and quantifiable approaches to the design, production, deployment, operation, maintenance and evolution of Web-based software products. [Gaedke, 2000]
© 1997-2005 Dr. Martin Gaedke
•Physical Layer•Internet Layer•Transport Layer•Performance
•Process•Design•Implementation•Test•Operation•Maintenance
•Design & StructureInformation Space
•Navigation•Visualization•Usability•Collaboration
•Data Design, ER,...•RDBMS•Query Languages•Strg.Devices: FS,...
Key Knowledge AreasKey Knowledge Areas
Web Engineering
NetworkEngineering
SoftwareEngineering Hypermedia
InformationSystems
Others...
Categories of Web-based Systems
Categories of Web-based Systems
Enterprise applicationsWeb services
Shopping mallsWeb portals
Discussion groupsOnline communities
Distributed authoringCollaborative work
Status monitoringWorkflow-oriented
Electronic shoppingTransactional
Registration formsInteractive
Online newspapers, manuals
InformationalExamplesCategory
Web Engineering I Web Engineering I
A holistic and pro-active approach to Web systems developmentOffers systematic approaches and disciplined processes for developmentDeals with the management of complexity and diversity of Web developmentBrings to Web-based system development
ControlRisk minimizationEnhanced maintainability and quality
A holistic and pro-active approach to Web systems developmentOffers systematic approaches and disciplined processes for developmentDeals with the management of complexity and diversity of Web developmentBrings to Web-based system development
ControlRisk minimizationEnhanced maintainability and quality
Web Engineering IIWeb Engineering II
Other factorsDocument orientationNavigational designChanging technologyBudget and time constraintsPeople and internal politicsDivision between theory and practiceLack of understanding…
Other factorsDocument orientationNavigational designChanging technologyBudget and time constraintsPeople and internal politicsDivision between theory and practiceLack of understanding…
Goals of Web EngineeringGoals of Web Engineering
Develop (high quality) Web ApplicationsEffectiveEfficientAchieve desired application
Maintain and EvolvePlan for change (Solution may change theproblem!!!)
…using systematic, disciplined and quantifiable Approaches: Process Models
Develop (high quality) Web ApplicationsEffectiveEfficientAchieve desired application
Maintain and EvolvePlan for change (Solution may change theproblem!!!)
…using systematic, disciplined and quantifiable Approaches: Process Models
Web Engineering Activities IWeb Engineering Activities I
Requirements specification and analysisWeb-based system analysis and designWeb development methodologies and techniquesMigration of legacy systems to Web environmentsWeb-based real-time applications developmentWeb-based multimedia application developmentTesting, verification and validation techniques and toolsQuality assessment, control and assurance
Requirements specification and analysisWeb-based system analysis and designWeb development methodologies and techniquesMigration of legacy systems to Web environmentsWeb-based real-time applications developmentWeb-based multimedia application developmentTesting, verification and validation techniques and toolsQuality assessment, control and assurance
Web Engineering Activities IIWeb Engineering Activities IIManagement of access to applications and privilegesConfiguration and project management“Web metrics” – metrics for estimation of development effortPerformance specification and evaluationUpdate and maintenanceDevelopment models, teams, and staffingHuman and cultural aspectsUser-centric developmentGraphics, animation, and streamingCopyright, legal and social aspects
Management of access to applications and privilegesConfiguration and project management“Web metrics” – metrics for estimation of development effortPerformance specification and evaluationUpdate and maintenanceDevelopment models, teams, and staffingHuman and cultural aspectsUser-centric developmentGraphics, animation, and streamingCopyright, legal and social aspects
Web Engineering is Multidisciplinary
Web Engineering is Multidisciplinary
Web Engineering
SoftwareEngineering
Hypertext/Hypermedia
InformationEngineering
RequirementsEngineering
SystemAnalysis
And Design
Modeling And
Simulation
Project Management
PerformanceEngineering
EvaluationAnd Testing
InterfaceEngineering
Multimedia
Yesterday’s Webmaster has become tomorrow’s Web
Engineer
Yesterday’s Webmaster has become tomorrow’s Web
Engineer
Some Further ResourcesSome Further Resources
The Web Engineering Community Portal (http://www.webengineering.org)Journal of Web Engineering (http://www.rintonpress.com)International Conference on Web Engineering (ICWE) (http://www.icwe2005.org)
The Web Engineering Community Portal (http://www.webengineering.org)Journal of Web Engineering (http://www.rintonpress.com)International Conference on Web Engineering (ICWE) (http://www.icwe2005.org)