42
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 3, Project Organization and Communication

Using UML, Patterns, and Java - Appalachian State …blk/cs4667/lectures/ch03.pdfBernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java

Embed Size (px)

Citation preview

Usi

ng U

ML,

Pat

tern

s, an

d Ja

vaO

bjec

t-O

rien

ted

Soft

war

e E

ngin

eeri

ng

Chapter 3, Project Organization and Communication

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2

Questions to be answered

♦ Who is responsible for which part of the system?♦ What part of the system is due by when?♦ Who should be contacted when a problem is discovered?♦ How should a problem be documented?♦ What are the quality criteria for evaluating the system?♦ Who should be informed of new requirements?♦ How should new requirements be communicated to developers?♦ Who is responsible for talking to the client?

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3

Figure 3-1. Model of a project.

Project

Work Product Schedule Task Participant

Describe in your own words what you think each of these “components” are.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4

Figure 3-2, States of a software project.

Definition Start

Termination Steady State

do/Define Scope do/Assign Tasks

do/Deliver System do/Develop System

Scope Defined

Tasks

System Done

Assigned

Can you spot any “weaknesses” in this diagram?

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5

Overview of communications

♦ Planned communicationsProblem inspectionStatus meetingsPeer reviewsClient and project reviewsReleases

♦ Unplanned communicationsRequests for clarificationRequests for changeIssue resolution

♦ We will discuss each of these in more detail shortly but first we deal with project organization

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6

Activities for participants

♦ Attend the kick-off meeting♦ Join a team♦ Attend training sessions♦ Join communication infrastructure♦ Extend communication infrastructure♦ Attend first team status meeting♦ Understand the review schedule

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7

Figure 3-3, A team-based organization consists of organizational units called teams, which consists of participants or other teams.

Team ParticipantOrganization **

Is this a linear structure?

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8

Figure 3-4, Example of a simple project organization. Reporting, deciding, and communicating are all made via the aggregation association of the organization.

UserInterface:Team

Database:Team

Control:Team

Management:Team

Simple Project:Organization

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9

Figure 3-5, Example of reporting structure in a hierarchical organization.

UserInterface:Team Database

:Team

Control:Team

communicateDecision()

communicateStatus()

communicateDecision()

communicateStatus()

Management:Team

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10

Figure 3-6, Example of a organization with a liaison-based communication structure.

UserInterface:Team

Architecture:Team

Documentation:Team

Alice:Developer

John:Developer

Mary:Developer

Chris:Developer

Management:Team

Sam:Developer

team leader

API engineer

documentation liaison

implementor

implementor

communicates

communicates

communicates

Testing:Team

communicates

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11

Figure 3-7, Types of roles found in a software engineering project.

Configuration

Document Editor

Tester

Application

Solution

End User

API Engineer

Client

Liaison

Consultant

ManagerTeam Leader

Project Manager

Role

Developer

Manager

Domain Specialist

Domain Specialist

Briefly describe each of these roles.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12

Figure 3-8, Work products for the a database subsystem team.

design objects:Class Model

source:Source Code

inspection defects:Document

testing defects:Document

test plan:Document

persistent objects:Class Model

Database SubsystemWork Products

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13

Figure 3-9, Associations among tasks, activities, roles, work products, and work packages.

1

*

TaskActivity

Unit Of Work

Work Package Work Productdescribes results in

Roleassigned to

*1

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15

Figure 3-10, An example of schedule for the database subsystem.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16

Figure 3-11, Schedule for the database subsystem (PERT chart).

Storage subsystemsystem analysis1Nov 13

5dNov 19

Storage subsystemobject design2Nov 20

5dNov 26

Storage subsystemtest plan5Nov 27

10dDec 10

Storage subsystemimplementation3Nov 27

15dDec 17

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17

Communication is important

In large system development efforts, you will spend more time communicating than coding

A software engineer needs to learn the so-called soft skills: technical writing, reading documentation, communication, collaboration, management, presentations.

In this course, we ask each of you to (acquire and) demonstrate the following skills:

♦ Management: Run a team meeting♦ Presentation: Present an major aspect of STARS during its

development phase. ♦ Collaboration: Negotiate requirements with the client and with

members from your team and other teams.♦ Technical writing: Write part of the documentation of STARS

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18

Figure 3-12, Relationships among organizational and communication concepts.

Review

Request for

PlannedCommunication Event

Issue ResolutionRelease

UnplannedCommunication Event

Problem Definition

Request for Change

Clarification

Work ProductTask

Participant

produces

*

Role

Schedule

Team

*

*

mapped to

1

responsible for

*1

assigned to

**

concern

*

**

1

1

appear in

Organization

Communication

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19

Definitions

Communication event♦ Type of information exchange that has defined objectives and

scope♦ Scheduled: Planned communication (e.g., review, meeting)♦ Unscheduled:Event-driven communication (e.g., request for

change, issue clarification, problem report)

Communication mechanism♦ Tool or procedure that can be used to transmit information♦ Synchronous: Sender and receiver are available at the same

time♦ Asynchronous: Sender and Receiver are not communicating at

the same time.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20

Classification of Communication

is supported by

* *

SynchronousMechanism

AsynchronousMechanism

CommunicationMechanism

UnplannedEvent

PlannedEvent

CommunicationEvent

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21

Planned Communication Events

Problem DefinitionObjective: Present goals, requirements and constraintsExample: Client PresentationUsually scheduled at the beginning of a project.

Project Review: Focus on system modelObjective: Assess status and review system model, system decomposition, and subsystem interfacesExamples: Analysis Review, System Design ReviewScheduled around project milestones and deliverables

Client Review: Focus on requirementsObjective: Brief client, agree on requirements changesClient ReviewUsually scheduled after analysis phase

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22

Planned Communication Events (continued)

Walkthrough (Informal)Objective: Increase quality of subsystemExample: Developer presents subsystem to team members, informal, peer-to-peerTo be scheduled by each team

Inspection (Formal)Objective: Compliance with requirementsExample: Client acceptance test (Demonstration of final system to customer)To be scheduled by project management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 23

Planned Communication Events (continued)

Status ReviewObjective: Find deviations from schedule and correct them or identify new issuesExample: Status section in regular weekly team meetingScheduled every week

BrainstormingObjective: Generate and evaluate large number of solutions for aproblemExample: Discussion section in regular weekly team meeting Scheduled every week

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24

Planned Communication Events (continued)

ReleaseObjective: Baseline the result of each software development activity Software Project Management Plan (SPMP)Requirements Analysis Document (RAD)System Design Document (SDD)Object Design Document (ODD)Test Manual (TM)User Manual (UM)Usually scheduled after each phase

Postmortem ReviewObjective: Describe Lessons Learned Scheduled at the end of the project

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 25

Unplanned Communication Events

Request for clarificationThe bulk of communication among developers, clients and users. Example: A developer may request a clarification about an ambiguous sentence in the problem statement.

Request for changeA participant reports a problem and proposes a solutionChange requests are often formalized when the project size is substantial. Example: A participant reports of a problem the air conditioner in the lecture room and suggests a change.

Issue resolutionSelects a single solution to a problem for which several solutions have been proposed.Uses issue base to collect problems and proposals

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 26

Example of Request for Clarification

From: Alice

Newsgroups: cs413.architecture.discussSubject: SDDDate: Thu, 10 Oct 23:12:48 -0400

Message-ID: <[email protected]>MimeVersion: 1.0Content-Type: text/plain; charset=us-ascii

When exactly would you like the System Design Document? There is some confusion over the actual deadline: the schedule claims it to be October 22, while the template says we have until November 7.

Thanks,

Alice

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 27

Example of a Change Request

Report number: 1291

Date: 5/3Author: DaveSynopsis: The STARS client crashes when empty forms are submitted.

Subsystem: User interfaceVersion: 3.4.1

Classification: missing/incorrect functionality, convention violation, bug, documentation error

Severity: severe, moderate, annoyingDescription: <<Description of the problem>>Rationale: <<Why the change should be done>>

Proposed solution: <<Description of desired change>>

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 28

Example of Issue Base

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 29

Synchronous Communication MechanismsSmoke signals

Supports: ?, Pros: ?, Cons: ?Hallway conversation (face-to-face)

Supports: Unplanned conversations, Request for clarification, request for changePro: Cheap and effective for resolving simple problemsCon: Important information can be lost, misunderstandings can occur when conversation is relayed to others.

Meeting (face-to-face, telephone, video conference)Supports: Planned conversations, client review, project review, status review, brainstorming, issue resolutionPro: Effective mechanism for resolution of isssues, and building consensusCon: High cost (people, resources); difficulty of managing them and getting effective results

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 30

Meeting Roles

♦ Primary facilitatorResponsible for organizing the meeting and guiding the execution. Writes the agenda describing objective and scope of meeting.Distribute the agenda to the meeting participants

♦ Minute takerResponsible for recording the meeting. Identifies action items and issuesRelease them to the participants

♦ Time keeperResponsible for keeping track of time

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 31

Structure of a Meeting Agenda

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 32

Asynchronous Communication MechanismsE-Mail

Supports: Release, change request, brainstormingPro: Ideal for planned communication events and announcements. Con: E-mail taken out of context can be easily misunderstood, sent to the wrong person, lost or not read by the receiver.

NewsgroupsSupports: Release, change request, brainstormingPro: Suited for notification and discussion among people who share a common interest; cheap (shareware available)Con: Primitive access control (often, you are either in or out)

World Wide WebSupports: Release, change request, inspectionsPro: Provide the user with a hypertext metaphor: Documents contain links to other documents. Con: Does not easily support rapidly evolving documents

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 33

Asynchronous Communication Mechanisms

Lotus NotesEach user sees the information space as a set of databases, containing documents composed of a set of fields. Users collaborate by crating, sharing and modifying documentsSupports: Release, change request, brainstormingPro: Provides excellent access control mechanisms and replication of databases. Con: Proprietary format, expensive

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 34

Fill out the Review Form

♦ Select reviewers♦ Select the document to be reviewed♦ Add comments to reviewers♦ Determine deadline

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 35

Reviewer Notification

♦ Selected reviewers get e-mail

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 36

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 37

Reviewers add their Comments

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 38

Originator Notification

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 39

Final Recipient Notification

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 40

Review Tasks

♦ Editor reviews comments ♦ Editor selects reviewed comments ♦ Web Master posts reviewed document and action items♦ Team members complete their action items♦ Editor integrates changes♦ Editor posts changed document on the review database for the

next review cycle

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 41

Accepted Document w/ Action Items

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 42

Summary

♦ Communication EventsPlanned (stipulated by the schedule)Unplanned (driven by unexpected events)

♦ Communication MechanismsAsynchronous communication mechanismsSynchronous communication mechanisms

♦ Important events and mechanismsWeekly meetingProject reviewsOnline communication (discussion forum, email, web)