Билет 22 - stankin/design-1 GitHub Wiki
Вопрос 1. Понятия процесса, проекта, менеджмента. Влияние человеческого фактора на технические объекты.
Проект — это временное предприятие, предназначенное для создания уникальных продуктов, услуг или результатов.
Проекты всегда нацелены на получение конкретных результатов. Именно эти результаты, сформулированные в форме целей, являются основой проекта, и все усилия по его планированию и реализации предпринимаются для того, чтобы эти цели были достигнуты. Проект обычно представляет собой совокупность взаимосвязанных целей. Например, основной целью проекта в области ИТ, может быть разработка информационной системы управления предприятием. Однако такая целевая установка предполагает наличие нескольких подцелей, которыми могут быть: разработка базы данных, математического и программного и технического обеспечения системы, ее тестирование. В разработке базы данных, в свою очередь, также могут быть выделены цели более низкого уровня - разработка логической структуры базы данных, реализация базы данных с помощью подсистемы управления базами данных, и так далее.
Проект включают в себя выполнение многочисленных взаимосвязанных действий. В отдельных случаях эти взаимозависимости достаточно очевидны (например, технологические), в других случаях они имеют более тонкую природу. Некоторые промежуточные задания не могут быть реализованы, пока не завершены другие задания; некоторые задания могут осуществляться только параллельно, и так далее. Если нарушается синхронизация выполнения разных заданий, весь проект может быть поставлен под угрозу. Если немного задуматься над этой характеристикой проекта, становится очевидным тот факт, что проект - это система, то есть целое, складывающееся из взаимосвязанных частей, причем система динамическая, и, следовательно, требующая особых подходов к управлению.
Ограниченность по времени означает, что у проекта есть начало и конец. Проект завершается когда достигаются поставленные цели, либо возникает понимание, что эти цели не могут быть достигнуты. Проект как система деятельности существует ровно столько времени, сколько его требуется для получения конечного результата. Концепция проекта, однако, не противоречит концепции фирмы или предприятия и вполне совместима с ней. Напротив, проект часто становится основной формой деятельности фирмы.
Уникальность означает, что результат проекта неповторим - в составе, порядке его работ есть что-то необычное. Проекты - мероприятия в известной степени неповторимые и однократные. Вместе с тем, степень уникальности может сильно отличаться от одного проекта к другому.
Процесс - набор взаимосвязанных действий и операций, осуществляемых для получения заранее определенного продукта, результата или услуги. Процессы проекта делятся на две категории:
- процессы управления проектом (менеджмента) - касающиеся организации и описания работ проекта (которые будут подробно описаны далее);
- процессы, ориентированные на продукты (определяющие и создающие проект) - касающиеся спецификации и производства продукта. Эти процессы определяются жизненным циклом проекта и зависят от области приложения.
Менеджмент проекта - методология, состоящая из идеи приложения знаний, навыков, инструментов и методов к работам проекта для удовлетворения требований, предъявляемых к этому проекту.
Управление проектами — интегрированный процесс. Действия (или их отсутствие) в одном направлении обычно влияют и на остальные направления. Такая взаимосвязь заставляет балансировать между задачами проекта — часто улучшение в одной области может быть достигнуто лишь за счет ухудшения в другой. Для лучшего понимания интегрированной природы управления проектами опишем его через процессы, из которых оно состоит, и их взаимосвязи.
При этом менеджмент производится процессами:
- инициации - принятие решения о начале выполнения проекта;;
- планирования - определение целей и критериев успеха проекта и разработка рабочих схем их достижения;
- исполнения - координация людей и других ресурсов для выполнения плана;
- мониторинга и управления - определение соответствия плана и исполнения проекта поставленным целям и критериям успеха и принятие решений о необходимости применения корректирующих воздействий, а также определение необходимых корректирующих воздействий, их согласование, утверждение и применение;
- завершения - формализация выполнения проекта и подведение его к упорядоченному финалу.
Задачами менеджмента являются:
- определение требований;
- удовлетворение различных потребностей;
- уравновешивание ограничений проекта:
- содержание;
- качество;
- расписание;
- бюджет;
- ресурсы;
- риски.
Влияние человеческого фактора на технические объекты.
Важнейшим элементом технологического процесса является надежность, которую в соответствии с ГОСТ 27.002–89 называют «свойство объекта сохранять во времени в установленных пределах значения всех параметров, характеризующих способность выполнять требуемые функции в заданных режимах и условиях применения, технического обслуживания, ремонтов, хранения и транспортировки». Снижение надежности объекта на определенном этапе эксплуатации с определенной степенью вероятности может привести к его отказу, когда полностью или частично перестает выполнять заданные функции. Любой отказ приводит к снижению ресурса работы, увеличению материальных затрат на изготовление и эксплуатацию изделия, снижению его конкурентоспособности. Если некоторых отказов избежать нельзя, то снизить риск их появления в результате влияния человеческого фактора как на этапе проектирования, так и на этапах изготовления и эксплуатации вполне возможно.
«Человеческий фактор» — опасные действия персонала социотехнических (на уровне рабочего места — человекомашинных) систем, связанные с его надежностью.
Анализ причин техногенных катастроф показывает, что с помощью инженерных, технологических или организационных методов решить проблему снижения риска не удается. В значительной степени это объясняется тем, что к ЧС приводят непредусмотренные сценарии развития событий, в которых реакция персонала является неадекватной, поэтому выполняются ошибочные действия. Проведенный в США анализ около 30 тыс. инцидентов на объектах ядерной энергетики показал, что примерно в половине из них складывалась уникальная комбинация технологических отказов и человеческих ошибок. Расширение сферы применения автоматизированных средств приводит к новым проблемам, поскольку при этом появляются новые типы отказов и ошибок, связанные, например, с программным обеспечением.
Проявлением ненадежности персонала являются опасные действия с его стороны в отношении объектов техносферы, которые могут привести к негативным последствиям. По целенаправленности такие действия подразделяют на:
- умышленные (намеренные), в частности, злоумышленные;
- неумышленные (ненамеренные), т.е. ошибочные, связанные с неправильными решениями.
Ненамеренные действия подразделяют на промахи и упущения, а намеренные — на оплошности и нарушения. Так, причинами промахов выступают недостатки внимания (например, перепутан порядок выполнения двух последовательных операций), а причинами упущений являются недостатки памяти (например, оператор забыл об одном звене в Цепи необходимых операций). Возможно совершение умышленных ошибок, когда выполняются неверные действия, расцениваемые как правильные или адекватные обстановке.
Наиболее распространенными опасными действиями являются ошибочные действия. Ошибки человека — это непреднамеренные действия, выходящие за регламентированные границы, или невыполнение необходимых действий. Негативные последствия ошибочных действий при работе с техническими объектами возможны, если в конструкции не предусмотрены меры их нейтрализации.
Специфический класс опасных действий составляют несанкционированные действия, к которым относятся ошибочные и злоумышленные действия персонала объекта. Целью злоумышленных действий является реализация негативных последствий. Злоумышленные действия могут быть направлены как на непосредственную реализацию потенциальной опасности — диверсия, так и на угрозу такой реализации — шантаж. Негативные последствия могут произойти и при саботаже, т.е. умышленном невыполнении или неправильном выполнении предусмотренных действий персоналом.
Источники:
Понятия процесса, проекта, менеджмента.
Сделала: Гёнен Д.Д.
Вопрос 2. Модели FDD, TDD, MDD в разработке программных средств.
Модель FDD
Feature driven development (FDD, разработка, управляемая функциональностью) — итеративная методология разработки программного обеспечения, одна из гибких методологий разработки (agile). FDD представляет собой попытку объединить наиболее признанные в индустрии разработки программного обеспечения методики, принимающие за основу важную для заказчика функциональность (свойства) разрабатываемого программного обеспечения. Основной целью данной методологии является разработка реального, работающего программного обеспечения систематически, в поставленные сроки. FDD включает в себя пять базовых видов деятельности:
- Разработка общей модели
- Составление списка необходимых функций системы
- Планирование работы над каждой функцией
- Проектирование функции
- Реализация функции
Командная разработка с помощью FDD:

Модель TDD
Разработка через тестирование (test-driven development, TDD) — техника разработки программного обеспечения, которая основывается на повторении очень коротких циклов разработки: сначала пишется тест, покрывающий желаемое изменение, затем пишется код, который позволит пройти тест, и под конец проводится рефакторинг нового кода к соответствующим стандартам. TDD цикл включает в себя пять основных шагов:
- Быстро добавить тест
- Выполнить все тесты и увидеть, что новый тест "падает"
- Выполнить небольшое изменение системы
- Убедиться, что все тесты проходят
- Выполнить рефакторинг, удаляя дублирование
Рефакторинг — процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы, устранить дублирование кода, облегчить внесение изменений в ближайшем будущем.
Командная разработка с помощью TDD:

Модель MDD
Разработка, управляемая моделями (model-driven development, MDD, Model-driven engineering, MDE) — это стиль разработки программного обеспечения, когда модели становятся основными артефактами разработки, из которых генерируется код и другие артефакты. Модель — это абстрактное описание программного обеспечения, которое скрывает информацию о некоторых аспектах с целью представления упрощенного описания остальных. Модель может быть исходным артефактом в разработке, если она фиксирует информацию в форме, пригодной для интерпретаций людьми и обработки инструментальными средствами. Модель определяет нотацию и метамодель. Нотация представляет собой совокупность графических элементов, которые применяются в модели и могут быть интерпретированы людьми. Метамодель описывает используемые в модели понятия и фиксирует информацию в виде метаданных, которые могут быть обработаны инструментальными средствами. Наиболее известными современными MDE-инициативами являются:
- Разработка Object Management Group (OMG) под названием model-driven architecture (MDA)
- Экосистема Eclipse для инструментов моделирования и программирования (Eclipse Modeling Framework)
Командная разработка с помощью MDD:
