Social Icons

вторник, 8 сентября 2009 г.

Защита дипломного Delphi-проекта

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

Зачем проводится защита
Защита дипломного/курсового проекта проводится с целью демонстрации приобретенных навыков студента в плане разработки и (внимания) представления результатов работы. Здесь ключевое слово "представление". Непонимание этого приводит к типовой проблеме: студент в последние "золотые" дни делает акцент на разработке, доработке и тестировании программного продукта, а не на подготовку непосредственно презентации своих достижений. Здесь (очень важно) под достижениями подразумевается не конкретный разработанный программный продукт, а умение решать поставленные задачи (что совсем не одно и то же). Грамотная презентация и правильные ответы на любые вопросы абсолютно необходимы!

"Показуха"
Студент, в хорошем смысле слова "помешанный" на разработке, может возразить: а не конечный ли продукт является смыслом деятельности программиста!? Отнюдь, нет. В реальной жизни умение "впарить" продукт заказчику является (в большинстве случаев) чуть ли не главным умением, которое приносит деньги. Поэтому, правильно готовя защиту, студент имитирует реальную жизнь и реальный процесс зарабатывания денег. Только в данном варианте вместо денег человек получает оценку. Пожалуйста, не думайте, что время, потраченное на подготовку доклада и презентации, потрачено зря. Это обязательно пригодится в будущем.

Понимание основ
Нужно сделать поправку на "менталитет" преподавателя. В своем абсолютном большинстве преподаватели - не программисты в полном смысле этого слова. Они не разрабатывают программные продукты по 8-10 часов в сутки 5 дней в неделю. Часто они не достаточно полно понимают реалии разработки и внедрения. Что из этого следует? Только то, что они, в отличие от вас, не "повернуты" на особенностях компонента TTable, проблем работы со строками, кнопок с картинками и преимуществах параметризированных запросов. Кроме того, учебные программы носят оттенок "академических", а не прикладных знаний, поэтому нужно обязательно использовать "высокий стиль" при написании и озвучивании доклада.

Я к Вам пишу, чего же более
Пояснительная записка, кому она нужна? Знайте, что защита дипломной работы есть процесс, который находится абсолютно в правовом поле. Защиту можно и оспорить! Защиту приходится доказывать! Поэтому реальным документом (с подписями) является именно записка с подписанным титульным листом, а не ваш программный продукт. Если записка написана плохо, то комиссия может банально не дать хорошую оценку, т.к. потом (на основании этой злосчастной записки) компетентность комиссии может быть поставлена под сомнение. Поставили оценку "отлично", а любая проверка покажет, что студент просто не "выработал" требуемый объем! Нельзя написать 15 листов формата А4 на базе информации из "Википедии".
Кроме этого, во взрослой жизни всегда пишется техническое задание (ТЗ), а также технико-экономическое обоснование (ТЭО). Тренируйтесь сейчас (при написании "записки"), потом пригодится.

С чего начать
Как и доклад, так и записка должны начинаться с постановки задачи. Что за систему вы разработали? Какое назначение системы? Какие основные функции? Какие задачи решает система? На кого рассчитана система? Какой эффект от внедрения системы?

Примерные варианты назначения системы и цели работы: Разработанная система позволяет автоматизировать:
  • процесс складского учета товаров;
  • создание расписания занятий средней школы;
  • анализ эффективности продаж магазина питания домашних животных;
  • процесс обработки заказов клиентов ресторана;
  • процесс формирования заказов салона татуировок и перманентного макияжа;
  • учет изданий в домашней библиотеки.
Типовые ошибки:
  • мной разработана база данных, которая фильтрует записи.
  • я сделал базу данных с экспортом в Word.
  • моя программа рассчитывает данные и строит графики.
Основные функции системы:
  • система позволяет вводить информацию о...;
  • с использованием системы можно выполнять обработку данных для определения количества...;
  • функции системы позволят выполнять поиск информации о...;
  • при помощи системы можно формировать отчеты о.... с последующим выводом на печать; отчет создается в формате ....
Типовые ошибки:
  • при нажатии кнопки "добавить" в DBGrid появляется новая запись;
  • кнопка "Экспорт" предназначена для...;
  • если пользователь "влезет в главное меню", то там есть строчка "поиск"...;
  • данные будут переданы в Word, что очень удобно...;
  • программа может запускаться на персональном комьютере;
  • я использовал компоненты TQuery, т.к. TTable не делает фильтрацию по LookUp-полям.
Пользователи системы:
  • система предназначена для использования операторами ПЭВМ с начальным уровнем подготовки;
  • организация интерфейса подразумевает ее использование сервисным персоналом магазина, обладающих базовыми навыками работы в операционной системе Windows;
  • система рассчитана на использование преподавательским составом средней школы и не требует специальной подготовки.
Типовые ошибки:
  • пользователи легко могут вводить данные;
  • любой может легко освоить данную программу;
  • я использовал оконный интерфейс, что гораздо лучше чем MS-DOS;
  • Delphi позволяет быстро делать любые интерфейсы, которые понятны "чайнику".
Эффект от внедрения системы:
  • использование системы позволит существенно автоматизировать процесс составления расписания, что позволяет экономить затраченное время в 10 раз; разработка расписания без средств автоматизации требует порядка 12 часов рабочего времени одного специалиста, тогда как данная система сокращает время до 1 часа с учетом подготовки печатного варианта;
  • использование системы учета товаров на складе значительно сокращает время получение аналитических отчетов, определяющих стратегию закупок; кроме того, практически полностью исключаются ситуации значительных расхождений количества фактически хранимого товара с его номинальным значением;
  • внедрение системы автоматизации формирования заказа в салоне татуировок и перманентного макияжа сокращает время выбора клиента в 2-3 раза при значительном повышении степени удовлетворенности, т.к. обеспечивает просмотр большего количества вариантов с варьируемым масштабом и в различных цветовых реализациях;
  • система автоматизации товарооборота в магазине питания для животных позволит на ее основе создать службу доставки с оптимизацией задачи загрузки транспорта и транспортного пути.
Типовые ошибки (обычно, слишком "размытые" или "глупые" формулировки):
  • использование системы позволит вводить данные в компьютер;
  • использование компьютерных программ - важный шаг в развитии бизнеса;
  • компьютерные программы позволяют сделать все эффективнее и надежнее;
  • разработанная программа действительно работает, поэтому ее эффективность не вызывает сомнений;
  • база данных позволяет хранить и обрабатывать данные.
Описание системы
Если с вас требуют "инфологическую и даталогическую" модель, то это - тяжелый случай. Проблема в том, что составление этих "моделей" суть задача нетривиальная, поэтому требует значительного времени. В реальной жизни ее решение должно предварять непосредственно программирование. Поэтому если времени уж совсем нет (и вас этому не учили), то можно просто систему "описать".

Разработанный программный продукт представляет собой систему управления базой данных (СУБД). База данных - реляционная. Формат базы данных - Microsoft Access (Paradox). Доступ данных из приложения осуществляется при помощи драйвера ADO (BDE). Приложение-интерфейс СУБД разработана с использованием Delphi. Далее нужно обязательно показать схему данных, которая, например, в Microsoft Access рисуется элементарно и быстро (если этого не было сделано заранее). Без данного плаката/слайда выходить на защиту смысла нет. Объем и качество представления схемы данных зависит от того, насколько это широко практикуется в конкретном учебном заведении. Тут уж без консультации с руководителем не обойтись! Должен же и он, в конце концов, поработать!

На что следует обратить внимание. Не надо перечислять таблицы. Не надо рассказывать, какие таблицы были добавлены и почему. Кратко 3-мя предложениями показать свою компетентность. Чтобы не было сомнений, кто делал эту программу. Обязательно упомянуть, что таблицы базы данных приведены в соответствие 1, 2 и 3-ей нормальными формами. Если вы еще не знаете, что это - бегом в поисковик. Если нормализация нарушена, то почему и зачем.

Описание схемы:
  • разработанная база данных содержит 10 таблиц, которые полностью соответствуют 3-ей нормальной форме; информация о продажах размещается в таблице "sales", которая связана отношением "многие-к-одному" с таблицей "products"; структура таблицы "product" полностью исключает дублирование по атрибуту (полю) артикул, т.к. наложено соответствующее ограничение - уникальность значения. Достаточно. Ваша задача здесь показать, что вы знаете и правильно применяете понятия "нормализация", умеет связывать таблицы на уровне данных, а также пользоваться ограничениями.
Типовые ошибки:
  • таблица "клиенты" состоит из 15 полей, поле "id" хранит уникальное значение, тип счетчик; поле "name" хранит строку; поле "photo" хранит фотографию и т.д. (до потери пульса - вас просто остановят через 15 минут и поставят 3);
  • линии со стрелочками между таблицами показывают связи между таблицами, которые позволяют пользователю использовать данные (не надо общих, ничего не значащих фраз);
  • то, что представлено на слайде, есть таблицы; таблицы хранятся в базе данных; таблица состоит из полей; в полях хранятся значения (это и без вашего доклада понятно);
  • схема данных, которая показана на плакате, используется для создания базы данных; из этой схемы ясно, что база данных представляет собой комплексную модель предметной области; система достаточно сложная, потому что она состоит из 10 таблиц, которые представлены на экране/плакате (никому не интересно, что у вас показано на экране/плакате; интересно то, что вы можете сказать конкретного про эту схему, на основании чего можно судить о ваше квалификации).
Приложение для работы с базой данных, т.е. непосредственно "Delphi". Сразу нужно сказать, что использованная среда разработки Delphi была выбрана из соображений минимизации времени программиста и, следовательно, затрат на разработку, т.к. она позволяет использовать технологию "визуального программирования". Недостатки: размер программного кода, снижение скорости работы системы (по сравнению с "невизульными" методами разработки). Но в рамках вашей задачи, а именно, разработки СУБД, указанные недостатки несущественны. Главное достоинство: быстрое создание оконного интерфейса пользователя при достаточном уровне надежности и быстродействии системы.

Дальше нужно быстро (кратко и четко) описать интерфейс. Программа состоит из одного главного и 5 диалоговых окон. Дизайн главного окна соответствует принципам построения интерфейсов Windows приложений. Основные элементы управления: главное меню, инструментальная панель, кнопки для запуска команд. Данные отображаются в "сетках" для табличного представления (показать указкой). Кроме того, есть варианты "ленточного" представления (показать указкой) для воспроизведения детальной информации. Если текст идет в записке, то сделать screen-shot и вставить рисунок (2-3 примера, больше не надо).

Интерфейс разработан в соответствии с моделью Single Document Interface, а данные из различных таблиц структурируются и отображаются при помощи "закладок" (компонент PageControl) - покликать, полистать. Или по-другому.

Интерфейс разработан в соответствии с моделью Multiple Document Interface, для визуализации данных из разных таблиц используется отдельное дочернее окно (покликать, показать 2-3 окна).

Доступ к данным осуществляется из отдельно программного модуля (говорим о DataModule). Для этого использовались компоненты TTable для навигационного доступа (работа с таблицей, как она есть) и компоненты TQuery, позволяющие работать с данными при помощи языка SQL. Можно показать screen-shot модуля данных.

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

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

Далее на 1-2 минуты можно, выбрав только одну функцию программы, в реальном режиме продемонстрировать работу программы. Желательно, поисковый запрос или фильтрацию (на отработанном примере). Ввод данных демонстрировать не надо, т.к. обычно это долго и можно "наступить" не на ту кнопку на клавиатуре, полезут ошибки, и впечатление смажется.

Тестирование тоже нужно "подсветить". Тестирование программы проводилось в процессе разработки, а также после завершения проекта. Для тестирования был разработан вариант ввода типовых данных в систему (можно показать некую табличку из Word-а). Тестирование проводилось как разработчиком непосредственно в процессе создания, так и сторонним пользователем (даже если это - враньё; врать нехорошо, но сказать надо: хотя бы вы понимаете, что это было нужно сделать). Кто это такой сторонний пользователь? Студенты нашей группы, младшие товарищи, представитель заказчика.

Выводы (заключение) - "доклад окончен, разрешите перейти к выводам"
Это — самое главное. Тут надо использовать совершенные формы глагола. Проанализировано, сделано, разработано, реализовано, показано, доказано, получено.

Типовые выводы (4-5 предложений):
  • в процессе создания проанализирована предметная область/типовые бизенес-процессы, происходящие при учете товара на складе, или алгоритм генерации расписания, или процесс формирования заказа в салоне татуировок и перманентного макияжа;
  • создана схема данных, описывающая модель (именно модель) предметной области, в виде нормализованных и связанных таблиц; разработана база данных;
  • разработано приложение для работы с базой данных средствами Delphi, функционирующее под операционной системой MS Windows XP;
  • система прошла этап тестирования; тестирование показало, что разработанная система соответствует изначальным требованиям и реализует заданную функциональность (даже если это - враньё; врать нехорошо, но хорошо, что вы хоть понимаете, что тестирование - важный этап).
Ошибки:
  • вообще "забить" на выводы;
  • созданная система позволяет эффективно работать с данными (пустые слова);
  • система запускается на персональном компьютере и работает стабильно (это и так понятно, даже если это - враньё; иначе как можно выходить на защиту?);
  • использование системы значительно повышает эффективность работы компании (кратко - смысла нет, подробно описывать - времени нет);
  • разработанная система, несомненно, позволит пользователю работать с ней (ну еще бы!);
  • система не доработана до конца, но я ее доделаю (мы не в детском саду);
  • из-за недостатка времени ряд функций не реализованы (кому это надо слышать?);
  • система будет иметь коммерческий успех (вы - не маркетолог, не нужно про это говорить);
  • вы видели только прототип системы (за прототип диплом не дают, и так ясно, что вы — студент; никто он вас не ждет "шедевра"; ждут, что вы следуете "ритуалу").
Еще раз: ваша задача - не сделать готовый, профессиональный, реально полезный продукт. Ваша задача - показать умение применять навыки и знания в работе.

Ответы на вопросы
Очень важная часть. Если вы писали программу сами, то волноваться нечего. Просто нужно знать типовые "зацепки" (многие будут удивлены).
Вопрос: Почему вы выбрали Delphi?
(хотя никто ничего реально не выбирал, вам изначально сказали "пиши на Delphi"). Вот тут не надо отвечать: "мне так сказал руководитель" (детский сад). Delphi - оптимальный инструмент для создания приложений для баз данных. Оптимальный, т.к. поддерживает технологию визуальной разработки, которая позволяет существенно сократить время разработки (снизить стоимость, соответственно), при сохранении хорошего качества и надежности программного продукта.
Вопрос: а почему не Visual Basic?
Значительных преимуществ Visual Basic перед технологией Delphi не имеет. Delphi - надежный инструмент разработки, качество которого доказана множеством реализованных и внедренных программных продуктов промышленного масштаба.
Вопрос: а почему не VB.NET?
Преимущества технологии .NET (а именно, безопасность кода, поддержка нескольких языков, возможность написания схожего кода для разных типов устройств и т.д.) несущественны в рамках поставленной задачи (разработка СУБД). Delphi - надежный инструмент разработки, качество которого доказана множеством реализованных и внедренных программных продуктов промышленного масштаба (эта фраза уже была, но она - ключевая).
Вопрос: а почему не Microsoft Access? (для всей системы).
Microsoft Access позволяет создавать СУБД, надежность которых ниже аналогичных, разработанных с помощью Delphi. Кроме того, функциональность зависит от версии Microsoft Access. Для работы системы на Microsoft Access на каждой машине нужно установить лицензионную версию, что требует дополнительного финансирования. И опять ключевую фразу (Delphi - надежный инструмент...).
Вопрос: почему вы выбрали BDE?
(хотя все понимают, что вы ничего не выбирали) BDE - мощный, хорошо себя зарекомендовавший себя драйвер баз данных. Поддерживает различные форматы и технологии клиент-сервер. В Delphi есть встроенные компоненты для работы с этим драйвером. В ряд случаев, обеспечивает быстродействие, превосходящее аналогичные варианты, например, ADO.
Вопрос: почему ADO?
ADO - мощный, хорошо себя зарекомендовавший себя драйвер баз данных. Поддерживает различные форматы и технологии клиент-сервер. В Delphi есть встроенные компоненты для работы с этим драйвером (умышленный повтор). В отличие от BDE, не требует дополнительной установки на компьютер каждого оператора вместе с разработанной программой.
Вопрос: почему Paradox?
Формат Paradox - надежный формат хранения реляционных/табличных данных. Эффективность доказана множеством реализованных СУБД на его основе.
Вопрос: почему база в формате Microsoft Access?
Формат Microsoft Access, а также сама система Microsoft Access позволяет проектировать базу данных визуальными средствами. Например, создавать схему данных. Или визуально строить запросы на языке SQL.
Вопрос: почему вы не использовали технологию клиент-сервер?
В рамках поставленной задачи преимущества данной технологии несущественны, т.к. разработанная система подразумевает одно автоматизированное рабочее место (однопользовательский доступ), т.е. работу одного оператора. Систему можно использовать и несколькими пользователями, однако в этом случае нужно использовать клиент-сервер. При необходимости перехода на клиент-серверную технологию приложение на Delphi можно модифицировать, а не создавать заново. Компоненты Delphi универсальны с точки зрения доступа к данным.
Вопрос: насколько актуальна задача?
Пересказать первую часть доклада, где "кому, зачем и для чего". Это - самый типовой вопрос.
Вопрос: а есть ли аналоги? Может, вы разработали то, что уже можно просто купить?
Аналоги есть, но разработанная система учитывает специфику конкретной фирмы/школы/предметной области. Она менее универсальна, зато может решать некоторые специфические задачи. Например, генерирует отчет именно в той форме, в которой это принято в данной фирме/удобно для последующего анализа.
Вопрос (самый тупой): всё-таки, что делает ваша система?
Пересказать первую часть доклада: "функциональность". Можно говорить долго. Покажите эдакого "фаната программирования", который может часами говорить о программах.
Вопрос: (самый-самый тупой): всё-таки, зачем нужна ваша система?
Пересказать "эффект от внедрения". Говорить кратко.
Вопрос: так всё-таки, на кого рассчитана данная система?
Ну, теперь вы уже знаете, что пересказывать (первую часть доклада). Не надо злиться и улыбаться. Еще раз четко и ясно рассказать. По регламенту вам должны задавать вопросы. Вот и задают, как умеют. А вы отвечайте как положено.
Вопрос (последний): вы сами делали систему?
(тонкий момент, просто "да" недостаточно) Система разработана мной. Это потребовало приблизительно 1 месяц на анализ предметной области и определение функциональности системы; далее 1 месяц ушел на разработку базы данных и 1 месяц на реализацию приложения на Delphi; оставшееся время было посвящено тестированию и написанию пояснительной записки (дураку понятно, что никто эту систему не тестировал, а записка писалась в последнюю ночь - но ритуал, есть ритуал).
Стиль
Не принято говорить "я", "мной", "лично я", "когда я программировал", "я хотел", "я сделал". Используйте:
  • в процессе анализа было сделано...
  • при разработке учитывалось...
  • проектирование интерфейса потребовало...
  • тестирование проводилось в ручном режиме...
  • выполнялось требование...
Ни пуха!

Всеволод Леонов 
http://www.delphikingdom.com/asp/viewitem.asp?catalogID=1403

5 комментариев:

  1. Анонимный29 мая 2012 г., 18:56

    Супер! Есть же люди, спасибо))))

    ОтветитьУдалить
  2. Проще было сам дипломный проект сделать, чем написать доклад на защиту. Уже неделю безуспешно пытаюсь написать хорошую речь на защиту. Спасибо автору статьи! Вот теперь просто и легко будет написать доклад. Еще раз спасибо! все просто, доступно, лаконично. :)

    ОтветитьУдалить
  3. Анонимный17 июня 2013 г., 19:49

    Большое спасибо! очень помогло!

    ОтветитьУдалить

Поделитесь с друзьями!

 

Подписчики

Статистика