Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТРПО учебное пособие.doc
Скачиваний:
24
Добавлен:
22.08.2019
Размер:
3.13 Mб
Скачать

Контрольные вопросы

1. Этапы разработки программного обеспечения.

2. Анализ требований, предъявляемых к системе.

3. Жизненный цикл программного обеспечения.

4. Функциональные спецификации. Определение спецификаций.

5. Проектирование. Кодирование.

6. Тестирование: программное, системное, оценочное и сравнительное.

7. Сбой системы, выброс, ошибка. Испытания. Верификация системы.

8. Правильность и надежность программ.

9. Эксплуатация и сопровождение. Периоды обновления.

3 Методы разработки программного обеспечения как научная дисциплина

Из приведенного нами обзора этапов разработки программного обеспечения ясно, что каждый этап разработки оказывает влияние на другие более ранние этапы (технология «синтез — анализ»). Так, процесс написания спецификаций оказывает влияние на анализ исходных требований. На этапе проектирования вскрываются ошибки, допущенные в процессе написания спецификаций. На этапах кодирования, тестирования и эксплуатации выявляются проблемы, решить которые можно лишь на этапе проектирования. В связи со всем вышесказанным, основные цели научной дисциплины «методы разработки программного обеспечения» можно сформулировать следующим образом:

1) разработка методов управления сложными системами;

2) повышение надежности и правильности программного обеспечения;

3) развитие методов более точного прогнозирования затрат на создание программного обеспечения.

Совокупность этих проблем разделяется на методы управления разработкой и методы ведения разработки.

Методы управления разработкой имеют отношение к эффективной организации работы исполнителей.

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

3.1 Методы управления разработкой

Руководитель проекта контролирует два основных ресурса — исполнителей и вычислительные средства. Следовательно, его основная цель — оптимизировать эти ресурсы. Успех разработки в сильной степени зависит от того, насколько руководитель следит за ходом разработки. Задержка проекта на год складывается из множества однодневных задержек.

Обычно наибольшие трудности возникают при построении интерфейса между модулями, написанными различными программистами. Поскольку количество таких интерфейсов при N исполнителях соответствует N(N–1)/2 и возрастает пропорционально квадрату числа исполнителей, проблема становится довольно сложной при разработке проекта группой из 4-х и более человек.

Пример. Программист может написать в течение года программу, включающую 5000 строк, а проектируемая система должна содержать 50000 строк, и ее разработка должна быть завершена в течение двух лет. Очевидно, что для создания такой системы достаточно пяти программистов. Однако эти пять программистов должны взаимодействовать друг с другом, а это требует времени и в определенной степени снижает производительность труда, поскольку взаимное непонимание приводит к дополнительным затратам на тестирование (рис. 3.1).

Рис. 3.1 — Для группы из 5 человек имеем 10 взаимосвязей

Пусть каждый из путей взаимодействия обходится программисту в 250 строк/год. В этом случае каждый программист может составить лишь 4000 строк/год, а в течение двух лет будет составлено лишь 40000 строк. Это означает, что для написания программы из 50000 строк нужны 8 программистов, каждый из которых пишет 3250 строк/год (рис. 3.2). Для управления их работой нужен руководитель.

Рис. 3.2 — 8 исполнителей — 28 связей

Однако простой подсчет строк кода не является достоверной оценкой эффективности труда программиста. Учет всех факторов, влияющих на производительность программистов, крайне сложен. Следовательно, необходимо использовать методы и приемы ограничения «коммуникационного взрыва» и увеличения производительности труда программистов.