Week 4: Software Architecture - CS 427

¡Supera tus tareas y exámenes ahora con Quizwiz!

conway's law

"Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure."

T (this is abstraction since we are removing the need for detail - we don't need to remember the file's actual name and can just focus on the main idea of which file the kernel needs to access)

(T/F): A file descriptor serves as an abstraction when the file descriptor is used to inform the kernel which file to access instead of by using the file's actual name.

F

(T/F): Architectural pattern and architectural style are the same and used interchangeably.

F

(T/F): Compared to an architecture style, an architecture pattern is typically more general

T (ideally one design decision per module, but usually design decisions are closely related)

(T/F): Each module should hide a design decision from others. (Examples of design decisions include representation of data, use of a particular algorithm, use of a particular operating system, etc.)

T

(T/F): Refactoring is a good way to achieve high modularity.

F

(T/F): There exists NO undesirable side effect on runtime performance when introducing abstraction in software design.

F

(T/F): There will be always a serious problem if a software architect allocates little of time on doing work directly on the architectures.

F (with abstraction, we can just use the value of the file descriptor to get the file)

(T/F): Under the abstraction of using a Unix file descriptor, a process needs to know a file's actual name in order to get access to it.

A

A chart, a pie table, and a bar table can show the same information from the database, due to which feature of MVC? A) Ability to provide multiple views B) Support for asynchronous technique C) The modification not affecting the entire model

model-view-controller pattern

A design plan in which the roles and responsibilities of the system are cleanly divided among data management (model), user interface display (view), and user event handling (controller) tasks.

architectural pattern

A general, reusable solution to a commonly occurring problem in software architecture within a given context.

coupling

A measure of interconnection AMONG modules. Measures the degree to which one module depends on others. Want to reduce this.

cohesion

A measure of interconnection WITHIN modules. Measures the degree to which one part of a module depends on another. Should be maximized in order to achieve modularity.

connector

A procedure call is a _______ (component/connector)

B

A product group in a large company is working on developing a compiler for a platform. Within this product group, each of multiple teams is formed for reflecting the component maintained by the team, such as the compiler front-end team and the compiler back-end team. The reflection of such team organization is known as _______. A) Brook's Law B) Conway's Law C) Moore's Law D) Bell's Law

abstraction

A simplified representation of something more complex. Allow you to hide details to help you manage complexity, focus on the common core or essence (generalizing), and reason about problems at a higher level.

data abstraction

A type of abstraction involved in software engineering which involves naming a collection of data and defining a data type by a set of procedures.

procedural abstraction

A type of abstraction involved in software engineering which involves naming a sequence of instructions and parameterizing a procedure.

control abstraction

A type of abstraction involved in software engineering which involves the separation of the logical properties of an action from its implementation.

client-server style

A type of architectural style where the components are clients and servers. Key benefits: Centralized control (if server is managed by same party) Ex: Web application, SVN diagram: game client(component), remote call (connector), game server (component) game client 1 `game client 2 `game client 3 |````````` ``````|```````````` | v``````````````` v ```````````v procedural call ``procedural call ``procedural call `````\ ``````````|````````` /``````` ``````\````````` | ````````/```````` ````````----------- V----------````````` ````````````game server````````````

pipe-and-filter style

A type of architectural style where the components are filters and the connectors are pipes. key benefits: 1 - modularity 2 - reuse 3 - anticipation of change ex - UNIX shell, compliers diagram: print records | v stream (pipe) | v filter "Aug" records | v stream | v sort (*strictly sequential* order)

layered style (3-tier/n-tier client-server)

A type of architectural style with the following key benefits: 1 - modularity 2 - abstraction (interaction is only between adjacent layers, so layers farther form each other are abstracted) 3 - anticipation of change 4 - resuse ex - OS, networks diagram - restaurant example: customer | ^ v | waiter | ^ v | cook (*linear* fashion)

A (since assigning members by geo-location will produce a familiar structure rather than when members are assigned randomly, given via definition of Conway's Law)

According to Conway's Law, when assigning team members to a group for working on the same module, it's better to: A) Assign team members from the same geo-location B) Assign team members randomly

C

Adding a new controller class can benefit from MVC in what way? A) Ability to provide multiple views B) Support for asynchronous technique C) Modification not affecting the entire model

descriptive architecture

As-implemented/realized architecture (what is it today, what happened)

C (since the order is strictly sequential)

Assume that you are an architect for a data-processing project. You have designed an application in such a way that the front-end component receives sensor data from devices, and the data flow from one component to the next component. Each component subsequently transforms the data and passes the transformed data to the next component. The final component passes the finally transformed data to a modelling and visualization unit that renders the data to the end-users. The architecture style that you are using in this application is ______. A) layered/tiered style B) architectural style C) pipe-and-filter style

E

Besides reducing coupling/increasing cohesion, what are ways to achieve modularity? A) Reuse a design with good modularity B) Think about and hide design decisions C) Eliminate duplication D) Reduce impact of changes E) All of the above

component

If a part in a software system can provide a specific functional feature, then it is a __________ (component/connector)

A

If a software architecture separates its functionalities to multiple tiers, then it is in ___________. A) layered/tiered style B) client-server style C) pipe-and-filter style

B

If functions in a module can receive different kinds of inputs but produce the same output, then this module is having: A) Coincidental cohesion (grouped by chance) B) Communicational cohesion (shared data) C) Logical cohesion (same idea) D) Temporal cohesion (same time)

C

If functions in a module have similar functionalities, then this module has ________. A) coincidental cohesion B) communicational cohesion C) logical cohesion D) temporal cohesion

B

In the UNIX pipe-and-filter architecture, which is NOT true? A) The data gets processed as soon as they arrive. B) Filters know each other and share state. C) Data can be processed in only one direction. D) Filters can be implemented in parallel.

A

In the model-view-controller (MVC) architecture, the model component defines the: A) Data-access layer B) Presentation layer C) Business-logic layer D) Interface layer

B (since this involves removing the details of the object, which is a form of data)

Making a Python class object is: A) Control abstraction B) Data abstraction C) Procedural abstraction

B

Measure to the degree to which one module depends on others is referring to the degree of: A) Cohesion B) Coupling

B

SVN primarily uses the ___________ architectural style. A) layered/tiered style B) client-server style C) pipe-and-filter style

B

The component in MVC for sending out state queries is named ________. A) model B) view C) controller

B

The component in the MVC pattern for receiving user-gesture events is named _______. A) model B) controller C) view

software architecture

The structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. (For a program or a computing system)

modularity

The subdivision of a computer program into separate subprograms.

architectural style

Vocabulary of components and connectors, composition constraints

C (instead of this, they need good communication skills)

What is NOT true about a qualified software architect? A) Have expertise in design and pick the best option among design options B) Be a master in system development C) Be able to complete all work by themself

C

What is the best way for a good software architect to allocate percentage of time on internal focus (architecting), inwards activities (getting inputs), and outwards activities (providing info), respectively? A) 20%, 40%, 40% B) 70%, 10%, 20% C) 50%, 25%, 25% D) 50%, 40%, 10%

D

What is the role of software design? A) Exposing certain properties of the software system before the implementation B) Helping developers to reason about the capability of the software system to satisfy certain requirements C) Acting as design for software system construction D) All of the above

pull

When a client hits the button on GUI to request information from a database, what mode is that (pull/push)?

B

Which is NOT a component of compilers' software architecture? A) Front-end component B) Modular component C) Middle-end component D) Back-end component

B

Which of following is NOT a function of connectors? A) Interactions among components B) Encapsulates computation and/or data in the system C) Rules that govern those interactions

D

Which of the following are benefits of software architecture? A) Allowing developers to have a better understanding of the essential part of the system. B) Making your software scalable. C) Better code maintainability. D) All of the above

D

Which of the following are reasons for modularity? A) Collaborative/distributed development - reduced communication B) Security - compartmentalization C) Reliability - localization of failure D) All of the above

C

Which of the following is NOT an example of abstraction? A) Ignoring specific details B) Generalizing common properties C) Focusing on individual instances

D (since it's only by chance)

Which of the following is the worst type of module cohesion among the following options? A) Logical cohesion (same idea) B) Temporal cohesion (same time) C) Functional cohesion (a single well-defined task) D) Coincidental cohesion (by chance)

C

Which of the following is wrong? A) A prescriptive architecture refers to the architecture before the system is constructed B) A descriptive architecture refers to the architecture having been built C) When there is a conflict between the prescriptive architecture and the descriptive architecture, we should always modify the descriptive architecture only. D) Either the prescriptive architecture or the descriptive architecture can evolve over time.

C

Which of the followings is NOT what a software architecture concerns about? A) The structure of the system B) The interactions among components within the system C) A component's internal details that are not related to its interactions with other components D) Design decisions about the system

D

Which of the statement about software modularity is NOT correct with respect to benefits of software modularity? A) Modules are robust. B) A module can use other modules. C) Modules can be separately compiled and stored in a library. D) Modules are mostly dependent.

prescriptive architecture

as-designed/as-intended architecture (essentially the plan before the final product is created)


Conjuntos de estudio relacionados

Disorders Common Among Children and Adolescents - Ch 14

View Set

Nursing Leadership NUR 4120 Chapter 2

View Set

BCOR 3050 Independent Demand Inventory

View Set

EMT FINAL!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 29, 30, 31,32,23,33,34,35,36,38,39

View Set

Exam FX Guaranteed Exam - Kansas

View Set