INF 43 UCI F23 STUDY GUIDE

Ace your homework & exams now with Quizwiz!

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.

For this UML class diagram, which of the following would you expect to see its corresponding code? Mark all that apply.

Class "B" has a field "aList", which is a collection of objects of type "A" AND Class "A" has a field "b" of type "B"

Which of the following is NOT a way to know when to stop testing?

When all bugs have been found and fixed

User control and freedom

"Undo" button

Business Perspective

Money

IEEE Definition: Mistake

A developer forgot that negative numbers need to be handled from the input

Which one of the following is true of white-box testing?

A graph model of the source code is used to inform what test cases should be written.

IEEE Definition: Fault/Bug

A line of code that should have contained ">=" actually contains ">"

In the Layered architectural style

None of these

Consistency and Standards

A magnifying glass icon on a search button

In user-centered design, a persona is:

A profile of a fictional potential user that helps you make user-centered decisions during development

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 statements about requirements is false?

The requirements phase is the mostly costly phase in the software life cycle, in terms of dollars spent.

In user-centered design, what are design guidelines?

A set of common UI components, patterns, and styles to promote reuse and provide a consistent user experience

In user-centered design, a storyboard is:

A series of pictures shown in sequence to visualize the user experience and interaction

In user-centered design, a scenario is:

A story-like textual description of a system's usage

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.

Recognition rather than recall

Auto-complete

Please describe a situation in which a bug can be present in the code, but does not cause a failure.

If a bug exists in a line of code that never gets executed (such as an if-else statement, where the bug might exist in the else or elif lines).

In software engineering, to what does the term "refactoring" refer?

Improving the design of existing code without changing its functionality

In Brooks' "No Silver Bullet," he names "changeability" as one part of the "irreducible essence of modern software systems." Explain the consequences of software being invisible, and include an example. (Short answer: simply demonstrate that you know the concept and give any example of the idea. For example, perhaps a couple sentences.)

Changeability is an incredibly useful concept within the world of Software Engineering, as it keeps software engineers on their toes by making them stay equipped for any possible changes that their software might require. However, one consequence of software being changeable is redundancy and the amount of time spent on this software. If a customer requests an engineer to create Project A that does B, the engineer satisfies this within their project, and then months later, wants this to be changed to account for all of the bivariate possibilities, this could be overkill and be too much time spent by the engineer. If a consumer was more blatant about their needs for a program, this would remove the need for changeability and allow the engineering of their requested software to be a one-and-done project, saving everyone time in the process.

Pair programming includes which of the following steps

Coding with another person

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

Equivalence Class Partition Testing includes all of the following steps, EXCEPT:

Gather user feedback for validation

High Coupling is

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

High Cohesion is

Many tight dependencies or associations within a component, and high levels of this is desirable 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

Visibility of system status

Progress bar during a file download

Which of the following software process models requires a "process expert?"

Rational Unified Process (RUP)

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

Which of the following is an example of unit testing?

Testing the functions of a single class

Which of the following is NOT an example of a test oracle:

The actual output of the software implementation that you are testing

A prescriptive architecture is

The architecture that the architect decides for the project to guide how the software will be designed and implemented

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

Of which kinds of tests should there be the fewest in the collection of tests for a system?

UI/system tests

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

UML class diagram

User acceptance testing is an example of:

Validation

Test cases, informed by the specifications with an input and an expected output, is an example of:

Verification

What is the main activity done in the third iteration in a spiral process?

Whatever activity addresses the biggest current risk

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

configuration

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

Which of the following is a true statement: "Black box testing is..."

based on the specifications of a system

component

elements that comprise functionality and/or computation

connector

elements that handle interaction between the different parts of the architecture

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

The waterfall process model is: (Note: for this question, "idealized" means that it largely assumes that each step is performed ideally, whereas "realistic" means that it works well for non-ideal and imperfect/flawed steps.)

linear and idealized

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

Abstraction

The build-and-fix process model is:

Also often referred to ask simple "hacking"

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

Error prevention

Disabling a button that, when clicked, would lead to an error condition

IEEE Definition: Error

During execution of the program, a variable's value is incorrect

User Perspective

Everything that the user sees

Which one of the following software process models involves the customer the most throughout the process?

Extreme Programming

Engineering Perspective

Internal Quality of the Software

Which of the following statement is NOT correct?

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

Accelerators

Keyboard shortcuts

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.

When testing, when do we achieve 100% confidence that the program contains no bugs?

Never

Which one of the following statements is not true about testing?

One goal of testing is to prove that the system has no bugs.

According to the IEEE Spectrum software failure reading, what is another name for "Hubble Psychology?"

Over optimism disease

Of the three essential ingredients of software engineering, which one can make up for shortcomings in the other two?

People

Which one of the following statements about requirements is true?

Requirements issues are at the root of many software failures.

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

Software Qualities

In Brooks' "No Silver Bullet," he names "invisibility" as one part of the "irreducible essence of modern software systems." Explain the consequences of software being invisible, and include an example. (Short answer: simply demonstrate that you know the concept and give any example of the idea. For example, perhaps a couple sentences.)

The consequences of software being invisible make it incredibly hard for people to communicate about software being developed and hard for the software engineer to mentally design this software. As software remains "invisible" within modern software systems as a result of oversimplification, engineers can struggle with visualizing this software and thinking about how to make it better. Too much simplification can be a bad thing, and this is shown when the invisibility of software hinders the ability of software engineers to develop software and discuss software with their peers and colleagues to improve it.

IEEE Definition: Failure

The output of the program reveals an incorrect value

Briefly describe the software-engineering principle of "abstraction" 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.)

The software engineering principle of abstraction allows a software engineer to hide complexity within their program in order to increase efficiency by hiding the irrelevant data in a program. For example, if a user is creating a simple program that multiplies two numbers and declares if this is a prime or nonprime number, this could be written in a function and then the function could simply be called. This would hide complexity within a program, as the program could be structured to where the user/client could only see the function. Example: def IsFunctionPrime(a,b): *Code Here* if __name__ == __main__: IsFunctionPrime(Input1,Input2) Abstraction is the function itself being called with the inner workings being hidden

Briefly describe the software-engineering principle of "generality" 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.)

The software engineering principle of generality requires a programmer to be as "general as possible". For example, if a programmer is going to build an app whose coding framework is to be reused among the programmer's similar projects, the programmer should write their functions and classes as general as possible. This would be an excellent use of generality as it would allow the programmer to reduce their workload by creating code elements as general as possible so that the specifications can be done in the implementation phase, not the design and development phase.

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

In user-centered design, heuristic evaluation is:

Using principles based on research to assess the usability of a system

Which of the following is not true about an architect?

Usually is an entry-level position

Test-driven development includes which of the following steps

Writing a test case before writing the functionality to allow it to pass

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.

In white-box testing, branch coverage ensures that:

every True/False edge is taken

In white-box testing, statement coverage ensures that:

every source-code instruction is executed


Related study sets

Introduction to Psychology Chapter 3 section 2

View Set

Programming Quiz 4, Revel MC Questions (Ch 5)

View Set

La Ciudad de las Bestias - Capítulos 1-5

View Set

CHAPTER 3 - THE OPERATIONS MANAGEMENT FUNCTION

View Set

RDBMS Relational Database Management System

View Set

Chapter 14: Water Table and Aquifers

View Set

[EDMENTUM]: Principles of Design: Mastery Test

View Set

Chapters 15 & 16, Civil Liberties

View Set

International Investments Midterm--

View Set