''Информационные технологии'' в УдГУ, осень 2008

Обсуждаем разработку программного обеспечения

Сообщение vva » 02 сен 2008, 15:40

В соответствии с заключённым с УдГУ контрактом, в этом семестре снова буду читать лекции по "Информационным технологиям" для студентов 4-го курса.

Нам также дали карт бланш на чтение того, что как мы считаем нужно знать разработчикам желающим у нас работать.

Выкладываю предварительную программу курса (несколько изменённую с прошлого года). И первую лекцию.
Вложения
Курс_Информационные_технологии_от_РИТ_2008.zip
(71.15 KiB) Скачиваний: 645
0_Marketing.zip
(197.07 KiB) Скачиваний: 1035
Аватар пользователя
vva
Администратор
 
Сообщений: 2914
Зарегистрирован: 06 фев 2007, 13:33

Сообщение vva » 02 сен 2008, 16:01

То же самое в виде текста

План курса:
1. ставится отметка каждому за выделенную ему лекцию-доклад.
2. на каждой лекции каждому задаётся контрольный вопрос и ставится оценка за него.
3. докладчику ставится вторая оценка за доклад как среднее от оценок за ответы на контрольные вопросы.
4. ставится оценка за каждый этап практического задания.
5. студенты с хорошими оценками и вовремя и без вопросов сдавшие практическую часть получают экзамен автоматом.
6. остальные представляют результат практики на зачёт и отвечают по билетам (билет – это две темы) на экзамене.


Теоретические темы:

Общий план теоретических занятий:
1. Каждый студент получает тему и готовит по ней доклад к заданному занятию-числу по представленным тезисам. Этот же доклад в электронном виде высылается заранее преподавателю в электронном виде.
2. Студент начинает рассказывать, отвечает на вопросы
3. Преподаватель объясняет, какую ахинею несёт студент и рассказывает либо поясняет сам
4. обсуждение, спор, если нет больше вопросов, переход к оценкам
5. Докладчик получает оценку за доклад от преподавателя.
6. Опрашивается каждый из присутствующих по списку контрольных вопросов. Быстрый ответ, быстрая оценка, переход дальше. Опрашиваются в случайном порядке.
7. Не ответивший или ответивший неправильно должен дать ответ на следующем задании и ответить ещё на один вопрос.
8. Докладчик в итоге получает ещё одну оценку как среднее от оценок по вопросам на его тему.
9. Переход к практическому заданию


Общая теория
Информационная система это организационно - технический комплекс (т.е. союз людей и механизмов, взаимодействующих друг с другом по определённым правилам или без них), предназначенный для:
1. ввода и получения информации
2. вывода информации
3. хранения информации
4. передачи информации
5. обработки и анализа информации
6. управления простыми механизмами-автоматами

Тема 0. Предварительное маркетинговое исследование
1. место маркетинга в общем цикле производства ПО
2. отношение с конкурентами, понятие о «целевом конкуренте»
3. позиционирование продукта, уникальное торговое предложение. продвижение связанных продуктов
4. правило 80/20 и его последствия
5. маркетинговый паспорт продукта
6. связь маркетинговой информации и информации, необходимой при производстве (Технология разработки персонажей, Requirements management, Feature Driven Development, требования к выбору архитектуры)
7. классификация целевой аудитории по степени восприятия новых продуктов (энтузиасты, прагматики, консерваторы, увальни).
8. мероприятия по завоеванию и удержанию разных групп целевой аудитории.
9. основные маркетинговые мероприятия после завершения разработки и переходу на сопровождение.
10. различные модели окупаемости ПО, критерии оценки результатов маркетинговых действий.

Хороший раздел: http://habrahabr.ru/blog/startup/

Тема 1. Проектирование схемы данных
Тезисы:
1. нормализация схемы данных
2. связь один ко многим
3. связь много ко многим
4. связь один к одному
5. отображение иерархии наследования на базу данных («кластеры», «дискриминаторы», разные способы представления на физической структуре)
6. каскадное удаление
7. каскадное обновление
8. enum, set
9. различные нотации описания схем данных (UML, ER-диаграммы)
10. скалярные арифметические типы данных
Контрольные вопросы:
1. Увеличивается или уменьшается обычно количество таблиц в базе при её нормализации?
2. Какое поле должно быть добавлено и в какую таблицу при создании связи один ко многим?
3. Как задаётся связь много ко многим?
4. Самый экономичный способ реализации связи один к одному?
5. Является ли результат отображения объектной модели на реляционную модель вида «одна иерархия / одна таблица» нормализованной схемы базы данных?
6. Может ли связь «один ко многим» помеченная для каскадного удаления приводить к циклическим зависимостям?
7. Может ли обязательная связь «один ко многим» быть помеченной для каскадного обновления?
8. Как реализовать в СУБД тип enum, если СУБД не поддерживает такой конструктор?
9. Как называется диаграмма в UML описывающая структуры данных аналогичные ER-диаграмме?
10. Какие типы стоит использовать для представления денежных величин (в рублях)?
11. Всегда ли нужно нормализовывать схему данных и почему?
12. Можно ли создать обязательную связь «один ко многим» от таблицы к самой себе?
13. Как создать тернарную связь много-ко-много-ко-многим? Например, связь типа «продавец-покупатель-нотариус»
14. По каким причинам объекты, связанные отношением один-к-одному всё-таки стоит держать в отдельных таблицах?
15. Для чего используется дискриминатор в кластере при отображении иерархии классов на таблицы?
16. Как связь один-ко-многим непомеченная признаком каскадного удаления может привести к нарушению ценостности данных?
17. Как поведёт себя СУБД при нарушении целостности данных в случае удаления связанного отношением один-ко-многим объекта на стороне «один»?
18. Как всё таки можно удалить объект, к которому есть связанные отношением один-ко-многим объекты без каскадного поведения?
19. Как в UML нотации отображаются связи помеченные для каскадного удаления?
20. Чем отличается пркдставление чисел с плавающей запятой (float) от представления чисел с постоянной точностью?
21. В чём главная цель нормализации схемы данных?
22. Как связь «один-ко-многим» реализуется в вашем любимом ЯП?

Тема 2. Проектирование пользовательского интерфейса системы
Тезисы:
1. Короткое описание оконного интерфейса, атрибуты окна, оконные сообщения и процедуры их обработки.
2. MDI и SDI интерфейс, их особенности, архитектура Model/Controller/View
3. интерфейс в виде модальных диалогов (ok/cancel),мастера (wizard-ы)
4. WEB-интерфейс,
5. Аякс
6. понятие об usability и тестировании usability
7. GOMS-анализ
8. типовые элементы управления
9. простейшие требования к экранным формам (tab-order, читабельность, группировка, незагромождённость)
10. Windows Presentation Foundation, язык XAML, технология Silverlight, Windows Workflow Foundation
Контрольные вопросы:
1. Перечислить сообщения которые посылаются окну при различных действиях связанных с мышкой.
2. Привести пример программ с MDI и с SDI интерфейсом для редактирования rtf-файлов
3. В чём основной недостаток модальных диалогов с точки зрения usability
4. Какие кнопки обязательно присутствуют в окнах мастеров (wizard ов).
5. Чем отличается запрос GET от запроса POST
6. В чём главное преимущество технологии Ajax перед обычным подходом.
7. Какова основная цель usablity тестирования?
8. Что получается в результате GOMS анализа?
9. чем RadioButton отличается от CheckBox а
10. Какие технические ограничения накладываются на расстояние между элементами управления (почему их нельзя лепить слишком тесно).
11. Как поймать оконное сообщение на web-форме
12. За какие функции отвечает обычно Model и за какие View в модели MCV
13. Как могут быть связаны диалоги с кнопками Ok/Cancel и базы данных
14. В каких случаях целесообразно использовать Wizard ы?
15. Как в WEB-интерфейсе узнать какая кнопка была нажата?
16. Каким образом в Ajax получают данные с сервера не перегружая всю страницу?
17. Что называют свойством покладистости интерфейса?
18. От чего зависит скорость нажатия на кнопку формы?
19. В чём преимущество объектов - строковых редакторов типа TextBox (Edit) c флагом Readonly от объектов – надписей типа Static (label)
20. Назовите встроенный элемент управления для группировки других элементов и опишите эффект от его использования
21. Что такое фокус в оконной системе и как он влияет на обработку событий
22. Приведите пример системы, в которой для одного объекта Model открывается несколько View
23. Перечислите стандартные модальные диалоги, как правило, встроенные в систему
24. Опишите, какие с вашей точки зрения недостатки имеют мастера (wizard ы)
25. Как в WEB-интерфейсе реализовать всплывающее окно?
26. Каким образом в идеологии Ajax меняется только часть окна?
27. Как связаны ошибки пользователей и usability продукта?
28. Какие действия пользователь выполняет быстрее: те, для которых нужна мышка или те, которые управляются с клавиатуры?

Тема 3. Общие знания, которые должны быть одинаковыми у дизайнеров и программистов.
Тезисы:
1. классификация шрифтов, что можно и что нельзя делать со шрифтами, достоинства и недостатки разных шрифтов
2. цветовые модели и способы перевода между ними RGB, CMYK, HSB, HLS
3. основные векторные форматы, для чего они нужны и когда какой стоит использовать (wmf, dxf, ai, psd, pdf, svg, swf)
4. основные растровые форматы, для чего они нужны и когда какой стоит использовать (bmp, jpg, gif, png, tiff)
5. роль модальной сетки и свободного места между элементами изображения
6. неприятные для глаз вещи (список того, что нужно избегать): комбинации плоских элементов и объёмных, брызги, толи прямые то ли кривые, то ли квадрат то ли прямоугольник, слишком много цветов, свет падает непонятно откуда.
7. различные вопросы рендеринга и масштабирования (антиалиасинг, ускорение)
8. рендеринг трёхмерных изображений (разбиение на треугольники, трассировка лучей и т.п.)
9. персонажи при разработке дизайна IT продуктов
10. проблемы отображения электронного изображения на бумаге и на экране
Контрольные вопросы:
1. Каким шрифтом отображается код программы?
2. С какой целью используется модель CMYK?
3. Чем отличается векторный формат от растрового?
4. В чём разница между GIF и PNG?
5. чем нехороши брызги на изображениях в web
6. Назовите системы, в которых реализован и системы, в которых не реализован антиалиасинг линий
7. Почему при 3D моделировании все объекты представляются в виде треугольников?
8. Можно ли в качестве персонажа использовать настоящего знакомого человека?
9. Как решается проблема калибровки цветов на бумаге?
10. Какой шрифт лучше использовать для надписей под углом и в мелком масштабе?
11. Назовите более насыщенный цвет, чем #AA0000
12. Назовите более светлый цвет, чем #AA0000
13. Позволяет ли wmf использовать цветовую модель CMYK?
14. Какой растровый формат лучше всего подходит для screenshot ов программ
15. Каким образом можно учитывать модальную сетку при работе в PhotoShop
16. Каким алгоритмом масштабировать шрифты? Можно ли их масштабировать в одном направлении?
17. Каким образом при преобразовании трёхмерных координат в двухмерные координаты экрана учитывается перспектива
18. Приведите примеры персонажей, которым нравится настраивать интерфейс
19. У какого монитора лучше цветопередача – у плоского или с лучевой трубкой?
20. Назовите 3 основных шрифта в системе Windows – три представителя классов
21. Как перевести цвет из RGB в CMYK и обратно, какие при этом возможны тонкости
22. назовите векторные форматы, которые можно открыть в текстовом редакторе
23. в чём отличие основное tiff от остальных растровых форматов?
24. в чём ущербность хранения screenshot ов в виде jpg файлов
25. какая информация в psd формате является векторной?
26. что такое альфа-канал
27. какие растровые форматы поддерживают прозрачность и в каком виде.

Тема 4. Организация общения с заказчиком и разработки IT-проектов
Тезисы:
1. первоначальное составление ТЗ и управление требованиями (requirements management).
2. выбор архитектуры – используемых программно-аппаратных компонентов, учёт рисков, учёт времени на отладку и тестирование, интеграционное тестирование.
3. основные роли представителей заказчика по отношению к проекту и их учёт
4. оценка трудозатрат на реализацию (estimation) и календарное планирование, планирование релизов и того, что в них должно быть (feature driven development)
5. управление проектом в треугольнике «качество – время - ресурсы»
Контрольные вопросы:
1. Кто пишет техническое задание?
2. С какой целью заказчику предоставляется детальная оценка трудозатрат с точностью до отдельных частей проекта?
3. Перечислите, какие критерии используются при выборе архитектуры проекта.
4. Перечислите главные риски, которые возникают при реализации IT проектов.
5. Сколько раз можно оценивать время на отладку и тестирование?
6. Почему управление требованиями отдельно от начального проектирования?
7. Чем отличается project manager от руководителя проекта?
8. Как в календарном планировании учитывается непроизводственная деятельность ( корпоративные праздники, всякие планёрки и т.п.)
9. Чем отличается alpha версия от beta версии
10. Какие действия необходимо провести в системе bug-tracking после завершения выполнения задачи или исправления бага?
11. Какие обязательные поля должны быть в time-report е?
12. Как исправить ошибку в инструкции, размещённой в wiki?
13. Какие технологии вы знаете для создания корпоративных чатов?
14. В каком виде вы пошлёте свой код на code-review?
15. Какие настройки в рабочей среде программирования необходимо произвести перед началом полноценной работы в команде?
16. Каковы ваши действия при обнаружении конфликтов при коммите?
17. Какая площадь должна приходиться на одного разработчика в офисе?
18. Чем характеризуется состояние выполнения конкретной задачи конкретным разработчиком в данный конкретный момент?
19. Какую из сторон треугольника «качество – время - ресурсы» обычно рекомендуется явно изменять при срыве сроков проекта?
20. Что делать, если не можешь воспроизвести bug описанный в bug-tracking и назначенный на тебя.
21. Опишите, как выглядят шаблоны технической документации в стандартах типа RUP (общие части - перечислить)
22. В каких пределах варьируется скорость работы в зависимости от программиста, и в каких пределах варьируется скорость работы в зависимости от технологии.
23. Каким образом можно, не ведя никаких записей собрать информацию о том чем занимался допустим за неделю.
24. Опишите, в какой последовательности вы будете исследовать новый для себя компонент на предмет его использования в продукте.
25. Какие риски можно и нужно перекладывать на заказчика?
26. Как в wiki задать нумерованный список?
27. Почему календарное время финальное тестирования и отладку сильно больше аналогичного времени на разработку при одинаковых трудозатратах?

Тема 5. Внутренняя организация проекта
Тезисы:
1. типовая структура директории проекта
2. понятие о системе контроля версий (репозиторий, рабочая директория, commit, update, import, revert, clone, push, pop, diff, patch)
3. понятие о «сборке за один шаг»
4. регулярное тестирование (круиз-контроль)
5. отличие исходников от остальных файлов
6. что стоит, чего не стоит и в каком виде нужно держать в репозитории
7. экскурсия в структуру внутренних файлов (файлов в рабочей директории пользователя, а не на сервере) простейшей системы контроля версий (CVS)
8. branch-и и tag-и в проекте, ветвление и перенос изменений между ветвями
9. общепринятые требования к оформлению кода и комментариям
10. организация проектов с разделяемыми внешними библиотеками
Контрольные вопросы:
1. Какая директория, как правило, появляется в проекте первой?
2. Каким образом в системе контроля версий можно откатиться на состояние недельной давности?
3. Что обычно является результатом «сборки за один шаг»?
4. С какой целью настраивается круиз-контроль в проекте?
5. Может ли sql файл не являться исходником?
6. Назовите минимальное количество файлов которые должны лежать в репозитории
7. Как система контроля версий определяет, что вы изменили файл и что его нужно переслать в репозиторий
8. branch или tag заводит в репозитории руководитель проекта незадолго до релиза? И зачем?
9. Какова рекомендуемая максимальная длинна строки исходного кода в самом консервативном варианте?
10. Когда имеет смысл подключать внешнюю библиотеку в виде исходных файлов?
11. Вы дизайнер, и вас попросили поправить картинки в проекте, ваши действия? Как вы будете их искать?
12. В процессе выполнения операции update система контроля версий уведомила вас о том, что в текстовом файле обнаружен конфликт. Каковы ваши действия?
13. Назовите какую-нибудь mainstream технологию для сборки «за один шаг».
14. Как быть с файлами, которые создаются и изменяются каждый раз при компиляции? Чтобы они не мозолили глаза при commit е?
15. Стоит ли держать в репозитории какую-нибудь утилиту, используемую при сборке?
16. Каким образом в CVS хранится список файлов которые не нужно учитывать при commit е
17. branch или tag заводит в репозитории руководитель проекта в момент релиза? И зачем?
18. Каков обычный критерий размера функции для сохранения её читабельности?
19. Когда имеет смысл подключать внешнюю библиотеку в собранном виде?
20. что делать чтобы очистить директорию проекта от лишних файлов, которые образовались за время компиляции?
21. Каким образом можно передать свои изменения в проекте руководителю проекта по почте?
22. Каким образом в процессе сборки «за один шаг» можно использовать вашу любимую ide (MSVS, Eclipse, другое )?
23. Какой командной можно произвести присланные по почте изменения в проекте?

Тема 6. Язык SQL, его особенности
Тезисы:
1. left join, right join, inner join, full outer join
2. использование индексов при запросах, B-деревья, T-деревья, Bitmap-индексы
3. page ing результатов запросов
4. запросы на изменение схемы данных
5. запросы на массовый импорт/экспорт данных
6. ключевое слово having
7. агрегатные запросы
8. объекты уровня БД, уровня сессии, уровня транзакции (переменные и таблицы)
9. блокировки, блокировочные и версионные СУБД
10. стратегии блокирования при реализации диалогов (ok/cancel) и долгоиграющих вычислений
Контрольные вопросы:
1. Что будет со строками таблицы из правой части left join для которых нет соответствия в левой таблице?
2. Как можно указать какой индекс использовать для join в вашей любимой СУБД?
3. Какой реализуется paging в вашей любимой СУБД?
4. С какого ключевого слова начинаются команды, добавляющие объекты в схему данных?
5. Как импортировать данные из csv формата в вашей любимой СУБД?
6. Как в запросе отфильтровать результат по интегральным полям?
7. Что делать если агрегатной функции, которая вам нужна, в системе нет?
8. Как создать таблицу на уровне сессии?
9. Какое из двух конкурирующих изменений строки произведёт блокировочная СУБД?
10. Как рекомендуется работать со строкой таблицы при её изменении в диалоге, чтобы не мешать остальным (в блокировочнике например)?
11. Каким образом можно сделать left join два раза с одной и той же таблицей?
12. Сколько join ов подряд СУБД уже плохо оптимизируют, почему и как с этим бороться?
13. Как в вашей любимой СУБД создать таблицу если она ещё не создана?
14. Как экспортировать данные в csv формат в вашей любимой СУБД?
15. Для чего предназначено ключевое слово distinct ?
16. Что будет с таблицей, если создать её внутри транзакции по окончании транзакции?
17. Какое из двух конкурирующих изменений строки произведёт версионная СУБД?
18. Каким образом подстраховаться от сотни пользователей, которые уйдут на обед, заблокировав сотни записей?
19. Как сделать соединение между A и B чтобы получить всех записи, соответствующие конкретной строке в A, если A и B связаны отношением один ко многим?
20. Как выбрать из соединения A и B поле c, которое есть в каждой таблице и имеет одно и то же название?
21. У нас есть в незнакомой базе две таблицы A и B, мы подозреваем, что поле B.c ссылается на таблицу A. Как мы можем это проверить?
22. Каким соединением можно получить NULL в полях для обеих сторон соединения?
23. Как в вашей любимой СУБД переименовать колонку?
24. Чего не хватает в запросе select sum(a), b from A ?
25. Как удалить все строки таблицы A связанные со строкой B «много к одному»?

Тема 7. Различные схемы работы с базами данных
Тезисы:
1. DAL/BLL (CRUD)
2. различные ORM - обёртки
3. COM/CORBA, работа с интерфейсами
4. двухзвенные и трёхзвенные архитектуры
5. Hibernate, EJB
6. базы данных «in memory», сохранение данных в файле
7. кэширование, на стороне клиента и на стороне сервера
8. обеспечение изоляции и связь с транзакциями и сессиями
9. тестирование уровня данных
10. LINQ
Контрольные вопросы:
1. Какое минимальное количество строк необходимо изменить в программе, использующей работу с данными по схеме DAL при добавлении поля?
2. Какое минимальное количество строк необходимо изменить в программе, использующей работу с данными по схеме ORM при добавлении поля?
3. Какой язык используется и в COM и в CORBA для описания интерфейсов (что в них общего)?
4. C какой целью сложные системы делают многозвенными?
5. Как в Hibernate можно представить иерархию классов?
6. Каким образом обеспечивается разворачиваемость EJB на различных платформах?
7. В чём недостаток сохранения данных напрямую в файле одним потоком?
8. Каким образом данные кэшируются на стороне сервера?
9. В какой момент работы с NHibernate транзакцией открывается SQL транзакция?
10. Какое минимальное количество тестов на одну таблицу обычно требуется?
11. Как можно реализовать массовые изменения данных в парадигме DAL ?
12. Что обычно быстрее работает? Простой подход CRUD или ORM? И насколько примерно отличается производительность?
13. Что такое маршаллинг?
14. Назовите обязательные крайние звенья многозвенной системы.
15. Есть ли возможность в Hibernate делать выборки по произвольным условиям прямо из кода? А описать в descriptor-е?
16. Что такое home интерфейс? Какие методы он обычно содержит?
17. В чём достоинства сохранения данных напрямую в файле одним потоком?
18. В чём главный недостаток кэширования данных на стороне клиента?
19. Сохраняются ли прочитанные объекты в Hibernate при закрытии сессии?
20. Какие готовые решения можно использовать для тестирования работы с данными?
21. Назовите пример задач, для которых, как правило, приходится отказываться от работы с данными через ORM и работать напрямую через SQL.
22. Назовите основные недостатки EJB благодаря которым этот подход до сих пор не получил достаточно широкого развития.
23. Назовите основное достоинство ORM, благодаря которому он получает всё большее распространение, несмотря на очевидную потерю производительности по сравнению с другими подходами.
24. Как Hibernate определяет, что объект был изменён и должен быть сохранён при закрытии транзакции?
25. Как в ORM представлены связи один ко многим?
26. Что произойдёт, если при попытке удаления объекта нарушится целостность данных? Как обрабатывать такие ситуации программисту?

Тема 8. Версионирование и резервное копирование данных.
Тезисы:
1. способы передачи и сохранения данных
2. как найти разницу между двумя базами
3. ведение истории схемы данных
4. скрипты для обновления схемы данных
5. регулярное резервное копирование и резервное копирование «по требованию»
6. резервная копия в виде реплицированного зеркала базы данных
7. обеспечение целостности данных при восстановлении из резервной копии (ссылочная целостность и целостность по метаданным)
8. инкрементальная и полная резервная копия
9. разные способы обеспечения версионирования самих данных средствами СУБД
10. сжатие данных в разных СУБД
Контрольные вопросы:
1. Назовите самый простой формат сохранения данных независимый от базы.
2. Как, не используя специальных средств найти разницу между содержимым двух баз данных?
3. Для чего предназначена история схемы данных?
4. Каким образом при обновлении программа может понять, какие именно скрипты обновления нужно запустить?
5. Какие средства операционной системы для обеспечения регулярного копирования вы знаете?
6. Чем реплика базы в качестве резервной копии данных лучше регулярного бэкапа?
7. Как быть если часть данных хранится не в базе данных, а прямо на файловой системе?
8. Чем инкрементальная резервная копия хуже полной копии?
9. Каким образом можно ведёт историю изменения данных сама СУБД?
10. Какие операции по сжатию данных в СУБД могут привести к ускорению работы системы?
11. Какие проблемы могут возникнуть при восстановления данных из простого sql-скрипта в котором нет ничего кроме insert ов?
12. Назовите какие-нибудь специальные средства для сравнения двух баз данных.
13. Почему при ведении истории изменения схемы данных не полагаются на систему контроля версий?
14. Опишите последовательность sql комманд для переименования колонки
15. Приведите примеры ситуаций, когда при наличии системы регулярных бэкапов всё равно есть необходимость в бэкапе по требованию.
16. Чем реплика базы в качестве резервной копии данных хуже регулярного бэкапа?
17. Как восстанавливать данные, заданные sql-командами GRANT в случае если сохраняется одна база из нескольких на одном сервере?
18. Чем инкрементальная резервная копия лучше полной копии?
19. Каким образом при записи СУБД можно хранить время её последнего изменения автоматическим обновлением?
20. Когда сжатие данных в СУБД может привести к замедлению работы с ними?
21. Какие средства СУБД используются обычно для регулярного копирования?
22. Какие средства для работы с разными версиями изменённых в существующих транзакциях данных существуют у СУБД «версионников»?
23. Какие средства для работы с разными версиями изменённых в существующих транзакциях данных существуют у СУБД «блокировочников»?
24. СУБД MSSQL относят к версионникам или блокировочникам?

Тема 9. Тестирование и документирование информационных систем
Тезисы:
1. Виды тестирования : блочное (unit-тестинг), функциональное, регрессионное, приёмочное, интеграционное и нагрузочное
2. тестирование с использованием dump-ов вывода и с использованием контрольных утверждений
3. минимальные тестовые планы: проверить всё, что в whatsnew, проверить всё, что помечено в bug-tracking е как сделано (fixed), минимальные тестовые сценарии
4. понятие о тестовом покрытии, тестовом плане, тестовом сценарии
5. формат типового bug-report а, beta-тестирование, классификация ошибок по важности.
6. внутренняя документация (ТЗ, howto, комментарии, doxygen, NDoc)
7. внешняя документация, её структура
8. формат pdf, word, html, info, docbook их слабые и сильные стороны
9. стили документации (справочник по элементам управления, step-by-step, поваренная книга, FAQ, учебник)
10. EULA, readme.txt, whatsnew.txt, roadmap.txt
Контрольные вопросы:
1. Какая основная цель блочного тестирования?
2. Какая основная цель функционального тестирования?
3. Какими методами можно эффективно сравнить два текстовых файла?
4. Какая основная цель регрессионного тестирования?
5. Какая основная цель приёмочного тестирования?
6. Какая основная цель интеграционного тестирования?
7. Какая основная цель нагрузочного тестирования?
8. Какие утилиты используются для определения тестового покрытия?
9. Назовите на ваш взгляд главную и неотъемлемую часть хорошего bug-report а
10. Могут ли блочные тесты выступать в качестве регрессионных?
11. Для кого предназначена внутренняя документация в проекте?
12. Для кого предназначена внешняя документация в проекте?
13. В чём главное отличие формата pdf от всех остальных форматов?
14. В чём превосходство формата word по сравнению с остальными?
15. Какова структура документации в формате info?
16. Для чего используется формат docbook при написании документации?
17. Какие элементы берутся за основу при написании внешней документации в стиле «поваренной книги»?
18. Для чего в корневой директории диска-дистрибутива оставляются текстовые файлы, если дистрибутив обычно и запускается сам и документация в нём есть более удобная?
19. Каков главный недостаток документации, подготовленной на скорую руку средствами типа NDoc, doxygen? В каком стиле по умолчанию она написана?
20. C какой целью пишется whatsnew ?
21. Назовите самую главную команду, используемую в типовых Unit-тестах.
22. В чём недостатки подготовки внутренней документации при помощи комментариев к методам, благодаря которым многие предпочитают не использовать такое документирование?
23. Могут ли блочные тесты выступать в качестве нагрузочных?
24. Опишите, какая структура внешней документации оптимальна для начинающего пользователя, а какая - для продвинутого?
25. Могут ли нагрузочные тесты использоваться в качестве регрессионных?

Тема 10. Развёртывание информационных систем (deployment, installation)
Тезисы:
1. системы подготовки дистрибутивов (wix, nsis) основные понятия – файл, переменные среды, изменение реестра, изменение настроечных файлов
2. развёртывание программ в Linux-среде
3. определение предварительных условий для инсталляции (установка необходимых дополнительных пакетов)
4. удалённое развёртывание информационных систем (сайтов) – закачка исполняемых файлов, настройка путей и переменных, настройка сервера, заполнение базы данных
5. план развёртывания
6. структура инсталляционных sql-скриптов
7. инструкции по установке
8. стратегия работы с ошибками на удалённой системе
9. uninstall, очистка системы и что не стоит чистить
10. обновление уже установленной системы
Контрольные вопросы:
1. Какие функции выполняет инсталляционный пакет?
2. В чём сложность развёртывания программ в Unix среде, и какими свойствами в связи с этим обладают Linux дистрибутивы?
3. Каким образом мы можем определить в среде Windows, стоят ли на машине те или иные требуемые нам компоненты?
4. Какими средствами будете пользоваться при удалённом развёртывании системы?
5. Для чего используются планы развёртывания системы, если есть автоматически запускаемые дистрибутивы?
6. Какая sql-комманда будет просто необходимой в установочном SQL-скрипте?
7. Вы написали программу.. необходимо ли вам писать к ней инструкцию по установке? Приведите пример когда необходимо и когда нет.
8. Какие меры нужно своевременно предпринять, чтобы облегчить поиск и устранение ошибок на машине, к которой у нас нет прямого постоянного доступа?
9. Какие файлы обычно оставляют нетронутыми при автоматической работе uninstall?
10. Что будет с данными предыдущей версии вашей программы, если в процессе обновления произойдёт сбой?
11. Приведите пример императивного описания инсталляционного пакета и декларативного описания.
12. В каких случаях для развёртывания программы в Unix среде необходимы права администратора?
13. Что должен делать инсталлятор при обнаружении отсутствия необходимых ему компонентов в системе?
14. Каким образом при написании исходного кода веб-сайта можно облегчать его дальнейшее развертывание?
15. Каким образом можно облегчить развёртывание распределённой системы?
16. Какая часть инсталляционный sql-скриптов обычно дописывается программистом прямо sql-запросами а не генерируется автоматически никакими программами (ERStudio, Hibernate etc)
17. Каким образом можно облегчить читателю инструкций по установке отслеживание того, что он уже сделал, а что ещё нет?
18. Каким образом достигается золотая середина между записью в журнал всех возможных отладочных событий, которая замедляет систему и быстродействием?

Тема 11. Оптимизация работы с базами данных
Тезисы:
1. оптимизация схемы данных, возможно, её частичная денормализация
2. минимизация запросов к СУБД
3. минимизация передаваемых данных
4. обеспечение нужных индексов и правильных скалярных типов данных
5. оптимизация типовых запросов к СУБД, план тестирования, работа с оптимизатором
6. оптимизация специфичных видов запросов: like, limit
7. реализация часто требуемых типовых полей в виде автоматически обновляемых триггерами полей
8. оптимизация производительности при помощи репликации и балансировки нагрузки
9. СУБД-кластеры
10. оптимизация блокировок
Контрольные вопросы:
1. Как денормализация может ускорить работу с данными?
2. Почему необходимо минимизировать количество запросов к СУБД?
3. Как минимизировать количество передаваемых запросом данных?
4. Какие поля обязательно должны быть проиндексированы?
5. Какова последовательность оптимизации конкретного запроса к СУБД?
6. Как СУБД использует свои индексы для оптимизации выполнения оператора like “%a%”
7. Что можно сделать, чтобы быстро искать по запросу типа like “%подстрока”?
8. Как можно использовать репликацию для повышения производительности системы?
9. Как создать подобие СУБД-кластера, используя репликацию?
10. В каких случаях может понадобиться использование вручную установленных блокировок на объекты СУБД?
11. Каким образом можно сочетать достоинства нормализованной и денормализованной структуры при помощи триггеров? И чего это чтоит?
12. Какая классическая задача не решается одним запросом в стандартном SQL?
13. Какие части sql-запроса отвечают за минимально необходимое количество передаваемых данных?
14. Какие индексы должны быть использованы, если в sql-запросе упомянуто два условия в разделе on?
15. Как получить план выполнения запроса в вашей любимой СУБД?
16. Какую цель оптимизации реализует запрос типа limit?
17. Как можно ускорить часто выполняемые запросы с условием по колонке A+B * C, где A, B, C – имена полей.
18. В каких случаях для длительных вычислений допустимо обращаться к основной базе данных и когда всё-таки рекомендуется работать с репликой?
19. Чем отличается специально реализованный в рамках СУБД кластер от балансировки соединений по серверам-репликам?
20. В каких случаях допустимо и можно ли отключать блокировку объекта при длительном запросе?
21. Если денормализация способна ускорить работу, то почему все носятся с нормализацией схемы данных? Какие всё таки недостатки у ненормализованной схемы данных и можем ли мы получить замедление при работе с ненормализованной схемой данных?

Тема 12. Работа со специальными структурами в СУБД
Тезисы:
1. работа с деревьями
2. работа с геометрической информацией (средствами обычных индексов, средствами специальных структур)
3. работа с астрономической информацией (PostgresSQL)
4. работа с полнотекстовым поиском
5. нечёткий текстовый поиск, синонимы, алгоритм Левенштэйна, soundex и т.п.
6. работа с базами документов и файлов произвольного вида (картинками, офисными форматами)
7. работа с файловой системой и обеспечение целостности данных при работе с ней
8. работа с очень большими блоками данных в разных СУБД и проблемы при закачивании их одним запросом
9. T-деревья
10. шифрование и обеспечение секретности
Контрольные вопросы:
1. Какая классическая задача при обработке деревьев не укладывается красиво в классический SQL?
2. Какой самый распространённый запрос при поиске геометрических объектов, для которого пишутся специальные структуры?
3. Чем отличается работа с астрономической информацией от работы с обычными геометрическими объектами?
4. Почему, несмотря на то, что полнотекстовый поиск встроен в большинство серьезных СУБД, на рынке присутствует много специализированных продуктов для полнотекстового поиска? Чем не удовлетворяют существующие в СУБД возможности?
5. Для чего придуман алгоритм Левенштейна?
6. В каких случаях документы и файлы лучше не хранить в СУБД?
7. Приведите пример нарушения целостности системы из за того что часть данных хранится в СУБД, а часть – на файловой системе.
8. Каким образом можно сохранить в СУБД файл, превышающий по размеру максимально допустимый пакет для передачи на сервер?
9. Чем T деревья лучше B деревьев?
10. В каких частях взаимодействия с СУБД возможно шифрование?
11. Каким образом можно организовать быстрый поиск всех узлов в поддереве используя возможности стандартного SQL?
12. Каким образом можно организовать быстрый поиск геометрических объектов, находящихся близко к точке в пространстве используя стандартный SQL?
13. Какие структуры необходимо завести в базе данных для организации полнотекстового поиска без использования встроенных средств СУБД?
14. Можно ли каким то образом (и каким) облегчить поиск слов ближайших к введённому по алгоритму Левенштейна?
15. В каких случаях документы и файлы лучше хранить в СУБД?
16. Какие мероприятия можно запланировать в системе с тем, чтобы подстраховаться от нарушений целостности данных, часть которых лежит в СУБД, а часть – на файловой системе?
17. Какова ветвистость T деревьев (сколько веток может выходить из одного узла)?
18. Какие средства существуют в enterprise СУБД для обеспечения работы с деревьями?
19. Назовите отрицательные стороны шифрования при работе с данными?

Тема 13. Репликация баз данных
Тезисы:
1. query-based репликация
2. data-based репликация
3. транзакционная репликация
4. merge-репликация
5. проблемы, связанные с репликацией недетерминированных запросов
6. обеспечение репликации в прикладных пакетах (DocVision, Directum)
7. возникновение конфликтов и их разрешение при репликации (Microsoft Sync Framework)
8. репликация для балансировки нагрузки
9. репликация для резервного копирования
10. репликация справочных данных
11. термины вокруг репликации (master-slave, publishier-subscriber, одно-двухсторонняя репликация)
Контрольные вопросы:
1. Какого рода данные передаются между сервером и его репликой при query based репликации?
2. Какого рода данные передаются между сервером и его репликой при data based репликации?
3. Может ли транзакционная репликация замедлить работу всей системы?
4. Работает ли merge репликация на основе данных или на основе запросов?
5. Какой запрос называется детерминированным. Приведите пример недетерминированного запроса.
6. Почему многие прикладные пакеты (DocVision, Directum) не используют встроенную в СУБД репликацию?
7. Приведите пример конфликта в данных при репликации с нескольких источников
8. Какие виды репликации можно применять при балансировке нагрузки?
9. Чем отличается простое регулярное изготовление backup версий от резервной копии в виде реплики основной базы?
10. Каким образом репликация справочных данных может ускорить работу всей системы?
11. Как называется сервер, от которого можно создавать реплику?
12. В чём преимущество query-based репликации?
13. В чём преимущество merge репликации?
14. Каким образом можно организовать (и организовывают) репликацию между разными репозиториями систем контроля версий.
15. Предложите какой-нибудь алгоритм разрешения конфликтов при приёме данных из нескольких источников
16. Что делать если при репликации на основе журнала запросов журнал вырос до неимоверных размеров? Так чтобы новые реплики были работоспособными?
17. Каким образом можно организовать репликацию базы данных, которая часть данных хранит в виде файлов на диске? Какие при этом могут быть сложности?
18. Назовите преимущества transactional репликации?
19. Каким образом можно использовать репликацию (и используют ли) при работе на выносных устройствах (КПК, ноутбуки) без связи с Интернетом?
20. Можно ли при репликации передавать на реплику не все поля таблиц? Если можно, то как?
21. Какие сложности могут возникнуть при выборочной репликации части данных?
22. Приведите пример репликации из многих источников.

Тема 14. OLAP-кубы
Тезисы:
1. место в общей структуре проекта (после накопления первичных данных), простейший пример
2. Разные схемы хранения ROLAP, MOLAP, HOLAP
3. простейшая схема куба прямо средствами обычной СУБД
4. организационная работа (связь с первичными данными по времени)
5. связь с генерацией документов
6. детализация и упрощение
7. корреляционный анализ
8. связь с репликацией
9. специальный синтаксис запросов
10. связь с агрегатными функциями SQL
Контрольные вопросы:
1. C какой целью в информационной системе часть данных выделяются под отдельный механизм OLAP? Почему нельзя обойтись обычной СУБД и запросами?
2. Приведите наиболее близкий вам пример, где могли бы понадобиться OLAP кубы
3. Сколько таблиц в СУБД необходимо для создания 5 мерного куба ?
4. Насколько актуальными могут быть данные для анализа? По времени и по значениям?
5. Какие вещи должны обязательно предусматриваться при генерации документов для OLAP системы?
6. Приведите пример упрощения данных при построении OLAP куба
7. Приведите пример задачи на корреляционный анализа OLAP данных
8. Каким образом репликация может помочь при создании OLAP куба?
9. Какая синтаксическая конструкция языка используется чаще всего при работе с кубами (при построении разрезов)?
10. Каким образом строятся иерархические измерения средствами обычной СУБД?
11. Можно ли запросы к OLAP кубам реализовывать в обычной SQL базе данных обычными SQL запросами?
12. Приведите пример иерархического измерения
13. Какие клиентские средства для работы с OLAP кубами вы использовали бы, попроси вас об этом заказчик?
14. Можно ли при работе с OLAP обойтись только клиентскими средствами?
15. Назовите какие-нибудь OLAP средства, для использования в WEB
16. Опишите, как будет выглядеть обычный SQL запрос добавления факта в двухмерный OLAP куб без использования специфичного OLAP синтаксиса
17. Можно ли OLAP куб использовать как основу для восстановления данных основной системы?
18. Насколько критично в OLAP системах использование транзакций?
19. Какие требования архитектура OLAP предъявляет к конечным пользователям? Вообще, кто является конечным пользователем OLAP системы?
20. Перечислите агрегатные функции, которые, как правило используют при анализе.
21. Назовите недостатки OLAP подхода к анализу данных
22. В каких местах OLAP системы могут использоваться текстовые данные?
23. В каком виде в системе могут присутствовать данные типа «Дата»?
24. Как соотносится устройство OLAP кубов и требования о нормализации данных? Почему такая ситуация?
25. Приведите пример, когда данные перед помещением в OLAP кубы нуждаются во взаимном согласовании.

Тема 15. Аспектно - ориентированное программирование
Тезисы:
1. Понятие об объектно-ориентированном проектировании.
2. понятие аспектов и типовые примеры аспектов
3. аналоги в других технологиях программирования (темплэйты, инструментальные классы, trigger ы, view, декларативное программирование, функциональное программирование)
4. декларативное изменение объектов-классов как единый аспект
5. общие термины pointcut, joint points, advice
6. примеры на c++/java/С#
7. связь с декларативным программированием на макросах
8. проблемы (тестовое покрытие, оптимизация, анализ кода)
9. связь с программированием по контракту
10. Примеры самых распространённых систем (Spring)
Контрольные вопросы:
1. На каком этапе обрабатываются аспекты? (компиляция, выполнение)?
2.


Тема 16. движение OpenSource
Тезисы:
1. основная лицензия – GPL, её особенности
2. для чего нужна LGPL
3. отличия лицензии BSD и почему она проиграла пока GPL
4. особенности авторского права на ПО в России
5. типовая структура OpenSource проекта
6. отношения к patch-ам
7. полностью «свободные» лицензии
8. структура управления проектами группы Apache (Jakarta) их законы
9. версионирование открытых проектов
10. проблемы движения OpenSource
Контрольные вопросы:
1. Можно ли продавать продукты, на которые распространяется лицензия GPL?
2. Какую основную цель преследовали создатели LGPL?
3. Почему Линус Торвальдс выбрал LGPL?
4. Могут ли в России абсолютно все права на программный продукт принадлежать юридическому лицу?
5.


Сквозные практические примеры-темы:

Общий план практических занятий
1. преподаватель выступает в качестве заказчика проекта по конкретной предметной области, с минимальной, реальной постановкой-идеей и последующей постоянной её корректировкой, ответами на вопросы и выставлением новых требований (всё как в жизни)
2. студенты готовят полное обеспечение проекта, параллельное теоретическим занятиям, маркетинговый паспорт, схему данных, проект интерфейса, оценка проекта, календарный план, ТЗ, разработанные персонажи, план тестирования и развёртывания, инфраструктура документации, сборки и установки и т.п.
3. в конце семестра должно получится то, что обычно описывается как результат исследовательской фазы проекта – нормальное ТЗ - коммерческое предложение.


Задание 21. Система управления договорами пенсионного страхования.
1. список договоров
2. генерация договора
3. выгрузка во внешнюю систему и учёт выгрузок
4. подписанты
5. наследники

Задание 22. Система управления Media-ресурсами корпорации.
1. файловый архив медиа-роликов с мета-информацией
2. список источников для записи (камеры, телеканалы)
3. список получателей для трансляции (компьютеры, плазменные экраны)
4. плэй-листы с возможностью вставки рекламной информацией, замены звука, добавления теле-текста
5. регистрация заявок на запись и перекодирование
6. регистрация заявок на рекламу
7. регистрация заявок на трансляцию
8. поиск медиа-информации и воспроизведение по требованию

Задание 23. Программа сопровождения деятельности оценщика.
1. оценка наследства
2. оценка имущества при разводе
3. оценка предпродажная
4. оценка бизнеса
5. оценка недвижимости
6. оценка транспортных средств
7. оценка ущерба
8. экспорт/импорт необходимых данных
9. ввод необходимых данных вручную
10. генерация необходимых отчётов с возможностью ручного редактирования перед печатью
11. список клиентов
12. список и свойства оцениваемого имущества
13. справочник цен
14. справочник трудоёмкости различных операций и цен на них
15. генерация различных бланков, заявлений и анкет

Задание 24. Программа для проведения финансового анализа предприятия
1. генерация бумажного отчёта с возможностью внесения ручных исправлений
2. список предприятий для анализа
3. экспорт необходимой информации из различных бухгалтерских систем
4. ручной ввод и редактирование необходимой информации

Задание 25. Программа для проведения инвентаризации на предприятии
1. экспорт старых инвентаризационных ведомостей в различном формате
2. генерация разных вариантов инвентаризационных ведомостей
3. регистрация нового элемента
4. список предприятий-собственников
5. свойства элемента регистрационной ведомости
6. клиент для КПК
7. экспорт в разных форматах
8. хранение фотографий

Задание 26. Программа для управления архивом документов и их совместным редактированием
1. операции забрать документ на редактирование (с блокированием)
2. операция отмена блокировки (с откатом на вариант из базы)
3. операция завершения редактирования
4. операция забрать документ на чтение
5. просмотр статуса обработки документа (история изменений, кто заблокировал и т.п.)
6. поиск в базе
7. резервное копирование всей базы
8. операция сжатия локального репозитория
9. создание документа, регистрация в репозитории, удаление из репозитория

Задание 27. Программа для сопровождения диспетчерской службы таксопарка.
1. список машин
2. список заказов
3. список клиентов
4. адресная база
5. форма приёма заказа
6. отработка заказов «на будущее»
7. разбиение по районам и очередь на каждый район

Задание 28. Портал обучающего центра.
1. список модулей теоретической части
2. список модулей практической части
3. список модулей для самостоятельной проработки
4. типовые курсы, набранные из модулей
5. связи между модулями
6. получение бесплатных и платных модулей
7. общий форум
8. форум при каждом курсе/предмете
9. поиск
10. загрузка новых модулей преподавателями
11. регистрация отзывов о модулях
12. онлайновое прохождение курса

Задание 29. Программа для автоматизации работы кадрового агентства.
1. список работодателей
2. список резюме соискателей
3. список предприятий-доноров с описанием
4. список командных резюме
5. календарь событий
6. договора с предприятиями
7. счета
8. форма для заполнения резюме
9. агрегация с различными Интернет-ресурсами
10. психологические анкеты
11. записи о карьерных продвижениях

Задание 30. Система учёта договоров, выставления счетов на них, отслеживание оплаты, пеней и штрафов.
1. добавление, редактирование, удаление договоров
2. различные варианты выставления счетов по договорам
3. связанные с договором списки «todo» и возможность отметки их выполнения
4. список контрагентов
5. регистрация платежей от контрагентов
6. генерация писем-напоминаний
7. генерация счёта
8. общий календарь платежей

Задание 31. Сертификационный центр для цифровой подписи с защищённым каналом передачи подписанных сообщений.
1. список клиентов
2. список выданных сертификатов (регистрация, удаление)
3. процедура проверки сертификата
4. репозиторий подписанных сообщений
5. приём сообщений
6. загрузка сообщений
7. уведомления о получении сообщений

Задание 32. Система учёта съёмного жилья
1. список съёмщиков
2. список сдающих
3. генерация договора
4. генерация счетов
5. список имущества в сдаваемом жилье
6. интеграция с различными Интернет-ресурсами
7. генерация объявлений
8. подбор соседей
9. расчёт стоимости

Задание 33. Интегрированная среда разработки для какого-либо языка программирования.
1. окно редактирования с подсветкой синтаксиса
2. окно для вывода результатов компиляции/проверки синтаксиса (с подробным комментарием к каждой ошибке)
3. окно тестового запуска программы с возможностью задания тестовых результатов
4. окно с точками останова
5. окно – просмотр локальных переменных
6. окно – стек вызовов

Задание 34. Система управления содержимым сайта (CMS).
1. добавление страниц
2. добавление разделов
3. портлеты
4. раздел новостей
5. каталог для электронного магазина
6. раздел форум

Задание 35. Система расчёта участка сети теплоснабжения.
1. план
2. план глубин
3. учёт точек потребления тепла
4. расчёт общего падения тепла
5. генерация отчёта/плана

Задание 36. Система автоматизации учебной части школы.
1. список классов
2. список учеников
3. список предметов
4. оценки
5. домашнее задание
6. замечания
7. календарь
8. расписание
9. список кабинетов
10. взаимодействие с учениками (домашнее задание, расписания)
11. взаимодействие с родителями (регулярное уведомление об успеваемости, внеочередное замечание/вызов в школу, приглашение на родительское собрание, счета, список «чего купить» )

Задание 37. Список покупок на вашем мобильнике
http://habrahabr.ru/blog/startup/44550.html
1. удобное заполнение и редактирование списков без перезагрузки страниц, с автокомплитными списками (основной ассортимент гипермаркетов)
2. запоминание ранее введенных наименований и возможность выбирать их также из списка (т.е. можно хоть запчасти на машину вписывать)
3. отправка готового списка по SMS (необходимо пополнение баланса платным SMS сообщением)
4. отправка на емайл (дешево и сердито если мобильник почту принимает)
5. отправка на печать
6. доступ к спискам с мобильного браузера.
7. возможность закрытия списка с указанием суммы чека
8. статистика с помесячными суммами

Задание 38. Портал «дневник новорожденного»
1. общий форум
2. общий чат
3. блоги с отметками вес, рост, анкетой достижений
4. галерея фотографий
5. календарь событий с планом «todo» и типовыми milestone
6. контекстная реклама

Задание 39. Автоматизация туристического агентства
1. список клиентов
2. генерация договора
3. печать памятки
4. путёвка, памятка
5. список туроператоров и путёвок
6. календарь событий со встроенным прогнозом погоды
7. интеграция с google-map
8. поиск вариантов по сумме
9. поиск вариантов по региону

Задание 40. Портал «социальная сеть рыболовов»
1. форум
2. статьи
3. новости
4. блоги
5. описания/отзывы конкретных рыбных мест
6. календарь

Задание 41. Портал «Свадьбы»
Общие, открытые для всех разделы:
1. открытый для всех форум
2. раздел статей (база знаний)
3. раздел новостей
4. каталоги типовых субподрядчиков с отзывами
Для каждой отдельной свадьбы:
1. закрытые форумы на отдельную свадьбу
2. список приглашённых
3. план рассадки приглашённых
4. список желательных подарков
5. меню
6. составление календарного плана подготовки мероприятия
7. составление распорядка мероприятия
8. выбор подрядчиков (фотограф, машины, тамада, музыка, развлечения, столовая/кафе)
9. общая смета расходов
10. сравнение со сметами расходов (из архива) и подбор по нужной сумме
11. распечатка приглашений, с возможностью заказать их доставку
12. портал с фотографиями и видео
13. возможность заказать фотоальбом или диск и заказать их доставку
Раздел для субподрядчиков:
1. внутренний форум
2. профиль подрядчика
3. описания политики цен и скидок
Источники окупаемости (варианты):
1. откаты с субподрядчиков
2. абонентская плата с субподрядчиков
3. сумма со свадьбы (и возможно за дальнейший хостинг)
4. контекстная реклама

Темы курсовых работ:

1. Портал «Свадьбы»
1. описание задачи – смотри практическое задание 42
2. язык реализации – php
3. содержание задачи – реализовать и разместить в сети

2. Сертификационный центр для цифровой подписи с защищённым каналом передачи подписанных сообщений.
1. описание задачи – смотри практическое задание 31
2. язык реализации – ASP.NET
3. содержание задачи – реализовать и разместить в сети

3. Распределённая система хранения информации о контрагентах
1. система для общего хранения информации об юридических и физических лицах
2. язык реализации – ASP.NET
3. содержание задачи – реализовать и разместить в сети сервис

Практические темы прошлых семестров можно посмотреть на default.aspx?g=posts&t=395&p=1
можно в теории взять что то из них, но результат должен сильно отличаться в лучшую сторону, а также нужно внестик какую то новую идею.

В принципе можно предложить свою тему..
Аватар пользователя
vva
Администратор
 
Сообщений: 2914
Зарегистрирован: 06 фев 2007, 13:33

Сообщение vva » 02 сен 2008, 16:40

первая лекция в виде предназначенном для чтения в online здесь:

default.aspx?g=posts&t=744
Аватар пользователя
vva
Администратор
 
Сообщений: 2914
Зарегистрирован: 06 фев 2007, 13:33

Сообщение vva » 03 сен 2008, 10:35

на первом занятии разобрали темы:

1. Ботов: тема 1, задание 29
2. Зиновьева: тема 2, задание 38
3. Ившина: тема 3, задание 27
4. Ведерникова: тема 4, задание ?
5. Гиззатова: тема 5, задание 41
6. Серебрянников: тема 6, задание 31
7. Шадрина: тема 7, задание 30
8. Дементьев: тема 8, задание 28
9. Киселёв: тема 9, задание 32
10. Копкова: тема 11, задание 23
11. Злобин: тема 14, задание 37
12. Каримов: тема 15, задание 22

видимо отсутствовало 9 человек (сдают хвосты), полный список староста почему то не приготовила, ждём на следующей паре

остались неразобранными

тема 10 "развёртывание информационных систем"
тема 12 "работа со специальными структурами в СУБД"
тема 13 "репликация баз данных"
тема 16 "движение Open Source"

задание 21 "система управления договорами пенсионного страхования"
задание 24 "программа для фин анализа"
задание 25 "программа для инвентаризации"
задание 26 "программа управления архивом документов"
задание 33 "среда разработки"
задание 34 "CMS"
задание 35 "система расчёта участка теплоснабжения"
задание 36 "система автоматизации учебной части школы"
задание 39 "автоматизация тур агенства"
задание 40 "соц сеть рыболовов"

на следующей практике начну выставлять оценки за первую часть практического задания -
"маркетинговый пасспорт проекта"
Аватар пользователя
vva
Администратор
 
Сообщений: 2914
Зарегистрирован: 06 фев 2007, 13:33

Сообщение vva » 11 сен 2008, 10:15

по результатам последней пары:

докладывал Ботов на тему "Проектирование схемы данных"

сам доложился на 3.

- вообще не дал определения для нормализации и нормальных форм
- не продумал примеры и основные моменты для видов связи
- вообще не понял о чём надо рассказывать по 6-му тэзису "отображение иерархии наследования на базу данных". пытался выдать экспромпт про отображении просто иерархии (деревьев т.е. - у нас это будет в теме 12) и про наследование материальных ценностей от умерших родителей к детям. смешно.
- нотации описания (UML и ER) не раскрыл вообще никак
- по остальным пунктам в принципе выдал какие то знания, но приходилось вести, тянуть знания и ответы клещами, постоянно задавать вопросы, поправлять самому

пожаловался на недостаток времени и материалов (BTW я уже давал ссылку на прошлый курс, по которой можно найти данный реферат в почти готовом виде с раскрытием практически всех, в том числе и проблемных тэзисов - default.aspx?g=posts&t=395&p=2 - качать файл DB_scheme_doclad_Celishev.zip)

Временами заносило на какие то совсем мракобесные темы вроде
- концептуальный и ещё какой то практический уровень (программисты сразу ИМХО должны видеть как в железе будет)
- нехорошести понятия NULL и проблемах при его использовании (я понимаю что такое можно вычитать в ранних работах по реляционной алгебре, но в современном SQL без NULL никуда, и работает он везде одинаково и корректно!!!! )
- схеме уровневой работу с данными DAL/BLL "как это делают в ЦВТ" (весьма устаревший подход который мы будем разбирать в теме 7, студентам можно про него уже постепенно забыть)

сослался на источник по которому готовился: http://www.citforum.ru/database/dbguide/index.shtml

ну что, теперь чтобы исправлять оценку, нужно прислать "правильный" доклад в электронном виде. скомбинировать его из вышеприведённого прошлогоднего доклада Целищева, только изложить всё последовательно и красиво, так чтобы это можно было красиво на одном дыхании рассказать..

+ нужно видимо дать небольшое введение с определением что же такое отношение в математическом смысле и объяснить как это отображается на таблицу (что характерно в прошлом году группа тоже не вспомнила определение отношения.. и эти люди заявляют что факультет отделился от математического..!) - т.е. всё по порядку.. декартово произведение, кортэж, отношение, таблица.. да.. и неплохо после этого дать определение что такое функциональная зависимость..

после лекции как и обещалось задавались контрольные вопросы аудитории со следующим результатом (фаимлия, номер вопроса, оценка):

Ившина 1 5
Ведерникова 10 5
Гиззатова 20 2
Шадрина 18 5
Дементьев 8 4
Кисилёв 21 5
Копкова 14 4
Каримов 2 5
Белякова 12 3
Шалыгина 19 2

средняя оценка среди присутствующих - 4
но!
если учитывать пропустивших занятие как оценку 0, средняя оценка - 2!

значит оценка улучшится только когда двоечники и пропустившие ответят на свои вопросы
Аватар пользователя
vva
Администратор
 
Сообщений: 2914
Зарегистрирован: 06 фев 2007, 13:33

Сообщение vva » 11 сен 2008, 10:27

дополнительно на паре взяли темы и задачи следующие студенты:

4. Ведерникова: тема 4, задание 40
13. Белякова: тема 16, задание 21
14. Шалыгина: тема 10, задание 24

остались неразобранными

тема 12 "работа со специальными структурами в СУБД"
тема 13 "репликация баз данных"

задание 25 "программа для инвентаризации"
задание 26 "программа управления архивом документов"
задание 33 "среда разработки"
задание 34 "CMS"
задание 35 "система расчёта участка теплоснабжения"
задание 36 "система автоматизации учебной части школы"
задание 39 "автоматизация тур агенства"

По практике, что то я до сих пор не вижу вообще никакого результата, хотя вся теория доведена, а по отдельным пунктам можно просто смотреть то как делали в прошлом году. Видимо на ближайшей практике если никто ничего не принисёт придётся оставить полностью всю группу и заставить на месте проектировать на бумажке.

К концу семестра нужно оформить документ условно обозванный "технического предложение" по по проекту, включающее себя для программистов (экономистов):

1. маркетинговый пасспорт
2. описание структур данных (схема структур данных)
3. проект интерфейса (1-2 наиболее показательных экранных формы)
4. схема перехода между формами, на которой должны присутствовать все экранные формы системы
5. сценарий тестирования, описывающий обход всех форм
6. описание выбранной архитектуры
7. оценка трудоёмкости
8. календарный план реализаций отсчитанный от 1 января 2009 года

для дизайнеров:

1. маркетинговый пасспорт
2. полное описание двух целевых персонажей пользователей системы
3. проект интерфейса (1-2 наиболее показательных экранных формы - хочу чтобы дизайнеры нарисовали красиво!)
4. схема перехода между формами, на которой должны присутствовать все экранные формы системы
5. сценарий тестирования, описывающий обход всех форм
6. рекламный flash-баннер для продукта
7. оценка трудоёмкости
8. календарный план реализаций отсчитанный от 1 января 2009 года
Аватар пользователя
vva
Администратор
 
Сообщений: 2914
Зарегистрирован: 06 фев 2007, 13:33

Сообщение vva » 11 сен 2008, 10:37

так, некоторые выданные темы были неполными (не все вопросы или не все тезисы..)
уточняем задачу..

Тема 4. "Организация общения с заказчиком и разработки IT-проектов"
Тезисы:
1. первоначальное составление ТЗ и управление требованиями (requirements management).
2. выбор архитектуры – используемых программно-аппаратных компонентов, учёт рисков, учёт времени на отладку и тестирование, интеграционное тестирование.
3. основные роли представителей заказчика по отношению к проекту и их учёт
4. оценка трудозатрат на реализацию (estimation) и календарное планирование, планирование релизов и того, что в них должно быть (feature driven development)
5. управление проектом в треугольнике «качество – время - ресурсы»
6. роли людей в ИТ-команде (разработчик, team-leader, project-manager, sales-manager, аналитик, тестировщик, технический писатель, designer, сотрудник службы поддержки)
7. организация общения внутри команды - wiki, bug-tracking, списки рассылки, чат, time-report ы и регулярные планёрки
8. требования к процедуре commit а, организация code-review
9. простейшие эргономические требования (шум, занимаемая площадь, время, режим работы), настройка рабочего места
10. задача управления проектом как поиск оптимальной траектории роя разработчиков

Тема 17. Аспектно - ориентированное программирование
Контрольные вопросы:
1. На каком этапе обрабатываются аспекты? (компиляция, выполнение)?
2. Можно ли при аспекте завести поле с данными и в каком месте это поле будет тогда хранится?
3. Как согласуются template ы (generic и) и АОП?
4. В каком порядке применяются advice ы?
5. Можно ли применять advice ы к методам Аспекта?
6. Можно ли каким либо образом получить исходники программы без аспектов?
7. Как тестировать программы на AOP? (c advice ми, без них, с выбранным набором)
8. Как пересекаются аспекты с уровнями видимости (private, public, protected)?
9. Каким образом можно следовать аспекто-ориентированной парадигме при программировании в обычной OOP среде?
10. Можно ли накладывать advice ы при загрузке dll? (в процессе линковки)?
11. Можно ли в определении точки выполнения использовать условия на конкретные данные?
12. Можно ли тестировать отдельно каждый аспект?
13. Как точки выполнения ведут себя при работе с виртуальными методами? Можно ли прицепиться к методу конкретного класса или во всем его потомкам отдельно?
14. Как подстраховаться от того, что кто то переименует метод, к которому была прицеплена точка подключения?
15. Перечислите какие-нибудь из классических паттернов программирования, которые могут быть реализованы существенно по новому с использованием поддержки аспектов.
16. Могу ли я прицепить точку присоединения к вызову конкретного делегата?
17. Сработает ли точка присоединения если вызвать метод через делегат?
18. Как пересекаются аспекты и сериализация? Если мне при аспекте нужны какие то данные, как я буду их сериализовать?
19. Можно ли использовать точки присоединения к методам интерфейса?
20. Можно ли выпускать библиотеки аспектов как коммерческий продукт и в каком виде они должны в этом случае поставляться?
21. Можно ли используя аспекты нарушить "контракт программирования" определённый через interface
22. Можно ли продавать аспекты написанные для framework а Spring как отдельные продукты, не предоставляя исходников?
23. Расширяет ли использование аспектов во framework е Spring синтаксис языка Java?
24. Для чего нужен Inversion of Control (Dependency Injection)
25. Для чего классы в Spring, работающие с аспектами должны наследовать interface?

По последней теме 18. "движение OpenSource", допишу контрольные вопросы в ближайшее время.
Аватар пользователя
vva
Администратор
 
Сообщений: 2914
Зарегистрирован: 06 фев 2007, 13:33

Сообщение vva » 16 сен 2008, 11:47

В связи с сегодняшним мероприятием в нашей компании занятие вместо меня проведёт наш руководитель ВЕБ-проектов Андрей Корольков.
Аватар пользователя
vva
Администратор
 
Сообщений: 2914
Зарегистрирован: 06 фев 2007, 13:33

Сообщение vva » 22 сен 2008, 18:08

результаты последней пары:

докладывала Зиновьева на Темe 2. "Проектирование пользовательского интерфейса системы"
доложилась на 4, тезисы раскрыла.
жду доклад в электронном виде.

контрольные вопросы аудитории со следующим результатом (фаимлия, номер вопроса, оценка):

Ботов 9 5
Зиновьева 22 4
Ившина 2 4
Гиззатова 14 4
Шадрина 3 4
Дементьев 11 2
Киселёв 5 4
Копкова 12 3
Злобин 19 2
Каримов 15 5
Белякова 16 3
Вахрушев 4 4
Исмагилова 20 3
Леонтьев 8 2
Романова 10 2

средняя оценка среди присутствующих - 3,6
если учитывать пропустивших занятие как оценку 0, средняя оценка - 2,4!

оценка улучшится когда двоечники и пропустившие ответят на свои вопросы
Аватар пользователя
vva
Администратор
 
Сообщений: 2914
Зарегистрирован: 06 фев 2007, 13:33

Сообщение vva » 22 сен 2008, 18:26

дополнительно на паре взяли темы и задачи следующие студенты:

14. Вахрушев: тема ?, задание 26
16. Исмагилова: тема 13, задание 36
17. Леонтьев: тема 13, задание 33
20. Романова: тема 12, задание 39

остались неразобранными задачи

задание 25 "программа для инвентаризации"
задание 34 "CMS"
задание 35 "система расчёта участка теплоснабжения"

и до сих пор не появились на занятиях и ничем не озадачились товарищи
Пишков
Пушин
Щелчков
Аватар пользователя
vva
Администратор
 
Сообщений: 2914
Зарегистрирован: 06 фев 2007, 13:33

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron