What are the Prescriptive Process models?
V-Model, Waterfall, Spiral, Prototyping, Unified Process
What are the Agile Process models?
Scrum, XP, DevOps, Evolutionary Process Flow, KanBan
What is software?
The logical element of a system.
What’s the main reason the failure rate of software increases with time?
Debugging becomes harder as program gets longer
What are the 7 kinds of software?
System, Application. Engineering, Embedded, Product-Line, Mobile/Web, AI
What are the 4 software engineering layers?
Tools, Methods, Process, Quality Control
What is system software?
Software that supports other software i.e. compilers
What is application software?
Programs that solve business needs i.e. Photoshop, Minecraft
What is engineering software?
Number crunching programs i.e. modeling consumer spending habits
What is embedded software?
Program that sits in a product i.e. key pad on microwave
What is product-line software?
Collection of similar software systems i.e. Microsoft 365
What are web applications? (software)
Programs delivered through your browser i.e. OWL
What are mobile applications? (software)
Programs for mobile devices
What is artificial intelligence software?
Programs that use artificial intelligence i.e. ChatGPT
Why do we spend so much effort maintaining existing programs?
Errors in delivered software must be fixed, changes to OS’s cause new errors, bad documentation takes longer to fix
What is the tools layer of software engineering?
Helps automate and support software engineering processes and methods
What is the methods layer of software engineering?
The technical how to’s when building the software.
What is the process layer of software engineering?
Details all the steps you take when writing the program
What is the quality layer of software engineering?
Quality software is important
What is a process?
A collection of activities and tasks to do
What are the 5 key activities in software engineering?
Communication, planning, modeling, construction, deployment
What is an action?
Covers a set of tasks that make a major work product.
What is a task?
A small well defined objective that make a tangible outcome
What is a framework vs umbrella?
Framework - Done one at a time in steps.
Umbrella - Done throughout process
What does UML stand for? And what is it?
Unified Modeling Language. A pictorial language
What is forward engineering?
Creating models and plans for a system you haven’t created.
What is agility?
Effective, fast response to change.
What are the 5 framework activities for the scrum model?
Requirements, analysis, design, evolution, delivery
How long does a sprint last? (Scrum model)
2-4 weeks
What are the small teams in the Scrum model made of?
Product owner, scrum master and dev team
What are the 5 types of scrum meetings?
Backlog refinement, sprint planning, daily, sprint review, sprint retrospective
What are the pros of scrum?
Product owner sets priorities, light documentation, good for frequent updating
What are the cons of scrum?
Hard to control cost of change, bad for big, non-expert teams
What are the 4 framework activities of XP (Extreme Programming?
Planning, design, coding, testing
XP Programming uses ___ programming
pair
What are the pros of XP Programming?
Lots of customer involvement, rational schedules, good dev collaboration
What are the cons of XP Programming?
Temptation to ship a prototype, needs frequent meetings, devs must be expert
What is the defining feature of the Kanban framework?
Uses a big board that shows tasks and their progress
What are the pros of Kanban?
Low budget and time needed, flexible
What are the cons of Kanban?
Dependent on collaboration, can cause devs to lose focus
What is the defining feature of the DevOps framework?
It has several stages that loop: development, testing, integration, deployment, monitoring
What are the pros of DevOps?
Fast, team has monitoring staff members
What are the cons of DevOps?
Very high maintenance, pressure to work on both old and new code, reliant on automated tools
What are requirements?
Statements that descrive the stakeholder’s needs and wants
What are functional vs non-functional requirements?
Functional - An action, system must do x
Non-Functional - A property, system must be x
What are the INVEST principles for good user stories?
Independent, negotiable, valuable, estimable, small, testable
What is an epic?
A set of related user stories, takes multiple sprints
What is a use case?
Varying length, detailed description of a system from an actor’s pov
What is a user story?
Short, simple descriptions detailed by user usually
What is the recommended process model for this course?
A hybrid of agile and spiral model.
What are the stages of the recommended model?
Requirements, design, estimate resources, make prototype, evaluate prototype, go, no go,
What 2 things should every prototype have?
Features visible to users (i.e. GUI) that makes it easy to test and backend to support those features
What is the waterfall model?
One activity flows into another, simplest model
What is the V-Model?
Basically the waterfall model but folded, has a bunch of testing at the end tho
What is the prototyping process model?
Iterative model, focuses on making quick prototypes
What is the spiral model?
Iterative model, combines simplicity of waterfall and quick prototypes of prototype process
What is the unified process model?
Iterative model, uses a lot of UML diagrams, heavy documentation, good for maintenance projects
What are the pros and cons of Waterfall/V model?
Pros: Simple, good for small projects
Cons: No way to go back and customer involvement happens at the end
What are the pros and cons of prototyping process model?
Pros: Frequent customer involvement, if requirements change, it’s ok
Cons: Frequent involvement can cause delays, temptation to ship prototype
What are the pros and cons of the spiral model?
Pros: Frequent customer involvement, works for big projects
Cons: Hard to manage, needs a good team
What are the pros and cons of the unified process model?
Pros: Good documentation, good for maintenance projects
Cons: Maybe too much documentation, needs a good team
What is the defining feature of unified process model?
Recognizes the importance of customer communication
What did George Polya say was the essence of software engineering practice?
Understand problem, plan solution, do plan, examine result