INF 43 FINAL

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

Equivalence Class Partition Testing includes all of the following steps, EXCEPT: - 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 - Test for each subdomain, including representative values or possibly boundary values - Identify the set of all possible inputs (to what is being tested), aka "domain" - Identify a basis for subdividing the set of inputs

Gather user feedback for validation

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

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

Rational Unified Process (RUP)

Which of the following is not true about an architect? - 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 - Usually is an entry-level position - Often serves as an interface between key business stakeholder and the technical team

Usually is an entry-level position

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

based on the specifications of a system

In software architecture, map the definitions on the left to the terminology on the right. elements that comprise functionality and/or computation - connector - component - styles - configuration - clients

component

In software architecture, map the definitions on the left to the terminology on the right. all elements of the architecture laid out in a specific way that describes the overall architecture (or architectural style) - connector - component - styles - configuration - clients

configuration

Which one of the following is true of white-box testing? - 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.

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

According the IEEE definitions, match the terms on the left with the examples on the right. Fault/Bug - 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

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

According to the Nielsen heuristics for assessing usability, match the heuristic on the left to their best examples on the right. Consistency and standards - Auto-complete - "Undo" button - Disabling a button that, when clicked, would lead to an error connection - A magnifying glass icon on a search bar - Keyboard shortcuts - Progress bar during a file download

A magnifying glass icon on a search bar

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.

Designing software to be adaptable to future changes. A software engineering task or concept that demonstrates this principle is systems like Git. Git allows software developers to manage the changes to their code over time. Pushing files to Git maintains a version history and this practice helps the software remain stable.

What is relational database design? - Decomposing a task, function, module, or system into smaller sub-tasks, sub-functions, or sub-modules - 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 - Decomposing UML objects and classes into functions

Designing tables where data is stored and relationships between them

Which one of the following statements is not true about testing? - 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 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.

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

Over optimism disease

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: Persona 1 Name: Bill Background: 30-year-old marketing manager at a tech startup Tech-savvy and works on numerous projects and meetings all at one Wants an efficient calendar app for scheduling and task management Must have a user-friendly interface for syncing across devices and quick access Part B: Persona 2 Name: Bob Background: 45-year-old father and freelance graphic designer Likes tools to be adaptable for managing his changing project schedules Needs cooperative features for personal and project scheduling Has a hard time balancing personal and work life as well as overlapping deadlines

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

People

According to the Nielsen heuristics for assessing usability, match the heuristic on the left to their best examples on the right. Visibility of system status - Auto-complete - "Undo" button - Disabling a button that, when clicked, would lead to an error connection - A magnifying glass icon on a search bar - Keyboard shortcuts - Progress bar during a file download

Progress bar during a file download

Architectural erosion happens when: - 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 prescriptive architecture is modified before the descriptive architecture is modified - A system evolves and its descriptive architecture is not updated

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

In user-centered design, heuristic evaluation 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 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 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

Which of the following is NOT a way to know when to stop testing? - 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 - Reveal as many faults as possible in a fixed period of time with a fixed budget

When all bugs have been found and fixed

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 - a process that responds well to requirements changes - nonlinear and idealized - nonlinear and realistic - linear and idealized

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

name

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, 3, 4, 5, 6, 7, 8

8,2,1,6

According the IEEE definitions, match the terms on the left with the examples on the right. Mistake - 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

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

In user-centered design, a persona is: - A story-like textual description of a system's usage - 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 - 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

Which one of the following is true about software architectural styles? - Using a software architectural style usually makes it harder to evolve the resulting system - Using a software architectural style broadens the architectural design decisions we can make. - The client-server style is applicable to any given problem/context. - A software architectural style provides us with a named set of components, connectors, and configurations. - 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.

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 "A" has a field "b" of type "B" - 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"

According to the Nielsen heuristics for assessing usability, match the heuristic on the left to their best examples on the right. Error prevention - Auto-complete - "Undo" button - Disabling a button that, when clicked, would lead to an error connection - A magnifying glass icon on a search bar - Keyboard shortcuts - Progress bar during a file download

Disabling a button that, when clicked, would lead to an error connection

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? - Testing and fixing bugs in existing code - Fixing bugs in existing code - Adapting existing code to a new environment - Improving the design of existing code without changing its functionality - Adding new features to existing code

Improving the design of existing code without changing its functionality

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 invisible, and include an example.

In Brooks' "No Silver Bullet," he names "conformity" as one part of the "irreducible essence of modern software systems and this concept means that software needs to follow specific standards and rules, which can cause difficulties. For example, any software that is used to manage patient records must comply with strict security and privacy regulations. Because of these regulations, it is crucial to change the software to make sure it follows the task.

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

Internal quality of the software

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. - A glossary should be used when some terminology is non-standard or cannot be used to be known by possible readers. - The majority of software developers are employed to produce software for their own company's use. - It is outside the scope of a requirements engineer to document possible risks to the project.

It is outside the scope of a requirements engineer to document possible risks to the project.

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

Money

Which of the following is an example of unit testing? - 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 - Testing the functions of a single class - Analysis of program properties using a static analyzer

Testing the functions of a single class

In Brooks' "No Silver Bullet," he names "complexity" as one part of the "irreducible essence of modern software systems." Explain the consequences of software being invisible, and include an example.

The consequences of software being invisible means that it is hard to check if it is working properly and efficiently. For example, let's think of a huge online store. Software problems that are hidden may lead to security problems and/or financial losses. Finding and fixing all those problems is difficult since the software is invisible, you cannot directly see the software.

According the IEEE definitions, match the terms on the left with the examples on the right. 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

The output of the program reveals an incorrect value

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 - UI/system tests - Unit tests - Integration/service tests

UI/system tests

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)? -Developing the next great virus that will steal millions of peoples' personal information -Working for a company who contracts out their services to build software for other companies -These are all equally likely -Writing software whose source code is released for free on the Internet with a team of geographically distributed individuals, on an unpaid, volunteer basis -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 - Coding with another person - Writing a test case before writing the functionality to allow it to pass

Writing a test case before writing the functionality to allow it to pass

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

"Everything that the user sees"

According to the Nielsen heuristics for assessing usability, match the heuristic on the left to their best examples on the right. User control and freedom - Auto-complete - "Undo" button - Disabling a button that, when clicked, would lead to an error connection - A magnifying glass icon on a search bar - Keyboard shortcuts - Progress bar during a file download

"Undo" button

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

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

A situation in which a bug can be present in the code, but does not cause a failure is when an edge case is not handled. There is a flaw in the code that prevents it from handling an edge case situation or input correctly, even though it does not frequently happen in everyday use. Thus, although there is a latent problem, most of the time nothing goes wrong.

In user-centered design, a scenario is: - 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 - A series of pictures shown in sequence to visualize the user experience and interaction - A story-like textual description of a system's usage - Using principles based on research to assess the usability of a system

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. A quality that is more important for TikTok than Autopilot is user engagement. A2. User engagement is more important for TikTok because it is a social media platform. TikTok's success depends on how long users use the platform and interact with the app. The more addictive TikTok becomes, the more users it attracts. B1. A quality that is more important for Autopilot is reliability. B2. Reliability is more important for Autopilot because it is a driver-assistance system. There must be no flaws to make sure all passengers are safe as well as everyone else on the road. Small failures or glitches can cause very serious problems.

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

Abstraction

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"

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

Application Context

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 - Auto-complete - "Undo" button - Disabling a button that, when clicked, would lead to an error connection - A magnifying glass icon on a search bar - Keyboard shortcuts - Progress bar during a file download

Auto-complete

Pair programming includes which of the following steps - 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

Coding with another person

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

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 -Interviewing the customer -Physically observing the customer -Netflix uses all of these techniques equally -Creating use cases

Data analysis and business metrics

What is functional decomposition? - Decomposing a software architecture into components and connectors - 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 UML objects and classes into functions - 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

Which one of the following statements most naturally follows from Ziv's Law? - A requirements document is the best way to represent requirements because its format makes it easy to understand for non-technical audiences. - 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. - 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. - Requirements documents are not amenable for specifying user interfaces, data formats, business rules, and non-functional requirements.

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

According the IEEE definitions, match the terms on the left with the examples on the right. Error - 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

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

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

Extreme Programming

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

Functional Requirements

According to the Nielsen heuristics for assessing usability, match the heuristic on the left to their best examples on the right. Accelerators - Auto-complete - "Undo" button - Disabling a button that, when clicked, would lead to an error connection - A magnifying glass icon on a search bar - Keyboard shortcuts - Progress bar during a file download

Keyboard shortcuts

High Coupling is - 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 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 across multiple components, and high levels of this is undesirable for a good design

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

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

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

Never

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

None of these

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

Software Qualities

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. - Software architecture has no value in facilitating the evolution of a software system. - 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. - Software architecture consists of all the design decisions about 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? - Interviewing the customer - Prototyping solutions and getting feedback from the customer - Software quality assurance techniques, such as testing - Gathering and utilizing data analytics - Researching other past solutions - Observing the customer

Software quality assurance techniques, such as testing

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

The actual output of the software implementation that you are testing

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

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

The "requirements" phase of the software lifecycle can be broken down into two sub-phases: "analysis" and "specification". What is requirements analysis? - The requirements document - The process of drawing use case diagrams - The process of coming to know and understand what the software product should be - The process of documenting what the software product should be

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

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

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

Whatever activity addresses the biggest current risk

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.

What is the purpose of a UML class diagram? - To depict sequences of user interaction for soliciting feedback in early design - To show what the user interface will look like - To create a detailed, object-oriented design of the code - To create a data model to be implemented in a database schema - To show the goals that an actor has with a system

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

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.

Two types of information that are hidden or "abstracted away" in a UML class diagram: Implementation Details: The specifics of how methods, algorithms, or source code are really implemented within the classes are not displayed in UML class diagrams. Usually, implementation specifics are buried, including the code itself, algorithms, and low-level design choices. As an alternative, class diagrams provide a blueprint of the system's architecture without getting into the nitty-gritty of how methods are implemented. Instead, they concentrate on the high-level structure and interactions between classes, their properties, and their associations. Behavioral Information: The structural structure of a system and the connections between classes are the main topics of UML class diagrams. They don't show the system's dynamic behavior, like the order in which methods are called or the data flow that occurs while the software runs. Class diagrams usually abstract behavioral details like state transitions and method call ordering. These dynamic features of a system are represented using behavioral diagrams, such as state machine diagrams or UML sequence diagrams.

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

UML class diagram

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.

Using structured processes and methods for reliability and precision. An example of a software engineering concept that demonstrates this principle is coding guidelines and standards. Using consistent naming helps maintain the quality of the code.

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

Validation

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

Verification

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

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) An example of a system for which it would make more sense to use client-server over peer-to-peer is a web-based email service such as Gmail. The client-server is a better choice in this situation because Emails are kept on the servers of Gmail and are accessed by clients. Because of centralized data, scalability, security, and ease of maintenance, client-server architecture is a better choice. b) An example of a system for which it would make more sense to use peer-to-peer over client-server is multiplayer games. Peer-to-peer is a better choice in this situation because to share game data and organize gaming, each player's device can communicate with the devices of other players. Peer-to-peer lowers delays, lessens server tension, and facilitates player-to-player interactions in real time, which improves the game experience.

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

addToCart

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

every source-code instruction is executed

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 - connector - component - styles - configuration - clients

connector

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

every True/False edge is taken


Ensembles d'études connexes

APHG Chapter 11 Test, APHG Unit 5 Test, Unit 6 APHG, Unit 7 APHG Political Geography

View Set

Unit 2: Quiz 3 - Completing The Square

View Set

Digital media for marketing communication

View Set

Chapter 05: Introduction to the Nursing Process

View Set

MedSurg2 Final Exam Practice Questions

View Set