## Тема: «Разработка программного обеспечения на языке C#»
Общие требования к программному обеспечению для разработки **технического задания:**
1. В качестве базы спроектируйте WPF-приложение с использованием паттерна MVVM (Model-View-ViewModel) и/или использованием Фреймворка Prism
2. Придерживайтесь принципам SOLID (single responsibility, open–closed, Liskov substitution, interface segregation и dependency inversion) и DRY (don’t repeat yourself - не повторяй себя)
3. Избегайте наследования там, где его можно заменить ассоциацией. Особое внимание уделяйте классам «Моделям» и классам «Сервисам»
4. Избегайте написание кода в code-behind (файл отдаленного кода - `*.xaml.cs`)
5. Выделяйте стили и темы оформления элементов пользовательского интерфейса в отдельные словари ресурсов
6. Реализуйте файловый ввод/вывод данных
7. Предусмотрите обработку различных исключительных ситуаций
8. Работа всех функций должна быть проверена и результаты проверки оформлены протоколом тестирования
  
Примерное содержание работ в процессе выполнения курсовой работы:
1. Выбор и описание предметной области
2. Обзор основных частей Фреймворка Prism:
	- MVVM
	- Модули
	- Внедрение зависимостей (Unity или MEF)
	- Навигация
	- Интеграция с XAML
3. Разработка WPF-приложения:
	- Разработка диаграммы классов и диаграммы пакетов с учетом инверсии управления (IoC)
	- Построение оболочки с пользовательским интерфейсом и описанием регионов (представления)
	- Проектирование независимых модулей (модели и модели-представления)
	- Разработка бизнес логики приложения
	- Навигация и обмен между частями модулей
	- Тестирование.
4. Разработка руководства пользователя
5. Демонстрация и защита проекта
6. Приложения:
	1) ТЗ
	2) Руководство пользователя
	3) Исходный код