Methods of Software Development
: Fall 1999
TABLE OF CONTENTS
II. The Nature of Software Development
Objectives:
- The student shall understand the unique nature of
software development.
- The student shall know Jackson's view of the nature of
software development.
- The student shall know the three parts of the Unifed
Process.
Questions:
- What does Jackson mean by a description?
- What is deskilling?
- Why is the phrase `software engineering' perhaps too
broad?
- What are the three characteristics of the Unified
Process?
- What do you think of them?
III. Abstraction
Objectives:
- The student shall understand how abstraction facilitates
formal specification and verification.
- The student shall understand different layers of
abstraction.
- The student shall know some instances of how the Unifed
Modeling Language and the Cleanroom method apply
abstraction.
Questions:
- What is the meaning of the word `object' in the Liskov
and Zilles paper?
- What is the meaning of `formal' in the Liskov and Zilles
paper?
- How does abstraction aid in developing a formal
specification?
IV. Information hiding
Objectives:
- The student shall know how the criteria for decomposition
has changed.
- The student shall understand why Parnas re-modularized
the KWIC program.
Questions:
- Explain information hiding in a couple sentences.
- Has this principle been used in your own software
development? How?
V. The
Origins of Object Concepts
Objectives:
- The student shall know the differerence between
structured and object techniques.
- The student shall understand the use of objects to create
a model of the problem and solution spaces.
- The student shall understand inheritance.
Questions:
- Is it true that the object paradigm is a different mode
of thought? Why or why not?
- What does Loy mean by the outside versus
inside views?
- What does `inheritance' in objects mean?
- If you were to write Loy's recommendations to
project leaders now, what would you say?
VI. Good Design
Objectives:
- The student shall understand how different forms of
knowledge affect software design.
- The student shall appreciate that good designs to solve
the same problem can take many forms.
Questions:
- What are the sorts of knowledge that contribute to
software design?
- What makes episodic knowledge so important?
VII. Problem Frames I
Objectives:
- The student shall understand the nature of descriptions
associated with a software project.
- The student shall know the use of domain, context, and
shared phenomenon in determining requirements.
Questions:
- What are the four flavors of description?
- What is the difference between a designation and a
description?
- What is a refutable description?
- What is a domain?
- How may we connect domains?
VIII. Problem Frames
II
Objectives:
- The student shall understand the meaning of scope, span,
and sensitivity in software development.
- The student shall understand the use of problem frames.
Questions:
- What is the practical effect of a classification?
- What is the difference between scope and span?
- Why is problem sensitivity important to a developer?
- What is context?
- What is a way of understanding a complex problem?
- What are the differences between the IS frame and the
control frame?
IX. Problem Frames III
Objectives:
- The student shall understand the identification of
`phenomena.'
- The student shall be able to recognize multi-frame
problems.
Questions:
- What are phenomena?
- What is the `narrow bridge?'
- How do you reduce the complexity of a multi-frame
problem?
X. Problem Frames IV
Objectives:
- The student shall appreciate the different side-effects
of notations and drawings.
- The student shall be aware of how problem frames are used
for developing reusable components.
Questions:
- What did you find in the `Languages and Notations' tour
that causes you to think about how you use diagrams,
hierarchies, etc.?
- Do you think problem frames are useful in decomposing for
reuse? Why or why not?
XI. Parnas Tables I
Objectives:
- The student shall understand the use of tables to
represent specifications.
Questions:
- What are the differences between event, selector, and
condition tables?
- What was easy about reading the excerpts from the
specification? What was hard? Did tables help?
XII. Parnas Tables II
Objectives:
- The student shall be able to make relational tables.
- The student shall understand the principles of table
inversion.
Questions:
- What are the `relations' discussed here?
- How do the tables make inspections easier?
- Why do we want to be able to invert tables?
XIII.
Intro. To UML and the Unified Process
Objectives:
- The student shall be able to explain the use of models in
software development.
- The student shall understand the parts of UML.
Questions:
- Note that the authors agree with Jackson that software is
a description. How do models provide that description?
- What are views?
- Try to review all the diagrams in Appendix A.
XIV.
Capturing Requirements as Use Cases
Objectives:
- The student shall understand how use cases model
requirements.
- The student shall know who to develop use cases and their
components.
Questions:
- Review p. 157 and learn the content of use cases.
- What are the differences between abstract, concrete and
real use cases?
XV.
Elaborating Use Cases/Sequence Diagrams
Objectives:
- The student shall understand more detail about how use
cases model requirements.
- The student shall understand how use cases drive the
development process.
Questions:
- As you read the chapter observe how a use-case can be
expanded in each model of the UML process.
- Do you believe that the use case procedure fails in any
domain?
XVI. System
Context and Domain Models
Objective:
- The student shall understand a domain model.
Question:
- Are there any differences between a `business use-case'
and a generic use case?
XVII.
Relationships Between Use Cases and Unified Process Workflows
Objectives:
- The student shall understand how use cases reduce risk.
- The student shall understand how use cases fit in to the
complete development process.
Questions:
- How do use cases ensure that you build the right product
and the product right?
- How can use cases support iterative development?
XVIII. Design Patterns
Objective:
- The student shall understand the origin and use of design
patterns.
Questions:
- How do design patterns promote reuse?
- What are two or three stereotypes of patterns and what do
they do?