COS 420 - Introduction To Software Engineering
Homework Assignments
Larry Latour
Spring, 2009
Homework
- Homework Packet #1 (Chapters 1 and 2): I expect that you spend a reasonable amount of time on each of these questions. While I'd rather not put a size requirement on the length of your answers, a paragraph or two is probably nowhere near what I expect.
- Case Study for chapter 1: Using a non-trivial system that you have developed during your time at UMaine, either in-class or out, show how the waterfall model "maps" (or fails to "map") onto your system development process.
- 2.1 (use a simple example from your experience)
- 2.3 (you might need to do some research on the concept of inheritance. Most good descriptions will address this question)
- 2.5
- 2.6 (you might need to do some research on the concept of "open systems." Most good descriptions should hint at this question)
- 2.7 (by "critically", I mean discuss the pros and cons)
- 2.9 (represent your answer as a grid, possibly with a spreadsheet)
- 2.10 (represent your raph neatly, and properly label the arrows to describe their meaning)
- Homework Packet #2:
- Prelim work for Lamport clocks: Please hand in a description of your part of the group Lamport Mutual Exclusion Algorithm. Also hand in your personal journal of the meetings you have had up to the submission of thise homework. This should include what group decisions were made, what the group accomplished, and what you accomplished.
- 3.1 - I want a careful analysis of the program fragment you choose
- 3.2 - The Wikipedia has a nice section on AOP
- 3.7 - Give concrete examples here. Discuss it with your group or other class members!
- 3.8
- 3.10
- 3.11
- 3.12 - Discuss this question specifically from the point of view of your Lamport Mutual Exclusionproject
- 3.15
- 3.19
- Homework Packet #3
- 4.2
- 4.3 If your answer is no, do a little research, develop an example, and discuss what you guess would make your software difficult to change.
- 4.7
- 4.8 This is a bit tricky, and relates to the ability of a system to be parameterized by functionality. Suppose further that we are using Java or C++. How would you define the USES relation with respect to the full power of Java generics or C++ Templates?
- 4.10
- 4.13 Most of you have at least C++ or Java under your belt. Use your base language as a start, and see how much you can find out about the other three. My guess is that there's a load of detail out on the web.
- 4.14
- 4.18
- 4.19
- 4.22
- 4.23
- 4.34
- 4.38
- 4.43
- Homework Packet #4
- Section 5.3: Write a descriptive specification of:
- a function to find the minimum value of an n position array of integers
- a function to define division (you may use multiplication in your specification
- 5.7 (Data flow diagrams)
- 5.9 (FSMs)
- 5.13 (Petri Nets)
- 5.23, 5.24 (Petri Net Elevator Sim)
- Section 5.6.2.1 (Logic Specs) rewrite Section 5.3 descriptive specifications as input-output logic specs
- 5.36 (Logic Spec Elevator Sim)
- 5.53 and 5.54 (Zed Spec Elevator Sim)
- Group (this can be handed in as a group submission) - show that your Lamport implementation satisfies the Zed specification RequestQueue Consistency Lemma in the Powerpoint slides
- Group (this can be handed in as a group submission) - review carefully the Trivicalc reference manual specification. Assuming that I had to develop a spreadsheet application that could be designed and implemented in a month, write a set of requirements that I would have followed in designing the Trivicalc reference manual specification.
- Group (this can be handed in as a group submission) - review carefully the Trivicalc reference manual specification. Identify the components of this specification that would benefit from a more formal description. You might think of why a formal description is generally needed for such a problem.
- Homework Packet #5 - Chapter 6 (part) Verification
- 6.1
- 6.2
- 6.3
- 6.9 Use the Trivicalc BNF expression syntax
- 6.10
- 6.11
- Homework Packet #6
Last updated: 4/20/09