INF43 Fall 2023 Final Study Guide
Recognition rather than recall (According to the Nielsen heuristics for assessing usability, match the heuristic on the left to their best examples on the right.)
Auto-complete
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
Consistency and standards (According to the Nielsen heuristics for assessing usability, match the heuristic on the left to their best examples on the right.)
A magnifying glass 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
The build-and-fix process model is:
Also often referred to ask simple "hacking"
Which of the following is NOT an example of a test oracle:
An older, legacy program that computed the same function A calculator, or separate computing device Correct! The actual output of the software implementation that you are testing Human intuition, knowledge, judgment, or experience
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 statements most naturally follows from Ziv's Law?
Assume that the requirements document will have to change at some point.
Equivalence Class Partition Testing includes all of the following steps, EXCEPT:
Identify the set of all possible inputs (to what is being tested), aka "domain" Identify a basis for subdividing the set of inputs Use this basis to divide the set of all possible inputs into classes/subdomains Correct! Gather user feedback for validation Test for each subdomain, including representative values or possibly boundary values From each subdomain, select [a] representative(s) to be [a] test case input(s)
Visibility of system status (According to the Nielsen heuristics for assessing usability, match the heuristic on the left to their best examples on the right.)
Progress bar during a file download
Requirements analysis could be performed in a number of ways. Which of the following is NOT a requirements analysis technique?
Prototyping solutions and getting feedback from the customer Gathering and utilizing data analytics Interviewing the customer Researching other past solutions Correct! Software quality assurance techniques, such as testing Observing the customer
Which of the following software process models requires a "process expert?"
Rational Unified Process (RUP)
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
Please describe a situation in which a bug can be present in the code, but does not cause a failure.
The bug could be hidden in a switch statement, but the program doesn't reach that case in the switch statement. Therefore, the bug is never discovered and it never causes a failure.
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 of the following is NOT a way to know when to stop testing?
When all bugs have been found and fixed
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.
When software is changeable, it allows for the software to adapt to the world as it changes around it. For instance, people can create new uses for the software as the needs for it arise. Additionally, people can port these software to different platforms as the need for the software increases. One example of this would be Apple and Android devices being made compatible with vehicles as the need for navigation systems arise (i.e. Apple CarPlay and Android Auto).
Which of the following is a true statement: "Black box testing is..."
based on the specifications of a system
elements that comprise functionality and/or computation
component
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
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
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?
price logOut fileSize Correct! name writeReview
Consider if we have a function that takes an integer input. For example: int f(int x) This input can be partitioned into the following partitions/equivalence classes: Partition A: x ≤ 0 Partition B: 0 < x ≤ 100 Partition C: x > 100 for the integer input parameter x. For each of the following values, answer for which partition it is a boundary value.
1 Boundary value for Partition B 100 Boundary value for Partition B 0 Boundary value for Partition A 101 Boundary value for Partition C -100 Not a boundary value for any of these partitions 500 Not a boundary value for any of these partitions -1 Not a boundary value for any of these partitions 99 Not a boundary value for any of these partitions
For this code block: void function(int x, int y, int z) { 1: int q = 0; 2: if (x > y) { 3: if (x > z) { 4: q++; } else { 5: q--;} } else { 6: if (y > z) { 7: q = q + 10;} } 8: print q; } And for the input (1, 2, 3), which statements are executed/covered? Select all that apply.
1, 2, 6, 8
Mistake
A developer forgot that negative numbers needed 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.
Fault/Bug
A line of code that should have contained ">=" actually contained ">"
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, what are design guidelines?
A set of common UI components, patterns, and styles to promote reuse and provide a consistent user experience
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 is not true about testing?
One goal of testing is to prove that the system has no bugs.
In user-centered design, a scenario is:
A story-like textual description of a system's usage
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. TikTok should be more user-friendly than Tesla Autopilot.A2. TikTok should be more user-friendly because the app should be easy to use and easy to navigate in order to entice people to spend more time viewing videos and use the app more. Tesla Autopilot does not need to be user-friendly because it is not directly interacting with the user, it is only a program that depicts where the car should go. B1. Tesla Autopilot should be more reliable than TikTok so that the car does not crash.B2. Tesla Autopilot should be reliable because if it is not reliable, it runs the risk of failing while carrying passengers and it may cause harm to people inside or outside of the vehicle. TikTok does not need to be as reliable because if the app crashes, users can simply relaunch the app at no inconvenience.
A function call presents a simple interface and hides the logic that will be performed. This is an example of...
Abstraction
Abstraction
Abstraction is the idea that engineers hide the non-necessary parts of a program from the user in order to reduce its complexity. For example, a user of a simple to-do list app does not need to know how the data is stored in an ssd or a hard drive, so the engineer hides those processes and only shows the GUI to the user.
A descriptive architecture is necessarily...
The architecture that can be can always be inferred from the implementation
For this UML class diagram, which of the following would you expect to see its corresponding code? Mark all that apply.
Class "A" has a field "b" of type "B" Class "B" has a field "aList", which is a collection of objects of type "A"
Pair programming includes which of the following steps
Coding with another person
In the Layered architectural style:
Components are organized around one centralized server. Any component can communicate with any other component in the architecture. The upper layers are the most reusable. Correct Answer None of these
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
What is relational database design?
Designing tables where data is stored and relationships between them
Error prevention (According to the Nielsen heuristics for assessing usability, match the heuristic on the left to their best examples on the right.)
Disabling a button that, when clicked, would lead to an error
Error
During the execution of the project, a variable's value is incorrect
User (What matters most for this perspective of Software Engineering)
Everything that the user sees
Which one of the following software process models involves the customer the most throughout the process?
Extreme Programming
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 software engineering, to what does the term "refactoring" refer?
Improving the design of existing code without changing its functionality
Engineering (What matters most for this perspective of Software Engineering)
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 (According to the Nielsen heuristics for assessing usability, match the heuristic on the left to their best examples on the right.)
Keyboard Shortcuts
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
Business (What matters most for this perspective of Software Engineering)
Money
When testing, when do we achieve 100% confidence that the program contains no bugs?
Never
Which of the following statement is NOT CORRECT?
Not all design decisions should be considered as part of software architecture. Architectural erosion happens when the software is not grown as it was prescribed. Software Architecture consists of components and connectors, which can be arranged into configuration Correct! Mixing different styles in software architecture is inappropriate. Architects should always stick to one single architectural style.
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
Which of the following is not true about an architect?
Often serves as an interface between key business stakeholder and the technical team Often leads the technical development team Correct! Usually is an entry-level position Usually has broad training (in the domain and in software development) Usually is a key decision maker on the direction of how to make difficult implementation choices
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.
One piece of information that is hidden away are the methods that will be used to store information. There is usually no description of what data structure will be used when making a UML class diagram, instead it might list what data needs to be stored and which classes have access to said information. Another piece of information that is usually abstracted away is the language of the code or the code of each method. Normally, a UML diagram will list a description of what attributes and methods a class has, but it doesn't state what language the code will be written in nor does it state how the code will be written. It is more common to see the code written as "pseudocode" instead.
Part A: For the Dolendar Software system that you did your Homework 1(&2) on, create one persona. You can make this brief. Part B: For the Dolendar Software system that you did your Homework 1(&2) on, create one more different persona that gives a different variety to the way that the software would be used by the persona you created in Part A. Again, this persona should be brief.
Part A: A casual user: A stay-at-home mom named Kim uses her phone to message other people and record what she needs to do for the day, but she doesn't use the phone to the full advantage. Her phone is almost always with her, although she forgets where she puts it from time to time. She is largely unfamiliar with the shortcuts her phone provides her and requires assistance when it comes to the more difficult tasks such as navigating through settings. Kim wants a to-do list app that is easy to use and navigate so that she can organize her day easier. Part B: A more experienced user: A corporate job worker named Boyd also uses his phone to message and communicate with other people, but he is very familiar with all the functions of his phone in order to get the most out of it. He utilizes the app's notification system and its shortcuts in order to make his busy life easier. Boyd wants a to-do list app that can be tailored to his needs, such as an app that has a wide array of functions, an app that will send notifications on time and an app that will be versatile and compatible across multiple devices.
Of the three essential ingredients of software engineering, which is the most important?
People
Which one of the following statements is true about software architecture?
Software architecture is a valuable tool in understanding, reasoning, and communicating about a software system.
In Brooks' "No Silver Bullet," he names "conformity" as one part of the "irreducible essence of modern software systems." Explain the consequences of software being conforming, and include an example.
Software must conform to the rest of the world because it requires them to be able to adapt. One example of this would be how software is constantly changing to the needs of the users
Which of the following is an example of unit testing?
Testing the functions of a single class
Architectural erosion happens when:
The "as-designed" architecture and the "as-implemented" architecture do not match
generality
The idea of generality allows for the engineer to design software that is free from program specific limitations and it also allows for the program to last further than its life expectancy. For instance, in the 1900s, the operating systems that used a 4 digit system for the date rather than a 2 digit system were able to flow from the 1900s to the 2000s with ease.
Failure
The output of a program reveals an incorrect value
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 software development situation is the most common in the U.S.?
The software development group in a company writes software for another department in the same company
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
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 control and freedom (According to the Nielsen heuristics for assessing usability, match the heuristic on the left to their best examples on the right.)
Undo button
In user-centered design, heuristic evaluation is:
Using principles based on research to assess the usability of a system
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.
For this question, consider the client-server architectural style and the peer-to-peer architectural style. a) Give an example of a system for which it would make more sense to use client-server over peer-to-peer, and explain why client-server is a better choice in this situation. b) Give an example of a system for which it would make more sense to use peer-to-peer over client-server, and explain why peer-to-peer is a better choice in this situation.
a) If there is an online multiplayer game, it would be better to use client-server over peer-to-peer because it allows for one central "truth" that belongs to the server rather than each player holding a "truth" of their own. For instance, the server can hold information on how much gold each player has, rather than each player holding information on how much gold each other player has. It allows for less data storage on the player itself, and more centralized data at the server. b) Online video calls are a better choice of peer-to-peer rather than client-server because the server does not need to hold a recording of the client's video. Online video calls work more efficient when the video is sent directly to the other client rather than to a server and then the client. For example, a video call on skype might use peer-to-peer to send video and voice from one client to another instead of sending it to a server that stores the information and then sends the stored information to the other client.
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
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?
fileSize logIn Correct! addToCart description price