Software Engineering Final

Lakukan tugas rumah & ujian kamu dengan baik sekarang menggunakan Quizwiz!

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

Software Qualities

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 - Observing the customer - Researching other past solutions - Prototyping solutions and getting feedback from the customer - Interviewing the customer - Gathering and utilizing data analytics

Software quality assurance techniques, such as testing

In user-centered design, heuristic evaluation is:

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

For this code block: For the input (1, 2, 3), which statements are executed/covered? Select all that apply. - 3 - 8 - 1 - 6 - 5 - 2 - 7 - 4

- 8 - 1 - 6 - 2

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 "a" of type "A" - Class "B" has a field "aList", which is a collection of objects of type "A" - Class "A" has a field "bList", which is a collection of objects of type "B" - 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"

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.

Anticipation of change means being aware that software is constantly changing and people always expect the latest technology. For example, Apple releases new iPhones, and people wait for and buy the latest model.

User acceptance testing is an example of: - Validation - Verification

Validation

Coupling is...

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

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

What matters most from this software engineering perspective: Business

Money

Which one of the following statements is not true about testing? - 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. - 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 prove that the system has no bugs.

Architectural erosion happens when:

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

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

Incrementality means slowly adding features as time goes on. For example, releasing a software and then adding new features and bug fixes through updates. Because you can't wait for a software to be perfect to release it, otherwise we'll never release it.

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

The actual output of the software implementation that you are testing

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

Verification

The build-and-fix process model is: - A good choice for software involving many developers and other stakeholders - A good choice for large software - Very rigorous - Also often referred to ask simple "hacking"

Also often referred to ask simple "hacking"

What is relational database design?

Designing tables where data is stored and relationships between them

Which one of the following statements most naturally follows from Ziv's Law? - 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. - Despite our best efforts, we must always assume that requirements will change and understanding will grow, resulting in changes to the requirements document. - 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 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: - 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) - Identify the set of all possible inputs (to what is being tested), aka "domain" - Use this basis to divide the set of all possible inputs into classes/subdomains - Gather user feedback for validation - Identify a basis for subdividing the set of inputs

Gather user feedback for validation

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

Generality means making solutions usable in different ways, which means, making code that can be used for many things as opposed to one problem. For example making code that not only applies to one software but can be used for many different softwares.

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

If the bug is in an if statement and never gets executed

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

Improving the design of existing code without changing its functionality

Which of the following statement is NOT correct? - In a requirement document, executive summary shouldn't be too long and should be concise and to-the-point. - 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 use-case diagram, the stick figures are drawn to always represent humans that interact with the system.

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 for a company who contracts out their services to build software for other companies - Writing software whose source code is released for free on the Internet with a team of geographically distributed individuals, on an unpaid, volunteer basis - Developing the next great virus that will steal millions of peoples' personal information - These are all equally likely - Working in the IT department of a company, writing software for "customers" who are also part of that same company

Working in the IT department of a company, writing software for "customers" who are also part of that same company

Test-driven development includes which of the following steps - Using rigor and formality when developing software - 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 - Coding with another person

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. - We should not expect to get orders of magnitude improvement in software engineering just by building new languages and tools - It is vital to invest in growing great software designers. - It is impossible to accurately capture a customer's needs without prototyping. - It is best to build software in small, iterative chunks.

You should always build functionality yourself from scratch rather than reuse existing software that provides the functionality you need.

For this problem, consider the publish-subscribe architectural style. a) Describe the job of each component in a publish-subscribe architecture b) Describe a real-world system designed in the publish-subscribe style style (notthe stock-market-ticker example that was used in class), and describe the job of each component and connector in this system specifically.

a) the first level of components is publishers that are producing content then the connector sorts what information goes where and then gives information to the subscribers accordingly. b) YouTube is an example of the publish-subscribe style. The content creators or "YouTubers" are that first level of components. The information then gets sorted through the subscription manager and gives the content to their subscribers accordingly.

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 - fileSize - description - logIn

addToCart

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

based on the specifications of a system

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

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.) - a process that responds well to requirements changes - nonlinear and idealized - linear and realistic - linear and idealized - 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? - fileSize - writeReview - name - logOut - price

name

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

UI/system tests

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

UML class diagram

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.

A) The Smiths: a young newly married couple with their first apartment. They got some decorations as wedding gifts but they really want to make their space their own. B) Carrie is a busy working mom that is looking for a new dining room table. She knows what color, kind, and budget she wants but has no time to browse through stores to find one.

Which one of the following software process models involves the customer the most throughout the process? - Rational Unified Process (RUP) - Spiral - Extreme Programming - Waterfall - Incremental

Extreme Programming

What requirements analysis techniques does Netflix use the most?

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

According the IEEE definitions what is an example of an Error

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

In software architecture what is the definition of a component

Elements that comprise functionality and/or computation

In software architecture what is the definition of a connector

Elements that handle interaction between the different parts of the architecture

What matters most from this software engineering perspective: Engineering

Internal quality of the software

Cohesion is...

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

According the IEEE definitions what is an example of a Mistake

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

In software architecture what is the definition of a configuration

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

What matters most from this software engineering perspective: User

"Everything the user sees"

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 - 101 - 1 - 100 - Integer.MIN_VALUE - 0 - -∞ - ∞

- 1 - 100

What is the purpose of a UML class diagram?

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

Give an example for each Nielson heuristic for assessing usability: Recognition rather than recall User control and freedom Error prevention Consistency and standards Accelerators Visibility of system status

- Auto-complete - "Undo" button - Disabling a button that, when clicked, would lead to an error condition - A magnifying glass icon on a search button - Keyboard shortcuts - Progress bar during a file download

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.

- It abstracts away the actual code of the software - It also abstracts dependencies

Which one of the following is true of white-box testing? - Testing is considered complete when the error find rate stabilizes to near 0. - An oracle is used to choose which test cases to run. - Test cases are chosen based on the specifications of the software. - A graph model of the source code is used to inform what test cases should be written.

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

According the IEEE definitions what is an example of a Fault/Bug

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

In user-centered design, a persona is:

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

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

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) Portability A2) You want to be able to use Tiktok on multiple hardwares and devices while Tesla only needs to work one their cars. B1) Reliability B2) You need the autopilot to be reliable because people's lives are at risk. Where as if TikTok doesn't work or if there's an issue no one will get hurt.

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

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

Application Context

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

Coding with another person

Which of the following statement is NOT CORRECT? - Software Architecture consists of components and connectors, which can be arranged into configuration - 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.

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

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

None of these

Recall the CNBC article about software used in health care. What requirements analysis technique was it most focused on?

Observing the customer

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

People

Which of the following software process models requires a "process expert?" - Build-and-fix - Rational Unified Process (RUP) - Waterfall - Rapid Prototyping

Rational Unified Process (RUP)

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.

Rigor and formality are like the coding standard. You do not technically have to use it, but it ensures everyone's on the same page. For example, commenting on code so you know what's going on.

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

Testing the functions of a single class

A descriptive architecture is necessarily... - A disciplined set of dependencies among components that adheres to the envisioned architecture - The result of architectural erosion - 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

The architecture that can be can always be inferred from the implementation

According the IEEE definitions what is an example of a Failure

The output of the 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 one of the following statements about requirements is false? - What the customer wants is sometimes not the same as what the customer needs. - The requirements phase is the mostly costly phase in the software life cycle, in terms of dollars spent. - If you get the requirements right, it will help avoid many costly fixes later on in the software life cycle. - Requirements issues are at the root of many software failures. - 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.

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

Requirements should define:

The what, not the how

Which of the following is not true about an architect? - Usually is a key decision maker on the direction of how to make difficult implementation choices - Usually has broad training (in the domain and in software development) - Often leads the technical development team - No answer text provided. - Often serves as an interface between key business stakeholder and the technical team - Usually is an entry-level position

Usually is an entry-level position

What is the main activity done in the third iteration in a spiral process? - Whatever activity addresses the biggest current risk - Implementation - Testing - Design - Requirements

Whatever activity addresses the biggest current risk

Which of the following is NOT a way to know when to stop testing? -Meet the quality requirements established for the project; perform all planned quality assurance activities - 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

When all bugs have been found and fixed

Which one of the following statements is true about software architecture? - When software evolves, architecture is a valuable tool in facilitating that evolution. - Software architecture dictates the process a team uses to develop use cases for a system. - Software architecture defines the detailed, low-level structure of an implementation. - All of these statements are true. - Software architecture consists of all the design decisions about a software system.

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


Set pelajaran terkait

PrepU: Ch. 19 - Care of the Adolescent

View Set

Business Statistics - Chapter 7: Sampling and Sampling Distributions Quiz

View Set

Chapter 11 Exception and Advance File I/O (Review)

View Set

MAP review questions nervous tissue

View Set

Verbal Section - GMAT; Manhattan Prep

View Set

10年文法不白學48-was和were的否定句

View Set

PA/AP axial projection: ulnar deviation, scaphoid series, rafert-long method

View Set

Chapter 20: Consumer Choice and Elasticity

View Set