chapter 6 Flashcards
What is software design?
Software design involves specifying the structure of a software system without implementing the complete code.
The most common design approach is ________
Object-Oriented,
How is Object-Oriented structure is usually represented?
by Classes and by Class interactions
What does software design transition from _______ to ______ ?
- “what” the system must do to
- “how” the system will do it.
How are nouns and verbs utilized in the design process?
- Nouns are potential classes, objects, and fields [ student, grade, order, registration form ]
- verbs are potential methods or responsibilities of a class. [ register, encode grade, submit order ]
What do relationships between nouns in design signify?
Relationships between nouns in design represent potential interactions, such as containment, generalization, or dependence.
- Student registers for Course
- customer orders pizza
What questions does the design process aim to answer?
The design process seeks to answer questions like:
- Which nouns should be classes?
- Which ones become fields?
- What verbs should be methods?
- What interactions exist between classes?
What is CRC, and how is it used to identify classes?
CRC stands for Class-Responsibility-Collaborators.
It helps identify classes by creating cards where :
- the class name is on top,
- followed by responsibilities (problems to be solved) and
- collaborators (classes that receive messages).
What are the types of classes in CRC?
- Entity class
- Boundary class
- Control class
_______ is a.k.a domain class
Entity class
Entity class are the most important classes.
t
entity class exists in the ______
problem domain. E.g student, course
________ a class that exists on a system’s automation boundary [ web page, input window ]
Boundary class or view class
what is a Control class?
Is a class that mediates between boundary classes and entity classes, acting as a switchboard between the view layer and domain layer
_______ takes an event from boundary
class and calls the Entity class?
Control class
Why do we create CRCs for classes that collaborate with the primary object class?
To complete a use case, CRCs for collaborating classes are created by asking questions about their responsibilities and the information they need to fulfill those responsibilities.
_______ represents a collection of similar object in CRC?
A class
_______ is something that a class knows or does in CRC
responsibility