Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Управление проектами и рискамии (ответы).docx
Скачиваний:
8
Добавлен:
03.08.2019
Размер:
72.03 Кб
Скачать
  1. Что такое “концептуальная целостность”? Опишите это своими словами.

Концептуальная целостность - это единообразие стиля и про­стота структуры. Это когда в системе единый набор конструктивных идей, без всяких невзаимосвязанных и несогласованных отдельных необычных возможностей.

Концептуальная целостность, в свою очередь, требует, чтобы проект исходил от одного разработчика, или небольшого числа их, действующих согласованно и в унисон.

Пример такой разработки это «операционная бригада». Когда главный программист берет на себя всю работу по планированию и реализацию.

Отделение разработки архитектуры от реализации является эффективным способом достижения концептуальной целостности при работе над очень большими проектами.

  1. Сильно ли различается производительность программистов? Приведите пример(ы).

Менеджеры программных проектов давно поняли, что хорошие и плохие

программисты очень сильно различаются между собой по производительности.

Однако реально измеренные величины поразительны. В одном из исследований измеряли производительность труда в группе опытных программистов. Внутри одной лишь этой группы

соотношение между лучшими и худшими результатами составило примерно 10:1 по производительности труда и 5:1 по скорости работы программ и требуемой для них памяти! Короче, программист, зарабатывающий 20 тысяч долларов в год, может быть в десять раз продуктивнее программиста, зарабатывающего 10 тысяч долларов.

Правда, возможно и обратное. Полученные данные не выявили какой-либо

корреляции между стажем работы и производительностью. (Я не уверен, что это всегда справедливо.)

  1. Что отличает программу от программного продукта? Программу от программной системы?

А

Программа

А

Программный

комплекс

(интерфейсы, системная интеграция)

А

Программный продукт

(обобщение,

тестирование,

документирование,

сопровождение)

А

Система

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

Есть два способа, которыми программу можно превратить в более полезный, но и более дорогой объект. Эти два способа представлены по краям рисунка.

Программный продукт. При перемещении вниз через горизонтальную границу программа превращается в программный продукт. Это программа, которую любой человек может запускать, тестировать, исправлять и развивать. Она может использоваться в различных операционных средах и со многими наборами данных. Чтобы стать общеупотребительным программным продуктом, программа должна быть написана в обобщенном стиле. В частности, диапазон и вид входных данных должны быть настолько обобщенными, насколько это допускается базовым алгоритмом. Затем программу нужно тщательно протестировать, чтобы быть уверенным в ее надежности. Для этого нужно подготовить достаточное количество контрольных примеров для проверки диапазона допустимых значений входных данных и определения его границ, обработать эти примеры и зафиксировать результаты.

Наконец, развитие программы в программный продукт требует создания подробной документации, с помощью которой каждый мог бы использовать ее, делать исправления и расширять.

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

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