Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Reminders  First project report due today 14:00.

Slides:



Advertisements
Similar presentations
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Advertisements

Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 12, Software Life Cycle.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering September 12, 2001 Capturing.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 3, Project Organization and Communication, Part 2.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Example of a Problem Statement: Introduction into.
CSE 308 Project Management. SWE Communication Skills Management: Run a team meeting Presentation: Present aspects of your project during its development.
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Pair of Wires Box 1Box 2 A Communication Example "Two missile electrical boxes manufactured by different contractors were joined together by a pair of.
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
Project Management and Communication Represented by: Latifa Jaber Al-Ghafran.
Feb. 2, 2004CS WPI1 CS 509 Design of Software Systems Lecture #3 Monday, Feb. 2, 2004.
IS 421 Information Systems Management James Nowotarski 16 September 2002.
Nov. 13, 2003CS WPI1 CS 509 Design of Software Systems Lecture #11 Thursday, Nov. 13, 2003.
Requirements Elicitation Chapter 4. Establishing Requirements Two questions –What is the purpose of the system –What is inside and what is outside the.
ARENA Case Study Project for Software Engineering Prepared by: Dalal Al-Shammari 2001/55313 Fall 2005 Supervisor: Dr. Qutaibah Mallohi.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java Project Management Introduction Using UML, Patterns,
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 3, Project Organization and Communication.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Configuration Management
Using UML, Patterns, and Java Object-Oriented Software Engineering Example of a Problem Statement: Introduction into ARENA.
CEN Fourth Lecture Introduction to Software Engineering (CEN-4010) Instructor: Masoud Sadjadi Project Organization.
What is Business Analysis Planning & Monitoring?
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 3, Project Organization and Communication.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 3, Project Organization and Communication, Part 1.
Web Development Process Description
S/W Project Management
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
CPTE 209 Software Engineering Summary and Review.
UML - Development Process 1 Software Development Process Using UML (2)
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Art for Chapter 11, Project Management.
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 3, Project Communication.
1 Phases in Software Development Lecture Software Development Lifecycle Let us review the main steps –Problem Definition –Feasibility Study –Analysis.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 3, Project Communication.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 3, Project Organization and Communication.
UNB CS3013 Software Engineering II lectures adapted from Bernd Bruegge & Allen Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
ISM 5316 Week 3 Learning Objectives You should be able to: u Define and list issues and steps in Project Integration u List and describe the components.
1 Instructor: S. Masoud Sadjadi sadjadi At cs Dot fiu Dot edu Software Engineering and Project Communications.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML: Review Session (Optional)
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
SYSC Software Project Management - Communication1 Project Organization & Communication Books: 1. B. Bruegge and A. H. Dutoit, Object-Oriented Software.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering November 7, 2001 Project.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Chapter 3, Project Organization and Communication
Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts.
System Maintenance Modifications or corrections made to an information system after it has been released to its customers Changing an information system.
Using UML, Patterns, and Java Object-Oriented Software Engineering 15. Software Life Cycle (Waterfall)
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 CP586 © Peter Lo 2003 Multimedia Communication Multimedia Development Team.
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Project Organization and Communication Roadmap for today’s class Project organization organization roles tasks and work products schedule – Gantt chart,
A comment from a student who took SE in Fall, 2004 I dont think the final result of any groups project directly relates to what we all learned in this.
Bernd Bruegge and Allen Dutoit Requirements Process The requirements process consists of two activities: Requirements Elicitation: Definition of the system.
Chapter 3, Project Organization and Communication
Chapter 3, Project Organization and Communication
Project Organization and Communication
Project Organization and Communication
Project Organization & Communication
Example of a Problem Statement: Introduction into ARENA
Project Organization and Communication
Hyper-V Cloud Proof of Concept Kickoff Meeting <Customer Name>
Example of a Problem Statement: Introduction into ARENA
Chapter 3, Project Organization and Communication, Part 2
Chapter 1, Introduction to Software Engineering
Example of a Problem Statement: Introduction into ARENA
Introduction to Software Engineering (CEN-4010)
Presentation transcript:

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Reminders  First project report due today 14:00  Bring hardcopies or PDF to me or Huseyin Gokhan Akcay  Quiz #1 on Friday

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

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3 Pair of Wires Box 1Box 2 A Communication Example "Two missile electrical boxes manufactured by different contractors were joined together by a pair of wires.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4 Box 1Box 2 A Communication Example (continued) Thanks to a particular thorough preflight check, it was discovered that the wires had been reversed."

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5 After the Crash "The postflight analysis revealed that the contractors had indeed corrected the reversed wires as instructed."

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6  “In fact, both of them had.” Box 1Box 2

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7 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. It’d be nice for each of you to (acquire and) demonstrate the following skills:  Management: Run a team meeting  Presentation: Present a major aspect of your project 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 your software

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8 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 9 Classification of Communication is supported by ** Synchronous Mechanism Asynchronous Mechanism Communication Mechanism Unplanned Event Planned Event Communication Event

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

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11 Client  In the next project meeting of your group, assign one member as the “client” and practice the client meeting

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12 Planned Communication Events (continued) Walkthrough (Informal)  Objective: Increase quality of subsystem  Example: Developer presents subsystem to team members, informal, peer-to-peer  To be scheduled by each team member Inspection (Formal)  Objective: Compliance with requirements  Example: 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 13 Planned Communication Events (continued) Status Review  Objective: Find deviations from schedule and correct them or identify new issues  Example: Status section in regular weekly team meeting  Scheduled every week Brainstorming  Objective: Generate and evaluate large number of solutions for a problem  Example: Discussion section in regular weekly team meeting  Scheduled every week

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

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15 Unplanned Communication Events Request for clarification  The 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 change  A participant reports a problem and proposes a solution  Change 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 resolution  Selects 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 16 Project components (developer’s perspective)  Work product  Piece of code, a Use Case model, a design document, deliverables (to the client)...  Schedule  Intermediate (internal) deadlines  Alpha, beta, public release dates  Project management software  Participant / project member  Developer, tester, technical writer, product manager...  Task  Design a component, test a component, fix a bug, write User’s Guide...  Issue tracking software

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17 Project organizations  Team based  Interaction via reporting, decision, and communication  Example organization  Management team  User Interface team  Database team  Control team

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18 Roles  Each member may assume multiple roles  Role types  Management roles  Project manager, team leader...  Development roles  System architect, object designer, implementor, tester...  Cross-functional roles  API engineer, document editor, configuration manager, tester...  Consultant roles  Client, end-user, application domain specialist, solution domain specialist...

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19 Tasks and work products  Task: well-defined work assignment for a role  Design a component, test a component, fix a bug, write User’s Guide...  Work product: tangible item resulting from a task  Piece of code, a UC model, a design document, deliverables (to the client)...

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20 Schedule  Mapping of tasks onto time with dependencies specified

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

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

Using UML, Patterns, and Java Object-Oriented Software Engineering Example of a Problem Statement: Introduction into ARENA Case Study A multi-user, web-based system for organizing and conducting game tournaments

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24 ARENA: The Current Situation  The Internet has enabled virtual communities  Multi-player computer games now include support for virtual communities  Players can receive news about game upgrades, new game levels, announcement of matches and scores  Currently each game company develops such community support in each individual game  Each company uses a different infrastructure, different concepts, and provides different levels of support  This redundancy leads to problems:  High learning curve for players joining a community  Game companies develop the support from scratch  Advertisers contact each community separately.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 25 ARENA: The Objectives  Provide a generic infrastructure to  Support virtual game communities.  Register new games  Register new players  Organize tournaments  Keeping track of the players scores.  Provide a framework for tournament organizers  to customize the number and sequence of matchers and the accumulation of expert rating points.  Provide a framework for game developers  for developing new games, or for adapting existing games into the ARENA framework.  Provide an infrastructure for advertisers.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 26 ARENA: The Objectives (2)  Provide a framework for tournament organizers  to customize the number and sequence of matchers and the accumulation of expert rating points  Provide a framework for game developers  for developing new games, or for adapting existing games into the ARENA framework  Provide an infrastructure for advertisers.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 27 ARENA Functional Requirements  Spectators must be able to watch matches in progress without prior registration and without prior knowledge of the match  The operator must be able to add new games.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 28 ARENA Nonfunctional Requirements  The system must support  10 parallel tournaments,  Each involving up to 64 players  and several hundreds of spectators.  The ARENA server must be available 24 hours a day  The operator must be able to add new games without modifications to the existing system  ARENA must be able to dynamically interface to existing games provided by other game developers.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 29 Constraints  Constraint: Any client restriction on the solution domain and project management  Sometimes also called Pseudo Requirements  Constraints restrict the solution space  Example of constraints  Delivery constraints (“must be delivered before Christmas”)  Organizational constraints (“must have a separate testing team”)  Implementation constraints (“must be written in C++”)  Target platform constraints (“must run on Windows 7”)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 30 ARENA Target Environment Example:  Users must be able to run ARENA games as applets in any Web Browser  The web page must be validated through the W3C Markup Validation Service  Interaction with the ARENA Server must be via HTTP/1.1. To be distinguished from development environment  “Prototypes will be built with Revolution 2.6.1”  “Games will be tested with Internet Explorer and Firefox”  “The implementation language will be Java ”  “The IDE will be Eclipse 3.2”

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 31 Project Schedule  The project schedule is an optional part of the problem statement  Managerial information  Often the seed for the schedule in the software project management plan.  Lists only major milestones negotiated with the client  3 to 4 dates (fixed dates!)  Example:  Project-kickoff April 15  System review May 15  Review of first prototype Jun 10  Client acceptance test July 30

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 32 Client Acceptance Criteria  The system supports 10 parallel tournaments with 64 players and 10 spectators per tournament  The client supports the games Tic-Tac-Toe and Asteroids  The average response time for a command issued by a client is less than 1 second  The average up-time of the ARENA server during one week of testing is 95%.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 33 (Initial) ARENA Models  Subsystem Decomposition  User Interface of Client  User Interface of Server  Object Model

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 34 ARENA Subsystem Decomposition Tournament Component Management User Management Tournament Statistics User DirectoryUser Interface Session Management Advertisement

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 35 ARENA Object Model Tournament League Game Tournament Style Player Round Match KOStyle RoundRobin

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 36 ARENA Object Model (2) Tournament League Game TournamentStyle Player Round Match TicTacToe Asteroids KOStyle RoundRobin Move MatchPanel Factory MatchPanel creates

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

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 38 ARENA User Interface (Client)

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 39 ARENA User Interface (Server)