lectures.alex.balgavy.eu

Lecture notes from university.
git clone git://git.alex.balgavy.eu/lectures.alex.balgavy.eu.git
Log | Files | Refs | Submodules

software-development-process.html (3242B)


      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4 <script type="text/javascript" async src="https://cdn.jsdelivr.net/gh/mathjax/MathJax@2.7.5/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
      5 <link rel="Stylesheet" type="text/css" href="style.css">
      6 <title>software-development-process</title>
      7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      8 </head>
      9 <body>
     10 
     11 <div id="Software development process"><h2 id="Software development process">Software development process</h2></div>
     12 
     13 <p>
     14 main activities:
     15 </p>
     16 <ul>
     17 <li>
     18 requirements engineering
     19 
     20 <ul>
     21 <li>
     22 specifies the main functionalities of the system
     23 
     24 <li>
     25 defines the qualities to be met
     26 
     27 </ul>
     28 <li>
     29 design
     30 
     31 <ul>
     32 <li>
     33 give shape to a system via models
     34 
     35 <li>
     36 not a clear-cut sequential process
     37 
     38 </ul>
     39 <li>
     40 implementation and testing
     41 
     42 <ul>
     43 <li>
     44 involves actual development of the system
     45 
     46 <li>
     47 component testing – test individual components independently
     48 
     49 <li>
     50 system testing – test the system as a whole (including emergent properties like overall performance)
     51 
     52 <li>
     53 acceptance testing – test with customer data to see if the system meets the customer's needs
     54 
     55 </ul>
     56 <li>
     57 evolution
     58 
     59 <ul>
     60 <li>
     61 software is inherently flexible and can change
     62 
     63 </ul>
     64 </ul>
     65 
     66 <div id="Software development process-Waterfall development process"><h3 id="Waterfall development process">Waterfall development process</h3></div>
     67 
     68 <p>
     69 <img src="img/waterfall-dev.png" alt="Waterfall dev process image" />
     70 </p>
     71 
     72 <p>
     73 exists in many variants, all with sequential flow. it's document-driven.
     74 </p>
     75 
     76 <p>
     77 issues: poor agility (when do you know how far you are in the project?), poor quality (cuts if you run out of time), high risk (finding issues in test phase)
     78 </p>
     79 
     80 <p>
     81 critical evaluation:
     82 </p>
     83 <ul>
     84 <li>
     85 positive:
     86 
     87 <ul>
     88 <li>
     89 precise planning and management – standard-oriented
     90 
     91 <li>
     92 postpone implementation to after understanding objectives
     93 
     94 <li>
     95 good documentation
     96 
     97 </ul>
     98 <li>
     99 negative:
    100 
    101 <ul>
    102 <li>
    103 hard to get all requirements once and for all (users might not even know what they want)
    104 
    105 <li>
    106 rigid
    107 
    108 <li>
    109 no feedback from the customer
    110 
    111 <li>
    112 no parallelism, all phases are blocking (because sequential)
    113 
    114 <li>
    115 a single delivery date at the end
    116 
    117 </ul>
    118 </ul>
    119 
    120 <div id="Software development process-Agile development process"><h3 id="Agile development process">Agile development process</h3></div>
    121 <p>
    122 iterative development processes with:
    123 </p>
    124 <ul>
    125 <li>
    126 frequent releases of the product
    127 
    128 <li>
    129 continuous interaction between dev team and customer
    130 
    131 <li>
    132 reduced product documentation
    133 
    134 <li>
    135 continuous and systematic assessment of produced value and risks
    136 
    137 </ul>
    138 
    139 <p>
    140 agile in practice:
    141 </p>
    142 <ul>
    143 <li>
    144 make a list
    145 
    146 <li>
    147 estimate
    148 
    149 <li>
    150 set priorities
    151 
    152 <li>
    153 start executing
    154 
    155 <li>
    156 update the plan at run time
    157 
    158 </ul>
    159 
    160 <p>
    161 critical evaluation:
    162 </p>
    163 <ul>
    164 <li>
    165 positive:
    166 
    167 <ul>
    168 <li>
    169 acceptance of change – less risky
    170 
    171 <li>
    172 frequent and short iterations
    173 
    174 <li>
    175 emphasis on working code
    176 
    177 <li>
    178 associates a test with every piece of functionality
    179 
    180 <li>
    181 continuous integration and delivery
    182 
    183 </ul>
    184 <li>
    185 negative:
    186 
    187 <ul>
    188 <li>
    189 feature-based development &amp; ignorance of dependencies
    190 
    191 <li>
    192 no strong quality plan
    193 
    194 <li>
    195 less focus on architecture of system (in fact, dismisses everything that isn't shippable)
    196 
    197 </ul>
    198 </ul>
    199 
    200 </body>
    201 </html>