Технологии программирования | страница 55
Во многих аспектах системный анализ является наиболее трудной частью процесса создания системы. Проблемы, с которыми сталкивается системный аналитик, взаимосвязаны, что является одной из главных причин сложности их решения:
1) аналитику сложно получить исчерпывающую информацию для оценки требований к системе с точки зрения заказчика;
2) заказчик, в свою очередь, не имеет достаточной информации о проблеме обработки данных, чтобы судить, что является выполнимым, а что — нет;
3) аналитик сталкивается с чрезмерным количеством подробных сведений о предметной области и о новой системе;
4) спецификация системы из-за объема и технических терминов непонятна для заказчика;
5) в случае понятности спецификации для заказчика, она будет недостаточной для разработчиков, создающих систему.
Итак, на данном этапе эволюционного развития ситуация в области проектирования АС выглядит следующим образом:
• имеется субъект — потенциальный заказчик, испытывающий дискомфорт, для преодоления которого необходимо решить ряд проблем, и поэтому этот субъект является источником деятельности;
• имеется перечень потребностей, которые необходимо удовлетворить;
• известны прототипы программных средств с механизмами, которые в совокупности могли бы удовлетворить имеющиеся потребности, но эти механизмы не связаны в единое целое так, чтобы удовлетворить все имеющиеся потребности.
Теперь необходимо сформулировать цели и определить ограничения на реализацию программного продукта.
Формулировка целей — первый и важнейший этап процесса проектирования. Именно на этом этапе закладываются основы успеха в решении всей задачи. Ошибки в выборе и формулировке цели не могут быть скомпенсированы на последующих этапах. Причина проста — все, что проделывается на последующих этапах разработки, идет от поставленных целей. Следовательно, такие ошибки никакими методами на последующих этапах невозможно скомпенсировать.
Как правило, все ошибки начальных этапов, выявленные на последующих этапах, имеют следующие причины:
1) постановка недостижимой цели;
2) стремление разработчика и постановщика задачи упростить задачу;
3) неумение разработчика выделить из формулировки постановщика отдельно описание проблемы и постановку задачи;
4) не выявленные ограничения.
Ситуации, когда возможна конкуренция целей, должны обязательно выявляться; необходимо согласовать цели так, чтобы наилучшим образом в рамках возможностей, определяемых ограничениями, достигались цели каждого из возможных субъектов (заказчиков). Хорошие цели всегда являются компромиссом между желанием наилучшим образом удовлетворить потребности и ограничениями, накладываемыми реализацией и средствами.