Ми­ни­стер­ст­во об­ра­зо­ва­ния и нау­ки Рос­сий­ской Фе­де­ра­ции Учеб­но-ме­то­ди­че­ское объ­е­ди­не­ние ву­зов по об­ра­зо­ва­нию в об­лас­ти ин­фор­ма­ци­он­ной безо­пас­но­сти сборник примерных программ учебных дисциплин по направлению подготовки (специальности)

Вид материалаДокументы

Содержание


10. Ме­то­ди­че­ские ре­ко­мен­да­ции по ор­га­ни­за­ции изу­че­ния дис­ци­п­ли­ны
При­мер­ный пе­ре­чень тем до­маш­них за­да­ний
При­мер­ный пе­ре­чень во­про­сов для кон­троль­ных ра­бот
При­мер­ный пе­ре­чень во­про­сов для оп­ро­сов на прак­ти­че­ских за­ня­ти­ях
Учебно-методическое объединение по образованию
Ре­ко­мен­ду­ет­ся для на­прав­ле­ния под­го­тов­ки (спе­ци­аль­но­сти)
2. Ме­сто дис­ци­п­ли­ны в струк­ту­ре ООП
3. Тре­бо­ва­ния к ре­зуль­та­там ос­вое­ния дис­ци­п­ли­ны
4. Объ­ём дис­ци­п­ли­ны и ви­ды учеб­ной ра­бо­ты
Ау­ди­тор­ные за­ня­тия (все­го)
Са­мо­стоя­тель­ная ра­бо­та (все­го)
Вид про­ме­жу­точ­ной ат­те­ста­ции
Об­щая тру­до­ём­кость
5. Со­дер­жа­ние дис­ци­п­ли­ны
Те­ма 2. Пла­ни­ро­ва­ние и ор­га­ни­за­ция раз­ра­бот­ки ПО
Те­ма 3. Про­ек­ти­ро­ва­ние ПО
Те­ма 4. Ос­но­вы объ­ект­но-ори­ен­ти­ро­ван­но­го ана­ли­за и про­ек­ти­ро­ва­ния ПО
Те­ма 5. Ко­ди­ро­ва­ние ПО
Те­ма 6. Тех­но­ло­гии раз­ра­бот­ки рас­пре­де­лен­ных про­грамм­ных сис­тем. Пер­спек­ти­вы раз­ви­тия тех­но­ло­гий про­грам­
Те­ма 7. Тес­ти­ро­ва­ние и от­лад­ка ПО
...
Полное содержание
Подобный материал:
1   ...   5   6   7   8   9   10   11   12   ...   22

10. Ме­то­ди­че­ские ре­ко­мен­да­ции по ор­га­ни­за­ции изу­че­ния дис­ци­п­ли­ны

Цель обу­че­ния дос­ти­га­ет­ся со­че­та­ни­ем при­ме­не­ния тра­ди­ци­он­ных и ин­но­ва­ци­он­ных пе­да­го­ги­че­ских тех­но­ло­гий.

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

Для эф­фек­тив­ной ра­бо­ты сту­ден­тов на прак­ти­че­ских за­ня­ти­ях це­ле­со­об­раз­но фор­ми­ро­вать под­груп­пы чис­лен­но­стью не бо­лее 12 че­ло­век.

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

Те­ку­щий кон­троль ус­вое­ния зна­ний сту­ден­та­ми осу­ще­ст­в­ля­ет­ся пу­тём вы­пол­не­ния двух кон­троль­ных ра­бот (од­на во вто­ром и од­на в треть­ем се­ме­ст­рах), под­го­тов­ки и сда­чи от­чё­тов по ито­гам вы­пол­не­ния дол­го­сроч­ных до­маш­них за­да­ний, про­вер­ки вы­пол­не­ния те­ку­щих за­да­ний, оп­ро­сов на прак­ти­че­ских за­ня­ти­ях. По ре­ше­нию ву­за воз­мож­но про­ве­де­ние от­дель­ных форм те­ку­ще­го кон­тро­ля в ви­де тес­ти­ро­ва­ния.

При­мер­ным учеб­ным пла­ном на изу­че­ние дис­ци­п­ли­ны от­во­дят­ся два (вто­рой и тре­тий) се­ме­ст­ра. В кон­це вто­ро­го се­ме­ст­ра пре­ду­смат­ри­ва­ет­ся в ка­че­ст­ве ито­го­во­го кон­тро­ля за­чёт, а в кон­це третье­го – ито­го­вая от­чет­ность по дис­ци­п­ли­не – эк­за­мен.

В со­от­вет­ст­вии со спе­ци­фи­кой ВУЗа в про­цес­се пре­по­да­ва­нии дис­ци­п­ли­ны ме­то­ди­че­ски це­ле­со­об­раз­но в ка­ж­дом раз­де­ле вы­де­лить наи­бо­лее важ­ные те­мы и рас­смот­реть их на кон­крет­ных при­ме­рах.

При­мер­ный пе­ре­чень тем до­маш­них за­да­ний:

Пе­ре­гру­жен­ные и шаб­лон­ные функ­ции раз­лич­ной об­ра­бот­ки од­но­мер­ных и дву­мер­ных мас­си­вов, хра­ня­щих­ся в фай­лах.

Сред­ст­ва­ми язы­ка С/С++ про­вес­ти мо­де­ли­ро­ва­ние не­ко­то­рой пред­мет­ной об­лас­ти с объ­ек­та­ми – струк­ту­ра­ми и опе­ра­ция­ми над ни­ми в ви­де функ­ций. Раз­ра­бо­тать ин­тер­фейс – диа­лог в ви­де ме­ню.

Реа­ли­за­ция в ви­де шаб­лон­но­го клас­са ди­на­ми­че­ской струк­ту­ры дан­ных (на­при­мер, ли­ней­ный спи­сок, стек, оче­редь,) и ра­бо­та с объ­ек­та­ми это­го клас­са.

Соз­дать при­ло­же­ние, реа­ли­зую­щее ие­рар­хию на­сле­дуе­мых клас­сов (для не­ко­то­рой пред­мет­ной об­лас­ти) и ис­поль­зую­щее ме­ха­низм вир­ту­аль­ных функ­ций.

Про­вес­ти мо­де­ли­ро­ва­ние за­дан­ной пред­мет­ной об­лас­ти и об­ра­бот­ку дан­ных с ис­поль­зо­ва­ни­ем STL.

При­мер­ный пе­ре­чень во­про­сов для кон­троль­ных ра­бот:

Реа­ли­за­ция на язы­ке С/С++ об­ра­бот­ки дан­ных с ис­поль­зо­ва­ни­ем функ­ций.

Реа­ли­за­ция аб­ст­ракт­но­го ти­па дан­ных на объ­ект­но-ори­ен­ти­ро­ван­ном язы­ке про­грам­ми­ро­ва­ния С++.

При­мер­ный пе­ре­чень во­про­сов для оп­ро­сов на прак­ти­че­ских за­ня­ти­ях:

Ка­кие функ­ции ис­поль­зу­ют­ся в язы­ке Си для ра­бо­ты с ди­на­ми­че­ской па­мя­тью?

В чем за­клю­ча­ют­ся от­ли­чия мак­ро­сов от функ­ций?

Сколь­ко кон­ст­рук­то­ров и де­ст­рук­то­ров мо­жет быть в клас­се? До­пус­ка­ет­ся ли их пе­ре­груз­ка?

Чем от­кры­тое на­сле­до­ва­ние клас­сов от­ли­ча­ет­ся от за­кры­то­го и за­щи­щен­но­го?

Ка­кие ти­пы па­ра­мет­ров шаб­ло­на клас­са до­пус­ка­ют­ся?

Пе­ре­чис­ли­те сред­ст­ва объ­ект­но-ори­ен­ти­ро­ван­но­го язы­ка, ис­поль­зуе­мые для фор­ма­ти­ро­ва­ния при вво­де-вы­во­де.


Раз­ра­бот­чи­ки: УМО ИБ


УЧЕБНО-МЕТОДИЧЕСКОЕ ОБЪЕДИНЕНИЕ ПО ОБРАЗОВАНИЮ

В ОБЛАСТИ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ


ПРОЕКТ


ПРИМЕРНАЯ УЧЕБНАЯ ПРОГРАММА


На­име­но­ва­ние дис­ци­п­ли­ны

«Тех­но­ло­гии и ме­то­ды про­грам­ми­ро­ва­ния»


Ре­ко­мен­ду­ет­ся для на­прав­ле­ния под­го­тов­ки (спе­ци­аль­но­сти)

090303 Ин­фор­ма­ци­он­ная безо­пас­ность ав­то­ма­ти­зи­ро­ван­ных сис­тем


Ква­ли­фи­ка­ция (сте­пень) вы­пу­ск­ни­ка

«Спе­циа­лист»


МОСКВА 2011

1. Це­ли и за­да­чи дис­ци­п­ли­ны

Це­лью изу­че­ния дис­ци­п­ли­ны «Тех­но­ло­гии и ме­то­ды про­грам­ми­ро­ва­ния» яв­ля­ет­ся изу­че­ние со­вре­мен­ных тех­но­ло­гий и ме­то­дов про­грам­ми­ро­ва­ния, по­лу­че­ние на­вы­ков про­ек­ти­ро­ва­ния и раз­ра­бот­ки про­грамм­но­го обес­пе­че­ния (ПО), рас­ши­ре­ние кру­го­зо­ра в сфе­ре раз­ра­бот­ки ПО.

За­да­чи дис­ци­п­ли­ны:

изу­че­ние ме­то­до­ло­гии и средств раз­ра­бот­ки ПО;

изу­че­ние ме­то­дов про­ек­ти­ро­ва­ния ПО;

изу­че­ние оцен­ки ка­че­ст­ва про­грамм­но­го обес­пе­че­ния;

изу­че­ние тес­ти­ро­ва­ния и от­лад­ки про­грамм­но­го обес­пе­че­ния;

изу­че­ние прин­ци­пов, ме­то­дов и средств со­про­во­ж­де­ния ПО;

изу­че­ние струк­тур дан­ных;

изу­че­ние ал­го­рит­мов и на­вы­ков их прак­ти­че­ской реа­ли­за­ции при раз­ра­бот­ке про­грамм­ных сис­тем.


2. Ме­сто дис­ци­п­ли­ны в струк­ту­ре ООП

Дис­ци­п­ли­на "Тех­но­ло­гии и ме­то­ды про­грам­ми­ро­ва­ния" от­но­сит­ся к чис­лу дис­ци­п­лин ба­зо­вой час­ти про­фес­сио­наль­но­го цик­ла.

Для ус­пеш­но­го ус­вое­ния дан­ной дис­ци­п­ли­ны не­об­хо­ди­мо, что­бы сту­дент вла­дел зна­ния­ми, уме­ния­ми и на­вы­ка­ми, сфор­ми­ро­ван­ны­ми в про­цес­се изу­че­ния дис­ци­п­лин:

«Язы­ки про­грам­ми­ро­ва­ния» – знать язык про­грам­ми­ро­ва­ния вы­со­ко­го уров­ня (объ­ект­но-ори­ен­ти­ро­ван­ное про­грам­ми­ро­ва­ние), уметь раз­ра­ба­ты­вать про­грам­мы на язы­ке про­грам­ми­ро­ва­ния вы­со­ко­го уров­ня, уметь ра­бо­тать с со­вре­мен­ны­ми ин­тег­ри­ро­ван­ны­ми сре­да­ми раз­ра­бот­ки про­грамм­но­го обес­пе­че­ния, вла­деть на­вы­ка­ми про­грам­ми­ро­ва­ния на язы­ке про­грам­ми­ро­ва­ния вы­со­ко­го уров­ня;

«Ма­те­ма­ти­че­ская ло­ги­ка и тео­рия ал­го­рит­мов» – знать ос­нов­ные по­ня­тия тео­рии ав­то­ма­тов, знать ос­нов­ные дис­крет­ные струк­ту­ры: ко­неч­ные ав­то­ма­ты, грам­ма­ти­ки, гра­фы, ком­би­на­тор­ные струк­ту­ры, знать ос­нов­ные по­ня­тия тео­рии слож­но­сти ал­го­рит­мов, уметь оце­ни­вать слож­ность ал­го­рит­мов и вы­чис­ле­ний, вла­деть спо­со­ба­ми оцен­ки слож­но­сти ра­бо­ты ал­го­рит­мов;

«Тео­рия ве­ро­ят­но­стей и ма­те­ма­ти­че­ская ста­ти­сти­ка» – вла­деть на­вы­ка­ми ис­поль­зо­ва­ния стан­дарт­ных тео­ре­ти­ко-ве­ро­ят­но­ст­ных и ста­ти­сти­че­ских ме­то­дов при ре­ше­нии при­клад­ных за­дач;

«Ин­фор­ма­ти­ка» – знать фор­мы и спо­со­бы пред­став­ле­ния дан­ных в пер­со­наль­ном ком­пь­ю­те­ре, вла­деть на­вы­ка­ми при­ме­не­ния ма­те­ма­ти­че­ско­го ап­па­ра­та для ре­ше­ния при­клад­ных тео­ре­ти­ко-ин­фор­ма­ци­он­ных за­дач.

Дис­ци­п­ли­на "Тех­но­ло­гии и ме­то­ды про­грам­ми­ро­ва­ния" обес­пе­чи­ва­ет изу­че­ние сле­дую­щих дис­ци­п­лин: «Раз­ра­бот­ка и экс­плуа­та­ция за­щи­щен­ных ав­то­ма­ти­зи­ро­ван­ных сис­тем», а так­же дис­ци­п­лин ва­риа­тив­ной час­ти про­фес­сио­наль­но­го цик­ла, пре­ду­смот­рен­ных при­мер­ным учеб­ным пла­ном.


3. Тре­бо­ва­ния к ре­зуль­та­там ос­вое­ния дис­ци­п­ли­ны

Про­цесс изу­че­ния дис­ци­п­ли­ны на­прав­лен на фор­ми­ро­ва­ние сле­дую­щих ком­пе­тен­ций:

спо­соб­ность при­ме­нять ма­те­ма­ти­че­ский ап­па­рат, в том чис­ле с ис­поль­зо­ва­ни­ем вы­чис­ли­тель­ной тех­ни­ки, для ре­ше­ния про­фес­сио­наль­ных за­дач (ПК-2);

спо­соб­ность ис­поль­зо­вать язы­ки, сис­те­мы и ин­ст­ру­мен­таль­ные сред­ст­ва про­грам­ми­ро­ва­ния в про­фес­сио­наль­ной дея­тель­но­сти (ПК-3);

спо­соб­ность при­ме­нять дос­ти­же­ния со­вре­мен­ных ин­фор­ма­ци­он­ных тех­но­ло­гий для по­ис­ка и об­ра­бот­ки боль­ших объ­е­мов ин­фор­ма­ции по про­фи­лю дея­тель­но­сти в гло­баль­ных ком­пь­ю­тер­ных сис­те­мах, се­тях, в биб­лио­теч­ных фон­дах и в иных ис­точ­ни­ках ин­фор­ма­ции (ПК-4);

спо­соб­ность к ос­вое­нию но­вых об­раз­цов про­грамм­ных, тех­ни­че­ских средств и ин­фор­ма­ци­он­ных тех­но­ло­гий (ПК-8);

спо­соб­ность осу­ще­ст­в­лять по­иск, изу­че­ние, обоб­ще­ние и сис­те­ма­ти­за­цию на­уч­но-тех­ни­че­ской ин­фор­ма­ции, нор­ма­тив­ных и ме­то­ди­че­ских ма­те­риа­лов в сфе­ре сво­ей про­фес­сио­наль­ной дея­тель­но­сти (ПК-9);

спо­соб­ность про­во­дить ана­лиз, пред­ла­гать и обос­но­вы­вать вы­бор ре­ше­ний по обес­пе­че­нию тре­буе­мо­го уров­ня эф­фек­тив­но­сти при­ме­не­ния ав­то­ма­ти­зи­ро­ван­ных сис­тем (ПК-15);

спо­соб­ность раз­ра­ба­ты­вать на­уч­но-тех­ни­че­скую до­ку­мен­та­цию, го­то­вить на­уч­но-тех­ни­че­ские от­че­ты, об­зо­ры, пуб­ли­ка­ции по ре­зуль­та­там вы­пол­нен­ных ра­бот (ПК-16);

спо­соб­ность уча­ст­во­вать в раз­ра­бот­ке за­щи­щен­ных ав­то­ма­ти­зи­ро­ван­ных сис­тем по про­фи­лю сво­ей про­фес­сио­наль­ной дея­тель­но­сти (ПК-18);

спо­соб­ность уча­ст­во­вать в раз­ра­бот­ке ком­по­нен­тов ав­то­ма­ти­зи­ро­ван­ных сис­тем в сфе­ре про­фес­сио­наль­ной дея­тель­но­сти (ПК-19);

спо­соб­ность ор­га­ни­зо­вы­вать ра­бо­ту ма­лых кол­лек­ти­вов ис­пол­ни­те­лей, на­хо­дить и при­ни­мать управ­лен­че­ские ре­ше­ния в сфе­ре про­фес­сио­наль­ной дея­тель­но­сти (ПК-27);

В ре­зуль­та­те изу­че­ния дис­ци­п­ли­ны сту­дент дол­жен

знать:

со­вре­мен­ные тех­но­ло­гии и ме­то­ды про­грам­ми­ро­ва­ния;

по­ка­за­те­ли ка­че­ст­ва про­грамм­но­го обес­пе­че­ния;

ме­то­до­ло­гии и ме­то­ды про­ек­ти­ро­ва­ния про­грамм­но­го обес­пе­че­ния;

ме­то­ды тес­ти­ро­ва­ния и от­лад­ки ПО;

прин­ци­пы ор­га­ни­за­ции до­ку­мен­ти­ро­ва­ния раз­ра­бот­ки, про­цес­са со­про­во­ж­де­ния про­грамм­но­го обес­пе­че­ния;

ос­нов­ные струк­ту­ры дан­ных и спо­со­бы их реа­ли­за­ции на язы­ке про­грам­ми­ро­ва­ния;

ос­нов­ные ком­би­на­тор­ные и тео­ре­ти­ко-гра­фо­вые ал­го­рит­мы, а так­же спо­со­бы их эф­фек­тив­ной реа­ли­за­ции и оцен­ки слож­но­сти;

уметь:

фор­ми­ро­вать тре­бо­ва­ния и раз­ра­ба­ты­вать внеш­ние спе­ци­фи­ка­ции для раз­ра­ба­ты­вае­мо­го про­грамм­но­го обес­пе­че­ния;

пла­ни­ро­вать раз­ра­бот­ку слож­но­го про­грамм­но­го обес­пе­че­ния;

про­ек­ти­ро­вать струк­ту­ру и ар­хи­тек­ту­ру про­грамм­но­го обес­пе­че­ния с ис­поль­зо­ва­ни­ем со­вре­мен­ных ме­то­до­ло­гий и средств ав­то­ма­ти­за­ции про­ек­ти­ро­ва­ния про­грамм­но­го обес­пе­че­ния;

про­во­дить ком­плекс­ное тес­ти­ро­ва­ние и от­лад­ку про­грамм­ных сис­тем;

про­ек­ти­ро­вать и ко­ди­ро­вать ал­го­рит­мы с со­блю­де­ни­ем тре­бо­ва­ний к ка­че­ст­вен­но­му сти­лю про­грам­ми­ро­ва­ния;

реа­ли­зо­вы­вать ос­нов­ные струк­ту­ры дан­ных и ба­зо­вые ал­го­рит­мы сред­ст­ва­ми язы­ков про­грам­ми­ро­ва­ния;

про­во­дить вы­бор эф­фек­тив­ных спо­со­бов реа­ли­за­ции струк­тур дан­ных и кон­крет­ных ал­го­рит­мов при ре­ше­нии про­фес­сио­наль­ных за­дач;

ра­бо­тать с ин­тег­ри­ро­ван­ной сре­дой раз­ра­бот­ки про­грамм­но­го обес­пе­че­ния;

вла­деть:

на­вы­ка­ми про­ек­ти­ро­ва­ния про­грамм­но­го обес­пе­че­ния с ис­поль­зо­ва­ни­ем средств ав­то­ма­ти­за­ции;

на­вы­ка­ми раз­ра­бот­ки, до­ку­мен­ти­ро­ва­ния, тес­ти­ро­ва­ния и от­лад­ки про­грамм­но­го обес­пе­че­ния в со­от­вет­ст­вии с со­вре­мен­ны­ми тех­но­ло­гия­ми и ме­то­да­ми про­грам­ми­ро­ва­ния;

на­вы­ка­ми раз­ра­бот­ки про­грамм­ной до­ку­мен­та­ции;

на­вы­ка­ми про­грам­ми­ро­ва­ния с ис­поль­зо­ва­ни­ем эф­фек­тив­ных реа­ли­за­ций струк­тур дан­ных и ал­го­рит­мов.


4. Объ­ём дис­ци­п­ли­ны и ви­ды учеб­ной ра­бо­ты

Вид учеб­ной ра­бо­ты

Все­го
ча­сов

Се­ме­ст­ры

3

4

Ау­ди­тор­ные за­ня­тия (все­го)

106

52

54

В том чис­ле:










Лек­ции (Л)

54

26

28

Прак­ти­че­ские за­ня­тия (ПЗ)

44

20

24

Се­ми­на­ры (С)

8

6

2

Ла­бо­ра­тор­ные ра­бо­ты (ЛР)

-

-

-

Кон­троль­ные ра­бо­ты (КР)

-

-

-

Са­мо­стоя­тель­ная ра­бо­та (все­го)

108

54

54

В том чис­ле:










Кур­со­вой про­ект (ра­бо­та)

-

-

-

Рас­чёт­но-гра­фи­че­ские ра­бо­ты

-

-

-

Кол­ло­к­ви­ум

-

-

-

Ре­фе­рат

20

20

-

До­маш­нее за­да­ние

20

-

20

Дру­гие ви­ды са­мо­стоя­тель­ной ра­бо­ты

(под­го­тов­ка к за­ня­ти­ям, за­че­ту)

68

34

34

Вид про­ме­жу­точ­ной ат­те­ста­ции

и его тру­до­ем­кость


38

За­чет
(2)


Эк­за­мен
(36)


Об­щая тру­до­ём­кость

ча­сов

252

108

144

за­чет­ных еди­ниц

7

3

4


5. Со­дер­жа­ние дис­ци­п­ли­ны

5.1. Со­дер­жа­ние раз­де­лов (тем) дис­ци­п­ли­ны

Раз­дел 1. Тех­но­ло­гия про­грам­ми­ро­ва­ния

Те­ма 1. Жиз­нен­ный цикл ПО, ме­то­до­ло­гии и стан­дар­ты раз­ра­бот­ки ПО

Жиз­нен­ный цикл ПО. Мо­де­ли жиз­нен­но­го цик­ла ПО. Стан­дар­ты в сфе­ре раз­ра­бот­ки ПО (ISO, IEEE, SEI, ГОСТ Р). Про­цес­сы жиз­нен­но­го цик­ла ПО (стан­дарт ISO/IEC 12207). Мо­дель зре­ло­сти пред­при­ятия (CMM, CMMI). Ос­нов­ные эта­пы раз­ра­бот­ки слож­ных про­грамм­ных сис­тем. Струк­ту­ра и со­став тех­ни­че­ско­го за­да­ния в со­от­вет­ст­вии ГОСТ. Эта­пы раз­ра­бот­ки ПО в со­от­вет­ст­вии с ГОСТ. Ме­то­до­ло­гии раз­ра­бот­ки ПО: RUP, MSF, XP. По­ка­за­те­ли ка­че­ст­ва ПО. Стан­дарт ISO/IEC 9126.

Те­ма 2. Пла­ни­ро­ва­ние и ор­га­ни­за­ция раз­ра­бот­ки ПО

Ос­но­вы пла­ни­ро­ва­ния раз­ра­бот­ки про­грамм­но­го обес­пе­че­ния. Под­хо­ды к оцен­ке слож­но­сти и вре­ме­ни раз­ра­бот­ки ПО. Раз­мер­но- и функ­цио­наль­но-ори­ен­ти­ро­ван­ные мет­ри­ки оцен­ки слож­но­сти и вре­ме­ни раз­ра­бот­ки ПО: LOC, FP. Кон­ст­рук­тив­ная мо­дель оцен­ки ПО COCOMO, COCOMO II.

Прин­ци­пы ор­га­ни­за­ции раз­ра­бот­ки ПО. Ор­га­ни­за­ция кол­лек­ти­вов раз­ра­бот­чи­ков ПО. Функ­ции и ро­ли раз­ра­бот­чи­ков в про­грамм­ных про­ек­тах, со­вме­ще­ние ро­лей в рам­ках од­но­го про­ек­та. Сред­ст­ва под­держ­ки пла­ни­ро­ва­ния и кон­тро­ля про­цес­са раз­ра­бот­ки ПО. Пла­ни­ро­ва­ние и ор­га­ни­за­ция раз­ра­бот­ки ПО в со­от­вет­ст­вии с ме­то­до­ло­гия­ми RUP, MSF, XP.

Те­ма 3. Про­ек­ти­ро­ва­ние ПО

Тре­бо­ва­ния к про­грамм­но­му про­дук­ту: оп­ре­де­ле­ния, ха­рак­те­ри­сти­ки тре­бо­ва­ний, ти­пы тре­бо­ва­ний, спо­со­бы ор­га­ни­за­ции взаи­мо­дей­ст­вия раз­ра­бот­чи­ка и за­каз­чи­ка. Тре­бо­ва­ния на­деж­но­сти, безо­пас­но­сти, за­щи­щен­но­сти. Стан­дар­ты в сфе­ре фор­ми­ро­ва­ния тре­бо­ва­ний к про­грамм­но­му обес­пе­че­нию. Спо­со­бы из­вле­че­ния тре­бо­ва­ний.

Внеш­нее про­ек­ти­ро­ва­ние про­грамм­но­го обес­пе­че­ния. Внеш­ние спе­ци­фи­ка­ция не­боль­ших про­грамм и про­грамм­ных мо­ду­лей. Ме­то­ды и сред­ст­ва внеш­не­го про­ек­ти­ро­ва­ния. Струк­тур­ное про­ек­ти­ро­ва­ние ПО – ос­нов­ные прин­ци­пы, по­ня­тие струк­тур­ной де­ком­по­зи­ции.

CASE-тех­но­ло­гии. Ме­то­до­ло­гия струк­тур­но­го ана­ли­за и про­ек­ти­ро­ва­ния (SADT). Мо­де­ли­ро­ва­ние по­то­ков дан­ных (DFD). Кри­те­рии за­вер­ше­ния про­ек­ти­ро­ва­ния.

По­ня­тия ар­хи­тек­ту­ры и струк­ту­ры ПО. Про­ек­ти­ро­ва­ние ар­хи­тек­ту­ры ПО. Тре­бо­ва­ния к ка­че­ст­вен­ной ар­хи­тек­ту­ре, ха­рак­те­ри­сти­ки ка­че­ст­ва ар­хи­тек­ту­ры и струк­ту­ры ПО. Ви­ды про­грамм­ных ар­хи­тек­тур. Об­раз­цы про­ек­ти­ро­ва­ния ар­хи­тек­тур, ар­хи­тек­тур­ные сти­ли. Мет­ри­ки оцен­ки ка­че­ст­ва не­ко­то­рых ар­хи­тек­тур. Про­вер­ка ка­че­ст­ва ар­хи­тек­ту­ры.

Про­ек­ти­ро­ва­ние ин­тер­фей­са ПО. Ви­ды поль­зо­ва­тель­ских ин­тер­фей­сов (ПИ). Во­про­сы стан­дар­ти­за­ции ПИ. По­ня­тие usability. Стан­дарт ISO 9241.2. Фак­то­ры удоб­ст­ва ис­поль­зо­ва­ния ин­тер­фей­са. Ме­ха­низ­мы обес­пе­че­ния по­нят­но­сти ПИ, прин­цип кон­цеп­ту­аль­ной це­ло­ст­но­сти. Ме­то­ды раз­ра­бот­ки удоб­но­го ин­тер­фей­са (мо­де­ли ро­лей, за­дач, со­дер­жи­мо­го). Ме­то­ды оцен­ки ка­че­ст­ва ПИ (мет­ри­ки, субъ­ек­тив­ные оцен­ки).

Те­ма 4. Ос­но­вы объ­ект­но-ори­ен­ти­ро­ван­но­го ана­ли­за и про­ек­ти­ро­ва­ния ПО

Не­ко­то­рые ог­ра­ни­че­ния струк­тур­ных ме­то­до­ло­гий. Объ­ект­но-ори­ен­ти­ро­ван­ные ана­лиз (ООА) и про­ек­ти­ро­ва­ние (ООП). Ос­нов­ные по­ня­тия ООА и ООП. Объ­ект­ная де­ком­по­зи­ция. Но­та­ции ООА и ООП. UML – це­ли соз­да­ния, ис­то­рия раз­ви­тия, пре­иму­ще­ст­ва в об­лас­ти раз­ра­бот­ки про­грамм­ных сис­тем. Но­та­ция UML. Рас­ши­ре­ния UML.

Те­ма 5. Ко­ди­ро­ва­ние ПО

Об­щее со­дер­жа­ние эта­па. Струк­тур­ное про­грам­ми­ро­ва­ние. Пре­иму­ще­ст­ва струк­ту­ри­ро­ван­ных ал­го­рит­мов и про­грамм. Ме­тод “по­ша­го­вой де­та­ли­за­ции” при раз­ра­бот­ке струк­ту­ри­ро­ван­ных про­грамм. Стиль про­грам­ми­ро­ва­ния как на­бор тра­ди­ци­он­ных пра­вил оформ­ле­ния тек­ста про­грам­мы. Эле­мен­ты ка­че­ст­вен­но­го сти­ля про­грам­ми­ро­ва­ния. Во­про­сы стан­дар­ти­за­ции сти­лей про­грам­ми­ро­ва­ния. По­ня­тие за­щит­но­го про­грам­ми­ро­ва­ния. На­пи­са­ние на­деж­но­го ко­да с ис­поль­зо­ва­ни­ем прие­мов за­щит­но­го про­грам­ми­ро­ва­ния.

Те­ма 6. Тех­но­ло­гии раз­ра­бот­ки рас­пре­де­лен­ных про­грамм­ных сис­тем. Пер­спек­ти­вы раз­ви­тия тех­но­ло­гий про­грам­ми­ро­ва­ния

По­ня­тие рас­пре­де­лен­ной про­грамм­ной сис­те­мы. Стан­дарт CORBA: струк­ту­ра и со­дер­жа­ние, вер­сии стан­дар­та. Язык опи­са­ния ин­тер­фей­сов IDL. Мо­дель COM/DCOM/COM+ фир­мы Microsoft, тех­но­ло­гия .Net Remoting. Тех­но­ло­гия Java как сред­ст­во раз­ра­бот­ки рас­пре­де­лен­ных сис­тем. Java Beans. Сред­ст­ва под­держ­ки тех­но­ло­гий раз­ра­бот­ки рас­пре­де­лен­ных про­грамм­ных сис­тем в со­вре­мен­ных сре­дах про­грам­ми­ро­ва­ния.

Пер­спек­ти­вы раз­ви­тия ав­то­ма­ти­зи­ро­ван­ных сис­тем раз­ра­бот­ки спе­ци­фи­ка­ций, про­ек­ти­ро­ва­ния, ве­ри­фи­ка­ции и тес­ти­ро­ва­ния про­грамм.

Те­ма 7. Тес­ти­ро­ва­ние и от­лад­ка ПО

По­ня­тия про­грамм­ной ошиб­ки и на­деж­ность про­грамм­но­го обес­пе­че­ния. Об­щие под­хо­ды к пре­ду­пре­ж­де­нию, вы­яв­ле­нию и ней­тра­ли­за­ции фак­то­ров, сни­жаю­щих на­деж­ность про­грамм­но­го обес­пе­че­ния. При­чи­ны и ис­точ­ни­ки оши­бок в про­грам­мах.

По­ня­тие тес­ти­ро­ва­ния, ви­ды и эта­пы тес­ти­ро­ва­ния. Ве­ри­фи­ка­ция и ва­ли­да­ция. Ме­то­ды тес­ти­ро­ва­ния про­грамм вруч­ную. Кри­те­рии тес­ти­ро­ва­ния. Стра­те­гии про­ек­ти­ро­ва­ния тес­тов, ме­то­ды эк­ви­ва­лент­ных раз­бие­ний, гра­нич­ных зна­че­ний, таб­лиц ре­ше­ний, функ­цио­наль­ных диа­грамм, пред­по­ло­же­ний об ошиб­ке, ме­то­ды по­кры­тия ло­ги­ки. Ос­но­вы ком­плекс­но­го при­ме­не­ния ме­то­дов про­ек­ти­ро­ва­ния тес­тов, пла­ны тес­ти­ро­ва­ния и спи­ски тес­тов. Ви­ды про­грамм­ных до­ку­мен­тов, раз­ра­ба­ты­вае­мых на эта­пе тес­ти­ро­ва­ния ПО. Стан­дарт IEEE 829.

Тес­ти­ро­ва­ние мо­ду­лей: ав­то­ном­ное тес­ти­ро­ва­ние, ме­то­ды “по­ша­го­во­го” тес­ти­ро­ва­ния. Ин­те­гра­ци­он­ное тес­ти­ро­ва­ние. Спе­ци­фи­ка тес­ти­ро­ва­ния объ­ект­но-ори­ен­ти­ро­ван­ных про­грамм. Рег­рес­си­он­ное тес­ти­ро­ва­ние. Ме­то­ды про­ек­ти­ро­ва­ния рег­рес­си­он­ных тес­тов.

Эта­пы от­лад­ки про­грамм­но­го обес­пе­че­ния. Ло­ка­ли­за­ция оши­бок. Ана­ли­ти­че­ские и экс­пе­ри­мен­таль­ные ме­то­ды от­лад­ки про­грамм. Об­щая ха­рак­те­ри­сти­ка со­вре­мен­ных средств от­лад­ки. Ис­прав­ле­ние оши­бок в про­грам­ме. Ана­лиз ре­зуль­та­тов от­лад­ки. Спе­ци­фи­ка от­лад­ки сис­тем ре­аль­но­го вре­ме­ни.

Те­ма 8. До­ку­мен­ти­ро­ва­ние ПО

Ви­ды про­грамм­ной до­ку­мен­та­ции. Об­щие прин­ци­пы со­став­ле­ния ка­че­ст­вен­ной до­ку­мен­та­ции для поль­зо­ва­те­ля про­грам­мы, по­ря­док со­став­ле­ния и воз­мож­ные спо­со­бы пред­став­ле­ния ма­те­риа­ла. Еди­ная сис­те­ма про­грамм­ной до­ку­мен­та­ции (ЕСПД): на­зна­че­ние и со­став, ее ме­сто в со­вре­мен­ном про­грам­ми­ро­ва­нии.

Те­ма 9. Со­про­во­ж­де­ние ПО

За­да­чи со­про­во­ж­де­ния про­грамм­но­го обес­пе­че­ния. Ос­нов­ные на­прав­ле­ния по­вы­ше­ния ка­че­ст­ва фаз экс­плуа­та­ции и со­про­во­ж­де­ния про­грамм­но­го обес­пе­че­ния, под­го­тов­ка ус­ло­вий для ка­че­ст­вен­но­го про­ек­ти­ро­ва­ния по­сле­дую­щих вер­сий про­грам­мы. Ор­га­ни­за­ция со­про­во­ж­де­ния. Ин­ст­ру­мен­таль­ные сред­ст­ва под­держ­ки со­про­во­ж­де­ния про­грамм­ных сис­тем. По­ря­док вне­се­ния из­ме­не­ний в про­грамм­ное обес­пе­че­ние и управ­ле­ние вер­сия­ми про­грам­мы. Сред­ст­ва управ­ле­ния вер­сия­ми ПО.

Раз­дел 2. Ме­то­ды про­грам­ми­ро­ва­ния

Те­ма 10. Ме­то­ды ана­ли­за ал­го­рит­мов

Ме­то­ды оцен­ки слож­но­сти ал­го­рит­мов. Наи­худ­шие и сред­ние по­ка­за­те­ли, по­ря­док рос­та слож­но­сти ал­го­рит­ма. Ме­то­ды ана­ли­за ре­кур­сив­ных ал­го­рит­мов. Ме­то­ды по­строе­ния и ана­ли­за ал­го­рит­мов (ди­на­ми­че­ское про­грам­ми­ро­ва­ние, амор­ти­за­ци­он­ный ана­лиз, жад­ные ал­го­рит­мы)

Те­ма 11. Ди­на­ми­че­ские струк­ту­ры дан­ных

Струк­ту­ры дан­ных: мно­же­ст­ва, спи­ски, сте­ки, оче­ре­ди, де­ре­вья, «ку­чи», хеш-таб­ли­цы. Спо­со­бы реа­ли­за­ции струк­тур дан­ных и ос­нов­ные опе­ра­ции над ни­ми.

Те­ма 12. По­иск и сор­ти­ров­ка

Сор­ти­ров­ка по­сле­до­ва­тель­но­стей (слия­ни­ем, встав­ка­ми, бы­ст­рая сор­ти­ров­ка, сор­ти­ров­ки срав­не­ни­ем).

Ал­го­рит­мы по­ис­ка (ли­ней­ный, дво­ич­ный, Фи­бо­нач­чи; де­ре­вья по­ис­ка). По­иск в хеш-таб­ли­це.

По­иск в стро­ке (ал­го­рит­мы Бой­е­ра-Му­ра, Прат­та). Ал­го­рит­мы оп­ре­де­ле­ния рас­стоя­ния для строк (ал­го­ритм Ле­вен­штей­на, ал­го­ритм Фи­ше­ра).

Те­ма 13. Ос­нов­ные ал­го­рит­мы на гра­фах

Пред­став­ле­ние гра­фов. Ал­го­рит­мы об­хо­да гра­фов. На­хо­ж­де­ние силь­но­связ­ных ком­по­нент, ми­ни­маль­ных ос­тов­ных де­ревь­ев, крат­чай­ших пу­тей, мак­си­маль­но­го по­то­ка. То­по­ло­ги­че­ская сор­ти­ров­ка, за­да­ча ком­ми­воя­же­ра, при­бли­жен­ные ал­го­рит­мы.