Основы разработки ПО

Содержание

Слайд 2

Цель и задачи курса Целью курса является формирование фундаментальных знаний о

Цель и задачи курса

Целью курса является формирование фундаментальных знаний о принципах

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

В настоящее время широко используются понятия системного (в том числе и

В настоящее время широко используются понятия системного (в том числе и

процессного) подхода, адаптированные к разработке ПО.

Система – совокупность взаимодействующих единиц – элементов, функционирующих совместно для достижения определённых целей. Элемент – относительно самостоятельная структурная «единица» системы. Части системы: компонент, модуль, подсистема. Сама система может быть частью надсистемы.
Процесс – совокупность взаимосвязанных единиц – операций, преобразующих некоторые входы в выходы для достижения определённых результатов. Операция – относительно самостоятельная структурная «единица» процесса. Части процесса: задача, действие, подпроцесс. Процесс может быть частью надпроцесса.
Понятия «система» и «процесс» тесно связаны: система выполняет некоторый процесс, процесс представляет собой функционирование некоторой системы.
Для рассматриваемого объекта система задаёт структурную точку зрения на этот объект, а процесс – функциональную точку зрения.

Слайд 4

Основными понятиями программирования являются алгоритм и программа Алгоритм – конечный упорядоченный

Основными понятиями программирования являются алгоритм и программа

Алгоритм – конечный упорядоченный набор

чётко определённых правил для решения проблемы. Решаемая проблема возникает или рассматривается в рамках какой-либо предметной области. Предметная область (ПрО) – совокупность объектов, представляющих часть реального, гипотетического или абстрактного мира, и относящихся к ним понятий, а также связей между ними.
Программа – формализованное описание алгоритма для его выполнения на компьютере. Из-за наличия других смыслов и значений понятия «программа» в настоящее время используют понятие компьютерная программа.
Программный модуль – явным образом оформленная (разграниченная) часть программы, выполняющая ряд функций и применяемая только в составе какой-либо программы. Программный компонент – программа, рассматриваемая как единое целое, выполняющая заданную функцию (или связный набор функций) и применяемая самостоятельно или в совокупности с другими программами. Фактически компонент – это модуль, который может использоваться самостоятельно или в совокупности с аналогичными компонентами.
Слайд 5

Программы осуществляют взаимодействие через общие данные Программная система (ПС) – организованная

Программы осуществляют взаимодействие через общие данные

Программная система (ПС) – организованная совокупность

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

Система является более ёмким понятием, чем ПО: оно включает в себя

Система является более ёмким понятием, чем ПО: оно включает в себя

ещё и окружение, в котором функционирует ПО, как таковое

Программное средство – это ПО, снабжённое программной документацией. Документация на ПО – совокупность документов, содержащих сведения, необходимые для разработки и использования ПО. Программная документация – совокупность документов, содержащих сведения, необходимые для использования ПО.
Наиболее общим рассматриваемым понятием является система. С точки зрения разработки система включает в себя вычислительные системы, персонал и т.д.
С инженерно-технической точки зрения наиболее часто используют понятие «система», реже «ПО», «ПС» и «программное средство». Поэтому в большинстве излагаемого материала указание на ПО обычно можно заменить на ПС, программное средство и (с некоторыми условиями) на систему в целом.

Слайд 7

С организационной и экономической точек зрения наиболее часто используют понятия «прототип»

С организационной и экономической точек зрения наиболее часто используют понятия «прототип»

и «программный продукт»

Программный продукт (ПП) – программное средство, являющееся продуктом промышленного производства, предназначенным для поставки, передачи, продажи пользователю. При рассмотрении его только как результата промышленного производства используют обычно понятие программное изделие (ПИ).
Кроме продукта (результата человеческого труда) интерес представляет и услуга (участие по оказанию помощи в деятельности). Услуга – деятельность по оказанию помощи в эксплуатации продукта.
Для удобства продукт и услуга именуются кратко – решение. Решение – результат в виде предоставляемого набора продуктов и/или услуг, необходимый для удовлетворения определённой потребности. Данное понятие чаще всего используется в области информационных технологий.

Слайд 8

С решением тесно связаны два важнейших понятия – «проект» и «команда»

С решением тесно связаны два важнейших понятия – «проект» и «команда»

Прототип

– частичная, предварительная или возможная реализация решения. Прототип является пробным или промежуточным результатом разработки, по которому оценивается решение в целом.
Проект – это комплекс действий временного характера, направленных на получение конкретного решения; суть результата – его содержание. Команда – группа лиц, сформированная для выполнения проекта или его части. Проект реализуется командами, а команда работает над проектами.
В проекте могут принимать участие разные лица. Под лицом здесь понимается физическое или юридическое лицо, т.е. один человек, группа людей или некоторая организация в целом. Заинтересованное лицо – лицо, чьи интересы могут быть затронуты процессами и результатами проекта. Среди заинтересованных лиц выделяют участников проекта и, в частности, исполнителей. Участник проекта или член проекта – лицо, принимающее непосредственное участие в проекте. Исполнитель – участник проекта, выполняющий поставленную перед ним работу в рамках этого проекта и несущий ответственность за её выполнение.
Слайд 9

В проекте каждый участник играет некоторую роль (или набор ролей). Роль

В проекте каждый участник играет некоторую роль (или набор ролей). Роль

– характер поведения и области ответственности участника.

Выделяют основные роли: пользователь – лицо, которое непосредственно участвует в эксплуатации продукта для получения результатов и/или использует эти результаты; оператор – лицо, которое занимается эксплуатацией продукта; заказчик – лицо, которое заказывает разработку продукта и приобретает его; поставщик – лицо, которое предоставляет разработанный продукт; разработчик – лицо, которое выполняет разработку продукта, т.е. все действия по разработке в рамках проекта. Часто для различных разработчиков выделяют отдельные роли – (системный) аналитик, проектировщик, программист, тестировщик и т.п.
Особенностями проекта (в отличие от любой другой деятельности) являются получение конкретного результата и ограниченность проекта временными рамками, определяемые жизненным циклом проекта.

Слайд 10

Если конкретный результат не указан, обычно говорят о процессе разработки. Процесс

Если конкретный результат не указан, обычно говорят о процессе разработки.

Процесс разработки

– совокупность взаимосвязанных действий по получению некоторого результата. Процесс разработки в этом смысле представляет абстракцию проекта и фактически оказывается синонимом подхода к разработке ПО или системы. Это проявляется и в названии некоторых технологических подходов.
Продукт можно рассматривать аналогично живому организму: он имеет жизненный цикл (ЖЦ), который начинается с «зарождения» (возможно, с зарождения замысла / идеи) и заканчивается его «смертью» (изъятием из употребления). Концепция ЖЦ оказывается чрезвычайно полезной при управлении проектом.
Слайд 11

ЖЦ проекта Целью программного проекта является решение. Для проекта и соответствующего

ЖЦ проекта

Целью программного проекта является решение. Для проекта и соответствующего ему

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