Здравствуйте, Pavel Dvorkin, Вы писали:
IT>>Я никуда не ухожу. Меня интересует прежде всего эффективность всего решения. Если к системе предъявляются серьёзные нефункциональные требования и заказчик за это готов платить, то он это получит, не переживай.
PD>Что за нефункциональные требования у тебя там могут быть — не знаю и не хочу обсуждать. Я говорил именно о функциональных требованиях. Быстрее, черт возьми. Еще быстрее! А теперь еще быстрее.
Быстрее и еще быстрее сделать
что? А то может тебе не надо ничего писать а просто скачать
Nada — она выполняет свои обязанности в режиме 24/7, с нулевыми затратами процессорного времени и оперативной памяти — просто идеальное решение!
Функциональные требования описывают,
что должна делать система. Нефункциональные —
как она должна это делать. То есть ограничения, накладываемые при выполнении данных функций. В том числе и ограничения по скорости выполнения заданных функций и потребляемым при этом ресурсам.
Причем, твое ограничение
"Быстрее, черт возьми. Еще быстрее! А теперь еще быстрее" делается просто на раз, всегда бы такие задачи мне ставили. Решение очень простое — делаем очень медленную версию, потом немного улучшаем ее — и она
"быстрее, черт возьми", потом еще раз улучшаем — и она "
Еще быстрее!", а теперь опять оптимизируем — и теперь она "
еще быстрее!". Ура, требования по быстродействию удовлетворены всего за 4 релиза, забираем деньги, идем радоваться.
Почему-то чаще ограничения по быстродействию накладываются как-то иначе. Примерно так:
1. Сперва все функциональные требования
2. Нефункциональные:
2.1. Быстродействие:
2.1.1 Имеющееся оборудование (или пределы, какое оборудование возможно установить)
2.1.2 Список по всем функциям системы с указанием максимального (либо, в зависимости от задачи, среднего) времени выполнения данной функции (и, если надо, потребляемых прочих ресурсов) на указанном выше оборудовании.
И что тут характерно — требования четки и легко проверяемые — запускаем программу и смотрим, выполнился ли расчет задачи "А" за 3 секунды или нет (ну и заодно, что посчиталось правильно). Выполнился? Молодцы, вот вам деньги. Нет? Идите дорабатывайте систему.
А вот как доказать заказчику, что ты успешно выполнил функции
"Быстрее, черт возьми" и, одновременно, "
Еще быстрее"? Особенно, если система — что-то новое и раньше другой версии ее же не было? Тут можно только прогрузить его, что делается это на чистом С и использовалось 148 ассемблерных вставок, и, черт возьми, быстрее уже никто не будет, зуб даю. Короче — упражнение в красноречии.
Жаль у нас таких требований не ставят — у нас есть хороший специалист по маркетингу, уболтает кого угодно. Типа "Вы думаете, что это медленно?! Да вы просто не знаете что такое медленно, а это же очень хорошее решение, что вы, все прекрасно и ровно как вы хотели!"
А вот уболтать спецификацию с явно прописанной цифрой и секундомер, на котором высветилась совсем другая цифра — почему-то выходит с трудом.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>