object oriented software design and software processes
play

Object-Oriented Software Design and Software Processes Hans - PowerPoint PPT Presentation

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


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. The Rational Unified Process (RUP): Activity Workload as Function of Time Hans Vangheluwe hv@cs.mcgill.ca 7/22

  8. 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

  9. RUP: Phased Development Hans Vangheluwe hv@cs.mcgill.ca 9/22

  10. Extreme Programming (XP) www.extremeprogramming.org Hans Vangheluwe hv@cs.mcgill.ca 10/22

  11. 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

  12. Extreme Programming (XP) highlights Use Class, Responsibilities, and Collaboration (CRC) Cards to design the system. Hans Vangheluwe hv@cs.mcgill.ca 12/22

  13. 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

  14. Extreme Programming (XP) highlights Pair Programming www.charm.net/ jriley/pairall.html Hans Vangheluwe hv@cs.mcgill.ca 14/22

  15. 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

  16. 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

  17. Team Size N = 5 Hans Vangheluwe hv@cs.mcgill.ca 17/22

  18. Team Size N = 3 . . . 9 Optimal Team Size between 7 and 8 Hans Vangheluwe hv@cs.mcgill.ca 18/22

  19. 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

  20. 5 New Programmers after 100 days Hans Vangheluwe hv@cs.mcgill.ca 20/22

  21. 5 New Programmers after 100 days Hans Vangheluwe hv@cs.mcgill.ca 21/22

  22. 0 . . . 6 New Programmers after 100 days Hans Vangheluwe hv@cs.mcgill.ca 22/22

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend