INF 43 Final Exam

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

elements that comprise functionality and/or computation

Component

In the Layered architectural style:

None of these

Architectural erosion happens when:

The "as-designed" architecture and the "as-implemented" architecture do not match

The "requirements" phase of the software lifecycle can be broken down into two sub-phases: "analysis" and "specification". What is requirements analysis?

The process of coming to know and understand what the software product should be

Which one of the following is true about software architectural styles?

A software architectural style provides us with a named set of components, connectors, and configurations.

Which one of the following statements most naturally follows from Ziv's Law?

Assume that the requirements document will have to change at some point.

all elements of the architecture laid out in a specific way that describes the overall architecture (or architectural style)

Configuration

elements that handle interaction between the different parts of the architecture

Connector

What is relational database design?

Designing tables where data is stored and relationships between them

The term requirements specification is used to refer to the process of coming to know and understand what the software product should be. True or False?

False

In the requirements document, if you were to describe the list of desired features of the software and how they should work, into which section would they most likely go?

Functional Requirements

High Coupling is

Many tight dependencies or associations across multiple components, and high levels of this is undesirable for a good design

Recall the CNBC article about software used in health care. Which one of the following requirements analysis techniques was it most focused on?

Observing the customer

Requirements analysis could be performed in a number of ways. Which of the following is NOT a requirements analysis technique?

Software quality assurance techniques, such as testing

A descriptive architecture is necessarily...

The architecture that can be can always be inferred from the implementation

What is the purpose of a UML class diagram?

To create a detailed, object-oriented design of the code

The term requirements specification is used to refer to the process of documenting the requirements of the software product to be built. True or False?

True

The term requirements specification is used to refer to the requirements document. True or False?

True

A detailed, object-oriented design is usually depicted as a(n):

UML class diagram

Which one of the following statements is true about software architecture?

When software evolves, architecture is a valuable tool in facilitating that evolution.

If you go into a career in software engineering in the U.S., which one of the following situations is most likely outcome for you (or any random person)?

Working in the IT department of a company, writing software for "customers" who are also part of that same company

Imagine you are creating a UML class diagram of an e-commerce system (such as Amazon.com) that sells items. Which of the following is most likely to be an operation of an Item class?

addToCart

Imagine you are creating a UML class diagram of an e-commerce system, such as Amazon.com. Which of the following is most likely to be an attribute of a Customer class?

name

For this question, you will be considering two example software systems and software qualities ("ilities"/non-functional requirements). Consider two software products: TikTok (social media video sharing service) Tesla Autopilot (advanced driver-assistance software system) For this question, answer all four parts: A1. Name a quality (non-functional requirement quality) that is more important for TikTok than Autopilot. A2. Describe why you think that that quality is more important for TikTok. B1. Name a quality (non-functional requirement quality) that is more important for Autopilot than TikTok. B2. Describe why you think that that quality is more important for Autopilot.

A1. User interface A2. Unlike Tesla autopilot, TikTok has to be user-friendly and have an intutive interface. Like all social media apps, if its too hard to use the app, people won't use it. Tiktok's interface allows for easy user engagement and growth, whereas Tesla's user interface is more of a toggle on and off. B1. Safety B2. Since Tesla's autopilot is affecting a physical car, vehicle and road safety is something that Tesla has to worry about. Any oversight can lead to loss of life or damage to property. Since TikTok doesn't affect a physical vehicle, its software malfunctions don't lead to car accidents.

A function call presents a simple interface and hides the logic that will be performed. This is an example of...

Abstraction

In which section of a requirements document are you most likely to find the following statements: "The software shall run on iPads in the lobby of the library. The software shall also take input from scanners attached to the iPads, with which a patron can use to scan their cards and items. The software shall also interact with the county-wide library database to report checkouts and checkins."

Application Context

Which one of the following requirements-analysis techniques is Netflix known for using the most to inform their software development?

Data analysis and business metrics

What is functional decomposition?

Decomposing a task, function, module, or system into smaller sub-tasks, sub-functions, or sub-modules

Briefly describe the software-engineering principle of "incrementality" and give an example of a software-engineering task or concept that demonstrates this principle. (Short answer: simply demonstrate that you know the concept and give any example of the idea. For example, perhaps a couple sentences.)

Incrementality refers to developing and delivering software in small incremental parts. This allows for easier management, testing, and adaptation before moving to the next part. An example would be pushing/pulling using Git. This system exists outside of committing specifically for incrementing. When a developer pushes a change in Git to the repository, it gives the other developers the opportunity to pull the changes and really test/check them before commiting

Consider the three perspectives on software engineering discussed in lecture. Match each perspective with what matters most from that perspective.

Internal quality of the software Business Money User "Everything that the user sees"

Which of the following statement is NOT correct?

It is outside the scope of a requirements engineer to document possible risks to the project.

Which of the following statement is NOT CORRECT?

Mixing different styles in software architecture is inappropriate. Architects should always stick to one single architectural style.

Which one of the following statements about requirements is true?

Requirements issues are at the root of many software failures.

Briefly describe the software-engineering principle of "rigor and formality" and give an example of a software-engineering task or concept that demonstrates this principle. (Short answer: simply demonstrate that you know the concept and give any example of the idea. For example, perhaps a couple sentences.)

Rigor and formality refer to applying procedures and models within the software development lifecycle. An example would be an agreed-upon convention that works for understandability among software developers, so programming languages and diagrams allow for commonality within the field. So an ER diagram represents a database.

In a specification, which section would you describe that that software should be built to be secure and beautiful?

Software Qualities

An abstraction is formed by reducing the information content to only present information that is relevant to the task at hand, and hide information that is irrelevant to the task at hand. For example, a software requirements document presents the requirements of the software, but "abstracts away" (hides) the architecture, source code, etc. Describe at least two types of information that are hidden or "abstracted away" in a UML class diagram.

The implementation of methods (source code) and the dynamic processes like object states are abstracted away.

Of the three essential ingredients of software engineering, which is the most important?

These are all equally important

Mr. Brown wants to create a web application that can assist people buying tickets for a cruise ship. Which of the following is the POOREST example of the requirement?

The web's backend should use the most popular programming language, Python, so that it could be easily maintained since more people know how to use it.

Requirements should define:

The what, not the how

Which of the following is not true about an architect?

Usually is an entry-level position

Based on his "No Silver Bullet" essay, which one of the following pieces of advice would Fred Brooks be least likely to give?

You should always build functionality yourself from scratch rather than reuse existing software that provides the functionality you need.


Ensembles d'études connexes

Weber - ch 44-The Protestant Ethic and Spirit of Capitalism

View Set

AP Economics - Chapters 31, 32, 33, and 34

View Set

Chapter 28: Disorders of Cardiac Conduction and Rhythm

View Set