VB 0-индексируем в объявлениях массива , таким образом, seomthing как Dim myArray(10) as String
дает Вам 11 элементы. Это - частая ошибка при переводе из языков C.
Так, для пустого массива, любое из следующего работало бы:
Dim str(-1) as String ' -1 + 1 = 0, so this has 0 elements
Dim str() as String = New String() { } ' implicit size, initialized to empty
Замена старой системы на новую обычно подразумевает изофункциональность (т.е. способность делать по крайней мере то, что старая система
Таким образом, хотя глубокое знание старой системы не является обязательным, знание интерфейсов и создание набора функциональных тестов полезно для эффективной разработки новой системы.
Этот пакет будет использоваться для проверки результатов новой разработки, имея в виду, что результат никогда не должен быть 100% (иначе вы успешно воспроизвели бы ошибки первой системы!)
Плюс, для действительно больших системе, вам нужно как минимум три реализации для вашей новой программы:
Если мы говоря о большом периоде времени, в который также входит Архитектор, способный управлять эволюцией старой системы (которая не может стоять на месте, ожидая несколько месяцев или лет, прежде чем ее заменит новая), поддерживая эти эволюции в том же направлении, что и ваша новая реализация.
Похоже, что спецификация новой системы была неполной, потому что кто-то (руководитель проекта, инициатор проекта) не гарантировал, что функциональность старой системы была задокументирована и проверила, что заказчик действительно использовал.
Если это будет сделано, то не должно иметь значения, что никто не знает старую систему, поскольку вы разрабатываете спецификацию.
Если у вас нет спецификации, отдельно от всех других проблем, которые могут возникнуть, каждый должен знать старую систему, чтобы избежать этой самой проблемы.
Вам нужны лучшие бизнес-аналитики. Это те, кто должен проанализировать старую систему и точно (и полностью) определить, что должна делать новая система. Они должны предоставить вам полный список требований, чтобы все, что должно происходить, было учтено.
Тот, кто пишет требования, должен быть более тщательным. Если это невозможно, возможно, вам придется принять участие и изучить «старую систему».
Однако всегда будет что-то упущенное - это просто человеческая природа. Очевидно, вам следует попытаться сделать «новую систему» как можно более гибкой, чтобы можно было добавить необходимые функции, когда пользователи поймут, что о них забыли.
Я понимаю вашу боль.