Лекция 1-2. Софтуерно инженерство

Подобни документи
План за действие за създаване на Български облак за отворена наука Съдържание 1. Визия BOSC Реализация на BOSC Забележки... 5

Slide 1

<4D F736F F D20D0E0E7FFF1EDE5EDE8E520EFEE20F7EB2E EEF220C7CECF20F120C8E7F52EB EEF E31312E3138E3>

Анализ и оптимизация на софтуерни приложения

PowerPoint Presentation

Споделяне на анонимни данни с Lenovo Съдържание Споделяне на анонимни данни с Lenovo... 1 Harmony... 1 Lenovo Companion Lenovo Customer Engag

РЕЦЕНЗИЯ от проф. д-р Красен Стефанов Стефанов на дисертационен труд на тема ИНСТРУМЕНТИ ЗА ПРЕДСТАВЯНЕ НА 3D ОБЕКТИ И КОЛЕКЦИИ В ИНТЕРНЕТ за придобив

ЦЕНТЪР ПО ИНФОРМАТИКА И ТЕХНИЧЕСКИ НАУКИ УЧЕБНА ПРОГРАМА Утвърждавам: Декан: CS 206 ИЗКУСТВЕН ИНТЕЛЕКТ Приета: прот. 8 от г.; Актуализирана

СТАНОВИЩЕ

XХIV MНТК АДП-2015 ПРОЕКТИРАНЕ НА ЗАХРАНВАЩИ ПОЗИЦИИ В АВТОМАТИЗИРАН КОМПЛЕКС ЗА МОНТАЖ НА ДЕТАЙЛ ТИП ПЛАСТИНА Любомир Личев, Ренета Димитрова Резюме:

Digital library 2.0

Въведение в информационните технологии и компютърните системи

РЕЦЕНЗИЯ от проф. д-р Красен Стефанов Стефанов на дисертационен труд на тема Оперативна съвместимост между цифрови библиотеки за културно наследство з

AM_Ple_LegReport

Microsoft Word - PIM_CIOv2

AM_Ple_LegReport

СТАНОВИЩЕ oт проф. д-р Маргарита Теодосиева, Русенски университет А. Кънчев на дисертационния труд за присъждане на образователната и научна степен до

ДОКЛАД ЗА НАПРЕДЪКА

РЕЦЕНЗИЯ на дисертационен труд за присъждане на образователна и научна степен "ДОКТОР" по професионално направление 4.6. "Информатика и компютърни нау

Slide 1

(пълно наименование на училището) Утвърждавам!... (име и фамилия, подпис, печат) ПРИМЕРНО ГОДИШНО РАЗПРЕДЕЛЕНИЕ НА УЧЕБНОТО СЪДЪРЖАНИЕ по инфор

<4D F736F F D20C0E2F2EEECE0F2E8E7E8F0E0EDE820F1E8F1F2E5ECE820E7E020EEE1F0E0E1EEF2EAE020EDE020E8EDF4EEF0ECE0F6E8FF20E820F3EFF0E0E2E

Microsoft Word - Recenzia_Darian Pejcheva_From_ Yantsislav Yanakiev.doc

ИНСТИТУТ ПО ОТБРАНА СТАНОВИЩЕ от полковник доц. д-р инж.росен Ст.Илиев, Институт по отбрана Министерство на отбраната, София, бул. Н. Тотлебен 34, сл.

PowerPoint-Präsentation

AM_Ple_LegReport

У Ч Е Б Е Н П Л А Н

Center for the Study of Democracy Presentation

Проект – формат за анотация към учебна програма

ИКОНОМИЧЕСКИ УНИВЕРСИТЕТ – ВАРНА

Проф

Microsoft Word - Kvalif_h-ka_SI.doc

Биомедицинска Информатика

PowerPoint Presentation

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

Доклад за оценка на здравната технология съгласно чл. 17, ал. 5 от Наредба 9 от на МЗ

Kjh;j’p] ] [

СТАНОВИЩЕ на дисертационен труд за получаване на образователната и научна степен доктор на тема: АКУСТИЧНО-ФОНЕТИЧНО МОДЕЛИРАНЕ ЗА РАЗПОЗНАВАНЕ НА ДЕТ

PowerPoint Presentation

Препис:

Лекция 1-2 Софтуерно инженерство 1

Съдържание Софтуерно инженерство Какво е софтуерното инженерство Разлика с компютърни науки Разлика със системно инженерство Дефиниции Софтуерно инженерство нива Софтуерен процес и модели на процес Методи на софтуерното инженерство Средства на софтуерното инженерство Предизвикателства пред софтуерното инженерство 2

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

Какво е (софтуерно) инженерство? Решаване на проблеми Разбиране на проблема Анализиране на проблема Намиране на решение Конструиране на решението от части, които засягат различни аспекти на проблема - синтез Решаване на проблема с използване на различни Методи или техники (формална процедура за произвеждане на някакъв резултат), Средства (инструмент или автоматизирана система), Процедури (комбинация от средства и техники), Парадигми (определен подход или философия) 4

Анализ на проблем 5

Синтез 6

Какво е софтуерно инженерство? Софтуерното инженерство е дисциплина, която се занимава с всички аспекти на проектирането и разработването на висококачествен софтуер Софтуерните инженери би трябвало да възприемат в своята работа систематизиран и организиран подход и да използват подходящи средства в зависимост от решавания проблем, съществуващите ограничения и наличните ресурси 7

Каква е разликата между софтуерно инженерство и компютърни науки? 8

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

Връзка между софтуерно инженерство и компютърни науки 10

Каква е разликата между софтуерното инженерство и системното инженерство? 11

Каква е разликата между софтуерното инженерство и системното инженерство? Системното инженерство се занимава с всички аспекти на компютърно базираните системи включващи хардуер, софтуер и процес. Софтуерното инженерство е част от този процес. Software engineering is part of this process Системните инженери са включени в спецификация на системата, архитектурен дизайн, интеграция и внедряване 12

Дефиниция на софтуерно инженерство IEEE [93] (1) Прилагането на систематичен, дисциплиниран, количествено измерим подход към разработването, функционирането и съпровождането (поддръжката) на софтуера. (2) Изследване на подходите в (1). 13

Цена на софтуера Често цената на софтуера доминира цената на системата. Цената за поддръжката на софтуера е повисока от цената за разработването. Софтуерното инженерство се занимава с ефективно по отношение на цената разработване на софтуер 14

Софтуерното инженерство като технология на нива 15

Софтуерен процес Последователност от предвидими стъпки план, който следвате за да създадете продукт или система в срок и с високо качество Рамка за задачите, които е необходимо да се изпълнят за да се изгради висококачествен софтуер Установяващ базата за управление на софтуерен проект и контекста, в който се прилагат техническите методи, създават се работните продукти, осигурява се качеството. 16

Модел на софтуерен процес Опростено описание на софтуерен процес, което е представено от определена перспектива Абстракция на действителния процес Примери за модели на софтуерни процеси: Модел работен поток (Workflow model) Модел поток на данни (Data-flow (activity) model) Модел роля/действие 17

Методи на софтуерното инженерство Метод на софтуерното инженерство Структуриран подход за разработване на софтуер, чиято цел е да улесни създаването на рентабилен софтуер с високо качество Методите би трябвало да включват следните компоненти Описания на отделни модели на системата Правила Препоръки Упътване за процеса 18

Средства на софтуерното инженерство Осигуряват автоматична или полу-автоматич-на поддръжка на процеси и методи CASE (Computer-Aided Software Engineering) Различни типове програми, които се използват да поддържат дейностите от софтуерния процес Upper-CASE tool Поддържа ранните фази от софтуерния процес (анализ и проектиране) Lower-CASE tool Поддържа имплементация и тестване 19

Какво е добър софтуер? Гледни точки към качеството Абстрактен поглед (transcendental view) качеството се разпознава, но не може да се дефинира Потребителска гледна точка ( user view) качество е съответствието на поставената цел Гледна точка на разработчиците (manufacturing view) качество е съответствието на спецификацията Гледна точка на продукта (product view) свързано е с характеристиките на продукт (поддръжка, надеждност..) Гледна точка на цената (value-based view) качеството е свързано със сумата, която е готов да плати клиента Качество на продукт и качество на процес 20

Атрибути на добър софтуер Възможност за поддръжка Софтуерът трябва да е написан по такъв начин, че да може да се развива за да задоволи променящите се нужди на клиентите Отказоустойчивост надеждност, сигурност, защита Ефикасност Време за отговор, време за обработка, използване на паметта Използваемост Подходящ потребителски интерфейс и адекватна документация 21

Участници в разработването на софтуер 22

Членове на екип, разработващ софтуер 23

Кои са основните предизвикателства пред софтуерното инженерство? Справяне с наследените системи, с нарастващо разнообразие и с изисквания за намалено време за доставка Наследените системи Стари, ценни системи трябва да се поддържат и обновяват Хетерогенност Разработване на техники за изграждане на отказоустойчив софтуер, който е достатъчно гъвкав за да се справи с хетерогенността Доставяне на софтуер Има нарастващ натиск за по-бързо доставяне на големи и сложни системи без да се прави компромис с качеството им 24

Обобщение Софтуерното инженерство е дисциплина, която интегрира процеси, методи и средства за разработване на софтуер Софтуерният процес се състои от активности, които се извършват при разработването на софтуер Методите са организиран начин за създаване на софтуер CASE средства са софтуерни системи, които са проектирани да поддържат рутинни активности от софтуерния процес 25