72
CS 5704: Software Engineering Connecting the Software and Usability Engineering Life Cycles Dr. Pardha S. Pyla 1

CS 5704: Software Engineering

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CS 5704: Software Engineering

CS 5704: Software Engineering

Connecting the Software and Usability Engineering Life Cycles

Dr. Pardha S. Pyla

1

Page 2: CS 5704: Software Engineering

Interactive Software Systems

2

Page 3: CS 5704: Software Engineering

Interactive Software Systems

User interface

2

Page 4: CS 5704: Software Engineering

Interactive Software Systems

User interface Functional core

2

Page 5: CS 5704: Software Engineering

Interactive Software Systems

User interface Functional core

psychologycognition

design guidelinestask analysis

2

Page 6: CS 5704: Software Engineering

Interactive Software Systems

User interface Functional core

psychologycognition

design guidelinestask analysis

algorithmsdata structures

software architectures database management

2

Page 7: CS 5704: Software Engineering

Development ProcessesUsability engineering

(user interface) Software engineering

(functional core)

Requirements Engineering

Interaction Design

Interaction Prototype

User Interface Specifications

Software ImplementationSummative

Evaluation

FormativeEvaluation

FormativeEvaluation

Requirements Engineering

Preliminary Design

Detailed Design

Design Specifications

Software Implementation

V & V

V & V

Integration& Testing

V & V

3

Page 8: CS 5704: Software Engineering

Missing Connections

usability engineering

software engineering

Requirements Analysis

Interaction Design

Interaction Prototype

User Interface Specifications

Summative

Evaluation

Formative

Evaluation

Formative

Evaluation

Formative

Evaluation

Requirements Analysis

Preliminary Design

Detailed Design

Design Specifications

Software Implementation

V & V

V & V

Integration& Testing

Acceptance

Testing

4

Page 9: CS 5704: Software Engineering

Peanut Butter Theory of Usability

Software Design

UI Software

Implementation

Functional Software

Implementation

Software

Engineering

Domain

Software functional

requirements

Software

architecture

considerations

5

Page 10: CS 5704: Software Engineering

Peanut Butter Theory of Usability

Software Design

UI Software

Implementation

Functional Software

Implementation

Software

Engineering

Domain

Software functional

requirements

Software

architecture

considerations

Interaction Design

5

Page 11: CS 5704: Software Engineering

Peanut Butter Theory of Usability

Software Design

UI Software

Implementation

Functional Software

Implementation

Software

Engineering

Domain

Software functional

requirements

Software

architecture

considerations

5

Page 12: CS 5704: Software Engineering

Software Design

UI Software

Implementation

Functional Software

Implementation

Software

Engineering

Domain

Software functional

requirements

Software

architecture

considerations

Usability requirementsUsability

Engineering

Domain

Scenarios Task analysis

Other

Inputs

Interaction

design

specifications

Co

nn

ectio

ns

Interaction Design

5

Page 13: CS 5704: Software Engineering

Why Should We Care?

• Chaos report by the Standish Group

• US spent $250 billion on software applications (N=350)

• 31% projects cancelled before completion

• 53% costed 189% of their original estimates

• 16% were on-time and on-budget (larger companies only 9%)

• Project challenged factors

• Lack of user involvement

• Incomplete requirements

6

Page 14: CS 5704: Software Engineering

Overarching Problem

• There is a need for

• SE and UE life cycles to be connected through development environments to support communication, and

• appropriate curricula to teach about these connections

7

Page 15: CS 5704: Software Engineering

Lack of Development Environments for Connections

• Development efforts rely on structure of development environments

• Environments embody particular methodologies

• Current software development environments do not address or support usability engineering

• Reducing the ability to react to change

• Reduced quality of the overall system

8

Page 16: CS 5704: Software Engineering

Lack of Appropriate Curricula

• A consequence of decades of reductionist approach

• Reducing complex problems into isolated modules

• Producing “vertical” experts, suitable for assembly-line jobs

• Missing out on

• Integrationist approaches that address relations among modules

• Producing “holistic” experts, suitable for today’s complex problems

• “Complex problems require multidimensional and interdisciplinary analysis and solutions”

9

Page 17: CS 5704: Software Engineering

Research Approach: Development Environments• Ripple Description Model

• formally and abstractly charted development space

• Ripple Implementation Framework

• described how model translates into a real tool

• Ripple Implementation Instance

• to suit the requirements/constraints of classroom setting

• Investigated communication factors via Ripple instance

10

Page 18: CS 5704: Software Engineering

Research Approach: Pedagogy

• Created a cross-pollinated SE-UE course

• SE and UE classes together with joint teams

• simulated different conditions of interactive-software development

• demonstrated dynamics of SE-UE interaction via end-of-semester symposium

11

Page 19: CS 5704: Software Engineering

Ripple Description Model

wai =

<wa-symbolic-name, LC-type, wa-type, wa-technique, wp-affected, developer-role, developer-name>

wa1 =

<CW-1, UE, formative usability evaluation, cognitive walkthrough, usability problem list, usability evaluator, John Doe>

Form

Example

12

Page 20: CS 5704: Software Engineering

Functions

Y = {wa | ∏wp-affected(wa1) = usability problem list}

Selection:

13

Page 21: CS 5704: Software Engineering

State Variables To Describe Events

true, if and only if wai is currently being performed

false, otherwise{is_being_performed(wai)=

wa

Stop

is_being_performed(wa!)

TRUE

Start

time

FALSE

timeTime-based events

wa-started

wa-stopped

14

Page 22: CS 5704: Software Engineering

Dependencies and Mappings

m = <wasource, te, watarget, r>

SE

SE-wa!

SE-wa"

Functional

analysis

SE-wa#

UE

Benchmark

tasks

UE-wa"UE-wa$

Task

analysis

UE-wa%

dependency

relationship

dependency

relationship

dependency

relationship

dependency

relationship

dependency

relationship

15

Page 23: CS 5704: Software Engineering

Ripple Implementation Framework

• Reification of the Description Model

• Describes the environment and tool support involved in interactive-systems development

16

Page 24: CS 5704: Software Engineering

17

Page 25: CS 5704: Software Engineering

Project Manager

Project Manager User Interface

Project Definition Subsystem

Life Cycle Description

Project Management

Attributes

ConstraintSubsystem

Relationship Enforcement Component

Trigger Events Listener

Mappings Description

delegates

embodies

Repository Subsystem

Work Product Repository

Event Queue

Message Repository

SE/UE

roles

De

velo

pe

r Role

Use

r Inte

rface

17

Page 26: CS 5704: Software Engineering

Project Manager

Project Manager User Interface

Project Definition Subsystem

Life Cycle Description

Project Management

Attributes

ConstraintSubsystem

Relationship Enforcement Component

Trigger Events Listener

Mappings Description

delegates

embodies

Repository Subsystem

Work Product Repository

Event Queue

Message Repository

SE/UE

roles

De

velo

pe

r Role

Use

r Inte

rface

17

Page 27: CS 5704: Software Engineering

Project Manager

Project Manager User Interface

Project Definition Subsystem

Life Cycle Description

Project Management

Attributes

ConstraintSubsystem

Relationship Enforcement Component

Trigger Events Listener

Mappings Description

delegates

embodies

Repository Subsystem

Work Product Repository

Event Queue

Message Repository

SE/UE

roles

De

velo

pe

r Role

Use

r Inte

rface

17

Page 28: CS 5704: Software Engineering

Project Manager

Project Manager User Interface

Project Definition Subsystem

Life Cycle Description

Project Management

Attributes

ConstraintSubsystem

Relationship Enforcement Component

Trigger Events Listener

Mappings Description

delegates

embodies

Repository Subsystem

Work Product Repository

Event Queue

Message Repository

SE/UE

roles

De

velo

pe

r Role

Use

r Inte

rface

17

Page 29: CS 5704: Software Engineering

Project Manager

Project Manager User Interface

Project Definition Subsystem

Life Cycle Description

Project Management

Attributes

ConstraintSubsystem

Relationship Enforcement Component

Trigger Events Listener

Mappings Description

delegates

embodies

Repository Subsystem

Work Product Repository

Event Queue

Message Repository

SE/UE

roles

De

velo

pe

r Role

Use

r Inte

rface

17

Page 30: CS 5704: Software Engineering

Project Manager

Project Manager User Interface

Project Definition Subsystem

Life Cycle Description

Project Management

Attributes

ConstraintSubsystem

Relationship Enforcement Component

Trigger Events Listener

Mappings Description

delegates

embodies

Repository Subsystem

Work Product Repository

Event Queue

Message Repository

SE/UE

roles

De

velo

pe

r Role

Use

r Inte

rface

17

Page 31: CS 5704: Software Engineering

Project Manager

Project Manager User Interface

Project Definition Subsystem

Life Cycle Description

Project Management

Attributes

ConstraintSubsystem

Relationship Enforcement Component

Trigger Events Listener

Mappings Description

delegates

embodies

Repository Subsystem

Work Product Repository

Event Queue

Message Repository

SE/UE

roles

De

velo

pe

r Role

Use

r Inte

rface

17

Page 32: CS 5704: Software Engineering

Project Manager

Project Manager User Interface

Project Definition Subsystem

Life Cycle Description

Project Management

Attributes

ConstraintSubsystem

Relationship Enforcement Component

Trigger Events Listener

Mappings Description

delegates

embodies

Repository Subsystem

Work Product Repository

Event Queue

Message Repository

SE/UE

roles

De

velo

pe

r Role

Use

r Inte

rface

17

Page 33: CS 5704: Software Engineering

Ripple Implementation Instance

• Project definition subsystem

• class schedule and project specifications

• Ripple constraint subsystem

• wizard-of-oz

• emails

• Work product repository

• Google Groups email archive

18

Page 34: CS 5704: Software Engineering

Evaluation

• Systems-level investigation

• full summative study not feasible

• exploratory in nature (not all factors known yet)

• too few teams per condition for complete comparison

• unequal number of teams in each condition (1-3)

• lack of control on balancing some teams

19

Page 35: CS 5704: Software Engineering

Evaluation Objectives

• Explore impact of communication factors

• effectiveness of Ripple Implementation Framework

• Explore impact of cross-pollinated courses

• effectiveness of joint SE-UE course

20

Page 36: CS 5704: Software Engineering

Key Assumption

Communication ≈ Ripple framework

21

Page 37: CS 5704: Software Engineering

Study Structure

22

Page 38: CS 5704: Software Engineering

Study Structure

CS 5704 - Software Engineering

- trained for software engineer role- developed functional core and UI

22

Page 39: CS 5704: Software Engineering

Study Structure

CS 5704 - Software Engineering

- trained for software engineer role- developed functional core and UI

CS 5714 - Usability Engineering

- trained for usability engineer role- developed user interface prototypes

22

Page 40: CS 5704: Software Engineering

Study Structure

CS 5704 - Software Engineering

- trained for software engineer role- developed functional core and UI

CS 5714 - Usability Engineering

- trained for usability engineer role- developed user interface prototypes

A Teams

23 SE 3-4 UE

B Teams

23 SE 4 UE

C Team

3 SE/UE D Teams

3

4-5 UE

22

Page 41: CS 5704: Software Engineering

Team Types -1

• A teams (ripple)

• distinct SE/UE roles working together from the start

• ideal real-world scenario

• B teams (non-ripple)

• distinct SE/UE roles working independently until design

• UE role brought in at the end of life cycle

23

Page 42: CS 5704: Software Engineering

Team Types -2

• C teams (dual-experts)

• played both roles

• software developers “doing” usability

• D teams (usability designers)

• played UE role only

• user experience contracted to external team

• developed high-fidelity prototype without functional core

24

Page 43: CS 5704: Software Engineering

Overarching Hypotheses

H1. Communication is the key factor that affects quality of an interactive-software development effort

H2. Cross-pollinated SE-UE courses afford better learning experience

25

Page 44: CS 5704: Software Engineering

H1

• C teams: implicitly high amount of communication and situational awareness

• A teams: communication with counterpart roles + Ripple

• B teams: design ideas from two domains, albeit late

• D teams: narrow UI-only design focus

C teams > A teams > B teams > D teams

26

Page 45: CS 5704: Software Engineering

H2

• Joint SE-UE courses > SE- or UE-only courses

• observe implications of communication

• understand interactions with counterpart role

• learn through experience and observation

27

Page 46: CS 5704: Software Engineering

Clients and Project

• Clients

• team of 3 members from VT Horticulture Club

• trained to minimize biases

• interaction with teams controlled

• Project: software system for plant sale

• online pre-ordering, point-of-sale, and inventory management systems

28

Page 47: CS 5704: Software Engineering

Study Instruments -1

Overall value index

29

Page 48: CS 5704: Software Engineering

Study Instruments -1

Overall value index

misc

welcome screen

direction to plant sale

make donation

browse

all

group of letters (of name)

categories

last year’s most famous

29

Page 49: CS 5704: Software Engineering

Study Instruments -1

Overall value index

misc

welcome screen

direction to plant sale

make donation

browse

all

group of letters (of name)

categories

last year’s most famous

desirability

high

high

low

high

medium

high

low

29

Page 50: CS 5704: Software Engineering

Study Instruments -1

Overall value index

misc

welcome screen

direction to plant sale

make donation

browse

all

group of letters (of name)

categories

last year’s most famous

desirability

high

high

low

high

medium

high

low

team x

feature present

perceived quality

value index

29

Page 51: CS 5704: Software Engineering

Study Instruments -1

high medium low

3 2 1

good fair poor

3 2 1

yes no

1 0

Overall value index

misc

welcome screen

direction to plant sale

make donation

browse

all

group of letters (of name)

categories

last year’s most famous

desirability

high

high

low

high

medium

high

low

team x

feature present

perceived quality

value index

yes fair 6

no - 0

yes good 3

no - 0

yes poor 2

yes good 9

no - 0

29

Page 52: CS 5704: Software Engineering

Study Instruments -2

• Structured journals

• individual/group hours

• unexpected changes

• issues with SE-UE interaction

• Email archives

• unit of communication

• tagged with keywords

• frequency counts

30

Page 53: CS 5704: Software Engineering

Study Instruments -3

• End-of-semester symposium

• process, interaction, what worked, did not, heuristics for real-world developers

• Group interviews

• Surveys (2)

• Client feedback

• after each meeting

• after overall product comparison

31

Page 54: CS 5704: Software Engineering

Investigative Approach

• No single instrument describes the complete “picture”

• Analogy of detective work

32

Page 55: CS 5704: Software Engineering

Observations

0

275

550

825

1,100

teamsA2 B2 D2 A1 D1 D3 C B1

377467

535648664

732841

1,056

tota

l val

ue in

dex

0

37.5

75.0

112.5

150.0

teamsA2 A1 B2 D3 D1 D2 C B1

909198100

110117118

147

num

ber

of fe

atur

es

33

Page 56: CS 5704: Software Engineering

Observations

0

275

550

825

1,100

teamsA2 B2 D2 A1 D1 D3 C B1

377467

535648664

732841

1,056

tota

l val

ue in

dex

0

37.5

75.0

112.5

150.0

teamsA2 A1 B2 D3 D1 D2 C B1

909198100

110117118

147

num

ber

of fe

atur

es

33

Page 57: CS 5704: Software Engineering

C > A [not verified]• Inherent conflict of interest

“We couldn’t be like the other teams where they said, what the heck it is not our problem... it is the problem of the SE team. We were the SE team as well!”

• Life cycle constraints

+ Overlap of work activities, reduced work load

+ Immediate collaboration

• Reassurance of being on the right track

Clients: “The first screen was nice but the rest is unprofessional. No imagination and not creative. Had stuff with a box around it. Very minimal”

34

Page 58: CS 5704: Software Engineering

Observations

0

275

550

825

1,100

teamsA2 B2 D2 A1 D1 D3 C B1

377467

535648664

732841

1,056

tota

l val

ue in

dex

0

37.5

75.0

112.5

150.0

teamsA2 A1 B2 D3 D1 D2 C B1

909198100

110117118

147

num

ber

of fe

atur

es

35

Page 59: CS 5704: Software Engineering

Observations

0

275

550

825

1,100

teamsA2 B2 D2 A1 D1 D3 C B1

377467

535648664

732841

1,056

tota

l val

ue in

dex

0

37.5

75.0

112.5

150.0

teamsA2 A1 B2 D3 D1 D2 C B1

909198100

110117118

147

num

ber

of fe

atur

es

35

Page 60: CS 5704: Software Engineering

A > B [partly verified]

• Team A2 - performed as hypothesized

• Good communication and collaboration

• Periodic synchronization

“we also had several meetings outside the ones that just [Ripple required us]. And for any other meetings that say the UE team had, we would always make sure we had at least one SE representative to report back to the rest of the group. So […] everyone generally knew where the other team was”

• Client: “They are amazing! Wow”

36

Page 61: CS 5704: Software Engineering

Team A1 - Disaster Team

• Incompatible UI and backend components

“the first thing that we found was that we had different priorities from the beginning.[…] This led to a totally different idea of what shopping is! To the UE team shopping was, you have time to kill, you were looking for some plants, you are browsing around, but for the SE team it was like, a serial killer is chasing you and you had to buy a rose plant. So surprise, our designs were nothing alike”

• Uncooperative self-proclaimed SE lead

• Competent team that failed (needed intervention)

37

Page 62: CS 5704: Software Engineering

"We (at least I) have not really been paying attention to the UE guys since their input does not really affect our current progress. I'm 99% sure I will just end up scrapping their UI and writing my own since I want to use AJAX and I don't think they even know what that means. AJAX is very difficult to implement if your UI is not designed for it, as all your content is dynamic. I consider myself primarily an HCI person, so I suppose I think I can do a competent design job on the UI (I like to do my own design work). [I] haven't really brought this up yet [with the UE role and] what they don't know won’t hurt them."

38

Page 63: CS 5704: Software Engineering

Observations

0

275

550

825

1,100

teamsA2 B2 D2 A1 D1 D3 C B1

377467

535648664

732841

1,056

tota

l val

ue in

dex

0

37.5

75.0

112.5

150.0

teamsA2 A1 B2 D3 D1 D2 C B1

909198100

110117118

147

num

ber

of fe

atur

es

39

Page 64: CS 5704: Software Engineering

Observations

0

275

550

825

1,100

teamsA2 B2 D2 A1 D1 D3 C B1

377467

535648664

732841

1,056

tota

l val

ue in

dex

0

37.5

75.0

112.5

150.0

teamsA2 A1 B2 D3 D1 D2 C B1

909198100

110117118

147

num

ber

of fe

atur

es

39

Page 65: CS 5704: Software Engineering

B > D [not verified]

• Team B2 - Second out of eight

• Power team with prior shared-experience

• Adaptive to new technologies, forward looking

• Reuse of UE’s prototype code in SE modules

• Negotiation, role distinction, respect for counterpart role

• One of clients’ functional favorites

“I very early on told myself that I am not going to question them at all on SE process, which I did not. Even though I wanted to come out and say ‘what is it you guys are doing?’ I very early on said that I am a UE guy and [will] keep [to] my thing”

40

Page 66: CS 5704: Software Engineering

Team B1 - As Hypothesized

• Challenges due to communication constraint

• Interaction inertia

• Inability to resolve differences in scope and vision

“One of the weirdest things for us was the scope of the design, we came into our first combined meeting expecting to only having to do a point-of-sale, inventory, the standard stuff we talked about all the semester, then they told us they wanted to rewrite the entire site as well as having a news site events, and a whole host of different things!"

41

Page 67: CS 5704: Software Engineering

"I, along with my UE team members, were very very very upset!

And then to add on to that, she wasn’t even at the meeting

today to explain herself!!!!! […] Also, it was not her job to

change anything on the front end!!! As part of the SE team, it is

her job to only mess with the backend!!! I'm so mad that she

did that. I liked the way we had it before and it shouldn’t have

been changed, especially without asking anyone else or even

notifying someone about it!!!"

B1 - Territoriality Issues

42

Page 68: CS 5704: Software Engineering

H1 Revised

• Assumptions corrected

• communication is critical, but

• preempted by social/organizational factors

• futility of ripple when ignored

• Success defined by people who have to utilize communication

43

Page 69: CS 5704: Software Engineering

B > D [not verified]

• D teams - performed better than hypothesis

• constraint-free environment

• creative prototypes with broad designs

• Appropriate for exploratory systems

• Potential practical problems in real world

Clients on team D2: "This is the coolest design. They had a very broad design, with a lot of extra features such as zone map, etc. Their ‘add to cart’ is the best. The information is very detailed. Love it. This is like the

real thing. Wow. Unbelievable"

44

Page 70: CS 5704: Software Engineering

Joint SE-UE Better [verified]

• Joint SE-UE more valuable than individual ones

• Better learning experience

• by condition (A > D)

• Student: “most valuable class [...] at Tech”

• Real clients provide better learning experience

• Laboratory approach to teaching a great success

45

Page 71: CS 5704: Software Engineering

Relevant Contributions

• Pioneered a methodology to address a long-standing problem of connecting SE and UE

• Created a framework to foster and structure communication

• Demonstrated utility using an exploratory study

• Serious implications on quality of systems

• Need for checks and balances to ensure positive team dynamics

• Communication impacts on geographically distributed teams

• Demonstrated effectiveness of cross-pollinated courses

46

Page 72: CS 5704: Software Engineering

end

47