informatics 43
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? -Future Changes -Assumptions/Risks -Functional Requirements -Software Qualities -Application Context
Functional Requirements
Which of the following software process models requires a "process expert?" -Waterfall -Build-and-fix -Rational Unified Process (RUP) -Rapid Prototyping
RUP
Which of the following is NOT a way to know when to stop testing? -Reveal as many faults as possible in a fixed period of time with a fixed budget -When all bugs have been found and fixed -When the rate of finding new faults stabilizes to near zero -Meet the quality requirements established for the project; perform all planned quality assurance activities
When all bugs have been found and fixed
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. -Test cases are chosen based on the specifications of the software. -Testing is considered complete when the error find rate stabilizes to near 0. -An oracle is used to choose which test cases to run.
A graph model of the source code is used to inform what test cases should be written.
In user-centered design, a scenario is: -A profile of a fictional potential user that helps you make user-centered decisions during development -A story-like textual description of a system's usage -A set of common UI components, patterns, and styles to promote reuse and provide a consistent user experience -Using principles based on research to assess the usability of a system -A series of pictures shown in sequence to visualize the user experience and interaction
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. -Assume that the requirements document is set in stone. -Use cases should describe what kind of data is being passed between user and system. -Use cases are the most understandable way to represent requirements. -Use cases map well to design and implementation constructs.
Assume that the requirements document will have to change at some point.
Equivalence Class Partition Testing includes all of the following steps, EXCEPT: -Test for each subdomain, including representative values or possibly boundary values -Use this basis to divide the set of all possible inputs into classes/subdomains -From each subdomain, select [a] representative(s) to be [a] test case input(s) -Gather user feedback for validation -Identify a basis for subdividing the set of inputs -Identify the set of all possible inputs (to what is being tested), aka "domain"
Gather user feedback for validation
What is relational database design? -Decomposing the user interface into the detailed layout -Decomposing UML objects and classes into functions -Designing a sequence of user interactions in their environmental context -Designing tables where data is stored and relationships between them -Decomposing a task, function, module, or system into smaller sub-tasks, sub-functions, or sub-modules
Designing tables where data is stored and relationships between them
Recall the CNBC article about software used in health care. Which one of the following requirements analysis techniques was it most focused on? -Analyzing usage data -Interviewing the customer -Building prototypes -Creating use cases -Observing the customer
Observing the customer
Which one of the following statements is not true about testing? -One goal of testing is to find bugs. -Test cases should be chosen systematically, to cover a wide range of possible inputs -One goal of testing is to prove that the system has no bugs. -One goal of testing is to improve confidence that the system works correctly.
One goal of testing is to prove that the system has no bugs.
A prescriptive architecture is... -The result of architectural erosion -Often an undisciplined mess of tangled dependencies -The architecture that the architect decides for the project to guide how the software will be designed and implemented -The architecture that can be can always be inferred from the implementation
The architecture that the architect decides for the project to guide how the software will be designed and implemented
What is the main activity done in the third iteration in a spiral process? -Whatever activity addresses the biggest current risk -Testing -Implementation -Design -Requirements
Whatever activity addresses the biggest current risk
In white-box testing, statement coverage ensures that: -every branch is taken -every source-code instruction is executed -every possible path is taken -all possible exceptions are thrown -all possible inputs are tested
every source-code instruction is executed
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 realistic -nonlinear and idealized -linear and idealized -a process that responds well to requirements changes -nonlinear and realistic
linear and idealized
Imagine you are creating a UML class diagram of an e-commerce system, such as amazon. Which of the following is most likely to be an attribute of a Customer class? -writeReview -price -fileSize -name -logOut
name
Of the three essential ingredients of software engineering, which is the most important? -Tools -Modularity -Processes -People -These are all equally important
people
In software engineering, to what does the term "refactoring" refer? -Adding new features to existing code -Adapting existing code to a new environment -Improving the design of existing code without changing its functionality -Testing and fixing bugs in existing code -Fixing bugs in existing code
Improving the design of existing code without changing its functionality
Which of the following statement is NOT correct? -The majority of software developers are employed to produce software for their own company's use. -In a use-case diagram, the stick figures are drawn to always represent humans that interact with the system. -Use cases are bad for describing the quality of software. -In a requirement document, executive summary shouldn't be too long and should be concise and to-the-point.
In a use-case diagram, the stick figures are drawn to always represent humans that interact with the system
Coupling is -Many tight dependencies or associations within a component, and high levels of this is undesirable for a good design -Many tight dependencies or associations across multiple components, and high levels of this is desirable for a good design -Many tight dependencies or associations across multiple components, and high levels of this is undesirable for a good design -Many tight dependencies or associations within a component, and high levels of this is desirable for a good design
Many tight dependencies or associations across multiple components, and high levels of this is undesirable for a good design
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. -Not all design decisions should be considered as part of software architecture. -Software Architecture consists of components and connectors, which can be arranged into configuration -Architectural erosion happens when the software is not grown as it was prescribed.
Mixing different styles in software architecture is inappropriate. Architects should always stick to one single architectural style.
Which of the following is an example of unit testing? -Testing the functions of a single class -Testing a feature of the system from the perspective of a user -Testing the interaction between two classes -Testing the usability of an interface based on a heuristic checklist -Analysis of program properties using a static analyzer
Testing the functions of a single class
Which one of the following statements about requirements is false? -What the customer wants is sometimes not the same as what the customer needs. -Requirements issues are at the root of many software failures. -If you get the requirements right, it will help avoid many costly fixes later on in the software life cycle. -The requirements phase is the mostly costly phase in the software life cycle, in terms of dollars spent. -Requirements describe what the software should do, without saying how it should do it.
The requirements phase is the mostly costly phase in the software life cycle, in terms of dollars spent.
Based on his "No Silver Bullet" essay, which one of the following pieces of advice would Fred Brooks be least likely to give? -It is vital to invest in growing great software designers. -You should always build functionality yourself from scratch rather than reuse existing software that provides the functionality you need. -It is impossible to accurately capture a customer's needs without prototyping. -It is best to build software in small, iterative chunks. -We should not expect to get orders of magnitude improvement in software engineering just by building new languages and tools
You should always build functionality yourself from scratch rather than reuse existing software that provides the functionality you need.
Architectural erosion happens when: -A system evolves and its descriptive architecture is not updated -The prescriptive architecture is modified before the descriptive architecture is modified -A client-server style is used when a peer-to-peer style would have been more effective -Faulty components are used in the architecture -The "as-designed" architecture and the "as-implemented" architecture do not match
the "as-designed" architecture and the "as-implemented" architecture do not match
In user-centered design, a persona is: -A series of pictures shown in sequence to visualize the user experience and interaction -Using principles based on research to assess the usability of a system -A story-like textual description of a system's usage -A profile of a fictional potential user that helps you make user-centered decisions during development -A set of common UI components, patterns, and styles to promote reuse and provide a consistent user experience
A profile of a fictional potential user that helps you make user-centered decisions during development
In user-centered design, a storyboard is: Using principles based on research to assess the usability of a system -A profile of a fictional potential user that helps you make user-centered decisions during development -A set of common UI components, patterns, and styles to promote reuse and provide a consistent user experience -A story-like textual description of a system's usage -A series of pictures shown in sequence to visualize the user experience and interaction
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 -A series of pictures shown in sequence to visualize the user experience and interaction -A profile of a fictional potential user that helps you make user-centered decisions during development -A story-like textual description of a system's usage -Using principles based on research to assess the usability of a system
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? -The client-server style is applicable to any given problem/context. -Using a software architectural style usually makes it harder to evolve the resulting system -A software architectural style provides us with a named set of components, connectors, and configurations. -Using a software architectural style broadens the architectural design decisions we can make. -A software architectural style rarely offers benefits to the resulting system.
A software architectural style provides us with a named set of components, connectors, and configurations.
The build-and-fix process model is: -A good choice for large software -A good choice for software involving many developers and other stakeholders -Very rigorous -Also often referred to ask simple "hacking"
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." -Future Changes -Assumptions/Risks -Priorities/Implementation Phases -Application Context -Software Qualities
Application Context
Pair programming includes which of the following steps -Coding with another person -Writing a test case before writing the -functionality to allow it to pass -Writing a test case to verify correctness immediately after each feature is implemented -Using rigor and formality when developing software
Coding with another person
Which one of the following requirements analysis techniques does Netflix use the most? -Creating use cases -Physically observing the customer -Interviewing the customer -Data analysis and business metrics -Netflix uses all of these techniques equally
Data analysis and business metrics
What is functional decomposition? -Decomposing a software architecture into components and connectors -Decomposing UML objects and classes into functions -Decomposing a task, function, module, or system into smaller sub-tasks, sub-functions, or sub-modules -Decomposing the user interface into the detailed layout -Decomposing tables where data is stored into their associated attributes
Decomposing a task, function, module, or system into smaller sub-tasks, sub-functions, or sub-modules
Consider the three perspectives on software engineering discussed in lecture. -Enginnering -Business -User Match each perspective with what matters most from that perspective. -"Everything that the user sees." -Money -Internal quality of the software
Engineering -Internal quality of the software Business - Money User - "Everything the user sees."
Which one of the following software process models involves the customer the most throughout the process? -Rational Unified Process (RUP) -Incremental Waterfall -Extreme Programming -Spiral
Extreme Programming
Cohesion is -Many tight dependencies or associations within a component, and high levels of this is undesirable for a good design -Many tight dependencies or associations across multiple components, and high levels of this is undesirable for a good design -Many tight dependencies or associations across multiple components, and high levels of this is desirable for a good design -Many tight dependencies or associations within a component, and high levels of this is desirable for a good design
Many tight dependencies or associations within a component, and high levels of this is desirable for a good design
According the IEEE definitions, match the terms with the examples. Terms: -Mistake -Fault/Bug -Error -Failure Examples: -line of code that should have contained >= actually contains > -The output of the program reveals and incorrect value -during execution of the program, a variable's value is incorrect -A developer forgot that negative numbers need to be handled from the input
Mistake -A developer forgot that negative numbers need to be handled from the input Fault/Bug -line of code that should have contained >= actually contains > Error -during execution of the program, a variable's value is incorrect Failure -The output of the program reveals and incorrect value
When testing, when do we achieve 100% confidence that the program contains no bugs? -Never -When we achieve white-box coverage -When we exhaust our testing budget -When the "sweet spot" has been reached for amount of testing and confidence in correctness -When all specifications have been tested -When all planned test activities have been performed
Never
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. -None of these
None of these
According to the Nielsen heuristics for assessing usability: -Recognition rather than recall -User control and freedom -Error prevention -Consistency and standards -Accelerators -Visibility of system status match the heuristic: -progress bar during file download -Auto-Complete -a magnifying glass icon on a search button -keyboard shortcut -Undo button -disabling a button that when clicked leads to an error condition
Recognition rather than recall- auto complete User control and freedom - undo button Error prevention - disabling a button that when clicked leads to an error condition Consistency and standards - a magnifying glass icon on a search button Accelerators - keyboard shortcut Visibility of system status - progress bar during file download
In a specification, which section would you describe that that software should be built to be secure and beautiful? -Functional Requirements -Assumptions/Risks -Future Changes -Application Context -Software Qualities
Software Qualities
Which one of the following statements is true about software architecture? -Software architecture consists of all the design decisions about a software system. -Software architecture dictates the process a team uses to develop use cases for a system. -Software architecture is a valuable tool in understanding, reasoning, and communicating about a software system. -Software architecture defines the detailed, low-level structure of an implementation. -Software architecture has no value in facilitating the evolution of a software system.
Software architecture is a valuable tool in understanding, reasoning, and communicating about a software system
Requirements analysis could be performed in a number of ways. Which of the following is NOT a requirements analysis technique? -Researching other past solutions -Prototyping solutions and getting feedback from the customer -Gathering and utilizing data analytics -Interviewing the customer -Observing the customer -Software quality assurance techniques, such as testing
Software quality assurance techniques, such as testing
Which of the following is NOT an example of a test oracle: -Human intuition, knowledge, judgment, or experience -The actual output of the software implementation that you are testing -A calculator, or separate computing device -An older, legacy program that computed the same function
The actual output of the software implementation that you are testing
Requirements should define: -The what and how -The what, not the how -Neither what nor how -The how, not the what
The what, not the how
The "requirements" phase of the software lifecycle can be broken down into two sub-phases: "analysis" and "specification". -The process of drawing use case diagrams -The process of documenting what the software product should be -The process of coming to know and understand what the software product should be -The requirements document
The process of coming to know and understand what the software product should be
The term "requirements specification" is used to refer to which of the following? -The process of documenting the requirements of the software product to be built -The requirements document -The process of coming to know and understand what the software product should be
The requirements document
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 -Software is developed mostly by geographically distributed volunteers, and the code is made available for free (open source) -All of these are equally common in the US -Viruses, ransomware, and other malware are developed by bad guys in dark rooms wearing black hoodies and ski masks -A software development/consulting company is paid to develop software for a different company
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 should support people with reading disabilities so that they could purchase the tickets smoothly. -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. -The web's page should provide some space for online advertising so that the advertising place could be sold to other commercial companies. -Customers can not only purchase tickets but also join the waiting list if the tickets are temporarily sold out.
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.
What is the purpose of a UML class diagram? -To show what the user interface will look like -To create a detailed, object-oriented design of the code -To show the goals that an actor has with a system -To create a data model to be implemented in a database schema -To depict sequences of user interaction for soliciting feedback in early design
To create a detailed, object-oriented design of the code
Of which kinds of tests should there be the fewest in the collection of tests for a system? -UI/system tests -Integration/service tests -There should be an equal amount of each kind of test -Unit tests
UI/system tests
A detailed, object-oriented design is usually depicted as a(n): -UML class diagram -UML use case diagram -Architecture diagram -Storyboard -Entity-relationship diagram
UML Class diagram
In user-centered design, heuristic evaluation is: -A set of common UI components, patterns, and styles to promote reuse and provide a consistent user experience -A series of pictures shown in sequence to visualize the user experience and interaction -Using principles based on research to assess the usability of a system -A profile of a fictional potential user that helps you make user-centered decisions during development Correct Answer -A story-like textual description of a system's usage
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 -No answer text provided. -Usually has broad training (in the domain and in software development) -Often leads the technical development team -Usually is a key decision maker on the direction of how to make difficult implementation choices -Often serves as an interface between key business stakeholder and the technical team
Usually is an entry-level position
User acceptance testing is an example of: -Validation -Verification
Validation
Test cases, informed by the specifications with an input and an expected output, is an example of: -Validation -Verification
Verification
Test-driven development includes which of the following steps -Coding with another person -Using rigor and formality when developing software -Writing a test case before writing the functionality to allow it to pass -Writing a test case to verify correctness immediately after each feature is implemented
Writing a test case before writing the functionality to allow it to pass
A function call presents a simple interface and hides the logic that will be performed. This is an example of... -Prototyping -Incrementality -Rigor and formality -Divide-and-conquer -Abstraction
abstraction
Imagine you are creating a UML class diagram of an e-commerce system (such as amazon) that sells items. Which of the following is most likely to be an operation of an Item class? -fileSize -addToCart -description -logIn -price
addToCart
Which of the following is a true statement: -"Black box testing is..." -based on the specifications of a system -based on the source code -is also known as "structural testing" -capable of proving there are no bugs
based on the specifications of a system
In software architecture, map the definitions on the left to the terminology on the right. -elements that handle interaction between the different parts of the architecture -elements that comprise functionality and/or computation -all elements of the architecture laid out in a specific way that describes the overall architecture (or architectural style) terminology: -connector -component -configuration -styles -clients
elements that handle interaction between the different parts of the architecture - connector 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
In white-box testing, branch coverage ensures that: -all possible exceptions are thrown -every True/False edge is taken -every possible path is taken -every loop boundary is tested -all possible inputs are tested
every True/False edge is taken