Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата)


НазваниеТехническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата)
страница19/21
ТипТехническое задание
filling-form.ru > бланк доверенности > Техническое задание
1   ...   13   14   15   16   17   18   19   20   21

Приложение 5 Универсальный формат обмена данными


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

Формат файла обмена данными представляет собой набор файлов, состоящих из:

  • Файла описания выгрузки данных в формате XML, схема которого представлена на рисунке.

  • Файла, содержащего данные в CSV-формате.

Файл описания выгрузки данных задает:

  1. Описание выгружаемых данных в следующем составе:

  • Текстовое описание данных;

  • Информация о статистической работе, по которой получены данные;

  • Информация о файле данных и его формате (название файла, контрольная сумма, разделитель в файле и т.п.);

  • Дополнительные параметры, зависящие от обменивающихся систем.

  1. Описание показателей, выгруженных в файл данных.

data

Рисунок – схема формата обмена данными

Приложение 6 Требования к организации и оформлению исходных текстов программ


  1. Общие положения

Требования данного раздела должны применяться ко всем компонентам на языке программирования Java.

    1. Термины и определения

      Термин

      Английское название

      Выражение

      Statement

      Идентификатор

      Identifier

      Импортированный пакет

      Import statement

      Имя пакета

      Package statement

      Классы перечислений

      Enum class

      Объявление

      Declaration

      Пакет

      Package

      Переменная

      Variable

      Пробел

      Horizontal whitespace

      Разрыв строки

      Vertical whitespace

      Строка

      Line

    2. Правила хранения исходных кодов

      1. Имя файла

Имя исходного файла должно состоять из регистрозависимого имени класса верхнего уровня, который содержится в данном файле, и расширения .java.

Имя файлов ресурсов должно быть с расширением, коррелирующем с содержанием файла.

      1. Кодировка

Исходные файлы должны быть в кодировке UTF-8.

      1. Специальные символы

        1. Пробельные символы

Кроме символа окончания линии пробел должен быть единственным символом, который появляется в любом месте в исходном файле. Таким образом:

  1. Все другие символы пробела в строке и символьных литералов экранированы.

  2. Символы табуляции не используются для отступов.

        1. Специальные последовательности

Любой символ (\b , \t , \n , \f , \r , \" , \' и \\ ), требующий экранирования, должен использовать последовательность экранирования вместо соответствующих восьмеричных (например, \012 ) или Unicode (например, \u000a) символов.

        1. Остальные не-ASCII символы

Для остальных не-ASCII символов должны использоваться символы Unicode (например, ∞) или экранированные эквиваленты Unicode (например, \u221e), в зависимости от того, что будет легче читаться в коде.

    1. Структура исходных файлов

      1. Общие соглашения

Исходный файл должен состоять из следующих секций, по порядку:

  1. Лицензии или информации об авторских правах, если они требуются.

  1. Имени пакета.

  2. Импортированных пакетов.

  3. Строго одного класса верхнего уровня.

Все секции разделены строго одной строкой.

      1. Имя пакета

Имя пакета не должно иметь перенос слов. Ограничение строки (см. подраздел 1.5.4) не применяется к имени пакета.

      1. Импорт пакетов

        1. Импорт по маске

Импорт по маске, статический или иной, запрещен.

        1. Переносы в импорте

Перенос слов не должен использоваться для имен импортированных структур. Ограничение длины строки (см. подраздел 1.5.4) также не применяется.

        1. Организация импорта

Импорт пакетов должен организовываться в следующие группы, разделенные одной строкой:

  1. Все статические импортированные пакеты в одной группе.

  1. Сторонние импортированные пакеты, отсортированные по алфавиту.

  2. Импорты пакетов java.

  3. Импорты пакетов javax.

      1. Объявление класса

        1. Объявление класса верхнего уровня

Должно быть строго одно объявление класса верхнего уровня. Каждый класс верхнего уровня находится в отдельном исходном файле.

        1. Порядок членов класса

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

        1. Перегрузка

Если класс имеет несколько методов с одинаковым именем или несколько конструкторов, то они должны идти последовательно, без каких-либо промежуточных элементов.

    1. Именование

      1. Общие правила для всех идентификаторов

Идентификаторы должны использовать только ASCII-символы и цифры, кроме трех случаев, описанных ниже (см. п. 1.4.2.3, 1.4.2.4, 1.5.8.1). Таким образом, каждое валидное имя идентификатора будет соответствовать регулярному выражению «\w+».

Специальные префиксы или суффиксы такие, как name_, mName, s_name и kName, не должны использоваться.

      1. Правила по типу идентификатора

        1. Имена пакетов

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

        1. Имена классов

Имена классов должны формироваться с использованием стиля UpperCamelCase.

Имена классов, как правило, являются существительными. Например, Character или ImmutableList. Имена интерфейсов, как правило, являются существительными. Например, List или прилагательными (например, Readable).

Тест-классы должны начинаться с имени тестируемого класса и заканчиваться постфиксом Test. Например, HashTest или HashIntegrationTest.

        1. Имена методов

Имена методов должны формироваться с использованием стиля lowerCamelCase.

Имена методов, как правило, являются глаголами или глагольными словосочетаниями. Например, sendMessage или stop.

Разрешается использовать подчеркивания в именах методов тест-классов, чтобы логически разделить компоненты. Один из типичных шаблонов test _. Например testPop_emptyStack. 

        1. Константы

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

Каждая константа – это поле с модификаторами final static, но не все final static поля являются константами. Прежде чем обозначить константу, следует рассмотреть вопрос – действительно ли поле будет константой. Например, если какое-либо из наблюдаемого состояния этого экземпляра может измениться, то экземпляр, скорее всего, - не постоянная.

Имена константы, как правило, являются существительными.

        1. Имена неконстантных полей

Имена неконстантных полей (статических или иных) должны формироваться с использованием стиля lowerCamelCase.

Эти имена, как правило, существительные. Например, computedValues или index.

        1. Имена параметров

Имена параметров должны формироваться с использованием стиля lowerCamelCase.

Имена параметров, состоящие из одного символа, использовать запрещено.

        1. Локальные имена переменных

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

Тем не менее, односимвольные имена использовать запрещено, за исключением временных переменных и переменных цикла.

Даже если локальные переменные помечены модификатором final и являются неизменяемыми, локальные переменные не будут являться константами и не должны быть именованы в стиле констант.

        1. Имена generic типов переменных

Каждая переменная типа должна быть названа в одном из двух стилей:

одна заглавная буква, возможно сопровождаемая одной цифрой (например, E, T, X, T2);

имя, отвечающее правилам именования из п. 1.4.2.2, с добавленной буквой T (примеры: RequestT, FooBarT).

      1. CamelCase

Для приведения к стилю CamelCase следует:

  1. Преобразовать фразу в обычный ASCII и удалить все апострофы. Например, «Müller's algorithm» станет «Muellers algorithm».

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

  2. Теперь перевести всё в нижний регистр (в том числе и сокращения), а потом перевести в верхний регистр только первый символ:

    1. каждого слова, чтобы получить стиль UpperCamelCase;

    2. каждого слова, за исключением первого, чтобы получить стиль lowerCamelСase.

  3. Объединить все слова в один идентификатор.

Примечание - Некоторые слова в английском языке могут содержать или не содержать дефис, например, «nonempty» и «non-empty». Таким образом, название методов checkNonempty и checkNonEmpty будет корректно в обоих случаях.

    1. Форматирование

      1. Скобки

        1. Использование скобок

Скобки должны использоваться всегда, даже если их можно не использовать.

Скобки должны использоваться всегда с конструкциями if, else, for, do и while, даже когда тело пустое или содержит только один оператор.

        1. Непустые блоки: К & R стиль

Скобки должны подчиняться стилю Kernighan и Ritchie («Египетские скобки») для непустых блоков и блочных конструкций:

  1. Нет разрыва строки до открывающей фигурной скобки.

  1. Разрыв строки после открывающей фигурной скобки.

  2. Разрыв строки до закрывающей скобки.

  3. Разрыв строки после закрывающей скобки, если эта скобка завершает конструкцию блока или тело метода, конструктора или именованного класса. Например, нет разрыва строки после скобки, если она сопровождается конструкцией else или запятой.

Несколько исключений для перечислений приведены в п. 1.5.8.1.

        1. Пустые блоки

Пустой блок разрешается закрыть сразу же после его открытия, без символов или разрыва строки «{}», если этот блок не является частью многоблочной конструкции (той, которая непосредственно содержит несколько блоков: if/else-if/else или try/catch/finally).

      1. Отступ в блоках

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

      1. Одно выражение в линии

За каждым выражением должен следовать разрыв строки.

      1. Размер строки

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

Исключения:

  1. Строки, которые разбить невозможно (например, URL в Javadoc или метод JSNI).

  1. Имя пакета и имена импортируемых пакетов.

  2. Строки в комментариях, которые могут быть скопированы в командную строку.

      1. Разрыв строки

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

Совет - Извлечение метода или локальной переменной может решить проблему без необходимости разрывать строку.

        1. Места разрыва строки

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

  1. Когда строка разбивается по оператору, отличному от оператора присваивания, разбитие происходит до символа оператора.

  1. Когда строка разбивается по оператору присваивания, то разрыв обычно идет после символа, но обратное тоже допустимо.

  2. Метод или конструктор остается связанным с открытой скобкой «(», что следует за ним.

  3. Запятая «,» остается с выражением, которое предшествовало запятой.

        1. Отступ при разрыве

Когда происходит разрыв строки, то следующая строка должна иметь отступ минимум 4 пробела от оригинальной строки.

Если происходит разрыв на несколько строк, то длина отступа может превышать 4 пробела.

      1. Пробелы

        1. Пустая строка

Пустая строка должна ставиться:

  1. Между идущими подряд членами (или инициализаторами) класса: полями, конструкторами, методами, вложенными классами, статическими инициализаторами, инициализаторами экземпляра.

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

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

  2. Перед первым элементом или после последнего члена класса.

  3. В соответствии с требованиями других разделов этого документа.

Разрешается использовать несколько пустых строк.

        1. Пробелы

Кроме мест, требуемых языком, стилей оформления, комментариев и Javadoс, пробел должен появляться только в следующих местах:

  1. Отделяя любое зарезервированное слово, например, if, for или catch, от открывающейся скобки «(», что следует за ним в этой строке.

  1. Отделяя любое зарезервированное слово, например, else и catch, от закрывающейся фигурной скобки «}», который предшествует пробелу на этой строке.

  2. Перед любой открытой фигурной скобкой «{», кроме двух исключений:

    1. @({a, b}) (пробел не используется);

    2. String[][] x = {{"foo"}}; (пробел не используется).

  3. С обеих сторон любого бинарного или тернарного оператора. Это также относится к следующим символам:

    1. амперсанд «&» в объединении типов: ;

    2. знак «|» в блоке, который ловит несколько типов исключения: catch (FooException | BarException e);

    3. знак двоеточие «:» в расширении оператора цикла for («foreach»).

  4. После символов запятая «,», точка с запятой «;», двоеточие «:» или закрывающей скобки «)» после приведения типов.

  5. С обеих сторон двойного слэша «//», с которого начинается комментарий в конце строки.

  6. Между типом и объявлением переменной: 

List list;

  1. Внутри скобок инициализации массива:

new int[] {5, 6} и new int[] { 5, 6 } – Оба варианта верны

      1. Группировка скобок

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

      1. Конкретные конструкции

        1. Классы перечисления

После каждой запятой, которая идет за константой перечисления, разрешен перенос строки.

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

private enum Suit { CLUBS, HEARTS, SPADES, DIAMONDS }

Так как классы перечисления являются классами, то для них должны соблюдаться все правила форматирования классов.

В именах констант перечисления разрешается использовать кириллицу.

Имя класса должно отвечать правилам именования классов.

private enum DocumentStatus { СОГЛАСОВАН, НОВЫЙ, УТВЕРЖДЕН }

        1. Объявление переменных

          1. Одна переменная в объявлении

Каждое объявление переменных должно объявлять только одну переменную.

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

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

Локальные переменные разрешается инициализировать сразу или после объявления.

        1. Массивы

          1. Инициализация

Разрешено объявлять инициализацию массива как конструкцию блока. С-стиль объявления массива

Запрещено использовать стиль языка С для объявления массива.

        1. Оператор Switch

          1. Отступы

Как и в любой другой конструкции содержимое блока Switch должно иметь отступ в четыре пробела.

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

          1. Выполнение блоков

Каждый блок должен завершаться принудительно оператором break, continue, return или выбрасывать исключение, или должен быть помечен обязательным комментарием, что выполнение должно продолжиться в следующем блоке.

          1. Условие по умолчанию

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

        1. Аннотации

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

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

@Override public int hashCode() { ... }

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

        1. Комментарии

          1. Блочные комментарии

Блочные комментарии должны быть на том же уровне отступов, что и окружающий код. Для одиночных комментариев применяется стиль «/* */» или «//…». Для многострочного комментария применяется стиль «/* …. */», где следующая линия в комментарии стартует с символа звездочка «*».

/ *

* Это // И так / * Или даже разрешено

* разрешено. // разрешено. * сделать так. * /

* /

        1. Модификаторы

Модификаторы классов и членов должны располагаться в порядке, рекомендованном Java Language Specification:

public protected private abstract static final transient volatile synchronized native strictfp

        1. Числовые символы

Целые числа типа long должны использовать суффикс L.

      1. Общие практики

        1. Аннотация override

Метод должен быть аннотирован аннотацией @Override, если он перегружает метод родительского класса или если он реализует метод интерфейса.

Исключение -  @Override может быть опущен, если родительский метод помечен аннотацией @Deprecated.

        1. Проверяемые исключения

Проверяемые (checked) исключения не должны игнорироваться.

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

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

Исключение - В тестах проверяемые исключения разрешено игнорировать без комментария, если исключение называется expected.

        1. Статические члены

Статические члены должны вызываться у класса, а не у экземпляра.

        1. Финализаторы

Использование метода finalize запрещено, кроме двух исключений:

  1. Разрешается использовать финализатор, если необходимо оставить последнюю возможность освободить ресурс и запротоколировать то, что разработчик забыл освободить ресурс.

  1. При работе из java c нативным кодом, чтобы вызвать цепочку освобождения ресурсов.

При необходимости закрывать ресурс следует пользоваться интерфейсами Closable или AutoClosable, либо предоставлять отдельный метод, который будет вызван в finally блоке.

      1. Javadoc

        1. Форматирование

          1. Общий вид

Основное форматирование Javadoc-комментария должно соответствовать примеру:

/**

* Javadoc

* Доп. строка

*/

public int method(String p1){...}

Разрешается использовать однострочный комментарий:

/ ** Строка Javadoc. * /

        1. Параграфы

Между параграфами должна быть одна пустая строка, начинающаяся с *. Каждый параграф, кроме первого, должен иметь тэг
перед первым словом без пробелов.

        1. Дескрипторы

Любой из этих четырех дескрипторов @param, @return, @throws, @deprecated должен сопровождаться описанием.

        1. Описание

Javadoc-комментарий для класса или члена класса должен начинаться с краткого описания.

        1. Использование Javadoc

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

Если комментарий описывает цель или поведение класса, метода или поля, то он должен быть Javadoc-комментарием.

          1. Общие принципы ведения Javadoc

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

Использование Javadoc-комментариев при написании кода является обязательным. Данными комментариями должны быть описаны следующие элементы кода:

  1. Классы.

  1. Публичные методы классов.

  2. Публичные атрибуты классов, константы.

Javadoc-комментарий к классу должен включать в себя следующие элементы:

  1. Описание класса.

  1. Также могут быть указаны дополнительные ссылки на другие классы с использованием тегов @see, @link.

Javadoc-комментарий к методу класса должен включать в себя следующие элементы:

  1. Описание метода.

  1. Список параметров метода (с использованием тега @param) с описанием.

  2. Описание возвращаемого методом значения (с использованием тега @return).

  3. Перечень возможных исключений (с использованием тега @throws).

  4. Указание на то, что метод устарел и не рекомендуется к применению (с использованием тега @deprecated), в описании должно быть указано, какой метод рекомендуется использовать взамен устаревшего.

Javadoc-комментарий к атрибуту класса (константе) должен включать в себя описание атрибута.

          1. Исключения

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

Javadoc разрешается пропускать для метода, который переопределяет метод супертипа.
1   ...   13   14   15   16   17   18   19   20   21

Похожие:

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconТехническое задание
Настоящее Техническое задание (далее тз) определяет назначение и общие требования к оказанию услуг по системному сопровождению Подсистемы...

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconТехническое задание на выполнение работ по миграции баз данных системы...
...

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconТехническое задание общие сведения
Оказание услуг по миграции территориально распределённого специализированного программного обеспечения автоматизированной информационной...

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconРуководство пользователя 17404049. 5061808. 387-01 34 01
Единая система сбора и обработки статистической информации ивс росстата в части электронного сбора данных

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconУтверждаю Утверждаю Начальник Управления информационных ресурсов и технологий
Единая система сбора и обработки статистической информации ивс росстата в части электронного сбора данных

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconКонцепция развития ивс росстата на 2011-2017 годы Москва, 2010
Автоматизация и совершенствование основных процессов сбора, обработки и распространения статистической информации 20

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconТехническое задание на оказание услуг по предмету закупки
«проведение в ОАО «ак «транснефть» и в организациях системы «Транснефть» аудитов системы экологического менеджмента и сИстемы менеджмента...

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconТехническое задание на создание информационной системы
Разработка и информационно-техническое сопровождение единого информационно-аналитического портала государственной поддержки инновационного...

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconТехническое задание на создание автоматизированной системы «Корпоративное хранилище данных»
Гост 34. 602-89 Техническое задание на создание автоматизированной системы (пример)

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconНазначение программы 5 Основные термины персональных данных 5 Основные...
Краевая информационно-аналитическая система управления образованием (далее – киасуо) предназначена для сбора, хранения и обработки...

Вы можете разместить ссылку на наш сайт:


Все бланки и формы на filling-form.ru




При копировании материала укажите ссылку © 2019
контакты
filling-form.ru

Поиск