IN4MATX 43 Software Engineering Quizzes

¡Supera tus tareas y exámenes ahora con Quizwiz!

def funcA(x):1 if x > 0:2 print "Positive"3 while x > 0:4 x -= 15 print "Finished" What is one test case (value for x) that will achieve statement coverage of this function? Your Answer: 1000

1000

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

6, 8, 1, 2

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

Which one of the following is true of white-box testing? 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. Test cases are chosen based on the specifications of the software. 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.

According the IEEE definitions, match the terms on the left with the examples on the right. Fault/Bug Choices: 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 Choices: A magnifying glass icon on a search button Auto-complete Undo Button Disabling a button that, when clicked, would lead to an error condition Keyboard shortcuts Progress bar during a file download

A magnifying glass icon on a search button

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

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) Choices: Connector Component Styles Configuration Clients

Answer configuration

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 Test for each subdomain, including representative values or possibly boundary values Gather user feedback for validation Identify the set of all possible inputs (to what is being tested), aka "domain" From each subdomain, select [a] representative(s) to be [a] test case input(s) Identify a basis for subdividing the set of inputs

Gather user feedback for validation

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 tables where data is stored into their associated attributes Decomposing the user interface into the detailed layout Decomposing UML objects and classes into functions

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

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

Designing tables where data is stored and relationships between them

Which one of the following is not true about software architectural styles? A software architectural style constrains the architectural design decisions we can make A software architectural style can offer benefits to the resulting system A software architectural style provides us with a named set of components, connectors, and configurations Designing your software in an architectural style always results in a more efficient system.

Designing your software in an architectural style always results in a more efficient system.

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

Functional Requirements

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. 99 Boundary value for Partition A Boundary value for Partition B Boundary value for Partition C Not a boundary value for any of these partitions

Not a boundary value for any of these partitions

Recall the CNBC article about software used in health care. Which one of the following requirements analysis techniques was it most focused on? Creating use cases Analyzing usage data Interviewing the customer Observing the customer Building prototypes

Observing the customer

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

Consider a program that takes a single assignment score from 0 to 100 in integer format, and returns back a letter grade, in the standard scoring (90s are A, 80s are B, 70s are C, 60s are D, and 50s lower are F. There are no plusses and minuses.) What are the partitions of this single input parameter? (list all partitions) For each partition that you listed, what are its boundary values? Write a set of test cases that include all the boundary values from the prior answer. List each test in a format "input, expected output", like this: "35, F"

One partitions would constitute all integer scores that fall into one grade mark. Partitions and their boundaries: 50s and lower (F): [0, 59]60s (D): [60, 69]70s (C): [70, 79]80s (B): [80, 89]90s: [90, 100] Test cases: 0, F59, F60, D69, D70, C79, C80, B89, B90, A100, A

Of the three essential ingredients of software engineering, which one can make up for shortcomings in the other two? Incrementality People Tools These are all equally important 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 Choices: A magnifying glass icon on a search button Auto-complete Undo Button Disabling a button that, when clicked, would lead to an error condition Keyboard shortcuts Progress bar during a file download

Progress bar during a file download

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

Rational Unified Process (RUP)

Which of the following is an example of unit testing? Testing the usability of an interface based on a heuristic checklist Testing the interaction between two classes 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 functions of a single class

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

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

In his essay "No Silver Bullet," what was the "werewolf" that Fred Brooks was hoping to "kill?" The lack of talented developers that is epidemic to software development Informatics 43 quizzes The missed deadlines, flawed products, and blown budgets common to software projects The inadequate processes that typically cause problems in software projects The inadequate tools that typically cause problems in software projects

The missed deadlines, flawed products, and blown budgets common to software projects

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

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

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 When all bugs have been found and fixed When the rate of finding new faults stabilizes to near zero You Answered Reveal as many faults as possible in a fixed period of time with a fixed budget

When all bugs have been found and fixed

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. 500 Boundary value for Partition A Boundary value for Partition B Boundary value for Partition C Not a boundary value for any of these partitions

Not a boundary value for any of these partitions

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

every source-code instruction is executed

The waterfall process model is: (Note: for this question, "idealized" means that it largely assumes that each step is performed ideally, whereas "realistic" means that it works well for non-ideal and imperfect/flawed steps.) linear and realistic linear and idealized nonlinear and idealized a process that responds well to requirements changes nonlinear and realistic

linear and idealized

Imagine you are creating a UML class diagram of an e-commerce system, such as Amazon.com. Which of the following is most likely to be an attribute of a Customer class? price writeReview name fileSize logOut

name

In user-centered design, a persona is: A set of common UI components, patterns, and styles to promote reuse and provide a consistent user experience Using principles based on research to assess the usability of a system A series of pictures shown in sequence to visualize the user experience and interaction A story-like textual description of a system's usage A profile of a fictional potential user that helps you make user-centered decisions during development

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

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 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 series of pictures shown in sequence to visualize the user experience and interaction A story-like textual description of a system's usage

A series of pictures shown in sequence to visualize the user experience and interaction

In user-centered design, what are design guidelines? A series of pictures shown in sequence to visualize the user experience and interaction 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 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

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? Using a software architectural style broadens the architectural design decisions we can make. A software architectural style provides us with a named set of components, connectors, and configurations. Using a software architectural style usually makes it harder to evolve the resulting system A software architectural style rarely offers benefits to the resulting system. 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 function call presents a simple interface and hides the logic that will be performed. This is an example of... Rigor and formality Incrementality Abstraction Prototyping Divide-and-conquer

Abstraction

Source code is one particular representation of a software system. It highlights some details and hides others. This is a good example of: Divide-and-conquer Prototyping Incrementality Abstraction Rigor and formality

Abstraction

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

Also often referred to ask simple "hacking"

In which section of a requirements document are you most likely to find the following statements: "The software shall run on iPads in the lobby of the library. The software shall also take input from scanners attached to the iPads, with which a patron can use to scan their cards and items. The software shall also interact with the county-wide library database to report checkouts and checkins." Priorities/Implementation Phases Future Changes Assumptions/Risks Software Qualities Application Context

Application Context

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.

Attribute types are omitted in class diagrams to enhance clarity and understanding. For instance, when representing a "Student" class, the specific data types of attributes like the average mark (which could be a floating-point number) and the address (which could be a string) are not typically shown. This abstraction allows the diagram to emphasize the essential structure and relationships between classes, rather than getting bogged down in the specifics of data types. By abstracting away such details, UML class diagrams provide a powerful means to focus on the essence and blueprint of the system, enabling stakeholders to grasp the fundamental concepts while avoiding unnecessary complexity. In UML class diagrams, another crucial aspect that is abstracted is the implementation approach of class methods. Details such as whether developers utilize recursion or an iterative approach, opt for DP or divide-and-conquer, or employ data structures like arrays or linked lists are hidden away in the UML class diagrams. These implementation-specific details, while significant in practical coding, are not essential to understanding the primary function and purpose of the methods. By abstracting these implementation details, UML class diagrams achieve a more readable and understandable representation, allowing them to focus on the overall structure and relationships of the classes rather than getting distracted by specific coding techniques or data structure choices.

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

Auto Complete

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. 0 Boundary value for Partition A Boundary value for Partition B Boundary value for Partition C Not a boundary value for any of these partitions

Boundary value for Partition A

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 A Boundary value for Partition B Boundary value for Partition C Not a boundary value for any of these partitions

Boundary value for Partition B

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. 100 Boundary value for Partition A Boundary value for Partition B Boundary value for Partition C Not a boundary value for any of these partitions

Boundary value for Partition B

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. 101 Boundary value for Partition A Boundary value for Partition B Boundary value for Partition C Not a boundary value for any of these partitions

Boundary value for Partition C

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

Pair programming includes which of the following steps 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 Using rigor and formality when developing software

Coding with another person

In software architecture, map the definitions on the left to the terminology on the right. elements that comprise functionality and/or computation Choices: Connector Component Styles Configuration Clients

Component

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 Choices: Connector Component Styles Configuration Clients

Connector

Which one of the following requirements-analysis techniques is Netflix known for using the most to inform their software development? Interviewing the customer Creating use cases Data analysis and business metrics Physically observing the customer Netflix uses all of these techniques equally

Data analysis and business metrics

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

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

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

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

Everything that the user sees

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

Extreme Programming

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? True False

False

For the Dolendar system that Dom Dones is describing, match the entity on the left with the concept description on the right. Event Choices Fixed to a specified time and day Floats to the time and day, based on current time and order of these

Fixed to a specified time and day

For the Dolendar system that Dom Dones is describing, match the entity on the left with the concept description on the right. Task Choices Fixed to a specified time and day Floats to the time and day, based on current time and order of these

Floats to the time and day, based on current time and order of these

In software engineering, to what does the term "refactoring" refer? Adapting existing code to a new environment Adding new features to existing code Testing and fixing bugs in existing code Fixing bugs in existing code Improving the design of existing code without changing its functionality

Improving the design of existing code without changing its functionality

Choose one of the artifacts/abstractions on the slide, and describe at least two types of information that are presented in that abstraction, and at least two types of information that are hidden, or "abstracted away."

In a requirements document, the two pieces of information presented in the functional and non functional requirements. The former describes the specific functionalities that the software system should possess that are necessary for the software to operate. The latter define the qualities (-ilities) that the software system must adhere to but do not necessarily affect functionality - for instance, aspects like performance, scalability, security, usability, and portability. A requirements document abstracts away implementation details and UI design. The former means that the document does not delve into the specifics of how the software system will be built. Instead, it focuses on the "what". It does not include low-level technical details, programming languages, algorithms, or design patterns. These implementation details are hidden to center our focus on the meat of the project - the desired functionality and behavior. Many aspects such as visual appearance, layout, and interactivity details are omitted while still keeping the general idea for how might the UI allow the customer to work with the app.

Parnas defined software engineering as: "Multi-person construction of multi-version software." The term "multi-version" can mean which of the following: (Choose all that apply) Incremental versions, like last week we released version 1, but this week we are releasing version 2 Multiple variants, like an iPhone version, an Android version, a Mac version, a PC version I wrote a simple script and do not plan to ever update it

Incremental versions, like last week we released version 1, but this week we are releasing version 2 Multiple variants, like an iPhone version, an Android version, a Mac version, a PC version

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

Internal Quality of Software

or each of the following requirements-specification sections, provide a very brief (one word, a few words, or a single sentence) example of the type of thing that would go there. Consider that this specification is for a to-do app (any to-do app that you might imagine). Introduction Executive Summary Application Context Functional Requirements Software Qualities / Non-functional Requirements Other Requirements Assumptions/Risks Priorities Future Directions Of course, there are an infinite number of correct answers, based on your creativity of what the to-do app would actually be, but I am merely looking to see that you understand the type of information that would go in each section.

Intro: This document outlines the requirements for a to-do list application. It is created for users who want to manage and organize their tasks effectively. Executive Summary: Goals: Provide a user-friendly task management solution. Key features: Task creation, scheduling, prioritization, and tracking. Key risks: Privacy, Data loss, usability issues. Application Context: Contexts used are homes, offices, and schools. It affects the users, their tasks, and processes. Functional Requirements: Allow users to create, edit, and delete tasks. Enable task prioritization / pinning and sorting Send alerts Support task search Ilities (Non-functional Requirements):. little to no downtime. smooth user experience, friendly look, allow for colorful tasks. allow for icons for tasks. Ensure a safe and secure experience Don't crash unexpectedly. Well documented code Other Requirements: Consider the cost-effective aspect in production Provide comprehensive documentation, such as user manuals and tutorials. Offer on-the-job training or support for users. Potential Risks: Tight schedule or budget constraints. Data breaches accidental data loss, glitches in the software Assumptions: Users' devices meet the compatible hardware and software requirements. Users can intuitively understand the app with little to no effort. Priorities: Task creation and organization functionality. User-friendly interface for easy task management. Task prioritization and sorting capabilities. Incorporate user feedback and feature requests. Allow third party apps to connect Allow additional features Allow a more tailored design to the app.

Which of the following statement is NOT correct? A glossary should be used when some terminology is non-standard or cannot be used to be known by possible readers. 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. 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.

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

Keyboard shortcuts

Reuse is a major benefit of the Layered architectural style. Which layer(s) are usually the most reusable? Upper and middle layers Lower layers Middle layers Upper and lower layers Upper layers

Lower layers

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

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

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

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

Money

Parnas defined software engineering as: "Multi-person construction of multi-version software." The term "multi-person" can mean which of the following: (Choose all that apply) Multiple coders that need to coordinate which parts they work on and how those parts interface and interact with each other Multiple people in different roles, such as requirements engineer, coder, UI designer, manager You, alone, hacking on your own project

Multiple coders that need to coordinate which parts they work on and how those parts interface and interact with each other Multiple people in different roles, such as requirements engineer, coder, UI designer, manager

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

Never

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

None of these

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 A Boundary value for Partition B Boundary value for Partition C Not a boundary value for any of these partitions

Not a boundary value for any of these partitions

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. -100 Boundary value for Partition A Boundary value for Partition B Boundary value for Partition C Not a boundary value for any of these partitions

Not a boundary value for any of these partitions

In only a sentence or two: describe "pair programming".

Reminiscent of how a pilot drives the plane, and the co-pilot is there to monitor, raise warning, catch mistakes, and help the pilot, pair programming is when two programmers, one typing, and one talking through the logic, work together to complete a software task.

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.

Sarah is a busy project manager in a tech company, leading a busy work life, and working on many projects at the same time and dodging deadlines. Sarah's goals are that she needs a reliable system to manage her tasks and schedule effectively. Time is her most valuable resource and she goof off and do nothing. She wants a system that helps her prioritize tasks based on importance and deadlines. Due to the collaborative nature of her work at this large tech company, she realizes that she needs a system that enables frictionless task assignment and shared task visibility capabilities in a team. Matin, a business consultant, often needs to travel to different companies HQs to help businesses with making critical decisions. His schedule is hectic, since he is hopping all around the world, and so he needs a tool that could help him ease his time management difficulties. Matin's goals are that his clients often use different calendars so he needs one single tool that could integrate with both Google Calendar and Apple calendar at the same time. It would be nice if he could have all of his tasks sync in one place. Due to his limited time, Matin ideally wants a tool with a user-friendly interface that could help him frequently make changes, updates, and edits, and additions to his calendar + todo list.

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

Software Qualities

Which one of the following statements is true about software architecture? Software architecture dictates the process a team uses to develop use cases for a system. Software architecture is a valuable tool in understanding, reasoning, and communicating about a software system. Software architecture has no value in facilitating the evolution of a software 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.

What is software architecture? Summarize your own answer with a sentence (or few).

Software architecture is the design decisions and structures that define how software components interact and meet system requirements, providing a clear vision and guiding the development process while taking into consideration the limitations, and facilitating maintainability and reusability of software components.

According to the IEEE Spectrum software failure reading, what does the term "Hubble Psychology?" mean? (A single sentence is adequate.)

Software projects in Hubble psychology are deemed a total failure and a waste until they're a success. These Projects are so optimistic in their accomplishments that are "too big to fail". Such a guarantee eventually leads engineers to figure out how to actually go about doing the project properly. The Hubble psychology is a software methodology that does not acknowledge the constraints, requirements, bugs, and complexities along the way, and keeps pushing forward without adequately addressing the inherent challenges and potential pitfalls, which can ultimately result in significant setbacks and fiascos.

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

Software quality assurance techniques, such as testing

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.

The Model-View-Controller is a three-part architectural style consisting of a Model, a View, and a Controller (in that specific order). The Model represents the state of the system and holds the data structure. The View is responsible for displaying the user interface. The Controller determines the logic when the user interacts with the Model through the View. When the Model state changes, it updates the View. These components are separated and work independently but collaborate with each other. Many platforms utilize this style, such as iOS apps. The benefits are that it modularizes the code, making it easier to understand, reduces the impact of errors, and simplifies troubleshooting and debugging processes. A real world example of the model view controlled style would be a smart home control system. The model would manage the configurations, user preferences, and automation schedules. The view could be the Nest app, the Nest device, and Google Home speaker, where interactivity isn't just limited to text but also extends to speech. It displays the status The controller would be managing user interactions like turning devices on/off, adjusting settings, creating automation rules, and receiving real-time device updates. A real world system that could be designed and deployed with that style would be the

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

The actual output of the software implementation that you are testing

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

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

The what, not the how

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 documenting what the software product should be The process of drawing use case diagrams The process of coming to know and understand 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? Requirements describe what the software should do, without saying how it should do it. 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. Requirements issues are at the root of many software failures. If you get the requirements right, it will help avoid many costly fixes later on in the software life cycle.

The requirements phase is the mostly costly phase in the software life cycle, in terms of dollars spent.

In your own words, summarize the weaknesses of the waterfall model.

The waterfall model is weak in some aspects. The software development process isn't just a step by step process where we only move in one direction and never look back. It is a dynamic and rich process requiring refinements, iterations, and flexibility throughout the way. Requirements change and we see ourselves going back, getting user feedback, and repeating the steps in the waterfall model. One thing to note, however, is that the waterfall model gets the steps right.

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.

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

The y2k incident Computers only stored the last two digits of the year to save memory. At the turn of the century, - 1999 to 2000 - this would present some major issues for critical software dealing with banks or the government. Although the software functioned perfectly fine before, the bug was present in the code all along but didn't cause a failure up until some condition is met. Microsoft's equivalent to iPod An Apple iPod's competitor, developed by Microsoft, glitched and never powered on again after the date changed from 12/31 to 1/1. This is also an example of bugs present in the software, while not manifesting as a failure.

Briefly explain this quote from Edsger Dijkstra: "Program testing can be used to show the presence of bugs, but never to show their absence."

This quote says that program testing is key when it comes to finding bugs in software, but it cannot guarantee that there are no more bugs. Testing can uncover mistakes that we have or problems in a program, but it cannot prove that the program is completely free of errors. Just because you tested the program, it doesn't mean that it is flawless now. So, it makes sense that while testing is a valuable tool for identifying issues, it doesn't really provide absolute certainty that the program is free of bugs.

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

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

You have a function that you are asked to test. The method declaration looks like: float roots(float a, float b, float c) ...in other words, it takes three floating point numbers as input and outputs a floating point number. The specification of the function is that it is supposed to compute the quadratic equation — given values of a, b, and c, compute x: What input values of a, b, and c would be particularly useful to test, given this specification? Give at least two inputs (a, b, and c) and a brief explanation of each of why this input would be useful to test.

To test the roots function tothe best of our ability and validate its truth and preciencess, it is important to consider various scenarios that cover different aspects of the quadratic equation. Here are two input sets that would be particularly useful to test: Input Set 1: a = 1, b = 5, c = 6 Explanation: This input set represents a quadratic equation with distinct real roots. By substituting the values into the quadratic formula, we get:x = (-5 ± sqrt(5^2 - 416)) / (2*1)x = (-5 ± sqrt(25 - 24)) / 2x = (-5 ± sqrt(1)) / 2x = (-5 ± 1) / 2x1 = (-5 + 1) / 2 = -2x2 = (-5 - 1) / 2 = -3 Testing this input set covers the scenario where the discriminant (b^2 - 4ac) is positive, resulting in two distinct real roots. you would do this for getting negative discriminant and also zero discriminant. Aynthign beyond that would be unnecessary for testing purposes since it would yield the same reuslts.

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 False

True

The term requirements specification is used to refer to the requirements document. True or False? True False

True

In your own words, provide a summary of the key concepts presented in today's lecture.

UI failure occurs when users aren't at the center in the development process. User interface should naturally lend itself to an environment where making mistakes are minimize, and user needs are prioritized. Programmers often overlook users by focusing too much on DS. Prototyping and A/B testing help understand user preferences. Users will randomly get chosen to view one product, and we check their sentiment to understand our user. Observing user needs leads to better software. User-centered design results in simplicity, cost reduction, sales increase, satisfaction, efficiency, and customer loyalty. Developers should be user-oriented, not just programming-oriented. Usability design should consider psychology, cognitive science, aesthetics, and art.

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

UI/system tests

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

UML class diagram

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

Undo Button

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

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 Often serves as an interface between key business stakeholder and the technical team Usually is an entry-level position Usually is a key decision maker on the direction of how to make difficult implementation choices

Usually is an entry-level position

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

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)? 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 for a company who contracts out their services to build software for other companies

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 Coding with another person 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

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? 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. We should not expect to get orders of magnitude improvement in software engineering just by building new languages and tools 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.

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

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 is also known as "structural testing" based on the specifications of a system

based on the specifications of a system

What are two test case inputs (values for x) that together will achieve branch coverage of this function? Your Answer: branch 1: any positive integer like 4422. This will hit the first branch branch 2: use x = 0 to skip directly over to finish and ensure the correct behavior

branch 1: any positive integer like 4422. This will hit the first branch branch 2: use x = 0 to skip directly over to finish and ensure the correct behavior

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

every True/False edge is taken


Conjuntos de estudio relacionados

Complementary, Supplementary, Vertical and Adjacent Angles

View Set

Chapter 12 Nutrition and Fitness

View Set

Chapter 10: Drug Therapy in Pediatric Patients

View Set

Ch 18 Management of Patients with Upper Respiratory Tract Disorders

View Set