why web engineering is needed for web applications and ... · why web engineering is needed for web...

44
Why Web Engineering Is Needed For Web Applications and Services Bebo White Stanford Linear Accelerator Center March 10, 2005

Upload: ngokhanh

Post on 24-Apr-2018

219 views

Category:

Documents


2 download

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

http://www.uiweb.com/issues/issue30.htm

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)

Thank You

Questions?

[email protected]