Программный интеллект
Программный интеллект — это понимание внутренней работы и структурного состояния программных активов, созданных с помощью программного обеспечения, предназначенного для анализа базы данных структуры , программной среды и исходного кода , чтобы лучше понимать и контролировать сложные программные системы в средах информационных технологий . [1] [2] Подобно бизнес-аналитике (BI), программная аналитика создается с помощью набора программных инструментов и методов для анализа данных и внутренней структуры программного обеспечения. Результаты создаются автоматически и поступают в базу знаний, содержащую техническую документацию и схемы внутренней работы приложений. [3] и сделать его доступным для всех, чтобы его могли использовать заинтересованные стороны бизнеса и программного обеспечения для принятия обоснованных решений, [4] измерять эффективность организаций, занимающихся разработкой программного обеспечения, сообщать о состоянии программного обеспечения, предотвращать катастрофы программного обеспечения. [5]
История
[ редактировать ]Программный интеллект был использован Кирком Полом Лафлером, американским инженером, предпринимателем и консультантом, а также основателем Software Intelligence Corporation в 1979 году. В то время это было в основном связано с деятельностью SAS , экспертом в которой он является с 1979 года. [6]
В начале 1980-х годов Виктор Р. Базили участвовал в различных статьях, подробно описывающих методологию сбора достоверных данных о разработке программного обеспечения, касающихся разработки программного обеспечения, оценки разработки программного обеспечения и его вариаций. [7] [8] В 2004 году различные поставщики программного обеспечения для анализа программного обеспечения начали использовать эти термины как часть своей стратегии наименования продуктов и маркетинговой стратегии.
Затем, в 2010 году, Ахмед Э. Хасан и Тао Се определили программный интеллект как « практику, предлагающую специалистам по программному обеспечению актуальную и актуальную информацию для поддержки их ежедневных процессов принятия решений, а программный интеллект должен поддерживать процессы принятия решений на протяжении всего срока службы». программная система ». Далее они определяют интеллект программного обеспечения как « сильное влияние на современную практику разработки программного обеспечения » на ближайшие десятилетия. [9]
Возможности
[ редактировать ]Из-за сложности и широкого спектра компонентов и предметов, включенных в программное обеспечение, интеллект программного обеспечения зависит от различных аспектов программного обеспечения:
- Композиция программного обеспечения — это создание компонентов программного приложения. [10] Компоненты возникают в результате кодирования программного обеспечения, а также интеграции исходного кода из внешних компонентов: с открытым исходным кодом, сторонних компонентов или платформ. Другие компоненты можно интегрировать с помощью интерфейса прикладного программирования, вызывая библиотеки или службы.
- Архитектура программного обеспечения относится к структуре и организации элементов системы, отношений и свойств между ними.
- Недостатки программного обеспечения обозначают проблемы, которые могут привести к безопасности, стабильности, отказоустойчивости и неожиданным результатам. Не существует стандартного определения недостатков программного обеспечения, но наиболее общепринятым является определение корпорации MITRE , где общие недостатки каталогизированы в виде общего перечисления слабых мест . [11]
- Оценки программного обеспечения оценивают атрибуты программного обеспечения. Исторически классификация и терминология атрибутов были заимствованы из ISO 9126-3 и последующего ISO 25000:2005. [12] качественная модель.
- Экономика программного обеспечения относится к оценке ресурсов программного обеспечения в прошлом, настоящем или будущем для принятия решений и управления. [13]
Компоненты
[ редактировать ]Возможности программных интеллектуальных платформ включают в себя все большее количество компонентов:
- Анализатор кода, который может служить информационной основой для других компонентов программного обеспечения, идентифицируя объекты, созданные языком программирования, внешние объекты из открытого исходного кода , объекты третьих сторон, платформы , API или сервисы.
- Графическая визуализация и чертеж внутренней структуры рассматриваемого программного продукта или приложения. [14] включая зависимости, от сбора данных (автоматический сбор данных в реальном времени, записи конечных пользователей) до хранения данных, различные уровни [15] внутри программного обеспечения и связи между всеми элементами.
- Возможности навигации внутри компонентов и функции анализа воздействия
- Список недостатков, нарушений архитектуры и кодирования в соответствии со стандартизированными передовыми практиками, [16] облачный блокировщик, предотвращающий миграцию в облачную среду, [17] и мошеннический вызов данных, влекущий за собой безопасность и целостность программного обеспечения. [18]
- Оценки или баллы качества структуры и программного обеспечения, соответствующие отраслевым стандартам, таким как OMG , CISQ или SEI, оценивают надежность, безопасность, эффективность, ремонтопригодность и масштабируемость для облачных или других систем.
- Метрики, количественно определяющие и оценивающие экономику программного обеспечения, включая трудозатраты, размеры и технический долг. [19]
- Отраслевые ссылки и бенчмаркинг, позволяющие сравнивать результаты анализа и отраслевые стандарты.
Пользовательский аспект
[ редактировать ]Чтобы успешно интегрировать использование программных интеллектуальных систем в компании, необходимо принять некоторые соображения. В конечном итоге интеллектуальная система программного обеспечения должна быть принята и использована пользователями, чтобы она приносила пользу организации. Если система не добавляет ценности миссии пользователей, они просто не используют ее, как заявил М. Стори в 2003 году. [20]
На уровне кода и представления системы интеллектуальные системы программного обеспечения должны обеспечивать другой уровень абстракций: абстрактное представление для проектирования, объяснения и документирования и детальное представление для понимания и анализа программной системы. [21]
На уровне управления принятие пользователем интеллектуального программного обеспечения охватывает различные области, связанные с внутренним функционированием системы, а также с результатами работы системы. Он включает в себя следующие требования:
- Комплексность: недостающая информация может привести к неправильному или неадекватному решению, а также является фактором, влияющим на принятие системы пользователем. [22]
- Точность: точность зависит от того, как собираются данные, чтобы обеспечить справедливое и неоспоримое мнение и суждение. [23]
- Точность: точность обычно оценивается путем сравнения нескольких измерений из одного и того же или разных источников. [24]
- Масштабируемость: отсутствие масштабируемости в индустрии программного обеспечения является критическим фактором, приводящим к неудаче. [25]
- Достоверность: результатам следует доверять и верить в них.
- Развертываемый и пригодный к использованию.
Приложения
[ редактировать ]Программный интеллект имеет множество приложений во всех сферах бизнеса, связанных с программной средой, будь то программное обеспечение для профессионалов, частных лиц или встроенное программное обеспечение.В зависимости от ассоциации и использования компонентов приложения будут относиться к:
- Изменение и модернизация: единая документация и чертежи всех внутренних компонентов, интеграция внешнего кода или вызов внутренних или внешних компонентов программного обеспечения. [26]
- Отказоустойчивость и безопасность: сравнение с отраслевыми стандартами для диагностики структурных недостатков в ИТ-среде. [ нужна ссылка ] Проверка соответствия требованиям безопасности, конкретным нормам или техническим вопросам.
- Принятие решений и управление: предоставление аналитики о самом программном обеспечении или о заинтересованных сторонах, участвующих в его разработке, например, измерение производительности для информирования руководителей бизнеса и ИТ о прогрессе в достижении бизнес-целей. [27]
- Оценка и бенчмаркинг, которые помогут руководителям бизнеса и ИТ-отдела принять обоснованное, основанное на фактах решение о программном обеспечении. [28]
Торговая площадка
[ редактировать ]Программный интеллект — это дисциплина высокого уровня, которая постепенно расширяется, охватывая перечисленные выше приложения. Есть несколько рынков, которые обусловливают потребность в этом:
- Анализ портфеля приложений (APA), направленный на повышение производительности предприятия. [29] [30]
- Оценка программного обеспечения для определения ключевых показателей эффективности программного обеспечения и улучшения качества и производительности. [31]
- Меры и проверка безопасности и отказоустойчивости программного обеспечения.
- Эволюция программного обеспечения или модернизация устаревшего программного обеспечения, для которой не требуется проектирование программных систем, а также инструменты для улучшения и облегчения модификаций. [ нужна ссылка ]
Ссылки
[ редактировать ]- ^ Домбровский Р. (2012) Об архитектурных складах и программном интеллекте. В: Ким Т., Ли Ю., Фанг В. (ред.) Информационные технологии будущего. FGIT 2012. Конспекты лекций по информатике, том 7709. Springer, Берлин, Гейдельберг.
- ^ Хинчи, Майк; Джайн, Амит; Кошик, Манджу; Мисра, Санджай (январь 2023 г.). «Гостевая редакция: Интеллект для систем и разработки программного обеспечения» . Инновации в системной и программной инженерии . 19 (1). Спрингер: 1–4. дои : 10.1007/s11334-023-00526-1 . ПМЦ 9886201 . ПМИД 36744022 .
- ^ Бартошук К., Домбровский Р., Стенсель К. и Тимошук Г. «О быстром понимании и оценке программного обеспечения», В материалах 14-й Международной конференции по компьютерным системам и технологиям, июнь 2013 г., стр. 161-168 дои : 10.1145/2516775.2516806
- ^ Раймонд П.Л. Бус и Томас Циммерманн. «Информационные потребности для аналитики разработки программного обеспечения». 2012 34-я Международная конференция по программной инженерии (ICSE). IEEE, июнь 2012 г., стр. 987–996. дои : 10.1109/ICSE.2012.6227122
- ^ Ахмед Э. Хасан и Тао Се. 2010. Программный интеллект: будущее данных разработки программного обеспечения для добычи полезных ископаемых. В материалах семинара FSE/SDP «Будущее исследований в области разработки программного обеспечения» (FoSER '10). ACM, Нью-Йорк, Нью-Йорк, США, 161–166.
- ^ «Мистер Кирк Пол Лафлер» . 21 декабря 2015 г.
- ^ Базили, Виктор Р. (1981). Сбор, проверка и анализ данных. Метрики программного обеспечения: анализ и оценка (PDF) . МТИ Пресс. п. 143. ИСБН 0-262-16083-8 .
- ^ Базили, Виктор Р.; Вайс, Дэвид М. (ноябрь 1984 г.). «Методология сбора достоверных данных о разработке программного обеспечения» . Транзакции IEEE по разработке программного обеспечения (6). IEEE Транс. Программное обеспечение англ. 10, 6 (ноябрь 1984 г.): 728–738. дои : 10.1109/TSE.1984.5010301 . hdl : 1903/7513 .
- ^ Ахмед Э. Хасан и Тао Се. 2010. Программный интеллект: будущее данных разработки программного обеспечения для добычи полезных ископаемых. В материалах семинара FSE/SDP «Будущее исследований в области разработки программного обеспечения» (FoSER '10). ACM, Нью-Йорк, Нью-Йорк, США, 161–166. дои : 10.1145/1882362.1882397
- ^ Ниерстраз, Оскар и Тео Дирк Мейлер. «Направления исследований в области композиции программного обеспечения». Обзоры вычислений ACM 27.2 (1995): 262–264. дои : 10.1145/210376.210389
- ^ Канасиро, Л. и др. «Прогнозирование ошибок программного обеспечения с помощью моделей низкой сложности на основе данных статического анализа». Журнал инженерии и управления информационными системами 3.2 (2018): 17 два : 10.20897/jisem.201817
- ^ «ИСО 25000:2005» (PDF) . Архивировано (PDF) из оригинала 14 апреля 2013 г. Проверено 18 октября 2013 г.
- ^ Бём, Барри В. и Кевин Дж. Салливан. «Экономика программного обеспечения: дорожная карта». Материалы конференции «Будущее программной инженерии». 2000. дои : 10.1145/336512.336584
- ^ Ренато Новаис, Хосе Амансио Сантос, Маноэль Мендонса,Экспериментальная оценка комбинации нескольких стратегий визуализации для анализа эволюции программного обеспечения, Журнал систем и программного обеспечения, том 128, 2017 г., стр. 56–71, ISSN 0164-1212 , дои : 10.1016/j.jss.2017.03.006 .
- ^ Ролия, Джером А. и Кеннет К. Севчик. «Метод слоев». Транзакции IEEE по разработке программного обеспечения 21.8, 1995, 689-700, дои : 10.1109/32.403785
- ^ «Правила программной инженерии по качеству кода» . Object Management Group, Inc. 2023 . Проверено 15 декабря 2023 г.
- ^ Балалае, Армин, Аббас Гейдарнури и Пуян Джамшиди. «Архитектура микросервисов обеспечивает DevOps: переход к облачной архитектуре». Программное обеспечение Ieee 33.3, май – июнь 2016 г., стр. 42–52, дои : 10.1109/MS.2016.64
- ^ Ц. Фэн, Р. Казман, Ю. Цай, Р. Мо и Л. Сяо, «На пути к архитектурно-ориентированному подходу к анализу безопасности», 2016 г., 13-я рабочая конференция IEEE/IFIP по архитектуре программного обеспечения (WICSA), Венеция, 2016 г., стр. 221-230, два : 10.1109/WICSA.2016.41
- ^ Р. Хаас, Р. Нидермайр и Э. Юргенс, «Teamscale: решение технической задолженности и контроль качества вашего программного обеспечения», Международная конференция IEEE/ACM по технической задолженности (TechDebt), 2019 г., Монреаль, Квебек, Канада, 2019 г., стр. 55-56, doi : 10.1109/TechDebt.2019.00016
- ^ Стори М.А. (2003) Разработка инструмента исследования программного обеспечения с использованием когнитивной структуры. В: Чжан К. (ред.) Визуализация программного обеспечения. Международная серия Springer по инженерным наукам и информатике, том 734. Спрингер, Бостон, Массачусетс.
- ^ Сона Ли, Сунгвон Кан, Какая ситуационная информация поможет разработчикам при использовании рекомендации по графическому коду?, Журнал систем и программного обеспечения, том 117, 2016, стр. 199–217, ISSN 0164-1212 , дои : 10.1016/j.jss.2016.02.050 .
- ^ Линда Г. Уоллес, Стивен Д. Шитц, Принятие программных мер: перспектива модели принятия технологии (TAM), Информация и управление, Том 51, Выпуск 2, 2014, стр. 249–259, ISSN 0378-7206 , дои : 10.1016/j.im.2013.12.003
- ^ Липперт, СК; Форман, Х. (август 2005 г.). «Использование информационных технологий: изучение когнитивных и экспериментальных факторов поведения после усыновления» . Транзакции IEEE по инженерному менеджменту. стр. 363–381 . Проверено 8 декабря 2023 г.
- ^ Банкир, доктор медицинских наук; Кемерер, CF (декабрь 1992 г.). «Метрики оценки производительности разработки информационных систем: модель принципала-агента» . Исследования информационных систем . 3 (4): 379–400 . Проверено 8 декабря 2023 г.
- ^ Краун, М. (9 июля 2003 г.). «Почему стартапы по программным продуктам терпят неудачу и что с этим делать. Эволюция разработки программных продуктов в стартап-компаниях» . Международная конференция по инженерному менеджменту IEEE. стр. 338–343. дои : 10.1109/IEMC.2002.1038454 . Проверено 8 декабря 2023 г.
- ^ Парнас, Дэвид Лорге, Точная документация: ключ к лучшему программному обеспечению, Будущее разработки программного обеспечения, 2011, 125–148, дои : 10.1007/978-3-642-15187-3_8
- ^ ЛаВалле, С.; Лессер, Э.; Шокли, Р.; Хопкинс, М.С. (21 декабря 2010 г.). «Большие данные, аналитика и путь от понимания к ценности» . Обзор менеджмента Слоана MIT . стр. 21–32 . Проверено 8 декабря 2023 г.
- ^ Янез Прашникар; Жига Дебеляк; Алеш Ахчан (3 декабря 2010 г.). «Бенчмаркинг как инструмент стратегического управления» . Тотальное управление качеством и совершенство бизнеса . 16 (2): 257–275. дои : 10.1080/14783360500054400 . Проверено 8 декабря 2023 г.
- ^ «Глоссарий Gartner — Анализ портфеля приложений (APA)» . Гартнер, Инк. 2023 г. Проверено 7 декабря 2023 г.
- ^ «Исследования Gartner — эффективные стратегии для обеспечения устойчивой оптимизации затрат на услуги приложений» . Gartner, Inc., 4 октября 2017 г. Проверено 7 декабря 2017 г.
- ^ «О спецификации автоматизированных функциональных точек версии 1.0» . Группа управления объектами. Декабрь 2013 года . Проверено 7 декабря 2023 г.