Homework Questions

[Week 1]  [Week 2]  [Week 3]   [Week 4]   [Week 5]   [Week 6]   [Week 7]    [Week 8]  




Week 1
  1. Ch 1 Review Questions 1 - 4, 9 - 10.
  2. Betty Analyst has conceptualized a medical patient monitoring system as containing these elements: obtain patient vital signs, check safe limits, signal alarm.  Is her conceptualization process or object oriented? How do you know?
  3. Which conceptualization scheme is superior, process or object oriented?  Why?
  4. Chapter 2 Review Question 2.
  5. Briefly contrast the waterfall development process with the iterative development process.
  6. When is the waterfall process recommended? Why?
  7. What is an advantage of the iterative development process?  What is a disadvantage?

Week 2

Homework #2
Due Tuesday
Divide the questions among the member of your team.  (Manager records who was assigned which questions).  Create a copy of your solutions for the instructor and one for each other team member. 

Answer the following questions using your own words.
 

  1. Define the following terms:
  2. Lookup several definitions of the term "abstraction" and create your own definition.
  3. In a DFD (data flow diagram) the circles represent _____________ and the lines represent ________________________.
  4. Chapter 1 Review Question 7
  5. Chapter 1 Review Question 8.
  6. Are modules in a functional design encapsulated? Explain?
  7. Explain the purpose for creating informal scenarios.
  8. For each of the criteria in Summary Points 2.1, evaluate the scenario below and write "yes" or "no" to indicate whether it meets the criteria.  If you answered "no" explain why.

  9. Mark opens the dishwasher door and slides the bottom tray out along its tracks. He picks up a plate and rinses it using the faucet. He stands the plate in the first slot of the bottom tray. He continues placing dishes in the dishwasher until there are no more dishes to load or the dishwasher is full.
  10. Give three reasons why modeling is helpful to software developers.
  11. Define each of the four criteria Stiller provides for writing quality modules in a design. Invent an example of each.
  12. Inheritance and templates are helpful programming constructs because they contribute to what characteristic of a good design?
  13. List the ISO qualities of good software.
  14. Compare Brooks' team structure (p57-58) to our job descriptions.
  15. In her article, Ludi describes several types of spoken behaviors. "Is everyone clear how to create the data dictionary entries for their use cases?" is an example of which behavior?
  16. What are some examples of positive group dynamics that Ludi describes?
  17. In his article "Why Software is so bad" Mann argues that programmers wrote better quality programs before the 1970's before the advent of personal computers. Explain his argument.
  18. The "code and fix" development style lacks adequate design and leads to what kinds of problems?
  19. In explaining the software industry's unreliable products, how do defenders claim software is different than other industries?
  20. NASA and Lockheed Martin are examples of companies making progress in producing quality software.  What kind of software do they create?  In contrast, what kind of companies are frequently guilty of releasing software with known defects?
  21. Some observers believe that software companies won't shift their focus to quality until they are forced to by threat of lawsuit. Why have software firms been able to avoid product liability litigation so far?
  22. On page 293 Stiller says that three constraints - time, cost, and results - must be balanced by the manager.  Compare this with the "manager's diamond" model shown in class.
  23. Categorize the project manager responsibilities shown in the bulleted list on page 293 into those performed during project commencement and those that are performed throughout the project.
  24. What three reasons does Stiller give for measuring software?  Think of another reason.
  25. For each of the three general schools of thought about how to measure software, give a one sentence description of the general approach, identify the phase or phases of the lifecycle when the measure is computed, and list the major advantages and disadvantages of the approach.
  26. The best project estimates are based on what?
  27. What is the difference in purpose for size metrics and quality metrics?
  28. Fred Brooks in his classic book "The Mythical Man-Month" is famous for his quote "Adding people to a late software project makes it later."  Explain this phenomenon.
  29. What is a software "configuration?"  Invent an example of software that has multiple configurations.
  30. Two-thirds of the way through your project the customer presents a "must have" feature that he wants added to the software.  What procedure does Stiller recommend be followed for dealing with this proposed change?
  31. Why is it important for the manager to understand the interdependencies of each development task?  Explain, using an appropriate example.
  32. It seems that since dividing a project into functional partitions can increase the likelihood of successful implementation, why don't we divide the project into as many subprojects as possible?
  33. What is a "task network?"  How is it useful to managers?
  34. What three scheduling tasks are facilitated by PERT/CPM methods?
  35. How does a Gantt chart differ from a PERT chart?  What are the advantages of each?
  36. Why are milestones better than progress reports for assessing project status?
  37. Match the deliverables list in Fig 9.9 to our course deliverables list in a side-by-side comparison. What items does Stiller include that we have omitted?  What items do we include that are not found on Stiller's list?
  38. Give a one sentence description of each of the four stages of team development.
  39. Stiller lists six symptoms of conflict occuring in a team. Can you think of others?
  40. The suggestions Stiller makes for conflict resolution seem very formal, as though intended for a large organization. What informal strategies can you think of that could apply to a 205 team?
  41. What's the definition of a project "risk?"
  42. Stiller categorizes risks into "technical" and "human" risks. Think of two real risks in each category for your team project at the current time. Be specific.
  43. One of the best ways to reduce technical risk is to deliver the product in a series of incremental steps, sometimes called "staged delivery."  List the benefits of this strategy.


 

Homework #3
Due Thursday

Select 12 of the following questions to answer using your own words.

  1. Requirements analysis is a set of activities that includes _____________ (p63).
  2. Chapter 3 Review Question 1.
  3. Chapter 3 Review Question 2.
  4. Since the end user is the one who wants the proposed system, it can be argued that the user should be ultimately responsible for verifying that the requirements specification is adequate to meet their needs.  Why does Stiller disagree?
  5. What are the advantages of prototyping as a requirements refinement tool?  Are there any disadvantages?
  6. What purpose do "walkthroughs" serve?  How do they accomplish this?
  7. What are the differences between "informal" and "structured" walkthroughs?
  8. Why is it important to have some mechanism for cross-referencing the models produced during development?
  9. The first step in the UCCD method is "identifying primary classes." Although Stiller never mentions it, there may be danger in performing this task so early in the development process. Explain what this might be.
  10. What is a "use case?"  What elements are included in the description of the use case?
  11. What is the relationship between informal scenarios and use cases?
  12. Stiller makes a distinction between "informal scenarios" written before use cases and "scenarios" written after use cases. What is the purpose of "scenarios" and how are they different from "informal scenarios?"
  13. Compare the ER diagram in Figure 1.7 with the "overall class diagram" on pg99.  These two styles of diagrams seem to be trying to communicate similar information. What are the two significant differences in the notation used?
  14. What is the purpose of a use case diagram? Is it created before or after writing the use cases?
  15. Explain the relationship between use cases, functional partitioning, and system evolution.
  16. Chapter 3 Review Question 16.

Homework #4
Due Tuesday Oct 5

After reading the Practical Guide to Use Cases and Use Case Tips, use the Use Case HTML Template and write a use case for some requirement from your team project.


Homework #5
Due Thursday Oct 7

Think of at least seven non-functional requirements for the Galaxy Sleuth software that your team is developing. Write them as clearly and unambiguously as possible. Rank them in order of importance, highest priority first.

Extra Credit

Write a use case for "Plan a Schedule" functionality of POWER.



Homework #6
Due Tuesday Oct 12

Read the tutorial on how to draw Entity Relationship Diagrams (only steps 1 - 3).  Follow steps 1-3 in the tutorial to create a "rough" ERD for problem #1. Show your work for each step.  Optionally, you may complete step 4. 



Homework #7
Due Thursday Oct 14
 
  1. User Interface Design is not "design" in the sense of technical software design. Explain the difference.
  2. In her article, Honey, I forgot the users! Pajerak argues that sometimes a keyboard is superior to the mouse. What are the disadvantages of the mouse? In what situations should you consider designing your User Interface around keyboard input rather than a mouse?
  3. Write a critique of the User Interface for the PH client. (Obtain the software by going to My CalPoly portal, choosing the "technology" tab, go to the Software Download Channel, select Windows, then "ph 1.2 Download."

    Here is a sample screenshot.

    You don't need to critique the menus, just the main window the user interacts with.

    Refer to the principles of good UI design. (Stiller Section 4.12.2 or this list of criteria).  List three aspects of the UI which are good and three which need improvement. In each case, explain which principles are satisfied or broken.



Homework #8
Due date varies for each team.

Submit a copy of the Issues List (or other preparation documents) you create while doing the prep for an FTR. That is, while reviewing another team's documents.
Due the day of the reviewed team's FTR.

Homework #9
Due Th 10/21

Choose one of the following two problems:


Homework #10
Due Thursday Oct 28

  1. An architect's plans for a house are often used as an analogy for a software design. It would be unheard of to expect a construction crew to assemble a house without a detailed design (blueprints). Yet many programmers seem to think it's acceptable to start coding a software project without having a thorough design. What factors do you think contribute to this attitude?
  2. What are the four components of a software design? Identify each and give a short definition.
  3. Identify three important design principles and give a brief definition of each in your own words.
  4. Decomposition is a way to reduce the perceived complexity of a problem. However the benefits of decomposition need to be balanced against what other cost? Explain.
  5. The design principles of abstraction and decomposition seem intended to reduce complexity. They imply that too much complexity exceeds the capacities of the human information processing system. If we were to look for empirical evidence to justify how much complexity is manageable, what psychological factors might we examine? (Answer not in readings).
  6. The Interaction Diagrams created during design are based on what Analysis document?
  7. In what actual notation will you express the class skeletons you create for the design of Galaxy Sleuth?
  8. Coupling and cohesion are measures of what? (Stiller Chapter 2).
  9. Give a definition of cohesion in your own words. Which is preferred, high or low cohesiveness? Why?
  10. Give a definition of coupling in your own words. Which is preferred, high or low coupling? Why?
  11. Examine the three method definitions below, each of which exhibits poor design quality.  Assuming the method bodies are consistent with their definitions, explain what kind of design quality problems you suspect is present in each one.
  12. public double Sin(double Angle, boolean Radian_Or_Degree_Flag)
    public void Compute_Earnings_and_Deductions();
    public void Initialization_Tasks();
  13. You may have been taught to avoid using "global variables" in your programs.  What is a global variable and which of the guidelines for effective modular design does it violate?  In Java, is a class variable a kind of global variable?
  14. Are all of Stiller's guidelines for class design in Ch 5.4.3 included in Dr. Dalbey's design QA Checklist?  If not, which ones have been omitted.



Homework #11
Due Tuesday Nov 2

One design issue that strikes us for Galaxy Sleuth is that Weapons, Suspects, and Planets are all different kinds of Evidence.  There's an IS-A relationship.  So should we do the typical OO solution and use inheritance (or interfaces), or should we use a simpler solution?  Describe two or three different ways to design this solution (including sample UML or code where appropriate).  Evaluate the advantages and disadvantages of each alternative, and select which you think is best and explain why.



Homework #12
Due Tuesday Nov 9

Spend not more than 45 minutes studying two classes from the Employee Scheduler javadocs: Skills and ListOfSkills. Attempt to identify aspects of the design that were done well and aspects that need improvement. Refer to the design QA guidelines.  Create two lists (did well, needs improvement) that are ranked with the most significant items first.


Extra Credit (4 points)

You are to "reverse engineer" the source code for a sample application and create a complete UML class diagram. Your diagram should include inheritance, aggregation, and dependency relationships. You may omit cardinality. 


Homework #13
Due Tuesday Nov 16

For this exercise we will study a working implementation in source code and critique the author's design.

Review the source code HallOfFame.java which implements a high score feature for a computer game. (If you are curious you can see how I tested this class using the JUnit testing framework: HallOfFameTest.java )

Spend not more than 30 minutes studying the code and identifying aspects of the program you think were done well and aspects that were done poorly or need improvement. Write down as many things as you can discover in 30 minutes. You may ignore the many violations of the class coding standard.  Focus on design issues not low level coding issues. There are both high level and detailed design issues to examine.  If you need some ideas you can read the design QA guidelines.

Create two lists (did well, did poorly) that are ranked with the most significant items first. Optionally, for each "did poorly" item, suggest how it could be improved.


Homework #14
Due Thursday Nov 18

Study these examples of poorly written pseudocode.  Rewrite each example #1 - 5 so that it is clear, precise and follows the pseudocode standard.

You may not know exactly what the original author intended so use your knowledge of Galaxy Sleuth to make a reasonable guess at the appropriate actions.



Homework #15
Due Thursday 12/2
  1. An investigation chaired by Fred Brooks (cited in Brown article) concluded that the major problems with software development are not technical problems but management problems. What is suggested as the cause of poor management? How can you as a technical employee help to rectify this problem?
  2. The Airlie Software Council is a group of some of the biggest names in industry. They have identified nine principal best practices for software management (discussed in Brown article). List these practices, giving a one sentence definition of each in your own words. Rank them in importance, and justify your ranking. Identify which of these practices we are applying in our course project and explain specifically how we are implementing them.
  3. Both Norm Brown and Gibbs cite a fear that if American software companies can't get their costs under control, that the software business will move overseas. What evidence do they cite? How would one argue that this fear is unjustified?
  4. Which of Hillelsohn's recommendations are most directly applicable to CPE 205 course projects? Select three and describe specifically how they could be put into practice by a student team.


Under Construction

  1. Congratulations, the Cal Poly Records office has hired you as a programmer at the princely wage of $50 an hour. Your first assignment is to write an enhancement to an existing program that generates a report of the percent of students in each department that are on academic probation. As you study the source code (created by a previous programmer who is no longer around) you notice that the programmer used an array to store the student records.

    This strikes you as an incredible waste of space. You learned in your data structures class that arrays have to be statically allocated and in this case the programmer declared the array with room for 20,000 students, even though during any particular report probably only about 5,000 students are going to be on probation. You decide to rewrite the program using a dynamic data structure so that memory is allocated as needed. It takes you only an hour to revise the program and test it.

    Calculate how much money you just wasted for your employer. That is, how much did the employer pay you versus how much would it have cost to simply pay for the RAM to store the 15,000 students.

    Assume:


Problems


Problem   #1
Due Tuesday Oct 5

Perform the Game2D explorations.




Problem   #2
Due Tuesday Oct 12

Modify the source code for Game2D so it is a truly multiplayer application.  It should allow up to nine people to play the game simultaneously.

Submit a printout of the Game2D source code with your modifications highlighted with a highlighting pen.  Also attach a printout demonstrating a successful execution (screen capture or console log as appropriate).




Problem   #3
Due Thursday Oct 28

Print a copy of the class diagram for Game2D from page 213. (Landscape orientation may be best).  You may draw a version by hand if you prefer. Now examine the source code to the Game2D application (see hwk #8) and compare the actual source code to the class diagram.  You will discover that whoever implemented the source code didn't exactly follow the class diagram.  Modify the diagram so that it is consistent with the actual code. For example, "Game2DInitiator" in the diagram is actually called "G2DLaunch" in the code. So cross out the original name on the diagram and write in the actual name.




Problem #4
Due Tuesday Nov 2

Draw a class diagram for a design of the solution to the Audio Tape Calculator problem using complete UML notation. Include all data fields and method signatures. You do not need to include GUI components in your solution.  Strive for a design that is thoroughly decomposed and has classes that could be reused in other similar applications.




Under Construction



Reverse Engineering a class diagram from source code


Homework #10
Due Thursday

Study the  Go Fish  applet and spend a few minutes playing the game to learn how it works.  Draw a UML Class Diagram including attibutes and methods for an object oriented decomposition of the Go Fish game. You do not need to include any User Interface elements in your design, just the underlying game elements.



Week 9
Homework #12 - "Makeup" Homework
Due Tuesday

Draw a class diagram for a solution to this problem.

This assignment is optional. You may complete it to "makeup" a missing homework or for an extra credit homework. This assignment is recommended for those who need more practice with design and class diagrams.



Homework #13
Due Thursday

Read the class coding standard. Then printout this sample java module (on a single page) and mark in ink all the deviations from the coding standard. You may use a brief narrative comment (e.g., "missing @param tag") or you can use a reference number from the coding standard. 



Week 5
Homework #6
Due Tuesday

Method Design Practice





Home