Технология программирования основные этапы развития концепция программного изделия реферат

Обновлено: 02.07.2024

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

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 26.09.2009
Размер файла 76,3 K

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

Министерство образования Республики Беларусь

Кафедра ВМ и П Математический факультет

Выполнила: студентка группы М-52

Принял: Орлов В.В.

  • Структурные методы программирования

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

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

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

- простая стандартная структура управления;

- единые требования к документированию программы;

- соглашения о стиле кодирования.

Рассмотрим эти характеристики подробнее.

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

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

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

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

- общий обзор программы;

- организация программы;

-операторы программы.

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

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

1. Краткое описание общей функции программы, определяющее ее основные компоненты.

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

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

4. Ссылки на предшествующую документацию, проектные документы и материалы.

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

Элементы блока комментариев для каждого модуля содержат:

- назначение модуля (в одном- двух предложениях);

- алгоритмические особенности, ограничения;

- описание интерфейсов модуля (передаваемые параметры);

-реакция на ошибки и процедуры восстановления при ошибках;

- информация о влиянии изменений в модули на другие части программы.

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

- содержательных имен процедур и переменных;

- типовых управляющих конструкций и процедур;

- последовательного, строгого стиля кодирования.

Стандартизация стиля кодирования предполагает выполнение следующих правил:

1. На каждой строке должен быть записан один оператор. Если для записи требуется более одной строки, то на следующих строках делаются отступы.

2. В структуре выбора для каждой ветви должны быть сделаны отступы, чтобы показать содержание каждой ветви.

3. Должны использоваться отступы для выделения операторов, образующих тело цикла, составных и вложенных операторов.

4. В структуре выбора не допускается более трех уровней вложенности, следует избегать большой вложенности циклов.

5. Комментарии пролога программы должны отделяться от операторов пустой строкой.

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

Цели структурного программирования

-создание высококачественных программ с предсказуемым поведением;

- создание программ, которые просто модифицировать;

- упрощение структуры программы и процесса их разработки;

- достижение большей предсказуемости в процессе разработки программ и улучшение управления этим процессом;

- сокращение сроков разработки и снижение стоимости разработки программных систем.

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

1. Улучшить удобочитаемость программ, для этого:

- сделать максимально правильным соответствие между текстом исходной программы и процессом ее выполнения;

- уменьшить сложность программы за счет упрощения путей управления в программе;

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

2. Повысить эффективность программ, для этого:

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

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

3. Повысить надежность программ, для этого:

- конструировать программы так, чтобы отпадала или уменьшалась необходимость отладки;

- конструировать программы таким образом, чтобы они поддавались полному тестированию;

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

- ввести более высокий уровень точности в программировании.

4. Создать дисциплину программирования, для этого:

-систематизировать процесс программирования,

- повысить целостность программной системы,

- заставить программиста думать.

5. Уменьшить стоимость программирования, для этого:

- повысить производительность труда программиста;

- упростить программисту управление большими объемами кодов программы.

Программирование с использованием пошаговой детализации

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

Особенности процесса пошаговой детализации следующие:

1. Процесс выполняется в виде последовательности отдельных шагов.

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

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

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

5. На каждом шаге решение о детализации принимается после рассмотрения альтернативных вариантов.

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

- множество структур данных:

- множество инструкций;

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

Дейкстра рассматривает каждый уровень как машину, обладающую набором выполняемых инструкций и обрабатывающую данные определенной структуры. Вначале рассматривается наиболее абстрактная (виртуальная) машина, которая оперирует, например, с данными на уровне файлов, выполняя операции типа “обновить” или “напечатать” (файл). Затем множество инструкций и множество данных детализируется и расширяется и приближается к реальной ЭВМ

Нисходящее и восходящее программирование

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

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

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

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

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

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

Пример разработки

Гипотеза Гольдбаха (1742 г., Гольдбах - академик С.-Петербургской академии наук): любое четное число больше двух представимо в виде суммы двух простых чисел.

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

Содержание работы
Содержимое работы - 1 файл

Куросовая работа.doc

Государственное Образовательное Учреждение

Среднего Профессионального Образования

"Уральский политехнический колледж"

Курсовая работа

Тема: Технология программирования и основные этапы ее развития

По дисциплине: Технологии разработки программных продуктов

Выполнил студент: 3 курса

Устюгов Артем Владимирович

__________Юдина Ирина Игоревна

2. Структурный подход к программированию (60-70-е годы ХХ в) 7

3. Объектный подход к программированию (с середины 80-х до конца 90-х годов XX в.) 9

4. Компонентный подход и CASE-технологии (с середины 90-х годов XX в. до нашего времени) 11

Техническое задание 16

Практическая часть 17

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

ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ И ОСНОВНЫЕ ЭТАПЫ ЕЕ РАЗВИТИЯ

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

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

• перечисление условий, при которых выполняется та или иная операция;

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

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

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

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

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

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

Это, в свою очередь, позволило увеличить сложность программ.

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

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

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

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

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

2. СТРУКТУРНЫЙ ПОДХОД К

ПРОГРАММИРОВАНИЮ (60-70-Е ГОДЫ ХХ В)

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

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

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

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

Традиционными средствами разработки программ являются алгоритмические (процедурные) языки программирования. Для создания программы на выбранном языке программирования нужно иметь следующие компоненты:

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

Транслятор – это основа систем программирования. Трансляторы языков программирования, т. е. программы, обеспечивающие перевод исходного текста программы на машинный язык (объектный код ), бывают двух типов: интерпретаторы и компиляторы.

Компилятор – это транслятор, который исходный текст программы переводит в машинный код . Если в тексте программы нет синтаксических ошибок, то машинный код будет создан. Но это, как правило, не работоспособный код, т.к. в этой программе не хватает подпрограмм стандартных функций, поэтому компилятор выдает промежуточный код, который называется объектным кодом и имеет расширение . obj .

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

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

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

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

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

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

Наиболее популярные языки программирования Соответствующие им визуальные среды быстрого проектирования программ для Windows
Бейсик ( Basic ) – для освоения требует начальной подготовки (общеобразовательная школа) Microsoft Visual Basic
Паскаль ( Pascal ) – требует специальной подготовки Borland Delphi
Си++ (С++)- требует серьезной подготовки Microsoft Visual С++
Ява ( Java ) требует серьезной подготовки Java : Borland JBuilder

2. Структурное программирование

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

С этой целью в программирование введено понятие подпрограммы – набора операторов, выполняющих нужное действие и не зависящих от других частей исходного кода. Программа разбивается на множество подпрограмм, каждая из которых выполняет одно из действий исходного кода. Комбинируя эти блоки, удается сформировать итоговый алгоритм уже не из операторов, а из законченных блоков. Обращаться к блокам надо по названиям, а название несет смысловую нагрузку. Например, CallSumma, означает обращение к подпрограмме с именем Summa, Call - вызов. При структурном подходе к составлению алгоритмов и программ используются три основные типа алгоритмов: условные, циклические алгоритмы и подпрограммы.

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

Если a>bто

Вывод “Первое число больше”

Вывод “Второе число больше”

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


Например, рассмотрим 2 фрагмент программ:

Анализируя эти фрагменты, можно сказать, что они подготовлены не по правилам структурного программирования, т. к. в первом фрагменте программы отсутствует ступенчатая запись , а во втором есть переход к метке :

Нисходящее программирование

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

3. Чтение структурированных программ

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

Обращение из главной программы к процедуре осуществляется по имени подпрограммы-процедуры с перечнем в скобках параметров, которые ей передаются, например, CallSumma(x, y ) – означает обратиться к процедуре Summa и передать ей параметры x и y, которые называются фактическими парамет рами .

Подпрограмма - функция оформляется таким образом:
Функция Длина( a, b, c, d), где Длина – имя функции, а в скобках указаны формальные параметры. Подпрограмма–функция возвращает только одно значение, которое обязательно присваивается названию функции в теле подпрограммы–функции. Так как функция возвращает значение, то обращение к ней из основной программы может входить в выражение, как операнд.

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

Задача 1 . Составить на структурированном языке алгоритм вычисления периметра треугольника, если известны координаты его вершин (треугольник лежит на плоскости) .

Обозначим координаты вершин xA, yA, xB, yB, xC, yC и ввод их значений осуществим в главной программе. Пусть AB-расстояние между точками A и B, BC-между Bи C, AC-между A и С, а Р – периметр. Периметр вычислим по известной формуле Р=AB+BC+AC, а расстояние же между двумя точками вычислим по формуле: . Вычисление расстояния между двумя точками вынесем в подпрограмму-функцию, назовем ее Длина, а формальные аргументы подпрограммы – функции обозначим через x1, y1, x2, y2 . Тогда для вычисления AB, BC и AB надо три раза обратиться к подпрограмме-функции, передав ей значения фактических аргументов, сначала координаты, например, точек Aи B, затем Bи C, Aи C.

Составим подпрограмму-функцию:

Функция Длина(x1, y1, x2, y2)

Основная программа:

Ввод координат вершин треугольника xA, yA, xB, yB, xC, yC.

Задача 2. Дан массив целых чисел i >, где i=1,2,3,…,M, причем М=15. Программа вычисляет произведение сумм некоторых элементов этого массива. Какое алгебраическое выражение описывает работу программы? В программе введены следующие константы: G=1; W=12; T=8; L=15.

4. Проблемы, возникающие при разработке сложных программных систем.

5. Блочно-иерархический подход к созданию сложных систем.

6. Жизненный цикл и этапы разработки программного обеспечения. Кратко охарактеризуйте основные этапы.

7. Постановка задачи, анализ требований и определение спецификаций.

8. Проектирование, реализация и сопровождение.

9. Модели жизненного цикла программного обеспечения.

11. Технология RAD.

12. Оценка качества процессов создания программного обеспечения.

13. Использование CMM при оценке качества процессов создания программного обеспечения.

14. Использование стандартов ISO 9000 и SPICE при оценке качества процессов создания программного обеспечения.

15. Понятие технологичности программного обеспечения.

16. Модули и их свойства.

17. Сцепление модулей.

18. Связность модулей.

19. Нисходящая и восходящая разработка программного обеспечения.

20. Структурное программирование.

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

22. Стиль оформления программы.

23. Эффективность и технологичность программного обеспечения.

25. Сквозной структурный контроль.

26. Классификация программных продуктов по функциональному признаку.

27. Эксплуатационные требования к программным продуктам.

28. Предпроектные исследования предметной области.

29. Техническое задание. Основные разделы.

30. Архитектура программного обеспечения.

31. Тип пользовательского интерфейса.

32. Выбор языка и среды программирования.

33. Спецификация программного обеспечения при структурном подходе.

34. Язык описания разработки программных продуктов UML.

35. Тестирование программного обеспечения.

Технология программирования. Основные этапы ее развития. (и 2 вопрос тут же)

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

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

· перечисление условий, при которых выполняется та или иная операция;

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

Определяет способ описания проектир системы,те модели,использ на конкретн .этапе разработки.

Создание языков программирования высокого уровня(fortran,algol), существенно упростило программирование вычислений, снизив уровень детализации операций. Это, в свою очередь, позволило увеличить сложность программ.

Были созданы среды, поддерживающие визуальное программирование(,Delphi, Visual C++ ) При использовании визуальной среды появляется возм-ть проектировать некоторую часть, например, интерфейсы будущего продукта, с применением визуальных средств добавления и настройки специальных библиотечных компонентов.

4этап –компонентный подход иCASE-технологии (с сер. 90-х годов XX в. до нашего вр).Компонентный подход - построение ПО из отдельных компонентов – физически отдельно существующих частей программного обеспечения, которые взаимодействуют между собой через стандартизованные двоичные интерфейсы. В отличие от обычных объектов объекты-компоненты можно собрать в динамически вызываемые библиотеки или исполняемые файлы, распространять в двоичном виде (без исходных текстов) и использовать в любом языке программирования, поддерживающем соответствующую технологию.

Отличительной особенностью современного этапа развития технологии программирования, кроме изменения подхода, является создание и внедрение автоматизированных технологий разработки и сопровождения программного обеспечения, .которые были названы CASE-технологиями (Computer-Aided Software/System Engineering - разработка программного обеспечения/программных систем с использованием компьютерной поддержки). На сегодня существуют CASE-технологии, поддерживающие как структурный, так и объектный (в том числе и компонентный) подходы к программированию.

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

Этапы развития технологии программирования. (см. пункт первый)

Технологии COM и CORBA.

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

Модификация СОМ, обеспечивающая передачу вызовов между компьютерами, называется DCOM (Distributed COM – распределенная СОМ).

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

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

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

· внутренний сервер – реализуется динамическими библиотеками, которые подключаются к приложению-клиенту и работают в одном с ними адресном пространстве – наиболее эффективный сервер, кроме того, он не требует специальных средств;

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

· удаленный сервер – создается процессом, который работает на другом компьютере.

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

Читайте также: