Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Основы программной инженерии

Покупка
Артикул: 769616.01.99
Доступ онлайн
240 ₽
В корзину
В учебном пособии описана модель технологического процесса промышленного производства программного продукта. Приводятся материалы об отечественных и зарубежных стандартах, регламентирующих процессы жизненного цикла программных продуктов; моделях разработки программных продуктов; перечне и содержании этапов и областей знаний управления программными проектами; выводе на рынок и коммерциализации программных продуктов. Для студентов, обучающихся по направлению подготовки 09.03.04 «Программная инженерия» (уровень бакалавриата).
Ехлаков, Ю. П. Основы программной инженерии : учебное пособие / Ю. П. Ехлаков. - Томск : Эль-Контент, 2019. - 128 с. - ISBN 978-5-4332-0280-1. - Текст : электронный. - URL: https://znanium.com/catalog/product/1845895 (дата обращения: 26.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Министерство науки и высшего образования Российской Федерации 

 

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ 

УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР) 

 

ФАКУЛЬТЕТ ДИСТАНЦИОННОГО ОБУЧЕНИЯ (ФДО) 

 

 

 

 

Ю. П. Ехлаков 

 

 

 

 

ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ 

 

 

 

 

 

 

Учебное пособие 

 

 

 

 

Томск 
2019 

УДК
004.41(075.8)

ББК
32.973-018я73
Е 934

 

Рецензенты: 

В. Ф. Тарасенко, д-р техн. наук, профессор кафедры  

теоретической кибернетики Национального исследовательского  

Томского государственного университета; 

О. И. Жуковский, канд. техн. наук, доцент кафедры автоматизации  
обработки информации Томского государственного университета  

систем управления и радиоэлектроники 

 

Ехлаков, Ю. П. 

Е 934
Основы 
программной 
инженерии 
: 
учебное 
пособие 
/ 

Ю. П. Ехлаков. – Томск : Эль Контент, 2019. – 128 с.

 

ISBN 978-5-4332-0280-1 

 

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

Для студентов, обучающихся по направлению подготовки 09.03.04 «Про
граммная инженерия» (уровень бакалавриата). 
 
 
 
 
 
 
ISBN 978-5-4332-0280-1 
© Ехлаков Ю. П., 2019 
© Оформление. 

Эль Контент, 2019 

Оглавление 

Введение ............................................................................................................ 5 
1 Основные понятия программной инженерии  

как промышленной технологии создания  
программных продуктов .......................................................................... 10 
1.1 Определение и особенности программного продукта ...................... 10 
1.2 Модель технологического процесса создания  

программного продукта ........................................................................ 13 

2 Моделирование бизнес-процессов предметной области .................... 22 

2.1 Структурный подход к построению моделей бизнес-процессов ..... 22 
2.2 Объектно-ориентированная методология построения  

моделей бизнес-процессов ................................................................... 29 

3 Модели разработки программного продукта ....................................... 34 

3.1 Каскадная модель .................................................................................. 34 
3.2 Модель прототипирования ................................................................... 37 
3.3 Модель быстрой разработки приложений .......................................... 40 

4 Жизненный цикл разработки программного продукта ..................... 44 

4.1 Стандарты на процессы жизненного цикла разработки 

программного продукта ........................................................................ 44 

4.2 Разработка и анализ требований .......................................................... 47 

4.2.1 Понятие и классификация требований ....................................... 47 
4.2.2 Процессы работы с требованиями ............................................... 52 

4.3 Проектирование программных продуктов ......................................... 55 

4.3.1 Содержание этапа проектирования ............................................. 55 
4.3.2 Типовые архитектуры программных систем .............................. 58 
4.3.3 Процессы проектирования программных продуктов ................ 63 
4.3.4 Моделирование процессов разработки архитектуры 

программной системы управления и контроля  
работы скорой помощи ................................................................. 65 

4.4 Конструирование программного продукта ........................................ 69 

4.4.1 Процессы и инструментальные средства конструирования ..... 69 
4.4.2 Практические рекомендации по организации процессов 

конструирования при использовании  
промышленной технологии Microsoft Solution Framework ...... 73 

4.5 Тестирование программного продукта ............................................... 78 

 
 

5 Жизненный цикл вывода на рынок программного продукта .......... 83 

5.1 Ввод в эксплуатацию и сопровождение  

программного продукта ........................................................................ 83 

5.2 Продвижение тиражного программного продукта на рынок ........... 86 
5.3 Жизненный цикл фазы вывода на рынок  

тиражного программного продукта .................................................... 89 

6 Управление программными проектами................................................ 93 

6.1 Основные понятия и определения ....................................................... 93 
6.2 Этапы жизненного цикла программного проекта ............................. 96 
6.3 Управление содержанием и сроками реализации  

программного проекта ........................................................................ 100 

6.4 Управление качеством программного проекта ................................ 105 
6.5 Управление рисками программного проекта ................................... 108 

6.5.1 Риски и рискообразующие факторы  

программного проекта ................................................................ 108 

6.5.2 Качественный и количественный анализ  

рискообразующих факторов ...................................................... 111 

6.5.3 Стратегии управления рисками ................................................. 114 

Заключение ................................................................................................... 119 
Литература.................................................................................................... 120 
Глоссарий ...................................................................................................... 122 

 

Введение 

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

Все бизнес-процессы разработки ПП должны иметь черты современного 

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

Содержание учебного процесса, порядок и условия его проведения опре
деляются (регламентируются) Федеральным государственным образовательным 
стандартом высшего образования – бакалавриат по направлению подготовки 
09.03.04 «Программная инженерия» (ФГОС3++) [1], а также серией профессиональных стандартов: в сфере «Связь, инфокоммуникационные и коммуникационные технологии», соответствующих направлению подготовки 09.03.04 «Программная 
инженерия» 
(уровень 
бакалавриата), 
разрабатываемых 
IT
компаниями, входящими в Ассоциацию предприятий компьютерных и информационных технологий [2] и утверждаемых соответствующими приказами Министерства труда и социальной защиты Российской Федерации. 

В федеральном государственном образовательном стандарте изложены 

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

Для формирования профессиональных компетенций основной профессио
нальной образовательной программы по направлению подготовки 09.03.04 «Программная инженерия» (уровень бакалавриата) вузам рекомендуется использовать профессиональные стандарты: «Программист», «Специалист по тестированию в области информационных технологий», «Системный аналитик», «Системный программист». В этих документах перечислены цели профессиональной деятельности, обобщенные и «элементарные» трудовые функции и действия, которые выпускник обязан выполнять при занятии соответствующей должности, а 
также требования к уровню образования и обучения. 

Профессиональная деятельность программиста заключается в разработке 

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

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

 ································ ·····························   

Освоение образовательной программы данного направления 

подготовки позволит выпускнику: 

 использовать методы математического моделирования для опи
сания, анализа и проектирования бизнес-процессов в различных 
предметных областях, проводить экспериментальные исследования для их оптимизации; 

 разрабатывать алгоритмы и программные продукты, пригодные 

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

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

 участвовать в разработке технической документации, связанной 

с эксплуатацией и сопровождением программных продуктов. 

 ································ ·····························   

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

 

 
 

································ ·····························   

Преамбула к Кодексу этических норм профессионала в области 

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

2. Инженеры должны принять на себя обязательство сделать про
граммную инженерию полезной и уважаемой профессией, чтобы 
быть уверенными в том, что их работа используется во благо. 

 ································ ·····························   

В кодексе задекларировано восемь принципов в следующих сферах: 

 согласование профессиональной деятельности с интересами общества; 

 взаимоотношение между пользователем, работодателем и исполните
лем разработки; 

 достижение соответствия качества программного продукта лучшим 

профессиональным стандартам; 

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

 соблюдение этических норм в менеджменте и в сопровождении разра
боток; 

 поддержка становления профессии в соответствии с кодексом этики; 

 соблюдение этических норм во взаимоотношениях между коллегами; 

 постоянное совершенствование программной инженерии как области 

профессиональной деятельности. 

Целью изучения дисциплины «Основы программной инженерии» является 

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

В учебном пособии речь пойдет о таких понятиях, как программное обес
печение (ПО), программная система (ПС), программный продукт (ПП), комплекс 
программ (КП). В общем случае программное обеспечение необходимо рассматривать как совокупность программных средств, предназначенных для решения 

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

Соглашения, принятые в учебном пособии 

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

 ································ ·····························   

Эта пиктограмма означает определение или новое понятие. 

 ································ ·····························   
 ································ ·····························   

Эта пиктограмма означает «Внимание!». Здесь выделена важ
ная информация, требующая акцента на ней. Автор может поделиться с читателем опытом, чтобы помочь избежать некоторых ошибок. 
 ································ ·····························   

 ·························   
 Пример  ·························   

Эта пиктограмма означает пример. В данном блоке автор может привести 

практический пример для пояснения и разбора основных моментов, отраженных 
в теоретическом материале. 
 ································ ································ ·······  

 ································ ·····························   
Контрольные вопросы по главе 
 ································ ·····························   
 
 

1 Основные понятия программной инженерии  

как промышленной технологии создания  

программных продуктов 

1.1 Определение и особенности программного продукта 

В настоящее время IT-компании, связанные с производством программ
ных продуктов (ПП), так или иначе, выбирают одну из двух бизнес-моделей деятельности: разработку и продвижение собственных программных продуктов 
(продуктовая, или тиражная, модель) или разработку уникального ПП «под заказ» (заказная модель). Понятие программного продукта, предназначенного для 
практического использования, можно раскрыть в виде следующего определения. 

 ································ ·····························   

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

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

Безусловно, применение каждой из бизнес-моделей таит в себе свои риски. 

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

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

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

Программный продукт, созданный по продуктовой модели, может постав
ляться пользователям как в виде продажи лицензий, так и в виде услуги. В первом случае речь идет о поставке, развертывании и внедрении ПП на программнотехнических средствах заказчика по договору (контракту) купли-продажи, при 
этом имущественное право на ПП переходит к заказчику. Во втором случае программный продукт поставляется пользователям по SaaS-модели (англ. software 
as a service – программное обеспечение как услуга; англ. software on demand – 
программное обеспечение по требованию) в виде сервиса, как одной из форм облачных вычислений. При этом заказчику предоставляется доступ к готовому ПП, 
развернутому на программно-технических средствах разработчика. Основное 
преимущество модели SaaS для потребителя услуги состоит в том, что заказчики 
платят не за владение программным обеспечением как таковым, а за его аренду. 

Таким образом, в отличие от классической схемы от продажи лицензий 

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

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

································ ·····························   

Таким образом, программный продукт представляет собой ин
теллектуальный цифровой товар и обладает рядом специфических 
особенностей, которые можно разделить на две группы [4]: 
1) характеристики ПП как объекта промышленного производства, 

предназначенного для продажи: 

 ПП представляет собой публикацию текста программы/ про
грамм на языке программирования или в виде исполняемого 
кода, зафиксированного на материальном носителе (компьютере, дисковом накопителе и др.), который может быть продан или передан, при этом обладание материальным носителем не делает его владельца уникальным собственником; 

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

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

 в структуре стоимости ПП относительно невысоки затраты на 

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

 ПП создается в условиях повышенного риска, поскольку, яв
ляясь результатом творческого труда, не поддается точному 
оцениванию ни по времени создания, ни по требуемому бюджету; 

 вовлечение ПП в хозяйственный оборот происходит в про
цессе его коммерциализации (купли-продажи, переуступки 

Доступ онлайн
240 ₽
В корзину