Midterm Flashcards
(48 cards)
What is SWE?
An engineering discipline concerned with all aspects of SW production
What is the difference between SWE and CS?
CS focuses on theory and fundamentals; SWE is concerned with the practicalities of developing and delivering useful SW
What are the fundamental SWE activities?
specification, development, validation, and evolution
What are the key challenges facing SWE?
coping with increasing diversity, demands for reduced delivery times, and developing trustworthy software
What are the costs of SWE?
Roughly 60% developmental and 40% testing; for custom SW, evolution costs often exceed development
What are the types of SW products?
generic & customized products
What are the attributes of good SW?
maintainability, dependability and security, efficiency, and acceptability
What types of SW applications are there?
stand-alone, interactive transaction-based, embedded control systems, batch processing systems, entertainment (media) systems, systems for model and simulation, data collection systems, systems of systems
What are the eight principles of the ACM/IEEE Code of Ethics?
public, client & employer, product, judgement, management, profession, colleagues, and self
What are the biggest reasons that SW fails?
COME BACK
What is the difference between plan-driven and agile processes?
In plan-driven, activities are planned for progress to be measured against. In agile, there is incremental planning. In practice, the process is a mix of both.
What are the types of SW process models?
The Waterfall Method, Incremental Development, and Integration & Configuration
What is the Waterfall method and what is it good for?
a plan-driven process with distinct phases that you cannot go back to; best for large system engineering projects with stable requirements
What is incremental development?
A process where specification, development, and validation are interleaved (could be plan-driven or agile)
What are the pros and cons of incremental development?
there’s a reduced cost of accommodating changing customer reqs, its easier to get customer feedback, and quicker delivery/deployment of usable SW for the customer; the process isn’t visible and system structure tends to degrade with incremental changes
What is integration & configuration?
Making SW from already existing components for reduced costs & risks and faster delivery/deployment, but requirements compromises may not meet real needs of users and there’s loss of control over evolution or reused components
How do you reduce the cost of rework?
Anticipate (activities allows for change to happen like prototyping) and Tolerance (allow for change at a low cost)
How do you cope with change?
System prototyping and Incremental delivery?
What are the approaches to SW improvement?
Maturity approach (improving process and project management by using better SWE practices) and Agile approach (iterative changes)
What are the levels in the SEI Maturity Model?
Initial, Repeatable, Defined, Managed, Optimizing
What are the activities in process improvement?
Measurement, Analysis, Change
What are the process metrics for measurement?
time taken to complete tasks, resources needed to complete tasks, or number of occurrences of an event (like defects)
What are the values of agile?
Individuals and Interactions over process and tools, Working Software over comprehensive documentation, Customer Collaboration over contract negotiation, Responding to Change over following a plan
What are the parts of Scrum?
Development team, product backlog, scrum meeting, scrum master, sprint (usually 2-4 weeks), velocity