Уеб сайт на Катедра Софтуерни технологии във Факултета по математика и информатика на СУ "Св. Климент Охридски"

Софтуерни технологии

Анотации на учебните дисциплини

Задължителни дисциплини

Архитектури на софтуерни системи

Преподавател: доц. д-р Александър Димов
Хорариум: 30 ч. л. + 15 ч. упр.
Кредити: 5

Основната цел на настоящия курс е да запознае студентите с понятията, свързани със софтуерните архитектури (СА) и методите за проектиране, документиране и анализ на СА. Темите от курса могат да служат за отправна точка за бъдеща практическа работа по създаването на големи софтуерни проекти. Допълнителна цел е да създаде заедно с останалите дисциплини основа за цялостно и детайлно разбиране на разработването на софтуерни приложения.

В края на обучението си студентът ще:

  • ще има поглед върху процеса на създаване и документиране на софтуерни архитектури и ще може да взема участие в такъв процес;
  • ще има представа как се анализират софтуерни архитектури, как се оценяват техните качества (или липса на такива) и ще може да участвате в процеса на анализ;
  • ще има по-широк поглед върху процеса на разработване на софтуер, и по-детайлно върху създаването на архитектура.

Интегриране на разпределени системи

Преподавател: проф. д-р Силвия Илиева, доц. д-р Десислава Петрова-Антонова
Хорариум: 30 ч. л. + 30 ч. упр.
Кредити: 6

Курсът има за цел да въведе основните концепции свързани с разпределените системи, да представи различните категории middleware като се фокусира върху обектно-ориентираните middleware. В допълнение се разглеждат обектните модели и архитектури на най-разпространените обектно-ориентирани middleware. Курсът представя също така софтуерните услуги като концепция и свързаните с тях технологии и стандарти.
След завършване на курса се очаква студентите да придобията умения за: извършване на сравнителен анализ и подбор на подходящ middleware; прилагане на middleware технологията при разработката на софтуерни системи; реализиранe на собствена софтуерна услуга, както и интегриране на софтуерни услуги.

Моделиране на софтуерни системи

Преподавател: доц. д-р Олга Георгиева
Хорариум: 30 ч. л. + 15 ч. упр.
Кредити: 5

Научните основи на софтуерно инженерство изискват използването на прецизни абстракти модели и логики за разсъждение с цел анализ, тестване, разработване и трансформиране на надежни софтуерни системи. Съществуват няколко основни модела и логики, които се наложиха в последните годинии и които са важни при изучаването на софтуерните системи. Това знание е предмет на настоящия учебен курс. Той включва изучаването на стандартните модели за представяне на последователностни и паралелни системи като машини на състоянието, алгебри и подходи за проследяване на взаимовръзките между артефактите. Показва се как различни логики могат да бъдат използвани за определяне на качествата на софтуерните системи каквито са коректността на функциониране, вътрешна съгласуваност и дефиниране на безизходни състояния.
Знанията и уменията по "Моделиране на софтуерни системи" създават предпоставки за многостранна реализация на студените при анализа, създаването и използването на софтуерни системи, прилагани в различни сфери на икономиката, производството и администрацията, както и в съответствие със своите потребности и интереси да придобиват нови знания и възможности в тази предметна област.

В края на обучението си студентът ще:

  • знае предимствата и недостатъците на отделните модели и логики за описание на софтуерни системи в съответсвие с тяхното конкретно приложение;
  • бъде в състояние да прилага на практика абстракните модели и логики за изграждане на софтуерни системи като прави подходящ избор за съответния клас системи;
  • бъде в състояние да прилага формални методи за анализ на характеристиките на софтуерните системи.

Обектно-ориентиран анализ и проектиране на разпределени софтуерни системи

Преподавател: проф. д-р Боян Бончев
Хорариум: 30 ч. л. + 30 ч. упр.
Кредити: 6

Унифицираният език за моделиране (UML) e нотация за обектно-ориентиран анализ и дизайн и отлично средство за моделиране на бизнес процеси и на информационни системи. Настоящият курс представя цялостната UML нотация – от описание на потребителските случаи и диаграми на класовете с различни типове асоциации, агрегации, многократна наследственост и др., до по-новите UML концепции като ограничения, свойства и стереотипи. Включени са също така и разширенията, които се предлагат от някои UML среди.

Чрез лекции и лабораторни упражнения с използване на Visual Paradigm® като средa за практическо проектиране с използване на UML 2.0, курсът представлява база за концептуален и практически обектно-ориентиран анализ и дизайн и така подготвя разработчиците за прилагане на UML стандарта в създаването на софтуерни системи. Той е изцяло с практическа насоченост и е ориентиран към нуждите от автоматизация на проектирането в софтуерните компании. След завършване на курса преминалите обучението студенти ще могат:

  • да описват бизнес изискванията към софтуерни системи чрез UML;
  • да изграждат цялостни UML модели на информационни системи посредством използване на Visual Paradigm®;
  • да генерират програмен код от UML модел и обратно в средата Visual Paradigm®;
  • да използват UML моделирането и Visual Paradigm® за създаване на документация за разработваните софтуерни системи;
  • да работят със съвременни средства за бизнес моделиране.

Софтуерни технологии

Преподавател: доц. д-р Силвия Илиева
Хорариум: 45 ч. л. + 30 ч. упр.
Кредити: 6

Курсът има за цел да задълбочи познанията на студентите за концепциите и методите, необходими при разработване на големи софтуерни системи. Да даде нови знания за техниките и процесите, свързани с разработката на сложни софтуерни системи. Друга цел е постигането на широко разбиране за дисциплината софтуерно инженерство. Част от темите са посветени на гъвкавите методологии за разработване на софтуерни системи, запознавайки студентите с текущото състояние на гъвкавите методологии, като се започне от историята на тази нова тенденция и основните й стойности и принципи. Включен е сравнителен анализ на съществуващите гъвкави методологии и по-специално се дискутира Есктремното Програмиране (ХР). Разглеждат се препоръчителните практики за ХР; планирането, документирането и управлението на ХР проекти, както и средства, подпомагащи приложението на гъвкавите методологии. Представят се опита и поуките от приложението на ХР в български софтуерни фирми.

След завършване на курса студенитите ще могат:

  • да разбират основните въпроси, засягащи процеса на разработка на софтуерни системи;
  • да създадават и управляват малък проект за разработване на софтуерна система;
  • да четат и разбират професионална и техническа литература, свързана със софтуерно инженерство.

Управление на проекти

Преподавател: д-р Владимир Лилов
Хорариум: 30 ч. л. + 30 ч. упр.
Кредити: 6

Управлението на проекти е относително нова професия като основните нейни принципи се утвърждават в началото на 90 те години от миналия век. В момента управлението на проекти обхваща всички нива и дейности на корпорациите и организациите. Проектите могат да включват както един единствен човек така и хиляди хора. Тяхната продължителност може да бъде от няколко седмици до повече от пет години. Проектите се извършват както от един отдел на организацията така и от многонационални корпорации пресичащи културни и географски граници. В момента успешната реализация на проектите е критична за осъществяване не тяхната стратегия за развитие защото проектите и тяхното управление са основни за осъществяване на стратегическите и тактическите задачи пред бизнеса и организациите извън него.
Програмата за дисциплината Управление на Проекти е насочена към получаването на знания и e основа за усвояване на модерните принципи на управление на проекти. Основният фокус на програмата е върху интегрирацията на процесите и областите на познание на управлението на проекти с основните цели и задачи на управлението на бизнеса и организациите и да се усвои приложението им от различните нива на управление във фирмите и организациите. В програмата се акцентира върху основни елементи от управлението на проекти : планиране на проекта, управление на обхвата и задачите на проекта, създаване на план график на проекта, контрол на разходите и бюджета, осигуряване на човешките ресурси и качеството на проекта.
Чрез лекции, решаване на Case Studies, тестови примери и задачи студентите ще придобият както основни знания, така и разбиране за ключовите фактори за успешна управление на проекти.

Избираеми дисциплини

Компонентно-базирано софтуерно инженерство

Преподавател: проф. д-р Силвия Илиева
Хорариум: 30 ч. л. + 30 ч. упр.
Кредити: 6

Основната цел на настоящия курс е да се представят концепции, парадигми, технологии за многократна употреба при разработване на софтуерни системи. Допълнително ще се въведе основната терминология и принципите на компонентно-базираното софтуерно инженерство, като поддисциплина на софтуерното инженерство. В рамките на лекциите ще се очертаят различията между традиционната разработка на софтуерни системи и системи на базата на компоненти/услуги. В това направление курсът се явява естествено продължение на курса от първия семестър Софтуерни технологии. Накрая студунтите се запознават с основните приложни области на компонентно базираното софтуерно инженерство – вградени системи, уеб системи и др.

След завършване на курса се очаква студентите да могат:

  • да разбират основните въпроси, засягащи процеса на разработка на софтуерни системи на базата на компоненти и услуги;
  • да разработват компонент и да интегрирате цялостна система на базата на компоненти;
  • да четат и разбират професионална и техническа литература, свързана с компонентно базирано софтуерно инженерство.

Правни аспекти на софтуерното инженерство

Преподавател: д-р Георги Димитров
Хорариум: 30 ч. л. + 15 ч. упр.
Кредити: 4

Целта на настоящия курс е даде необходим минимум от познания върху правните аспекти на информационните технологии в контекста на софтуерното инженерство. Разработването и внедряването на софтуер, функционирането му в определена среда, създаването на бази данни по трудов договор и дори ползването на ИТ решения налага младите специалисти да имат ясен поглед върху правата и задълженията си, произтичащи от закона. Това ще позволи защита на интересите им в новите бизнес-условия и познаване на проблемните аспекти в електронния свят, като хакерство, незаконно съдържание, пиратство, плагиатство и др

След завършване на курса студентите ще могат:

  • да знаят какво е авторско право;
  • да разбират значението на различните лицензи и договори за предоставяне право на ползване върху софтуерни продукти, бази данни и т.н.;
  • да разбират проблемите, свързани с незаконно съдържание и софтуерно пиратство;
  • да се предпазват от правни проблеми, които могат да доведат до криминално преследване (компютърни престъпления);
  • да познават различните аспекти при разработване на софтуерни приложения и решения в областта на E-government, електронни магазини, портали, информационни уеб-сайтове и др.;
  • да разбират валидността на различните сключвани през Интернет договори за нуждите на електронна търговия и др. отношения (click-wrap, shrink-wrap, чрез SMS и т.н.);
  • да познават законовите изисквания за електронна автентификация и идентификация при електронни транзакции (напр. интернет-банкиране);
  • да познават проблемите при използване на софтуер за он-лайн комуникации (ICQ, IRC, Forums, WhiteBoards, E-mails, VideoConf);
  • да познават проблемите, свързани със софтуера с отворен код;
  • да разбират законовите изисквания за защита на лични данни и квалифицирана информация;
  • да имат познания за ролята на стандартите по отношение на софтуерното инженерство.

Програмиране на Java сървърни приложения

Преподавател: проф. д-р Боян Бончев
Хорариум: 30 ч. л. + 30 ч. упр.
Кредити: 5

С разширяващото се използване на Java като език за изграждане на сърверни приложения, все по-повече нараства и значението на Java EE (Java Enterprise Edition) платформата и нейния модел на многослойни разпределени приложения. Курсът цели да представи преглед на Java EE 5 (JEE5) архитектурите и да покаже как те могат да бъдат използвани за разработка на Интернет и клиент-сървер приложения. Отделя се специално внимание на JEE5 разпределените многослойни приложения, като са представени различните JEE5 приложни компоненти. Дискутирани са в детайли клиентският, Web и бизнес слоевете на типични многослойни Java приложения.
Курсът представя най-важните приложни програмни интерфейси на Java EE - от основите на програмиране с Java сървлети с много примери на специфични HTTP сървлет класове, Java Server Pages (JSP) и техните API, както и на спецификите на JSP моделите, свързването им и съпътстващото използване на Java beans. Курсът дискутира и технологията на Java Server Faces (JSF) , Enterprise Java Beans (EJB) с примери на компоненти от бизнес слоя, типовете на EJB, персистентноста им и начините за достъп до EJB компоненти, както и до Уеб услуги и др. аспекти на Java EE. За всяка от представените технологии са дадени дефиниции, начини на използване и множество практически примери.
Курсът цели придобиване на практически умения в ползването на SAP NetWeaver Appl. Server, Tomcat, и JBoss приложни сървъри. Чрез лекции и лабораторни упражнения с използване на съвременни приложни среди (SAP NetWeaver Studio и Eclipse) курсът подготвя студентите за прилагане на JEE5 платформата при разработването на сървърни софтуерни системи и предоставя солидна концептуална и практическа база за анализ и дизайн на многослойни системи.

Проектиране на софтуерни приложения

Преподавател: доц. д-р Боян Бончев
Хорариум: 30 ч. л. + 30 ч. упр.
Кредити: 5

През последното десетилетие Java се утвърди като обектно-ориентиран език и платформа за изграждане на ефективни софтуерни приложения от различен тип – десктоп, мрежови, разпределени и конкурентни. Освен това, явна е популярността на Java дори за създаване на приложения от вграден тип, за наръчни и мобилни устройства, както и за реално време. Благодарение на изразителната мощност и универсалността на езика, както и на преносимостта и развитата платформа, беше създаден и продължава да се разработва широк спектър от клиентски и системен софтуер.

Настоящият курс си поставя следните цели:

  • да запознае студентите с Java като обектно-ориентиран език за изграждане на софтуерни приложения от различен тип – десктоп, мрежови, разпределени и конкурентни.
  • да представи общо въведение в Java 1.5 и 1.6 – от описание на базовите средства и библиотеки, новостите на езика във версии Java Standard Edition 1.5 (J2SE5) и 1.6 (Java SE 6), възможностите за създаване на приложения с богат графичен интерфейс, основите на Java Data Base Connectivity (JDBC) 2.0-3.0 с кратко въведение в SQL и в използването на JDBC драйверите, до инструментариума му за създаване на мрежови, разпределени, и конкурентни системи.
  • чрез лекции, семинари и лабораторни упражнения с използване на Eclipse и/или SAP NetWeaver Studio™ като средa за проектиране, курсът представлява база за получаване на теоретични и практически умения, необходими за работа в съвременна софтуерна фирма, използваща Java технологии.

Курсът е ориентиран към покриване на повечето аспекти на Java SE (Standard Edition) и представлява база за усвояване на знанията от втория курс от тази поредица – програмиране на Java сървърни приложения.

Софтуерни шаблони за проектиране

Преподавател: проф. д-р Боян Бончев
Хорариум: 30 ч. л. + 30 ч. упр.
Кредити: 6

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

Съвременни маркъп езици

Преподавател: проф. д-р Боян Бончев
Хорариум: 30 ч. л. + 30 ч. упр.
Кредити: 5

XML (eXtensible Markup Language) представлява набор от правила за дефиниране на семантични маркери с цел структуриране на документа и описание на съдържанието на документа. XML като мета-маркъп език е в основата на редица технологии, използвани за развитието на много нови проблемно-ориентирани специфични семантични езици. Огромно е значението на XML като средство за бизнес интеграция и за качествено-ново ниво на човеко-машиния интерфейс.
Настоящият курс представя цялостната фамилия от XML технологии, започвайки от базата на HTML и Cascading Style Sheets. Поставя се акцент върху изучаването на DTD (Document Type Definitions), XSchema (XML Schema), DOM, SAX, StAX и XSLT (eXtensible StyleSheet Language Transformations) и XPath. Курсът въвежда и в сравнително нови технологии като XLinks и XPointers. Лекционният материал завършва с представянето на XML-базирани езици и на използването на Уеб услуги.

Чрез лекции и лабораторни упражнения с използване на различни среди за разработка на XML документи, курсът подготвя студентите за практическо прилагане на XML стандартите в разработката на софтуерни системи. След завършване на курса те се очаква да могат:

  • да работят със стилови множества върху XML документ;
  • да описват семантиката на XML документи посредством DTD и XSchema;
  • да манипулират XML документи посредством DOM, SAX и StAX;
  • да трансформират XML документи чрез XSLT;
  • да използват XLinks и XPointers;
  • да изграждат приложения на базата на Web services.

Тестване на софтуерни системи

Преподавател: доц. д-р Десислава Петрова-Антонова
Хорариум: 30 ч. л. + 30 ч. упр.
Кредити: 5

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

Предвидените упражнения ще бъдат насочени към придобиване на практически умения за планиране, разработка, оптимизация и изпълнение на тестове в средата на MS Visual Studio 2010 и MS Test Manager 2010.
Освен конкретните знания за тестването, курсът ще разшири представите на участниците в него за процесите на създаване на софтуерните продукти и връзката на тест екипа с останалите участници в проекта.

Хранилища за данни

Преподавател: Цветелина Мечкарова
Хорариум: 30 ч. л. + 30 ч. упр.
Кредити: 5

Курсът въвежда студентите в систематичния подход за разработка на бази данни от тип "Склад за данни" (Data Warehouse). Участниците ще се научат да дефинират потребителски изисквания, да идентифицират кога е необходимо прилагането на Data Warehousing, ще разберат разликите между нормализираните бази данни и Data Warehouse. В края на курса ще бъде обърнато специално внимание на преминаването от ER диаграма към начален дизайн на базата данни.
Курсът ще разшири представите на студентите за работата със стандартни бази от данни и начините за обработване и използване на натрупаните данни и извличане на информацията от тях. Тези умения са изключително необходими за потребителите в условията на конкурентната бизнес среда. Изграждането на такива решения подпомага по лесното взимане на управленски решения. Курсът дава на студентите знания за това как работи Data Warehouse и как може това решение да бъде интегрирано в съвременните технологии.
Предвидените практически упражнения ще бъдат насочени към придобиване на умения за анализ на данните и изграждане на цялостни Data Warehouse решения.

Copyrights © 2013 & All Rights Reserved.
Начало