Difference between software design and software arch correct answers Software architecture:
responsible for the skeleton and the high-level organization of a software. It identifies the main
structural modules in a system and the relationships between them.
Software Design: responsible for the code level design: what each class is doing, its
relationships, and scope.
Abstraction correct answers Reducing by focusing on the essential observable behavior
What will be outside?
Encapsulation correct answers Hiding the details of the implementation
is-a correct answers ______-a: inheritance
uses-a correct answers _______-a: association, local variables
has-a correct answers ______-a: globals, composition, aggregation
Polymorphism correct answers The condition of denoting different forms.
A single name may denoteocbjects of many different classes that are related by some common
superclass
cohesion correct answers grouping related functionality.
the degree to which the elements inside a module belong together
High cohesion correct answers High _______ is when you have a class that does a well defined
job. Low _________ is when a class does a lot of jobs that don't have much in common.
, Coupling correct answers the degree of interdependence between software modules; a measure
of how closely connected two routines or modules are
Low Coupling correct answers means that classes have few dependencies outside of the class;
any change to a class has little impact outside of that class.
Observer Pattern correct answers software design pattern in which an object, called the subject,
maintains a list of its dependents, called __________, and notifies them automatically of any
state changes, usually by calling one of their methods.
Decorator Pattern correct answers design pattern that allows behavior to be added to an
individual object, dynamically, without affecting the behavior of other objects from the same
class
Singleton Pattern correct answers software design pattern that restricts the instantiation of a class
to one "single" instance. This is useful when exactly one object is needed to coordinate actions
across the system
Software Design correct answers responsible for the code level design: what each class is doing,
its relationships, and scope.
Software Architecture correct answers Responsible for the skeleton and the high-level
organization of a software. It identifies the main structural modules (or components) in a system
and the relationships between them
MVC, Client/Server, Layered, Repository (Blackboard) correct answers 4 Architectural Patterns
Model-View-Controller (MVC) correct answers Model component manages the system data and
associated operations on the data.
View component defines and manages how the data is presented to the user.
Controller component manages user interaction and passes them to the view and model.