Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GOS.pdf
Скачиваний:
172
Добавлен:
11.03.2015
Размер:
6.59 Mб
Скачать

Технико-экономические показатели.

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

Стадии и этапы разработки.

В нѐм указывают стадии и этапы разработки выполняемых работ с указанием сроков и исполнителей.

Порядок контроля и приѐмки.

В нѐм указывают порядок проведения испытаний и общие требования по проведению приѐмки.

Приложение: перечень НИР, обоснования, расчѐты, и другие документы, которые следует использовать для разработки.

3Паттерны проектирования. Формат описания.

При создании программных систем перед разработчиками часто встает проблема выбора

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

Паттерн – решение определенной задачи в конкретном контексте. В общем случае описание паттерна всегда содержит следующие элементы:

Название паттерна. Представляет собой уникальное смысловое имя, однозначно определяющее данную задачу или проблему и ее решение.

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

Решение. Здесь указывается, как именно данное решение связано с проблемой, приводится пути ее решения.

Результаты использования паттерна. Обычно приводятся достоинства, недостатки и

компромиссы.

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

Архитектурные паттерны

Паттерны проектирования

Идиомы Архитектурные паттерны, являясь наиболее высокоуровневыми паттернами, описывают

структурную схему программной системы в целом. В данной схеме указываются отдельные функциональные составляющие системы, называемые подсистемами, а также взаимоотношения между ними. Примером архитектурного паттерна является хорошо известная программная парадигма "модель-представление-контроллер" (model-view-controller - MVC).

Под паттернами проектирования объектно-ориентированных систем понимается описание взаимодействия объектов и классов, адаптированных для решения общей задачи проектирования в конкретном контексте (Фасад, Одиночка).

Идиомы, являясь низкоуровневыми паттернами, имеют дело с вопросами реализации какой-либо проблемы с учетом особенностей данного языка программирования. При этом часто одни и те же идиомы для разных языков программирования выглядят по-разному или не имеют смысла вовсе. Например, в C++ для устранения возможных утечек памяти могут использоваться интеллектуальные указатели. Интеллектуальный указатель содержит указатель на участок динамически выделенной памяти, который будет автоматически освобожден при выходе из зоны видимости. В среде Java такой проблемы просто не существует, так как там используется автоматическая сборка мусора. Обычно, для использования идиом нужно глубоко знать особенности применяемого языка программирования.

Описание паттернов.

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

1Название паттерна. Представляет собой уникальное смысловое имя, однозначно определяющее данную задачу или проблему и ее решение.

2Решаемая задача. Здесь дается понимание того, почему решаемая проблема действительно является таковой, четко описывает ее границы.

3Решение. Здесь указывается, как именно данное решение связано с проблемой, приводится пути ее решения.

4Результаты использования паттерна. Обычно приводятся достоинства, недостатки и компромиссы.

Результаты применения паттернов:

Паттерны позволяют суммировать опыт экспертов и сделать его доступным рядовым разработчикам.

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

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

Паттерны упрощают реструктуризацию системы независимо от того, использовались ли

паттерны при ее проектировании.

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

Примеры:

Паттерн ―Одиночка‖

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

Пример на языке Java:

public class Singleton {

private static Singleton instance;

private Singleton (){

}

public static Singleton getInstance(){ if (instance == null){

instance = new Singleton();

}

return instance;

}

}

4Кодирование. Стандарты на кодирование. Кодирование и проектирование. Исходный код как главный проектный документ.

Кодирование — процесс написания программного кода, скриптов, с целью реализации

определѐнного алгоритма на определѐнном языке программирования.

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

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

Проектированию обычно подлежат: архитектура ПО; устройство компонентов ПО; пользовательские интерфейсы.

В российской практике проектирование ведется поэтапно в соответствии со стадиями, регламентированными ГОСТ 2.103-68: техническое задание, техническое предложение, эскизный проект, технический проект, рабочий проект.

Стандарт оформления кода (стандарт кодирования, стиль программирования) (англ. coding standards, coding convention или programming style) — набор правил и соглашений,

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

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

Образцом для стандарта кодирования может стать набор соглашений, принятых в какойлибо распространѐнной печатной работе по языку, широко применяемая библиотека или API. Реже разработчик языка выпускает подробные рекомендации по кодированию на нѐм. Выпущены, например, стандарты кодирования на C# от Microsoft и на Java от Sun. Предложенная разработчиком или принятая в общеизвестных источниках манера кодирования в большей или меньшей степени дополняется и уточняется в корпоративных стандартах.

Состав стандарта кодирования:

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

Обычно, стандарт оформления кода описывает:

способы выбора названий и используемый регистр символов для имѐн переменных и других идентификаторов:

запись типа переменной в еѐ идентификаторе (венгерская нотация)

регистр символов (нижний, верхний, «верблюжий», «верблюжий» с малой буквы), использование знаков подчѐркивания для разделения слов;

стиль отступов при оформлении логических блоков — используются ли символы табуляции, ширина отступа;

способ расстановки скобок, ограничивающих логические блоки;

использование пробелов при оформлении логических и арифметических выражений;

стиль комментариев и использование документирующих комментариев.

Вне стандарта подразумевается:

отсутствие магических чисел;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]