Inf43 final
The build-and-fix process model is:
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."
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.
In a specification, which section would you describe that that software should be built to be secure and beautiful?
Software Qualities
Which of the following is NOT an example of a test oracle? D)
A) A calculator, or separate computing device B) Human intuition, knowledge, judgment, or experience C) An older, legacy program that computed the same function D) The actual output of the software implementation that you are testing
Architectural erosion happens when: E)
A) A system evolves and its descriptive architecture is not updated B) The prescriptive architecture is modified before the descriptive architecture is modified C) Faulty components are used in the architecture D) A client-server style is used when a peer-to-peer style would have been more effective E) The "as-designed" architecture and the "as-implemented" architecture do not match
Which of the following statement is NOT CORRECT? D)
A) Architectural erosion happens when the software is not grown as it was prescribed. 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) Mixing different styles in software architecture is inappropriate. Architects should always stick to one single architectural style.
What is functional decomposition?
A) Decomposing a task, function, module, or system into smaller sub-tasks, sub-functions, or sub-modules B)Decomposing the user interface into the detailed layout C)Decomposing UML objects and classes into functions D)Decomposing tables where data is stored into their associated attributes E)Decomposing a software architecture into components and connectors
What is relational database design?
Designing tables where data is stored and relationships between them
Of the three essential ingredients of software engineering, which is the most important?
People
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.
What is the main activity done in the third iteration in a spiral process?
Whatever activity addresses the biggest current risk FYI- The spiral model has four phases: Planning, risk analysis, product development and next phase planning or Evaluation. A software project repeatedly passes through these phases in iterations (called Spirals in this model).
The waterfall process model is:
linear and idealized
Describe at least two types of information that are hidden or "abstracted away" in a UML class diagram.
1.the code within functions and classes 2.parameter names are not included within functions
In user-centered design, a persona is:
A profile of a fictional potential user that helps you make user-centered decisions during development
Which of the following software process models requires a "process expert?"
Rational Unified Process (RUP)
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, a scenario is:
A story-like textual description of a system's usage
In the Layered architectural style: C)
A) Components are organized around one centralized server. B) Any component can communicate with any other component in the architecture. C) None of these D) The upper layers are the most reusable.
In software architecture, map the definitions on the left to the terminology on the right. A) elements that handle interaction between the different parts of the architecture B)elements that comprise functionality and/or computation C)all elements of the architecture laid out in a specific way that describes the overall architecture (or architectural style)
A)connector B)component C)configuration
In software engineering, to what does the term "refactoring" refer?
Improving the design of existing code without changing its functionality
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
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 is an example of unit testing?
Testing the functions of a single class
A prescriptive architecture is...
The architecture that the architect decides for the project to guide how the software will be designed and implemented
Which software development situation is the most common in the U.S.?
The software development group in a company writes software for another department in the same company
User acceptance testing is an example of:
Validation
Briefly describe the software-engineering principle of "rigor and formality" and give an example of a software-engineering task or concept that demonstrates this principle.
rigor is the principle where we gage/create a very exact or strict state in a software program. formality is a rigorous state; as rigorous as rigor can get. these two concepts work on the careful mathematical aspects of software engineering where models and formulas are built for a task to be carefully executed. an example that must use the rigor/formality principle would be the building of autonomous cars or in the medical systems. in these two examples, slightest inaccuracy in the mathematical aspect of building the product can result in harming a human's life/health.
Which one of the following statements is not true about testing? B)
A) Test cases should be chosen systematically, to cover a wide range of possible inputs B) One goal of testing is to prove that the system has no bugs. C) One goal of testing is to find bugs. D) One goal of testing is to improve confidence that the system works correctly.
Which of the following is not true about an architect? A)
A) Usually is an entry-level position B) Usually is a key decision maker on the direction of how to make difficult implementation choices C) Usually has broad training (in the domain and in software development) D) Often leads the technical development team E) Often serves as an interface between key business stakeholder and the technical team
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? D)
A) description B) price C) fileSize D addToCart E) logIn
Briefly describe the software-engineering principle of "anticipation of change"
Briefly describe the software-engineering principle of "anticipation of change"
Which one of the following requirements analysis techniques does Netflix use the most?
Data analysis and business metrics
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"
Requirements should define:
The what, not the how
According the IEEE definitions, match the terms on the left with the examples on the right. Mistake Fault/Bug Error Failure
A developer forgot that negative numbers need to be handled from the input A line of code that should have contained ">=" actually contains ">" During execution of the program, a variable's value is incorrect The output of the program reveals an incorrect value
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? C)
A)The web should support people with reading disabilities so that they could purchase the tickets smoothly. B)Customers can not only purchase tickets but also join the waiting list if the tickets are temporarily sold out. C)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. D)The web's page should provide some space for online advertising so that the advertising place could be sold to other commercial companies.
A function call presents a simple interface and hides the logic that will be performed. This is an example of...
Abstraction
According to the IEEE Spectrum software failure reading, what is another name for "Hubble Psychology?"
Over optimism disease
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
Of which kinds of tests should there be the fewest in the collection of tests for a system?
UI/system tests
Test-driven development includes which of the following steps
Writing a test case before writing the functionality to allow it to pass
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.
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? A)
A) name B) fileSize C) price D logOut E) writeReview
Which of the following statement is NOT correct? C)
A)In a requirement document, executive summary shouldn't be too long and should be concise and to-the-point. B)Use cases are bad for describing the quality of software. C)In a use-case diagram, the stick figures are drawn to always represent humans that interact with the system. D)The majority of software developers are employed to produce software for their own company's use.
Which one of the following statements about requirements is true? A)
A)Requirements issues are at the root of many software failures. B)The requirements phase is the mostly costly phase in the software life cycle, in terms of dollars spent. C)Requirements errors generally cause only minor problems in the resulting system. These problems are simple and cheap to fix. D)Requirements describe how the software should work, without saying what it should do. E)Requirements analysis/engineering should only be done once the architecture of the system has been designed.
The term "requirements specification" is used to refer to which of the following? A & C
A)The requirements document B)The process of coming to know and understand what the software product should be C)The process of documenting the requirements of the software product to be built
Briefly describe the software-engineering principle of "abstraction" and give an example of a software-engineering task or concept that demonstrates this principle.
Abstraction is essentially turning the computer's language (0s and 1s) into understandable and scalable objects. in other words creating objects out of data types/characteristics that we need so we can easily focus on the things that we need to build and ignore nitty details that we dont need. an example is the close button of a window on a browser. we dont need to type in a certain combo of 0s and 1s to command the computer to close the window. instead we use abstraction and assign that certain 0s and 1s to a button, so we can easily close a window without complicated steps. super user friendly.
According to the Nielsen heuristics for assessing usability, match the heuristic on the left to their best examples on the right. Recognition rather than recall user control and freedom error prevention consistency and standards Accelerators visibility of system status
Auto complete "undo" button Disabling a button that when clicked would lead to an error condition a magnifying glass icon on a search button keyboard shortcuts progress bar during a file download
Pair programming includes which of the following steps
Coding with another person
Which one of the following software process models involves the customer the most throughout the process?
Extreme Programming
Coupling is
Many tight dependencies or associations across multiple components, and high levels of this is undesirable for a good design
When testing, when do we achieve 100% confidence that the program contains no bugs?
Never
Briefly describe the software-engineering principle of "generality"
Software components can be written in a way that allows it to be reused for multiple uses or in multiple contexts.
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
In user-centered design, heuristic evaluation is:
Using principles based on research to assess the usability of a system
What is the purpose of a UML class diagram?
To create a detailed, object-oriented design of the code
A detailed, object-oriented design is usually depicted as a :
UML class diagram
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.
onsider 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
the model-view-controller architectural style has three components: the model, view, and controller: the model is the application that connects and interacts with the backend of the software(the database and data logic). the model and controller interact with each other. the controller manipulates the requests that the user gives when using the software. this means the user will be interacting with this component. The view is the part that the user sees. it designs the representation of the data that got processed in a hopefully user friendly way. the view and the controller interact with each other. the view and the controller component of this architectural style is the UI of the software. E.g: my Apple watch can be the system that uses MVC. the view is the UI, the controller is the interconnectory between the view and model. when i send a request to fetch a data it will fetch it from the model. the model access the database of that app and returns the information that i asked for and sends it back to the controller which will then display it to me.