История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

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

Технологичность и эффективность ПО.

2017-11-17 571
Технологичность и эффективность ПО. 0.00 из 5.00 0 оценок
Заказать работу

Вверх
Содержание
Поиск

 

В условиях индустриального подхода к разработке и сопровождению программного обеспечения особый вес приобретают технологические характеристики разрабатываемых программ. Для обеспечения необходимых технологических свойств применяют специальные технологические приёмы и следуют определённым методикам, сформулированным всем предыдущем опытом сознания ПО. К таким приёмам и методикам относят правила декомпозиции, методы проектирования, программирования и контроля качества, которые под общим названием «структурный подход к программированию» были сформулированы ещё в 60-х годах 20го века. В его основу были положены следующие концепции:

· нисходящая разработка;

· модульное программирование;

· структурное программирование;

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

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

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

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

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

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

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

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

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

При разработке может использоваться один из подходов:

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

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

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

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

 

 


Поделиться с друзьями:

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.014 с.