century:principles_of_software_engineering
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
century:principles_of_software_engineering [2012/07/24 16:29] – mithat | century:principles_of_software_engineering [2012/07/25 16:00] – [Modularity] mithat | ||
---|---|---|---|
Line 3: | Line 3: | ||
====== Principles of Software Engineering ====== | ====== Principles of Software Engineering ====== | ||
Mithat Konar\\ | Mithat Konar\\ | ||
- | July 23, 2012 | + | July 24, 2012 |
===== Adapted from ===== | ===== Adapted from ===== | ||
- | + | [[http:// | |
- | * Ghezzi, Carlo, Mehdi Jazayeri, and Dino Mandrioli. " | + | |
===== Introduction ===== | ===== Introduction ===== | ||
Line 41: | Line 40: | ||
===== The principles ===== | ===== The principles ===== | ||
- | * **Rigor and formality** | + | * **Rigor and formality** |
* Separation of concerns | * Separation of concerns | ||
* Modularity | * Modularity | ||
Line 70: | Line 69: | ||
===== The principles ===== | ===== The principles ===== | ||
* Rigor and formality | * Rigor and formality | ||
- | * **Separation of concerns** | + | * **Separation of concerns** |
* Modularity | * Modularity | ||
* Abstraction | * Abstraction | ||
Line 100: | Line 99: | ||
* Rigor and formality | * Rigor and formality | ||
* Separation of concerns | * Separation of concerns | ||
- | * **Modularity** | + | * **Modularity** |
* Abstraction | * Abstraction | ||
* Anticipation of change | * Anticipation of change | ||
Line 107: | Line 106: | ||
===== Modularity ===== | ===== Modularity ===== | ||
- | * Divide | + | * Division of the system into smaller //modules// |
- | * Typically results it a tree of modules and submodules | + | |
* // | * // | ||
* " | * " | ||
Line 126: | Line 124: | ||
* Separation of concerns | * Separation of concerns | ||
* Modularity | * Modularity | ||
- | * **Abstraction** | + | * **Abstraction** |
* Anticipation of change | * Anticipation of change | ||
* Generality | * Generality | ||
Line 132: | Line 130: | ||
===== Abstraction ===== | ===== Abstraction ===== | ||
- | * In general use, abstraction means the process of considering something "apart from application to or association with a particular instance."< | + | * In general use: considering something "apart from application to or association with a particular instance."< |
- | * In S/W Engineering, abstraction means wrapping a concept such that it: | + | * In S/W Engineering: wrapping a concept such that it: |
* Expresses the concept only in terms of what is relevant | * Expresses the concept only in terms of what is relevant | ||
* Shields the user from everything that's not relevant | * Shields the user from everything that's not relevant | ||
Line 156: | Line 154: | ||
* Modularity | * Modularity | ||
* Abstraction | * Abstraction | ||
- | * **Anticipation of change** | + | * **Anticipation of change** |
* Generality | * Generality | ||
* Incremantality | * Incremantality | ||
Line 172: | Line 170: | ||
* Abstraction | * Abstraction | ||
* Anticipation of change | * Anticipation of change | ||
- | * **Generality** | + | * **Generality** |
* Incremantality | * Incremantality | ||
Line 191: | Line 189: | ||
* Anticipation of change | * Anticipation of change | ||
* Generality | * Generality | ||
- | * **Incremantality** | + | * **Incremantality** |
===== Incremantality ===== | ===== Incremantality ===== | ||
*//A journey of a thousand miles begins with a single step.// ---Lao-tzu mistranslation< | *//A journey of a thousand miles begins with a single step.// ---Lao-tzu mistranslation< | ||
* Development proceeds in a stepwise fashion (i.e., in // | * Development proceeds in a stepwise fashion (i.e., in // | ||
+ | * " | ||
* Deliver subsets of a system early to get early feedback | * Deliver subsets of a system early to get early feedback | ||
* Deliver prototype of the system and incrementally add effort to turn it into product | * Deliver prototype of the system and incrementally add effort to turn it into product | ||
* Implement functionality, | * Implement functionality, | ||
- | * " | ||
* Supports **anticipation of change** | * Supports **anticipation of change** | ||
* Example: [[http:// | * Example: [[http:// | ||
Line 207: | Line 205: | ||
* Conflicts among principles may arise. | * Conflicts among principles may arise. | ||
* Software engineering is: | * Software engineering is: | ||
- | * a new field and subject to change | + | * a new field and subject to change. |
* made by humans for humans. | * made by humans for humans. | ||
- | * Your contemplations and considerations | + | * Your contemplations and contributions |
===== Endnotes ===== | ===== Endnotes ===== |
century/principles_of_software_engineering.txt · Last modified: 2012/07/25 16:07 by mithat