Общая специфика процесса разработки программного обеспечения

Содержание

Слайд 2

От предметной области к ПО

Разработка больших программ – многоступенчатый процесс, в

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

Слайд 3

Предметная область
Архитектура ВС
Инструменты для разработки ПО

Предметная область Архитектура ВС Инструменты для разработки ПО

Слайд 4

Примеры прикладных задач и их моделей

Разработка трансляторов
Ориентация разрабатываемого языка программирования на предметную

Примеры прикладных задач и их моделей Разработка трансляторов Ориентация разрабатываемого языка программирования
область;
Анализ свойств разрабатываемого языка;
Построение семантической модели языка в соответствии с предъявляемыми требованиями;
Выбор схемы (модели) трансляции и исполнения, переходу к более формализованным моделями описания синтаксиса и семантики и т. д.
То есть, не только знание теории построения трансляторов

Слайд 5

Примеры прикладных задач и их моделей

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

Примеры прикладных задач и их моделей Разработка системы управления технологическим процессом Анализ
процесса;
Особенности существующих схем управления производством; Формирование схемы (модели) управления;
Выбор датчиков, системы управления, инструментальных средств;
и т.д.

Слайд 9

Разработка информационных систем
Анализ предметной области; Построение модели предметной области;
Формирование моделей данных,

Разработка информационных систем Анализ предметной области; Построение модели предметной области; Формирование моделей
работ, процессов, потоков;
и так далее.

Примеры прикладных задач и их моделей

Слайд 13

Влияние особенностей архитектур вычислительных систем («железо», ОС, ЯП)
- время выполнения программы
- особенности

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

Слайд 16

Наряду с проблемами увязки моделей предметной области и архитектуры, встают проблемы, определяемые

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

Слайд 17

В рамках технологии программирования проводятся исследования методов разработки, обеспечивающих создание продуктов, соответствующих

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

Слайд 18

Критерии качества программного обеспечения

Корректность (правильность). Обеспечивает правильную обработку на правильных данных.
Устойчивость.

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

Слайд 19

Критерии качества программного обеспечения

Эффективность. Эффективное использование времени, компьютерной памяти, дискового пространства и

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

Слайд 20

Критерии качества программного обеспечения

Поддержка целостности. Защищает себя от неправильного обращения и неправильного

Критерии качества программного обеспечения Поддержка целостности. Защищает себя от неправильного обращения и
употребления.
Легкость использования. Для пользователя и для будущих программистов

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

Слайд 21

Цели и задачи процесса разработки

Разработка ПО - многоэтапный процесс, зависящий от

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

Слайд 22

Цель процесса разработки – создание программы, обеспечивающей решение поставленной задачи некоторым исполнителем.

Цель процесса разработки – создание программы, обеспечивающей решение поставленной задачи некоторым исполнителем.

Решаемая задача описывается совокупностью формальных и эмпирических (неформальных) моделей, определяющих как протекающие процессы, так и используемые при этом данные.

Слайд 23

Модель задачи – совокупность специализированных моделей, описывающих различные аспекты решаемой задачи, отражаемые

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

Слайд 24

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

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

Слайд 25

Создаваемая программа является отображением модели решаемой задачи на модель исполнителя

Создаваемая программа является отображением модели решаемой задачи на модель исполнителя

Слайд 26

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

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

Слайд 29

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

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

Слайд 30

Методические приемы

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

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

Слайд 31

Формализация предметной области

Формализация предметной области заключается в построении ее модели и

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

Слайд 33

Подобный подход широко используется при разработке программ в разных предметных областях, например:
1.

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

Слайд 35

Разработка алгоритмов преобразования одних моделей в другие позволяет автоматизировать процесс и обеспечить

Разработка алгоритмов преобразования одних моделей в другие позволяет автоматизировать процесс и обеспечить
представление исходной задачи в виде формализованных данных или программы на специализированном (проблемно-ориентированном) языке программирования.
Фактически это означает слияние моделей задачи и исполнителя.
Примеры:
- многие языки имитационного моделирования;
языки, для управления оборудованием.
системы генерации лексических и синтаксических анализаторов языков программирования по описанию синтаксиса на соответствующих метаязыках

Слайд 38

Достоинства подхода:
более высокая скорость разработки (к программированию можно приступать во время

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

Слайд 39

Недостатки:
отсутствие гибкости (предметная ориентация моделей не позволяет непосредственно использовать накопленные методы и

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

Слайд 40

Резюме:
Эффективно при решении достаточно простых задач узкого класса. Увеличение размерности резко повышает

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

Слайд 41

Близкий пример: вычислить 100!
1. Алгоритм
2. Язык программирования
3. Программа

Алгоритм 2:
n
n! = П

Близкий пример: вычислить 100! 1. Алгоритм 2. Язык программирования 3. Программа Алгоритм
i
i=1

Алгоритм 1:
n! = если i=1 то 1
иначе n*(n-1)!

(между алгоритмами нет особой разницы)

Слайд 42

Язык программирования: C++
Программа:

#include
using namespace std;
typedef unsigned short us;
typedef unsigned long ul;
//

Язык программирования: C++ Программа: #include using namespace std; typedef unsigned short us;
Получение частного и остатка от деления
// вектора коротких целых на 10
int div_mod_10(us v[], int len, int &mod_rez) {
ul acc;
int i_v = len - 1;
mod_rez = 0;
while(i_v >= 0) {
acc = (mod_rez << 16) + v[i_v];
v[i_v] = acc / 10;
mod_rez = acc % 10;
--i_v;
}
if(v[len-1] == 0) --len;
return len;
}

Слайд 43

// Вывод в десятичном виде содержимого вектора коротких целых чисел
void vector_out(us v[],

// Вывод в десятичном виде содержимого вектора коротких целых чисел void vector_out(us
int len) {
int xmod;
int new_len;
if(len > 0) {
new_len = div_mod_10(v, len, xmod);
vector_out(v, new_len);
cout << xmod;
}
}
// Умножение вектора коротких чисел на целое положительное число.
int mult(us v[], int len, ul y) {
ul acc, per = 0;
for(int i = 0; i < len; i++) {
acc = (ul)v[i] * (ul)y +per;
v[i] = acc;
per = acc >> 16;
}
if(per) v[len++] = per;
return len;
}

Слайд 44

// Функция вычисления факториала
// заданной величины
int fact(us v[], int max_len, ul

// Функция вычисления факториала // заданной величины int fact(us v[], int max_len,
y) {
v[0] = 1;
int len = 1;
for(ul i = 2; i <= y; i++) {
len = mult(v, len, i);
if(len >= max_len) {
cout << "Vector overflow!!!
<< endl;
exit (1);
}
}
return len;
}

Слайд 45

us rezult[200];
int main() {
int len = fact(rezult, 200, 100);
cout <<

us rezult[200]; int main() { int len = fact(rezult, 200, 100); cout
endl << "rezult = ";
vector_out(rezult, len);
cout << endl;
cout << endl;
// Контрольный тест с использованием
// арифметики с плавающей точкой
long double f = 1;
for(int n=2; n<=100; n++)
f *= n;
cout << "f = " << f << endl;
}

Слайд 46

rezult = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
f = 9.33262e+157

rezult = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 f = 9.33262e+157

Слайд 47

Язык программирования: Lisp
Программа 1:

(defun factorial (n)
(if (= n 0)
1
(*

Язык программирования: Lisp Программа 1: (defun factorial (n) (if (= n 0)
n (factorial (- n 1)))))

Программа 2:

(defun fact-iter (result counter)
(if (= counter 0)
result
(fact-iter (* counter result)
(- counter 1))))
(defun factorial (n)
(fact-iter 1 n)
)

Слайд 48

Результат:

> (factorial 100)
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
> (factorial 200)
788657867364790503552363213932185062295135977687173263294742533244359449963403342920304284011984623904177212138919638830257642790242637105061926624952829931113462857270763317237396988943922445621451664240254033291864131227428294853277524242407573903240321257405579568660226031904170324062351700858796178922222789623703897374720000000000000000000000000000000000000000000000000

Результат: > (factorial 100) 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 > (factorial 200) 788657867364790503552363213932185062295135977687173263294742533244359449963403342920304284011984623904177212138919638830257642790242637105061926624952829931113462857270763317237396988943922445621451664240254033291864131227428294853277524242407573903240321257405579568660226031904170324062351700858796178922222789623703897374720000000000000000000000000000000000000000000000000

Слайд 49

Язык программирования: Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
def factorial(n):
if n <

Язык программирования: Python #!/usr/bin/env python # -*- coding: utf-8 -*- def factorial(n):
2:
return 1
f = 1
while n >= 2:
f *= n
n -= 1
return f
print (factorial(100))
print (2**100)
print (factorial(200))
print (2**200)

Слайд 50

$ python ./fact.py
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
1267650600228229401496703205376
788657867364790503552363213932185062295135977687173263294742533244359449963403342920304284011984623904177212138919638830257642790242637105061926624952829931113462857270763317237396988943922445621451664240254033291864131227428294853277524242407573903240321257405579568660226031904170324062351700858796178922222789623703897374720000000000000000000000000000000000000000000000000
1606938044258990275541962092341162602522202993782792835301376

$ python ./fact.py 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 1267650600228229401496703205376 788657867364790503552363213932185062295135977687173263294742533244359449963403342920304284011984623904177212138919638830257642790242637105061926624952829931113462857270763317237396988943922445621451664240254033291864131227428294853277524242407573903240321257405579568660226031904170324062351700858796178922222789623703897374720000000000000000000000000000000000000000000000000 1606938044258990275541962092341162602522202993782792835301376

Слайд 51

The GNU Multiple Precision Arithmetic Library

http://gmplib.org/
GMP is a free library for arbitrary

The GNU Multiple Precision Arithmetic Library http://gmplib.org/ GMP is a free library
precision arithmetic, operating on signed integers, rational numbers, and floating point numbers. There is no practical limit to the precision except the ones implied by the available memory in the machine GMP runs on. GMP has a rich set of functions, and the functions have a regular interface.
The main target applications for GMP are cryptography applications and research, Internet security applications, algebra systems, computational algebra research, etc.
GMP is carefully designed to be as fast as possible, both for small operands and for huge operands. The speed is achieved by using fullwords as the basic arithmetic type, by using fast algorithms, with highly optimised assembly code for the most common inner loops for a lot of CPUs, and by a general emphasis on speed.

Слайд 52

#include
int main(int argc, char* argv[]) {
mpz_t result;
unsigned long int

#include int main(int argc, char* argv[]) { mpz_t result; unsigned long int
x;
if(argc !=2)
x = 100;
else
x = atoi(argv[1]);
mpz_init_set_ui(result, 1UL);
unsigned long int i;
for(i = 2; i <= x; i++) {
mpz_mul_ui(result, result, i);
}
gmp_printf("%Zd\n", result);
return 0;
}

Язык программирования: C

Слайд 53

#include
int main(int argc, char* argv[]) {
mpz_t result;
unsigned long int

#include int main(int argc, char* argv[]) { mpz_t result; unsigned long int
x;
if(argc !=2)
x = 100;
else
x = atoi(argv[1]);
mpz_init(result);
mpz_fac_ui(result, x);
gmp_printf("%Zd\n", result);
return 0;
}

Язык программирования: C

Слайд 54

#include
#include
#include
using namespace std;
int main(int argc, char* argv[]) {
if(argc

#include #include #include using namespace std; int main(int argc, char* argv[]) {
!=2) {
cout << "Argumen is absent!!!" << endl;
return -1;
}
mpz_class result(1UL);
unsigned long int x = atoi(argv[1]);
for(unsigned long int i = 2; i <= x; i++) {
result *= i;
}
cout << result << endl;
return 0;
}

Язык программирования: C++

Слайд 55

Методики разработки ПО

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

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

Слайд 57

Несмотря на обеспечение прямого и обратного проектирования, основное достоинство методик проявляется в

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

Слайд 58

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

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

Слайд 61

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

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

Слайд 62

В настоящее время существуют различные методики.
Они являются составной и неотъемлемой частью

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

Слайд 63

Примеры методик:
- объектно-ориентированный подход, используемый в составе объектно-ориентированной методологии;
- методы структурного анализа

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

Слайд 64

Резюме:
Методики широко используются при разработке больших программных систем, так как повышают эффективность

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

Слайд 65

Технические приемы

Технические приемы обеспечивают создание инструментальных средств, поддерживающих различные аспекты разработки

Технические приемы Технические приемы обеспечивают создание инструментальных средств, поддерживающих различные аспекты разработки
ПО.
Можно выделить:
- средства поддержки методических приемов;
- вспомогательные средства;
- системы программирования.

Слайд 66

Поддержка методических приемов

Инструментальная поддержка методических приемов обеспечивает компьютерное представление и анализ

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

Слайд 67

Повышая эффективность процесса разработки, средства поддержки методических приемов, в то же время,

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

Слайд 68

Примеры
1. Системы поддержки спецификаций. Ранние средства. Во многих из них использовались графические

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

Слайд 69

Примеры
2. CASE-средства (Computer Aided Software Engineering). Инструменты сгладившие, семантический разрыв между рядом

Примеры 2. CASE-средства (Computer Aided Software Engineering). Инструменты сгладившие, семантический разрыв между
моделей предметной области и кодом, обеспечив непосредственное преобразование, как в прямом, так и в обратном направлении.

Слайд 70

CASE-средства поддержки методов структурного анализа и проектирования (SADT – Strucure Analis and

CASE-средства поддержки методов структурного анализа и проектирования (SADT – Strucure Analis and
Design Technique):
BPwin, ERwin, ориентированные на использование диаграмм IDEF (Icam DEFinition) и DFD (Data Flow Diagrams)
Silverrun – полный технологический цикл.
Rational Rose – UML (Unified Modelling Language) – Объектно-ориентированная методология.
И много других…
Вендров А.М. Проектирование программного обеспечения экономических и информационных систем: Учебник. – М.: Финансы и статистика, 2002. – 352 с.

Слайд 71

Вспомогательные средства

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

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

Слайд 72

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

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

Слайд 73

Системы программирования

Системы программирования –
инструментальные средства, поддерживающие разработку программ для заданного виртуального

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

Слайд 74

Использование систем программирования позволяет решать задачу повышения эффективности процесса разработки ПО за

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

Слайд 76

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

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

Слайд 77

2. Автоматическим и поэтапным преобразованием программы, написанной для виртуальной машины, в программу

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

Слайд 79

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

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

Слайд 80

Исполнители могут отличаться и по степени приближения их моделей к моделям решаемых

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

Слайд 81

Представленная модельная специфика конкретизируется при отображении на конкретные процессы разработки ПО…

Представленная модельная специфика конкретизируется при отображении на конкретные процессы разработки ПО…
Имя файла: Общая-специфика-процесса-разработки-программного-обеспечения-.pptx
Количество просмотров: 331
Количество скачиваний: 2