Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Классификация языков программирования)..pdf

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

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

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

Добавлен: 15.06.2023

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

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

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

ПО/технические средства [3]:

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

Технологическая среда [14]:

  • поддерживаемая методология. Набор методов и методик, поддерживаемых средой разработки. Примерами являются структурный или объектно-ориентированный анализ и проектирование;
  • поддерживаемые языки. Все языки, используемые средой разработки. Примерами таких языков являются языки программирования (Кобол, Ада, С), языки баз данных и языки запросов (DDL, SQL), графические языки (Postscript, HPGL), языки спецификации проектных требований и интерфейсы операционных систем (языки управления заданиями);
  • совместимость с другими средствами. Способность к взаимодействию с другими средствами, включая непосредственный обмен данными (примерами таких средств являются текстовые процессоры, базы данных и другие средства). Возможность преобразования репозитория или его части в стандартный формат для обработки другими средствами;
  • соответствие стандартам технологической среды. Такие стандарты касаются языка, базы данных, репозитория, коммуникаций, графического интерфейса пользователя, документации, разработки, управления конфигурацией, безопасности, стандартов обмена информацией и интеграции по данным, по управлению и по пользовательскому интерфейсу.

Функции, ориентированные на фазы жизненного цикла

Моделирование – данные критерии определяют способность выполнения функций, необходимых для спецификации требований к ПО и преобразованию их в проект [5, 6, 7, 14, 26]:

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

Реализация - затрагивает функции, связанные с созданием исполняемых элементов системы (программных кодов) или модификацией существующей системы. Многие из перечисленных ниже критериев зависят от конкретных языков и включают следующие [7, 11, 12, 16, 25]:

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

Тестирование - включает следующие критерии [10, 17, 22]:

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

Общие функции

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

Поддержка всех этих функций осуществляется посредством репозитория.

Документирование [3]:

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

Управление конфигурацией [1, 25]:

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

Управление проектом [3, 24]:

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

Качественные характеристики

Надежность

Факторы, характеризующие показатель надежности [15, 17]:

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

Простота использования

Факторы, повышающие простоту использования [23, 25, 26]:

  • адаптируемость к конкретным требованиям пользователя. Адаптируемость к различным алфавитам, режимам текстового и графического представления (слева-направо, сверху-вниз), различным форматам даты, способам ввода/вывода (экранным формам и форматам), изменениям в методологии (изменениям графических нотаций, правил, свойств и состава предопределенных объектов) и др.;
  • допустимое время реакции на действия пользователя (в зависимости от среды);
  • доступность и качество учебных материалов. Они могут включать компьютерные учебные материалы, учебные пособия, курсы;
  • качество диагностики (понятность и полезность диагностических сообщений для пользователя);
  • качество документации (полнота, понятность, удобочитаемость, полезность и др.);
  • локализация (в соответствии с требованиями данной страны);
  • онлайновые подсказки (полнота и качество);
  • простота освоения. Трудовые и временные затраты на освоение среды;
  • простота работы с инструментарием (как для начинающих, так и для опытных пользователей);
  • простота установки и обновления версий.
  • требования к уровню знаний. Квалификация и опыт, необходимые для эффективного использования среды;
  • удобство пользовательского интерфейса. Удобство расположения и представления часто используемых элементов экрана, способов ввода данных и др.;
  • унифицированность пользовательского интерфейса (по отношению к другим средствам, использующимся в данной организации).

Эффективность

Показатели эффективности [11, 15, 23]:

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

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

Характеристики сопровождаемости [6, 7, 8]:

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

Переносимость

Показатели мобильности [1, 8]:

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

Общие критерии

Различные, значимые факторы, не относящиеся к качественным или функциональным показателям самой среды и/или языка[3, 6, 7, 8]:

  • доступность и качество обучения. Обучение может проводиться на территории поставщика, пользователя или где-либо в другом месте;
  • затраты. Включают стоимость приобретения, установки, начального сопровождения и обучения. Следует учитывать цену для всех необходимых конфигураций (включая единственную копию, несколько копий, локальную лицензию, лицензию для предприятия, сетевую лицензию);
  • лицензионная политика. Доступные возможности лицензирования, право копирования (носителей и документации), любые ограничения и/или штрафные санкции за вторичное использования (подразумевается продажа пользователем продуктов, в состав которых входят некоторые компоненты средств, использовавшиеся при разработке продуктов);
  • оценочный эффект (уровень продуктивности, качества и т.д.). Такая оценка может потребовать экономического анализа;
  • поддержка поставщика. Доступность, реактивность и качество услуг, предоставляемых поставщиком для пользователей среды. Такие услуги могут включать телефонную "горячую линию", местную техническую поддержку, поддержку в самой организации;
  • профиль дистрибьютора. Общие показатели возможностей дистрибьютора. Профиль дистрибьютора может включать величину его организации, стаж в бизнесе, финансовое положение, список любых дополнительных продуктов, деловые связи (в частности, с другими дистрибьюторами данного средства), планируемая стратегия развития;
  • профиль продукта. Общая информация о продукте, включая срок его существования, количество проданных копий, наличие, размер и уровень деятельности пользовательской группы, система отчетов о проблемах, программа развития продукта, совокупность применений, наличие ошибок и др.;
  • сертификация поставщика. Сертификаты, полученные от специализированных организаций в области создания ПО (например, SEI и ISO), удостоверяющие, что квалификация поставщика в области создания и сопровождения ПО удовлетворяет некоторым минимально необходимым или вполне определенным требованиям. Сертификация может быть неформальной, например, на основе анализа качества работы поставщика;
  • экспортные ограничения.