Java Reference
In-Depth Information
13 Designing applications
Main concepts discussed in this chapter:
discovering classes
CRC cards
designing interfaces
Java constructs discussed in this chapter:
(No new Java constructs are introduced in this chapter.)
In previous chapters of this topic, we have described how to write good classes. We have dis-
cussed how to design them, how to make them maintainable and robust, and how to make them
interact. All of this is important, but we have omitted one aspect of the task: finding the classes.
In all our previous examples, we have assumed that we more or less know what the classes are
that we should use to solve our problems. In a real software project, deciding what classes to
use to implement a solution to a problem can be one of the most difficult tasks. In this chapter,
we discuss this aspect of the development process.
These initial steps of developing a software system are generally referred to as analysis and
design. We analyze the problem, and then we design a solution. The first step of design will be
at a higher level than the class design discussed in Chapter 6. We will think about what classes
we should create to solve our problem and how exactly they should interact. Once we have a
solution to this problem, then we can continue with the design of individual classes and start
thinking about their implementation.
Analysis and design
Analysis and design of software systems is a large and complex problem area. Discussing it in
detail is far outside the scope of this topic. Many different methodologies have been described
in the literature and are used in practice for this task. In this chapter, we aim only to give an
introduction to the problems encountered in the process.
We will use a fairly simple method to address these tasks, which serves well for relatively small
problems. To discover initial classes, we use the verb/noun method . Then we will use CRC
cards to perform the initial application design.
Search WWH ::

Custom Search