Final Exam Part I Flashcards
(37 cards)
What is Software Engineering and how does it differ from other engineering disciplines?
Creating cost-effective software solutions to practical computing problems by applying scientific/codified knowledge; building software systems in the service of mankind. \+ Scope is unbound \+ Few tech limitations \+ Restricted use of math \+ Continuous invention/creation
What is the Hype Cycle?
A graphical representation that shows the life cycle stages as technology goes through conception to maturity and widespread adoption.
*Bonus:
What are the 5 stages of the Hype Cycle?
5 Stages:
Technology Trigger - A potential technology breakthrough
Peak of Inflated Expectations - Early publicity produces success story
Trough of Disillusionment - Interests wane as experiments and implementations fail
Slope of enlightenment - More instances of how the technology can benefit come about
Plateau of Productivity - Mainstream adoption starts to take off
Explain why most software projects are delivered after the deadline, over the budget, with failures, or without satisfying the clients. How one can improve this situation?
This is commonly due to a lack of communication between the developers and customers. By not constantly questioning the target audience, the developer might not develop the the proper product. Deadlines are usually short sighted, assigning too much work in too little time.
Fix this by communicating better about how long things will take to the customer and allow flexible deadlines, pushing it back whenever needed.
Explain why software deteriorates over time.
Software deteriorates over time because technology continues to push forward and update. As technology changes, changes in its software must reflect this behavior. This, as well as bug fixes, and software improvements are required to keep a standard user base.
Explain why people use the expression “There is no silver bullet” for software engineering.
There is not “one” software that solves all of the problems. (i.e. It may be good at storing arrays and adding to the data, but could be slow at accessing the data).
Explain the concept of “the mythical man-month.”
Throwing more man power at a late software project will only make it later.
(Think about a bunch of people learning the entirety of a project at the late stages of its development life in order to help with some crucial bug… very hard to do!)
Explain design thinking (and its process).
Design thinking is an ideology supported by an accompanying process.
The process:
+ Understand the problem by first researching the situation of the users
+ Define a problem based on your research
+ Generate multiple ideas on how to solve the issue
+ Test the validity of the ideas
+ Build real tactile prototypes to represent the idea
+ Test prototypes
+ Implement the idea (if it passes previous tests).
What is a business model canvas?
An organization tool to flesh out important business aspects about a company. Start with 9 guesses, end with 9 facts.
*Bonus:
List the 9 organizational categories of a business model canvas.
Be able to explain each category.
Key Partners
Who are your key partners?
What are your key suppliers?
What are you getting from them… and giving to them?
Key Activities What key activities does your business require? \+ Manufacturing? \+ Software development? \+ Personal concierge service? What will you do as a business?
Value Propositions
What customer problems are you helping to solve?
What customer needs are you satisfying?
Why will they repeatedly pay for your solution?
Customer Relationships
How will you get, keep, and grow customers?
Customer Segments
Who are your most important customers?
What are their archetypes?
What job do they want you to get done for them?
Key Resources What key resources do you require? \+ Financial? \+ Physical? \+ Intellectual property? \+ Human resources? How will you support these?
Channels Through which channels do your customers want to be reached? Types of channels: \+ Sales \+ Distribution \+ Support
Cost Structure
What are most important costs inherent in your business model?
What is the mix of fixed and variable costs?
Revenue Streams
How will you make money?
What is revenue model?
What are pricing tactics?
What is a value proposition?
Be able to give an example.
Value proposition is the value obtained from the use of the system.
A value proposition statement addresses; the product, the target customer, the value you provide, and why your product is unique to others.
Example: Google -
“Google allows internet users to find relevant information quickly and easily.”
In the example, “finding information quick” is the value delivered by Google.
The statement that it is relevant information and easy to use seems important but these are software features or non-functional requirements to help deliver the value that is finding information quickly.
What is the Problem-Solution Fit and why is it important?
“Can you identify and validate a problem or need in the market that enough people care about?”
“Do you have a feasible solution for meeting this problem or need?”
(watch out for Mike Tyson)
Without this there is little to no point in continuing a project because little to no one will use it or it does not fix any problems.
How does the Consumer Development methodology work?
Consumer development improves product success by developing a better understanding of their stakeholders. It is a balanced relationship between developing a product and understanding the consumer.
What are functional requirements? Give examples.
Statements of functions or services to be provided by the system.
What is the system supposed to do?
What is the system supposed to look like?
What inputs does the system need?
How should the system respond to errors?
What are non-functional requirements? Give examples.
Specify criteria that can be used to judge the operation of a system, rather than specific behaviors. (Not what, but how)
Flexibility, portability, re-usability, reliability, maintainability, security, safety, performance, effectiveness, efficiency, reliability, maintainability, satisfaction, etc.
What is the ‘Waterfall Cycle’?
The engineer does all the planning of requirements and thoroughly analyzes the system. Then they complete the design and implement the design. The system is then sent out for development. These steps are all done relatively in order.
What is the ‘Iterative Cycle’?
Allows us to build a product, measure the systems non-functional requirements, and learn from the resulting feedback from consumers. Then we can deploy after each time we build the revised product to receive more feedback.
Why choose ‘Iterative Cycle’ over ‘Waterfall Cycle’?
The iterative cycle is very forgiving as a requirements engineering approach in comparison to waterfall, which is very restricted.
What is MVP and what is it used for?
The Minimum Viable Product is a product with just enough features to gather validated learning about the product and its continued development.
What is ISO 25010:2011?
A product quality model. Specifies the non-functional requirements that most software seeks to achieve.
List four characteristics of a product quality model described in ISO 25010:2011.
Here are all eight and their descriptions:
Functional Suitability
+ degree to which a product or system provides functions that meet stated and implied needs when used under specified conditions
Usability
+ degree to which a product or system can be used by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use
Performance Efficiency
+ performance relative to the amount of resources used under stated conditions
Maintainability
+ degree of effectiveness and efficiency with which a product or system can be modified by the intended maintainers
Compatibility
+ degree to which a product, system or component can exchange information with other products, systems or components, and/or perform its required functions, while sharing the same hardware or software environment
Reliability
+ degree to which a system, product or component performs specific functions under specified conditions for a specified period of time
Security
+ degree to which a product or system protects information and data so that persons or other products or systems have the degree of data access appropriate to their types and levels of authorization
Portability
+ degree of effectiveness and efficiency with which a system, product or component can be transferred from one hardware, software or other operational or usage environment to another
What are the most important non-functional requirements for critical systems, real-time systems and embedded systems?
Critical Systems - Reliability
Real-time systems - Performance Efficiency
Embedded systems - Functional Suitability
What are ‘Use-Case Descriptions’?
+ Often describe in more detail than a user story how a user will interact with the system or components.
+ Detail the general flow of the interaction and how different things can happen at different stages of interaction.
+ May detail one user story, but often splits into multiple stories depending on the complexity of the user case.
What are ‘User Stories’?
+ Used as a form of dialogue between developer and stakeholder, allowing for communication and discussion about a feature to be implemented.
+ Easily represents the Who, What, and Why for the feature.
+ Usually is a chunk of functionality to implement for a set of requirements that can be easily accomplished or estimated.