34
1 COSC 4406 COSC 4406 Software Engineering Software Engineering Haibin Zhu, Ph.D. Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Dept. of Computer Science and mathematics, Nipissing University, 100 College Dr., North Bay, Nipissing University, 100 College Dr., North Bay, ON P1B 8L7, Canada, ON P1B 8L7, Canada, [email protected] , , http://www.nipissingu.ca/faculty/haibinz http://www.nipissingu.ca/faculty/haibinz

L4406-13.ppt

Embed Size (px)

Citation preview

Page 1: L4406-13.ppt

1

COSC 4406COSC 4406

Software Software EngineeringEngineering

Haibin Zhu, Ph.D.Haibin Zhu, Ph.D.Dept. of Computer Science and mathematics, Nipissing University, Dept. of Computer Science and mathematics, Nipissing University,

100 College Dr., North Bay, ON P1B 8L7, Canada, 100 College Dr., North Bay, ON P1B 8L7, Canada, [email protected], http://www.nipissingu.ca/faculty/haibinz, http://www.nipissingu.ca/faculty/haibinz

Page 2: L4406-13.ppt

2

Lecture 13Lecture 13 Web Engineering Web EngineeringRef. Chap 16 & 17Ref. Chap 16 & 17

Page 3: L4406-13.ppt

3

Web ApplicationsWeb Applications

WebApps WebApps encompass: complete Web sites

Simple information Web sites Complex e-Commerce of other sites with embedded

functionality and data retrieval Complex Web sites that are interoperable with other

legacy software and systems specialized functionality within Web sites information processing applications that reside on the

Internet or on an intranet or ExtraNet.

Page 4: L4406-13.ppt

4

WebApp Attributes—IWebApp Attributes—I Network intensiveness.Network intensiveness. A WebApp resides on a A WebApp resides on a

network and must serve the needs of a diverse network and must serve the needs of a diverse community of clients. community of clients.

Concurrency.Concurrency. A large number of users may access A large number of users may access the WebApp at one time; patterns of usage among the WebApp at one time; patterns of usage among end-users will vary greatly.end-users will vary greatly.

Unpredictable load.Unpredictable load. The number of users of the The number of users of the WebApp may vary by orders of magnitude from day WebApp may vary by orders of magnitude from day to day. to day.

Performance.Performance. If a WebApp user must wait too long If a WebApp user must wait too long (for access, for server-side processing, for client-side (for access, for server-side processing, for client-side formatting and display), he or she may decide to go formatting and display), he or she may decide to go elsewhere. elsewhere.

Page 5: L4406-13.ppt

5

WebApp Attributes—IIWebApp Attributes—II Availability.Availability. Although expectation of 100 percent availability Although expectation of 100 percent availability

is unreasonable, users of popular WebApps often demand is unreasonable, users of popular WebApps often demand access on a “24/7/365” basis. access on a “24/7/365” basis.

Data driven.Data driven. The primary function of many WebApps is to The primary function of many WebApps is to use hypermedia to present text, graphics, audio, and video use hypermedia to present text, graphics, audio, and video content to the end-user. content to the end-user.

Content sensitive.Content sensitive. The quality and aesthetic nature of The quality and aesthetic nature of content remains an important determinant of the quality of a content remains an important determinant of the quality of a WebApp. WebApp.

Continuous evolution. Unlike conventional application software that evolves over a series of planned, chronologically-spaced releases, Web applications evolve continuously.

Page 6: L4406-13.ppt

6

WebApp Attributes—IIIWebApp Attributes—III

Immediacy.Immediacy. WebApps often exhibit a time to market that can be WebApps often exhibit a time to market that can be a matter of a few days or weeks. a matter of a few days or weeks.

With modern tools, sophisticated Web pages can be produced in only a With modern tools, sophisticated Web pages can be produced in only a few hours.few hours.

Security.Security. In order to protect sensitive content and provide In order to protect sensitive content and provide secure modes of data transmission, strong security measures secure modes of data transmission, strong security measures must be implemented throughout the infrastructure that supports must be implemented throughout the infrastructure that supports a WebApp and within the application itself.a WebApp and within the application itself.

Aesthetics.Aesthetics. When an application has been designed to market or When an application has been designed to market or sell products or ideas, aesthetics may have as much to do with sell products or ideas, aesthetics may have as much to do with success as technical design. success as technical design.

Page 7: L4406-13.ppt

7

WebApp CategoriesWebApp Categories informationalinformational—read-only content is provided with simple navigation and —read-only content is provided with simple navigation and

linkslinks downloaddownload—a user downloads information from the appropriate server—a user downloads information from the appropriate server customizablecustomizable—the user customizes content to specific needs—the user customizes content to specific needs interactioninteraction—communication among a community of users occurs via —communication among a community of users occurs via

chatroom, bulletin boards, or instant messagingchatroom, bulletin boards, or instant messaging user inputuser input—forms-based input is the primary mechanism for communicating —forms-based input is the primary mechanism for communicating

needneed transaction-orientedtransaction-oriented—the user makes a request (e.g., places an order) that is —the user makes a request (e.g., places an order) that is

fulfilled by the WebAppfulfilled by the WebApp service-orientedservice-oriented—the application provides a service to the user, e.g., assists —the application provides a service to the user, e.g., assists

the user in determining a mortgage paymentthe user in determining a mortgage payment PortalPortal—the application channels the user to other Web content or services —the application channels the user to other Web content or services

outside the domain of the portal applicationoutside the domain of the portal application database accessdatabase access—the user queries a large database and extracts information—the user queries a large database and extracts information data warehousingdata warehousing—the user queries a collection of large databases and —the user queries a collection of large databases and

extracts informationextracts information

Page 8: L4406-13.ppt

8

Web EngineeringWeb Engineering

““Web development is an adolescent … Web development is an adolescent … Like most adolescents, it wants to be Like most adolescents, it wants to be accepted as an adult as it tries to pull accepted as an adult as it tries to pull away from its parents. If it is going to away from its parents. If it is going to reach its full potential, it must take a few reach its full potential, it must take a few lessons from the more seasoned world of lessons from the more seasoned world of software development.” software development.”

Doug Wallace et alDoug Wallace et al

Page 9: L4406-13.ppt

9

The WebE ProcessThe WebE Process

Must accommodate:Must accommodate: Incremental deliveryIncremental delivery Frequent changesFrequent changes Short timelineShort timeline

Therefore,Therefore, An An incremental process modelincremental process model (Chapters 3 (Chapters 3

and 4) should be used in virtually all and 4) should be used in virtually all situationssituations

An An agile process modelagile process model (Chapter) is (Chapter) is appropriate in many situationsappropriate in many situations

Page 10: L4406-13.ppt

10

The WebE ProcessThe WebE Process

software increment

Release

refactoring

business analysis formulation

iteration plan

analysis model content iteration function configuration

design model content architecture navigation interface

coding component test

acceptance test customer use

customer evaluation

Page 11: L4406-13.ppt

11

The WebE Process FrameworkThe WebE Process Framework—I—I

Customer communicationCustomer communication Business analysis defines the business/organizational

context for the WebApp. Formulation is a requirements gathering activity

involving all stakeholders. The intent is to describe the problem that the WebApp is to solve

Planning The “plan” consists of a task definition and a timeline

schedule for the time period (usually measured in weeks) projected for the development of the WebApp increment.

Page 12: L4406-13.ppt

12

The WebE Process FrameworkThe WebE Process Framework—II—II

ModelingModeling Analysis modelAnalysis model—establishes a basis for design—establishes a basis for design

Content Analysis.Content Analysis. Interaction Analysis.Interaction Analysis. Functional Analysis.Functional Analysis. Configuration Analysis.Configuration Analysis.

Design modelDesign model—represents key WebApp elements—represents key WebApp elements Content designContent design Aesthetic designAesthetic design Architectural designArchitectural design Interface design Interface design Navigation designNavigation design Component designComponent design

Page 13: L4406-13.ppt

13

The WebE Process FrameworkThe WebE Process Framework—III—III

ConstructionConstruction WebE tools and technology are applied to construct the

WebApp that has been modeled Testing of all design elements

Delivery and Evaluation (Deployment)Delivery and Evaluation (Deployment) configure for its operational environmentconfigure for its operational environment deliver to end-users, anddeliver to end-users, and Evaluation feedback is presented to the WebE team Evaluation feedback is presented to the WebE team the increment is modified as required (the beginning of the increment is modified as required (the beginning of

the next incremental cycle) the next incremental cycle)

Page 14: L4406-13.ppt

14

WebE—Basic QuestionsWebE—Basic Questions How important is a Web site home page? How important is a Web site home page? What is the most effective page layout (e.g., menu on top, on the What is the most effective page layout (e.g., menu on top, on the

right or left?) and does it vary depending upon the type of right or left?) and does it vary depending upon the type of WebApp being developed?WebApp being developed?

Which media options have the most impact? Which media options have the most impact? How much work can we expect a user to do when he or she is How much work can we expect a user to do when he or she is

looking for information? looking for information? How important are navigational aids when WebApps are How important are navigational aids when WebApps are

complex?complex? How complex can forms input be before it becomes irritating for How complex can forms input be before it becomes irritating for

the user? How can forms input be expedited?the user? How can forms input be expedited? How important are search capabilities? How important are search capabilities? Will the WebApp be designed in a manner that makes it Will the WebApp be designed in a manner that makes it

accessible to those who have physical or other disabilities?accessible to those who have physical or other disabilities?Susan Weinshenk

Page 15: L4406-13.ppt

15

FormulationFormulation

begins with the begins with the identification of business needidentification of business need moves into a moves into a description of WebApp objectivesdescription of WebApp objectives defines major features and functionsdefines major features and functions establishes a requirements gathering activityestablishes a requirements gathering activity that will that will

lead to the development of an analysis modellead to the development of an analysis model allows stakeholders and the web engineering team toallows stakeholders and the web engineering team to

establish a common set of goalsestablish a common set of goals and objectives for the and objectives for the construction of the WebApp. construction of the WebApp. identifies the scope of the development effort identifies the scope of the development effort provides a means for determining a successful, outcome..provides a means for determining a successful, outcome..

Page 16: L4406-13.ppt

16

Formulation QuestionsFormulation Questions

What is the main motivation (business need) for the What is the main motivation (business need) for the WebApp?WebApp?

What are the objectives that the WebApp must fulfill?What are the objectives that the WebApp must fulfill? Who will use the WebApp?Who will use the WebApp?

Answers provide …Answers provide … Informational goalsInformational goals—indicate an intention to provide —indicate an intention to provide

specific content and/or information for the end-userspecific content and/or information for the end-user Applicative goalsApplicative goals—indicate the ability to perform some —indicate the ability to perform some

task within the WebApptask within the WebApp

Page 17: L4406-13.ppt

17

WebE Requirements GatheringWebE Requirements Gathering

Ask stakeholders to define user categories and Ask stakeholders to define user categories and develop descriptions for each categorydevelop descriptions for each category

Communicate with stakeholders to define basic Communicate with stakeholders to define basic WebApp requirementsWebApp requirements

Analyze information gathered and use Analyze information gathered and use information to follow-up with stakeholdersinformation to follow-up with stakeholders

Define use-cases (Chapter 8) that describe Define use-cases (Chapter 8) that describe interaction scenarios for each user classinteraction scenarios for each user class

Page 18: L4406-13.ppt

18

Defining User CategoriesDefining User Categories

What is the user’s overall objective when using the WebApp?

What is the user’s background and sophistication relative to the content and functionality of the WebApp?

How will the use arrive at the WebApp? What generic WebApp characteristics does the

user like/dislike?

Page 19: L4406-13.ppt

19

Communicating with Communicating with StakeholdersStakeholders

Traditional focus groupsTraditional focus groups—a trained moderator meets with a small —a trained moderator meets with a small group of representative end-users (or internal stakeholders group of representative end-users (or internal stakeholders playing the role of end-users). playing the role of end-users).

Electronic focus groupsElectronic focus groups—a moderated electronic discussion —a moderated electronic discussion conducted with a group of representative end-users and conducted with a group of representative end-users and stakeholders. stakeholders.

Iterative surveysIterative surveys—a series of brief surveys, addressed to —a series of brief surveys, addressed to representative users and requesting answers to specific questions representative users and requesting answers to specific questions about the WebApp about the WebApp

Exploratory surveysExploratory surveys—a Web-based survey that is tied to one or —a Web-based survey that is tied to one or more WebApps that have users who are similar to the ones that more WebApps that have users who are similar to the ones that will use the WebApp to be developed. will use the WebApp to be developed.

Scenario-buildingScenario-building—selected user are asked to create informal —selected user are asked to create informal use-cases that describe specific interactions with the WebApp.use-cases that describe specific interactions with the WebApp.

Page 20: L4406-13.ppt

20

Preliminary AnalysisPreliminary Analysis

Categorize information gathered by user class Categorize information gathered by user class and transaction typeand transaction type

Develop lists of … Develop lists of … content objectscontent objects operationsoperations that are applied to content objects within a that are applied to content objects within a

specific user transactionspecific user transaction functionsfunctions (e.g., informational, computational, logical, (e.g., informational, computational, logical,

and help-oriented) that the WebApp provides for end-and help-oriented) that the WebApp provides for end-usersusers

other non-functional requirementsother non-functional requirements that are noted that are noted during the communication activities.during the communication activities.

Page 21: L4406-13.ppt

21

Use-CasesUse-Cases

Provide the detail necessary to create an effective analysis model

Help the developer to understand how users perceive their interaction with the WebApp

Use-cases help to compartmentalize Web engineering work

Use-cases provide important guidance for those who must test the WebApp

Page 22: L4406-13.ppt

22

The WebE TeamThe WebE Team

WebE team rolesWebE team roles Content Developer/Providers Web Publisher Web Engineer. Business domain experts Support Specialist Administrator (a.k.a. “Web Master”)

Page 23: L4406-13.ppt

23

Project DifferencesProject DifferencesTraditional Projects small e-Projects

RequirementsGathering

Rigorous Limited

TechnicalSpecifications

Robust: models, spec Descriptive overview

Project Duration Measured in months oryears

Measured in days,weeks or months

Testing and QA Focused on achievingquality tar-gets

Focused on risk control

Risk Management Explicit Inherent

Half-life ofdeliverables

18 months or longer 3 to 6 months orshorter

Release Process Rigorous Expedited

Post-release customerfeedback

Requires proactiveeffort

Automaticallyobtained from userinteraction

major e-Projects

robust: UML models,spec

Measured inmonths or years

SQA as describedin Chapter 26

Explicit

Rigorous

6 to 12 monthsor shorter

Rigorous

Obtained both auto-matically and viasolicited feedback

Page 24: L4406-13.ppt

24

Outsourcing vs. In-houseOutsourcing vs. In-house

Web engineers

Content developers

Web publisher

stakeholders

end-users marketing

&sales

support specialists

administrator

business managers

(a) in-house development

stakeholders

end-users marketing

&sales

business managers

outsourcing vendor

vendor liaison

Web engineers

Content developers

Web publisher

support specialists

administrator

(a) outsourced development

Page 25: L4406-13.ppt

25

WebApp Outsourcing - IWebApp Outsourcing - I

Initiate the project by performing the following tasks internally Gather requirements Develop a “rough design” Develop a rough schedule with delivery dates

Consider increments Make a list of responsibilities

For in-house staff For outsourcing vendor

Define liaison mechanisms

Page 26: L4406-13.ppt

26

WebApp Outsourcing - IIWebApp Outsourcing - II

Select Candidate Outsourcing Vendors Assess the Validity of Price Quotes and the Reliability of

Estimates Does the quoted cost of the WebApp provide a direct or Does the quoted cost of the WebApp provide a direct or

indirect return-on-investment that justifies the project?indirect return-on-investment that justifies the project? Does the vendor that has provided the quote exhibit the Does the vendor that has provided the quote exhibit the

professionalism and experience we require?professionalism and experience we require? Understand the Degree of Project Management You Can

Expect/Perform Assess the Development Schedule Manage Scope

Page 27: L4406-13.ppt

27

WebApp Planning - In-HouseWebApp Planning - In-House Understand scope, the dimensions of change,

and project constraints Define an incremental project strategy Perform risk analysis Develop a quick estimate Select a task set (process description) Establish a schedule Define project tracking mechanisms Establish a change management approach

Page 28: L4406-13.ppt

28

WebE—Best PracticesWebE—Best Practices

Take the time to understand the business needs and product objectives, even if the details of the WebApp are vague.

Describe how users will interact with the WebApp using a scenario-based approach

Develop a project plan, even it its very brief. Spend some time modeling what it is that you’re going to build. Review the models for consistency and quality. Use tools and technology that enable you to construct the system

with as many reusable components as possible. Don’t rely on early users to debug the WebApp—design

comprehensive tests and execute them before releasing the system.

Page 29: L4406-13.ppt

29

WebE “Worst Practices”WebE “Worst Practices”

We have a great idea, so lets begin building the WebApp—now.

Stuff will change constantly, so there’s no point in trying to understand WebApp requirements.

Developers whose dominant experience has been in traditional software development can develop WebApps immediately. No new training is required.

Be bureaucratic. Testing? Why bother?

Page 30: L4406-13.ppt

30

AnalysisAnalysisContent Analysis.Content Analysis. The full spectrum of content to be provided by the The full spectrum of content to be provided by the

WebApp is identified, including text, graphics and images, video, WebApp is identified, including text, graphics and images, video, and audio data. Data modeling can be used to identify and and audio data. Data modeling can be used to identify and describe each of the data objects. describe each of the data objects.

Interaction Analysis.Interaction Analysis. The manner in which the user interacts with The manner in which the user interacts with the WebApp is described in detail. Use-cases can be developed to the WebApp is described in detail. Use-cases can be developed to provide detailed descriptions of this interaction. provide detailed descriptions of this interaction.

Functional Analysis.Functional Analysis. The usage scenarios (use-cases) created as The usage scenarios (use-cases) created as part of interaction analysis define the operations that will be part of interaction analysis define the operations that will be applied to WebApp content and imply other processing functions. applied to WebApp content and imply other processing functions. All operations and functions are described in detail.All operations and functions are described in detail.

Configuration Analysis.Configuration Analysis. The environment and infrastructure in The environment and infrastructure in which the WebApp resides are described in detail. which the WebApp resides are described in detail.

Page 31: L4406-13.ppt

31

When Do We Perform When Do We Perform Analysis?Analysis?

In some WebE situations, analysis and design In some WebE situations, analysis and design merge. However, merge. However, an explicit analysis activity an explicit analysis activity occurs when …occurs when … the WebApp to be built is large and/or complexthe WebApp to be built is large and/or complex the number of stakeholders is largethe number of stakeholders is large the number of Web engineers and other contributors is the number of Web engineers and other contributors is

largelarge the goals and objectives (determined during formulation) the goals and objectives (determined during formulation)

for the WebApp will effect the business’ bottom linefor the WebApp will effect the business’ bottom line the success of the WebApp will have a strong bearing on the success of the WebApp will have a strong bearing on

the success of the businessthe success of the business

Page 32: L4406-13.ppt

32

Design & WebAppsDesign & WebApps

When should we emphasize WebApp design?When should we emphasize WebApp design? when content and function are complexwhen content and function are complex when the size of the WebApp encompasses hundreds of when the size of the WebApp encompasses hundreds of

content objects, functions, and analysis classescontent objects, functions, and analysis classes when the success of the WebApp will have a direct when the success of the WebApp will have a direct

impact on the success of the business impact on the success of the business

““There are essentially two basic approaches to There are essentially two basic approaches to design: the artistic ideal of expressing yourself and design: the artistic ideal of expressing yourself and the engineering ideal of solving a problem for a the engineering ideal of solving a problem for a customer.”customer.” Jakob NielsenJakob Nielsen

Page 33: L4406-13.ppt

33

Design & WebApp QualityDesign & WebApp Quality

SecuritySecurity Rebuff external attacksRebuff external attacks Exclude unauthorized accessExclude unauthorized access Ensure the privacy of users/customersEnsure the privacy of users/customers

AvailabilityAvailability the measure of the percentage of time that a WebApp is the measure of the percentage of time that a WebApp is

available for useavailable for use ScalabilityScalability

Can Can the WebApp and the systems with which it is the WebApp and the systems with which it is interfaced handle significant variation in user or interfaced handle significant variation in user or transaction volumetransaction volume

Time to MarketTime to Market

Page 34: L4406-13.ppt

34

SummarySummary

Attributes of Web-based systemsAttributes of Web-based systems Web Engineering ProcessWeb Engineering Process Formulating Web-Based SystemsFormulating Web-Based Systems Web Engineering TeamWeb Engineering Team Web Engineering Project ManagementWeb Engineering Project Management Web Engineering PracticesWeb Engineering Practices Web Engineering Analysis and DesignWeb Engineering Analysis and Design