Midterm Flashcards
What is proof of concept?
Validate assumptions
Prototype
Preliminary visualization of the product
What is MVP
Minimum Viable Product
(minimal usable form of a complete product, has enough features to be viable in a market)
Why do we care about confidentiality in projects?
We care about the confidentiality of their employers or clients.
Why do we care about competance?
Engineers should not misrepresent their level of competence.
Why do we care about intellectual property rights?
Engineers should be aware of local laws governing the use of intellectual property.
Why do we care about computer misuse?
Engineers should not use their technical skills to misuse other people’s computers.
What are the 8 IEEE codes of ethics?
Public, Client and Employer, Product, Judgement, Management, Profession, Colleagues, Self
Hyrum’s Law
Whatever you deliver, someone is going to use it in a way you never imagined.
Give more information on your interface.
Make fewer assumptions about code.
What is Software Engineering?
The application of systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.
What is a software crisis?
project runs over-budget
project runs over-time
software was inefficient
software was low quality
software did not meet requirements
project was unmanageable
code was difficult to maintain
software was never delivered
What are the top 3 project success factors?
User involvement, Executive Management Support, Clear Statement of Requirements
What are the top 3 project challenged factors?
lack of user input, incomplete requirement or specifications, changing requirements or specifications
What are the top 3 project impaired factors?
incomplete requirements, lack of user involvement, lack of resources
What are the four things that lead to a productive meeting?
Have a chair, Set an agenda, Document the meeting, Make tangible action items assigned to people
What are the four things Ozkaya says every software engineer should know?
- Fundamental Knowledge Areas
- Data Science
- Computing Hardware
- Socially Responsible Engineering
What is a Software Process?
A set of activities, methods, practices, and transformations that people use to develop and maintain software and the associated products.
What is the software lifecycle?
Requirements -> Design -> Coding -> Testing -> Deployment -> Repeat
What are software specifications?
The process of establishing what services are required and the constraints on the system’s operation and development.
What is software validation?
It is intended to show that a system conforms to its specification and meets the requirements of the customer.
Verification: “are we building the product right?”
Validation: “are we building the right product?”
Use AIDT, Analysis, Investigation, Demonstration, Test.
What are different software methodologies?
Waterfall, V model, prototyping, operational specification, transformation model, phased development, spiral model, agile model
What is the waterfall method?
It has separate phases that are run through once. Used when requirements are well understood and there is low risk.
POS, CRM, Banking, Healthcare
What is the software design V Model
Adv: tangible phases, tests written at the start, equal weight to development and testing.
Testing happens at all stages of development.
What is the incremental software design strategy?
Working on one feature at a time.
Pros: early increments act as prototype, lower risk of failed project
Cons: system structure tends to degrade