Технологичность и эффективность ПО. — КиберПедия 

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 


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

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

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

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



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

0.01 с.