Informatics 43 Quiz 1
Memorize one quoted definition of software engineering
"Multi-person construction of multi-version software" -Parnas
Know and understand the 3 perspectives of software engineering
Business- cost, time, profit Engineering- internal quality of software, architecture of the system, Therac-25 example (change from hardware to software interlocks) User- external quality of the software, UI Inf43- process of constructing software, phases of development other than programming, principles and qualities of enduring value
3 "Essential Ingredients" of Software Engineering
*People* -->Processes --> Tools
No Silver Bullet- Know and understand the "Potential Silver Bullets" on the essential difficulties (BRIG)
1) Buy vs. Build 2) Requirements refinement and rapid prototyping 3) Incremental development 4) Great designers
No Silver Bullet- Know and understand the essential difficulties of software engineering (COCOCHIN)
1) Complexity- "no two parts are alike", difficult communication, difficult to extend/modify, unreliability, security trapdoors 2) Conformity- software must conform to human institutions and systems 3) Changeability- "All successful software gets changed" because it can & because people want it to 4) Invisibility- "the reality of software is not inherently embedded in space", difficult to understand and communicate with others
Knowledge of the videos shown in class
1) SE intro video -must be handled in groups -reliability for user -more to it than just coding 2) Self-driving cars -take into account the habits and actions of everything around the car -geometric understanding of world around -follows a single path around 3) The art of abstraction -Going out to figure out how things work and why -Driven by curiosity
Know and understand the "Inf43 Recurring Fundamental Principles" of software engineering (SIGAR)
1) Separation of concerns -modularity -divide and conquer -abstraction 2) Incrementality 3) Generality 4) Anticipation of change 5) Rigor and formality