Unit 1 - Unit 3 Flashcards

Midterm Exam Preparation.

1
Q

As society moves from personal computer systems to web-based computer systems, what has increased?

A
  • System and network heterogeneity
  • Connectivity and diversity
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What does cloud computing allow us to utilize the web as a service provider?

A

Computing and Storage.

Cloud applications make computing a utility.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is necessary for data in a distributed system?

A
  • Security
  • Data integrity
  • Privacy
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the key operational expectations of software systems?

A
  • Changeability
  • Durability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are some factors that significantly affects a software’s stability?

A
  • Number of Software Bugs
  • Severity of the software bugs
  • Modularity and Reliability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the goal when it comes to making changes in the software, how should changes be accommodated?

A

The objective is to accommodate changes with minimum or no affect to the stability of the software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

How do end users quantify software quality?

A

End users are more interested in the Usability and Accuracy of the software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How do software designers quantify software quality?

A

Software designers are more interested in Modularity and Modifiability.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What was introduced in order to accommodate different stakeholder’s viewpoints on software quality?

A

Software quality Frameworks were introduced.

  • ISO-9126
  • SEI-CMM
  • etc.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

List the Six Software Quality Factors of ISO-9126

A
  1. Functionality
  2. Reliability
  3. Usability
  4. Maintainability
  5. Portability
  6. Efficiency

ACRONYM - FRUMPE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Define Functionality

A

The set of properties of the software that satisfy stated or implied behaviors of the software system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Where are the properties defined for a software system Functionality?

A

In the software system’s specifications and requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Define Reliability

A

The ability to maintain the stated set of performance for the expected time period or the repeated use of the same functionality.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Which of the Six Software Quality Factors in ISO-9126 depend on the properties of Fault Tolerance and Recoverability?

A

Reliability.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Which of the Six Software Quality Factors in ISO-9126 depend on the properties;

  • Learnability
  • Understandability
  • Operability
A

Usability

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Define Usability

A

The characteristics of a software system that define how well someone can learn and use the software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is Efficiency of a software system?

A

The timed and resource usage behavior of the system

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What part of software designing affects the timed behavior?

A

This affected by Algorithm design, component interactions, the code, etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What part of software designing affects the resource usage?

A
  • Data Structures
  • Memory Management
  • Algorithms.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What is defined by how well a software system can accommodate change?

A

The system’s modifiability which affects the system’s Maintainability

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What are some of the key features needed to be relatively easy for a system to be considered to have good Maintainability?

A
  • Ease in the ability to change the design.
  • Ease in the ability to add new code modules.
  • Ease in the ability to adapt to new technologies.
  • Ease of the system to be tested after modifications are made.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

A system that can be run in different hardware, software and runtime environments, can be said to have what characteristic?

A

Portability.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Tell what the acronym FRUMPE stands for?

A

F - Functionality
R - Reliability
U - Usability
M - Maintainability
P - Portability
E - Efficiency

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

True or False? Software systems just have Functional requirements.

A

False.

Software Systems have both Functional and Non-Functional requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

True or False? Software quality factors are important considerations that may not have been specified in formal specificatons.

A

True.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

What are some of the characteristics of Modern Software System?

A
  • Large Code Base
  • Heterogeneous Resources
  • New Programming Languages
  • Distributed Resources.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Where can most failures in a Software System be traced back to?

A

Poor Software Design and Architecture.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

What are some of the responsibilities of a Software Designer?

A
  • Constantly Being aware of advances in Technology
  • Modifying Code while keeping Integrity.
  • Evaluation of quality factors.
  • Addressing Functional and Non-Functional requirements.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

What pair of factors are Software Engineers most interested in ?

A

Modularity and Modifiability

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Which operational expectation should deal with technological advancements in modern software systems

A

Changeability which is part of Maintainability.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Consider the safety critical software that is used in chemotherapy devices to control radiation level. What factor is the main concern in such systems

A

Functionality.

Which ensures that specified behaviors are in place.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Fault tolerance and Recover-ability are two key properties under which software quality factor?

A

Reliability

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

What does the efficiency of a software system can be characterized by?

A

Resource and Timed Usage of the system

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Where Can Most Software Failures Be Traced To?

A

Software Design and Software Architecture

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

True or False? Software Design and Software Architecture are the same.

A

False.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

True or False? Software Architecture focuses system structure and connections between components

A

True.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

What is done first, Software Design or Software Requirement Analysis

A

Software Requirement Analysis is completed before Software Design.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

What is the focus in Software Architecture?

A

The focus is the organization of different software components and the methods that components will communicate with each other

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Which quality factor of software systems is related to the timed behavior and resource usage behavior?

A

Efficiency

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

What is Software Architecture?

A

Software architecture is a collection of structures and connections among the structures that depict the layout of the software system

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

Requirements and Risk Analysis is the Viewpoint of which stakeholder?

A

Customers/End Users

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

As a stakeholder, what viewpoint is the development team focused on?

A
  • Detail Design
  • Implementation Details
  • Testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Hardware and Software Configurations are the viewpoint of what stakeholder?

A

Deployment Team

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

What should be the key characteristic of components in a software system?

A

Loosely Coupled and Highly Cohesive.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

What technologies were invented for the web?

A
  • HTML
  • URI
  • HTTP
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

From software architecture design perspective, what are some factors that will lead to a better software architecture design initially?

A
  • Design that doesn’t depend on the code that implements it
  • Focus on the key elements and their relationship of the software system independent from the technology
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
47
Q

Who is best known as the inventor of the World Wide Web?

A

Sir Tim Berners-Lee.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
48
Q

What idea was proposed that lead to the development of HTML, URI, and HTTP?

A

Information Managment.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
49
Q

What are some of the observations that can be found in the architecture of the World Wide Web?

A
  • Initial design does not depend on the program code that implement it.
  • Initial design represents key design elements and their relationships.
  • Relationships are represented as protocols and data exchange/presentation rules are independent of the technology.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
50
Q

Which operational expectation should deal with technological advancements in modern software systems?

A

Changeability, which leads to Maintainability.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
51
Q

What are the two main sources of development challenges in modern software systems?

A

Distributed Resources and System Size

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
52
Q

What are some factors that directly impact the stability of changeable software systems?

A
  • Satisfying quality factors. (Ex. Modularity)
  • Software Bugs.
  • Severity of Software Bugs.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
53
Q

List some software requirement in the software development process?

A
  • UI Requirements
  • Deployment Requirements
  • Performance Requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
54
Q

In what viewpoint are customers or end users directly involved?

A
  • Requirements
  • Risk Analysis
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
55
Q

True or False? Only functional requirements are taken into consideration during the software architecture design process

A

False

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
56
Q

What are the key technologies that make the foundations of WWW?

A
  • HTTP
  • URI
  • HTML / Markup Language
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
57
Q

True or False? If a software is durable, then it cannot be changeable.

A

False.

Software can be both durable and changeable.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
58
Q

What are the key diagnostics for a usable software system?

A
  • Learnability
  • Operablity
  • Understandability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
59
Q

What does an object represent in Software Engineering?

A

An object represents a collection of related
functionality and data.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
60
Q

What is an Object?

A

An object is a computational entity that encapsulate data
and related methods.

In large systems, objects are related to each other and
communicate with each other at runtime, while performing
system operations.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
61
Q

What is Abstraction?

A

Is the concept of hiding background details or implementation details of an object.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
62
Q

How is Data Abstraction implemented?

A

Data abstraction is implemented as a Data Structure. These are the variables that describe the object.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
63
Q

How is Procedural Abstraction Implemented?

A

Procedural abstraction is implemented by the use of methods, which help abstract the behavior of the object.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
64
Q

List some benefits of Information Hiding.

A
  • Limits the Global impact of local design decisions.
  • Emphasizes communication through controlled interface.
  • Discourages the use of global data.
  • Leads to encapsulation.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
65
Q

What is encapsulation?

A

It is the bundling of data along with the methods that operate on the data into a single unit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
66
Q

What does the data or attributes of an object provide?

A

It provides a means of describing the object.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
67
Q

What do the methods of an object provide?

A

It provides a means of describing the behavior of the object.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
68
Q

When designing objects using Object-Oriented programming, what are underlying concepts of design?

A
  • Modularity
  • Abstraction
  • Architecture
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
69
Q

What does Information Hiding discourage the use of?

A

It discourages the use of “global” data.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
70
Q

In Object-Oriented system, what models the behavior of an object?

A

The methods model the behavior of an object.
While the Variables and attributes describe the characteristics of an object.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
71
Q

The three artifacts are (1) use cases, (2) use case diagrams, and (3) class responsibility collaborator diagrams. When do these three artifacts effectively become the communication medium among the stakeholders

A

At the beginning of the project cycle.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
72
Q

What is the main objective of analysis modeling?

A

To Bridge the requirement and the design of a software project

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
73
Q

Why are artifacts useful?

A

The generally can be understood by both technical and non-technical stakeholders.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
74
Q

What are the steps in analysis modeling?

A
  • Scenario-Based Models
  • Class Models
  • Flow Models
  • Behavioral Models
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
75
Q

List the Three Broad Classifications of Objects

A
  • Boundary
  • Entity
  • Control
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
76
Q

Explain what are Boundary Classes

A
  • Serve as interface between the system and environment.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
77
Q

Explain what are Entity Classes

A
  • They are independent of the system’s interface, they correspond to real-world entities such as the interfaces with databases.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
78
Q

Explain what are Control Classes

A
  • They are responsible for coordinating boundary and entity classes. They would receive and handle system events.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
79
Q

In Object-Oriented Analysis Modeling, what does a Use Case Diagram do?

A
  • Depicts main functionalities, their relationships, and the actors that invoke the functionalities.
  • Represents a high-level dynamic view of the system
  • Has Actors and Use Cases
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
80
Q

List the relationships when trying to draw Use Cases through iterative process

A
  • Include: Base case is not complete by itself. This relationship completes the needed functionalities of the Base Case.
  • Extend: Base case is complete. However, this relationship adds extra functionality.
  • Generalization: Base case has common functionalities that are shared with other cases. Looks like an inheritance relationship.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
81
Q

Explain the Basic Flow that is written in a Use Case Scenario?

A

It is the sequence of events and actions that are in the use case.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
82
Q

Within a CRC Diagram what does the class portion provide?

A

It provides the name of the class and a brief description.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
83
Q

Within a CRC Diagram what does the Responsibility portion contain or provide?

A

It contains all the main functionalities that is provided by the class.

Method Names

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
84
Q

Within a CRC Diagram what does the Collaborator portion contain or provide?

A

The collaborator portion provides the names of the other classes that interact with the CRC’s class.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
85
Q

What does CRC Mean?

A

Class Responsibility Collaborator.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
86
Q

When identifying objects what are some potential objects?

A
  • External Entities
  • Structures
  • Things
  • Occurrences or Events
  • Roles
  • Organizational Units
  • Places
  • Structures
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
87
Q

How can noun extraction assist in the process of software analysis?

A

It assists the users in identifying potential objects in they system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
88
Q

When we are documenting objects and object relationships, which relationships can be used as structural relationships?

A
  • Association
  • Aggregation
  • Composition
  • Generalization/Inheritance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
89
Q

When we are documenting objects and object relationships, which structural relationship can we consider an “is-a-kind of” relationship?

A

Generalization/Inheritance

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
90
Q

When we are documenting objects and object relationships, which structural relationship is considered a “whole-to-part” relationship, where A consists of B, and if A is removed, so is B?

A

Composition

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
91
Q

When we are documenting objects and object relationships, which structural relationship is considered a “whole-to-part” relationship, where B cannot exist without being associated with A, but A
can exist without B, A Contains B?

A

Aggregation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
92
Q

When we are documenting objects and object relationships, which structural relationship is represented when One needs access to the other and their relationship can be explained by verbs?

A

Association.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
93
Q

Class Model Artifacts For Scenario-Based Models

A
  • Use Cases
  • User Stories
94
Q

Class Model Artifacts For Class Models

A
  • Class Diagrams
  • Collaboration Diagram
95
Q

Class Model Artifacts For Flow Models

A
  • DFD’s
  • Data Models
96
Q

Class Model Artifacts For Behavioral Models

A
  • State Diagrams
  • Sequence Diagrams
97
Q

What is the Non- Structural Relationship Between Objects?

A

Dependency.

This is the case where one Object Uses the other.

98
Q

What Contributions are gained by Class Diagrams?

A
  • Class diagrams represent the static view of a system or part of a system. It’s kind of a “blueprint” of a system or subsystem
  • Class diagrams helps visualizing and documenting structural features the system.
  • Class diagrams can be converted to code during the implementation phase
99
Q

What is considered the first step towards actual code?

A

Object abstraction is the first step towards actual code of the software

100
Q

What Relationship is Shown in this diagram?

A

Aggregation.

  • B cannot exist without being associated with A, but A can exist without B
  • A contains B
101
Q

What Relatioship is Shown in this Diagram?

A

Composition.

  • A consists of B
  • If A is removed, then so is B
  • B cannot exist without being associated with A
102
Q

What kind of relationship is shown in the diagram ?

A

Association.

  • One needs to access the other
  • Action verb explains the relationship
103
Q

What are the two broad categories of Relationiships between classes?

A
  • Sturctural
  • Non-Structural
104
Q

What is a Sequence Diagram?

A

Sequence diagrams describe the dynamic behavior of objects.

It describes interactions between objects by depicting the time ordering.

105
Q

What is a Use Case Scenario?

A

It is a description of a potential way the system is used.

106
Q

What do Sequence Diagrams Show?

A

Sequence diagrams show the user scenario execution at object level.

  • Sequence diagrams can be used to explore the logic of complex operations.
  • Sequence diagrams help identify missing methods, attributes in the classes and refine the class relationships in the class diagram.
107
Q

What is a State-Diagram?

A

The state diagram is a collection of objects representing their state, state transitions, actions, and state changes due to input.

  • Usually, the state diagram is used to model the runtime behavior of an object or collection of objects.
  • State diagrams can be used to model the runtime behavior of a software system as well.
108
Q

Notation of a State Diagram: What Does This Represent?

A

This is the Initial State.

  • Represents the starting point of the state diagram.
109
Q

Notation of a State Diagram: What Does This Represent?

A

This represents a state,

  • Name of the state represents the state of the object/system at a given point in time.
110
Q

Notation of a State Diagram: What Does This Represent?

A

It represents a Composite State.

  • A collection of states transitions can be connected to a composite state
111
Q

Notation of a State Diagram: What does this image represent?

A

Represents a Transition.

  • Show the state change of the object and the event that caused the state change.
112
Q

Notation of a State Diagram: What does this image represent?

A

Represents aFork

  • Represents an event that causes the object to have two or more concurrent states
113
Q

Notation of a State Diagram: What does this image represent?

A

Represents a Self Transition

  • Represents events that do not cause the object to change its state.
114
Q

Notation of a State Diagram: What does this image represent?

A

Represents a Join

  • Represents an event that causes the object to have two or more concurrent states
115
Q

List The Importance of State Diagrams?

A
  • State diagrams are useful in modeling objects and systems that exhibit state and state transfer during the runtime.
  • For such objects, state diagrams represent and model the behavior of objects during their entire life span.
  • The different states and state changes as well as events causing transitions can be described.
  • State diagrams help the development team to visualize and analyze the system behavior.
  • Such analysis enables the development team to uncover design and implementation details of software structures.
116
Q

While analyzing object behavior, which diagram represents a collection of objects with their state, state transitions, actions, and state changes due to input?

A

State Diagrams

117
Q

In Unified Modeling Language (UML), what is the correct order of State Diagram notations?

A

Initial State, State, Composite State, and Final

118
Q

In Unified Modeling Language (UML), what are valid transition states used in a State Diagram?

A
  • Fork
  • Join
  • Self Transition
119
Q

In object-oriented analysis modeling, which representation technique indicates the first technical documentation towards coding?

A
120
Q

Which type of object relationship is also referred to as an “is-a-kind of” relationship?

A

Generalization/ Inheritance

121
Q

What represents the dynamic behavior of objects and their interactions while executing user scenarios?

A
122
Q

In state diagrams, which UML notation indicates the state change of an object due to occurrence of an event?

A

Transition

123
Q

What is Software Architecture?

A

Software architecture is a collection of structures and connections among these structures that depict the layout of the software system.

124
Q

What is one of the key decisions made in the Software Design Process?

A

The deteremination of the Software Architecture.

125
Q

What Influences Softwaare Architecture?

A

Software architecture is influenced by requirements, hardware architecture, code design and vice-versa.

126
Q

What drives the design process of Software Architecture Design?

A
  1. Scope of Project
  2. Deployment Requirements
  3. Previous Experience
  4. Intuition
  5. Creativity
127
Q

What is the First Major Step in the Software Architecture Design Process?

A

The first major step in the software architecture design process is the decomposition of the system analysis requirements into units.

128
Q

How are views that are provided by Software Architecture Beneficial?

A

Software engineers and other stakeholders use these views as a stakeholder communication medium as well as a software development and deployment vehicle in delivering the software.

129
Q

Describe The Conceptual View?

A

The conceptual view primarily focuses on a high-level view of important design elements (units) and how these design elements are related to each other.

The conceptual view does not focus on the hardware and software configurations and platforms needed for deployment

130
Q

Describe The Module View?

A

The module view focuses on the design of different modules/subsystems. One of the key questions addressed in the module view is how different analysis elements (such as objects) are mapped into each module.

Another main focus is on realizing how the conceptual view uses design considerations, software platforms and technologies.

131
Q

Describe the Execution View?

A

The execution view is focused on how modules are mapped to the runtime platform of the software system, such as memory usage, hardware, other software and platform integrations at runtime.

The flow of control happens during the execution of the system.

132
Q

Describe Code View?

A

Code view focuses on how module view and execution view can be accomplished through the code (“development components”).

133
Q

What View Focuses On The Consideration Below:

How can dependencies be minimized among components (low coupling)?

A
134
Q

What View Focuses On The Consideration Below:

  • Impact of the runtime platform with future changes
A
135
Q

What View Focuses On The Consideration Below:

How does the functionality get divided into different product releases (Sprints …etc)?

A

Conceputal View

136
Q

What View Focuses On The Consideration Below:

Quality considerations of the software system, such as performance, fault tolerance, and recoverability

A

Exectution View

137
Q

What View Focuses On The Consideration Below:

How to minimize time and effort needed for product updates?

A

Code View

138
Q

What View Focuses On The Consideration Below:

Runtime considerations such as concurrency, cloud and web API usage

A

Execution View

139
Q

What View Focuses On The Consideration Below:

How can changes can be incorporated with less impact on the current design and the architecture?

A

Conceptual View

140
Q

What are Software Architectural Patterns?

A

Architectural patterns are a collection of known solutions that “worked well” in a class of problems that exhibit similar requirements (specially deployment).

141
Q

Describe Client-Server Architecture?

A
  • A distributed system model shows how data and processing is distributed across a range of components.
  • Servers provide specific services such as printing, data management.
  • Clients call on services provided by servers.
  • Usually, clients and servers are distributed across the network.
142
Q

What Architecture Does this Represent?

A

Client Server Architecure

143
Q

Describe Layered Architecture?

A
  1. Software functionality is divided into different layers of functionality.
  2. | Each layer communicates with the layer above and the layer below. No other communication allowed.
  3. Such a design strategy improves modularity where layers can be modified with minimum effect to other layers.
144
Q

What Architecture is shown in this picture?

A

Layered Architecture- Operating System Example

  1. A number of different layers are defined. Each accomplishes operations that progressively become closer to the machine instruction set.
  2. At the outer layer, components service user interface operations.
  3. At the inner layer, components perform operating system interfacing.
  4. Intermediate layers provide utility services and application software functions.
145
Q

List Some Types of Architectural Patterns?

A
  1. Layered Pattern
  2. Client-Sever Pattern
  3. Pipe-filter Pattern.
  4. Broker Pattern
  5. Peer-To-Peer Pattern
  6. Event-Bus Pattern
  7. Model-View-Controller Pattern
  8. Blackboard Pattern
  9. Call and Return
146
Q

Software Architecture Vs Software Design:

True or False?: Software architecture is the high-level view of the system representing major units and communication among these major units.

A

True.

147
Q

Software Architecture Vs Software Design:

True or False? Software designers use the knowledge of reference architectural styles such as clientserver, layered, and message passing in designing the architecture.

A

True.

148
Q

Software Architecture Vs Software Design:

Software architecture describes details of each unit implementation and modules inside each unit.

A

False:

Software architecture does not describe details of each unit implementation and modules inside each unit.

149
Q

Software Architecture Vs Software Design:

True or False? Software design focuses on each module/unit level design considerations.

A

True

150
Q

Software Architecture vs. Software Design:

What are Key Design Considerations?

A
  • Abstraction
  • Modularity
  • Interfaces
151
Q

Abstraction?

A
  • Deals with Information Hiding.
152
Q

What is Modularity?

A

Modularity is defined as the “module independence” by separating concerns of the software into separate modules.

The Separtaion of concerns:

  1. Functionality
  2. Data
  3. Quality requirements
153
Q

What is Functional Dependence?

A

Coupling

Degree to which each module depend on other modules to complete its functionality.

154
Q

What can be defined as “Dependence within the module” ?

A

Cohesion

Degree to which data and functionality in a module related to each other.

155
Q

What are Interfaces?

A

How each unit expose its functionality to other units.

  • Interfaces should be as generic as possible, so that future changes inside the unit will not affect its interface.
156
Q

Who uses the knowledge of reference architectural style?

A

Software Designers

157
Q

What is the primary focus of Software Design?

A

The primary focus of software design is Each Module/Unit level of design

158
Q

What does a well defined Module Exhbit?

A

High Cohesion and Low Coupling

159
Q

What is Cohesion?

A

Cohesion is the degree to which the module performs one an only one function

160
Q

What is Coupling?

A

Coupling is the degree to which the module is “connected” to other modules in the system

161
Q

Why is high coupling not desirable?

A

High coupling makes modifying parts of the system difficult, e.g., modifying a component affects all the components to which the component is connected.

162
Q

Are Low Cohesion Systems prefereable?

A

No. High cohesion facilitates better modifiability and testability as other modules interact through the interfaces.In addtion, most of the time, internal changes can be accomplished without affecting external interfaces.

163
Q

What is it called when a software system is decomposed into smaller parts by grouping related functionality and data together?

A

Modularity

164
Q

When considering a system’s modularity, what does a well-defined object exhibit?

A

High Cohesion and Low Coupling.

165
Q

What word best describes how well the data and procedures within the module perform a single major task and are tightly related to each other?

A

Cohesion

166
Q

Coupling

What Kind of Coupling Describes this Interaction:

One Module Directly connected to the inner workings of another module?

Also, is this sort of coupling desirable?

A

Content Coupling

167
Q

What Kind of Coupling Describes this Interaction:

Data in one module is used to determine the order of execution of another module?

Also, is this coupling Desirable?

A

Control Coupling.

Control Coupling is not desirable.

168
Q

What Kind of Coupling Describes this Interaction:

Two or more modules share a global data item?

Also, is this coupling desirable?

A

Common Coupling.

This coupling is not desirable.

169
Q

What Kind of Coupling Describes this Interaction:

One module passess elementary data types as parameters to the other?

Also, is this desirable?

A

Data Coupling.

This type of coupling will be the most desirable.

170
Q

What kind of coupling is exhibited when, among two modules, Module A directly accesses and changes the Module B data?

A

Content Coupling

171
Q

What kind of coupling is exhibited when, among two modules, Module A passes a data values method parameter to Module B?

A

Data Coupling.

172
Q

What kind of coupling is exhibited when two or more modules all use the same data item?

A

Common Coupling.

Common being that it is familiar around numerous modules.

173
Q

What Kind of Cohesion is described below:

Elements within the module are not related to each other and put together in a rather abrupt manner with no real semantic meaning?

A

Coincidental Cohesion.

This is not desirable.

174
Q

What Kind of Cohesion is described below:

Elements in a component are logically related to each other, but not structurally related.

A

Logical Cohesion.

175
Q

What Kind of Cohesion is described below:

Elements of a module are grouped together as these elements will be exectuted by the system at a particular time during the execution of the program. In addition, a certain sequence of execution exists within elements or those elements are part of the solution represented in the module.

Example: Perform Login and Validate User

A

Procedural Cohesion

176
Q

What Kind of Cohesion is described below:

Elements of a module are grouped together as these elements will be executed by the system in a particular time during the execution of the program. However, they do not exhibit a close relationship in the execution order or one element doesn’t depend on the other.

Example: Shutdown, Startup, Rollback transactions, and recovery of a database.

A

Temporal Cohesion

177
Q

What Kind of Cohesion is described below:

Elements in a module uses same data set for their operations. Such elements are related to each other with respect to data usage.

Example: Module performs search, insert, delete, and update operations on a data set.

A

Communication/Informational

178
Q

What Kind of Cohesion is described below:

Elements in the module are related to each other in that output from one element is an input to another.

A

Sequential

179
Q

What Kind of Cohesion is described below:

Elements in the module are related to a well defined set of functions that perform a set of related operations in the system.

Example: Bank customer checking account functionality, such as deposit, withdraw, print account statement.

A

Functional.

This is also the most desirable kind of Cohesion possible.

180
Q

What does Cohesion Determine?

A

It determines how well each element in a module is related to each other.

181
Q

What are the Three Types of Cohesion that should be rarely be used?

A
  • Coincidental
  • Temporal
  • Logical
182
Q

List the Four Kinds of Cohesion that are the most desirable.

A
  • Functional
  • Sequential
  • Procedural
  • Communication/Informational
183
Q

What is the interface?

A

The interface of the module is the communication channel between the module and its environment.

It defines what services the software unit provides to the rest of the system, and how other modules can access those services.

184
Q

What is the best way to have the interface of a module? (Specific or Generic and why?)

A

It is best to have the interface of a module as generic as possible. The reason for this affects the maintainablity and modularity of the software. When a change is made to the inner workings of the module, if the interface is generic modifications will be minimized.

185
Q

What does the specification of an interface communicate to other developers?

A
  • Purpose
  • Preconditions
  • Protocols
  • PostConditions
  • Quality Attributes
186
Q

The interface module is the communication channel between which two things?

A

The module and its environment.

187
Q

List All the Types of Couplings?

A

Content

Common

Control

Stamp

Data

C3SD

188
Q

What is a high level view of a system that represents major units and communication among those units?

A

Architecture

189
Q

Whar are key considerations in software design?

A
  • Abstraction
  • Modularity
  • Interfaces
190
Q

What refers to the separating software concerns into separate modules?

A

Modularity

191
Q

What makes modifiying parts of a system difficult?

A

When the system has High Coupling and Low Cohesion.

192
Q

Are These Statements True or False about highly cohesive systems:

a. Internal changes are accomplished through affecting external interfaces.
b. Data and procedures inside a module are tightly related to each other.
c. Cohesion facilitates better modifiability and testability of the software system.
d. Cohesion concerns “connectedness” inside each module.

A

a. False
b. False
c. True
d. True

193
Q

Which types of cohesion are desirable in software system design?

A
  • Sequential
  • Procedural
  • Communication
  • Functional
194
Q

What is meant by abstraction in the context of software design?

A

Designing modules such that the data and implementation of each module is hidden from other modules

195
Q

True or False:

Interfaces define what services the software unit provides to the rest of the system.

A

True

196
Q

True or False:

Interfaces encapsulate the key functionalities into group of components.

A

False

197
Q

True or False:

Interfaces define how other modules can access the software unit services.

A

True

198
Q

List the Types of Abstractions?

A
  • Data Abstraction
  • Control Abstraction
199
Q

What are some of the benefits of Using Design Patterns?

A
  • Improved Modularity
  • Better Testability using known Techniques
  • Assure software quality attributes that can be derived from known patterns
200
Q

What are Creational Design Patterns?

A

Creational design patterns provide solutions to instantiate an object in the best possible way for specific situations.

201
Q

What is Structural Design Patterns?

A

Structural Patterns provide different ways to create a class structure, for example using inheritance and composition to create a large object from small objects.

202
Q

What is Behavioral Design patterns?

A

Behavioral Pattersn provide ways objects interact with each other, but still provide loose coupling and flexibility to extend easily.

203
Q

Which type of design pattern provides solutions to instantiate an object in the best possible way for specific situations?

A

Creational

204
Q

What design pattern provides ways to create a class structures?

A

Structural Design Pattern

205
Q

What is the main objective of Creational Design Patterns?

A

The main objective is to provide different techniques to instantiate and create ojbect instances efficiently

206
Q

Describe the Factory Design Pattern.

A

Rather than the client creating the object instance of different types, it uses the service of an object factory to request the type of object instance needed.

207
Q

Describe The Builder Design Pattern.

A

The builder pattern aims to separate the construction of a complex object from its representation. The same construction process can be used to create different representations.

208
Q

Describe the Singleton Design Pattern:

A

Class in which only single instance is possible.

209
Q

Describe The Prototype Design Pattern

A

Provide a prototype of the object (initial setup of the object) that can be copied or cloned.

It removes the need for object initialization. Can be used for games such as Chess Games.

210
Q

Describe The Abstract Factory Pattern

A

Provides an interface to create a group of individual factories with common theme without specifying their concrete classes.

211
Q

Describe Object Pool Design Class

A

Object pool has a collection of object instances where clients can request them. Once an object instance is assigned to a client it will no longer be available until it is freed.

212
Q

What do Creational design patterns provide?

A

It provides improved quality factors such as:

  • Runtime resource usage
  • Modularity of the design
  • Modifiability of the design
  • Testability of the system.
213
Q

Chess is a board game for two players who move their 16 game pieces according to specific rules. The goal is to “checkmate,” or capture the opponent’s king game piece. Imagine you are designing a Chess board game. In the initial state, to avoid repetitive object initialization process, which design pattern should you use?

A

Prototype

214
Q

Suppose you wish to use a web browser for web crawling. There are requirements in the system so there are a limited number of browsers that can be instantiated at a given time. Which design pattern can provide more control over these limited object resources?

A

Object Pool

215
Q

What do you Strucural Design Patterns Focus On?

A

These design patterns focus on organizing different classes and objects to form larger structures

216
Q

Describe the Decorator Design Pattern:

A

Provides a way to build objects from other object instances. This pattern is a replacement to inheritance.

217
Q

Describe Facade Design Pattern:

A

Facade is a single object representing a complex subsytem.

218
Q

Describe the Adapter Design Pattern:

A

Matches interfaces between classes.

219
Q

Describe Flyweight Design Pattern:

A

Object Sharing among uses by setting different values at different usages. Flyweight objects are singleton and it can be used simultaneously by multiple clients.

220
Q

Describe Proxy Design Pattern:

A

Object representing another object.

221
Q

Which design pattern matches interfaces between classes?

A

Adaptor

222
Q

Which type of design is a single object representing a complex subsystem?

A

Flyweight.

Also many users can use it simultaneously.

223
Q

What are Behavioral Designn Patterns?

A

Behavioral Patterns are about identifying common communication patterns between objects.

224
Q

Describe Chain of Responsibility Design Pattern

A

It is a method of passing requests among participating objects in the system

The client is not aware of this chain of responsibility.

225
Q

Describe the Iterator Design Pattern

A

Sequentially access items in the collectioin without using the implementation of the collection.

226
Q

Describe the Observer Design Pattern:

A

Change in one object will be notified to other relevant objects.

227
Q

Describe the State Design Pattern

A

This is useful in situations where the behavior of the object differ based on the state of the object.

228
Q

Describe the Strategy Design Pattern:

A

Some applications require different algorithms to be executed at different times and the determination is done at runtime.

229
Q

Describe the Mediator Design Pattern:

A

Mediator is a communication bus that controls how different objects interact with eacnh other.

230
Q

What are the key contributions of these design patterns are to establish communication/interaction among objects in a system while maintaining:

A
  • Modularity
  • High Cohesion
  • Low Coupling
231
Q

Which design passes messages to multiple participating objects in the system?

A

Chain of Responsibility

232
Q
A