Part 1 due Tuesday, February 19; the rest due Thursday, February 21.
Service Oriented Plugin Architectures for Biodiversity InformaticsThe Spring Dependency Injection framework allows a wide variety of resources to be accessed to maximize reuse of data and code. I'll talk about how such Service Oriented Architectures generalize the important Model-View-Controller(MVC) design pattern to permit resource reusability and reduce unwanted tight coupling between components of a software system. The example system, the Computable Field Guide software, is designed to exploit algorithms that help users explore which attributes of data about species are likely help them most quickly and accurately identify a specimen in the field or in the lab. Spring allows a "Mix and Match" strategy for MVC that allows each component to be switched easily at system configuration time, or sometimes even at run time, in ways that allow them to transparently be any combination of web services or calls to local code.
You need not write out and turn in your answers to the last two problems (which really belong to cs310 rather than to cs410) but do try to solve them, so that you will be ready to appreciate the lecture.
This subject matter might seem relevant only for the Mass Biodiversity project. In fact it's less relevant there than you might think, and useful for everyone.
| Make | cylinders | color |
| Honda | 4 | red |
| Mitsubishi | 6 | red |
| GM | 4 | green |
| Ford | 6 | blue |
Given a color and number of cylinders, what manufacturer of car should you choose?
Try to make a "decision tree" from this table which minimizes the average number of decisions to be made to select a car that meets your criteria. A decision tree is a tree where each node is associated with a question based on the table (e.g. "How many cylinders do you require?") and whose edges correspond to the possible answers from the table (e.g. left subtree 4, right subtree 6). The leaves are the names of the manufacturers offering a car that meets the AND of all the criteria on the path. The criteria are only allowed to come from color and number of cylinders.
For instructions on how to edit wiki pages, see http://meta.wikimedia.org/wiki/Help:Editing .
If you were working at a full time job at a place that required time sheets you would have to account for at least 40 hours each week. Since cs410 isn't your full time job, you will surely be tempted to exaggerate when you fill out this one. Please don't. Remember that one of the most important software engineering principles is truth in scheduling. And exaggeration would be difficult, because the timesheet asks both for time spent and visible tasks accomplished. So it won't look good if you list many hours with little to show for them.
Use the comments section to reflect on your week's work. Were you satisfied? Too busy with other commitments to do as much as you'd hoped? Frustrated by technical obstacles (or clients or teammates). Ecstatic about progress made (yours or the team's)?