User Tools

Site Tools


century:principles_of_software_engineering

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
century:principles_of_software_engineering [2012/07/24 16:32] mithatcentury: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://www.pearsonhighered.com/pearsonhigheredus/educator/product/products_detail.page?isbn=0133056996|{{:century:fundamentals-swe-cover.jpg?150 |}}]]Ghezzi, Carlo, Mehdi Jazayeri, and Dino Mandrioli. "[[http://www.pearsonhighered.com/pearsonhigheredus/educator/product/products_detail.page?isbn=0133056996|Software Engineering Principles]]." In //Fundamentals of Software Engineering//. 2nd ed. Upper Saddle River, N.J.: Prentice Hall, 2003. 41-66.
-  * Ghezzi, Carlo, Mehdi Jazayeri, and Dino Mandrioli. "[[http://www.pearsonhighered.com/pearsonhigheredus/educator/product/products_detail.page?isbn=0133056996|Software Engineering Principles]]." In //Fundamentals of Software Engineering//. 2nd ed. Upper Saddle River, N.J.: Prentice Hall, 2003. 41-66.+
  
 ===== 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 the system into smaller //modules// +  * Division of the system into smaller //modules//
-  * Typically results it a tree of modules and submodules+
   * //Decomposition//: recursively subdividing the system    * //Decomposition//: recursively subdividing the system 
       * "Divide and conquer"       * "Divide and conquer"
Line 126: Line 124:
   * Separation of concerns   * Separation of concerns
   * Modularity   * Modularity
-  * **Abstraction** +  * **Abstraction**
   * Anticipation of change   * Anticipation of change
   * Generality   * Generality
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<sup>[[http://www.quotationspage.com/quote/24004.html|4]]</sup>   *//A journey of a thousand miles begins with a single step.// ---Lao-tzu mistranslation<sup>[[http://www.quotationspage.com/quote/24004.html|4]]</sup>
   * Development proceeds in a stepwise fashion (i.e., in //increments//).   * Development proceeds in a stepwise fashion (i.e., in //increments//).
 +    * "Iterative refinement"
     * 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, then tune performance     * Implement functionality, then tune performance
-    * "Iterative refinement" 
   * Supports **anticipation of change**   * Supports **anticipation of change**
   * Example: [[http://adium.im|Adium]]'s [[https://bitbucket.org/adium/adium/changesets|commit history]]   * Example: [[http://adium.im|Adium]]'s [[https://bitbucket.org/adium/adium/changesets|commit history]]
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 are crucial.+  * Your contemplations and contributions are crucial.
  
 ===== Endnotes ===== ===== Endnotes =====
century/principles_of_software_engineering.txt · Last modified: 2012/07/25 16:07 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki