Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
16 Cards in this Set
- Front
- Back
Product?
|
Result of applying people, processes, and tools
Consists of many deliverables Software Documentation User manuals Test cases Design documents Intrinsic qualities Saftey Reliability User friendliness |
|
Context
Programming |
Small project
You Build what you want One product Few sequential changes Short-lived Cheap Small consequences |
|
Tools?
|
Needed to support people and processes
Scarce resource Quality Suitability Cost Many different kinds of tools (People support) Drawing Analysis (Process support) Project management Source code management |
|
Software Engineering? [Schach]
|
"A discipline whose aim is the production of fault-free software, delivered on-time and within budget, that satisfies the user's needs. Futhermore, the software must be easy to modify when the user's needs change."
|
|
Software Engineering? [Parnas]
|
"Multi-person construction of multi-version software."
|
|
From Programming to Engineering
People? |
Who else would do the work?
Range from novice to very experienced |
|
From Programming to Engineering
Processes? |
To organize and manage the efforts of individuals
Range from informal to very formal |
|
Software Engineering? [van der Hoek]
|
"Difficult."
|
|
People, Processes, Tools, Products
|
Products are always the eventual goal
Selling products creates revenue Selling good products creates lots of revenue Selling bad products creates little revenue People, processes, and tools are retained by organization Build a reputation through the quality of products Create organizational culture Important to keep the team intact |
|
From Programming to Engineering
Tools? |
To support the people and the processes
Range from simple to very advanced |
|
Software Engineering? [Ghezzi, Jazayeri, Mandrioli]
|
"A discipline that deals with the building of software systems which are so large that they are built by a team or teams of engineers."
|
|
What makes it engineering?
|
Project plans
Teams are assembled Processes are designed Tools are purchased Goals are established Difficulties are anticipated Tradeoffs Limited resources Repetition Same basic prinicples hold in many different settings |
|
Processes?
|
Essential to achieve a quality product
Scarce resource Quality Suitability Cost Many different kinds of processes Bug tracking Change approval Quality assurance |
|
People?
|
The single most important factor in the success/failure of a product
Scarce resource Quality Suitability Cost Many different kinds of people Managers Programmers Technical writers |
|
Why do we do it?
|
Economic 101
More revenue Better people, processes, tools -> better product Better product->more customers More customers->more revenue More revenue->more profit Less expense Better people, processes, tools -> less time Less time -> less expense Less expense -> more profit Critical Software Leaving a legacy |
|
Context
Engineering |
Huge project
Teams Build what they want Family of products Many parallel changes Long-lived Costly Large consequences |