Математические структуры и моделирование 2018. №1(45). С. 144-147
УДК 004.053 DOI: 10.25513/2222-8772.2018.1.144-147
УТОЧНЕНИЕ К СТАТЬЕ «О ФОРМАЛИЗАЦИИ ПРОЦЕССА РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ»
Е.А. Тюменцев
генеральный директор, e-mail: [email protected]
LLC Hello World! Technologies, Омск, Россия
Аннотация. В статье «О формализации процесса разработки программного обеспечения» даны определения процесса разработки как процесса редактирования текста программы, скорости данного процесса и сформулировано достаточное условие линейной скорости. В определении скорости процесса разработки необходимо существование предела. Но требуемый предел может и не существовать. В этой статье приводится определение скорости процесса разработки, не требующее существования предела, и переформулируется достаточное условие линейной скорости в соответствии с новым определением.
Ключевые слова: формализация, процесс разработки, программное обеспечение, производительность труда, Брукс.
В номере 43 журнала «Математические структуры и моделирование» за 2017 год была опубликована статья [1], в которой процесс разработки представлен как последовательность Рг :
Р0 Рг Р2 ...
в терминах и обзначениях статьи [1], где Сг - одна из операций по редактированию текста программы:
добавление нового слова,
• добавление одного символа в существующее слово,
• удаление одного символа из существующего слова,
удаление слова.
При этом скорость процесса разработки определяется как Определение 8. Пусть ^ : N ^ Е - некоторая функция из множества N в Е. Говорят, что процесс разработки Рг обладает скоростью ^ тогда и только тогда, когда
Ит = С' ь (п)
Математические структуры и моделирование. 2018. №1(45)
145
где С> 0.
Это определение имеет ограничение по применению, так как предел
|Р,
Х^Х
lim 1 п
Р (п)
может и не существовать. Для определения скорости разработки важен не сам предел, а то, что последовательность -Щ), где г € (1, 2,...), можно ограничить снизу и сверху некоторыми константами. Если предел существует, то из этого следует ограниченность, но обратное утверждение не всегда выполняется. В силу этого замечания Предложение 7 верно не для всех процессов разработки (здесь и далее все предложения - это предложения из статьи [1]).
Кроме того, если следовать понятию скорости в общепринятом смысле, то скоростью будет не сама Р, а —, так как п в нашей модели играет роль времени.
На основании данных соображений дадим новые определения.
Определение 1. Пусть Р : N ^ К+ - некоторая функция из множества N в К+, где К+ = {х € К,ж ^ 0}. Говорят, что процесс разработки Рг обладает скоростью не лучше, чем Р с точностью до константы тогда и только тогда, когда
Зк € NУп> к \Рп\ ^ Р(п) • п.
Замечание 1. В силу предложения 4 скорость любого процесса разработки не может быть лучше, чем 1.
Определение 2. Пусть Р : N ^ К+ - некоторая функция из множества N в К+. Говорят, что процесс разработки Рг обладает скоростью не хуже, чем Р с точностью до константы тогда и только тогда, когда
Зк € NУп> кР(п) • п ^ \Рп\.
Определение 3. Пусть Р : N ^ К+ - некоторая функция из N в К+. Говорят, что процесс разработки Рг обладает скоростью Р с точностью до константы тогда и только тогда, когда
ЗСг > 0,С2 > 0 Зк € N Уп>к • Р(п) • п ^ \Рп\ ^ С2 • Р(п) • п.
Замечание 2. Пусть Р : N ^ К+ - некоторая функция из N в К+,
Рг - некоторый процесс разработки. Предположим, что lim J, "J = С, где
\Рп\ ?(пУ
С ^ 0. Тогда процесс разработки обладает скоростью F с точностью до константы.
Доказательство. Из существования предела lim J^") = С, где С ^ 0, следует ограниченность последовательности: J^-n, начиная с некоторого k е N. То есть
VCi > 0 Зк е N Vn>k С - Ci ^ ■Рп1 ^ с + Сь
г (п) ■ п
146
Е.А. Тюменцев. О формализации процесса разработки.
Основной результат статьи [1] — достаточное условие линейной скорости разработки теперь имеет следующую формулировку.
Теорема 1 (Достаточное условие константной скорости процесса разработки). В условиях предложения 6 предположим, что
ЗСг > 0 Зкг е N Уп ^ кг \Оп\ < Сг • \Рп|.
Тогда процесс разработки Рг обладает константной скоростью.
Доказательство. В силу предложения 6
п
- < 1Рп и Ип\ < п. с
По предложению 1
\Рп и Бп\ = \Рп\ + \Вп\, следовательно, по предположению теоремы
\Рп\ + \Оп\ < \Рп\ + Сг • \Рп\ = (1 + С\)\Рп\.
Получаем, что
ГП
- < (1 + Сг)\Рп\, с
то есть
_*_< \Р\
С(1 + Сг) < \^п\. С другой стороны, \РП\ < п. Получаем
п
С (1 + Сг)
< \Рп\ < п.
В силу определения 3 скорость Р процесса разработки Рг равна Р(п) = 1, что и требовалось доказать. ■
Замечание 3. Вообще говоря, константная скорость в нашем случае не значит, что скорость процесса разработки не меняется с течением времени. Важно то, что она не может упасть ниже определённой константы по мере роста размера проекта. Этим свойством обладают не все процессы разработки. В [1] был построен пример процесса разработки, скорость которого асимптотически приближалась к 0 по мере роста размера проекта.
Литература
1. Тюменцев Е.А. О формализации процесса разработки программного обеспечения // Математические структуры и моделирование. 2017. № 3(43). С. 96-107.
Математические структуры и моделирование. 2018. №1(45)
147
CLARIFICATION OF THE ARTICLE "ABOUT THE FORMALIZATION OF THE SOFTWARE DEVELOPMENT PROCESS"
E.A. Tyumentcev
CEO, e-mail: [email protected]
LLC Hello World! Technologies, Omsk, Russia
Abstract. In the article "About The Formalization Of The Software Development Process", the definitions of the software development process as a process of editing the text of the program, the speed of the process, and a sufficient condition for linear speed are formulated. In determining the speed of the development process, the existence of a limit is required. However, the required limit may not exist. In this paper, we define the speed of software development process, which does not require the existence of a limit, and reformulates a sufficient condition for linear velocity in accordance with the new definition.
Keywords: formalization, development process, software, productivity.
Дата поступления в редакцию: 05.02.2018