Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Materialy_Arhitektura.doc
Скачиваний:
22
Добавлен:
18.09.2019
Размер:
1.84 Mб
Скачать
  1. Що визначає ефективність технічних засобів.

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

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

  1. Що визначає ефективність програмних засобів

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

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

В настоящее время критериями качества ПС принято считать:

  • функциональность,

  • надежность,

  • легкость применения,

  • эффективность,

  • сопровождаемость,

  • мобильность.

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

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

Эффективность - это отношение уровня услуг, предоставляемых ПС пользователю при заданных условиях, к объему используемых ресурсов.

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

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

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

  1. Етапи підготовки програми.

137. Модульна структура побудови програмного забезпечення та її характеристики

138. Етапи підготовки програм та комплексів программ.

Этапы создания программы

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

  • Разработка интерфейса (интерфейс - способ общения) - создание экранной формы (окна программы).

  • Составление алгоритма.

  • Программирование - создание программного кода на языке программирования.

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

  • Тестирование программы - проверка правильности ее работы.

  • Создание документации, помощи.

ИЛИ:

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

  • Спецификация (определение, формулирование требований к программе).

  • Разработка алгоритма.

  • Кодирование (запись алгоритма на языке программирования).

  • Отладка.

  • Тестирование.

  • Создание справочной системы.

  • Создание установочного диска (CD-ROM).

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

Что в теории понимается под модулем?

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

Модуль – это программа, обладающая тремя основными атрибутами:

1. он выполняет одну или несколько функций;

2. модуль реализует некоторую логику (алгоритм).

3. используется в одном или нескольких контекстах.

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

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

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

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

б) ослабление взаимосвязи между модулями (иначе этот принцип называется ослаблением сцепления модулей).

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

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

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

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

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

• большой объем текста программы затрудняет ее понимание;

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

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

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

139. Класифікація мов програмування по створенню виконуваного модуля

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

Процедурные

Функциональные

Логические

Объектно-ориентированные

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

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

  • Двоичный язык - в настоящее время программистами не применяется

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

  • Язык Ассемблера - предназначен для представления в удобочитаемой символической форме программ, написанных на машинном языке.

  • Язык Макроассемблера - расширение языка Ассемблера. Позволяет определять и использовать новые, более мощные команды.

  • Язык программирования C- разработан в начале 70-х. Сочетает достоинства современных высокоуровневых языков (в части структур данных и управляющих структур) и возможность доступа к аппаратным средствам машины на уровне языка Ассемблера. Однако синтаксис языка таков, что затрудняет программирование и понимание составленных программ.

  • Язык Basic (Beginner’s All-purpose Symbolic Instruction Code-многоцелевой язык символических инструкций для начинающих). Разработан в 1964 г. для использования новичками. Первоначально работа велась только в режиме интерактивной (диалоговой) интерпретации. В смысле строгости и стройности является антиподом языка Pascal. Несмотря на это, Basic очень популярен, в особенности на ПК. Существует множество его диалектов, несовместимых между собой. Современные диалекты Basic’а весьма развиты и мало чем напоминают своего предка.

  • Язык Fortran (Formula Translator) разработан в 1956 г. Считается “рабочей лошадью” научных работников за счет своей “приспособленности” к ведению сложных вычислений и широко используется до настоящего времени, несмотря на свою ограниченность и ”корявость”.

  • Язык Pascal разработан в 1970 г. Норбертом Винером, назван в честь французского математика Блеза Паскаля. В Паскале полностью реализована концепция структурного программирования не только путем упорядочения связей между фрагментами программы, но и за счет структуризации данных. Один из наиболее популярных языков программирования.

  • Язык Modula-2 создан в 1979 г. также Норбертом Винером. По существу - развитие Паскаля. Его особенности состоят в высокой модульности программ и наличии средств описания параллельных процессов.

  • Язык Ada разработан в 1979 г. по заказу Министерства обороны США для использования во встроенных системах с управляющими ЭВМ, что требует режима поддержки режима реального времени. Назван в честь Августы Ады Лавлейс (дочери Байрона), которая была ассистентом Чарльза Бэббиджа и по праву считается первым в мире программистом. Рассматривается как универсальный язык программирования. Данный язык вводит строгую дисциплину программирования, что препятствует написанию “плохих программ”. Несмотря на достоинства, программистов отталкивает его громоздкость

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

Объектно-ориентированное программирование. Корни объектно - ориентирования уходят в одну из ветвей логики, в которой первичной является не отношение, а объект. Прототипом объектно-ориентированного программирования явился язык SIMULA-67. Но оформилось оно в самостоятельный стиль программ ирония с появлением языка (SMALLTALK-1972 г.), первоначально предназначенного для реализаций функций машинной графики. Этот стиль программирования характеризуется богатыми графическими возможностями и средой программирования, развитой модульной структурой программ. Именно модульность упрощает разработку сложных программных продуктов. Как пример объектно-ориентированного языка можно назвать Visual Basic и Delfi.

  • Ассемблерные языки — являются символьным представлением машинных языков конкретного компьютера.

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

  • Императивные языки — это языки, оперирующие командами, изменяющими значение элементов данных, располагают операциями присваивания и циклами. К ним относятся все современные языки программирования.

  • Декларативные языки — языки, оперирующие инструкциями данным и отношениями между ними. Алгоритм скрывается семантикой языка. Это аппликативные языки, языки логики и объектно-ориентированные языки. Примеры декларативных свойств - сложные множества и инструкции поиска по шаблону.

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

  • Аппликативные языки — функции применяются к значениям без побочного эффекта. Это Функциональные языки во всем своем многообразии.

  • Функциональные языки — оперируют функциями высокого порядка. В них манипуляции совершаются напрямую функциями, а не данными. К категории функциональных языков относятся Lisp, FP, APL, Nial, Krc.

  • Объектно-ориентированные языки — языки, в которых данные и функции, имеющие доступ к ним рассматриваютс как один модуль. Пример: Object Pascal, С++, Java, Objective Caml.

  • Языки запросов — обеспечивают интерфейс к базам данных.

  • Языки четвертого поколения (4GL) — высокоуровневые языки, могут использовать естественный английский язык или визуальные конструкции. Алгоритмы или структуры данных обычно выбираются компилятором.

  • Языки логики — языки, оперирующие предикатами и их отношениями p(x, Y). Программы состоят из набора заключений Хорна, которые могут быть:

фактами - p(X,Y) есть истина;

правилами - p истинно, если q1, q2 и qn истинны;

запросами - верны ли q1, g2 и gn? Где gi - цель.

кратко перечислим подходы к программированию:

  • ранние неструктурные подходы;

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

  • функциональный подход;

  • логический подход;

  • объектно-ориентированный подход;

  • смешанный подход (некоторые подходы можно комбинировать);

  • компонентно-ориентированный (программный проект рассматривается как множество компонент, такой подход принят, в частности, в .NET);

  • чисто объектный подход (идеальный с математической точки зрения вариант, который пока не реализован практически).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]