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 & 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>