Файл: Сходство и отличия международных и отечественных стандартов языков программирования.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 16.05.2023

Просмотров: 246

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Каждому понятию ставится в соответствие единый стандартизованный термин. Использование терминов, являющихся синонимами стандартизованного термина запрещено [13].

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

  1. ГОСТ 19781-90. Обеспечение систем обработки информации

Специализированные ГОСТы для языков программирования [9]:

ГОСТ 27975-88 Язык программирования АЛГОЛ 68 расширенный

Данный стандарт распространен на программы, разработанные на языке программирования «Алгол 68 расширенный», его варианты.

ГОСТ 23057-78 Язык программирования Базисный Фортран

ГОСТ 27787-88 Язык программирования БЕЙСИК

ГОСТ 22558-89 Язык программирования Кобол

ГОСТ 23056-78 Язык программирования Фортран

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

2.2. Международные стандарты языков программирования

Для многих широко распространённых языков программирования созданы международные стандарты. Специальными организациями проводятся регулярные обновления и публикации спецификаций и формальные определения для соответствующих языков. В таких комитетах разрабатываются и модернизируются языки программирования и проводится решение вопросов, связанных с расширением или поддержкой уже существующих и новых языковых конструкций [8].

Основными стандартами языков программирования являются [3]:

  1. Частные стандарты, определяемые командами разработчиков языка программирования и имеющие на них авторские права.
  2. Согласительные стандарты, проводящие создание специальных организационных документов, которые основаны на соглашении всех заинтересованных участников. Данные стандарты являются способом по обеспечению единообразия различных языковых форм.
  3. Стандарты ANSI разработаны объединением американских промышленных и деловых групп, разрабатывающих торговые и коммуникационные стандарты.
  4. Стандарты IEEE разработаны международной некоммерческой ассоциацией специалистов в области техники, являющейся мировым лидером в области разработки стандартов в области радиоэлектроники и электротехники.

Одним из наиболее распространенных международных стандартов языков программирования является ANSI C.

Данный стандарт не относится непосредственно к UNIX. Но в силу того, что язык программирования C является базовым как для данного семейства, так и для других операционных систем, проведем анализ данного стандарта. Данный стандарт имеет название K&R.

Однако промышленный стандарт языка программирования С был выпущен в 1989 году ANSI и имел наименование X3. 159 – 1989.

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

Основными версиями стандартов языка программирования Си являются: С89, С90, С99, С11, С++17.

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

Приведем краткое описание актуального стандарта программирования С++17.

  • Реализованы новые методы вставки для операторов std::map и std::unordered_map;
  • Реализована система унифицированного доступа к размеру контейнеров std::size();
  • Реализован набор библиотек файловой системы, основанный на boost::filesystem;
  • Разработаны параллельные версии алгоритмов типа STL;
  • Введен набор некоторых математических функций;
  • Проведено расширение большой части экспериментальной библиотеки TS I.
  • Введены требования к новому синтаксису для распаковки пар, кортежей и прочих типов, проведена реализация команд std::get. Например: auto x = std::make_tuple(4,6,7); auto [a,b,c] = x;
  • Разработаны алгоритмы инициализации переменных в конструкции в if и switch. Например: if(auto a = getA(); a.isValid()) {}
  • Реализован сервис автоматического вывода аргументов шаблона класса; также введена поддержка ручного указания правил вывода.

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


В стандарте введены запреты нескольких редких возможностей, имеющихся в стандартной библиотеке:

  • allocator<void> — вследствие невостребованности;
  • удаление части функций allocator — из-за дублирования allocator_traits;
  • raw_storage_iterator — не производит вызов конструкторов и потому имеет ограничение по сфере использования;
  • get_temporary_buffer — ввиду наличия ошибок реализации алгоритмов;
  • is_literal_type — ввиду неэффективности использования в обобщённом коде, введен термин литерального типа;
  • iterator — ввиду неэффективности использования при написании итераторов;
  • codecvt — из-за ошибок в использовании, замещен специализированными библиотеками;
  • shared_ptr::unique() — вследствие ненадёжности при работе многопоточной среде.

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

Выводы по разделу

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

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


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

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

Рисунок 1 - Перечень стандартов языков программирования

Международный стандарт ISO/IEC/IEEE 16326:2009 «Системы и разработка программного обеспечения. Процессы жизненного цикла. Управление проектом» уточняет и дополняет положения международного стандарта ISO/IEC 12207-99 в части технологии управления проектами. Перечень рекомендаций данного стандарта [19]:

  • определение общих рекомендаций разработки ПО по использованию работ процесса разработки;
  • возможность использования в процессе разработки для каждого из процессов;
  • определение ключевых вопросов, относящихся к проекту в целом;
  • описание инструкций в части определения и описания общепризнанных подмножеств языков программирования. Общее признание предполагает, что описанные знания и опыт использованы во многих проектах имеется единодушное признание их значимости и полезности;
  • ISO 10006 в части рекомендаций по реализации основных концепций, элементов и опыта применения систем качества, влияющих на практику разработки программ [17].

ГОСТ 34.003-90 «Автоматизированные системы. Термины и определения» [16]. В данном стандарте установлены термины и определения в области проектирования автоматизированных систем (АС) и распространены на системы, используемые в различных областях деятельности (связанных с управлением, исследованием, проектированием и т.п., включая их сочетание), содержанием которых является обработка данных [18].

ГОСТ Р ИСО/МЭК 9126-93 «Характеристики качества и руководства по их применению» [2]. В настоящем стандарте определяются характеристики, которые с минимальным дублированием описывают качественные характеристики программного обеспечения. Указанные характеристики служат основой для дальнейшего уточнения и описания качественных характеристик программного обеспечения. Стандарт описывает использование качественных характеристик для оценки разработанного программного обеспечения. В данном стандарте не определяются подхарактеристики (комплексные показатели) и параметры, а также методы измерений, ранжирования и оценивания. Указанный стандарт определяет качественные характеристики по стандарту ИСО 8402. Определения характеристик и соответствующая модель процесса оценки качества, приведенные в настоящем стандарте, применимы тогда, когда определены требования для программной продукции и оценивается её качество в процессе жизненного цикла. Эти характеристики могут применяться к любому виду программного обеспечения, включая программы ЭВМ и данные, входящие в программно-технические средства (встроенные программы). Настоящий стандарт предназначен для характеристик, связанных с приобретением, разработкой, эксплуатацией, поддержкой, сопровождением или проверкой программного обеспечения.


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

1. Наличие функциональных возможностей

2. Характеристики надежности.

3. Удобство пользовательского интерфейса

4. Параметры эффективности (Efficiences).

5. Возможности сопровождения.

6. Наличие сервисов мобильности.

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

ГОСТ 28195–99 предлагается следующая терминология для показателей качества разработки с помощью языков программирования на уровнях [10]:

  • уровень 1 – качественные факторы;
  • уровень 2 – качественные критерии;
  • уровень 3 - метрики;
  • уровень 4 – описание оценочных элементов или единичных показателей.

Вывод по разделу

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

- российские ГОСТ - стандарты, регламентирующие процесс разработки программ с использованием языков программирования, разработаны на основе стандартов IEEE, ISO;

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

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

Заключение

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

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

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