Presentation is loading. Please wait.

Presentation is loading. Please wait.

Fundamentals of Software Development 1Slide 1 Activity: Organizing a Computational Community With your partner and another pair:With your partner and another.

Similar presentations


Presentation on theme: "Fundamentals of Software Development 1Slide 1 Activity: Organizing a Computational Community With your partner and another pair:With your partner and another."— Presentation transcript:

1 Fundamentals of Software Development 1Slide 1 Activity: Organizing a Computational Community With your partner and another pair:With your partner and another pair: –Describe the division of responsibility and coordination of activities among the entities in a professional baseball team. Address the key questions:Address the key questions: –What is the desired behavior? –Who are the entities who interact to produce this behavior? –How do these entities work? (What goes inside each entity?) –How do these entities interact? Give DETAILS for each of the above questions!Give DETAILS for each of the above questions! Time limit for this exercise: 10 minutes!

2 Fundamentals of Software Development 1Slide 2 Desired Behavior What is the desired behavior?What is the desired behavior? Before you can design a system to solve your problem, you must know what your problem is.Before you can design a system to solve your problem, you must know what your problem is. Questions you should be able to answer include:Questions you should be able to answer include: –What services should your program provide? –What guarantees does your program make about those services? –Under what assumptions (circumstances, conditions) does your program make those guarantees? Class discussion: what answers did you provide to the above in your baseball team exercise?Class discussion: what answers did you provide to the above in your baseball team exercise?

3 Fundamentals of Software Development 1Slide 3 Entities Who are the entities who interact to produce the desired behavior?Who are the entities who interact to produce the desired behavior? Use incremental program design:Use incremental program design: –Answer the “who” question in general terms. –Answer the “how interact” and “how works” key questions. –Return to the “who” question (and repeat as needed). Class discussion: who are the members of the community in your baseball team exercise?Class discussion: who are the members of the community in your baseball team exercise? –With the class, begin drawing a sketch of a UML class diagram for this system: players, umpire, ball, mitts, etc

4 Fundamentals of Software Development 1Slide 4 How Do These Entities Work? How do these entities work? (What goes inside each entity?)How do these entities work? (What goes inside each entity?) Closely related to “how do they interact?”Closely related to “how do they interact?” Subsidiary questions to answer include:Subsidiary questions to answer include: –What responsibilities does it have? –What guarantees (promises, commitments) does it make? Under what assumptions? –What resources does it control? –Is it a community, too? Or a single rule-follower?Or a single rule-follower? Class discussion: what’s inside a particular baseball player (e.g. the first-base player)?Class discussion: what’s inside a particular baseball player (e.g. the first-base player)? –Add this to the UML diagram

5 Fundamentals of Software Development 1Slide 5 Entities Interaction How do the entities interact?How do the entities interact? Subsidiary questions include:Subsidiary questions include: –What are the entities’ interface? What promises does each make? What contracts does it fulfill? What services does it provide?What promises does each make? What contracts does it fulfill? What services does it provide? –How do they communicate? What mechanisms do they use?What mechanisms do they use? How do they preserve liveness, i.e., make sure that things keep moving?How do they preserve liveness, i.e., make sure that things keep moving? –What interaction patterns are possible? –What happens when something goes wrong? Class discussion: How do the two players interact in sports team example? For example, in baseball, how does a catcher interact with the pitcher? What protocol do they use?Class discussion: How do the two players interact in sports team example? For example, in baseball, how does a catcher interact with the pitcher? What protocol do they use? –Add this to the UML diagram


Download ppt "Fundamentals of Software Development 1Slide 1 Activity: Organizing a Computational Community With your partner and another pair:With your partner and another."

Similar presentations


Ads by Google