Info43
Architecture style - Pipe and filter style
- break down work with it, repeat
What does the requirements phase consist of?
Analysis and specification
Recognition rather than recall
Auto complete
Requirements Specification
documenting analysis
Black Box testing
-
Boundary Value Analysis
-
Control Flow graph
-
Equivalence Class Partitioning
-
Statement coverage vs branch coverage
-
White Box testing
-
In a UML class diagram, what does a multiplicity value indicate? - How many associations a particular class can have - How many operations a class must have - How many instances/objects of that class can participate in the association -How many attributes a class must have
- How many instances/objects of that class can participate in the association
Which of the following statement is NOT CORRECT? - Architectural erosion happens when the software is not grown as it was prescribed. - Not all design decisions should be considered as part of software architecture. - 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.
- Mixing different styles in software architecture is inappropriate. Architects should always stick to one single architectural style.
Architecture style - Client Server Style
-1 server, many clients (wii)
Architecture style - Layered Style
-Domino effect 1 to 2 to 3 to 4 ...
Separation of Concerns: (2)
Modularity and Abstraction
Business
Money
UML class diagram the top compartment = Attributes Subclasses Operations Name Superclass
Name
consistency and standards
A magnifying glass icon
In user-centered design, a persona is:
A profile of a fictional potential user that helps you make user-centered decisions during development
Application Context
Where software lives
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 of rigor and formality is to kind of have rules in the process of creating something so the flow of working is a lot smother. An example of this could be testing and fixing errors before moving on to the next part to have better quality software.
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
Which one of the following statements most naturally follows from Ziv's Law? A. Assume that the requirements document will have to change at some point. B. Use cases map well to design and implementation constructs. C. Use cases should describe what kind of data is being passed between user and system. D. Use cases are the most understandable way to represent requirements. E. Assume that the requirements document is set in stone.
A. Assume that the requirements document will have to change at some point
Which one of the following requirements analysis techniques does Netflix use the most? A. Data analysis and business metrics B. Interviewing the customer C. Creating use cases D. Physically observing the customer E. Netflix uses all of these techniques equally
A. Data analysis and business metrics
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? A 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. B. The web's page should provide some space for online advertising so that the advertising place could be sold to other commercial companies. C. Customers can not only purchase tickets but also join the waiting list if the tickets are temporarily sold out. D. The web should support people with reading disabilities so that they could purchase the tickets smoothly.
A. 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.
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 hiding certain complex details while at the say time focusing and prioritizing others. An example of this is hiding the idea of how computers function in 1's and 0's and focusing on the code that you are writing on the computer and the outcome of that rather than the more complex idea of how all your code is just 1's and 0's in the computer.
UML class diagram the middle compartment = Attributes Subclasses Operations Name Superclass
Attributes
Environmental Requirements
Hardware type and software type (size, web, app?)
Architectural erosion happens when: A. A client-server style is used when a peer-to-peer style would have been more effective B. A system evolves and its descriptive architecture is not updated C. The "as-designed" architecture and the "as-implemented" architecture do not match D. The prescriptive architecture is modified before the descriptive architecture is modified E. Faulty components are used in the architecture
C. The "as-designed" architecture and the "as-implemented" architecture do not match
What are 3 essential properties of SE
Conformity, changeability, invisibility
What is relational database design?
Designing tables where data is stored and relationships between them
Requirements analysis could be performed in a number of ways. Which of the following is NOT a requirements analysis technique? A. Prototyping solutions and getting feedback from the customer B. Gathering and utilizing data analytics C. Interviewing the customer D. Researching other past solutions E. Observing the customer F. Software quality assurance techniques, such as testing
F. Software quality assurance techniques, such as testing
In user-centered design, what are design guidelines?
In user-centered design, what are design guidelines?
Cohesion
Many tight dependencies or associations within a component, and high levels of this is desirable for a good design
What are the three essential ingredients to software engineering? Processes, Incrementality, Tools, People?
Processes, Tools, People
visibility of system status
Progress bar during a file download
evolution
Successful software evolves, its essential and planned, Architecture is a key for this
The "requirements" phase of the software lifecycle can be broken down into two sub-phases: "analysis" and "specification". What is requirements analysis? A. The requirements document B. The process of documenting what the software product should be C. The process of drawing use case diagrams D. 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
What is descriptive architecture
The result of architectural erosion
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(n):
UML class diagram
Basic, Alternative and Exception Flow
achieved, alternate way, not achieved
Requirements analysis
activity of discovering/obser/gather customers needs
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? fileSize price logIn description addToCart
add to cart
Software Qualities
adjectives/ characterisitcs (looks, feels, use)
configuration
all elements of the architecture laid out in a specific way that describes the overall architecture (or architectural style)
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." A. Assumptions/Risks B. Software qualities C. application context D. priorities/ Implementation Phases E. future changes
application context
Prescriptive vs Descriptive Architecture
as-designed/intended , as implemented/realized
error prevention
disabiling a button when clicked would lead to an error condition
Connector
element that handle interaction between different parts of the architecture
component
elements that comprise functionality and/or computation
Reuse is a major benefit of the Layered architectural style. Which layer(s) are usually the most reusable? Upper and lower layers Upper layers Lower layers Middle layers Upper and middle layers
lower layers
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? price logOut writeReview fileSize name
name
UML class diagram the bottom compartment = Attributes Subclasses Operations Name Superclass
operations
Failure
see it crash after runtime
Modularity
seperating dif modules
In a specification, which section would you describe that that software should be built to be secure and beautiful? A. Assumptions/Risks B. Software qualities C. application context D. functional requirements E. future changes
software qualities
what is relational database design
-SQLite database sort of thing
In a UML class diagram, what does an aggregation relationship indicate? -That one class inherits from the other class -That one class is contained within another class -That one class is equivalent to the other class -That one class overrides the other class
-That one class is contained within another class
In user-centered design, heuristic evaluation is: -A profile of a fictional potential user that helps you make user-centered decisions during development Correct Answer -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 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
-Using principles based on research to assess the usability of a system
Architecture style - Peer to Peer style
-one to everyone else (zoom)
Architecture style - Publish Subscribe Style
-only see what youre subscribed to
User Orientation - wireframes and mockups
-pictures of the interface
Verification vs Validation
-serve purpose (testing), conform to peoples requirements
Oracle
-way to know that proj is giving correct answer
The term "requirements specification" is used to refer to which of the following? 1 The process of documenting the requirements of the software product to be built 2The process of coming to know and understand what the software product should be 3. Correct Answer The requirements document
1 The process of documenting the requirements of the software product to be built 3. Correct Answer The requirements document
Aggregation vs Composition
1 obj can contain set of other objs <>, has to contain due to dependency
Architecture style - Model View Controller Style
1 view, 1 model/data, 1 controller btw view and model (atm)
Which one of the following is true about software architectural styles? A. A software architectural style rarely offers benefits to the resulting system. B. Using a software architectural style usually makes it harder to evolve the resulting system C. Using a software architectural style broadens the architectural design decisions we can make. D. A software architectural style provides us with a named set of components, connectors, and configurations. E. 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...
Abstraction
Which one of the following is not true about software architectural styles? A. A software architectural style can offer benefits to the resulting system B. Designing your software in an architectural style always results in a more efficient system. C. A software architectural style provides us with a named set of components, connectors, and configurations D. A software architectural style constrains the architectural design decisions we can make
B. Designing your software in an architectural style always results in a more efficient system.
Which one of the following statements is true about software architecture? A. All of these statements are true. B. When software evolves, architecture is a valuable tool in facilitating that evolution. C. Software architecture dictates the process a team uses to develop use cases for a system. D. Software architecture consists of all the design decisions about a software system. E. Software architecture defines the detailed, low-level structure of an implementation.
B. When software evolves, architecture is a valuable tool in facilitating that evolution.
Based on his "No Silver Bullet" essay, which one of the following pieces of advice would Fred Brooks be least likely to give? A.It is vital to invest in growing great software designers. B.You should always build functionality yourself from scratch rather than reuse existing software that provides the functionality you need. C.It is best to build software in small, iterative chunks. D.We should not expect to get orders of magnitude improvement in software engineering just by building new languages and tools E.It is impossible to accurately capture a customer's needs without prototyping.
B. You should always build functionality yourself from scratch rather than reuse existing software that provides the functionality you need
Which of the following statement is NOT correct? 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.
C. In a use-case diagram, the stick figures are drawn to always represent humans that interact with the system.
Recall the CNBC article about software used in health care. Which one of the following requirements analysis techniques was it most focused on? A. Interviewing the customer B. Analyzing usage data C. Building prototypes D. Observing the customer E. Creating use cases
D. Observing the customer
What is functional decomposition?
Decomposing a task, function, module, or system into smaller sub-tasks, sub-functions, or sub-modules
Mistake
Do something other that what you should do (user)
Which one of the following statements about requirements is false? A. Requirements issues are at the root of many software failures. B. What the customer wants is sometimes not the same as what the customer needs. C. If you get the requirements right, it will help avoid many costly fixes later on in the software life cycle. D. Requirements describe what the software should do, without saying how it should do it. E. The requirements phase is the mostly costly phase in the software life cycle, in terms of dollars spent.
E. The requirements phase is the mostly costly phase in the software life cycle, in terms of dollars spent.
Which of the following is not true about an architect? A. Often serves as an interface between key business stakeholder and the technical team B. Usually has broad training (in the domain and in software development) C. Usually is a key decision maker on the direction of how to make difficult implementation choices D. Often leads the technical development team E. Usually is an entry-level position F. No answer text provided.
E. Usually is an entry-level position
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)? A.Working for a company who contracts out their services to build software for other companies B. Developing the next great virus that will steal millions of peoples' personal information C. Writing software whose source code is released for free on the Internet with a team of geographically distributed individuals, on an unpaid, volunteer basis D. These are all equally likely E. Working in the IT department of a company, writing software for "customers" who are also part of that same company
E. Working in the IT department of a company, writing software for "customers" who are also part of that same company
What are three perspectives on SE
Engineering, Business, User
Functional Requirements
Everything that software should do (features)
User
Everything that the user sees
Engineering Perspective
Internal quality of software
Error
Internal, wrong path or assigned val when executing
Fault/Bug
Look at code and see/point out wrong thing
Coupling
Many tight dependencies or associations across multiple components, and high levels of this is undesirable for a good design
In the Layered architectural style: - None of these -The upper layers are the most reusable. -Any component can communicate with any other component in the architecture. -Components are organized around one centralized server.
NOne of these
Of the three essential ingredients of software engineering, which one can make up for shortcomings in the other two?
People
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? A. Assumptions/Risks B. Software qualities C. application context D. functional requirements E. future changes
Software Qualities
Briefly describe the software-engineering principle of "generality" and give an example of a software-engineering task or concept that demonstrates this principle.
The principle of generality is to be efficient with what is being built in the sense that what you are doing is reusable so it can be applied to other projects. An example of this can be reusing code and interfaces to make a new model. For instance a car, the general components can be used and just add to that to improve it.
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 of incrementality is doing the work in steps or batches. It is starting with one small part of the project and adding on to it until it becomes more of what your expected outcome. An example of this is versions of something being built. Start with a version that has the minimum parts for it to work and begin releasing other version that contain additions.
What do requirements define?
The what, not the how
Reasons for usability fails
instructions, info, misplaced, confusion
accelerators
keyboard shortcuts
User control and freedom
undo button
What are the levels of testing?
unit, functional, system
Ziv's Law
unpredictable, don't know what you have until you have something