4 Component Discovery, Illustrated
11 September 2024
Questions?
4.1 The Idea
Let’s use Bazaar and illustrate the abstract development process from 1-3. We should probably just say it is a board game and leave it at that.
4.1.1 Spiraling away from the Idea
[10-15min]
The idea is simple, namely, we want a “game server for bored hackers”. What concepts, which people, which objects do you think are involved? Let’s tease it out of them.
concepts: tiles & board; rules; (AI) players; ... we will get back to those later
people: Bazaar.com; dev ops; hackers; observers (parents, grandparents, e-sports bars, ...)
objects: server machines; hackers’ machines; displays for paying observers
Here is a concept that doesn’t show up in the “inject sw into a social network” immediately: the referee.
4.1.2 Drawing the Boundary; Use Cases
[5-10min]
remind them of how systems run: start up, steady state, shut down —
sign up: a hacker’s client connects an AI player to the game server. Response?
starting a game: the server has enough players; let’s run a game under the supervision of a referee, which somehow runs turns until the game is over:
functionality: referee and an “active” player “converse”
limits: non-functional requirements; robustness vs security vs performance ...
functionality: inform interested observers of what’s going on
ending a game: it is the referee that discovers the end of the game. Who needs this information: the company for distributing the prize and the players.
Key insight: there is no such thing as one boundary where stimuli get the system to compute a response but there are many. This indicates the existence of components.
4.1.3 Component Identification
[5-10min]
The boundaries indicate components that talk to each other:
enumerate components: ref, player.
dependencies among components
graph? ordering? –> construction plan
The talking to each other clearly happens at two levels:
at the level of a game logic
at the level of an exchange of messages in a distributed system
The result is (a first draft of) the requirements document.
4.2 Milestone 1
[2min]
Just point out that 1 exists and that it consists of two tasks, completely left to their imagination. We don’t answer questions up front. That’s one of the two tasks.
4.3 TA HB PL B
[15-20min]
demo and explain code
Total: 37-57 mins (which does not include the Q&A period)