I. Цел на настоящия документ



страница1/7
Дата08.06.2017
Размер385.9 Kb.
  1   2   3   4   5   6   7
Конструиране на качествен програмен код

Теми за курсовите разработки


Версия: 1.0 (официална версия)

Последна промяна: 9.12.2002

Автор: Светлин Наков
I. Цел на настоящия документ

Настоящият документ описва темите, изискванията и критериите за оценяване на домашната работа (наричана още “курсов проект” или “курсова разработка”) за студентите, записали изборния курс “Конструиране на качествен програмен код” през учебната 2002/2003 година към ФМИ на СУ.


II. Цели на домашната работа

Писмената разработка за домашна работа, предвидена в учебния план на курса “Конструиране на качествен програмен код” има няколко основни цели:



  • да провери знанията на студента по темите, изучавани в курса;

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

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

  • да насърчи студента за усърдна и сериозна работата по зададената тема чрез възможност за публикуване на разработката;

  • да формира основната част от крайната му оценка.

Идеята е курсовите проекти, които студентите напишат като домашна работа в рамките на курса, да бъдат публикувани в нещо като сборник, учебник или книга по темата. Книгата, която евентуално ще бъде написана и издадена на български език, ще бъде съставена от събраните курсови разработки, предадени от студентите. С цел да няма ощетени студенти откъм авторски права, ако в бъдещата книга (учебник, сборник или каквото се получи) се публикуват части или цели курсови проекти, наричани за краткост текстове, авторът на тези текстове ще бъде ясно отразен. Всеки студент, който предаде като курсова разработка текст, който е достатъчно добър за публикуване и бъде използван за книгата, ще бъде ясно указан като автор (или съавтор) на съответната част от тази книга, в която този текст е използван. Чрез предложената възможност за публикуване на курсовите проекти студентите се насърчават да напишат старателно и качествено разработката си по зададената им тема, като същевременно знаят, че трудът им не отива напразно. Целта е разработката да не бъде едно досадно задължение с цел изкарване на добра оценка, а да се превърне в едно интересно и старателно извършено изследване върху зададената тема.
III. Теми на курсовите разработки

Темите, посочени по-долу, покриват съдържанието на бъдещата книга “Конструиране на качествен програмен код” и са разпределени между студентите по начин, определен от преподавателите. Целта на разпределението е по всяка тема да пишат приблизително еднакъв брой студенти с приблизително еднакви възможности, изчислени на базата на оценките им от първия тест.

Темите са така организирани, че да покриват съдържанието на проекто-книгата. Въпросите към всяка тема имат за цел да насочат вниманието на студента към задължителните основни моменти, които трябва да бъдат разгледани в разработката. Една добра писмена разработка по зададена тема трябва да изяснява отговорите на зададените към темата въпроси. Тези въпроси са само насочващи и помагат на студента да не пропусне някой важен момент в курсовата си разработка. Разбира се, тези въпроси не изчерпват всичко, което може да се включи в темата, т.е. студентът има възможност да добави и други основни моменти в работата си.

Следва списъкът на темите. За една тема се счита една подточка заедно с въпросите към нея.


1.Подготовка за конструиране на програмен код

1.1.Процеси и методологии за разработка на софтуер


      • Какво е това процес за разработка на софтуер? Защо е необходим? Не може ли без него?

      • Какво представлява традиционният подход за разработка на софтуер (Waterfall Software Development Process)? Какви са етапите, от които се състои? Какво се случва на всеки от тези етапи? Какви са основните му принципи?

      • Какво представляват Unified Process и Rational Unified Process (RUP)? Какви са етапите, от които се състоят те? Какво се случва на всеки от тези етапи? Какви са основните принципи на Unified процеса? Какви са предимствата му пред традиционния подход? Какви са слабостите му?

      • Какво представлява процесът Extreme Programming (XP)? Какви са етапите, от които се състои? Какво се случва на всеки от тези етапи? Какви са основните му принципи? Какво е това “refactoring” и каква връзка има той с XP? Какви са предимствата на XP процеса пред традиционния подход? Какви са слабостите му?

      • Какво представлява процесът SCRUM? От какви етапи се състои? Какво се случва на всеки от тези етапи? Какви са предимствата му пред останалите процеси? Какви са слабостите му?

      • Какви други процеси за разработка на софтуер има? Какво е “dX”? Какво е “Adaptive Software Development”? Какво е “Feature Driven Development”? Какво е “Dynamic System Development Method”?

      • Какви са процесите при “Open Source” проектите? Какви са основните принципи, залегнали в изброените процеси. Какви са техните силни и слаби страни?

      • Кой процес е най-добър и защо? Зависи ли правилният избор на процес от типа на проекта, който ще се разработва? Има ли значение големината на проекта? Кой от процесите при какви проекти е подходящ да се използва? Могат ли няколко процеса да бъдат комбинирани?

1.2.Изисквания към системата


      • Какво представляват изискванията към една софтуерна система? Какво трябва да включват те?

      • Има ли полза от качествени софтуерни изисквания?

      • Какви са характеристиките на висококачествените софтуерни изисквания?

      • Какво представлява проверката на изискванията (Requirements Verification)?

      • Какво представлява спецификацията на една софтуерна система (Software Requirements Specification)? Необходима ли е тя? До колко формално тя трябва да описва функциите на системата?

      • Какво представлява процесът “Software Requirements Engineering”? Какво включва този процес?

      • Какво е “Software Requirements Analysis”? Какво е “Structured Analysis”? Какво е “Object-Oriented Analysis”? Какво са “Use cases”? Как се събират изисквания за системата чрез “Use cases”? Каква е ролята на клиента при определяне изискванията към системата?

      • Какво е “Software Requirements Management”? Какви са основните принципи на ефективното управление на изискванията към системата? Как се управляват промените в изискванията? Какви са препоръките за избягване на проблеми, свързани с изискванията към системата?
  1   2   3   4   5   6   7


База данных защищена авторским правом ©obuch.info 2016
отнасят до администрацията

    Начална страница