Другим распространенным способом усложнения исходного кода является стремление к универсальности программного обеспечения. Создается некий механизм в надежде, что он еще пригодится. Нередко это усложняет код. Но гораздо более часто это оправданно.
В данном случае все гораздо более сложно чем с оптимизацией. Например, сторонники экстремального программирования [9] придерживаются правила: пишите универсальный механизм только тогда, когда он понадобится. Но они работают небольшими командами над небольшими проектами. Существуют и другие точки зрения.
Если всегда разрабатывать только частные решения, то придется выявлять похожие задачи и переписывать их, создавая универсальный механизм. Проблема заключается в том, что круг таких задач заранее обычно неизвестен.
Тем не менее, если требуется универсальный механизм, то необходимо оценить его сложность и, исходя из этой оценки, принять решение: написать его сейчас или когда он понадобится. Здесь придется воспользоваться интуицией, опытом и другими знаниями, приходящими со зрелостью это неприятно, но неизбежно.
Универсальность программы
Вывод только один. Необходимо избегать сложности, которая может оказаться избыточной.
Источник: tstu.ru
Большая Энциклопедия Нефти и Газа
Универсальность программы будет определяться тем, что обработка каждой группы начинается по типовому техпроцессу и группы отличаются друг от друга лишь количеством операций, охваченных типовым технологическим маршрутом. Поскольку эта информация постоянна, ее можно хранить в памяти электронно-вычислительной машины. [1]
Для универсальности программы особенно важны такие данные ЭВМ, как быстродействие, объем внутренней ( оперативной) — и внешней памяти, диапазон представления чисел в машине и ряд других факторов. [2]
Платой за универсальность программы является ее усложнение и усложнение самого обращения к подпрограмме. [3]
Эффективность и универсальность программ , основанных на методе независимого определения концентраций, существенно возросла после перехода к варианту с тридиагональной матрицей [145], при котором уравнения материального баланса записываются по контуру, охватывающему только рассчитываемую тарелку. [4]
В целях повышения универсальности программы расчета переходного процесса АСР функциональный модуль ADKW составляется из двух частей: рабочей программы, предназначенной для расчета конкретной АСР и стандартной части, которая остается неизменной для различных рабочих программ. [5]
Эрнсту ( 1967) удалось продемонстрировать универсальность программы GPS , применив ее для решения задач, относящихся к дюжине различных областей. В 1968 году Попл объединил метод GPS, основанный на анализе средств и целей, с представлением с помощью аппарата узкого исчисления предикатов; Файкес в свою очередь создал язык для представления задач на анализ средств и целей при наличии определенных ограничений и еще один язык, ориентированный на решение задач, представленных таким образом. [6]
08. Операционные системы. [Универсальный программист]
Были предприняты значительные попытки, чтобы сохранить универсальность программы . [7]
К ним относится в первую очередь широта, универсальность программы . Это все равно как если бы в наш век специализации, притом достаточно узкой, от врача, например отоларинголога, потребовали бы не только глубокого ( а не студенческого) знания анатомии и физиологии всего человеческого организма, но и взаимодействия различных его функций, и возможных заболеваний, отклонений от нормы. Ведь накапливается все больше доказательств теснейших и интимнейших связей и взаимовлияний решительно всех частей нашего организма, и лишь такому вот сверхклассному врачу под силу осуществить главный принцип, так сказать, идеал медицины — лечить не болезнь, а больного. Между тем этот идеал осуществляется редко. Именно потому, что мало медиков отвечает трудно достижимому идеалу врача — быть универсально эрудированным и уметь активно использовать свою эрудицию. [8]
Основными показателями программных комплексов в порядке их важности являются: универсальность программы ; быстродействие; предельное число элементов моделируемых схем. Все эти показатели взаимосвязаны и противоречивы. Поэтому необходим поиск компромиссного решения, хотя достижение универсальности программ-главная задача машинного проектирования, поскольку программы должны обеспечивать моделирование любых электронных схем заданного класса без доработки математического обеспечения. [9]
Решения задач 5.6 и 5.7 демонстрируют достоинства рассматриваемого подхода, в первую очередь — универсальность получаемых программ . [10]
Тем не менее пользователям компьютеров очень бы хотелось, чтобы сохранялось такое ценное качество, как универсальность программ , чтобы программы, написанные на Коболе для одного типа ЭВМ, так же хорошо работали и для другого типа. [11]
Выбор способа ввода вторичных исходных данных определяется: объемом и составом исходных данных, быстродействием машины вообще и скоростью выбора информации из ячеек памяти, в частности, объемами оперативной и внешней памяти машины, требованиями универсальности программы и другими факторами. [12]
Программа эта позволяет рассчитывать фундаменты как с несимметричными, так и с симметричными плоскими расчетными схемами, с наклонными и только с вертикальными несущими элементами. Универсальность программы обеспечивается тем, что она составлена по самым общим выражениям для расчета несимметричных схем с наклонными несущими элементами. Из этих выражений как частные случаи получаются выражения для расчета фундаментов с симметричными схемами и выражения для расчета фундаментов только с вертикальными несущими элементами. Экономия времени от применения более простых выражений для расчета симметричных фундаментов и фундаментов с вертикальными несущими элементами существенна при ручном счете, а при использовании ЭВМ принципиального значения в данном случае она не имеет. Это, конечно, не исключает возможности составления самостоятельных программ и для этих более простых случаев расчета. [13]
Стремление к использованию ЭВМ для максимальной автоматизации решения и к общности исследуемых систем приводит к разработке универсальных программ ( УП), которые можно было бы применять при решении различных задач проектирования механизмов без каких бы то ни было изменений. Универсальность программ понимается здесь в относительном смысле, так как определенные ограничения в структуру задач приходится все же вводить. Допустимый класс задач, связанных с исследованием механизмов, подробно охарактеризован выше. Создание единой универсальной программы может привести к нехватке оперативной памяти даже для современных вычислительных машин или к резкому уменьшению производительности. Поэтому целесообразно создание набора программ, которые, работая в определенном порядке, сменяли бы одна другую в оперативной памяти. [14]
Программа задачи 5.7 позволяет строить изображение любых грех произвольно расположенных треугольников. Универсальность программ определяется их циклической структурой и использованием массивов. [15]
Источник: www.ngpedia.ru
Правильность, универсальность, надежность ПО.
правильность — функционирование в соответствии с техническим заданием. Это требование является обязательным для всякого программного продукта, но поскольку никакое тестирование не дает гарантии 100%-ной правильности, речь может идти об определенной вероятности наличия ошибок. Вероятность сбоя системы управления космическими полетами должна быть близка к нулю;
Универсальность — также входит в группу обязательных требований. Ничего хорошего нет, если разработанная система выдает результат для некорректных данных или аварийно завершает свою работу на некоторых наборах данных. Но доказать универсальность программы, как и ее правильность, невозможно, поэтому говорят о степени универсальности программы.
Чем выше требования к правильности и универсальности ПО, тем выше и требования к его надежности.
Источниками помех могут являться все участники вычислительного процесса: технические и программные средства, люди.
Технические средства подвержены сбоям (из-за резких скачков напряжения питания или помех при передаче информации по сетям).
ПО может содержать ошибки. Люди могут ошибаться при вводе исходных данных.
надежность — обеспечение полной повторяемости результатов, т. е. обеспечение их правильности при наличии различного рода сбоев. Источниками помех могут являться технические и программные средства, а также люди, работающие с этими средствами. В настоящее время существует достаточное количество способов избежать потерь информации при сбоях. Например, прием «создания контрольных точек», при котором сохраняются промежуточные результаты, что позволяет после сбоя программы продолжить работу с данными, записанными в последней контрольной точке. Возможно также уменьшить количество ошибок, используя дублирование систем или ввод избыточной информации;
30. Проверяемость, точность, защищенность, совместимость, адаптируемостьПО.
Проверяемость – возможность проверки получаемых результатов;
Точность результатов – обеспечение заданной погрешности результатов;
Защищенность – обеспечение конфиденциальности информации;
Программная совместимость – возможность совместного функционирования с другим ПО;
Аппаратная совместимость – возможность совместного функционирования с некоторым оборудованием;
Адаптируемость – возможность быстрой модификации с целью приспособления к изменяющимся условиям функционирования;
31. Предпроектные исследования предметной области
Целью предпроектных исследований является преобразование общих нечетких знаний о предназначении будущего программного обеспечения в сравнительно точные требования к нему. Существуют два варианта неопределенности:
•неизвестны методы решения формулируемой задачи — такого типа не определенности обычно возникают при решении научно-техническихзадач;
•неизвестна структура автоматизируемых информационных процессов — обычно встречается при построении автоматизированных систем управления предприятиями.
В первом случае во время предпроектных исследований определяют возможность решения поставленной задачи и методы, позволяющие получить требуемый результат, что может потребовать соответствующих научных исследований как фундаментального, так и прикладного характера, разработки и исследования новых моделей объектов реального мира.
Во втором случае определяют:
•структуру и взаимосвязи автоматизируемых информационных процессов;
•распределение функций между человеком и системой, а также между аппаратурой и программным обеспечением;
•функции программного обеспечения; внешние условия его функционирования и особенности его интерфейсов, как с пользователями, так и при необходимости — с аппаратной частью;
•требования к программным и информационным компонентам, необходимые аппаратные ресурсы, требования к базам данных и физические характеристики программных компонент.
Результаты предпроектных исследований предметной области используют в процессе разработки технического задания.
32. Техническое задание, основные разделы. Стандарт ГОСТ 19.201-78.
ТЗ — документ, в котором сформулированы основные цели разработки, требования к программному продукту, сроки и этапы разработки и регламентирован процесс приемно-сдаточных испытаний.
ТЗ должно содержать разделы: введение; основания для разработки; назначение разработки; требования к программе или программному изделию; требования к программной документации; технико-экономические показатели; стадии и этапы разработки; порядок контроля и приемки.
Обозначение: | ГОСТ 19.201-78 |
Название: | Единая система программной документации. Техническое задание. Требования к содержанию и оформлению |
Настоящий стандарт устанавливает порядок построения и оформления технического задания на разработку программы или программного изделия для вычислительных машин, комплексов и систем независимо от их назначения и области применения.
33. Выбор языка и среды программирования.
Выбор языка программирования. В большинстве случаев проблемы выбора ЯП реально не существует. Язык может быть определен:
• — организацией, ведущей разработку;
• — программистом, который по возможности будет использовать знакомый язык;
• — устоявшимся мнением и т.п.
• ЯП можно разделить на группы:
• универсальные языки высокого уровня;
• специализированные языки разработчика программного обеспечения;
• специализированные языки пользователя;
• языки низкого уровня.
Выбор среды программирования. Среда программирования — программный комплекс, который специализированный текстовый редактор, встроенные компилятор, компоновщик, отладчик, справочную систему и другие программы, использование которых упрощает процесс написания и отладки программ.
• Распространены среды визуального программирования (Delphi, C++ Builder, VisualC++, VisualStudio), в которых программист получает возможность визуального подключения к программе некоторых кодов из специальных библиотек компонентов, что стало возможным с развитием ООП.
• Выбор между этими средами должен определяться характером проекта.
34. Выбор или формирование стандартов разработки.
Современная технология проектирования должна обеспечивать соответствие стандарту ISO/IEC 12207: 1995 (поддержка всех процессов ЖЦ ПО).
Реальное применение любой технологии проектирования ПО требует формирования или выбора ряда стандартов (правил, соглашений), которые должны соблюдаться всеми участниками проекта.
• стандарт проектирования;набор необходимых моделей;правила именования объектов и соглашения по терминологии;требования к конфигурации рабочих мест разработчиков;механизм обеспечения совместной работы над проектом.
• стандарт оформления проектной документации;комплектность, состав и структуру документации на каждой стадии;требования к оформлению документации;правила подготовки, рассмотрения, согласования и утверждения документации с указанием предельных сроков на каждой стадии;требования к настройке CASE.
• стандарт интерфейса пользователя.-правила оформления экранов (шрифты и цветовую палитру);правила пользования клавиатурой и мышью;правила оформления текстов помощи;перечень стандартных сообщений;правила обработки реакции пользователя.
35. Структурный подход. Средства описания структурных алгоритмов.
Сущность структурного подхода — декомпозиция программы или программной системы по функциональному принципу.
Все методы декомпозиции рассчитаны на анализ и проектирование структур данных и обрабатывающих их программ.
Первичным считают проектирование обрабатывающих компонентов, проектирование структур данных выполняют параллельно.
Альтернативный подход — первичным считают проектирование данных, а обрабатывающие программы получают, анализируя полученные структуры данных.
В любом случае проектирование ПО начинают с определения его структуры.
Линейная структура — для получения результата необходимо выполнить некоторые операции в определенной последовательности.
Разветвленная структура — конкретная последовательность операций зависит от значений одной или нескольких переменных.
Циклическая структура — для получения результата некоторые действия необходимо выполнить несколько раз.
Для изображения схем алгоритмов таких программ разработан ГОСТ 19.701-90, согласно которому каждой группе действий ставится в соответствие специальный блок
Д ля описания алгоритмов можно использовать псевдокоды – формализованное текстовое описание алгоритма (текстовая нотация)., Flow-формы- представляют собой графическую нотацию описания структурных алгоритмов, которая иллюстрирует вложенность структур. и диаграммы Насси-Шнейдермана- являются развитием Flow-форм. Основное их отличие от Flow-форм заключается в том, что область обозначения условий и вариантов ветвления изображают в виде треугольников.
36. Основные и вспомогательные конструкции структурного программирования.
Базовые управляющие конструкции:
• следование — последовательное выполнение действий
• ветвление — выбор одного из двух вариантов действий
• цикл-пока — повторение действий, пока не будет нарушено условие, выполнение которого проверяется в начале цикла
Еще три конструкции, которые можно составить из базовых:
• выбор — выбор одного варианта из нескольких в зависимости от значения некоторой величины;
• цикл-до — повторение некоторых действий до выполнения заданного условия, проверка которого осуществляется после выполнения действий в цикле;
• цикл с заданным числом повторений (счетный цикл) — повторение некоторых действий указанное количество раз.
Источник: cyberpedia.su