Слайд 1
СОФТУЕРНО
ИНЖЕНЕРСТВО
ВЪВЕДЕНИЕ В СОФТУЕРНОТО ИНЖЕНЕРСТВО
Слайд 2
ЦЕЛ
“Софтуерното инженерство” е комплексна дисциплина, която има за цел да запознае студентите както теоретически, така и практически с основните подходи за проектиране, реализиране, тестване и документиране на софтуерни проекти.
Слайд 3
ИЗПИТ
ПРИСЪСТВИЯ
ОСВОБОЖДАВАНЕ
За присъствие на лекции и упражнения се дават бонус точки, които се отчитат в общата формула за освобождаване от изпит.
Работата в упражненията и курсовата задача се оценяват и вземат в предвид при освобождаване от изпит.
Предвиждат се два тестови контрола за освобождаване от изпит.
ОБЩИ УКАЗАНИЯ
Слайд 4
ТЕМИ
Модели на софтуерни процеси
Каскаден модел (waterfall). Спираловиден модел. V-образен модел.
Модели на бърза разработка (Rapid Application Development - RAD)
Гъвкави методологии (Agile, Scrum, Екстремно програмиране, Kanban).
Въведение в Софтуерното инженерство
Дефиниция за софтуер и софтуерно инженерство. Основни категории софтуер. Етапи на софтуерния процес (жизнен цикъл).
Управление на проекти
Основи на управлението на проекти. Инициализация и планиране на проекта.
Организационни подходи. Управление на риска.
Осигуряване на качеството и стандартите. Спецификация на изискванията.
Слайд 5
ТЕМИ
Реализация на софтуерния проект
Ефективност на програмите. Стил на програмиране. Статични и динамични библиотеки. Шаблони.
Методи на достъп до данните. Интегрирани среди за програмиране. Взаимодействие на приложния софтуер с други програмни приложения и системи. Ориентирано към услуги софтуерно инженерство.
Синхронизиране и автоматична актуализация на софтуер.
Проектиране на софтуер
Езици за моделиране. Видове диаграми. Изисквания, технически анализ, концепция. Класификация на програмните езици. Архитектура на приложението. Модулно, компонентно и обектно-ориентирано проектиране. Проектиране на графичен потребителски интерфейс.
Тестване
Основи на управление на качеството. Проектиране на тестове и техники за тяхната реализация.
Управление на регистрираните несъответствия. Подобряване на качеството в софтуерните проекти.
Документиране
Основни документи. Структура и принципи за изготвяне на техническа документация.
Помощна документация.
Слайд 6
ЛИТЕРАТУРА
Sommerville Ian, Software Engineering, Addison-Wesley, 2010
Bass Л., P. Clements, R. Kazman, Software Architecture in Practice, Addison-Wesley, 2013
Pressman Roger S., Software Engineering : A Practitioner's Approach, McGraw Hill, 2005
Илиева С., В. Лилов, И. Манова, Подходи и методи за реализация на софтуерни системи, СУ “Кл. Охридски”, 2010
McConnell Steve , Code Complete, 2nd Edition, Microsoft Press, 2004
Наков С., Курсове на Софтуерна академия на Телерик
Слайд 7
СОФТУЕРЕН ИНЖЕНЕР
Софтуерният инженер прилага изборно теоретичните знания, методи и средства. Специалистите-софтуерни инженери много често работят в условията на организационни, финансови и времеви ограничения на сключените договори. Те търсят решение на поставената задача, отчитайки клаузите на договора.
В най-общия случай инженерите са тези специалисти, които изпълняват практическа работа (следователно тук се има предвид по-широко тълкуване на понятието инженер, а не само в неговия по-тесен, “технически“ аспект).
Софтуерният инженер е човек, който прилага системен подход за анализирането, проектирането, създаването, тестването, оценката, поддръжката и преработката на софтуерните проекти.
Слайд 8
СОФТУЕРЕН ИНЖЕНЕР
Специалистите по софтуер адаптират съществуващите методи за инженеринг на софтуера към решението на своите задачи и това често пъти се оказва най-ефективният начин за създаване на качествен краен продукт.
Софтуерният инженер може да специализира като програмист, бизнес аналитик, системен архитект, мениджър на проекта (project manager), developer, софтуерен тестер (Quality Assurance - QAспециалист) и т.н.
Обикновенно тези роли са преплетени. Един съвременен софтуерен специалист трябва да разбира от гореспоменатите дейности.
Слайд 9
СОФТУЕРЕН ИНЖЕНЕР
Класация за търсенето на софтуерни инженери в България (SV Index, юни 2013)
Слайд 10
KAKВО е
СОФТУЕРНО ИНЖЕНЕРСТВО?
Софтуерното инженерство не е само ПРОГРАМИРАНЕ. Програмирането е само 10-20% от целия софтуерен процес.
Софтуерното инженерство е цялостен системен подход за анализиране, проектиране, създаване, тестване и поддържане на софтуерни проекти с използване на различни методи и инструменти за професионална разработка.
Слайд 11
KAKВО е
СОФТУЕРНО ИНЖЕНЕРСТВО?
The application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software, that is, the application of engineering to software.
Според дефиницията на IEEE: Софтуерно инженерство е прилагането на систематичен, дисциплиниран и количествен подход към разработването, оперирането и поддръжката на софтуер, или най-общо казано – използване на инженерен подход за разработка на софтуер.
Слайд 12
ИЗИСКВАНИЯ
->
РЕАЛЕН ПРОДУКТ
Софтуерното инженерство обхваща всички аспекти на създаването на програмно осигуряване - от началния стадий на дефиниране на изискванията през неговото разработване и реално използване.
Слайд 13
ДЕФИНИЦИЯ ЗА СОФТУЕР
Според дефиницията на IEEE софтуерът се състои от инструкции, структури от данни и документация. Софтуерът не е само компютърна програма. Към всяка една компютърна програма са асоциирани документация като изисквания, проектни модели, ръководства за потребителя и др.
Софтуерът, който е предназначен да се продава на клиент се нарича „софтуерен продукт“.
Слайд 14
ОСНОВНИ КАТЕГОРИИ СОФТУЕР
Системен софтуер - съвкупност от програми, които са предназначени за обслужване на други програми. Системният софтуер се характеризира с интензивна комуникация с хардуера, интензивно използване от много потребители, съвместно използване на ресурси и сложно управление на процеси, сложни структури от данни и многобройни външни интерфейси. Примери за системен софтуер са операционни системи, драйвъри за устройства, компилатори, програмни средства, асемблери и др.
Приложен софтуер - самостоятелни програми, които решават специфична нужда на бизнеса. Приложенията в тази категории обработват бизнес или технически данни, така че да улеснят бизнес операциите или вземането на технически/управленски решения.
Слайд 15
ОСНОВНИ КАТЕГОРИИ СОФТУЕР
Вграден софтуер – намира се в дадена система и се използва за реализиране и управление на определени функции вместо крайния потребител или системата.
Наследен софтуер (Legacy software) - софтуер, който е разработен преди няколко десетилетия и продължава да се използва, като непрекъснато е бил променян, за да задоволи промени в бизнес изискванията и платформите (хардуерни и софтуерни).
Софтуер с отворен код - софтуер, чийто изходен код е публично достъпен за преглед и редактиране и отговаря на следните правила: свободно разпространение; първичният код трябва да бъде включен в оригиналния си вид без да бъде променян и др.
Слайд 16
ОСНОВНИ КАТЕГОРИИ СОФТУЕР
Уеб софтуер – покрива широк спектър от софтуерни приложения.
Основни характеристики:
- Работят в мрежова среда;
- Обикновено са многослойни;
- Ориентирани са към голям брой потребители;
- Едновременен достъп на голям брой едновременни връзки;
- Непредвидима моментна натовареност;
- Трябва да реагират бързо на потребителско действие - уеб приложенията трябва да имат лек и бърз интерфейс;
- Отказоустойчивост - уеб приложението да бъде достъпно непрекъснато и промените по него да не изискват спиране;
Слайд 17
ОСНОВНИ КАТЕГОРИИ СОФТУЕР
Уеб софтуер
Основни характеристики:
- Типичното уеб приложение не използва твърде сложни алгоритмични структури, а по-скоро реализира ефективен интерфейс за достъп до данни;
- Продължават да се развиват след внедряването – според изследвания 80% от работата по едно приложение се осъществява след внедряването му;
- Определено ниво на сигурност - осигуряването на адекватно ниво на сигурност е особено важно.
Слайд 18
СОФТУЕРНИ МЕТОДИ
Софтуерният метод представлява структуриран подход към разработването на софтуер, чиято цел е да улесни създаването на рентабилен софтуер с високо качество. Методите отговарят на въпроса КАК технически да се изгради софтуерът.
Първите методи на софтуерното инженерство се появяват през 70-те години и са предимно функционално ориентирани, а впоследствие през 80-те и 90-те години те се допълват с обектно ориентирани методи. Всичките съществуващи методи се основават на идеята за разработване на модели на система, които могат да се представят графично, и използване на тези модели като описание (спецификация или дизайн) на системата.
Слайд 19
СОФТУЕРНИ СРЕДСТВА
Софтуерните средства (software tools) осигуряват автоматична или полуавтоматична поддръжка на софтуерните процеси и методи.
Софтуерните средства могат да са както самостоятелни, така и интегрирани в обща среда - CASE технология.
CASE (Computer-Aided Software Engineering) – това е система, поддържаща разработката на софтуер, която е изградена на базата на интегриране на отделни средства.
Upper-CASE средства - поддържат началните фази - анализ и проектиране;
Lower-CASE средства - поддържат фазите на реализация и тестване.
Слайд 20
СОФТУЕРЕН ПРОЦЕС
Процесът е последователност от свързани дейности, ограничения и ресурси, които осигуряват постигането на някакъв вид резултат. Понятието софтуерен процес може да се разглежда като множество от тясно свързани принципи, организационни структури, технологии, процедури и артефакти. Всички те са необходими, за да се формулира, разработи, внедри и поддържа софтуерен продукт.
ХАРАКТЕРИСТИКИ:
- Процесът представлява последователност от дейности;
- Процесът може да бъде съставен от подпроцеси с йерархии и връзки между тях;
- Всяка дейност има входни и изходни критерии;
- За всяка дейност е възможно да има ограничения (ресурси, време и др.)
Слайд 21
СОФТУЕРЕН ПРОЦЕС
ОСНОВНИ ЕТАПИ:
- Дефиниране и анализиране на изискванията (5 %)
- Планиране и проектиране (10%)
- Конструиране на кода (15%)
- Тестване (20 %)
- Внедряване и поддръжка (50%)
Това са дейности, които под една или друга форма съществуват във всеки един софтуерен проект, т.н Software Project Management. Не е задължително да се изпълняват точно една след друга.
Познаването на процесите на софтуерното инженерство е важен елемент от изграждането на всеки един софтуерен инженер.
Слайд 22
ЖИЗНЕН ЦИКЪЛ
ИДЕЯ - > РАЗРАБОТКА -> ПРОДУКТ
НА СОФТУЕРНИЯ ПРОЦЕС
Жизненият цикъл дефинира принципите и насоките, според които отделните етапи трябва да се изпълняват/осъществяват.
Жизн
0 коментара
За да коментирате, трябва да сте влезли в профила си.
Влезте