КОДЕКС ЭТИКИ И ПРАКТИЧЕСКОЙ ДЕЯТЕЛЬНОСТИ ИНЖЕНЕРИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.
Подобно любым другим профессионалам, специалисты по программному обеспечению должны согласиться, что к ним предъявляется более широкий круг требований, чем простая необходимость иметь тот или иной профессиональный уровень. Они работают в определенном правовом и социальном окружении. Область инженерии программного обеспечения, как и любая другая сфера человеческой деятельности, имеет ограничения в виде местных, национальных и международных законодательств. Поэтому специалисты по программному обеспечению должны принять на себя определенные этические и моральные обязательства, чтобы стать настоящими профессионалами.
АСМ и IEEE совместно создали кодекс, соединяющий этические нормы и профессиональную практику. Краткая версия этого кодекса содержит следующие десять принципов, которым должны следовать специалисты по программному обеспечению:
1) не использовать компьютер с целью повредить другим людям;
2) не создавать помех и не вмешиваться в работу других пользователей компьютерных сетей;
3) не пользоваться файлами, не предназначенными для свободного использования;
4) не использовать компьютер для воровства;
5) не использовать компьютер для распространения ложной информации;
6) не использовать ворованное программное обеспечение;
7) не присваивать чужую интеллектуальную собственность;
8) не использовать компьютерное оборудование или сетевые ресурсы без разрешения или соответствующей компенсации;
9) думать о возможных общественных последствиях программ, которые Вы пишите или систем, которые Вы разрабатываете;
10) использовать компьютер с самоограничениями, которые показывают Вашу предупредительность и уважение к другим людям.
Из рабочей учебной программы (тема 4).Требования к системе. Функциональные и нефункциональные требования. Пользовательские требования. Системные требования. Документирование системных требований.
4.1. О термине «требования». Синтаксис требований.
4.2. Уровни требований к системе.
4.3 Источники требований к системе.
4.4.Требования к программному обеспечению.
4.5. Функциональные и нефункциональные требования.
4.6. Требования предметной области.
4.7. Пользовательские требования.
4.8. Системные требования.
4.1. О термине «требования»
Необходимо обратить внимание на следующие определения понятия “требование” (на основе работ Вигерса и стандарта IEEE Standard Glossary of Software Engineering Terminology, 1990):
· Условие или возможность, требуемая пользователем для решения задач или достижения целей.
· Условие или возможность, которые должны удовлетворяться системой/компонентом системы или которыми система/компонент системы должна обладать для обеспечения условий контракта, стандартов, спецификаций или др. регулирующими документами.
· Документальная репрезентация (зафиксированное представление, определение, описание) условий или возможностей, перечисленных в предыдущих пунктах.
По справочнику Батоврина [1. Батоврин В.К. Системная и программная инженерия. Словарь-справочник: учеб. пособие для вузов. – М.: ДМК Пресс, 2010. – 280 с.]:
Требование – это условие или возможность, которым должна отвечать или которыми должна обладать система (элемент системы), для того, чтобы удовлетворять контракту, стандарту, спецификации или другому формально одобренному документу. ISO/IEC 24765.
Когда сигнал получен [ обстоятельства] система [субьект]
должна установить[действие ] разряд сигнала [объект]
в течение двух секунд [ограничение]
или:
[ обстоятельство] [действие] [значение]
Пример:
В состоянии 1 [ обстоятельство]
минимальный диапазон должен быть [действие ]
не менее 8 миль [значение]
Внедрение ИС на предприятии всегда преследует конкретные бизнес-цели - такие, как, например, повышение прозрачности бизнеса, сокращение сроков обработки информации, экономия накладных расходов и т.д. Современные информационные системы - это крупные программные системы, содержащие в себе множество модулей, функциональных, интерфейсных элементов, отчетов и т.д. Как охватить единым взором такие разнородные вещи, как цели, преследуемые топ-менеджером предприятия Заказчика, описание интерфейса пользователя и характеристики модуля, осуществляющего расчет себестоимости изделия?
К счастью, человечество уже давно изобрело приемы борьбы со сложностью, широко применяемые в моделировании сложных объектов - абстракцию и декомпозицию. Применительно к дисциплине анализа требований к программным системам эти принципы работают следующим образом. Требования разделяются по уровням. Уровни требований связаны, с одной стороны, с уровнем абстракции системы, с другой - с уровнем управления на предприятии.
Обычно выделяют три уровня требований.
· На верхнем уровне представлены так называемые бизнес-требования (business requirements). Примеры бизнес-требования: система должна сократить срок оборачиваемости обрабатываемых на предприятии заказов в три раза. Бизнес-требования обычно формулируются топ-менеджерами, либо акционерами предприятия.
· Второй уровень - уровень требованийпользователей (user requirements). Пример требования пользователя: система должна представлять диалоговые средства для ввода исчерпывающей информации о заказе, последующей фиксации информации в базе данных и маршрутизации информации о заказе к сотруднику, отвечающему за его планирование и исполнение. Требования пользователей часто бывают плохо структурированными, дублирующимися, противоречивыми. Поэтому для создания системы важен третий уровень, в котором осуществляется формализация требований.
· Третий уровень - функциональный (functional requirements). Пример функциональных требований (или просто функций) по работе с электронным заказом: заказ может быть создан, отредактирован, удален и перемещен с участка на участок.
Существуют объективные противоречия между требованиями различных уровней. Так, очевидным бизнес-требованием является требование о полноте информации, собираемой на рабочих местах пользователей в единую базу данных. Чем полнее информация - тем глубже база для анализа деятельности и принятия решений. С другой стороны, конкретному пользователю системы вполне может быть достаточно использования только той части информации, которая влияет на выполнение его основных функций.