- •Требования к безопасности программного обеспечения (Дополнение к гост 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 * |
