Ответы на экзамен (Ответы на экзамен)

Посмотреть архив целиком

Вопросы по курсу «Системное и прикладное программное обеспечение».

Весна 2010 .

 

+ 1.     Подходы к разработке программных средств. Их краткая характеристика.

+ 2.     Жизненный цикл программного обеспечения. Основные понятия.

+ 3.     Модели жизненных циклов программного обеспечения, их характеристики и области применения.

+ 4.     Особенности модели жизненного цикла «спираль»

5.     Содержание этапов анализа и проектирования при разработке программного обеспечения по методу функциональной декомпозиции.

6.     Планирование разработки программного обеспечения. LOC и FP-метрики.

7.     Планирование разработки программного обеспечения на основе FP-метрики.

+ 8.     СОСОМО модель. Важнейшие количественные характеристики процесса разработки программного обеспечения.

9.     Метрики объектно-ориентированных программ.

+ 10.   Краткая характеристика объектно-ориентированного подхода к разработке программного обеспечения. Понятия «Класс» и «объект».


про дельфи я ваще ни малейшего понятия не имею

+ 11.  Свойства объектно-ориентированного программирования. Объекты и отношение наследования на Delphi

+ 12.  Статические и виртуальные методы на Delphi. Полиморфизм.

+ 13.  Конструкторы и деструкторы  на  Delphi. Конструкторы и наследование

+ 14.  Динамическое создание объектов на Delphi.



+ 15.  Абстрактные методы и классы.

+ 16.  Классы и отношение наследования в С++.

+ 17.  Атрибуты доступа к элементам классов на С++.

+ 18.  Дружественные функции на С++.

+ 19.  Конструкторы и деструкторы на С++, взаимодействие конструкторов и деструкторов при иерархии классов.

+ 20.  Конструктор копирования на С++.

+ 21.  Статические члены классов на С++.

+ 22.  Перегрузка операции на С++.

+ 23.  Виртуальные и чисто виртуальные функции на С++, абстрактные классы.

+ 24.  Динамическое создание и уничтожение объектов на С++.

w 25.  Шаблоны функций и классов на С++.

26.  Контейнерные классы на С++, их назначение, структура.

27.  Последовательные контейнеры, итераторы.

28.  Ассоциативные контейнеры.


29.  Виды контроля программ; тестирование и отладка.

30.  Методы функционального тестирования.

31.  Методы структурного тестирования. Тестирование путей.

32.  Совместное тестирование модулей.

33.  Тестирование программ и жизненный цикл программного продукта.


UML

+ 34.  Общая характеристика и назначение языка UML.

+ 35.  Диаграммы вариантов использования, назначение, компоненты, отношения между компонентами.

+ 36.  Диаграмма последовательности и кооперативная диаграмма, их назначение, компоненты.

+ 37.  Диаграмма классов, характеристики класса

+ 38.  Диаграмма классов, типы и характеристики отношений.

+ 39.  Диаграммы состояний, их назначение, компоненты.

+ 40.  Диаграммы деятельности, их назначение, компоненты.

+ 41.  Диаграммы компонентов и размещения, их назначение, составные части.

ЗДЕСЬ КОНЧИЛСЯ


42.  Показатели качества программных продуктов,

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

44.  Унифицированный процесс разработки программных средств. Общая характеристика и этапы.

45.  Основополагающие принципы разработки программных средств по унифицированному процессу.

46.  Процесс определения требований к программным средствам. Документирование требований с помощью диаграмм.

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

+ 48.  Процесс проектирования при разработке программных средств. Основные отличия моделей анализа и проектирования.

+ 49.  Процесс реализации при создании программных средств.

+ 50.  Особенности тестирования программных средств, построенных по объектно-ориентированной методике. Тестирование классов.

+ 51.  Тестирование взаимодействия классов. Тестирование иерархии классов.

52.  Тестирование целостности и системное тестирование.

53.  Сравнение  объектно-ориентированного и процедурного программирования.


54.  Особенности языка программирования  C# и среды Microsoft Visual Studio 2008.

отличный вопрос по нему целая книга написана


55.  Особенности работы с массивами на C#, невыровненные массивы.

google: c# array, multi-dimensional array


56.  Разработка консольных приложений на C#, организация ввода/вывода и преобразования данных. Структура программы.

даже не знаю что тут сказать

это же очевидно, создаем проект, выбираем Console Application :D


57.  Объявление классов на C#.

google: c# class declaration


58.  Особенности использования формальных и фактических параметров на C# (out, ref). Составление процедурных программ.

google: c# parameter/argument pass by reference out ref


59.  Наследование на C#, работа с конструкторами при наследовании.

google: c# inheritance

в отличие от С++ тут нет мультинаследования

причины: см проблему "Ромба" (схема наследования в виде ромба)


60.  Индексаторы на C#.

google: c# indexer


61.  Свойства на C#.

google: c# properties


property P {

get { return smt; }

set { _v = value; }

}


62.  Делегаты на C#.

google: c# delegate invokation


63.  Интерфейсы на C#.

интерфейс это класс только с виртуальными пустыми методами

google: c# interface


64.  Виртуальные методы и абстрактные классы на C#.

google: c# abstract class


65.  Класс  List, создание и работа с классом List с нестандартными элементами


google: msdn List<> c#


List _list = new List();

_list.Add( (MyClass)c );

_list.Remove( c );

 


66.  Принципы построения языка LINQ

+67.  Ламбда-выражения и их использование на LINQ

+68.  Две разновидности синтаксиса на LINQ

+69.  Отложенное выполнение операторов на LINQ

+70.  Операторы Select, Where, Take, Skip, TakeWhile, SkipWhile

+71.  Агрегирующие функции на LINQ

+72.  Группировка данных на LINQ

+73.  Оператор соединения на LINQ

74.  Обработка данных из стандартного класса List средствами LINQ

75.  Принципы стыковки Visual Studio  с базами данных

76.  Использование языка LINQ для обработки баз данных


МАМОЧКА!!!


 

Распределение вопросов

34-41 (UML) -- Настя

1-9 (общее) -- Настя

66-76 (LINQ) -- Рома

10-15 (дельфи) -- Рома

54-65 (сишарп) -- Леша

16-28 (c++/stl) -- Леша





1.     Подходы к разработке программных средств. Их краткая характеристика.

Классические подходы:

1) Метод функциональной декомпозиции. Хорошо применим для алгоритмически сложных задач, не связанных с большим объемом данных, сюда относятся научные, инженерно-технические задачи.




Иерархическая диаграмма (HIPO - Hierarchical Input Process Output):

рекомендуют выделить на одном этапе от 2 до 8 задач (оптимально 3-5), каждая подзадача должна быть логически целой с фиксированным набором исходных данных и результатом, любая задача более высокого уровня должна быть свестись к решению выделенных подзадач. Далее подзадачи делятся в свою очередь на подзадачи по тем же критериям. Существует 2 критерия останова:

 - счастливый случай (на каком-то этапе выделена задача, которая уже решена, т.е., например, классическая задача);

 - когда подзадача самого нижнего уровня соответствует программно разумным размерам (ПРР).

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

Диаграммы IPO являются основными в технологии. В диаграммах выделены 3 колонки. В левой записывается входная информация (та, что подается на вход алгоритма), в средней описан процесс (алгоритм), в правой - выходная информация. 

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

2) Метод анализа потоков данных (для автоматизации офисной деятельности).

Диаграмма потоков данных - DFD (Data Flow Diagram). Так называется методология графического структурного анализа, описывающая внешние по отношению к системе источники и адресаты данных, логические функции, потоки данных и хранилища данных, к которым осуществляется доступ.


3) Проектирование программ на основе абстрактных структур и типов данных.


4) Объектно-ориентированных подход.

Объект - это реально существующий предмет со всеми его индивидуальным особенностями.

Класс - множество объектов с одинаковыми свойствами и одинаковым поведением.




Если данным присвоить значение, то класс превращается в объект.

Основные свойства класса:

 - инкапсуляция - объединение в структуре данных, классе, данных и методов обработки этих данных.




Классы B И C являются частным случаем класса А. Все, что мы утверждали для класса А, должно остаться в силе безо всяких ограничений для классов В и С. Если класс имеет одного предка, то говорим о единственном наследовании, если более, то о множественном наследовании. Множественное наследование в программе нежелательно.

 - полиморфизм. Класс-предок и класс-наследник могут иметь одно и то же имя, но разную реализацию. Когда делаем вызов, автоматически определяется, куда обращаться.





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


Основные процессы жизненного цикла:

1.     заказ,

2.     поставка,

3.     разработка,

4.     эксплуатация,


Случайные файлы

Файл
72232.doc
drsu.doc
78928.rtf
35402.rtf
182657.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.