1.
Почему затраты на формирование требований
и определении структуры системы могут превосходить стоимость продаваемых
программ?
2.
Какими четырьмя характеристиками должен
обладать любой программный продукт?
3.
Каково различие между моделью процесса
создания ПО и самим процессом?
4.
Почему в процессе определения требований
необходимо различать разработку пользовательских требований и разработку
системных требований?
5.
Каковы пять основных компонентов любых
методов проектирования?
6.
Разработайте модель процесса тестирования
исполняемой программы.
7.
Объясните,
почему нематериальность программных систем порождает особые проблемы в процессе
управления программными проектами.
8.
Объясните,
почему хорошие программисты не всегда могут быть хорошими менеджера проектов.
9.
Объясните,
почему процесс планирования проекта является итерационным и почему план должен
постоянно пересматриваться в течение всего срока выполнения проекта.
10.
Опишите кратко каждый раздел плана выполнения программного проекта.
11.
В табл. 1 показаны этапы некоего проекта, их длительность и
взаимозависимость между ними. Нарисуйте сетевую и временную диаграммы этапов
работ для данного проекта.
Таблица 1 - Этапы
проекта
Этап
|
Длительность
(дни)
|
Зависимость
|
Т1
|
10
|
|
Т2
|
15
|
Т1
|
ТЗ
|
10
|
Т1,Т2
|
Т4
|
20
|
|
Т5
|
10
|
|
Т6
|
15
|
ТЗ,Т4
|
Т7
|
20
|
ТЗ
|
Т8
|
35
|
Т7
|
Т9
|
15
|
Т6
|
Т10
|
5
|
Т5, Т9
|
Т11
|
10
|
Т9
|
Т12
|
20
|
Т10
|
Т13
|
35
|
ТЗ, Т4
|
Т14
|
10
|
Т8,Т9
|
Т15
|
20
|
Т12,Т14
|
Т16
|
10
|
Т15
|
12.
Менеджер проекта предупреждает о возможной задержке выполнения
работ, которой можно избежать только за счет бесплатных сверхурочных работ
команды разработчиков. Все члены команды имеют семьи, требующие определенной
доли внимания. Обсудите возможность отклонения предложения менеджера о
бесплатных сверхурочных работах либо согласия предпочесть интересы организации
семейным интересам. Какие аргументы наиболее весомы в этой дискуссии?
13.
Как опытному программисту, вам предложили возглавить управление
проектом, но вы чувствуете, что больше пользы можете принести в качестве
технического специалиста, а не менеджера проекта. Обсудите возможности принятия
или отклонения предложения возглавить программный проект.
14.
Объясните, почему архитектурное проектирование системы должно
предшествовать разработке формальной спецификации.
15.
Банковские автоматы используют информацию с карточки клиента,
предоставляющую идентификатор банка, номер счета и персональный идентификатор
клиента. Они также получают информацию из центральной базы данных и вносят в нее
изменения по завершении транзакции. Используя ваши знания работы банкоматов,
напишите
Z-схему, определяющую состояния системы, проверку карточки клиента и
снятие денежных средств.
16.
Вы системный инженер и вас просят назвать наилучший способ
разработки программного обеспечения для сердечного стимулятора, критического по
обеспечению безопасности. Вы предлагаете разработать формальную спецификацию
системы, но ваше предложение отвергнуто менеджером. Вы считаете, что его доводы
не обоснованы и базируются на предубеждениях. Будет ли этичной разработка
системы с использованием методов, которые вы считаете неподходящими?
17.
Объясните, почему архитектуру системы необходимо разработать до
окончания создания спецификации.
18.
Обсудите
преимущества и недостатки модели потоков данных и объектной модели в
предположении, что необходимо разработать как локальную, так и распределенную
версии программного приложения.
19.
Предположим,
существует конкретная должность "архитектор программного обеспечения"; его роль
состоит в проектировании системной архитектуры независимо от того, для какого
заказчика выполняется данный проект. Такая должность может быть, например, в
компании, занимающейся разработкой ПО. Какие трудности могут возникнуть при
введении данной должности?
20.
Объясните, почему в проектировании систем применение подхода,
который полагается на слабо связанные объекты, скрывающие информацию о своем
представлении, приводит к созданию системной архитектуры, которую затем можно
легко модифицировать.
21.
Покажите на примерах разницу между объектом и классом объектов.
22.
При каких условиях можно разрабатывать систему, в которой объекты
выполняются параллельно?
23.
Разработайте проект метеостанции, показывающий взаимодействие между
подсистемой сбора данных и приборами, собирающими данные. Воспользуйтесь
диаграммой последовательностей.
24.
Определите возможные объекты в следующей системе, применяя при этом
объектно-ориентированный подход:
·
Система "Дневник группы" поддерживает расписание собраний и встреч
в группе сотрудников. Для организации встречи, в которой участвует группа людей,
система находит общие для всех личных дневников свободные "окна" и назначает эту
встречу на определенное время. Если система не находит общих "окон", то начинает
взаимодействовать с пользователями, чтобы реорганизовать личные дневники и тем
самым создать "окно" для встречи.
25.
Определите возможные объекты в следующей системе, применяя при этом
объектно-ориентированный подход:
·
Установлена полностью автоматизированная бензоколонка. Водитель
вставляет кредитную карточку в считывающее устройство, связанное с насосом;
карточка по линиям коммуникаций проверяется кредитной компанией, устанавливается
требуемое количество бензина. Затем автомобиль заправляется горючим. Когда
подача прекращается, с кредитной карточки водителя снимается стоимость
полученного бензина. Кредитная карточка возвращается после вычета водителю. Если
карточка неверна, она возвращается водителю перед подачей топлива.
26.
Разработайте модель рабочего окружения для информационной системы
больницы. Модель должна предусматривать ввод данных о новых пациентах и систему
хранения рентгеновских снимков.
27.
Создайте модель обработки данных в системе электронной почты.
Необходимо отдельно смоделировать отправку почты и ее получение.
28.
Нарисуйте модель конечного автомата управляющей системы для
программного обеспечения проигрывателя компакт-дисков;
29.
Используя подход "сущность-связь", опишите возможную модель данных
для системы библиотечного каталога.
30.
Разработайте объектную модель, включающую диаграммы иерархии
классов и агрегирования, и показывающую основные элементы системы персонального
компьютера и его программного обеспечения.
31.
Разработайте диаграмму последовательностей, которая показывает
действия студента, регистрирующегося на определенный курс в университете. Курс
может иметь ограниченное число мест, поэтому процесс регистрации должен
проверять количество доступных мест. Предположите, что студент обращается к
электронному каталогу курсов, чтобы выяснить количество доступных мест.
32.
Обсудите различия между верификацией и аттестацией и объясните,
почему аттестация является более сложным процессом.
33.
Объясните, почему не нужно устранять все дефекты в программе перед
ее поставкой заказчику. До каких пор следует тестировать программу, чтобы
удостовериться, что она соответствует своему назначению?
34.
Объясните, почему инспектирование программы является эффективным
методом обнаружения в ней ошибок. Какие типы ошибок нельзя обнаружить методом
инспектирования?
35.
Составьте отчет, в котором бы приводились преимущества метода
"чистая комната", а также связанные с ним расходы и риски.
36.
Менеджер решил для оценки специалистов в качестве исходных данных
воспользоваться отчетами о результатах инспектирования программ. В отчетах
содержится информация о том, кто совершил и кто обнаружил ошибки в программе.
Этичны ли действия менеджера? Этично ли заранее проинформировать персонал об
этом? Как это решение может повлиять на процесс инспектирования?
37.
Один из подходов, широко используемых при тестировании ПО, состоит
в тестировании системы до тех пор, пока не будут израсходованы все средства,
выделенные на тестирование. Затем система передается заказчикам. Обсудите
этичность такого подхода.
38.
Обсудите различия между тестированием методом черного ящика и
структурным тестированием. Подумайте, каким образом можно совместно использовать
эти методы в процессе тестирования дефектов.
39.
Какие проблемы тестирования могут возникнуть в программах, которые
обрабатывают как очень большие, так и очень малые числа?
40.
На примере небольшой программы покажите, почему практически
невозможно полностью протестировать программу.
41.
Объясните, почему методы нисходящего и восходящего тестирования не
подходят для объектно-ориентированных систем.
42.
Опишите два подхода к определению производительности программиста.
Отметьте преимущества и недостатки каждого подхода.
43.
Приведите пять факторов, которые оказывают существенное влияние на
производительность команды программистов по разработке больших встроенных систем
реального времени.
44.
Любой оценке стоимости присущ определенный риск, независимо от
метода оценки. Предложите четыре способа снижения возможного риска при оценке
стоимости.
45.
Назовите три причины, по которым алгоритмические оценки стоимости,
проведенные различными компаниями, не будут сопоставимыми.
46.
Объясните, каким образом менеджеры проектов могут использовать
алгоритмический подход к оценке стоимости для анализа проектных характеристик.
Опишите ситуацию, когда менеджеры выбирают подход, не основанный на принципе
наименьшей стоимости проекта.
47.
Некоторые большие программные проекты требуют написания миллионов
строк кода. Объясните, насколько полезными могут быть модели определения
стоимости для таких систем. В каких случаях они могут быть неприменимы к большим
системам?
48.
Насколько этично назначить компанией-разработчиком относительно
низкую цену для контракта, зная, что при столь неопределенных требованиях можно
со временем повысить цену за дополнительные изменения в них, которые со временем
обязательно будут сделаны заказчиком?
49.
Следует ли менеджерам применять критерий производительности для
определения деловой характеристики специалиста? Какие меры предосторожности
необходимы, чтобы этот процесс определения
профессиональных возможностей
специалиста не
влиял на
качество его
работы?
50.
Отмечалось, что объекты, которыми манипулирует пользователь, должны
отображать его понятия предметной области приложения ПО (а не компьютерной
предметной области). Предложите подходящие объекты манипулирования для следующих
типов пользователей и систем.
51.
Какие факторы следует учитывать при проектировании интерфейсов,
использующих меню, для таких систем, как банкоматы? Опишите основные черты
интерфейса банкомата, которым вы пользуетесь.
52.
Предложите способы адаптации пользовательского интерфейса в
системах электронной коммерции (например, виртуального книжного магазина или
магазина музыкальных дисков) для пользователей,
имеющих физические недостатки,
например плохое зрение или
проблемы опорно-двигательной
системы.
53.
Какими основными принципами следует руководствоваться при
использовании цветов в интерфейсах пользователя? Предложите более эффективный
способ использования цветов в интерфейсе любого известного вам приложения.
54.
Составьте анкету по сбору данных об интерфейсе какой-либо известной
вам программы (например, текстового редактора). Если есть возможность,
распространите эту анкету среди других пользователей и попытайтесь оценить
результаты анкетирования. Что вы узнали об интерфейсе программы из анкет?
55.
С какими этическими проблемами сталкиваются разработчики
интерфейсов, когда пытаются согласовать запросы конечных пользователей системы с
требованиями организации, которая оплачивает разработку данной системы?
56.
Почему системы реального времени обычно реализованы как множество
параллельных процессов? Проиллюстрируйте свой ответ примерами.
57.
Объясните, почему объектно-ориентированные методы разработки ПО не
всегда подходят к системам реального времени.
58.
Обсудите сильные и слабые стороны Java как языка программирования
для реализации систем реального времени.
59.
Предложите, кто бы мог участвовать в формировании требований для
университетской системы регистрации студентов. Объясните, почему почти
неизбежно, что требования, сформулированные разными лицами, будут противоречивы.
60.
Разрабатывается система ПО для автоматизации библиотечного
каталога. Эта система будет содержать информацию относительно всех книг в
библиотеке и будет полезна библиотечному персоналу, абонентам и читателям.
Система должна иметь средства просмотра каталога, средства создания запросов и
средства, позволяющие пользователям резервировать книги, находящиеся в данный
момент на руках. Определите основные опорные точки зрения, которые необходимо
учесть в спецификации системы, и покажите их взаимоотношения, используя
диаграмму иерархии точек зрения.
61.
Приведите пример типа системы, где социальные и политические
факторы могут иметь
c влияние на системные требования.
62.
Кто должен проводить обзор требований? Нарисуйте модель процесса
обзора требований.
63.
Существуют ситуации, когда изменения в системе вносятся прежде, чем
изменения в требованиях будут одобрены. Предложите модель процесса внесения
срочных изменений в систему, который гарантирует согласованность системы и
спецификации требований.
64.
Ваша компания использует стандартный метод анализа требований. В
процессе работы вы обнаружили, что этот метод не учитывает социальные факторы,
важные для системы, которую вы анализируете. Ваш руководитель дал вам ясно
понять, какому методу анализа нужно следовать. Обсудите, что вы должны делать в
такой ситуации.
65.
Дайте краткое описание иерархической структуры человеческой памяти.
Объясните, почему данной структурой обеспечивается лучшее понимание
объектно-ориентированных систем, чем систем, построенных на функциональной
декомпозиции.
66.
Каково различие между синтаксическими и семантическими знаниями?
Исходя из вашего личного опыта, дайте несколько примеров этих двух типов знания.
67.
Какие факторы прежде всего принимаются во внимание при подборе
сотрудников для работы над программным проектом?
68.
Объясните, каким образом доступность информации о ходе разработки
проекта и тех технических решениях, которые имеют отношение ко всем членам
группы, могут усилить сплоченность группы.
69.
Дайте определение понятия "групповая мысль". Опишите, какие
затруднения могут возникать в результате этого явления и как их можно избежать.
70.
Представьте, что вы менеджер и вас попросили спасти проект, от
которого зависит финансовый успех или неуспех всей компании. Руководство
старшего уровня передало вам незакрытый бюджет, и вам предстоит набрать команду
из пяти человек, работающих в данный момент над другими проектами компании.
Кроме того, конкурирующая фирма, специализирующаяся в этой же области, активно
набирает персонал, и некоторые ваши сотрудники перешли к конкурентам.
71.
Почему открытые и общие помещения менее пригодны для работы команды
программистов, чем индивидуальные кабинеты? В каких случаях, по вашему мнению,
открытые офисы оказываются более подходящими?
72.
Как вы думаете, порядочно ли схитрить и дать те ответы на вопросы в
психологическом тесте, которые работодатель хочет от вас услышать, а не говорить
того, что вы на самом деле думаете?
|