Материал из WikiNU
[править] Теоретические вопросы
- Различия системного и прикладного программного обеспечения. Многоуровневая модель аппаратного и программного обеспечения ЭВМ.
- Прикладное программное обеспечение классификация, примеры. CRM, ERP, SCADA, АСНИ, АСУ тп, АСУ рв итп.
- Разработка ПО. Основы управления проектами. Тройственная ограниченность (время, содержание, стоимость; качество).
- Водопадная и итерационная модели развития проекта.
- Спецификация программного обеспечения. Пользовательские, системные требования и детальная спецификация.
- Unix-подобные ОС. Основные черты. Принцип «Все — есть файл».
- ОС Linux. Разделение доступа к файлам по правам. Процедура логина, создание пользователей. Что записано в файлах /etc/passwd, /etc/shadow? Аутентификация по паролю.
- Bash и другие sh — оболочки.
- Сценарии и прекомпиллированые программы. В чем различия? Достоинства и недостатки обоих типов.
- Модель сетевого взаимодействия. Стек протоколов TCP/IP. Ключевые особенности «слоеной» организации.
- Основные принципы разработки консольных программ. Программа как команда оболочки ОС (Shell).
- Microsoft .NET Framework. Основные принципы функционирования. .NET runtime, MSIL, JIT — компиляция. Управление памятью. Библиотеки.
- Основы ООП. Различия класса и объекта.
- Члены класса. Защищенные, публичные. Статические члены класса.
- Функции-члены класса: свойства, методы, конструкторы и деструкторы, операторы.
- Перегрузка функций. Чем однозначно определяется функция?
- Полиморфизм и наследование.
- Процессы и потоки. Запуск нового потока, рабочий метод потока.
- События и делегаты функций.
- Обработка исключений в C#.
- Графические приложения. System.Windows.Forms, System.Drawing. Контроллы и графика.
- Потоковая анимация.
- Windows sockets. Простые способы передачи сообщений по сети.
- Клиент — серверные приложения. Основные принципы.
[править] Практические задания
Кроме того чтобы получить допуск к экзамену необходимо выполнить и предъявить 3 задания:
[править] Консольный калькулятор
[править] Пользовательские требования
- программа — консольный калькулятор.
- Ввод данных подобен вводу команд оболочки ОС. То есть <{полный путь}команда> [параметры].
- Выполняемые операции: +,-,/,*,**(возведение в степень), BCD(наибольший общий делитель)
- Все операции производятся с целочисленными значениями со знаком.
- В результате деления получается десятичная дробь с 3-мя знаками после запятой, то есть 5/4 = 1,250. 4/3 = 1,333
- Необходимо, чтобы работало как в windows, так и в Unix-системах.
[править] Системные требования
- Под windows разрабатывается на языке C#
- Под Linux пишется сценарий командной оболочки BASH.
- НОД определяется по алгоритму Евклида.
[править] Лопающийся мыльный пузырь
[править] Пользовательские требования
- Разработать графическую программу, которая моделирует поведение мыльного пузыря.
- Пузырь растет до некоторого размера, после чего лопается, оставляя анимированные брызги.
- Mockup справа.
- В окне программы есть 2 контролла: текст-бокс для задания скорости процесса и кнопка старт/стоп.
- Надпись на кнопке меняется в зависимости от текущего состояния программы и принимает значение либо «старт», либо «стоп».
[править] Системные требования
- Анимация осуществляется по средствам открытия нового потока.
[править] ЧАТ академии Наяновой
[править] Пользовательские требования
- Клиент-серверное приложение
- Работать с программой так:
- Пользователь запускает программу.
- Вводит адрес сервера и порт.
- Опционально вводит имя.
- нажимает на «подключиться»,
- после чего ему предоставляется окно чата.
- Порт и адрес сервера задается при запуске клиентской программы.
- Клиент обладает простым GUI. Mockup справа.
- Текст вводится в нижнее поле. При нажатии на кнопку отсылается на сервер.
- В верхнем левом поле отображаются сообщения всех пользователей подключенных к одному серверу по одному порту.
- ID пользователям раздаются автоматически.
- Есть возможность отображения имени пользователя в чате. Если пользователь не ввел имя, отображается его ID.
- Остальные особенности «фишки» и возможности — на усмотрение исполнителя.
[править] Системные требования
- Клиент-серверное взаимодействие происходит через один TCP — порт.
- Сервер — консольное приложение, клиент — графическое.
- Имя пользователя хранится локально на протяжении сессии и просто приписывается в начале каждого сообщения перед посылкой на сервер.