
Software Design: Planning Purposeful Solutions Together
A Community-Engaged ApproachBy Dan Gillis, Nic Durish, Alessandro ArezzaLength4h 39m
About this audiobook
Software Design: Planning Purposeful Solutions Together - A Community-Engaged Approach introduces software design as a collaborative, iterative, and human-centred process. It guides students from understanding users and asking good questions through requirements, use cases, prototyping, wireframing, UML, testing, and communicating design decisions. Throughout the book, students learn to work effectively in teams, engage respectfully with community partners, consider accessibility and responsible design, manage uncertainty and change, and reflect on feedback and their own learning. Rather than focusing only on building software, the textbook emphasizes developing a software designer mindset: listening, questioning assumptions, making thoughtful decisions, iterating on ideas, and creating solutions that respond to the needs of the people and communities they are intended to serve.
Audiobook details
GenreEducation and Learning
Length4 hrs 39 mins
Narrated byListen with 1,000+ voices
FormateBook with Audio
Publish dateAug 18, 2026
LanguageEnglish
Table of contents
1Title Page
24Estimating Development Time
2Copyright
25From Requirements To A Development Plan
3Dedication
26Velocity And Realistic Timelines
4Acknowledgements
27Building A Development Timeline
5Part 1: Getting Started
28Breaking Things Into Tasks
Show all chaptersShow less
6Welcome To CIS3750
29Monitoring Progress During Development
7How To Use This Textbook
30Working Effectively In Teams
8Accessibility & This Book
31Part 4: Designing Solutions
9Why Community-Engaged Learning?
32Why We Prototype
10Software Design
33Use Cases
11What Makes Good Software?
34Paper Prototyping
12Ethics & "Do No Harm"
35Wireframes
13Part 2: Understanding the Problem
36Testing Your Design
14Asking Good Questions
37Introduction To UML
15Understanding Users
38Class Diagrams
16User Stories & Requirements
39Sequence Diagrams
17What Makes Good Requirements?
40Communicating Design Decisions
18Specificity
41Part 5: Reflecting & Growing
19Iteration
42Reflection & Lessons Learned
20Importance
43Thinking Like A Software Designer
21Prioritization
44Final Thoughts
22Identifying Dependencies
45About The Authors
23Part 3: Planning Software Development