43

Pataasin ang iyong marka sa homework at exams ngayon gamit ang Quizwiz!

Which one of the following is true of white-box testing? Testing is considered complete when the error find rate stabilizes to near 0. 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. 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 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

What is relational database design? 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 Decomposing UML objects and classes into functions Designing a sequence of user interactions in their environmental context Decomposing the user interface into the detailed layout

Designing tables where data is stored and relationships between them

According to the IEEE Spectrum software failure reading, what is another name for "Hubble Psychology?" Under optimism disease Over optimism disease Over rigorous disease Under rigorous disease Extreme bias disease

Over optimism disease

Of the three essential ingredients of software engineering, which one can make up for shortcomings in the other two? Tools Processes These are all equally important Incrementality People

People

Which of the following is an example of unit testing? Analysis of program properties using a static analyzer Testing a feature of the system from the perspective of a user Testing the functions of a single class Testing the interaction between two classes Testing the usability of an interface based on a heuristic checklist

Testing the functions of a single class

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. When software evolves, architecture is a valuable tool in facilitating that evolution. Software architecture defines the detailed, low-level structure of an implementation. All of these statements are true.

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

User acceptance testing is an example of: Validation Verification

Validation

Consider if we have a function that takes an integer input. 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 x, which of the following are boundary values for Partition B. Choose all that apply for this specific partition. Integer.MAX_VALUE 100 1 ∞ -∞ 101 0 Integer.MIN_VALUE

100 1

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.

1268

When testing, when do we achieve 100% confidence that the program contains no bugs? When we exhaust our testing budget When all planned test activities have been performed Never When we achieve white-box coverage When all specifications have been tested When the "sweet spot" has been reached for amount of testing and confidence in correctness

Never

Equivalence Class Partition Testing includes all of the following steps, EXCEPT: From each subdomain, select [a] representative(s) to be [a] test case input(s) Gather user feedback for validation 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 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

For this UML class diagram, which of the following would you expect to see its corresponding code? Mark all that apply. * (A) ————- 1 (B) Class "B" has a field "a" of type "A" Class "A" has a field "bList", which is a collection of objects of type "B" Class "B" has a field "aList", which is a collection of objects of type "A" Class "A" has a field "b" of type "B"

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

Requirements analysis could be performed in a number of ways. Which of the following is NOT a requirements analysis technique? Interviewing the customer Software quality assurance techniques, such as testing Researching other past solutions Gathering and utilizing data analytics Prototyping solutions and getting feedback from the customer Observing the customer

Software quality assurance techniques, such as testing

Architectural erosion happens when: The "as-designed" architecture and the "as-implemented" architecture do not match A client-server style is used when a peer-to-peer style would have been more effective A system evolves and its descriptive architecture is not updated The prescriptive architecture is modified before the descriptive architecture is modified Faulty components are used in the architecture

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

Which of the following is NOT an example of a test oracle: The actual output of the software implementation that you are testing Human intuition, knowledge, judgment, or experience An older, legacy program that computed the same function A calculator, or separate computing device

The actual output of the software implementation that you are testing

Of which kinds of tests should there be the fewest in the collection of tests for a system? UI/system tests Unit tests There should be an equal amount of each kind of test Integration/service tests

UI/system tests

Which of the following is not true about an architect? No answer text provided. Usually is an entry-level position 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 has broad training (in the domain and in software development) Often leads the technical development team

Usually is an entry-level position

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

Verification

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 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

When all bugs have been found and fixed

Briefly describe the software-engineering principle of "incrementality" and give an example of a software-engineering task or concept that demonstrates this principle.

Your Answer: Programs should be designed and grown top-down. Incrementality allows for easy backtracking and early prototypes with new functions and provisions for more, it goes from easy code to harder code. For example, a shopping website is built from the home page, and then constantly adds and modifies the product information, searching page, trading page, user page, and so on, from basic to complex.

Briefly describe the software-engineering principle of "anticipation of change" and give an example of a software-engineering task or concept that demonstrates this principle.

Your Answer: The software will always inevitably get changed since people attempt to apply the product in new cases, or beyond the original domain. For example, the software need to be changed as it survives beyond the life of the hardware it was meant for, people have new demand.

For this problem, consider the model-view-controller architectural style. a) Describe the job of each component in a model-view controller architecture. b) Describe a real-world system that could be designed in the model-view-controller style (not the ATM example that was used in class), and describe the job of each component in this system specifically.

Your Answer: a) Model: Handles information and data. View: It presents the information to the user. Controller: It controls the data flow into a model object (tells model) and updates the view whenever data changes.

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? price addToCart description logIn fileSize

addToCart

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? fileSize price writeReview name logOut

name

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.

software design

A function call presents a simple interface and hides the logic that will be performed. This is an example of... Prototyping Abstraction Rigor and formality Incrementality Divide-and-conquer

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." Assumptions/Risks Priorities/Implementation Phases Future Changes Software Qualities Application Context

Application Context

Which one of the following requirements analysis techniques does Netflix use the most? Data analysis and business metrics Interviewing the customer Creating use cases Netflix uses all of these techniques equally Physically observing the customer

Data analysis and business metrics

Which one of the following statements most naturally follows from Ziv's Law? Despite our best efforts, we must always assume that requirements will change and understanding will grow, resulting in changes to the requirements document. Requirements documents are not amenable for specifying user interfaces, data formats, business rules, and non-functional requirements. Modern requirements analysis techniques help us create requirements documents that are high quality and rarely need to change after they are written. A requirements document is the best way to represent requirements because its format makes it easy to understand for non-technical audiences. Functional requirements should be written at a level of abstraction that is relevant to the user, and that shows what kind of data is being passed between user and system.

Despite our best efforts, we must always assume that requirements will change and understanding will grow, resulting in changes to the requirements document.

In the Layered architectural style: None of these Any component can communicate with any other component in the architecture. Components are organized around one centralized server. The upper layers are the most reusable

None of these

Consider the three perspectives on software engineering discussed in lecture. Match each perspective with what matters most from that perspective. Engineering Business User Internal quality of the software Money "Everything that the user sees"

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

According the IEEE definitions, match the terms on the left with the examples on the right. Mistake Fault/Bug Error Failure A developer forgot that negative numbers need to be handled from the input A line of code that should have contained ">=" actually contains ">" During execution of the program, a variable's value is incorrect The output of the program reveals an incorrect value

Mistake A developer forgot that negative numbers need to be handled from the input Fault/Bug A 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 an incorrect value

Which one of the following statements is not true about testing? Test cases should be chosen systematically, to cover a wide range of possible inputs One goal of testing is to find 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.

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

According to the Nielsen heuristics for assessing usability, match the heuristic on the left to their best examples on the right. Recognition rather than recall User control and freedom Error prevention Consistency and standards Accelerators Visibility of system status Auto- Complete "Undo" bottom Disabling a button that, when clicked, would lead to an error condition A magnifying glass icon on a search button Keyboard shortcuts Process bar during a file download

Recognition rather than recall Auto- Complete User control and freedom "Undo" bottom Error prevention Disabling a button that, when clicked, would lead to an error condition Consistency and standards A magnifying glass icon on a search button Accelerators Keyboard shortcuts Visibility of system status Process bar during a file download

In a specification, which section would you describe that that software should be built to be secure and beautiful? Future Changes Functional Requirements Application Context Assumptions/Risks Software Qualities

Software Qualities

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 drawing use case diagrams The process of coming to know and understand what the software product should be The requirements document The process of documenting what the software product should be

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

Requirements should define: The how, not the what The what and how The what, not the how Neither what nor how

The what, not the how

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 impossible to accurately capture a customer's needs without prototyping. You should always build functionality yourself from scratch rather than reuse existing software that provides the functionality you need. We should not expect to get orders of magnitude improvement in software engineering just by building new languages and tools It is best to build software in small, iterative chunks. 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.

In white-box testing, branch coverage ensures that: all possible inputs are tested every loop boundary is tested every possible path is taken all possible exceptions are thrown every True/False edge is taken

every True/False edge is taken

In white-box testing, statement coverage ensures that: all possible inputs are tested every possible path is taken every source-code instruction is executed every branch is taken all possible exceptions are thrown

every source-code instruction is executed

In user-centered design, a persona is: 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 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 profile of a fictional potential user that helps you make user-centered decisions during development

In user-centered design, a storyboard is: A profile of a fictional potential user that helps you make user-centered decisions during development Using principles based on research to assess the usability of a system 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 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 profile of a fictional potential user that helps you make user-centered decisions during development Using principles based on research to assess the usability of a system 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 set of common UI components, patterns, and styles to promote reuse and provide a consistent user experience

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 rarely offers benefits to the resulting system. The client-server style is applicable to any given problem/context. Using a software architectural style broadens the architectural design decisions we can make. 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.

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

In software architecture, map the definitions on the left to the terminology on the right. Correct! elements that handle interaction between the different parts of the architecture Correct! elements that comprise functionality and/or computation Correct! all elements of the architecture laid out in a specific way that describes the overall architecture (or architectural style)

Connector elements that handle interaction between the different parts of the architecture Component elements that comprise functionality and/or computation Configuration all elements of the architecture laid out in a specific way that describes the overall architecture (or architectural style)

What is functional decomposition? Decomposing UML objects and classes into functions Decomposing the user interface into the detailed layout Decomposing a task, function, module, or system into smaller sub-tasks, sub-functions, or sub-modules Decomposing tables where data is stored into their associated attributes Decomposing a software architecture into components and connectors

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

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 Application Context Future Changes Software Qualities Assumptions/Risks

Functional Requirements

Which of the following statement is NOT correct? Use cases are bad for describing the quality of software. 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. 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 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 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 undesirable for a good design

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

Cohesion is 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 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

Many tight dependencies or associations within a component, and high levels of this is desirable for a good design

Which of the following statement is NOT CORRECT? Not all design decisions should be considered as part of software architecture. Mixing different styles in software architecture is inappropriate. Architects should always stick to one single architectural style. 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

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 errors generally cause only minor problems in the resulting system. These problems are simple and cheap to fix. Requirements describe how the software should work, without saying what it should do. The requirements phase is the mostly costly phase in the software life cycle, in terms of dollars spent. Requirements analysis/engineering should only be done once the architecture of the system has been designed. Requirements issues are at the root of many software failures.

Requirements issues are at the root of many software failures.

A prescriptive architecture is... The result of architectural erosion The architecture that can be can always be inferred from the implementation 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 the architect decides for the project to guide how the software will be designed and implemented

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 process of documenting the requirements of the software product to be built The requirements document

Which software development situation is the most common in the U.S.? 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 All of these are equally common in the US Software is developed mostly by geographically distributed volunteers, and the code is made available for free (open source)

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? 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. The web's page should provide some space for online advertising so that the advertising place could be sold to other commercial companies. 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.

What is the purpose of a UML class diagram? To depict sequences of user interaction for soliciting feedback in early design 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 show what the user interface will look like

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

A detailed, object-oriented design is usually depicted as a(n): UML class diagram Entity-relationship diagram Architecture diagram UML use case diagram Storyboard

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

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.

Your Answer: "abstracted away" in a UML class diagram: 1) Implementation details: the algorithms or data structures used are hidden; 2) Platform-specific details: does not show details about how the system is deployed or how it interacts with external systems or services.

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.

Your Answer: A1. interesting, efficiency A2. Tiktok uses this quality to attach customers, more users come in B1. security B2. Let customers trust the autopilot

Briefly describe the software-engineering principle of "generality" and give an example of a software-engineering task or concept that demonstrates this principle.

Your Answer: It's important that software is free from unnatural restrictions and limitations, for example, people are able to use the software on multiple phones.

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

Your Answer: One situation would be a spelling mistake in a user interface. For example, there is an app with a button "Cencel" instead of "Cancel", which is a spelling mistake that might confuse the users, but it does not affect the functionality of the app itself, the user can still click the "Cencel" and the app will cancel the user's action as intended. Therefore, the spelling mistake is a bug that is present in the code, but it does not cause a failure.

Part A: For the Homes.Design Software system that you did your Homework 1 on, create one persona. You can make this brief. Part B: For the Homes.Design Software system that you did your Homework 1 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.

Your Answer: Part A: Name: John Lee Age: 27 Gender: Male Family Status: Married with one young child Occupation: Marketing Manager Degree: Bachelor's degree in Economics Business Goal: To design his living room in a way that is kid-friendly, functional, modern stylish To stay within his budget while still achieving the desired look and feel To easily visualize different design options and experiment with different layouts and color schemes Tasks: Create a floor plan for her living room. Experiment with different furniture layouts and arrangements Choose color schemes and fabrics for furniture, curtains, and cushions. Browse and select furniture and items that fit within her budget. Preview and adjust 2D as well as 3D renderings of her designs to get a sense of how they will look in real life. Create a shopping list of furniture and items needed to implement her designs. Part B Name: Alex Chen Occupation: Freelance graphic designer Degree: Bachelor's degree in Graphic Design Goals: Redesign his home office space to be more comfortable and conducive to creative work. Create a more visually appealing and modern space that he can showcase to clients during video calls. Technical skills: Experienced in using various design software programs, such as Adobe Creative Suite and Sketch. Tasks: Measure and assess the dimensions and layout of the office space. Brainstorm and research ideas for improving the office design, such as adding more storage or changing the color scheme. Create a 3D model of the office and experiment with different furniture layouts and decor options. Browse and select furniture and decor items that fit within his budget. Export and share 3D renderings of the new office design with clients or colleagues. Purchase and assemble the new furniture and items

Which of the following is a true statement: "Black box testing is..." based on the source code based on the specifications of a system is also known as "structural testing" capable of proving there are no bugs

based on the specifications of a system


Kaugnay na mga set ng pag-aaral

ch 3 genetic & genomic influences

View Set

Interpersonal Communication Chapter 4-copied version

View Set

Juttu luistaa a st 14 Puhelimessa s. 68

View Set

Radiographic procedures: essential projections of forearm, elbow and humerus

View Set