Object-Oriented Software Design (COMP 304) Object-Oriented Software Design and Software Processes Hans Vangheluwe Modelling, Simulation and Design Lab (MSDL) School of Computer Science, McGill University, Montr´ eal, Canada Hans Vangheluwe hv@cs.mcgill.ca 1/22
Overview 1. (Software) Process: definition 2. Various Software Processes 3. The Process Influences Productivity: Dynamic Process Modelling using Forrester System Dynamics Hans Vangheluwe hv@cs.mcgill.ca 2/22
Process: A Queueing System Departure Arrival Cashier Queue Physical View Departure Arrival Cashier Queue [IAT distribution] [ST distribution] Abstract View Hans Vangheluwe hv@cs.mcgill.ca 3/22
Event/Activity/Process Cust2 Process Cust2 Activity Cust2 Activity queue pay cashier Cust1 Process Cust1 Activity pay cashier Cust1 Arrival Cust1 End pay cashier t Cust1 Start pay cashier Cust1 Leave Cust2 Arrival Cust2 End Queueing Cust2 End pay cashier Cust2 Start Queueing Cust2 Start pay cashier Cust2 Leave Event Hans Vangheluwe hv@cs.mcgill.ca 4/22
Software Processes “The Software Engineering process is the total set of Software Engineering activities needed to transform requirements into software”. Watts S. Humphrey. Software Engineering Institute, CMU. http://portal.acm.org/citation.cfm?id=75122 Hans Vangheluwe hv@cs.mcgill.ca 5/22
Software Processes (see notes) • Waterfall (Royce) • V Model (German Ministry of Defense) • Prototyping • Operational Specification • Transformational (automated software synthesis) • Phased Development: Increment and Iteration • Spiral Model (Boehm) • The Rational Unified Process (RUP) • Extreme Programming (XP) Hans Vangheluwe hv@cs.mcgill.ca 6/22
The Rational Unified Process (RUP): Activity Workload as Function of Time Hans Vangheluwe hv@cs.mcgill.ca 7/22
The Rational Unified Process (RUP): Observations 1. Waterfall-like sequence of Requirements, Design, Implementation, Testing. 2. Not pure waterfall: • Phased Development ( iterative ) • Overlap ( concurrency ) between activities 3. Testing: • Regression (test not only newly developed, but also previously developed code) • Testing starts before design and coding (Extreme Programming) Hans Vangheluwe hv@cs.mcgill.ca 8/22
RUP: Phased Development Hans Vangheluwe hv@cs.mcgill.ca 9/22
Extreme Programming (XP) www.extremeprogramming.org Hans Vangheluwe hv@cs.mcgill.ca 10/22
Extreme Programming (XP) highlights • User Stories are written by the customers as things that the system needs to do for them. They drive the creation of acceptance tests . • The project is divided into Iterations . Hans Vangheluwe hv@cs.mcgill.ca 11/22
Extreme Programming (XP) highlights Use Class, Responsibilities, and Collaboration (CRC) Cards to design the system. Hans Vangheluwe hv@cs.mcgill.ca 12/22
Extreme Programming (XP) highlights • Code the Unit Test first . • All code must have Unit Tests; All code must pass all unit tests before it can be released. • Refactor whenever and wherever possible. Hans Vangheluwe hv@cs.mcgill.ca 13/22
Extreme Programming (XP) highlights Pair Programming www.charm.net/ jriley/pairall.html Hans Vangheluwe hv@cs.mcgill.ca 14/22
The Process influences Productivity “Adding manpower to a late software project makes it later”. Fred Brooks. The Mythical Man-Month. http://www.ercb.com/feature/feature.0001.html Hans Vangheluwe hv@cs.mcgill.ca 15/22
Why Brooks’ Law ? Team Size. Model in Forrester System Dynamics using Vensim PLE (www.vensim.com) development rate = nominal_productivity* (1-C_overhead*(N*(N-1)))*N Hans Vangheluwe hv@cs.mcgill.ca 16/22
Team Size N = 5 Hans Vangheluwe hv@cs.mcgill.ca 17/22
Team Size N = 3 . . . 9 Optimal Team Size between 7 and 8 Hans Vangheluwe hv@cs.mcgill.ca 18/22
The Effect of Adding New Personnel (FSD model) development rate = nominal_productivity* (1-C_overhead*(N*(N-1)))* (1.2*num_exp_working + 0.8*num_new) Hans Vangheluwe hv@cs.mcgill.ca 19/22
5 New Programmers after 100 days Hans Vangheluwe hv@cs.mcgill.ca 20/22
5 New Programmers after 100 days Hans Vangheluwe hv@cs.mcgill.ca 21/22
0 . . . 6 New Programmers after 100 days Hans Vangheluwe hv@cs.mcgill.ca 22/22
Recommend
More recommend