Требования к проекту по курсу «Автоматы в программировании»



 
Вы создаете не какую-то, а проектную документацию: в идеале по ней другой человек вручную или с помощью инструментального средства, например, UniMod, может «один в один» программно реализовать проект.

Кто ясно мыслит, тот ясно излагает.
А. Шопенгауэр


Человек ясно выражается, когда им владеет мысль, но еще яснее, когда он владеет мыслью.
В.Г. Белинский


Обращаться с языком кое-как — это значит и мыслить кое-как: неточно, приблизительно, неверно.
А.Н. Толстой


Выполните работу так, чтобы Вы ей могли гордиться.

Мысль меняется в зависимости от слов, которые ее выражают. Не мысли придают словам достоинство, а слова мыслям.
Блез Паскаль


Выражай смертными словами бессмертные вещи.
Лукреций


Вчера была задержана пьяная учительница русского языка. Она пыталась исправить вывеску магазина «Обои» на «оба».
Анекдот

  1. На настоящем сайте в разделе «Проекты» размещены более 50 проектов, которые в общем можно использовать как аналоги по оформлению.

    В качестве прототипа можно взять книгу Шалыто А.А. Логическое управление. Методы аппаратной и программной реализации алгоритмов. СПб.: Наука, 2000, которая выложена на этом сайте в разделе «Книги». Она оформлена правильно, так как выпущена старейшим и авторитетнейшим издательством в России.
  2. Документы должны быть выполнены в текстовом редакторе «Word» (или, в исключительных случаях, по предварительному согласованию в «TeX»). Шрифт Times New Roman 12-го кегля. При этом имена собственные выделяются курсивом, а названия переменных и классов — моноширинным шрифтом (Courier New). Для выделения в тексте используйте полужирный шрифт.
  3. Проект должен содержать:
  4. В аннотациях и на титульном листе инициалы располагаются перед фамилией (например, И.И. Иванов), а списке литературы — после (например, Иванов И.И.). Инициалы отделяются от фамилии и друг от друга неразрывными пробелами.
  5. Аннотации должны быть оформлены, как на сайте.
  6. После титульной страницы в отчете должен идти раздел «Оглавление».

    Страницы (кроме титульного листа) в документе должны быть пронумерованы. Номер ставится внизу по центру страницы.
  7. Разделы «Оглавление», «Введение», «Заключение», «Литература» («Источники» — при наличии ссылок на интернет-ресурсы) не нумеруются.
  8. Используйте стили. Размеры шрифтов названий разделов уменьшаются по вложенности. Шрифт заголовков разделов: Arial (Helvetica).
  9. Номер раздела должен заканчиваться точкой, его название — нет. После названия рисунка или таблицы точка также не ставится.
  10. «Скелет» оглавления приведен ниже: (Первая страница — титульный лист, вторая страница — оглавление).
        ОГЛАВЛЕНИЕ                             
        Введение............................  3
        1. Постановка задачи................  4
        2. Проектирование................... 10
         2.1. Диаграмма классов............. 12
            2.1.1. Основные классы.......... 14
            2.1.2.  ...                        
         2.2. Автоматы.......................  
         2.3. Вычислительные алгоритмы.......  
        3. Реализация.......................   
        ...                                    
        Заключение...........................  
        Литература...........................  
        Приложение 1. Протоколы работы         
                      программы (логи).......  
        Приложение 2. Исходные коды..........  
    
    Если в работе имеются ссылки на интернет-ресурсы, то раздел называется не «Литература», а «Источники».
  11. Четвертый уровень вложенности возможен, но нежелателен.
  12. Во введении должна быть обоснована актуальность выбранной темы, кратко сформулирована решаемая задача, указаны язык программирования и операционная система, использованные в проекте.
  13. В разделе «Постановка задачи» должно быть приведено подробное словесное описание решаемой задачи. Приведены рисунки, чертежи и скриншоты, поясняющие постановку задачи.
  14. В разделе «Проектирование» при использовании объектно-ориентированного стиля программирования должна приводиться диаграмма классов. Основные классы должны быть подробно описаны. Для каждого из них желательно разработать «Структурную схему класса», отражающую его интерфейс и используемые методы, с указанием какие из них являются автоматными.
  15. В разделе «Автоматы» для каждого автомата должны быть приведены три документа: словесное описание, схема связей автомата, граф переходов. Все названия на схемах должны быть на русском языке.
  16. Словесное описание должно быть весьма подробным, но так как поведение сложного автомата понятно не описать, то она обычно представляет собой «декларацию о намерениях».
  17. Схема связей автомата подробно описывает его интерфейс. На этой схеме слева должны быть показаны:
    В схеме связей справа должны быть показаны:
  18. Граф переходов изображается при помощи шаблона «Visio2Switch» (раздел «Последователи» настоящего сайта), который позволяет рисовать красивые графы переходов.

    При использовании инструментального средства «UniMod», графы переходов и схемы связей изображаюся с помощью этого средства.
  19. В верхней части вершины, соответствующей состоянию, указывается ее номер и через точку название. В средней части — обозначения вложенных в это состояние автоматов. В нижней части - с обозначением in: выходные переменные, формируемые при входе в состояние, а ниже с обозначением out: выходные переменные, формируемые при выходе из состояния.
  20. Если из нескольких вершин исходит несколько одинаково помеченных дуг, которые заходят в одну и ту же вершину, то для упрощения изображения графа переходов «исходные» вершины обводятся пунктиром, от которого исходит только одна дуга с указанной пометкой, а все остальные указанные дуги исключаются.
  21. В вершинах графов переходов, построенных с помощью шаблона «Visio2Switch», устраняются обозначения A: и z:, если в них отсутствуют вложенные автоматы и выходные переменные.
  22. В разделе «Вычислительные алгоритмы» при использовании в вершинах или на переходах сложных вычислительных алгоритмов обосновывается их выбор и приводится их описание (в том числе и математическое). Эти алгоритмы обозначаются переменными x и z в зависимости от того, где выполняются вычисления: на входе или на выходе.
  23. В разделе «Реализация» должны быть описаны особенности реализации программы. В частности, должен быть приведен шаблон для формальной и изоморфной реализации автоматов. Здесь же должны быть приведены реализации автоматов.
  24. В «Заключении» описываются достоинства и недостатки выполненного проекта. Могут указываться пути его совершенствования.
  25. Список литературы составляется либо в порядке упоминания или по алфавиту. Первый способ предпочтителен. Список оформляется следующим образом.

    Источники
    1. Шалыто А.А. Логическое управление. Методы аппаратной и программной реализации алгоритмов. СПб.: Наука, 2000.
    2. Шопырин Д.Г., Шалыто А.А. Синхронное программирование //Информационно-управляющие системы. 2004. N3. http://is.ifmo.ru, раздел «Статьи».
    3. Туккель Н.И., Шалыто А.А. Система управления дизель-генератором (фрагмент). Проектная документация. СПбГУ ИТМО. 2002. http://is.ifmo.ru, раздел «Проекты».
  26. Фамилии и инициалы всех авторов или название, если оно первое, выделяется италиком.
  27. Если авторов больше трех, писать «и др».
  28. Ссылки на источники выполнять так: [1,2,5-8].
  29. При записи в список литературы статей перед двумя слешами // точка не ставится.
  30. Протокол отражает функционирование программы в терминах объектов и автоматов. При этом должны протоколироваться состояния, переходы, входные переменные и их значения, события и выходные переменные. Вложенность автоматов обозначается отступами.
  31. В приложении должны быть приведены исходные коды, сильно «сдобренные» комментариями на русском языке. На приложения обязательно должны быть ссылки в тексте. Приложения размещаются в самом конце работы после разделов «Заключение» и «Литература» («Источники»).
  32. Должны быть учтены все указания редактора Word (зеленые, красные и синие), предупреждающие о возможных ошибках.
  33. В тексте сначала должны быть ссылки на рисунок (таблицу), который (-ая) должны приводиться сразу за ссылкой. В работе не может быть рисунков или таблиц, на которые в тексте нет ссылок.
  34. Ссылка на рисунок — (рис. 1). Ссылка на таблицу — (табл. 1). Между префиксом и номером должен быть неразрывный пробел.
  35. Подрисуночная подпись выравнивается по центру (в конце никаких точек):

    Рис. 1. Диаграмма классов
  36. В таблицах пишется:

    Таблица N. Число схем

    Выравнивание по правому краю.
  37. Если таблица или рисунок в документе один, то он не нумеруется.
  38. Если таблица переносится на другую страницу, то должна повторяться ее «шапка» и должно быть написано — «Продолжение табл. N» (без точки в конце).
  39. Нельзя писать:
  40. Чередуйте слова «используется» и «применяется».
  41. Не используйте одинаковые и или однокоренные слова «рядом».
  42. Следует писать безлично без «мы» и «я». Используйте слова «авторы» или «автор».
  43. При печати не используется буква «ё».
  44. В работе могут использоваться только следующие сокращения: т.д., т.п., разд., табл., рис., др. (в списке литературы), но не т.к. и т.е.
  45. В каталоге приложения должен быть один исполняемый файл. В случае языка Java создавайте bat или cmd-файл.
  46. Не применять уменьшительно ласкательные суффиксы, например «лампочка». Лампочки бывают в люстрах, а программки — в театрах.
  47. Тире должны быть длинными (комбинация клавиш Ctrl + Alt + -), а дефисы — короткими.
  48. Не используйте слова: очевидно, масса преимуществ, широко используется (применительно к автоматному программированию) и т.д.
  49. Аннотации должны быть выполнены в формате HTML по шаблонам, приведенным на http://is.ifmo.ru/templates/ (первая строчка не заключена в тэги).
  50. Файлы проекта должны именоваться следующим образом (projectname — краткое имя проекта на английском языке):
    документация — projectname.doc;
    исполняемые файлы — projectname_bin.zip (или projectname_bin.exe в случае самораспаковывающегося архива);
    исходные тексты — projectname_src.zip.
  51. Писать надо не как удобно, а как принято в хороших книгах или в стандартах.
  52. Всегда употребляйте самые ясные и недвусмысленные термины.

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

    Никогда не употребляйте одного слова в двух значениях.

    Никогда не употребляйте разные слова в одном значении.
    Лорд Брум
  53. Из двух возможных слов всегда выбирайте самое простое.
    Поль Валери
  54. Вместо «нужны» (что очень важно в нужнике) пишите «необходимы».
  55. Не «меняется», а «изменяется».
  56. Запомните, что когда вашу работу будут читать в интернете, вас при этом не будет и вы ничего не сможете пояснить. Поэтому документацию следует писать так, чтобы ее можно было понять без вашей помощи и не сильно напрягаясь.
  57. Любой текст должен быть написан так, чтобы читатель мог его прочесть, а не мучаться с каждым предложением, догадываясь что автор имел ввиду. Помните, что когда ваш читатель захочет решать кроссворды, он обратится не к вашей работе, а в газетный киоск.
  58. Если документация написана логично, то скорее всего правильно. А если написана не логично, то и читать не хочется.
  59. Реагируйте на подчеркивание зеленым и красным цветом при использовании текстового редактора, а не то буду «реагировать» я. У меня складывается впечатление, что большинство студентов зеленый цвет в этом случае воспринимают как зеленый свет светофора — проходи, все нормально! Как они воспринимают красный цвет в редакторе, я не знаю. Видимо, они просто больны дальтонизмом.
  60. Вместо «надо» пишите «требуется», вместо «значит» - «следовательно».
  61. Логи и исходные тексты программ должны быть вынесены в приложения, каждое из которых должно иметь номер и название.
  62. Приложения должны располагаться в конце работы после списка литературы (источников).
  63. Смысл предложений обеспечивайте не интонациями голоса, а знаками препинания, так как читатель вашей работы, выложенной в Интернет, не всегда будет иметь возможность услышать ваш прекрасный голос.
  64. Вместо «не нужно» пишите «не обязательно»
  65. При использовании списков, если применяется нумерация, то перед списком, после каждого номера и конце каждого пункта ставятся точки. Если нумерация не применяется, то перед списком ставится двоеточие, пункт начинается с маленькой буквы, а заканчивается (если он не является последним в списке) — точкой с запятой.
  66. Не унижайте читателя: не используйте в работе таких слов, как «очевидно», «ясно», «несомненно» и т.д. Не все Ваши читатели такие образованные и умные, как Вы или Ваш приятель.
  67. Плохо выполненная документация не сокращает число вопросов, а их увеличивает.
  68. Вместо слов «то есть» ставьте тире.
  69. Так как вы не из царского рода, то вместо «вышеизложенное» пишите лучше «изложенное».
  70. Числительные от нуля до девяти должны писаться словами.
  71. Списки желательно делать ненумерованными. В конце каждой записи в списке, кроме последней, ставится точка с запятой. Последняя запись заканчивается точкой.
  72. Слово "количество" пишется для неизмеряемых предметов (количества песка), а слово "число" для предметов, которые можно подсчитать (число компьютеров).
  73. В текстах вместо понятия «достоинство» обычно неправильно применяют понятие «преимущество». Преимущество должно быть перед кем-то, а достоинство может быть само по себе. Видимо, по этой причине часто говорят о «мужском достоинстве» и о «достоинстве мужчины».