Губанов Юрий Александрович, mail Критерии зачёта min 50% посещаемость доклад
Вид материала | Доклад |
Лекция 2. Введение в системную инженерию Производные свойства системы Функциональные свойства Нефункциональные свойства |
- Тест Протекание процесса cопровождается изменением поверхностного натяжения и площади, 14.96kb.
- Н. И. Губанов, Н. Н. Губанов, 204.22kb.
- Расписание утверждаю, 181.55kb.
- Домашнее задание ответа на зачете Алгоритм формирования оценки таков: вес посещаемости, 76.53kb.
- Открытый конкурс. Наименование, почтовый адрес, номер контактного телефона, 1173.49kb.
- Георгий Владимирович Майер. Приветственное слово. Заместитель Губернатора Томской области,, 738.23kb.
- Прогнозирование потребности в педагогических кадрах в регионе фролов Юрий Викторович, 113.56kb.
- Тюняев Андрей Александрович заведующий сектором, Институт Древнеславянской и Древнеевразийской, 75.03kb.
- Проект технического задания на проведение научной деятельности, 50.64kb.
- Стенографический отчет Заседание секции №6 «Методология мониторинга законодательства, 858.4kb.
Лекция 2. Введение в системную инженерию
Определение. Системная инженерия (systems engineering) — это процесс определения, проектирования, реализации, тестирования, внедрения и поддержания систем в целом. Системным инженерам по долгу службы приходится сталкиваться с ПО, аппаратурой и взаимодействием системы с пользователями и собственным окружением.
Определение. Система — это продуманный набор связанных компонент, работающих вместе для достижения некоторой цели.
Примеры систем: ручка (малое количество компонент), авиадиспетчерские системы (тысячи программных и аппаратных частей плюс пользователи (операторы), принимающие решения на основе информации в системе).
Системы зачастую иерархичны и включают в себя другие подсистемы. Например, полицейская система может включать в себя геоинформационную систему (ГИС) для определения места происшествий. Характерной особенностью подсистем является то, что они могут выступать как самостоятельные системы, хотя их поведение может зависеть и от других подсистем.
Такие взаимоотношения между компонентами системы означают, что система представляет собой больше, чем простая сумма ее частей — она имеет свойства, принадлежащие только системе в целом. Такие свойства называют производными или возникающими (emergent, в книге переведено как "интегральные").
Примеры производных свойств:
- надежность системы (зависит от надежности компонент системы и связей между компонентами),
- удобство использования системы (помимо ПО и аппаратуры, зависит также от операторов системы и от окружения).
Для системных программистов необходимо какое-то знание вопросов CBSE, так как ПО приобретает все большее и большее значение в реальных системах. Например, в американском проекте Apollo 1969 года потребовалось всего 10 мегабайт кода для того, чтобы поддержать аппаратуру при полете на Луну. Сегодня же программное обеспечение американского орбитального комплекса составляет 100 мегабайт. Поэтому системное программирование становится критичным для успеха всей системы.
Производные свойства системы
Достаточно трудно предсказать заранее, какими производными свойствами будет обладать система; чаще всего они могут быть измерены только после интеграции различных подсистем. Можно выделить два типа производных свойств системы:
- Функциональные свойства, которые возникают когда все части системы работают для достижения некоторой цели, например, после сборки из отдельных частей велосипед приобретает свойства средства транспортировки.
- Нефункциональные свойства, такие как надежность, производительность, безопасность и защищенность. Эти свойства относятся к поведению системы в операционном окружении и зачастую критичны для успеха системы: некоторые свойства могут быть необязательными для всех пользователей, но, скажем, слишком медленная или ненадежная система с большой вероятностью будет не принята всеми пользователями.
Для демонстрации сложности вопросов, связанных с производными свойствами системы, рассмотрим подробнее концепцию надежности. Надежность является комплексной концепцией, которая всегда должна рассматриваться на системном уровне, а не на уровне отдельных компонент (так как компоненты в системе взаимосвязаны, отказы в одной компоненте могут повлиять на работу других). Самой сложной проблемой для проектировщиков систем обычно является предсказание последствий распространения ошибок по системе; их трудно предсказать, а потому трудно реально оценить надежность системы, основываясь на данных о надежности отдельных компонент.
При этом на надежность системы влияет целый ряд факторов:
- Надежность аппаратуры (какова вероятность сбоя или отказа аппаратуры и сколько времени необходимо для повторного введения в строй этой компоненты?)
- Надежность ПО (насколько вероятно, что программная компонента произведет неправильные результаты? Важное отличие ПО от аппаратуры заключается в том, что ПО не изнашивается и может успешно работать даже после производства неправильных результатов)
- Надежность оператора (насколько вероятно, что оператор системы допустит ошибку?)
Все эти факторы тесно связаны и влияют друг на друга. Ошибки аппаратуры могут создавать значения, находящиеся за пределами ожидаемых программным обеспечением, в результате чего программы могут начать вести себя непредсказуемо. Ошибка оператора наиболее вероятна в условиях стресса, а сбои в системе как раз и могут вызвать этот стресс. Как результат своих действий, оператор может еще больше нагрузить аппаратуру, вызывая новые аппаратные ошибки и т.д. Так из ошибки отдельной подсистемы может вырасти системная проблема, требующая закрытия или перезапуска системы.
Многие параметры надежности зависят также от окружения, в котором система будет работать. Параметры окружения невозможно изменить, трудно предсказать и очень сложно протестировать (пример с электрооборудованием около вентилятора: в один прекрасный день вентилятор может отказать и начнет гнать горячий воздух, что приведет к отказу системы).
Как и надежность, удобство в использовании трудно оценить, но все же может быть измерено после введения системы в эксплуатации. Однако свойства безопасности и защищенности ставят еще более сложные проблемы, ибо здесь мы имеем дело со свойствами, которыми не должна обладать система. Например, защищенная система должна обеспечить невозможность неавторизованного доступа к данным, но практически невозможно предсказать заранее все методы доступа к данным и явным образом запретить все из них. Можно только оценить эти свойства по умолчанию, т.к. мы узнаем, что система плохо защищена только тогда, когда кто-то ее взломает.