- •Содержание (Технология программирования)
- •2. Определение алгоритма. Пример алгоритма. Пять основных свойств алгоритма. Сущность алгоритмизации.
- •3. Понятие алгоритмического языка. Основные достоинства и недостатки программирования на алгоритмическом языке
- •4. Языки программирования высокого уровня. Поколения и топология языков программирования высокого уровня с примерами (по г. Бучу).
- •5. Интерпретаторы и компиляторы. «За» и «против». Структура. Понятие Байт-кода (p-Code) в языке Java. Языки 4gl.
- •6. Транслятор. Редактор связей. Загрузчик. Назначение и принципы функционирования.
- •7. Понятие исходного, объектного, загрузочного модулей. Назначение.
- •8. Понятие программы, подпрограммы, функции. Способы передачи и возврата параметров в подпрограммы и функции.
- •9. Основные принципы структурного программирования.
- •10. Модели управления в программных системах: централизованное управление, управление, основанное на событиях.
- •11. Структура событийно-управляемой программы для платформы Win32
- •25. Понятие интерфейса. Язык описания интерфейсов idl (midl).
- •26. Стандартная библиотека шаблонов stl. Основные концепции: контейнер, алгоритм, итератор, поток.
- •27. Представление в машине символьной информации. Кодировки ascii, mbcs, ansi, Unicode. Строки ascii-z, Pascal, bstr.
- •28. Признаки сложных систем согласно общей теории систем. Примеры систем (выделить в них признаки).
- •29. Сложность, присущая программному обеспечению. Составляющие сложности программного обеспечения по ф. Бруксу.
- •3 0. Эволюция системного программного продукта. Понятие и составляющие программы, программного комплекса, программного продукта, системного программного продукта (по ф. Бруксу)
- •31. Борьба со сложностью в программном обеспечении. Эволюция методов анализа и разработки (sa/sd, ooa/ood).
- •32. Жизненный цикл программного обеспечения. Фазы жц, их характеристики артефакты.
- •33. Модели жизненного цикла разработки программного обеспечения. Сравнение моделей.
- •35. Производительность труда программиста. Различия в прогах опытного программиста и новичка по ф. Бруксу.
- •36. Распределение стоимости разработки программного обеспечения по технологическим стадиям создания.
- •37. Язык uml. История создания. Область применения. Виды диаграмм uml для описания системы.
- •38. Программирование на основе шаблонов (паттернов). Роль шаблонов проектирования в борьбе со сложностью программного обеспечения. Будущее шаблонов.
- •39. Понятия связанности (Coupling) и зацепления (Cohesion) в сложных программных системах. Связанность и зацепление классов, модулей, компонентов.
- •40. Ошибки программирования: переполнение буфера. Понятие безопасного программного кода.
- •41. Оптимизация программного кода. Основные возможности оптимизации кода программистом и компилятором.
- •42. Оформление программ: основные пункты.
- •43. Процесс отладки программного обеспечения. Сложность отладки по. Методы поиска и устранения ошибок. Связь отладки с тестированием.
- •44. Понятие качества программного обеспечения. Составляющие и критерии качества. Обеспечение качества как процесс, а не этап. Международный стандарт iso 9000/9001.
- •46. Основы тестирования программного обеспечения методом «чёрный ящик» (функциональное тестирование). Роль прецедентов в функциональном тестировании.
- •47. Основы тестирования программного обеспечения методом «белый ящик» (структурное тестирование).
- •48. Понятие надежного по. Различие между надежностью аппаратуры и по.
- •49. Модели надёжности по. Сравнение моделей оценки надежности по. Перспективы построения «хороших» моделей оценки надежности по.
- •50. Динамические модели надежности программного обеспечения (Шумана).
- •51. Статические модели надежности программного обеспечения (Миллса).
- •52. Case - технологии (инструменты, системы, средства). Эволюция case - средств, их классификация, характеристики современных case - инструментов. Перспективы развития. (По Вендрову, Калянову).
- •53. Классификация средств разработки (case - инструментов).
- •54. Технологический скачок (тс) в программировании. Признаки технологического скачка. Исторические факты технологических скачков.
54. Технологический скачок (тс) в программировании. Признаки технологического скачка. Исторические факты технологических скачков.
ТС это совокупность приёмов и средств, использование которых вместе резко повышает производительность труда программиста, позволяя реализовать более длинные и сложные программы за реальное время. Косвенные последствия ТС: упрощение сопровождения программы, а также её использования. Основные признаки технологического скачка:
Наличие новых приёмов, идей, средств в программировании.
Наличие новых технических средств или качественное изменение старых.
Увеличение производительности труда программиста – обычно, на порядок.
Смена технологии программирования.
Первым ТС в программировании стал переход от программирования в коде на алгоритмические языки в совокупности с появлением системы IBM/360. Простой переход на алгоритмические языки, без смены техники, не мог быть ТС, так как не привёл к увеличению производительности труда в программировании. Потребовалось появление системы IBM 360 с совершенно новой архитектурой ЭВМ, ОС, наличием нескольких трансляторов с разных языков. Резко сменилась технология разработки и отладки программ и, конечно, увеличилась производительность труда. Следующим ТС было появление ПЭВМ. Они принесли новые принципы архитектуры ЭВМ. На рынке появились ЭВМ различных конструкций: от чисто игровых – Spectrum, до профессиональных – Risc – архитектура: это машины клона Sun, IBM RISC 6000. Некоторое время полагали, что ПЭВМ так и останется в «любительской» сфере. Жизнь, однако, показала другое: произошло внедрение ПЭВМ в производство. Появление ПЭВМ в производстве привело к широкому использованию сетевых технологий. Сетевое взаимодействие большого количества машин поставило на повестку дня решение задач, которые плохо решались в рамках процедурного программирования. ООП является ТС в программировании. Можно выделить все признаки ТС: новые приёмы в технологии, качественное изменение техники. Смена в технологии программирования, увеличение производительности труда.
55-56. Основные нормы и принципы этики программирования. Хакерство как феномен.
Этика – это нормы поведения и правила, принятые в обществе. Каждый субъект общества должен следовать этим нормам, но это вполне не обязательно. Существует отраслевая этика – юридическая, врачебная, судебная и т.д. Рассмотрим основные моменты программисткой этики.
Этика программиста предполагает быть ответственным перед Заказчиком за созданную систему. Нужно тщетно ее тестировать и отлаживать, перед вводом в промышленную эксплуатацию. Не должно быть ни каких сбоев, или неправильных действия со стороны программы в момент ее эксплуатации. А в случае, проявления таких ситуаций, они должны быть устранены программистом как можно оперативно, и за свой счет. Программисту не следует оставлять за собой “закладок”, действия которых вредят нормальной работе системы.
Соблюдение программисткой этики не обязательно, но ее выполнение или невыполнение сказывается на репутации программиста или группы программистов. Особо выделяют такой способ поведения программистов как Хакерство. Это нарушение не только этики, но и законодательства. Как правило, хакерство связано с двумя основными направлениями:
организацией предумышленного несанкционированного доступ к конфиденциальной информации;
распространение вредоносных программ, направленных на порчу данных, или разрушение механизмов защиты данных.
