Лекция: Лекция 8. Технология подготовки и решения задач с помощью компьютера
Сводные сметные расчеты стоимости строительства предприятий, зданий и сооружений составляются на основе объектных сметных расчетов, объектных смет и сметных расчетов на отдельные виды затрат.
Сводные сметные расчеты стоимости строительства рассматриваются как документы, определяющие сметный лимит средств, необходимых для полного завершения строительства всех объектов, предусмотренных проектом. Утвержденный в установленном порядке сводный сметный расчет стоимости строительства служит основанием для определения лимита капитальных вложений и открытия финансирования строительства. Сводные сметные расчеты стоимости строительства рекомендуется составлять и утверждать отдельно на производственное и непроизводственное строительство.
В ССР включаются отдельными строками итоги по всем объектным сметам без сумм на покрытие лимитированных затрат, а также сметным расчетам на отдельные виды затрат.
Сметная стоимость каждого объекта, предусмотренного проектом, распределяется по графам, обозначающим сметную стоимость «строительных работ», «Монтажных работ» «оборудования, мебели и инвентаря», «прочих затрат» и «общая сметная стоимость».
Сводный сметный расчет на строительство составляется в текущем уровне цен.
К сводному сметному расчету, представляемому на утверждение в составе проекта, составляется пояснительная записка, в которой приводятся:
· месторасположение строительства;
· перечень каталогов сметных нормативов, принятых для составления смет на строительство;
· наименование генеральной подрядной организации (в случае, если она известна);
· нормы накладных расходов, норматив сметной прибыли;
· особенности определения сметной стоимости строительных работ для данной стройки;
· особенности определения сметной стоимости оборудования и его монтажа для данной стройки;
· особенности определения для данной стройки средств по главам 8 — 12 сводного сметного расчета;
· расчет распределения средств по направлениям капитальных вложений (для жилищно-гражданского строительства);
· другие сведения о порядке определения стоимости, характерные для данной стройки, а также ссылки на соответствующие решения органов государственной власти по вопросам, связанным с ценообразованием и льготами для конкретного строительства.
В сводных сметных расчетах стоимости производственного и жилищно-гражданского строительства средства рекомендуется распределять по следующим главам:
1. «Подготовка территории строительства».
2. «Основные объекты строительства».
3. «Объекты подсобного и обслуживающего назначения».
4. «Объекты энергетического хозяйства»*.
5. «Объекты транспортного хозяйства и связи»*.
6. «Наружные сети и сооружения водоснабжения, канализации, теплоснабжения и газоснабжения».
7. «Благоустройство и озеленение территории».
8. «Временные здания и сооружения».
9. «Прочие работы и затраты».
10. «Содержание службы заказчика-застройщика (технического надзора) строящегося предприятия».
11. «Подготовка эксплуатационных кадров»*.
12. «Проектные и изыскательские работы, авторский надзор».
В случае отсутствия объектов, работ и затрат, предусматриваемых соответствующей главой сводного сметного расчета, эта глава пропускается без изменения номеров последующих глав.
В главу 1 «Подготовка территории строительства» включаются средства на работы и затраты, связанные с отводом и освоением застраиваемой территории. К этим работам и затратам относятся:
· отвод земельного участка, выдача архитектурно-планировочного задания и выделение красных линий застройки (определяются на основе расчета);
· разбивка основных осей зданий и сооружений и закрепление их пунктами и знаками;
· освобождение территории строительства от имеющихся на ней строений, лесонасаждений, промышленных отвалов и других мешающих предметов, переселение жильцов из сносимых домов, перенос и переустройство инженерных сетей, коммуникаций, сооружений, путей и дорог, снятие и хранение плодородного слоя почвы и т.п.;
· компенсация стоимости сносимых (переносимых) строений и насаждений, принадлежащих организациям и (или) физическим лицам;
· осушение территории стройки, проведение на ней других мероприятий, связанных с прекращением или изменением условий водопользования, а также с защитой окружающей среды и ликвидацией неблагоприятных условий строительства;
· затраты на разминирование территории строительства в районах бывших боевых действий;
· плата за аренду земельного участка, предоставляемого на период проектирования и строительства объекта;
· приведение земельных участков,
· предоставленных во временное пользование на период строительства, в состояние, пригодное для использования в сельском, лесном, рыбном хозяйстве, или для других целей в соответствии с проектом восстановления (рекультивации) нарушенных земель;
· плата за землю при изъятии (выкупе) земельного участка для строительства, а также выплата земельного налога (аренды) в период строительства;
· затраты, связанные с оплатой работ (услуг), выполняемых коммунальными и эксплуатационными организациями, по выдаче исходных данных на проектирование, технических условий и требований на присоединение проектируемых объектов к инженерным сетям и коммуникациям общего пользования, а также по проведению необходимых согласований проектных решений;
· затраты, связанные с выполнением по требованию органов местного самоуправления исполнительной контрольной съемки построенных инженерных сетей;
· затраты, связанные с выполнением археологических раскопок в пределах строительной площадки;
· возмещение собственникам земельных участков, землепользователям, землевладельцам и арендаторам земельных участков убытков, причиненных изъятием или временным занятием земельных участков, ограничением прав собственников земельных участков, землепользователей, землевладельцев и арендаторов земельных участков, либо ухудшением качества земель в результате деятельности других лиц.
Стоимость работ, включаемая в главу 1, определяется на основе проектных объемов и действующих норм и расценок.
В главу 2 «Основные объекты строительства» включается сметная стоимость зданий, сооружений и видов работ основного производственного назначения.
В главу 3 «Объекты подсобного и обслуживающего назначения» включается сметная стоимость объектов подсобного и обслуживающего назначения:
· для промышленного строительства — здания ремонтно-технических мастерских, заводоуправлений, эстакады, галереи, складские помещения и др.;
· для жилищно-гражданского строительства — хозяйственные корпуса, проходные, теплицы в больничных и научных городках, мусоросборники и др., а также стоимость зданий и сооружений культурно-бытового назначения, предназначенных для обслуживания работающих (отдельно стоящие поликлиники, столовые, магазины, объекты бытового обслуживания населения, другие объекты), расположенные в пределах территории, отведенной для строительства предприятий.
В главу 4 «Объекты энергетического хозяйства» включают сметную стоимость зданий электроподстанций, трансформаторных подстанций и киосков, линий электроснабжения.
В главе 5 «Объекты транспортного хозяйства и связи» показывают сметную стоимость строительства автомобильных дорог, гаражей, стоянок автомашин, железнодорожных и подъездных путей к предприятиям, внутризаводских путей, депо, мастерских, складов, резервуаров, морских и речных причалов (при сооружении в составе предприятий) и др. В эту главу включают также стоимость устройства всех видов связи (абонентской, диспетчерской и др.): здания для размещения устройств связи и наружные кабельные сети.
В главе 6 «Наружные сети и сооружения водопровода, канализации, теплоснабжения и газоснабжения» приводится сметная стоимость прокладки наружных инженерных сетей и возведения зданий котельных, насосных станций, центрального теплового пункта, очистных сооружений и др.
В главу 7 «Благоустройство и озеленение территории» включают сметную стоимость работ по вертикальной планировке территории (предприятия, жилого дома, квартала, городских улиц и площадей), устройству дорожек, спортивных и игровых площадок, малых архитектурных форм, ограждения и освещения, озеленения территории.
В главах 4 — 7 включаются объекты, перечень которых соответствует наименованиям глав.
Глава 8 «Временные здания и сооружения».
Особенностью строительного производства является использование временных зданий и сооружений, возводимых на строительных площадках на период строительства объектов.
К временным зданиям и сооружениям относятся специально возводимые или приспособляемые на период строительства производственные, складские, вспомогательные, жилые и общественные здания и сооружения, необходимые для производства строительно-монтажных работ и обслуживания работников строительства.
Временные здания и сооружения подразделяются на титульные (для обеспечения нужд строительства в целом) и нетитульные (для обеспечения нужд отдельного объекта, учитываемые в составе накладных расходов).
Размер средств, предназначенных для возведения титульных зданий и сооружений может определяться:
· по расчету, основанному на данных ПОС в соответствии с необходимым набором титульных временных зданий и сооружений;
· по нормам, приведенным в Сборнике сметных норм затрат на строительство временных зданий и сооружений ГСН 81-05-01-2001 и ГСНр 81-05-01-2001), в процентах от сметной стоимости строительных (ремонтно-строительных) и монтажных работ по итогам глав 1-7 (1-5) сводного сметного расчета и дополнительными затратами не учтенными сметными нормами.
Определенная одним из вышеуказанных способов сумма средств включается в графы 4, 5 и 8
В главу 9 «Прочие работы и затраты» сводного сметного расчета на строительство рекомендуется включать средства на основные виды прочих работ и затрат в текущем уровне цен.
| № п.п. | Наименование глав, Работ и затрат | Порядок определения и обоснования стоимости прочих работ и затрат в текущем уровне цен (ссылки на законодательные и нормативные документы) |
| Глава 1. Подготовка территории строительства | ||
| Оформление земельного участка и разбивочные работы | ||
| 1.1 | Затраты по отводу земельного участка, выдаче архитектурно-планировочного задания и выделению красных линий застройки | Определяются на основе расчета (графы 7 и 8) |
| 1.2 | Затраты по разбивке основных осей зданий и сооружений, переносу их в натуру и закреплению пунктами и знаками. | Определяются на основе сборников и справочников базовых цен на изыскательские работы для строительства и индексов цен изменения стоимости (графы 7 и 8) |
| 1.3 | Плата за землю при изъятии (выкупе) земельного участка для строительства, а также выплата земельного налога (аренды) в период строительства | Определяется расчетом в соответствии с действующим законодательством (графы 7 и 8) |
| 1.4 | Затраты, связанные с получением заказчиком и проектной организацией исходных данных, технических условий на проектирование и проведение необходимых согласований по проектным решениям, а также выполнением по требованию органов местного самоуправления исполнительной контрольной съемки построенных инженерных сетей | Определяются на основании расчетов и цен на эти услуги (кроме услуг, оказываемых органами местного самоуправления, государственного надзора и другими заинтересованными организациями, находящимися на бюджетном финансировании), (графы 7 и 8) |
| 1.5 | Затраты по разминированию территории строительства в районах бывших боевых действий | Определяются на основании расчетов и цен на эти услуги (графы 7 и 8) |
| 1.6 | Затраты, связанные с выполнением археологических раскопок в пределах строительной площадки | Определяется на основании расчетов на эти услуги (графы 7 и 8) |
| 1.7 | Плата за аренду земельного участка, предоставляемого на период проектирования и строительства объекта | Определяется на основании расчета с учетом ставок за аренду земельного участка, устанавливаемых местной администрацией (графы 7 и 8) |
| Освоение территории строительства | ||
| 2.1 | Затраты, связанные с компенсацией за сносимые строения и садово-огородные насаждения, посев, вспашку и другие сельскохозяйственные работы, ущерба, наносимого природной среде, произведенные на отчуждаемой территории, возмещением убытков и потерь, по переносу зданий и сооружений (или строительству новых зданий и сооружений взамен сносимых), по возмещению убытков, причиняемых проведением водохозяйственных мероприятий, прекращением или изменением условий водопользования, по возмещению потерь сельскохозяйственного производства при отводе земель | Определяются на основе расчетов исходя из положений, приведенных в постановлении Правительства Российской Федерации от 07.05.03 № 262 «Об утверждении правил возмещения собственникам земельных участков, землепользователям, землевладельцам и арендаторам земельных участков убытков, причиненных изъятием или временным занятием земельных участков, ограничением прав собственников земельных участков, землепользователей, землевладельцев и арендаторов земельных участков, либо ухудшением качества земель в результате деятельности других лиц», (графы 4, 7 и 8) |
| 2.2 | Затраты, связанные с неблагоприятными гидрогеологическими условиями территории строительства и необходимостью устройства объездов для городского транспорта | Определяются сметными расчетами на основании ПОС (графы 4, 5, 7 и 8) |
| Глава 9. Прочие работы и затраты | ||
| 9.1 | Дополнительные затраты при производстве строительно-монтажных (ремонтно-строительных) работ в зимнее время | Определяются от стоимости строительно-монтажных работ по итогу глав 1-8 на основе ГСН 81-05-02-2001 или от стоимости ремонтно-строительных работ по итогу глав 1 — 6 на основе сметных норм: ГСН 81-05-01-2001 с К = 0,8 на объектах промышленного строительства и ГСНр 81-05-02-2001 на объектах жилищно-гражданского назначения (графы 4, 5 и 8) |
| 9.2 | Затраты на содержание действующих постоянных автомобильных дорог и восстановление их после окончания строительства | Определяются локальным сметным расчетом на основе ПОС в соответствии с проектными объемами работ по расценкам сборника № 27 «Автомобильные дороги» (графы 4 и 8) |
| 9.3 | Затраты по перевозке автомобильным транспортом работников строительных и монтажных организаций или компенсация расходов по организации специальных маршрутов городского пассажирского транспорта | Определяются расчетами на основе ПОС с учетом обосновывающих данных транспортных предприятий (графы 7 и 8) |
| 9.4 | Затраты, связанные с осуществлением работ вахтовым методом (за исключением вахтовой надбавки к тарифной ставке, учитываемой в локальных сметах) | Определяются расчетами на основе ПОС, которые должны учитывать затраты на содержание и эксплуатацию вахтовых поселков, перевозку вахтовых рабочих до места вахты и оплату суточных в период нахождения в пути (графы 7 и 8) |
| 9.5 | Затраты, связанные с использованием военно-строительных частей, студенческих отрядов и других контингентов (организованный набор рабочих) | То же |
| 9.6 | Затраты, связанные с командированием рабочих для выполнения строительных, монтажных и специальных строительных работ | Определяются расчетами на основании ПОС, исходя из постановления Правительства Российской Федерации от 02.10.02 № 729 (графы 7 и 8) Если перевозка работников осуществляется собственным или арендованным транспортом строительной организации, затраты на проезд в командировочные расходы не включаются, а учитываются п. 9.3 |
| 9.7 | Затраты, связанные с перебазированием строительно-монтажных организаций с одной стройки на другую | Определяются расчетами на основании ПОС (графы 7 и 8) |
| 9.8 | Затраты, связанные с премированием за ввод в действие построенных объектов | Определяются расчетом от итога по графам 4 и 5 сводного сметного расчета (графы 7 и 8) |
| 9.9 | Средства на покрытие затрат строительных организаций по добровольному страхованию работников и имущества, в том числе строительных рисков | Определяются расчетом, согласно статей 255, 263 Налогового кодекса РФ, но не более 3 % от итогов глав 1 — 8 сводного сметного расчета, (графы 7 и 8) |
| 9.11 | Средства на организацию и проведение подрядных торгов (тендеров) | Определяются на основании расчетов по видам затрат (графы 7 и 8) |
| 9.13 | Затраты на проведение специальных мероприятий по обеспечению нормальных условий труда (борьба с радиоактивностью, силикозом, малярией, энцефалитным клещом, гнусом и др.) | Определяются расчетами на основании ПОС (графы 7 и 8) |
| 9.14 | Затраты по содержанию горноспасательной службы | Принимаются на основе нормативов, утвержденных в установленном порядке (графы 7 и 8) |
| 9.15 | Затраты на проведение пусконаладочных работ | Включаются затраты на проведение пусконаладочных работ «вхолостую». Размер средств определяется на основании смет на пусконаладочные работы (графы 7 и 8) |
| Глава 10. Содержание службы заказчика-застройщика (технического надзора) строительства | ||
| 10.1 | Содержание дирекции (технического надзора) строящегося предприятия | Определяется по установленным нормативам (графы 7 и 8) |
| Глава 12. Проектные и изыскательские работы, авторский надзор | ||
| 12.1 | Проектные работы | Стоимость определяется расчетами на основе сборников базовых цен на проектные работы с применением индексов изменения стоимости (графы 7 и 8) |
| 12.2 | Изыскательские работы | Стоимость определяется расчетами на основе сборника и справочников базовых цен на изыскательские работы для строительства и индексов изменения стоимости (графы 7 и 8) |
| 12.3 | Авторский надзор | Стоимость определяется расчетом (графы 7 и 8) в пределах 0,2 % от итога по главам 1 — 9 сводного сметного расчета стоимости строительства |
| 12.4 | Экспертиза предпроектной и проектной документации | Стоимость определяется по нормативам, от стоимости проектных и изыскательских работ (графы 7 и 8) |
| 12.5 | Разработка тендерной документации | Стоимость определяется расчетами по согласованию с заказчиком (графы 7 и 8) |
| 12.6 | Средства, связанные с испытанием свай, проводимых подрядной организацией в период разработки проектной документации по техническому заданию заказчика строительства | Средства определяются сметным расчетом на основании проектных данных и сборников сметных норм и расценок, в котором учитывают затраты на приобретение свай, их транспортировку и погружение в основание, устройство приспособлений для нагрузки, испытание свай в грунте динамической или статической нагрузками, осуществление технического руководства и наблюдения в период испытаний, обработку данных испытаний и другие связанные с этим затраты в текущем (прогнозном) уровне цен на строительные конструкции и работы с начислением накладных расходов и сметной прибыли. Эти средства включаются в графы 4 и 8 сводного сметного расчета на строительство. |
| За итогом вышеперечисленных глав | ||
| Возвратные суммы | Определяются расчетами, учитывающими реализацию материалов и деталей, полученных от разборки временных зданий и сооружений, сносимых и переносимых зданий и сооружений, разбираемых конструкций и т.п. (графы 7 и 8) | |
| Затраты, связанные с уплатой налога на добавленную стоимость (НДС) | Принимаются в соответствии с действующим законодательством Российской Федерации (графы 4 — 8) |
Резерв средств на непредвиденные работы и затраты
В сводный сметный расчет стоимости строительства включается резерв средств на непредвиденные работы и затраты, предназначенный для возмещения стоимости работ и затрат, потребность в которых возникает в процессе разработки рабочей документации или в ходе строительства в результате уточнения проектных решений или условий строительства по объектам (видам работ), предусмотренным в утвержденном проекте.
Резерв средств на непредвиденные работы и затраты определяется от итога глав 1 — 12 и показывается отдельной строкой с распределением по графам 4-8, в зависимости от стадии проектирования.
Резерв средств может определяться в размере не более 2 % для объектов социальной сферы и не более 3 % — для объектов производственного назначения.
По уникальным и особо сложным объектам строительства размер средств на непредвиденные работы и затраты может быть установлен в размере до 10 % по согласованию с соответствующим уполномоченным федеральным органом исполнительной власти в области строительства.
Резерв средств на непредвиденные работы и затраты предназначен для компенсации дополнительных затрат, связанных с:
— уточнением объемов работ по рабочим чертежам, разработанным после утверждения проекта (рабочего проекта);
— ошибками в сметах, включая арифметические, выявленных после утверждения проектной документации;
— изменениями проектных решений в рабочей документации и т.д.
При расчетах за выполненные работы по договорам с установленной твердой договорной ценой, резерв средств на непредвиденные работы и затраты в актах приемки выполненных работ не расшифровывается и оплачиваются заказчиком по норме согласованной при формировании договорной цены.
Средства, предусматриваемые за итогом сводного сметного расчета
Затраты на проведение пусконаладочных работ «вхолостую» включаются в главу 9 «Прочие работы и затраты» (графы 7 и 8) сводного сметного расчета.
Пусконаладочные работы «под нагрузкой», как расходы некапитального характера, могут относиться на сметную стоимость, которая будет производиться (оказываться) при эксплуатации построенных объектов, и в сметной документации на строительство, как правило, не предусматривается.
Лекция 8. Технология подготовки и решения задач с помощью компьютера
8.1. Какие этапы включает в себя решение задач с помощью компьютера?
Решение задач с помощью компьютера включает в себя следующие основные этапы, часть из которых осуществляется без участия компьютера.
- Постановка задачи:
- сбоp инфоpмации о задаче;
- фоpмулиpовка условия задачи;
- опpеделение конечных целей pешения задачи;
- определение формы выдачи результатов;
- описание данных (их типов, диапазонов величин, структуры и т.п. ).
- анализ существующих аналогов;
- анализ технических и программных средств;
- pазpаботка математической модели;
- разработка структур данных.
- выбор метода проектирования алгоритма;
- выбор формы записи алгоритма (блок-схемы, псевдокод и др.);
- выбоp тестов и метода тестиpования;
- проектирование алгоритма.
- выбор языка программирования;
- уточнение способов организации данных;
- запись алгоpитма на выбpанном языке пpогpаммиpования.
- синтаксическая отладка;
- отладка семантики и логической стpуктуpы;
- тестовые pасчеты и анализ pезультатов тестиpования;
- совершенствование пpогpаммы.
- доработка программы для решения конкретных задач;
- составление документации к pешенной задаче, к математической модели, к алгоpитму, к пpогpамме, к набору тестов, к использованию.
8.2. Что называют математической моделью?
| Математическая модель — это система математических соотношений — формул, уравнений, неравенств и т.д., отражающих существенные свойства объекта или явления. |
Всякое явление природы бесконечно в своей сложности. Проиллюстрируем это с помощью примера, взятого из книги В.Н. Тростникова «Человек и информация» (Издательство «Наука», 1970).
… Обыватель формулирует математику задачу следующим образом: «Сколько времени будет падать камень с высоты 200 метров?» Математик начнет создавать свой вариант задачи приблизительно так: «Будем считать, что камень падает в пустоте и что ускорение силы тяжести 9,8 метра в секунду за секунду. Тогда ...»
— Позвольте, — может сказать «заказчик», — меня не устраивает такое упрощение. Я хочу знать точно, сколько времени будет падать камень в реальных условиях, а не в несуществующей пустоте.
— Хорошо, — согласится математик. — Будем считать, что камень имеет сферическую форму и диаметр… Какого примерно он диаметра?
— Около пяти сантиметров. Но он вовсе не сферический, а продолговатый.
— Тогда будем считать, что он имеет форму эллипсоида с полуосями четыре, три и три сантиметра и что он падает так, что большая полуось все время остается вертикальной. Давление воздуха примем равным 760 мм ртутного столба, отсюда найдем плотность воздуха...
Если тот, кто поставил задачу на «человеческом» языке не будет дальше вмешиваться в ход мысли математика, то последний через некоторое время даст численный ответ. Но «потребитель» может возражать по-прежнему: камень на самом деле вовсе не эллипсоидальный, давление воздуха в том месте и в тот момент не было равно 760 мм ртутного столба и т.д. Что же ответит ему математик?
Он ответит: «Точное решение реальной задачи вообще невозможно. Мало того, что форму камня, которая влияет на сопротивление воздуха, невозможно описать никаким математическим уравнением; его вращение в полете также неподвластно математике из-за своей сложности. Далее, воздух не является однородным, так как в результате действия случайных факторов в нем возникают флуктуации колебания плотности. Если пойти ещё глубже, нужно учесть, что по закону всемирного тяготения каждое тело действует на каждое другое тело. Отсюда следует, что даже маятник настенных часов изменяет своим движением траекторию камня.
Короче говоря, если мы всерьез захотим точно исследовать поведение какого-либо предмета, то нам предварительно придется узнать местонахождение и скорость всех остальных предметов Вселенной. А это, разумеется, невозможно ....
Чтобы описать явление, необходимо выявить самые существенные его свойства, закономерности, внутренние связи, роль отдельных характеристик явления. Выделив наиболее важные факторы, можно пренебречь менее существенными.
Наиболее эффективно математическую модель можно реализовать на компьютере в виде алгоритмической модели — так называемого „вычислительного эксперимента“ (см. [1], параграф 26).
Конечно, результаты вычислительного эксперимента могут оказаться и не соответствующими действительности, если в модели не будут учтены какие-то важные стороны действительности.
Итак, создавая математическую модель для решения задачи, нужно:
- выделить предположения, на которых будет основываться математическая модель;
- определить, что считать исходными данными и результатами;
- записать математические соотношения, связывающие результаты с исходными данными.
При построении математических моделей далеко не всегда удается найти формулы, явно выражающие искомые величины через данные. В таких случаях используются математические методы, позволяющие дать ответы той или иной степени точности.
Существует не только математическое моделирование какого-либо явления, но и визуально-натурное моделирование, которое обеспечивается за счет отображения этих явлений средствами машинной графики, т.е. перед исследователем демонстрируется своеобразный „компьютерный мультфильм“, снимаемый в реальном масштабе времени. Наглядность здесь очень высока.
8.3. Какие основные этапы содержит процесс разработки программ?
Процесс разработки программы можно выразить следующей формулой:
На начальном этапе работы анализируются и формулируются требования к программе, разрабатывается точное описание того, что должна делать программа и каких результатов необходимо достичь с ее помощью.
Затем программа разрабатывается с использованием той или иной технологии программирования (например, структурного программирования).
Полученный вариант программы подвергается систематическому тестированию — ведь наличие ошибок в только что разработанной программе это вполне нормальное закономерное явление. Практически невозможно составить реальную (достаточно сложную) программу без ошибок. Нельзя делать вывод, что программа правильна, лишь на том основании, что она не отвергнута машиной и выдала результаты. Все, что достигнуто в этом случае, это получение каких-то результатов, не обязательно правильных. В программе при этом может оставаться большое количество логических ошибок. Ответственные участки программы проверяются с использованием методов доказательства правильности программ.
Для каждой программы обязательно проводятся работы по обеспечению качества и эффективности программного обеспечения, анализируются и улучшаются временные характеристики.
8.4. Как проконтролировать текст программы до выхода на компьютер?
Текст программы можно проконтролировать за столом с помощью просмотра, проверки и прокрутки.
- Просмотр. Текст программы просматривается на предмет обнаружения описок и расхождений с алгоритмом. Нужно просмотреть организацию всех циклов, чтобы убедиться в правильности операторов, задающих кратности циклов. Полезно посмотреть еще раз условия в условных операторах, аргументы в обращениях к подпрограммами т.п.
- Проверка. При проверке программы программист по тексту программы мысленно старается восстановить тот вычислительный процесс, который определяет программа, после чего сверяет его с требуемым процессом. На время проверки нужно »забыть", что должна делать программа, и «узнавать» об этом по ходу её проверки. Только после окончания проверки программы можно «вспомнить» о том, что она должна делать и сравнить реальные действия программы с требуемыми.
- Прокрутка. Основой прокрутки является имитация программистом за столом выполнения программы на машине. Для выполнения прокрутки приходится задаваться какими-то исходными данными и производить над ними необходимые вычисления. Прокрутка — трудоемкий процесс, поэтому ее следует применять лишь для контроля логически сложных участков программ. Исходные данные должны выбираться такими, чтобы в прокрутку вовлекалось большинство ветвей программы.
8.5. Для чего нужны отладка и тестирование?
| Отладка программы — это процесс поиска и устранения ошибок в программе, производимый по результатам её прогона на компьютере. Тестирование (англ. test — испытание) — это испытание, проверка правильности работы программы в целом, либо её составных частей. |
Отладка и тестирование — это два четко различимых и непохожих друг на друга этапа:
- при отладке происходит локализация и устранение синтаксических ошибок и явных ошибок кодирования;
- в процессе же тестирования проверяется работоспособность программы, не содержащей явных ошибок.
| Тестирование устанавливает факт наличия ошибок, а отладка выясняет ее причину. |
Английский термин debugging ("отладка") буквально означает "вылавливание жучков". Термин появился в 1945 г., когда один из первых компьютеров — «Марк-1» прекратил работу из-за того, что в его электрические цепи попал мотылек и заблокировал своими останками одно из тысяч реле машины.
8.6. В чем заключается отладка?
В современных программных системах (Turbo Basic, Turbo Pascal, Turbo C и др.) отладка осуществляется часто с использованием специальных программных средств, называемых отладчиками. Эти средства позволяют исследовать внутреннее поведение программы.
Программа-отладчик обычно обеспечивает следующие возможности:
- пошаговое исполнение программы с остановкой после каждой команды (оператора);
- просмотр текущего значения любой переменной или нахождение значения любого выражения, в том числе, с использованием стандартных функций; при необходимости можно установить новое значение переменной;
- установку в программе «контрольных точек», т.е. точек, в которых программа временно прекращает свое выполнение, так что можно оценить промежуточные результаты, и др.
При отладке программ важно помнить следующее:
- в начале процесса отладки надо использовать простые тестовые данные;
- возникающие затруднения следует четко разделять и устранять строго поочередно;
- не нужно считать причиной ошибок машину, так как современные машины и трансляторы обладают чрезвычайно высокой надежностью.
8.7. Что такое тест и тестирование?
Как бы ни была тщательно отлажена программа, решающим этапом, устанавливающим ее пригодность для работы, является контроль программы по результатам ее выполнения на системе тестов.
| Программу условно можно считать правильной, если её запуск для выбранной системы тестовых исходных данных во всех случаях дает правильные результаты. |
Но, как справедливо указывал известный теоретик программирования Э. Дейкстра, тестирование можетпоказать лишь наличие ошибок, но не их отсутствие. Нередки случаи, когда новые входные данные вызывают «отказ» или получение неверных результатов работы программы, которая считалась полностью отлаженной.
Для реализации метода тестов должны быть изготовлены или заранее известны эталонные результаты.
| Вычислять эталонные результаты нужно обязательно до, а не после получения машинных результатов. |
В противном случае имеется опасность невольной подгонки вычисляемых значений под желаемые, полученные ранее на машине.
8.8. Какими должны быть тестовые данные?
Тестовые данные должны обеспечить проверку всех возможных условий возникновения ошибок:
- должна быть испытана каждая ветвь алгоритма;
- очередной тестовый прогон должен контролировать нечто такое, что еще не было проверено на предыдущих прогонах;
- первый тест должен быть максимально прост, чтобы проверить, работает ли программа вообще;
- арифметические операции в тестах должны предельно упрощаться для уменьшения объема вычислений;
- количества элементов последовательностей, точность для итерационных вычислений, количество проходов цикла в тестовых примерах должны задаваться из соображений сокращения объема вычислений;
- минимизация вычислений не должна снижать надежности контроля;
- тестирование должно быть целенаправленным и систематизированным, так как случайный выбор исходных данных привел бы к трудностям в определении ручным способом ожидаемых результатов; кроме того, при случайном выборе тестовых данных могут оказаться непроверенными многие ситуации;
- усложнение тестовых данных должно происходить постепенно.
Пример. Система тестов для задачи нахождения корней квадратного уравнения ax2 + bx + c = 0:
| Номер теста | Проверяемый случай | Коэффициенты | Результаты |
| a | b | c | |
| d >0 | -2 | x1 = 1, x2 = — 2 | |
| d=0 | Корни равны: x1 = — 1, x2 = — 1 | ||
| d < 0 | Действительных корней нет | ||
| a=0, b=0, c=0 | Все коэффициенты равны нулю. х — любое число. | ||
| a=0, b=0, c<>0 | Неправильное уравнение | ||
| a=0, b<>0 | Линейное уравнение. Один корень: x = — 0,5 | ||
| a <> 0, b <> 0, с = 0 | x1 = 0, x2 = — 0,5 |
8.9. Из каких этапов состоит процесс тестирования?
Процесс тестирования можно разделить на три этапа.
1. Проверка в нормальных условиях. Предполагает тестирование на основе данных, которые характерны для реальных условий функционирования программы.
2. Проверка в экстремальных условиях. Тестовые данные включают граничные значения области изменения входных переменных, которые должны восприниматься программой как правильные данные. Типичными примерами таких значений являются очень маленькие или очень большие числа и отсутствие данных. Еще один тип экстремальных условий — это граничные объемы данных, когда массивы состоят из слишком малого или слишком большого числа элементов.
3. Проверка в исключительных ситуациях. Проводится с использованием данных, значения которых лежат за пределами допустимой области изменений. Известно, что все программы разрабатываются в расчете на обработку какого-то ограниченного набора данных. Поэтому важно получить ответ на следующие вопросы:
— что произойдет, если программе, не расчитанной на обработку отрицательных и нулевых значений переменных, в результате какой-либо ошибки придется иметь дело как раз с такими данными?
— как будет вести себя программа, работающая с массивами, если количество их элементов певысит величину, указанную в объявлении массива?
— что произойдет, если числа будут слишком малыми или слишком большими?
Наихудшая ситуация складывается тогда, когда программа воспринимает неверные данные как правильные и выдает неверный, но правдоподобный результат.
Программа должна сама отвергать любые данные, которые она не в состоянии обрaбатывать правильно.
8.10. Каковы характерные ошибки программирования?
Ошибки могут быть допущены на всех этапах решения задачи — от ее постановки до оформления. Разновидности ошибок и соответствующие примеры приведены в таблице:
| Вид ошибки | Пример |
| Неправильная постановка задачи | Правильное решение неверно сформулированной задачи |
| Неверный алгоритм | Выбор алгоритма, приводящего к неточному или эффективному решению задачи |
| Ошибка анализа | Неполный учет ситуаций, которые могут возникнуть; логические ошибки |
| Семантические ошибки | Непонимание порядка выполнения оператора |
| Синтаксические ошибки | Нарушение правил, определяемых языком программирования |
| Ошибки при выполнении операций | Слишком большое число, деление на ноль, извлечение квадратного корня из отрицательного числа и т. п. |
| Ошибки в данных | Неудачное определение возможного диапазона изменения данных |
| Опечатки | Перепутаны близкие по написанию символы, например, цифра 1 и буквы I, l |
| Ошибки ввода-вывода | Неверное считывание входных данных, неверное задание форматов данных |
8.11. Является ли отсутствие синтаксических ошибок свидетельством правильности программы?
Обычно синтаксические ошибки выявляются на этапе трансляции. Многие же другие ошибки транслятору выявить невозможно, так как транслятору неизвестны замыслы программиста.
| Отсутствие сообщений машины о синтаксических ошибках является необходимым, но не достаточным условием, чтобы считать программу правильной. |
Примеры синтаксических ошибок:
- пропуск знака пунктуации;
- несогласованность скобок;
- неправильное формирование оператора;
- неверное образование имен переменных;
- неверное написание служебных слов;
- отсутствие условий окончания цикла;
- отсутствие описания массива и т.п.
8.12. Какие ошибки не обнаруживаются транслятором?
Существует множество ошибок, которые транслятор выявить не в состоянии, если используемые в программе операторы сформированы верно. Приведем примеры таких ошибок.
Логические ошибки:
- неверное указание ветви алгоритма после проверки некоторого условия;
- неполный учет возможных условий;
- пропуск в программе одного или более блоков алгоритма.
Ошибки в циклах:
- неправильное указание начала цикла;
- неправильное указание условий окончания цикла;
- неправильное указание числа повторений цикла;
- бесконечный цикл.
Ошибки ввода-вывода; ошибки при работе с данными:
- неправильное задание тип данных;
- организация считывания меньшего или большего объёма даных, чем требуется;
- неправильное редактирование данных.
Ошибки в использовании переменных:
- использование переменных без указания их начальных значений;
- ошибочное указание одной переменной вместо другой.
Ошибки при работе с массивами:
- массивы предварительно не обнулены;
- массивы неправильно описаны;
- индексы следуют в неправильном порядке.
Ошибки в арифметических операциях:
- неверное указание типа переменной (например, целочисленного вместо вещественного);
- неверное определение порядка действий;
- деление на нуль;
- извлечение квадратного корня из отрицательного числа;
- потеря значащих разрядов числа.
Все эти ошибки обнаруживаются с помощью тестирования.
8.13. В чем заключается сопровождение программы?
| Сопровождение программ — это работы, связанные с обслуживанием программ в процессе их эксплуатации. |
Многократное использование разработанной программы для решения различных задач заданного класса требует проведения следующих дополнительных работ:
- исправление обнаруженных ошибок;
- модификация программы для удовлетворения изменяющихся эксплуатационных требований;
- доработка программы для решения конкретных задач;
- проведениe дополнительных тестовых просчетов;
- внесение исправлений в рабочую документацию;
- усовершенствование программы и т.д.
Применительно ко многим программам работы по сопровождению поглощают более половины затрат, приходящихся на весь период времени существования программы (начиная от выработки первоначальной концепции и кончая моральным ее устареванием) в стоимостном выражении.
Программа, предназначеная для длительной эксплуатации, должна иметь соответствующую документацию и инструкцию по её использованию.
Вопросы для самоконтроля
8.1. Какие основные этапы включает в себя решение задач на компьютере?
8.2. Какие этапы компьютерного решения задач осуществляются без участия компьютера?
8.3. Что называют математической моделью объекта или явления?
8.4. Почему невозможно точное исследование поведения объектов или явлений?
8.5. Какие способы моделирования осуществляются с помощью компьютера?
8.6. Из каких последовательных действий состоит процесс разработки программы?
8.7. Доказывает ли получение правдоподобного результата правильность программы?
8.8. Какие ошибки могут остаться невыявленными, если не провести проверку (просмотр, прокрутку) программы?
8.9. Чем тестирование программы отличается от её отладки?
8.10. Каким образом программа-отладчик помогает исследовать поведение программы в процессе её выполнения?
8.11. Как следует планировать процесс отладки программы?
8.12. Можно ли с помощью тестирования доказать правильность программы?
8.13. На какой стадии работы над программой вычисляются эталонные результаты тестов?
8.14. Назовите основные этапы процесса тестирования.
8.15. В чём заключается отличие синта ксических ошибок от семантических?
8.16. О чём свидетельствует отсутствие сообщений машины о синтаксических ошибках?
8.17. Какие разновидности ошибок транслятор не в состоянии обнаружить?
8.18. Для чего программам требуется сопровождение?