Design Principles and UML
what is the goal of encapsulation
to keep software changes local
true or false: any file with import or export is a module
true
example of single point of control?
using a[CONST_SIZE] rather than a[100]
what is delegation in software
using composition to rely on a previously implemented behavior
what is composition in software
wiring ports together, handing roles over to other class
what is navigability
a property of associations meaning that from one object you can find the associated object
replacing a literal value that repeats often in your program with a constant is an example of what design principle
abstraction
What are the four principles of software design
abstraction, encapsulation, modularity, and hierarchy
what is the purpose of an interface
an interface in input position is a filter on the wire, like writing, an interface in output position serves as a checker to make sure that an object is
what is the liskov substitution principle
an object of a subclass should always be substitutable for an object of the super class
how is composition represented in UML
black diamond
what are steps of felleisens 1-2-3 rule
1 is an exception, 2 is a coincidence, 3 could be a pattern, therefore a candidate for generalization
how is aggregation represented in UML
clear diamond
what is aggregation
has-a hierarchy, aggregating abstraction into whole
the two key principles of modularity:
high cohesion, and weak coupling
what is generalization
is-a hierarchy, generalizing across abstractions (ex Chevy is a FordModel )
what is abstraction
moving from a concrete object into a general principle that describes them
What is the principle of encapsulation
no part of a complex system should depend on internal details of another
what is multiplicity
number of components or activities (ex. one student, one transcript, many students, one professor)
what is the principle of modularity
partitioning a system such that parts can be designed and revised independently
what is an association relationship
simply means there is a link or dependency between them
what is it called when we use a constant to refer to a value that is used often in the program
single point of control
what is composition in uml
special case of aggregation where part cannot exist without the aggregate