- •1.Назовите цель разбиения исходных данных программ на классы эквивалентности. Приведите пример выделения классов эквивалентности для какой-либо задачи (в виде дерева разбиения). * *
- •2.Дайте определение структуры данных. Приведите пример структуры данных. Дайте пояснения относительно ее частей.*
- •3.Дайте определение схемы. Приведите пример. Какие группы символов используются в Вашем примере (согласно гост 19.701-90).*
- •4.Дайте определение таблицы решений. Приведите пример.*
- •5.Дайте определение модели жизненного цикла пп. Приведите какую-либо модель жц и дайте необходимые пояснения.*
- •6.Дайте определение нотации. Приведите пример.*
- •7.Дайте определение спецификациям по, назовите известные Вам внешние
- •8. Назовите группы символы, которые используются в схемах проектов по согласно гост, и приведите примеры таких символов. *
- •11. Назовите нотации и приведите пример нотации для изображения структурных алгоритмов.*
- •12.Дайте определение прочности модуля и приведите примеры модулей с разными классами прочности.*
- •13. Дайте определение сцепления модулей и приведите примеры модулей с разными видами сцепления.*
- •14.Дайте определение технологии программирования. Какие технологии Вы знаете и к каким периодам относится появление этих технологий? *
- •15. Дайте определение объектно-ориентированного программирования (ооп). Назовите и охарактеризуйте основные свойства ооп.*
- •16. Блочно-иерархический подход к созданию программных систем.*
- •17. Проблемы разработки сложных программных систем.*
- •18. Дайте определение модели жизненного цикла (жц) программного продукта (пп). Каскадная модель жц пп. Область применения, достоинства и недостатки.*
- •19. Этапы жизненного цикла (жц) программных продуктов (пп). Схема жц пп.*
- •20. Функциональное и структурное тестирование программ: цели, отличия стратегий, рекомендации по применению.*
- •21. Этапы тестирования программ. Стадии тестирования в процессе разработки программного обеспечения. Методы, используемые на каждой стадии.*
- •22. Ручной контроль как метод тестирования.* *
- •23. Методы структурного тестирования. Общий недостаток методов.* //белый ящик
- •24. Методы функционального тестирования. Области применения.* //черный ящик
- •25. Основные положения метода эквивалентного разбиения.*
- •26. Основные положения метода граничных значений.*
- •27. Пошаговое тестирование модульных программ. Достоинства и недостатки подходов.*
- •28. Стихийное программирование. Этапы совершенствования архитектуры программ.*
- •29. Структурное программирование. Определение подхода, цель и принципы.*
- •30. Нисходящая стратегия разработки программ.*
- •31. Принципы модульного программирования.* *
- •32. Основные понятия объектно-ориентированного программирования.*
- •33. Достоинства и недостатки объектно-ориентированного программирования.*
- •35. Сравнение этапов жизненного цикла в case-технологиях и при традиционной разработке по.*
- •36. Спиральная модель жизненного цикла программных продуктов.*
- •37. Дайте определение модели жизненного цикла пп. Приведите каскадную и спиральную модели жц и дайте краткие пояснения. *
15. Дайте определение объектно-ориентированного программирования (ооп). Назовите и охарактеризуйте основные свойства ооп.*
Обьектно–ориентированное программирование - это подход, в котором данные и поведение (методы обработки данных) жестко связаны. Данные и поведение представлены в виде классов, экземпляры которых - объекты. ООП позволяет пользователю вводить собственные типы данных, расширяя тем самым набор встроенных в язык типов данных. Для обозначения этих расширений используется термин абстрактные типы данных (АТД). Основными свойствами ООП являются инкапсуляция, наследование и полиморфизм. Под инкапсуляцией понимается сокрытие данных и операций АТД от внешних программ, использующих хих. Наследование - это средство получения новых типов данных (классов) из уже существующих типов, называемых базовыми классами. При этом повторно используется существующий код. Порождённый класс образуется из базового путем добавления или изменения кода. Полиморфизм - средство для придания различных значений одному и тому же сообщению в зависимости от типа обрабатываемых данных. Например, если аргументы оператора целого типа, то используется целочисленное деление. Если же один или оба аргумента - значения с плавающей точкой, то используется деление с плавающей точкой.
16. Блочно-иерархический подход к созданию программных систем.*
Этот подход предусматривает сначала создавать части таких объектов (блоки, модули), а потом собирать из них сам объект.
Процесс разбития сложного объекта на сравнены независимые части получил название декомпозиции. При декомпозиции учитывают, что связки между отдельными частями должны быть слабее, чем связки элементов внутри частей. Кроме того,, чтобы из полученных частей можно было собрать разрабатывается объект, в процессе декомпозиции необходимо определить все виды связей частей между собой.
При создании очень сложных объектов процесс декомпозиции выполняется многократно: каждый блок, в свою очередь, декомпозируют на части, пока не получают блоки, которые сравнительно легко разработать. Данный метод разработки получил название пошаговой детализации.
Существенным является и то, что в процессе декомпозиции пытаются выделить аналогичные блоки, которые можно было бы разрабатывать на общей основе. Таким образом, как уже вспоминалось выше, обеспечивают увеличение степени повторяемости кодов и, соответственно, снижения стоимости разработки.
Результат декомпозиции обычно представляют в виде схемы иерархии, на нижнем уровне которой имеют в своем распоряжении сравнены простые блоки, а на верхнем - объект, который подлежит разработке. На каждом иерархическом уровне описание блоков выполняют с определенной степенью детализации, обстрагіруяс от несущественных деталей. Следовательно, для каждого уровня используют свои формы документации и свои модели, которые отображают сущность процессов, которые выполняются каждым блоком.
Так для объекта в целом, как правило, удается сформулировать лишь сами общие требования, а блоки нижнего уровня должны быть специфицированы так, чтобы из них действительно можно было собрать работает объект. Другими словами, чем больший блок, тем более абстрактным должно быть его описание.
При соблюдении этого принципа разработчик сохраняет возможность осмысления проекта и, следовательно, может принимать наиболее правильные решения на каждом этапе, которые называют локальной оптимизацией (в отличие от глобальной оптимизации характеристик объектов, которая для действительно сложных объектов не всегда возможна).
Примечание. Следует иметь в виду, что понятие сложного объекта по мере совершенствования технологий изменяется, и то, что было сложным вчера, не обязательно останется сложным завтра.
Следовательно, в основе блочно-иерархического подхода лежат декомпозиция и иерархическое упорядочивание