Файл: Методические указания по организации практических занятий и самостоятельной работы по мдк. 02. 01 Технология разработки программного обеспечения.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 586

Скачиваний: 5

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


5 Оценка качества

Проведём расчёт по формуле, которая дана задании 4, для оценивания качества каждого оценочного элемента, рассмотренных ранее для калькулятора Microsoft и разработанного нами калькулятора.

Формула:

Оценки качества по следующим оценочным элементам: надежность программного средства (ПС), сопровождаемость, корректность, гибкость:

Калькулятор Microsoft

Разработанный калькулятор

KНM =




KНР =










KСM =




KСР =










KКM =




KКР =










KГM =




KГР =










KМ=




KР=











Вывод

Сделать вывод какой из калькуляторов является более удачным.

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

В каком ГОСТе приведены метрики качество



Практическая работа №10


Инспекция программного кода на предмет соответствия стандартам кодирования
Цель: научиться выполнять реорганизацию программного кода на основании стандартов кодирования
Форма отчета:

−выполнить задание;

−показать преподавателю;

−ответить на вопросы преподавателя.
Теоретические сведения

Инспекция в целом

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

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



■ Программный код программы - это текст, набор команд, выполненный на особом языке программирования, понятном машине.

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

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

■ Цель использования стандарта — упрощение восприятия программного кода человеком, сокращение нагрузки на память и зрение при чтении программы.

Некоторые из стандартов кодирования приведены ниже:

1 Ограниченное использование глобалов:

Эти правила говорят о том, какие типы данных могут быть объявлены глобальными, а какие нет.

2 Стандартные заголовки для разных модулей:

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

  1. Наименование модуля

  2. Дата создания модуля

  3. Автор модуля

  4. История изменений

  5. Краткое описание модуля о том, что делает модуль

  6. В модуле поддерживаются различные функции, а также их входные и выходные параметры

  7. Глобальные переменные, доступные или измененные модулем


3 Соглашения об именах для локальных переменных, глобальных переменных, констант и функций:

Некоторые из соглашений об именах приведены ниже:

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

  2. Локальные переменные должны быть названы с использованием букв верблюда, начинающихся с маленькой буквы (например, localData ), тогда как имена глобальных переменных должны начинаться с заглавной буквы (например, GlobalData ). Имена констант должны быть сформированы только заглавными буквами (например, CONSDATA ).

  3. Лучше избегать использования цифр в именах переменных.

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

  5. Название функции должно четко и кратко описывать причину ее использования.

4 Отступ:

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

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

  2. Каждый вложенный блок должен иметь правильные отступы и интервалы.

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

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

5 Возвращаемые значения ошибок и соглашения об обработке исключений:

Все функции, которые сталкиваются с ошибкой, должны возвращать 0 или 1 для упрощения отладки.

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

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

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

7 Избегайте использования идентификатора для нескольких целей:


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

8 Код должен быть хорошо документирован:

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

9 Длина функций не должна быть очень большой:

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

10 Старайтесь не использовать оператор GOTO:

Оператор GOTO делает программу неструктурированной, что снижает ее понятность и затрудняет отладку.
Цель инспекции программного кода

Обнаружение и исправление ошибок, которые были пропущены, остались незамеченными при разработке. Результат инспекции как правило – улучшение качество ПО и навыки разработчика.

Сервисы инспекции программного кода

1 Reviewable

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

2 RhodeCode

Ещё один отличный инструмент для инспекции кода и поиска ошибок и проблем в коде.

3 CodeStriker

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

4 Code Brag

5 Phabricator

Оpen source ПО и веб-приложение, включающее проверку кода, хостинг GIT/Hg/SVN, поиск ошибок, аудит исходного кода и т. д.

6 Codifferous

7 Getbarkeep

8 Crucible

9 Code Review Tool

10 Malevich

11 SmartBear

12 Veracode

13 Gerrit

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

14 Review Assistant

15 Review Board

16 Peer Review Plugin

17 Codereview

18 Code Reviewer

19 Code Analysis Tool

20 jArchitect

Задание практической работы

Методика выполнения

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

Требования:

  • добавить комментарии в программный код;

  • проверить правильность именования переменных, констант, методов;

  • проверить правильность объявления переменных и констант.


Было

Класс Main
пакетная игра;

импорт игры. Персонажи. *;

импорт игры. Персонажи. Персонажи; импорт игры. Энергетика. Энергетика; импорт игры. Энергетика. Освещение; импорт игры. Уровни. Блок;

импорт игры. Уровни. Уровень; импортировать game.Levels.Level_data; импорт игры. Weapon.Bullet;

импорт игры. Оружие. Оружие;

import javafx.animation.AnimationTimer; импорт javafx.application.Application; import javafx.scene.Scene;

import javafx.scene.image.Image; import javafx.scene.input.KeyCode; import javafx.scene.layout.Pane; import javafx.stage.Stage;

import java.io.DataInputStream; import java.io.FileInputStream; импорт java.io.IOException; import java.util.ArrayList; import java.util.HashMap;

публичный класс Main расширяет приложение {

public static ArrayList blocks = new ArrayList <> (); public static ArrayList bullets = new ArrayList <> ();

public static ArrayList врагаBullets = новый ArrayList <> (); public static ArrayList враги = новый ArrayList <> (); static HashMap keys = new HashMap <> (); публичная статическая сцена этапа;

публичная статическая сцена;

public static Pane gameRoot = new Pane (); public static Pane appRoot = new Pane (); публичное статическое меню;

публичный статический Персонаж букера; публичная статическая HUD HUD; статическое оружие общего назначения; публичная статика елизавета елизавета; статический VendingMachine vendingMachine; статическое учебное пособие;

частные статические CutScenes cutScene; публичная статика Энергетика энергетика; публичная статическая молния молнии; public static int levelNumber;

уровень статического уровня;

public static AnimationTimer timer = new AnimationTimer () { @Override

public void handle (давно) { Обновить();

}

};

приватное статическое void update () { для (EnemyBase враг: враги) { enemy.update ();

if (врага.getDelete ()) { enemies.remove (враг); перемена;

}

}

Bullet.update (); Controller.update (); booker.update ();

if (! energetic.getName (). equals ("")) energetic.update ();

if (levelNumber> 0) elizabeth.update ();

если (молния! = ноль) { lightning.update ();

if (lightning.getDelete ()) молния = ноль;

}

menu.update (); hud.update (); weapon.update ();

if (booker.getTranslateX ()> Level_data.BLOCK_SIZE * 295) cutScene = новые CutScenes (levelNumber);

}

@Override

public void start (Stage primaryStage) выдает исключение { stage = primaryStage;

сцена = новая сцена (appRoot, 1280, 720);

. AppRoot.getChildren () добавить (gameRoot); уровень = новый уровень ();

try (DataInputStream dataInputStream = new DataInputStream (новый FileInputStream ("C:

/DeadShock/saves/data.dat"))) {

levelNumber = dataInputStream.readInt (); level.createLevels (levelNumber); level.changeImageView (levelNumber); vendingMachine = new VendingMachine (); букер = новый персонаж (); booker.setMoney (dataInputStream.readInt ()); booker.setSalt (dataInputStream.readByte ()); booker.setCountLives (2);

оружие = новое оружие ();

weapon.setWeaponClip (dataInputStream.readInt ()); weapon.setBullets (dataInputStream.readInt ());

hud = новый HUD ();

Елизавета = новая Елизавета (); энергичный = новый Энергетический ();

} catch (IOException e) { levelNumber = 0; level.createLevels (levelNumber);

vendingMachine = new VendingMachine (); букер = новый персонаж ();

оружие = новое оружие (); hud = новый HUD ();

энергичный = новый Энергетический (); tutorial = new Tutorial (levelNumber);

}

switch (levelNumber) { случай 0:

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 117, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 127, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 148, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 161, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 171, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 185, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 204, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 215, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 228, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 233, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 243, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 252, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 262, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 277, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 280, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 286, 200)); перемена;

Дело 1:

враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 57, 200)); враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 67, 200)); враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 74, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 87, 200)); враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 104, 150)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 117, 200)); враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 133, 200)); враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 156, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 177, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 193, 200)); враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 201, 200)); враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 216, 200)); враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 224, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 246, 200)); враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 260, 200)); враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 277, 100));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 34, Level_data.BLOCK_SIZE * 13));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 36, Level_data.BLOCK_SIZE * 13));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 60, Level_data.BLOCK_SIZE * 9));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 61, Level_data.BLOCK_SIZE * 9));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 106, Level_data.BLOCK_SIZE * 7));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 107, Level_data.BLOCK_SIZE * 7));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 168, Level_data.BLOCK_SIZE * 13));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 170, Level_data.BLOCK_SIZE * 13));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 196, Level_data.BLOCK_SIZE * 13));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 197, Level_data.BLOCK_SIZE * 13));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 232, Level_data.BLOCK_SIZE * 8));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 233, Level_data.BLOCK_SIZE * 8));

перемена;

}

меню = новое меню ();

appRoot.getChildren () добавить (menu.menuBox).

booker.translateXProperty (). addListener (((наблюдаемый, oldValue, newValue) -> { int offset = newValue.intValue ();

if (offset> 600 && offset
}

если (смещение <= 100) level.getBackground () setLayoutX (0).

}));

vendingMachine.createButtons ();

stage.getIcons (). add (новое изображение ("файл: / C: /DeadShock/images/icon.jpg")); stage.setTitle ( "DeadShock");

stage.setResizable (ложь); stage.setWidth (scene.getWidth ()); stage.setHeight (scene.getHeight ()); stage.setScene (сцены);

stage.show (); timer.start ();

}

public static void main (String [] args) { запуск (арг);

}

}
Стало

Класс Main
пакетная игра;
импорт игры. Персонажи. *;

импорт игры. Персонажи. Персонажи; импорт игры. Энергетика. Энергетика; импорт игры. Энергетика. Освещение; импорт игры. Уровни. Блок;

импорт игры. Уровни. Уровень; импортировать game.Levels.Level_data; импорт игры. Weapon.Bullet;

импорт игры. Оружие. Оружие;
import javafx.animation.AnimationTimer;
импорт javafx.application.Application;
import javafx.scene.Scene;

import javafx.scene.image.Image;

import javafx.scene.input.KeyCode;

import javafx.scene.layout.Pane;

import javafx.stage.Stage;

import java.io.DataInputStream;

import java.io.FileInputStream;
импорт java.io.IOException;

import java.util.ArrayList;

import java.util.HashMap;
публичный класс Main расширяет приложение {

public static ArrayList blocks = new ArrayList <> ();

public static ArrayList bullets = new ArrayList <> ();

public static ArrayList врагаBullets = новый ArrayList <> ();

public static ArrayList враги = новый ArrayList <> ();

static HashMap keys = new HashMap <> ();
публичная статическая сцена этапа;

публичная статическая сцена;
public static Pane gameRoot = new Pane ();

public static Pane appRoot = new Pane ();
публичное статическое меню;

публичный статический Персонаж букера;

публичная статическая HUD HUD;

статическое оружие общего назначения;

публичная статика елизавета елизавета;

статический VendingMachine vendingMachine;

статическое учебное пособие;

частные статические CutScenes cutScene;

публичная статика Энергетика энергетика;

публичная статическая молния молнии;
public static int levelNumber;
уровень статического уровня;
public static AnimationTimer timer = new AnimationTimer () {

@Override

public void handle (давно) {

Обновить();

}

};
private void initContent () {

. AppRoot.getChildren () добавить (gameRoot); уровень = новый уровень ();

try (DataInputStream dataInputStream = new DataInputStream (новый FileInputStream ("C:/DeadShock/saves/data.dat"))) {

levelNumber = dataInputStream.readInt ();

level.createLevels (levelNumber);

level.changeImageView (levelNumber);

vendingMachine = new VendingMachine ();
букер = новый персонаж ();
booker.setMoney (dataInputStream.readInt ());

booker.setSalt (dataInputStream.readByte ());

booker.setCountLives (2);
оружие = новое оружие ();

weapon.setWeaponClip (dataInputStream.readInt ());

weapon.setBullets (dataInputStream.readInt ());

hud = новый HUD ();
Елизавета = новая Елизавета ();

энергичный = новый Энергетический ();

} catch (IOException e) {

levelNumber = 0;

level.createLevels (levelNumber);

vendingMachine = new VendingMachine ();
букер = новый персонаж ();

оружие = новое оружие ();
hud = новый HUD ();
энергичный = новый Энергетический ();
tutorial = new Tutorial (levelNumber);

}

createEnemies ();
меню = новое меню ();
appRoot.getChildren () добавить (menu.menuBox). booker.translateXProperty (). addListener (((наблюдаемый, oldValue, newValue) -> {

int offset = newValue.intValue ();

if (offset> 600 && offset
gameRoot.setLayoutX (- (смещение - 600));

level.getBackground (). setLayoutX ((смещение - 600) / 1,5);

}

если (смещение <= 100) level.getBackground () setLayoutX (0).

}));
vendingMachine.createButtons ();

}
public static void createEnemies () {

switch (levelNumber) {

случай 0:

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 117, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 127, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 148, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 161, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 171, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 185, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 204, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 215, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 228, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 233, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 243, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 252, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 262, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 277, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 280, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 286, 200));

перемена;

случай 1:

враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 57, 200));

враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 67, 200));

враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 74, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 87, 200));

враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 104, 150));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 117, 200));

враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 133, 200));

враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 156, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 177, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 193, 200));

враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 201, 200));

враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 216, 200));

враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 224, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 246, 200));

враги.адд (новый EnemyRedEye (Level_data.BLOCK_SIZE * 260, 200));

враги.адд (новый EnemyComstock (Level_data.BLOCK_SIZE * 277, 100));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 34, Level_data.BLOCK_SIZE * 13));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 36, Level_data.BLOCK_SIZE * 13));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 60, Level_data.BLOCK_SIZE * 9));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 61, Level_data.BLOCK_SIZE * 9));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 106, Level_data.BLOCK_SIZE * 7));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 107, Level_data.BLOCK_SIZE * 7));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 168, Level_data.BLOCK_SIZE * 13));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 170, Level_data.BLOCK_SIZE * 13));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 196, Level_data.BLOCK_SIZE * 13));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 197, Level_data.BLOCK_SIZE * 13));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 232, Level_data.BLOCK_SIZE * 8));

Level_data.enemyBlocks.add (новый блок («невидимый», Level_data.BLOCK_SIZE * 233, Level_data.BLOCK_SIZE * 8));

перемена;

}

}
приватное статическое void update () {

для (EnemyBase враг: враги) {

enemy.update ();

If (enemy.GetDelete()) {

enemies.remove(enemy);

break;

}

}

Bullet.update();

Controller.update();

booker.update();

If (!energetic.GetName().Equals("")) energetic.update();

if (levelNumber > 0) elizabeth.update();

if (lightning != null) {

lightning.update();

If (lightning.GetDelete()) lightning = null;

}

menu.update();

hud.update();

weapon.update();

if (booker.getTranslateX() > Level_data.BLOCK_SIZE * 295) cutScene = new CutScenes(levelNumber);

}

@Override
public void start(Stage primaryStage) throws Exception {

stage = primaryStage;

scene = new Scene(appRoot, 1280, 720);

initContent();

stage.getIcons().add(new Image("file:/C:/DeadShock/images/icon.jpg"));

stage.setTitle("DeadShock");

stage.setResizable(false);

stage.setWidth(scene.getWidth()); stage.setHeight(scene.getHeight());

stage.setScene(scene);

stage.show();

timer.start();

}
public static void main(String[] args) {

launch(args);

}

}

Задание самостоятельной работы

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

2 Провести инспекцию кода с помощью любого из перечисленных сервисов.

3 Сравнить полученные результаты. Сделать вывод.

Перечень индивидуальных вариантов приведен в приложении Г.
Контрольные вопросы

  1. Для чего нужны стандарты кодирования.

  2. Какие существуют соглашения по именованию переменных, функций.

  3. В каком формате следует записывать константы в тексте программы.

  4. Какие стили расстановки скобок существуют? В чем их различия?