Top Banner
Software Engineering Lecture 23: Web Engineering
34
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software Engineering Lecture 23: Web Engineering.

Software Engineering

Lecture 23: Web Engineering

Page 2: Software Engineering Lecture 23: Web Engineering.

Today’s Topics Software and the World Wide Web Implications and Challenges Application & Technology Types The WebE Process Analysis, Design & Testing Issues Management Issues

Page 3: Software Engineering Lecture 23: Web Engineering.

The Wild, Wild Web Chaotic growth and application of new

technology “Get it done fast, get it on the web, fix it up later” Little, attention paid to software process (ad hoc

approach) Very rapid software development, strict

performance requirements, high technical risk

Page 4: Software Engineering Lecture 23: Web Engineering.

Implications Very high cost of software construction and

maintenance Poor software infrastructure for long-term

support Lack of software quality

In the days ahead - as the dot-com revolution slows and investors look for sound business models, planning, and profitability - an engineered approach to web software will grow in importance…

Page 5: Software Engineering Lecture 23: Web Engineering.

ChallengesHow to adapt SE methods?

WebApps have these attributes:

Network Intensivelarge-scale client-server (Internet)

Content-Driventext, graphics, audio, video, …

Continuous Evolutionsome sites are updated hourly

Page 6: Software Engineering Lecture 23: Web Engineering.

Challenges [2] Immediacy

time to market = days or weeks Security

difficult to control accessstrong security measures required

Aestheticslook & feel > technical design?

Page 7: Software Engineering Lecture 23: Web Engineering.

Application Categories Informational

read-only content, simple linking Download

variety of data types downloaded Customizable

user personalizes site content Interaction

supports community of users

Page 8: Software Engineering Lecture 23: Web Engineering.

Categories [2] User Input

HTML forms-based input data Transaction-Oriented

user requests (e.g. on-line orders) Service-Oriented

searches, advice, brokering, etc. Portal

links a variety of content, services

Page 9: Software Engineering Lecture 23: Web Engineering.

Database Accessquery & extract information

Data Warehousingaccess collections of databases

Categories [3]

Page 10: Software Engineering Lecture 23: Web Engineering.

Defining Quality[from SEPA 5/e]

Page 11: Software Engineering Lecture 23: Web Engineering.

Fundamental Technology Component-Based Development

CORBA, COM/DCOM, EJB:web deployment architectures

Securitypolicy & appropriate design

Internet StandardsHTML, XML, HTTP, CGI, etc.:web communication protocols

Page 12: Software Engineering Lecture 23: Web Engineering.

The WebE Process Immediacy & continuous evolution

iterative, incremental process User population is diverse

extensive user modeling Architecture is highly specialized

complex design Content emphasizes aesthetics

content designed in parallel

Page 13: Software Engineering Lecture 23: Web Engineering.

WebE Process Model[from SEPA 5/e]

Page 14: Software Engineering Lecture 23: Web Engineering.

Formulation General Questions• What is the motivation for the app?

• Why is the app needed?

• Who will use the app?

Specific Goals• Informational Goals

content & information provided

• Applicative Goalsability to perform specified tasks

Statement of Scope (Integration)

Page 15: Software Engineering Lecture 23: Web Engineering.

Analysis Content Analysisidentify, model content spectrum

Interaction Analysisuse cases, sequence diagrams

Functional Analysisspecify all required operations

Configuration Analysisspecify environment, infrastructure

Accurate estimates of schedule & costdepend on a detailed analysis!

Page 16: Software Engineering Lecture 23: Web Engineering.

The “Designer’s Dilemma”

“Solve the immediate business problem, while defining an architecture than can evolve over time”

Otherwise, you make compromises that force costly rework or a loss of quality over time

Page 17: Software Engineering Lecture 23: Web Engineering.

Four Design Elements Design Principles & Methods

modularity & information hiding;UML modeling & O-O design

Golden Rulesdesign heuristics for hypermedia

Design Patternsfunctions, documents, graphics,…

Templatesreusable, skeletal structures

Page 18: Software Engineering Lecture 23: Web Engineering.

Architecture DesignDefine overall site structure: Linear Structures

predictable sequence of operations Grid Structures

two-dimensional categorization Hierarchical Structures

“convenience vs. confusion” Networked

“flexibility vs. confusion”

Page 19: Software Engineering Lecture 23: Web Engineering.

Linear Structures [from SEPA 5/e]

Page 20: Software Engineering Lecture 23: Web Engineering.

GridStructure

[from SEPA 5/e]

Page 21: Software Engineering Lecture 23: Web Engineering.

Hierarchical Structure [from SEPA 5/e]

Page 22: Software Engineering Lecture 23: Web Engineering.

[from SEPA 5/e]NetworkedStructure

Page 23: Software Engineering Lecture 23: Web Engineering.

Hypertext Design Patterns Cycle

return to previously visited node Web Ring

“grand tour” of a subject Contour

intersecting cycles Counterpoint

provide additional narrative

Page 24: Software Engineering Lecture 23: Web Engineering.

Design Patterns [2] Mirrorworld

provide alternate perspectives Sieve

provide choices which guide user Neighborhood

consistent navigation overlay

Page 25: Software Engineering Lecture 23: Web Engineering.

Navigation Design

“Defining pathways to content and services”: Identify differing user navigation requirements &

goalswill differ per user type

Define the mechanics of achieving navigationmay differ per user type

Page 26: Software Engineering Lecture 23: Web Engineering.

Navigation [2] Select from available mechanisms links, buttons,

imagemaps, menus Optimize navigation

minimize user effort Respect other criteria

site aesthetics & content design Adopt conventions

audiovisual cues, feedback, maps

Page 27: Software Engineering Lecture 23: Web Engineering.

Interface Design “First impression is everything” Server errors are deadly Minimize volumes of text Avoid “under construction” signs Avoid long pages & scrolling Navigation aids everywhere Functionality > Aesthetics

Page 28: Software Engineering Lecture 23: Web Engineering.

Testing Web Applications Review the content model

like copy-editing written docs Review the design model

identify navigation errors Unit test components & pages

content, links, forms, scripts, etc. Integration testing

build & test the architecture;thread-based testing on use cases

Page 29: Software Engineering Lecture 23: Web Engineering.

Testing [2] Perform validation testing

test all user-visible actions, output Perform cross-platform testing

hardware, OS, browser, etc. Perform user testing

tester population covers all possible user roles

Page 30: Software Engineering Lecture 23: Web Engineering.

The WebE Team Content developers & providers

sales, marketing, research, … Web publisher

liaison between technical staff and content developers

Web engineerSE activities, web technologies

Page 31: Software Engineering Lecture 23: Web Engineering.

WebE Team [2] Support specialist

continuing day-to-day support Administrator (“Webmaster”)

day-to-day operation• Operational policies

• Support & feedback process

• Security policy & procedures

• Traffic analysis

• Change control & support coordination

Page 32: Software Engineering Lecture 23: Web Engineering.

Management & Outsourcing Many web apps are outsourced to development

specialistsanalyze, specify & plan internally

Little historical data, metricsdefine explicit progress reviews

Accurate estimation, risk planning & scheduling require detailed understanding of scopeconstant communication

Page 33: Software Engineering Lecture 23: Web Engineering.

Configuration Management Haphazard updates are dangerous:

• Unauthorized posting of new info

• Erroneous or poorly-tested functions

• Security holes

• “Economically unpleasant consequences”

Four issues: content, people, scalability, politics

Page 34: Software Engineering Lecture 23: Web Engineering.

Questions?