INF 43 UCI F23 STUDY GUIDE
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