- •Требования к безопасности программного обеспечения (Дополнение к гост 28195-99)
- •1. Тестирование сложности системы (дополнение к показателю с1 в гост 28195-99)
- •2. Принципы объектно-ориентированного подхода (дополнение к показателям с2 и с3 в гост 28195-99)
- •3. Венгерская нотация (дополнение к показателю с3 в гост 28195-99)
- •4. Обработка исключений (дополнение к показателю к4 в гост 28195-99)
- •4. Защита от нсд (дополнение к показателю к5 в гост 28195-99)
3. Венгерская нотация (дополнение к показателю с3 в гост 28195-99)
Требования к оформлению программ должны соответствовать венгерской нотации (Hungarian Notation), формально обозначаемой как добавление префикса к имени идентификатора. Это требование предъявляется всеми ведущими мировыми фирмами. Разработано это требование в 1999 году Чарльзом Симонии (венгр) в корпорации Microsoft. Требования следующие:
- мнемоническое значение: идентификатор должен легко запоминаться;
- смысловое значение: роль идентификатора должна быть ясна из его названия;
- преемственность: похожие объекты должны иметь похожие идентификаторы;
- скорость решения: придумывание, ввод и редактирование идентификатора не должны занимать слишком много времени, идентификатор не должен быть слишком длинным.
Каждая строка в программе должна иметь смысловой комментарий.
Требования к именам базовых типов
f |
Флажок (Булева переменная, логическое значение). Используемое название должно относиться к истинному состоянию. Исключение: константы fTrue иfFalse. |
w |
Машинное слово |
ch |
Символ, обычно в тексте ASCII. |
b |
Байт |
sz |
Указатель на строку терминированную нулем (ASCIZ) |
Требования к стандартным конструкциям типа
pX |
Указатель на X. |
dX |
Различие между двумя образцами типа X. X + dX имеет тип X. |
cX |
Индекс образцов типа X. |
mpXY |
Массив Ys, индексированного по X. |
rgX |
Массив Ys, индексированного по X. |
iX |
Индекс массива rgX. |
grpX |
Группа Xs, сохраненных последовательно. Используется когда X элементы имеют переменный размер и не применима стандартная индексация. Элементы X индексируются способом, отличным от обычного. |
bX |
относительное смещение к типу X. Используется для обращений к полям переменной длины в структурах. Смещение может быть указано в байтах или словах, в зависимости от вида индексации. |
cbX |
Размер X в байтах. |
cwX |
Размер X в словах. |
X и Y замещают произвольные теги.
Требования для названий процедуры
Описание |
Название |
InitSy |
Берет sy как его параметр и инициализирует его. |
OpenFn |
fn - параметр. Процедура "откроет" fn. Никакое значение не будет возвращено. |
FcFromBnRn |
Возвращает fc, для переданной пары Bn,Rn (Названия не передают нам информации о типе данных для Fc, Rn, Bn). |
Требования к именам стандартных спецификаторов
XFirst |
первый элемент в упорядоченном наборе X |
XLast |
последний элемент в упорядоченном наборе X |
XLim |
строгий верхний предел набора значений X. Границей цикла должно быть X < XLim. |
XMax |
строгий верхний предел набора значений X. Если X начинается с 0, тоXMax равен числу различных значений X. |
XT |
временное значение X. |
X замещает любой тег типа, записанный в нижнем регистре.
Требования к базовым префиксам типов данных Win32
g_ |
префикс для глобальной переменной |
|
m_ |
префикс для переменной класса |
|
c |
константа (префикс для типа) |
const |
l |
длинный (префикс для типа) |
far, long |
p |
указатель (префикс для типа) |
* |
ch |
Char |
char |
b |
Байт |
BYTE, unsinged char |
w |
16-битное слово (2 байта) |
WORD, unsigned short |
dw |
32-битное слово (4 байта) |
DWORD, unsigned long |
n,i |
Целое |
int |
flt |
с плавающей точкой |
float |
dbl |
с плавающей точкой |
double |
f |
Логическое |
BOOL |
sz |
ASCIZ строка |
char[] |
psz |
ASCIZ строка |
char * |
pcsz |
константа ASCIZ строка |
const char * |
pv |
произвольный указатель |
void * |
ppv |
указатель на произвольный указатель |
void ** |
h |
Хендл |
HANDLE, void * |
unk |
OLE объект |
IUnknown |
punk |
указатель на OLE объект |
IUnknown * |
disp |
Automation объект |
IDispatch |
Pdisp |
указатель на Automation объект |
IDispatch * |