
- •Техническое задание
- •Расширенная постановка задачи Назначение системы
- •Описание предметной области
- •Требования к системе
- •Требования к данным
- •Требования к техническим средствам
- •Требования к документации
- •Комментарии
- •Описание процесса проектирования
- •Первая итерация
- •Описание класса tTrain
- •Описание класса tBox
- •Описание класса tPas
- •Вторая итерация
- •Заключение
Заключение
При работе над данной программной системой мы получили прекрасную возможность не только применить на практике полученные знания, но и получить неплохой опыт работы в группе. В результате стало понятно, что работа в коллективе - это очень не простая задача. И самое сложное - организация работы в группе. Для нас наиболее удобной и приемлемой формой организации работы над программной системой оказалась бригада с одни главным программистом, т.к. главный программист смог оценить знания и способности каждого участника группы, давал всем задание по силам, учитывал желание каждого члена бригады проявить все свои возможности, выслушивал предложения, идеи и пожелания. Однако, не все идеи одобрялись по причине риска нехватки опыта и времени. Это помогло нам уменьшить количество ошибок на каждом из этапов разработки и повысить эффективность работы членов группы.
В итоге была разработана программная система позволяющая анализировать данные о пассажирах и движении поездов, которая позволяет формировать поезда вагонами, добавлять пассажиров в вагоны, и моделировать движение поездов на разных маршрутах
Разработка программной системы позволяющей анализировать данные о пассажирах и движении поездов проводилась в среде CodeGear RAD Studio 2007 с использованием средств Cadifra UML Editor 1.3 и средст Microsoft Word 2007 для построения UML диаграмм.
Первый этап работы - технико-экономическое обоснование разработки . Он проводился нашей группой в целом составе. В процессе долгих обсуждений было сделано расширенное техническое задание, определены основные функции программной системы и сроки разработки.
Второй этап – анализ требований. Мы определили критерии, которыми должна обладать наша система. Этот этап разработки, мы так же проводили в полном составе группы при тесном общении.
На этапе разработки, был определенён базис системы и то как мы видим итоговый результат. Была проанализирована предметная область, выделены основные классы, разработаны диаграмма классов и диаграмма прецедентов, далее по требованию заказчика был введён новый класс. Благодаря этому стало возможно приступить к выполнению этапа программирования, на котором были построены диаграммы деятельности и написан код программы. На данном этапе работа всех членов бригады велась отдельно за исключением главного программиста, который контактировал со всеми членами бригады. К сожалению, были реализованы не все заранее определённые функции.
Следующие стадии - тестирование и отладка. Была произведена проверка работы системы с реальными данными, в результате чего мы определили, что наша система надёжна и эффективна.
Каждый участник бригады разрабатывал тестовые наборы для определённой области и затем тестировал их самостоятельно. Затем собранные вместе тестовые наборы были отредактированы, и затем мы провели комплексное тестирование системы всей группой, с целью выявления ошибок и недочетов. Немногочисленные ошибки были в кратчайшие сроки локализованы и устранены.
В результате разработки системы не были реализованы все предполагаемые функции, а получен лишь ограниченный функционал. Это связано с нехваткой времени и недостатком профессионализма всех членов бригады, в том числе главного программиста, который при данной стратегии разработки программной системы не смог правильно оценить возможности каждого члена бригады, в том числе свои, и как итог неправильно спланировал работу и распределил время. Но в тоже время мы получили работающую систему, с нехваткой таких функций как:
-
активная работа с файлами
-
возможность сохранения состояния системы
-
возможность редактирования поездов вагонов, пассажиров (имеются ввиду данные о них).
Моделирование было произведено без учёта расписания поездов, а генерировалось по заданному алгоритму. Но всё же многие функции были реализованы. Был сделан вывод, что намного проще разработать маленький проект самостоятельно, чем большой проект в бригаде, т.к. в первом случае нет необходимости составлять в голове картину работы всех членов бригады, а достаточно знать только то, что делаешь сам, а во втором случае очень много обязанностей падает на плечи главного программиста. Так же нужно отметить что, если хотя бы один человек перестает справляться со своей работой, то зависает весь проект. Очень много времени уходило на то чтобы проанализировать, то что сделал отдельный член бригады. Для разработки такого проекта для главного программиста необходимы навыки хорошего менеджера.