Yoda писал(а):
То есть как это, без личного опыта??? Погоди, не понял... ща, дай разобраться......
Это по Козьме Пруткову, что ли? Если на клетке слона прочтёшь надпись "буйвол", не верь глазам своим?
Ну ладно, раз авторитетный дядя написал "буйвол", так тому и быть. Тогда мне придётся устраниться от обсуждения, т.к., к сожалению, уже испорчен личным опытом, а здесь приветствуются только чистые, абстрактные теоретики.
Ну, не столь категорично, конечно:)
SII писал(а):
Те, кто делает и операционки (ИБМ, Мыкрософт, теперь уже бывший Сан, когда-то Нокия), начали эти работы за много лет до того, как UML появился, и развивают свои системы эволюционно, а не революционно, так что и этапа полноценного проектирования как такового в новых версиях нет, а проектная документация наследуется от предыдущих разработок -- естественно, без всяких там UML.
Полностью согласен, но данная тема, всё же, создана для обсуждения проектирования новых систем. А гиганты пусть как хотят, так и делают (Хотя ЮМЛ поддерживается именно по их инициативе).
Цитата:
2 Эти хорошие технологии - мешают в некотором смысле свободе манёвра. Другими словами если пользоваться общепринятыми инструментами - то получится тоже самое на выходе.
Всё зависит от того, где провести границу между общепринятым и полётом фантазии.
Из общепринятого ты, вероятно, пользуешься общепринятыми компиляторами в нативный код платформы (хотя мог бы написать свой), используешь общепринятые представления пользовательского интерфейса (хотя можно было бы ВООБЩЕ без интерфейса), притягиваешь общепринятые принципы к своей системе (многозадачность, вирт.память...). Почему не применять общепринятые стандарты моделирования и документации?
Что касается полёта фантазии: если пишешь систему для себя одного, да и уверен, что через 10 лет вспомнишь: "А почему я в этом месте сделал так, а не иначе?" - можно держать весь проект в голове. А попробуй написать систему так, чтобы в ней можно было разобраться за вечер, хоть соседу-программисту, хоть ребятам на форуме, хоть младшему брату.
//Убеждён, что ОСь должна писаться на ассемблере. Т.е. сама система должна отражать исключительно логику и функционал, а её реализация для конкретной платформы - дело кодинга, а не проектирования, со всеми преимуществами низкоуровневой оптимизации. Думаю, многие здесь согласятся. А что делать, когда объём исходников перевалит за 100.000 строк ассемблерного кода? Вот нужно мне будет, например, новый модуль в систему добавить, или потребовался перенос на новую платформу с сохранением прежнего функционала.. Как это сделать быстро и с минимальным количеством ошибок? - Не вижу способа лучше, чем изначально проектировать систему в виде отдельных компонентов (с чётко определёнными функционалами и интерфейсами). А когда система - наглядна, тогда несложно хоть новый компонент добавить, хоть на другой ассемблер всё перенести.. Да, и как сказал Yoda: "Производить отладку компонентов по-отдельности!":) Только для этого нужно изначально выбрать компонентный подход, а не "пилить на куски" уже рабочий монолит кода (проще написать заново). Собственно, в этом и вопрос: в каком формате представлять проект новой системы, чтобы его можно было вести как распределённо, так и с экономией макулатуры? Леса-то в стране не резиновые!;)