Study Guide

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

For this code block: void function(int x, int y, int z) { 1: int q = 0; 2: if (x > y) { 3: if (x > z) { 4: q++; } else { 5: q--; } } else { 6: if (y > z) { 7: q = q + 10; } } 8: print q; } And for the input (1, 2, 3), which statements are executed/covered? Select all that apply.

1,2,6,8

According the IEEE definitions, match the terms on the left with the examples on the right. 1. Mistake 2. Fault/Bug 3. Error 4. Failure

1. A developer forgot that negative numbers need to be handled from the input 2. A line of code that should have ">=" actually contains ">" 3. During execution of the program, a variable's value is incorrect 4. The output of the program reveals an incorrect value

According to the Nielsen heuristics for assessing usability, match the heuristic on the left to their best examples on the right. 1. Recognition rather than recall 2. User control and freedom 3. Error prevention 4. Consistency and standards 5. Accelerators 6. Visibility of system status

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

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

1. connector 2. component 3. configuration

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.

100, 1

Which one of the following is true of white-box testing?

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

In user-centered design, a persona is:

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

What is relational database design?

Designing tables where data is stored and relationships between them

Equivalence Class Partition Testing includes all of the following steps, EXCEPT:

Gather user feedback for validation

Recall the CNBC article about software used in health care. Which one of the following requirements analysis techniques was it most focused on?

Observing the customer

Which one of the following statements is not true about testing?

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

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

People

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.

The principle "incrementality" is a principal that shows the process of all the steps of a procedure. It allows for more development and easier planning. Anytime developers are working on a program they can keep going back to previous steps and update or lead from one another.

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.

The principle is essentially "rigor" where there are a set of rules to follow and "formality" where the rigor can be tested through specific laws. Automated testing and error removals make it possible. Imagine traffic lights where we know that these specific colors determine the stop and go. When problems occur they become difficult to resolve. With high rigor these problems become more easier and the program runs smoother.

Which of the following is NOT a way to know when to stop testing?

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.

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 in the IT department of a company, writing software for "customers" who are also part of that same company

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?

name

Which of the following is an example of unit testing?

Testing the functions of a single class

Requirements should define:

The what, not the how

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.

In user-centered design, a scenario is:

A story-like textual description of a system's usage

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. One persona for Homes.Design could be an home owner user who we can call John Doe looking to redesign their home. They aren't really deciding yet and are in the observing factor and looking to see all possible changes based on their own preferences. They would like something that can happen online rather than setting up an appointment and waiting for in-person conversations. B. Another persona could be a staff user who we can call Martha Stuart. Their goals are to make sure the image rendering works as best as possible and always have the images ready to use. They need to get pictures and links to as many as different items possible to be able to provide to the customers requests.

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 non-functional quality for TikTok which is more important than Tesla Autopilot is the Portability. It is an app that can go across many devices while Tesla Autopilot is meant for the vehicle specifically. A2. It is obviously more important for TikTok because TikTok is an app. It is created to be easy to use and available to anyone with an internet connection essentially. B1. A non-functional quality for Tesla Autopilot that is more important than TikTok is its interoperability. B2. It is an Advanced Driver Assistant Software. It is necessary for it to be intake a ton of information from the user and the surrounding areas. The amount of exchanging done is by far much more necessary than TikTok's need for it.

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

Which one of the following statements most naturally follows from Ziv's Law?

Assume that the requirements document will have to change at some point.

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

Which one of the following 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

Consider the three perspectives on software engineering discussed in lecture. Match each perspective with what matters most from that perspective.

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

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

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

If we look back at Dijkstra's quote he says that testing reveals a bug's presence and not the absence of one. This means that in a code there can exist bugs. They are just deviant from the expected output so it is not shown. Like if I had a test case to add or subtract numbers I would get the correct output but lets say there's a bug in something else like the dividing function. I wouldn't know there was that bug present in the code but my test case would still pass and not result in a failure.

Which of the following statement is NOT correct?

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 undesirable for a good design

Cohesion is

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? A. Mixing different styles in software architecture is inappropriate. Architects should always stick to one single architectural style. B. Not all design decisions should be considered as part of software architecture. C. Software Architecture consists of components and connectors, which can be arranged into configuration D. 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: A. Any component can communicate with any other component in the architecture. B. The upper layers are the most reusable. C. None of these D. Components are organized around one centralized server.

None of these

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

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

The abstraction principle is essentially where the interface should be independent of its implementation. So a user views a component and the developer creates an implementation. If they were to use the abstraction principle then the developer can modify the implementation without the user needing to know and can still use the component. An example would be a car because we drivers we simply know how to drive a vehicle. We don't have to relearn how to drive each time something in the engine is modified or replaced.

Which of the following is NOT an example of a test oracle:

The actual output of the software implementation that you are testing

A prescriptive architecture is...

The architecture that the architect decides for the project to guide how the software will be designed and implemented

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.

The principle of "anticipation of change" is that it allows the software to be changed and edited easily. Software is successful when there is the chance to change it multiple times throughout its course. Imagine when designing we want to keep the costs low so we have to anticipate when changes will occur and where it will occur to determine how costs will be affected whether by raising it or lowering it.

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

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 and The requirements document

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.

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.

What is the purpose of a UML class diagram?

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

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.

Typically the UML class diagram is made before any coding is done and is meant to be the blueprint of the software which means that it abstracts away from the source code because we are just mapping out how classes connect to each other. Also since we are just showcasing the connections between the classes and the methods then the reader won't know how the classes are supposed to look or be implemented and thus it is abstracting away the User Interface/UI.

Of which kinds of tests should there be the fewest in the collection of tests for a system?

UI/system tests

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

UML class diagram

In user-centered design, heuristic evaluation is:

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

Which of the following is not true about an architect?

Usually is an entry-level position

User acceptance testing is an example of:

Validation

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

Verification

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.

In white-box testing, statement coverage ensures that:

every source-code instruction is executed

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.

a) The three main components are the Model, View, Controller. The model is essentially all the data that the user works with. It interacts with the database and gives back data to the controller. The view is the UI logic and it represents the interface for the user. It also only interacts with the controller. The controller acts as a connection between the View and the Model. It doesn't handle data logic but tells the Model what to do and interacts with the View to get the final output. b) A web browser could be in a model-view-controller style where as the UI interface is the view and the browser itself is the Controller so whenever the User writes a prompt in the View the Controller can then tell the Model the backend or code to then lead to other searches or links which then the controller can have the View visually show to the User in the Interface.

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?

addToCart

Which of the following is a true statement: "Black box testing is..."

based on the specifications of a system

In white-box testing, branch coverage ensures that:

every True/False edge is taken


Ensembles d'études connexes

AP Studs Period 5 Prac Quiz 2 and 3

View Set

geografija - ponavljanje - 6.r. Arktik i Antarktika

View Set

OMGT 5783 Project Management Midterm

View Set

CH 7 Safety and Patient Reception EHS

View Set

Keyboarding communication skills

View Set