• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/82

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

82 Cards in this Set

  • Front
  • Back
What is the difference between the Analysis and Design Model in regards to: Implementation Issues
The analysis model is based on abstraction and avoids them. The Design model is the blueprint for the physical model
What is the difference between the Analysis and Design Model in regards to: specificity of design
The Analysis Model is design generic and the Design Model is design specific.
What is the difference between the Analysis and Design Model in regards to: stereotypes
There are three stereotypes in the Analysis Model: control, entity and boundary. In the design model they are specific to the implementation language.
What is the difference between the Analysis and Design Model in regards to: cost and formality
The Analysis Model is informal and inexpensive. The Design Model is more formal and more expensive.
What is the difference between the Analysis and Design Model in regards to: layers
Analysis Model has a few layers. The Design Model has many layers
What is the difference between the Analysis and Design Model in regards to: sequencing
The Analysis Model has a lot of focus on dynamics but not much sequence. There is a great deal of sequence in the Design Model.
What is the difference between the Analysis and Design Model in regards to: maintenance during the software lifecycle.
The Analysis Model will usually not be maintained during the whole life cycle but the Design should be maintained throughout it.
What is the difference between the Analysis and Design Model in regards to: shaping the system
The Analysis Model defines a structure that is an essential input to shaping the system. The Design Model shapes the system while trying to preserve the structure defined by the analysis model as much as possible.
Name 5 steps in the design phase
1) Select Design Strategy, 2) Physical architecture layer design, 3) class and method design, 4) HCI layer design, and 5) data management layer design
What are 5 considerations in selecting a physical architecture
1) Cost of Infrastructure 2) Ease of development 3) Interface capabilities 4) Control and security 5) Scalability
What is server-based architecture
It is when the server does all the thinking and data management (think mainframe). the Client is typically a terminal.
What is the client responsible for in client-based architectures?
Presentation and application logic, the data access logic. The server just stores the data.
What is the client responsible for in client server-based architectures?
The presentation logic while the server is responsible for the data access logic and data storage. Application logic may reside on the server or be split between client and server.
Who is responsible for what in 3 tiered client-server architecture?
The client is responsible for presentation logic, an application server is responsible for app logic and a separate data base server(s) is responsible for the data access logic and data storage.
What are the additional tiers used for in N-tiered client-server architecture?
application logic is spread over multiple servers.
What is the difference between Layered Architecture and tiered architecture?
Tiered architecture captures architecture from a deployment perspective (display, presentation, business logic, persistance) and Layered captures architecture from a level of abstratction( app specific, app general, middleware, system software)
What is a subsystem?
it is a package of classes, associations, operations, event and constraints. Well defined and small interface with other subsystems.
What is the most important step of the design phase?
designing the individual classes and methods.
What is coupling?
refers to how interdependent or interrelated the modules are in a system.
Cohesion
Refers to how single-minded a module is within a system and the degree to which a method implements a single function. Methods that implement a single function are described as having high cohesion
What is a module?
classes, objects and methods that are combined with a common interface with which it communicates with the rest of the program.
What is connascence?
It exists whenever two or more software elements must be updated for the whole to be correct. Level 2 encapsulation addresses the problem of potential rampant connascence in a large system.
What are two types of coupling?
Interaction - deals with methods of a class calling methods of another class. Inheritance - deals with how tightly coupled the classes are in an inheritance hierarchy.
What are three types of cohesion?
Method - addresses the cohesion within an individual method. Class - is the level of cohesion among the atttributes and methods of a class. General/specific - addresses the sensibility of the inheritance hierarchy.
What are three levels of encapsulation?
Level 0 - refers to the amount of encapsulation realized in an individual line of code
Level 1 - the level of encapsulation attained by combining lines of code into a method
Level 2 - achieved by creating classes that contain both methods and attributes
What level of encapsulation does method cohesion and interaction coupling address?
Level 1 - encapsulation within methods
What level of encapsulation does class cohesion, general/specific cohesion and inheritance coupling address?
Level 2
What level of encapsulation does connascence deal with?
Level 1 and 2
Activities used to design classes and methods include:
*adding specification of the current model,
*identifying opportunities for reuse,
*restructuring the design,
*optimizing the design,
*mapping the problem-domain classes to an implementation language.
*Implementing problem Domain classes in a Single-inheritance Language
What is the signature of a method?
The signature of a method comprises three parts: the name of the method, the parameters or arguments that must be passed to the method, including their object type, and the type of value that the method will return to the calling method. The signature of a method is related to the method's contract.
What kind of constraints must be preserved by design objects?
Preconditions, postconditions and invariants
What are design patterns?
Useful grouping of collaborating classes that provide a solution to a commonly occurring problem. Useful in solving "a general design problem in a particular context,“
What does an italicized class diagram name signify?
An abstract class.
What are the limitations of an interface?
An Interface will never be aware of an association, aggregation, or composition because an interface cannot hold on to object references.
What is factoring?
The process of separating out aspects of a method or class into a new method or class to simplify the overall design.
What are some examples of factoring?
*when reviewing a set of classes on a particular layer, we might discover that a subset of them shares a similar definition.
*it may be useful to factor out the similarities and create a new class.
*Based on the issues related to cohesion, coupling, and connascence, the new class may be related to the old classes via inheritance (generalization) or through an aggregation or association relationship.
What is optimizing the Design?
1)Review access paths, 2)Review attributes to see if they are with the right class 3) Review the direct and indirect fan-out of each method. 4) look at execution order 5) avoid recomputation 6) collapse one-to-one relationships.
What are the four main types of object-persistence formats:
*files (sequential & random)
* object oriented databases OODBMS
* object relational databases ORM
* relational databases RDBMS
What is a major weakness of a RDBMS? What is the benefit?
Weakness:
*can't handle complex data well
*no support for OO
*Impedance mismatch between tables and objects
Benefit:
*Leader in market
*can handle diverse data needs
What are the major strengths and weaknesses of an ORDBMS?
*able to handle complex data
*Limited support for OO, impedance mismatch between tables and objects
What are the benefits and weaknesses of an OODBMS?
*able to handle complex data
* technology is still maturing and skills are hard to find
Are ER diagrams part of UML?
No
How can non-functional requirements affect the data access and management layer?
*Operational requirements can potentially limit the viability of different object persistence formats.
*Performance requirements can cause various indexing and caching approaches to be considered.
*Performance requirements can create situations where denormalization must be considered.
*Security considerations
*Political and cultural concerns can influence design.
What is the benefit of using a data access object?
It provides a simple, consistent api for data access that does not require knowledge of JDBC, EJB, Hibernate or Spring interfaces.
What is included in the user interface?
Screen displays and navigation, screens and forms that capture data and reports that the system produces (paper, screen or other)
What are the principles of good HCI?
All interfaces should attempt to minimize user effort, consistency in design of controls, terminology and layout, clean looking.
How can non-functional requirements affect the HCI layer?
These requirements include operational, performance, security, and cultural and political issues. Special attention must be paid to cultural and political requirements, such as user interface layout and multilingual capabilities
What is a Pattern?
A pattern for software architecture describes a particular recurring design problem that arises in specific design contexts and presents a well-proven generic scheme for its solution. The solution scheme is specified by describing its constituent components, their responsibilities and relationships, and the ways in which they collaborate.
What are some benefits of using design patterns?
*Inspiring *focus on solutions *common language for design discussions *format documents best practices for a domain *document decisions and rationale *reuse experience
What are some characteristics of a pattern?
*describes solution to recurring problem *distilled from experience *describes component behavior *provides a vocabulary *documents vision *conceptual skeleton *building blocks *manages complexity
What are creational patterns?
They support the creation of objects in a system. 1) Factory 2) Singleton 3) Builder (we don't need to know obstruct factory, prototype patterns)
What is the purpose of the Factory Method?
The Factory Method pattern’s intent is to define an interface for creating an object but letting the subclass decide which class to instantiate. In other words, the class defers instantiation to subclasses. The client of the Factory Method never needs to know the concrete class that has been instantiated and returned. Its client needs to know only about the published abstract interface.
What are the benefits of the factory method and when should you use it.
Benefits: It removes the need to bind application-specific classes into the code. Also, creating objects inside a class is more flexible than creating an object directly.
When to use: Classes assign responsibility to one of several helper subclasses, and you want to localize the knowledge of which helper subclass is the delegate.
What is the purpose of the Builder Pattern?
To separate the construction of a complex object from its representation so that the same construction process can create different objects. The Builder pattern creates complex objects in multiple steps instead of in a single step, as in other patterns.
When is the Builder pattern useful?
The Builder pattern is useful when several kinds of complex objects with similar rules for assembly need to be joined at runtime but result in different object types.
What are some of the benefits of the Builder pattern?
Benefits: *you can vary an object's internal representation *it isolates the code for construction and representation *Multiple steps give finer control over the the construction process of different products.
When should you use the Builder Pattern?
Builder focuses on constructing a complex object step by step. The intention is to abstract steps of construction of objects so that different implementations of these steps can construct different representations of objects.
What is the Singleton Pattern?
The Singleton pattern’s intent is to ensure that a class has only one instance and provides a global point of access to it.
What are the benefits of using the Singleton Pattern?
It controls access to a single instance of the class.
It reduces name space usage.
It permits refinement of operations and representation.
It can also permit a variable number of instances.
It is more flexible than class methods (operations).
List the Structural design patterns. (ABCDFFP)
Adapter, Bridge, Composite, Decorator, Facade, Flyweight and Proxy
What is the purpose of an Adapter Pattern?
A structure pattern that
*works with legacy systems to help them integrate
* converts the interface of a class into an interface that a client requires.
* Lets classes work together that could not otherwise because of incompatible interfaces.
What are the benefits of an Adapter class?
* It allows two or more previously incompatible objects to interact.
* It allows reusability of existing functionality.
What is the Composite Pattern, aka Recursive Composition?
Allows clients to operate in a generic manner on objects that may or may not represent a hierarchy of objects. Allows you to build complex objects by recursively composing similar objects in a treelike manner. Think of a family that all communicates in the same manner.
What are the benefits of a Composite pattern?
It defines class hierarchies consisting of primitive and complex objects. It makes it easier for you to add new kinds of components. It provides flexibility of structure with a manageable interface.
When should you use the composite pattern?
You want to represent part-whole hierarchies of objects and you want clients to be able to ignore the difference between compositions of objects and individual objects.
What is the Decorator Pattern?
Decorator pattern’s intent is to attach flexible additional responsibilities to an object dynamically. The Decorator pattern uses composition instead of inheritance to extend the functionality of an object at runtime.
What are the benefits of the Decorator Pattern?
It provides greater flexibility than static inheritance.
It avoids the need to place feature-laden classes higher up the hierarchy.
It simplifies coding by allowing you to develop a series of functionality targeted classes, instead of coding all of the behavior into the object.
It enhances the extensibility of the object, because changes are made by coding new classes.
What is the Bridge Pattern, aka Handle/Body?
The Bridge pattern’s intent is to decouple the functional abstraction from the implementation so that the two can be changed and can vary independently.
What are the benefits of the Bridge Pattern?
It enables the separation of implementation from the interface.
It improves extensibility.
It allows the hiding of implementation details from the client.
What is the Facade pattern?
Provides a unified interface to a set of interfaces in a subsystem.
Defines a higher-level interface that makes the subsystem easier to use. For example, “start Computer” will fire off methods to the CPU, printer, montior and other methods so you don’t have to.
What are some benefits of the Facade Pattern?
It provides a simpler interface to a complex subsystem without reducing the options provided by the subsystem.
It shields clients from the complexity of the subsystem components.
It promotes looser coupling between the subsystem and its clients.
It reduces the coupling between subsystems. it does not prevent clients from accessing the underlying classes.
What is the Proxy Pattern, aka Surrogate?
It provides a surrogate or placeholder for another object to control access to it.
The most common implementations are remote and virtual proxy.
What are some benefits of the Proxy Pattern?
The remote proxy can shield the fact that the implementation resides in another address space.
The virtual proxy can perform optimizations—for example, by creating objects on demand. It serves as a placeholder until a more expensive-to-create object is needed.
What are the Behavioral Patterns?
Command, strategy and Observer
What is the Command Pattern, aka Action or Transaction?
It separates the object that invokes the operation from the object that actually performs the operation.
It simplifies adding new commands, because existing classes remain unchanged.
What are the benefits of the Command Pattern?
It separates the object that invokes the operation from the object that actually performs the operation.
It simplifies adding new commands, because existing classes remain unchanged.
When do you use the Command Pattern?
When you want to parameterize objects with an action to perform.
When you want to specify, queue, and execute requests at different times.
When you want to support undo operations.
When you want to support the logging of changes so that they can be reapplied in case of a system crash.
When you want to structure a system around high-level operations (transactions) built on primitive operations.
What are some Command Pattern consequences?
Command decouples the object that invokes the operation from the one that knows how to perform it.
Commands are first-class objects. They can be manipulated and extended like any other object.
You can assemble commands into a composite command (i.e., the Composite Design Pattern).
It is easy to add new Commands, because you do not have to change existing classes.
What are three types of 'wrapper/wrappee patterns'?
Adapter - wraps a legacy object with one that has the desired interface
Facade - wraps a complicated subsystem with an object that provides a simple interface
Proxy - wraps an object with a surrogate object that provides additional functionality.
What is the difference between a virtual and remote proxy?
A virtual proxy is a placeholder for "expensive to create" object. A remote proxy provides a local representative for an object that resides in a different address pace.
What is the Strategy Pattern?
It is a behavior pattern that defines a group of classes that represent a set of possible behaviors.
What is the airport example for the strategy pattern?
A strategy defines a set of algorithms that can be used interchangeably. Several different options exist for getting to the airport. A user determines what is best based on tradeoffs of cost, convenience and time.