Using UML Patterns and Java ObjectOriented Software Engineering

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

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 2

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 3

Figure 3 -2, States of a software project. Scope Defined Definition do/Define Scope Start do/Assign Tasks Assigned Termination do/Deliver System Steady State do/Develop System Done Can you spot any “weaknesses” in this diagram? Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4

Overview of communications ¨ Planned communications w w w ¨ Problem inspection Status meetings Peer reviews Client and project reviews Releases Unplanned communications w Requests for clarification w Requests for change w Issue 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 5

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 6

Figure 3 -3, A team-based organization consists of organizational units called teams, which consists of participants or other teams. Organization * Team * Participant Is this a linear structure? Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7

Figure 3 -4, Example of a simple project organization. Reporting, deciding, and communicating are all made via the aggregation association of the organization. Simple Project : Organization Management : Team Bernd Bruegge & Allen H. Dutoit User. Interface : Team Database : Team Object-Oriented Software Engineering: Using UML, Patterns, and Java Control : Team 8

Figure 3 -5, Example of reporting structure in a hierarchical organization. Management : Team communicate. Decision() communicate. Status() User. Interface : Team Bernd Bruegge & Allen H. Dutoit communicate. Status() Database : Team Object-Oriented Software Engineering: Using UML, Patterns, and Java Control : Team 9

Figure 3 -6, Example of a organization with a liaisonbased communication structure. User. Interface : Team communicates team leader Alice : Developer communicates API engineer John : Developer Architecture: Team Mary : Developer communicates Documentation: Team communicates implementor Chris : Developer Testing: Team implementor Sam : Developer documentation liaison Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java Management: Team 10

Figure 3 -7, Types of roles found in a software engineering project. Briefly describe each of these roles. Developer API Engineer Document Editor Liaison Configuration Manager Tester Role Project Manager Team Leader Application Domain Specialist Consultant Solution Domain Specialist Client End User Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11

Figure 3 -8, Work products for the a database subsystem team. Database Subsystem Work Products persistent objects: Class Model source: Source Code design objects: Class Model inspection defects: Document test plan: Document testing defects: Document Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12

Figure 3 -9, Associations among tasks, activities, roles, work products, and work packages. describes Work Package * results in Work Product Unit Of Work 1 Activity Task * 1 assigned to Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java Role 13

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

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 15

Figure 3 -11, Schedule for the database subsystem (PERT chart). Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16

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 17

Figure 3 -12, Relationships among organizational and communication concepts. Organization assigned to * responsible f or Participant 1 * Team * Role * produces Task 1 * * Work Product * 1 Schedule mapped to 1 Communication Planned Communication Event appear in * Problem Definition Bernd Bruegge & Allen H. Dutoit Unplanned Communication Event concern * Request for Clarification Review Request for Change Release Issue Resolution Object-Oriented Software Engineering: Using UML, Patterns, and Java 18

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 19

Classification of Communication Event Planned Event Bernd Bruegge & Allen H. Dutoit is supported by * Unplanned Event Communication Mechanism * Synchronous Mechanism Object-Oriented Software Engineering: Using UML, Patterns, and Java Asynchronous Mechanism 20

Planned Communication Events Problem Definition w Objective: Present goals, requirements and constraints w Example: Client Presentation w Usually scheduled at the beginning of a project. Project Review: Focus on system model w Objective: Assess status and review system model, system decomposition, and subsystem interfaces w Examples: Analysis Review, System Design Review w Scheduled around project milestones and deliverables Client Review: Focus on requirements w Objective: Brief client, agree on requirements changes w Client Review w Usually scheduled after analysis phase Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21

Planned Communication Events (continued) Walkthrough (Informal) w Objective: Increase quality of subsystem w Example: Developer presents subsystem to team members, informal, peer-to-peer w To be scheduled by each team Inspection (Formal) w Objective: Compliance with requirements w Example: Client acceptance test (Demonstration of final system to customer) w To be scheduled by project management Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22

Planned Communication Events (continued) Status Review w Objective: Find deviations from schedule and correct them or identify new issues w Example: Status section in regular weekly team meeting w Scheduled every week Brainstorming w Objective: Generate and evaluate large number of solutions for a problem w Example: Discussion section in regular weekly team meeting w Scheduled every week Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 23

Planned Communication Events (continued) Release w w w w Objective: 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 Review w Objective: Describe Lessons Learned w Scheduled at the end of the project Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24

Unplanned Communication Events Request for clarification w The bulk of communication among developers, clients and users. w Example: A developer may request a clarification about an ambiguous sentence in the problem statement. Request for change w A participant reports a problem and proposes a solution w Change requests are often formalized when the project size is substantial. w Example: A participant reports of a problem the air conditioner in the lecture room and suggests a change. Issue resolution w Selects a single solution to a problem for which several solutions have been proposed. w Uses issue base to collect problems and proposals Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 25

Example of Request for Clarification From: Alice Newsgroups: cs 413. architecture. discuss Subject: SDD Date: Thu, 10 Oct 23: 12: 48 -0400 Message-ID: <325 DBB 30. 4380@andrew. cmu. edu> Mime. Version: 1. 0 Content-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 26

Example of a Change Request Report number: 1291 Date: 5/3 Author: Dave Synopsis: The STARS client crashes when empty forms are submitted. Subsystem: User interface Version: 3. 4. 1 Classification: missing/incorrect functionality, convention violation, bug, documentation error Severity: severe, moderate, annoying Description: <<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 27

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

Synchronous Communication Mechanisms Smoke signals w Supports: ? , Pros: ? , Cons: ? Hallway conversation (face-to-face) w Supports: Unplanned conversations, Request for clarification, request for change w Pro: Cheap and effective for resolving simple problems w Con: Important information can be lost, misunderstandings can occur when conversation is relayed to others. Meeting (face-to-face, telephone, video conference) w Supports: Planned conversations, client review, project review, status review, brainstorming, issue resolution w Pro: Effective mechanism for resolution of isssues, and building consensus w Con: 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 29

Meeting Roles ¨ Primary facilitator w Responsible for organizing the meeting and guiding the execution. w Writes the agenda describing objective and scope of meeting. w Distribute the agenda to the meeting participants ¨ Minute taker w Responsible for recording the meeting. w Identifies action items and issues w Release them to the participants ¨ Time keeper w Responsible for keeping track of time Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 30

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

Asynchronous Communication Mechanisms E-Mail w Supports: Release, change request, brainstorming w Pro: Ideal for planned communication events and announcements. w Con: E-mail taken out of context can be easily misunderstood, sent to the wrong person, lost or not read by the receiver. Newsgroups w Supports: Release, change request, brainstorming w Pro: Suited for notification and discussion among people who share a common interest; cheap (shareware available) w Con: Primitive access control (often, you are either in or out) World Wide Web w Supports: Release, change request, inspections w Pro: Provide the user with a hypertext metaphor: Documents contain links to other documents. w Con: Does not easily support rapidly evolving documents Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 32

Asynchronous Communication Mechanisms Lotus Notes w Each 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 documents w Supports: Release, change request, brainstorming w Pro: Provides excellent access control mechanisms and replication of databases. w Con: Proprietary format, expensive Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 33

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 34

Reviewer Notification ¨ Selected reviewers get e-mail Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 35

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

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

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

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

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 40

Accepted Document w/ Action Items Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 41

Summary ¨ Communication Events w Planned (stipulated by the schedule) w Unplanned (driven by unexpected events) ¨ Communication Mechanisms w Asynchronous communication mechanisms w Synchronous communication mechanisms ¨ Important events and mechanisms w Weekly meeting w Project reviews w Online communication (discussion forum, email, web) Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 42
- Slides: 42