Главная - Литература

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 [219] 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294

вы должны измерить их. Заявления типа «Этот новый метод выглядит более эффективным» недостаточно хороши.

что измеряется, то вшолня- Отдавайте себе отчет о побочных эффектах илме-gj рения Измерение влияет на мотивацию. Люди обращают

Ш Птт (Тот Peters) внимание на выполняемые измерения, предполагая, что измерения служат для их оценки. Выбирайте объекты для измерения осторожно. Люди имеют склонность сосредоточиваться на работе, которая измеряется, и игнорировать остальную.

Возражать против измерений означает утверждать, что лучше не знать о там, что на саман деле происходит Если вы измерите какой-то аспект проекта, вы узнаете о нем нечто, чего не знали ранее. Вы сможете увидеть, стал ли проект больше или меньше или остался таким же. Измерение предоставляет вам окно, через которое вы можете увидеть хотя бы этот аспект проекта. Окошко может быть маленьким и мутным до тех пор, пока вы не уточните свои измерения, но это все равно лучше, чем не иметь окна вообще. Возражать против любых измерений лишь потому, что некоторые из них неубедительны - все равно, что возражать против наличия окон, потому что некоторые из них могут быть мутными.

Вы можете измерить практически любой аспект процесса разработки ПО. Вот некоторые виды измерений, которые некоторые профессионалы посчитали полезными (табл. 28-2).

Табл. 28-2. Полезные объекты для измерения в области разработки ПО

Размер Качество в целом

Общее количество строк Общее число дефектов

Общее количество строк комментариев Число дефектов в каждом классе или методе

Общее число классов или методов Среднее количество дефектов на тысячу

строк кода

Общее количество объявлений данных Среднее время между сбоями Общее число пустых строк Ошибки, выявленные компилятором

Отслеживание дефектов Удобство сопровождения

Серьезность каждого дефекта Число открытых методов каждого класса

Местонахождение каждого дефекта Число параметров, передаваемых каждому

(класс или метод) методу

Происхождение каждого дефекта Число закрытых методов и/или переменных

(требования, проект, конструирование, в каждом классе

тестирование)

Способ, каким исправлялся каждый Число локальных переменных, используемых

из дефектов каждым методом

Лицо, ответственное за каждый дефект Число методов, вызываемых в каждом классе

или методе

Число строк, задействованных Число точек принятия решений в каждом

в исправлении каждого дефекта методе

Количество рабочих часов, потребовав- Сложность управляющей логики

шихся для исправления каждого дефекта в каждом методе

Среднее время, требуемое для поиска Число строк кода в каждом классе или методе

дефекта



Табл. 28-2. (продолжение)

Среднее время, требуемое для исправления дефекта

Число попыток, предпринятых для исправления каждого дефекта

Число новых ошибок, появившихся в результате исправления дефекта

Число строк комментариев в каждом классе или методе

Количество объявлений данных в каждом классе или методе

Число пустых строк в каждом классе или методе

Количество операторов goto в каждом классе или методе

Количество операторов ввода или вывода в каждом классе или методе

Производительность

Количество человеко-часов, затраченных на проект

Количество человеко-часов, потраченных на каждый класс или метод

Количество изменений каждого класса или метода

Сумма в долларах, потраченная на проект

Сумма в долларах, потраченная на строку кода

Сумма в долларах, потраченная на каждый дефект

Вы можете получить результаты для большинства этих измерений, используя современные программные средства. На протяжении всей книги обсуждались причины, по которым то или иное измерение может быть полезно. В настоящее время большинство этих измерений нужно не для поиска явных различий между программами, классами и методами (Shepperd and Ince, 1989). Они нужны в основном для выявления методов, которые резко отличаются от других; необычные показатели измерений в каком-то методе предупреждают о том, что вам следует пересмотреть этот метод, дабы выяснить причину необычно низкого качества.

Не начинайте сбор данных для всех возможных измерений - вы закопаетесь в таких сложных данных, что не сможете выяснить, что они означают. Начните с простого набора измерений, скажем, с количества дефектов, человеко-месяцев, общей суммы в долларах и общего количества строк кода. Стандартизуйте эти измерения во всех своих проектах, а затем уточняйте их показатели и добавляйте к ним новые, по мере того как ваше понимание необходимых измерений улучшается (Pietrasanta, 1990).

Убедитесь, что вы знаете причину по которой собираете данные. Установите цели, определите вопросы, которые необходимо задать, чтобы добиться этих целей, а затем проводите измерения, чтобы узнать ответы (Basili and Weiss, 1984). Убедитесь, что существует возможность получить ту информацию, которую вы запрашиваете, и не забывайте, что сбор данных всегда играет второстепенную роль по сравнению со сроками сдачи проектов (Basili et al., 2002).



Дополнительные ресурсы, касающиеся измерения ПО

Oman, Paul and Shari Lawrence Pfleeger, tds. Applying Software http: cc2e.com/2878 Metrics. Los Alamitos, CA: IEEE Computer Society Press, 1996.

Под обложкой этого тома собрано более 25 ключевых статей, посвященных измерению ПО.

Jones, Capers. Applied Software Measurement: Assuring Productivity and Quality, 2d ed. New York, NY: McGraw-Hill, 1997. Джонс - лидер в области измерения ПО, и его книга аккумулирует все знания в этой области. В ней представлена наиболее полная теория и практика существующих методик измерения и описаны проблемы, возникающие при использовании традиционных способов измерения. В книге приведена полная программа по сбору числа реализуемых функций. Джонс собрал и проанализировал огромный объем данных, касающийся качества и производительности, и его труд содержит выжимку этих результатов, в том числе и захватывающую главу, посвященную средним значениям показателей в области разработки ПО в США.

Grady, Robert В. Practical Software Metrics for Project Management and Process Improvement. Englewood Cliffs, NJ: Prentice Hall PTR, 1992. Гради рассказывает о внедрении программы по измерению ПО в Hewlett-Packard и о том, как внедрить такую программу в вашей организации.

Conte, S. D., Н. Е. Dunsmore and V. Y. Shen. Software Engineering Metrics and Models. Menlo Park, CA: Benjamin/Cummings, 1986. Эта книга классифицирует существующие знания об измерениях ПО по состоянию на 1986 год, включая часто используемые измерения, экспериментальные методики и критерии оценки результатов эксперимента.

Basili, Victor R., et al. 2002. «Lessons learned from 25 years of process improvement: The Rise and Fall of the NASA Software Engineering Laboratory». Proceedings of the 24th International Conference on Software Engineering. Orlando, PL, 2002. В статье освещен опыт, полученный организацией, разрабатывающей одни из самых сложных программных продуктов в мире. В центре внимания - вопросы измерения.

NASA Software Engineering Laboratory. Software Measurement Ш4Ш%мшг%Ш Guidebook, June 1995, NASA-GB-001 -94. Это 100-страничное

руководство возможно, лучший источник практической информации о том, как настроить и использовать измерительную программу Его можно загрузить с Web-сайта NASA.

Gilb, Tom. Competitive Engineering. Boston, MA: Addison-Wesley Шр: сс2е.сот/аВ9$ 2004. Книга представляет ориентированный на измерения

подход к определению требований, разработке проекта, измерению качества и управлению проектом в целом. Ее можно загрузить с вебсайта автора.

28.5. Гуманное отношение к программистам

Атмосфера абстрактности в деятельности программистов требует создания непринужденной обстановки в офисе и поддержания широких контактов между коллегами. Высокотехнологичные компании предлагают пар-



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 [219] 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294



0.0023