Курс специальности ИУ-7

1. Понятие программной инженерии, ее цели и задачи. Стандарты программной инженерии.

является отраслью информатики[1] (Computer science) и изучает вопросы построения компьютерных программ, обобщает опыт программирования в виде комплекса общих знаний и правил регламентации инженерной деятельности разработчиков программного обеспечения

Стандарт - standard - норма, образец, мерило:

l утверждаемый компетентным органом нормативно-технический документ, устанавливающий комплекс норм и правил по отношению к объекту стандартизации,

l типовой образец, эталон, модель, принимаемые за исходные для сопоставления с ними других предметов

l Корпоративные стандарты разрабатываются крупными фирмами с целью повышения качества своей продукции. Создаются на основе собственного опыта компании, но с учетом требований мировых стандартов. Не сертифицируются, но являются обязательными для применения внутри корпорации

l Отраслевые стандарты действуют в пределах организаций некоторой отрасли (министерства). Разрабатываются с учетом требований мирового опыта и специфики отрасли. Являются, как правило, обязательными для отрасли. Подлежат сертификации

l Государственные стандарты (ГОСТы) принимаются государственными органами и имеют силу закона. Разрабатываются с учетом мирового опыта или на основе отраслевых стандартов. Могут иметь как рекомендательный, так и обязательный характер. Для сертификации создаются государственные или лицензированные органы сертификации

l Международные стандарты р азрабатываются специальными международными организациями на основе мирового опыта и лучших корпоративных стандартов. Имеют сугубо рекомендательный характер

l ISO - The International Standards Organization - международная организация по стандартизации, работающая в сотрудничестве с IEC - The International Electrotechnical Commission - международной электротехнической комиссией

l IEEE Computer Society - профессиональное объединение специалистов в области программной инженерии

l ACM - Association for Computing Machinery – Ассоциация по вычислительной технике

l SEI - Software Engineering Institute – Институт Программной Инженерии при университете Карнеги-Мелон

l PMI - Project Management Institute – Международный Институт Проектного Менеджмента

Объекты стандартизации

l процессы разработки ПО

l продукты разработки

l ресурсы, которые используют процессы для создания программного продукта

2. Кодекс этики программной инженерии.

l согласование профессиональной деятельности инженеров-программистов с интересами общества;

l взаимоотношения между клиентом, работодателем и исполнителем разработки;

l достижение соответствия качества продукта лучшим профессиональным стандартам;

l честность и независимость профессиональных оценок;

l соблюдение этических норм в менеджменте и в сопровождении разработок;

l поддержка становления профессии в соответствии с кодексом этики;

l соблюдение этических норм во взаимоотношениях с коллегами;

l усовершенствование специальности

краткая версия:

l Программные инженеры будут действовать соответственно общественным интересам

l Программные инженеры будут действовать в интересах клиентов и работодателя, соответственно общественным интересам

l Программные инженеры будут добиваться, чтобы произведенные ими продукты и их модификации соответствовали высочайшим профессиональным стандартам

l Программные инженеры будут добиваться честности и независимости в своих профессиональных суждениях

l Менеджеры и лидеры программных инженеров будут руководствоваться этическим подходом к руководству разработкой и сопровождением ПО, а также будут продвигать и развивать этот подход

l Программные инженеры будут улучшать целостность и репутацию своей профессии соответственно с интересами общества

l Программные инженеры будут честными по отношению к своим коллегам и будут всячески их поддерживать

l Программные инженеры в течение всей своей жизни будут учиться практике своей профессии и будут продвигать этический подход к практике своей профессии

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

3. Понятие жизненного цикла программного обеспечения.

4. Основные процессы жизненного цикла программного обеспечения

a. Выбор модели жизненного цикла

b. Анализ требований к системе

c. Проектирование архитектуры системы

d. Анализ программных требований

e. Детальное конструирование ПО

f. Кодирование и тестирование ПО

g. Интеграция ПО

h. Квалификационное тестирование ПО

i. Интеграция системы

j. Квалификационное тестирование системы

k. Установка ПО

l. Приемка ПО

5. Вспомогательные и организационные процессы жизненного цикла программного обеспечения

l Документирование

l Управление конфигурацией

l Обеспечение качества

l Верификация

l Аттестация

l Совместная оценка

l Аудит

l Разрешение проблем

Орг

l Управление

l Создание инфраструктуры

l Усовершенствование

l Обучение

6. Качество программного обеспечения и пути его достижения. Стандарты качества программного обеспечения.

l Определение ISO: Качество - это полнота свойств и характеристик продукта, процесса или услуги, которые обеспечивают способность удовлетворять заявленным или подразумеваемым потребностям

l Определение IEEE: Качество программного обеспечения - это степень, в которой оно обладает требуемой комбинацией свойств

l

l

l ISO/IEC 9126:1-4:2002 (ГОСТ Р ИСО/МЭК 9126-93)

l ISO/IEC 14598 – набор стандартов, регламентирующий способы оценки характеристик качества

В совокупности они образуют модель качества - SQuaRE (Software Quality Requirements and Evaluation)

l внешнее качество, заданное требованиями заказчика в спецификациях и отражающееся характеристиками конечного продукта

l внутреннее качество, проявляющееся в процессе разработки и других промежуточных этапах жизненного цикла ПС

l качество при использовании в процессе нормальной эксплуатации и результативность достижения потребностей пользователей с учетом затрат ресурсов (эксплуатационное качество)

7. Характеристики, используемые для оценки качества программного обеспечения.

Функциональные возможности (Functionality) Способность программного обеспечения реализовать установленные или предполагаемые потребности пользователей
Пригодность для применения по назначению ( Suitability) Наличие и соответствие набора функций конкретным задачам
Правильность/корректность реализации требований (Accuracy) Способность ПО взаимодействовать с конкретными системами  
Согласованность (Compliance) Способность программного обеспечения придерживаться соответствующих стандартов или соглашений, или подробных рекомендаций  
Защищенность/безопасность функционирования(Security) Способность ПО предотвращать несанкционированный доступ (случайный или преднамеренный) к программам и данным  
Надежность (Reliability) Способность программного обеспечения сохранять свой уровень качества функционирования при установленных условиях за установленный период времени  
Стабильность/уровень завершенности (Maturity) Характеризуется частотой отказов, вызванных наличием ошибок в программном обеспечении  
Устойчивость к ошибке (Fault tolerance) Способность программного обеспечения поддерживать определенный уровень качества функционирования в случаях программных ошибок или нарушения определенного интерфейса  
Восстанавливаемость после проявления дефектов (Recoverability) Способность программного обеспечения восстанавливать уровень качества функционирования и данные, непосредственно поврежденные в случае отказа. Характеризуется необходимыми для этого затратами усилий и времени  
Практичность (Usability) Характеризуется объемом работ, требуемых для использования программного обеспечения определенным или предполагаемым кругом пользователей  
Понятность функций и документации (Understandability) Характеризует усилия пользователя по пониманию общей логической концепции ПО и его применимости  
Изучаемость процессов функционирования и применения (Learnability) Характеризует усилия пользователя по обучению применению программного обеспечения (например, оперативному управлению, вводу, выводу)  
Простота использования (Operability) Характеризует усилия пользователя по эксплуатации и оперативному управлению ПО  
Эффективность (Efficiences) Определяется соотношением между уровнем качества функционирования программного обеспечения и объемом используемых ресурсов при установленных условиях  
Временная эффективность реализации комплекса программ (Time behavior) Характеризуется временем отклика и скоростью выполнения функций  
Используемость вычислительных ресурсов (Resource behavior) Характеризуется объемом используемых ресурсов и продолжительностью использования ПО при выполнении функции  
Сопровождаемость (Maintainability) Характеризует объем работ, требуемых для проведения конкретных изменений (модификаций)  
Анализируемость (Analysability) Характеризует усилия, необходимые для диагностики недостатков или случаев отказов или определения составных частей для модернизации  
Изменяемость компонентов и комплекса программ (Changeability) Характеризует усилия, необходимые для модификации, устранения отказа или для изменения условий эксплуатации  
Устойчивость (Stability) Характеризует риск от непредвиденных эффектов модификации  
Тестируемость изменений при сопровождении (Testability) Характеризует усилия, необходимые для проверки модифицированного программного обеспечения  
Мобильность (Portability) Способность программного обеспечения быть перенесенным из одного окружения в другое  
Адаптируемость к изменениям среды (Adaptability) Характеризует удобство адаптации ПО к различным конкретным условиям эксплуатации, без применения других действий или способов, кроме тех, что предназначены для этого в рассматриваемом программном обеспечении  
Простота установки/внедрения/инсталляции после переноса (Installability) Характеризует усилия, необходимые для внедрения программного обеспечения в конкретное окружение  
Соответствие (Confortncnce) Способность программного обеспечения подчиняться стандартам или соглашениям, относящимся к мобильности  
Взаимозаменяемость компонентов при корректировке комплекса программ (Replaceability) Характеризует простоту и трудоемкость применения данного ПО вместо другого конкретного программного средства в среде этого средства  

8. Представления о качестве программного обеспечения различных участников программного проекта.

Характеристика качества Пользователь Покупатель Инвестор
Функциональ-ность + + +
Надежность + + 䦋㌌㏒㧀좈໱琰茞ᓀ㵂Ü
Практичность + 䦋㌌㏒㧀좈໱琰茞ᓀ㵂Ü +
Эффективность + 䦋㌌㏒㧀좈໱琰茞ᓀ㵂Ü 䦋㌌㏒㧀좈໱琰茞ᓀ㵂Ü
Сопровождае-мость 䦋㌌㏒㧀좈໱琰茞ᓀ㵂Ü + 䦋㌌㏒㧀좈໱琰茞ᓀ㵂Ü
Мобильность 䦋㌌㏒㧀좈໱琰茞ᓀ㵂Ü + +

9. Современные модели оценки качества программного обеспечения

Чтобы принять решение о том, достаточно ли качественным является разработанное ПО, надо сравнить стоимость непоставки программного продукта с эксплуатационной стоимостью в случае его поставки


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: