Primary Navigation
Want to create or adapt books like this? Learn more about how Pressbooks supports open publishing practices.
Book Contents Navigation
Dedication
Acknowledgements
Recommended Citation
1. Welcome to CIS3750
2. How To Use This Textbook
3. Accessibility & This Book
4. Why Community-Engaged Learning?
5. Software Design
6. What Makes Good Software?
7. Ethics & Do No Harm
8. Asking Good Questions
9. Understanding Users
10. User Stories & Requirements
11. What Makes Good Requirements?
12. Specificity
13. Iteration
14. Importance
15. Prioritization
16. Identifying Dependencies
17. Estimating Development Time
18. From Requirements To A Development Plan
19. Velocity And Realistic Timelines
20. Building A Development Timeline
21. Breaking Things Into Tasks
22. Monitoring Progress During Development
23. Working Effectively In Teams
24. Why We Prototype
25. Use Cases
26. Paper Prototyping
27. Wireframes
28. Testing Your Design
29. Introduction To UML
30. Class Diagrams
31. Sequence Diagrams
32. Communicating Design Decisons
33. Reflection & Lessons Learned
34. Thinking Like A Software Designer
35. Final Thoughts
About The Authors
Previous/next navigation
Software Design: Planning Purposeful Solutions Together - A Community-Engaged Approach Copyright © 2026 by Daniel Gillis; Nicolas Durish; and Alessandro Arezza. All Rights Reserved.