WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Советы » Опыт проектирования и разработки банковской системы для трехуровневой архитектуры клиент-сервер. Организация работы

Опыт проектирования и разработки банковской системы для трехуровневой архитектуры клиент-сервер. Организация работы


Дата публикации: 27-09-2010

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

1. Наилучший результат получается при работе меньшего числа лучших людей. Если обеспечить соответствующими условиями работы небольшой коллектив высококвалифицированных специалистов и организовать взаимодействие между ними, то работать они будут существенно эффективнее, чем большое число средних программистов. При большом количестве работников сложность управления коллективом множится на сложность самого проекта и превышает мыслимые размеры. Могут позволить себе задействовать сотню и больше программистов в одном проекте лишь фирмы масштабов и опыта IBM, AT&T или Novell. При меньших возможностях фирмы попытка создать проект силами такого большого коллектива приведет к неуправляемости и неустойчивости проекта и к исчезающе малой производительности труда разработчиков.

Разработчики системы решили ограничиться небольшой (до 10 человек) группой профессионалов. Конечно, для обеспечения гладкого функционирования такой группы нужна поддержка работников иных специализаций - системных администраторов, например. Такая группа является самоорганизующейся и методами проб и ошибок, как показывает опыт, выдает нужный результат. Попытка увеличить группу хотя бы до 12-14 человек приведет к неизбежному разрастанию коллектива до 25-30 человек (за счет управленцев), из-за необходимости организовывать сложное взаимодействие между ними, при этом общая производительность труда группы разработки не повысится.

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

3. Строгая сегментация задачи позволяет сильно снизить общую сложность системы. При увеличении количества сильносвязанных компонентов в системе ее сложность растет экспоненциально, а при добавлении слабосвязанных - линейно. В процессе создания системы принимались специальные меры для того, чтобы части системы были максимально независимы и взаимодействовали по строго определенному протоколу. Была выбрана ориентация на использование принципов объектно-ориентированного проектирования. Однако эти принципы были использованы только на самом высоком уровне абстракции данной системы.

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

Многие существенные для программиста утилиты встроены в операционную систему Unix и часто полностью покрывают все запросы разработчика.

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

Домен продается

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Апрель 2024 (1)
Октябрь 2018 (14)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта



Случайная цитата

Pixadel:

"Хорошо, Java, ВОЗМОЖНО, хороший пример того как должен выглядеть язык. Но тогда программы на Java — это хороший пример как НЕЛЬЗЯ писать программы."

Опрос

Какой антивирус Вы используете?

Kaspersky Antivirus
NOD32
Norton Antivirus
Dr.Web
Panda
Аvast!
ClamWin
Другой...