Methods of Software Development : Fall 1999


Overview Grading Criteria Schedule Study Questions References

TABLE OF CONTENTS

II. The Nature of Software Development

III. Abstraction

IV. Information hiding

V. The Origins of Object Concepts

VI. Good Design

VII. Problem Frames I

VIII. Problem Frames II

IX. Problem Frames III

X. Problem Frames IV

XI. Parnas Tables I

XII. Parnas Tables II

XIII. Intro. To UML and the Unified Process

XIV. Capturing Requirements as Use Cases

XV. Elaborating Use Cases/Sequence Diagrams

XVI. System Context and Domain Models

XVII. Relationships Between Use Cases and Unified Process Workflows

XVIII. Design Patterns

 


 

II. The Nature of Software Development

Objectives:

  1. The student shall understand the unique nature of software development.
  2. The student shall know Jackson's view of the nature of software development.
  3. The student shall know the three parts of the Unifed Process.

Questions:

  1. What does Jackson mean by a description?
  2. What is deskilling?
  3. Why is the phrase `software engineering' perhaps too broad?
  4. What are the three characteristics of the Unified Process?
  5. What do you think of them?

 

III. Abstraction

Objectives:

  1. The student shall understand how abstraction facilitates formal specification and verification.
  2. The student shall understand different layers of abstraction.
  3. The student shall know some instances of how the Unifed Modeling Language and the Cleanroom method apply abstraction.

Questions:

  1. What is the meaning of the word `object' in the Liskov and Zilles paper?
  2. What is the meaning of `formal' in the Liskov and Zilles paper?
  3. How does abstraction aid in developing a formal specification?

 

IV. Information hiding

Objectives:

  1. The student shall know how the criteria for decomposition has changed.
  2. The student shall understand why Parnas re-modularized the KWIC program.

Questions:

  1. Explain information hiding in a couple sentences.
  2. Has this principle been used in your own software development? How?

 

V. The Origins of Object Concepts

Objectives:

  1. The student shall know the differerence between “structured” and “object” techniques.
  2. The student shall understand the use of objects to create a model of the problem and solution spaces.
  3. The student shall understand inheritance.

Questions:

  1. Is it true that the object paradigm is a different mode of thought? Why or why not?
  2. What does Loy mean by the “outside” versus “inside” views?
  3. What does `inheritance' in objects mean?
  4. If you were to write Loy's “recommendations to project leaders” now, what would you say?

 

VI. Good Design

Objectives:

  1. The student shall understand how different forms of knowledge affect software design.
  2. The student shall appreciate that good designs to solve the same problem can take many forms.

Questions:

  1. What are the sorts of knowledge that contribute to software design?
  2. What makes episodic knowledge so important?

 

VII. Problem Frames I

Objectives:

  1. The student shall understand the nature of descriptions associated with a software project.
  2. The student shall know the use of domain, context, and shared phenomenon in determining requirements.

Questions:

  1. What are the four flavors of description?
  2. What is the difference between a designation and a description?
  3. What is a refutable description?
  4. What is a domain?
  5. How may we connect domains?

 

VIII. Problem Frames II

Objectives:

  1. The student shall understand the meaning of scope, span, and sensitivity in software development.
  2. The student shall understand the use of problem frames.

Questions:

  1. What is the practical effect of a classification?
  2. What is the difference between scope and span?
  3. Why is problem sensitivity important to a developer?
  4. What is context?
  5. What is a way of understanding a complex problem?
  6. What are the differences between the IS frame and the control frame?

 

IX. Problem Frames III

Objectives:

  1. The student shall understand the identification of `phenomena.'
  2. The student shall be able to recognize multi-frame problems.

Questions:

  1. What are phenomena?
  2. What is the `narrow bridge?'
  3. How do you reduce the complexity of a multi-frame problem?

 

X. Problem Frames IV

Objectives:

  1. The student shall appreciate the different side-effects of notations and drawings.
  2. The student shall be aware of how problem frames are used for developing reusable components.

Questions:

  1. What did you find in the `Languages and Notations' tour that causes you to think about how you use diagrams, hierarchies, etc.?
  2. Do you think problem frames are useful in decomposing for reuse? Why or why not?

 

XI. Parnas Tables I

Objectives:

  1. The student shall understand the use of tables to represent specifications.

Questions:

  1. What are the differences between event, selector, and condition tables?
  2. What was easy about reading the excerpts from the specification? What was hard? Did tables help?

 

XII. Parnas Tables II

Objectives:

  1. The student shall be able to make relational tables.
  2. The student shall understand the principles of table inversion.

Questions:

  1. What are the `relations' discussed here?
  2. How do the tables make inspections easier?
  3. Why do we want to be able to invert tables?

 

XIII. Intro. To UML and the Unified Process

Objectives:

  1. The student shall be able to explain the use of models in software development.
  2. The student shall understand the parts of UML.

Questions:

  1. Note that the authors agree with Jackson that software is a description. How do models provide that description?
  2. What are views?
  3. Try to review all the diagrams in Appendix A.

 

XIV. Capturing Requirements as Use Cases

Objectives:

  1. The student shall understand how use cases model requirements.
  2. The student shall know who to develop use cases and their components.

Questions:

  1. Review p. 157 and learn the content of use cases.
  2. What are the differences between abstract, concrete and real use cases?

 

XV. Elaborating Use Cases/Sequence Diagrams

Objectives:

  1. The student shall understand more detail about how use cases model requirements.
  2. The student shall understand how use cases drive the development process.

Questions:

  1. As you read the chapter observe how a use-case can be expanded in each model of the UML process.
  2. Do you believe that the use case procedure fails in any domain?

 

XVI. System Context and Domain Models

Objective:

  1. The student shall understand a domain model.

Question:

  1. Are there any differences between a `business use-case' and a generic use case?

 

XVII. Relationships Between Use Cases and Unified Process Workflows

Objectives:

  1. The student shall understand how use cases reduce risk.
  2. The student shall understand how use cases fit in to the complete development process.

Questions:

  1. How do use cases ensure that you build the right product and the product right?
  2. How can use cases support iterative development?

 

XVIII. Design Patterns

Objective:

  1. The student shall understand the origin and use of design patterns.

Questions:

  1. How do design patterns promote reuse?
  2. What are two or three stereotypes of patterns and what do they do?