пїњ

»ЌЌќ¬ј÷»ќЌЌџ≈ ћ≈“ќƒќЋќ√»» ѕ≈–≈ѕ–ќ≈ “»–ќ¬јЌ»я Ђ”Ќј—Ћ≈ƒќ¬јЌЌџ’ї ѕ–ќ√–јћћЌџ’ —»—“≈ћ

¬урф-классификаци€ позвол€ет решить еще одну задачу, например, задачу упор€доченного группировани€ организмов внутри класса позвоночных. ¬ Ѕƒ (табл. 1) позвоночные представлены следующими подвидами: млекопитающие, рыбы, птицы и рептилии. ≈сли исключить млекопитающих, то оставшиес€ позвоночные будут строго упор€дочены — ѕќћќў№ё вурф-параметра в следующей последовательности: шпицы (»'=1,08..1,11) Ч рептилии (\”=!,2.. 1,42) Ч рыбы (\ћ=148.. 1.8). ¬ классе беспозвоночных вурф-сорти ровка выдел€ет подвид клещей.
„тобы подтвердить Ђправильностьї и устойчивость пред'южешюгоалгоритма классификации, необходимо использовать более обширный статистический материал. ¬ частности, предполагаетс€ про-вест анализ множества генетических текстов людей разных полой, рас, национальностей, возрастов, а также наших ближайших Ђродственниковї из группы приматов.
Ѕнќлиографпчоский список
I. «адорожпикои  .√. √енетическа€ система кдк носитель принципа гармонии. ќткрытие «олотого ¬урфп генетической
системы // ћ. : јкадеми€ “ринитарнзмаї, Ёл  -> 77*6567. иубл.11739,24.12.2004.
2. √уменюк ј.—., Ўнынов —.Ќ.. ћорозенко ≤ѓ.≤«-. –одио-ноп ».11. ѕример применени€ средств интервального анализа дл€ —р.≤≤ЎѕЌ»ястро€ Ќу Ће—√“»ЋЌџ’»ќ—ЋЂ*ƒ(>ї'ї“1СЋ1.Ќќ—√“–… и клпстсрн-злцнв организмов // ћат-лы XVI ¬сероссийского семинара ЂЌейрои≥≥форм≥њгикп,<!Ђ приложени€ » а≥≤с≤Ћ»«ƒЎЎ№≤’ї ; подред. .јЌ. √орбан€ и ¬.ћ. ћирнее*ї. -  расно€рск : »зд-во »¬ћ —ќ –јЌ. 2008. - —. 166 Ч170,
3. √уменкж ј.—. ќсредстпахописани€ и анализа стро€ цепи событий //—»Ѕ–≈—”–—-11-2005 : доклады 11-й науч.-пран≥, конф.. Ѕарнаул. “омск: “ом. гос. ун-т, 2005. - —. 234 Ч239.
 Ћ» ”Ў»Ќ ёрий Ќиколаевич, доктор технических наук, доцент, профессор кафедры Ђ“ехнологи€ электронной аппаратурыї.
јдрес дл€ переписки: 64*1050, г. ќмск, пр. ћира, 11.
—тать€ посту пила в редакцию 25.09.2009 г.
V) ё. Ќ.  лнкушнн
удк 004:57 ƒ. Ќ. ћј“¬»≈Ќ ќ
ќмский государственный технический университет
»ЌЌќ¬ј÷»ќЌЌџ≈ ћ≈“ќƒќЋќ√»»
ѕ≈–≈ѕ–ќ≈ “»–ќ¬јЌ»я
Ђ”Ќј—Ћ≈ƒќ¬јЌЌџ’ї
ѕ–ќ√–јћћЌџ’ —»—“≈ћ_____________________
ѕриводитс€ описание опыта команды разработчиков, решающей задачу внедрени€ механизмов тест-ориентироаанной разработки (Test-Driven Development, TDD) в существующий проект (—”Ѕƒ Ђƒеканатї, ќм√“”), первоначально не адаптированный к использованию TDD-инструментари€. ѕроведен анализ возможностей и ограничений, возникающих при необходимости внесени€ изменений на уровне методологии проектировани€ системы, подчеркиваетс€ необходимость оптимизации процесса документировани€ требований к проекту.
 лючевые слова: тест-ориентированна€ разработка, методологи€, тестирование, документирование.
ѕостановки задачи
— целью научно-практического исследовани€ возможностей “ќй-архитектуры была поставлена задача преобразовани€ студенческого проекта (—”Ѕƒ Ђƒеканатї: €зык –Ќ–, база данных ћуЅќ№) в систему, разработаннуюсучетом промышленных требований к контролю качества программного обеспечени€ 111. 11а первый взгл€д это означает переписывание исходного кода Ђс чистого лис гаї. ѕокажем на примере, что задача может быть решена менее радикальными способами.
ќ методиках разработки
јнализ Ђунаследованногої проекта показывает, что система разрабатывалась в рамках классической
методологии построени€ программных средств (ѕ—), известной под названием Ђћодель водопадаї.
—леду€ модели водопада, разрабо тчик переходит от одной стадии к другой строго последовательно. —начала полностью завершаетс€ этап определени€ требований. ƒалее происходит переход к проектированию, в ходе которого создаютс€ документы, подробно описывающие дл€ программистов способ и план реализации указанных требований. ѕрограммистами выполн€етс€ создание исходного кода проекта. Ќа следующей стадии процесса происходит интеграци€ отдельных компонентов, разрабатываемых различными командами программистов, «аключительна€ стади€ Ч тестирование и отладка продукта: устран€ютс€ все недочЄты, допущенные на предыдущих этапах. ѕосле этого программный продукт внедр€етс€ и обеспечиваетс€ его поддержка, внесение
ќћ— »… Ќј”„Ќџ… ћ—≤Ќ»  ћ≤ 3 <83, єї »Ќ‘ќ–ћј÷»ќЌЌј »’ЌќЋќ√»»
»Ќ‘ќ–ћј÷»ќЌЌџ≈ TIXHOA
ќ«ший —писок требований —принт {»терации) ѕромежуточна€ версии
список ipL-бооаимй дд€ текущей птерпции алї демонстрации прироста
фуикииомллмиости
–гавиа Bocklcg SprlM Backlog
working loCTemef l
–ис. 1. ћетодологи€ ЂScrumї
нивой функциональности и устранение ошибок, вы€вленных при использовании.
“ем самым модель водопада подразумевает, что переход к последующей фазе разработки происходит только после полного и успешного завершени€ предыдущей; переходов назад, вперед или перекрытии фаз не происходит.
ƒл€ реализации базового принципа TDD ЂTest Firstї {Ђ“естирование в первую очередьї) модель водопада неприменима.
“аким образом, наход€сь еще очень далеко от начала процесса модернизации кода, команда исследователей столкнулась с первой проблемой: унаследованна€ система проектировалась без учета возможностей расширени€ функциональности. ѕредыдущим коллективом разрабо тчиков допущена концептуальна€ ошибка, характерна€ дл€ многих учебных проектов: отсутствие разделени€ дизайна и бизнес-логики (логики функционировани€) программной системы.
—оответственно, первым шагом станет изменение подхода к проектированию,системы. Ќас будут инте-ресовать Ђгибкиеї (ЂAgileї1) методы разработки.
Ѕольшинство Ђгибкихї методологий нацелены па минимизацию рисков нугЄм сведени€ разработки к серии коротких циклов, называемых итераци€ми, которые обычно дл€тс€ отодной до четырех недель.  ажда€ итераци€ выгл€дит как программный проект в миниатюре и включает все задачи, необходимые Mil выдачи прироста по функциональности: планирование, анализ требований, проектирование, кодирование, тестирование и документирование. ’от€ отдельна€ итераци€, как правило, недостаточна дл€ выпуска новой версии продукта, подразумеваетс€, что Ђгибкийї программный проект готов к демонстрации прироста функциональности после каждой итерации.
¬ыбор конкретной Ђгибкойї методики €вл€етс€ субъективным дл€ каждого коллектива разработчиков; в пашем случае предпоч тение отдано методике ЂScrumї.
Scrum Ч это алгоритм процесса, который включает набор методов и предварительно определенных ролей, √лавные действующие роли:
1. ЂScrumMasierї Ч координа тор (руководитель) проекта.
2. ЂProductOwnerї (Ђ¬ладелецпродуктаї) Ч представитель интересов заказчика или конечных пользователей системы.
3. ЂScrumTeamї (Ђ омандаї) Ч коллектив разработчиков.
»тераци€ в методике Scrum называетс€ Ђспринтомї (ЂSprintї). Ќа прот€жении каждого спринта создаетс€ функциональный рост программного обеспечени€. ƒлительность спринта определ€етс€  омандой и. как правило, составл€ет 15-30 дней (рис. 1). ѕосле каждого спринта допустима переоценка приоритетов дл€ актуальных задач.
Ќаборы требований поступают из заранее сформированного документа. который называетс€ Ђќбщий список требованийї (ЂProduct Backlogї). «адачи, выполн€емые о текущем спринте, определ€ютс€ ¬ладельцем продукта с учетом мнени€  оманды на Ђ—овете по планированиюї (ЂSprint Planning Meetingї).
ќ роли технического задани€
в тестировании программного обеспечени€
ƒл€ программ, создаваемых на уровне продукции производственно-технического назначени€ и отчуждаемых от разработчика, испытани€ (тестировани€) €вл€ютс€ одним из важнейших этапов жизненного цикла, па котором провер€ютс€ и фиксируютс€ достигнутые показатели качества программного средства.
¬ соответствии с √ќ—“ 10504 01 под испытанием
промышленной продукции понимают экспериментальное определение количественных и/или качес твенных характеристик объекта испытани€ как результата воздействи€ на него:
Ч при его функционировании;
Ч при моделировании объекта и/или воздействи€.
ѕод испытанием программной продукции следует
понимать экспериментальное определение количественных и/или качественных характеристик продукции при ее функционировании в реальной среде и/ или моделировании среды функционировани€.
÷елью испытани€ €вл€етс€ вы€снение степени соответстви€ созданного комплекса программ техническому заданию, полученному от заказчика. I !еоб-ходимо сделать выводе пригодности данного ѕ— к использованию по своему назначению. ≈сли вывод отрицательный, то образец программы возвращаетс€ на дорабо тку. “аким образом, перекрываетс€ дос туп недоброкачественной продукции к пользователю. Ќепосредственно в ходе испы таний качество продукта может и не измени тьс€, гак как локализаци€ ошибок в общем случае не €вл€етс€ целью испытани€.
¬ зарубежной литературе, в том числе в стандартах на программное обеспечение, пон€тие Ђиспытаниеї часто отождествл€ют с пон€тием Ђтестированиеї. Ќапример, в документе IEEE 829-1983 Ђƒокумен-таци€тестов программного обеспечени€ї (—Ўј) дано следующее определение тестировани€: Ђ...процесс активного анализа ѕќ на предмет обнаружени€ расхождений между реальными и требуемыми нормами функциональности с целью оценки характеристик элементов ѕќї. —учетом высказашn.tx соображений термин Ђтестированиеї, используемый в зарубежной литературе, будем интерпретировать как испытание м етодом тестировани€.
¬ажна€ особенность испытаний программы состоит в наличии достаточно полных эталонов, которым должен соответствовать комплекс программ, Ч требований технического задани€.
«а относительно короткий период нриомо-сдаточных испытаний трудно провести достаточно полное тестирование, демонстрирующее достигнутое качество сложного комплекса программ. ѕоэтому дл€ обеспечени€ высокого качества программных систем и техническом падании целесообразно задавать технологию проектировани€ и услови€ поэтапной проверки основных компонент в процессе разработки. ƒл€ гугого в процессе формировани€ технических требований задаютс€ основы методики тестировани€ и провер€емые характеристики программ при испытани€х.
¬ этом случае испытатель получает возможность поэтапно и глубоко знакомитьс€ с создаваемым изделием в процессе разработки. ќдновременно уточн€етс€ и конкретизируетс€ техническое задание.
ѕрименение принципов TDD можно считать развитием данного направлени€: услови€ поэтапной проверки программных компонент не просто описываютс€ в техническом задании Ч механизмы проверки внедр€ютс€ непосредственно в исходный код программного продукта, а роли разработчика и испытател€ интерпретируютс€ в зависимости от выбранной Ђгибкойї методологии.
ѕроследим, какданныетеоротические принципы реализованы в методологии Scrum.
Product backlog Ч одно из базовых пон€тий Scrum Ч это документ, содержащий список требований к функциональности, которые упор€доченны по степени важнос ти. Ёлементы этого списка называютс€ Ђистори€миї (ЂUser Storyї). Product backlog открыт дл€ редактировани€ всем участникам Scrum-процесса, что €вл€етс€ принципиальным отличием от Ђклассическогої подхода..
ќб€зательные пол€ в Product Backlog:
Ч <i IDї Ч уникальный идентификатор. ѕор€дковый номер, примен€емый дл€ идентификации историй в случае их переименовани€.
Ч ЂЌазваниеї (ЂNameї) Ч  раткое описание истории. ƒолжно быть однозначным, чтобы и разработчики, и ¬ладелец продукта могли пон€ть, о чем идЄт речь и отличить одну ис торию от другой.
Ч Ђ¬ажностьї (ЂImportanceї) Ч степень важности данной истории, по мнению ¬ладельца продукта. ќбычно представл€ет собой натуральное число, иногда дл€ этой цели используютс€ числа ‘ибоначчи. „ем больше значение, тем выше приоритет.
Ч Ђѕредварительна€ оценкаї (ЂInitial Estimateї) Чначальна€ оценка объЄма работ, необходимого
ми реализации истории по сравнению с друг ими истори€ми. »змер€етс€ в ЂStory Pointsї. ѕриблизительно соответствует числу Ђидеальных человекоднейї.
Ч Ђ ак продемонстрироватьї (ЂHow to Demoї) Ч краткое по€снение того, как завершЄнна€ задача будет продемонстрирована в конце спринта. ƒанное поле может представл€ть собой код автоматизированного теста дл€ приЄмо-сдаточного испытани€.
ѕрименение описанных методик позвол€ет осуществить относительно плавный переход между двум€ принципиально различными модел€ми пос троени€ программных продуктов. ѕостепенное замещение Ђтрадиционнойї архитектуры проекта Ђгибкойї архитектурой происходит итеративно на отдельных, функционально изолированных сегмеш ах кода. ¬ насто€щее врем€ завершена переработка Ђ€драї и основных модулей —”Ѕƒ Ђƒеканатї в соответствии с принципамитест-ориентированного программировани€.
ѕомимо решени€ научно-исследовательских задач и осуществлени€ Ђтворческого поискаї разработка системы —”Ѕƒ Ђƒеканатї ориентирована на наращивание функциональности и практическое применение. ѕланируетс€ дальнейшее развитиетсмы адаптации научных проектов к промышленным стандартам разработки программного обеспечени€.
ѕримечани€
'¬сфере применени€ и гибкойї разработки ни данный момент не существует общепризнанной русской терминологии; дл€ однозначности толковани€ пон€тий здесь и далее в тексте, как правило, привод€тс€ оригинальные английские наименовани€ процессов и объектов.
Ѕиблиографический список
1. ћатвиенко, ƒ.». ќсобенности тест ориентированной разработки программного обеспечении/ƒ.Ќ. ћатвиенко// ќмский научный вестник. —ерии ѕриборы, машины и технологии. -2008. - NЂ3 (70). - —. 105- 107.
ћј“¬»≈Ќ ќ ƒмитрий Ќиколаевич, аспирант кафедры Ђ“ехнологи€ электронной аппаратурыї. јдрес дл€ переписки: 644050, г. ќмск, пр. ћира, 11.
—тать€ поступила в редакцию 29.09.2009 г.
© ƒ. ѕ. ћатвиенко
 нижна€ полка
 омпил€торы: принципы, технологии и инструментарий [“екст] / јльфред ¬. јхо [и др.]; пер. с англ. ». ¬.  расикова. Ч 2-е изд. Ч ћ.: ¬иль€мс, 2008. Ч 1175 с.: рис., табл. Ч ѕредм. указ.: с. 1167-1175. Ч ё¬џ 978-5-8459-1349-4.
»здание начинаетс€ с изложени€ основных принципов разрабо тки компил€торов, включа€ детальное рассмотрение локсическогои синтаксического анализа и генерации кода. ќсобенностью данного издани€ €вл€ет с€ широкое освещение вопросов оптимизации кода, в том числе дл€ работы в многопроцессорных сис темах. —трогость изложени€ материала см€гчаетс€ большим количеством практических примеров. Ќаписание компил€торов охватынаеттакие области знаний, как €зыки программировани€, архитек тура вычислительных систем, теори€ €зыков, алгоритмы и технологи€ создани€ программного обеспечени€. ѕомочь в освоении этих технологий и соотве тствующего инструментари€ и призвана данна€ книга. ¬ первую очередь издание предназначено дл€ студентов и преподавателей соответствующих специальностей, кроме того, книга будет полезна всем, кто работает над созданием компил€торов или просто интересуетс€ данной темой.

пїњ