Программный интеллект - это понимание структурного состояния программных активов, создаваемых программным обеспечением, предназначенным для анализа структуры базы данных , программной среды и исходного кода, чтобы лучше понимать и контролировать сложные программные системы в средах информационных технологий . [1] Подобно Business Intelligence (BI), Software Intelligence производится с помощью набора программных инструментов и методов для анализа данных и внутренней структуры программного обеспечения. Конечные результаты - это информация, используемая заинтересованными сторонами в бизнесе и программном обеспечении для принятия обоснованных решений [ необходима цитата ]измерять эффективность организаций, занимающихся разработкой программного обеспечения, сообщать о состоянии программного обеспечения, предотвращать программные катастрофы. [2]
История
Software Intelligence использовался Кирком Полом Лафлером, американским инженером, предпринимателем и консультантом, а также основателем Software Intelligence Corporation в 1979 году. В то время это было в основном связано с деятельностью SAS , экспертом в которой он был с 1979 года. [3]
В начале 1980-х Виктор Р. Базили участвовал в написании различных работ, в которых подробно описывалась методология сбора достоверных данных по программной инженерии, относящихся к программной инженерии, оценке разработки программного обеспечения и вариациям. [4] [5] В 2004 году различные поставщики программного обеспечения в области анализа программного обеспечения начали использовать эти термины как часть своей стратегии наименования продуктов и маркетинга. Затем в 2010 году Ахмед Э. Хассан и Тао Се определили Software Intelligence как « практику, предлагающую специалистам по программному обеспечению актуальную и актуальную информацию для поддержки их повседневных процессов принятия решений, а Software Intelligence должна поддерживать процессы принятия решений на протяжении всего жизненного цикла программный комплекс ". Далее они определяют Software Intelligence как « сильное влияние на современную практику программного обеспечения » в ближайшие десятилетия. [6]
Возможности
Из-за сложности и широкого спектра компонентов и предметов, подразумеваемых в программном обеспечении, интеллектуальные возможности программного обеспечения основаны на различных аспектах программного обеспечения:
- Композиция программного обеспечения - это построение компонентов программного приложения. [7] Компоненты являются результатом кодирования программного обеспечения, а также интеграции исходного кода из внешних компонентов: компонентов с открытым исходным кодом, сторонних компонентов или фреймворков. Другие компоненты могут быть интегрированы с помощью вызова интерфейса прикладного программирования к библиотекам или службам.
- Архитектура программного обеспечения относится к структуре и организации элементов системы, отношений и свойств между ними.
- Недостатки программного обеспечения обозначают проблемы, которые могут вызвать безопасность, стабильность, отказоустойчивость и неожиданные результаты. Стандартного определения недостатков программного обеспечения не существует, но наиболее распространенным является определение от MITER Corporation, где общие недостатки занесены в список Common Weakness Enumeration . [8]
- Оценки программного обеспечения оценивают атрибуты программного обеспечения. Исторически классификация и терминология атрибутов были получены из модели качества ISO 9126-3 и последующей модели качества ISO 25000: 2005 [9] .
- Экономика программного обеспечения относится к оценке ресурсов программного обеспечения в прошлом, настоящем или будущем для принятия решений и управления. [10]
Составные части
Возможности платформ Software Intelligence включают в себя все большее количество компонентов:
- Анализатор кода, служащий информационной базой для других компонентов Software Intelligence, идентифицирующих объекты, созданные языком программирования, внешние объекты из открытого исходного кода , сторонние объекты, фреймворки , API или службы.
- Графическая визуализация и разработка внутренней структуры рассматриваемого программного продукта или приложения [11], включая зависимости, от сбора данных (автоматический сбор данных в реальном времени, ввод данных конечным пользователем) до хранения данных, различные уровни [12] внутри программное обеспечение и связь между всеми элементами.
- Возможности навигации в компонентах и функции анализа ударов
- Список недостатков, архитектурных нарушений и нарушений кодирования в соответствии со стандартизованными передовыми практиками [13], блокировщик облака, предотвращающий миграцию в облачную среду [14], и несанкционированный вызов данных, влекущий за собой безопасность и целостность программного обеспечения [15]
- Степени или баллы качества структуры и программного обеспечения в соответствии с отраслевыми стандартами, такими как OMG , CISQ или SEI, для оценки надежности, безопасности, эффективности, ремонтопригодности и масштабируемости для облачных или других систем.
- Метрики для количественной оценки и оценки экономики программного обеспечения, включая трудозатраты, размеры и технический долг [16]
- Отраслевые ссылки и сравнительный анализ, позволяющие сравнивать результаты анализа и отраслевые стандарты
Пользовательский аспект
Некоторые соображения должны быть приняты во внимание, чтобы успешно интегрировать использование систем Software Intelligence в компании. В конечном итоге система Software Intelligence должна быть принята и использована пользователями, чтобы она приносила пользу организации. Если система не добавляет ценности миссии пользователей, они просто не используют ее, как заявил М. Стори в 2003 году [17].
На уровне кода и представления системы системы Software Intelligence должны обеспечивать другой уровень абстракций: абстрактное представление для проектирования, объяснения и документирования и подробное представление для понимания и анализа программной системы. [18]
На уровне управления принятие пользователями Software Intelligence охватывает различные области, связанные с внутренним функционированием системы, а также с выходными данными системы. Он включает в себя следующие требования:
- Всесторонний: недостающая информация может привести к неправильному или несоответствующему решению, а также является фактором, влияющим на принятие системы пользователем. [19]
- Точность: точность зависит от того, как собираются данные, чтобы обеспечить справедливое и неоспоримое мнение и суждение. [20]
- Точность: точность обычно оценивается путем сравнения нескольких измерений из одного или разных источников. [21]
- Масштабируемость: отсутствие масштабируемости в индустрии программного обеспечения является критическим фактором, ведущим к отказу. [22]
- Достоверный: результатам нужно доверять и верить.
- Возможность развертывания и использования.
Приложения
Программный интеллект имеет множество приложений во всех сферах деятельности, связанных с программной средой, будь то программное обеспечение для профессионалов, частных лиц или встроенное программное обеспечение. В зависимости от ассоциации и использования компонентов приложения будут относиться к:
- Изменение и модернизация: единообразная документация и чертежи для всех внутренних компонентов, интегрированный внешний код или обращение к внутренним или внешним компонентам программного обеспечения [23]
- Отказоустойчивость и безопасность: сравнение с отраслевыми стандартами для диагностики структурных недостатков в ИТ-среде. [24] Подтверждение соответствия требованиям безопасности, конкретным правилам или техническим вопросам.
- принятие решений и управление: предоставление аналитических данных о самом программном обеспечении или заинтересованных сторонах, участвующих в разработке программного обеспечения, например, измерение производительности для информирования руководителей бизнеса и ИТ о прогрессе в достижении бизнес-целей. [25] Оценка и сравнительный анализ, чтобы помочь бизнес-лидерам и ИТ-руководителям принимать информированные, основанные на фактах решения о программном обеспечении. [26]
Торговая площадка
Software Intelligence является высоким уровнем дисциплины и постепенно растет , покрывающие приложения , перечисленные выше. Есть несколько рынков, которые вызывают потребность в этом:
- Анализ портфеля приложений (APA), направленный на повышение производительности предприятия [27] [28]
- Оценка программного обеспечения для разработки программного обеспечения KPI [29] и повышения качества и производительности.
- Меры безопасности и отказоустойчивости программного обеспечения и проверка
- Эволюция программного обеспечения или модернизация унаследованного программного обеспечения, для которой не требуются ни проектирование программных систем, ни инструменты, улучшающие и упрощающие модификации
Рекомендации
- ^ Домбровски Р. (2012) Об архитектуре складов и программном интеллекте. В: Ким Т., Ли Ю., Фанг В. (ред.) Информационные технологии будущего поколения. FGIT 2012. Lecture Notes in Computer Science, vol 7709. Springer, Berlin, Heidelberg.
- ^ Ахмед Э. Хасан и Тао Се. 2010. Программный интеллект: будущее разработки программного обеспечения для добычи данных. В материалах семинара FSE / SDP о будущем исследований в области программной инженерии (FoSER '10). ACM, Нью-Йорк, Нью-Йорк, США, 161–166
- ^ "Мистер Кирк Пол Лафлер" .
- ^ Базили, Виктор Р. (1981). Сбор, проверка и анализ данных. Метрики программного обеспечения: анализ и оценка (PDF) . MIT Press. п. 143. ISBN. 0-262-16083-8.
- ^ Basili, Victor R .; Вайс, Дэвид М. (ноябрь 1984 г.). Методология сбора достоверных данных о программной инженерии (PDF) . IEEE Trans. Софтв. Англ. 10, 6 (ноябрь 1984 г.). С. 728–738. DOI : 10.1109 / TSE.1984.5010301 . hdl : 1903/7513 .
- ^ Ахмед Э. Хасан и Тао Се. 2010. Программный интеллект: будущее разработки программного обеспечения для добычи данных. В материалах семинара FSE / SDP о будущем исследований в области программной инженерии (FoSER '10). ACM, Нью-Йорк, Нью-Йорк, США, 161–166. DOI : 10,1145 / 1882362,1882397
- ^ Нирстраз, Оскар и Тео Дирк Мейлер. «Направления исследований в композиции программного обеспечения». ACM Computing Surveys 27,2 (1995): 262-264 DOI : 10,1145 / 210376.210389
- ^ Канаширо, Л., и др. «Прогнозирование ошибок программного обеспечения с помощью моделей низкой сложности на основе данных статического анализа». Журнал инженерии информационных систем и управления 3.2 (2018): 17 doi : 10.20897 / jisem.201817
- ^ «ISO 25000: 2005» (PDF) . Архивации (PDF) с оригинала на 2013-04-14 . Проверено 18 октября 2013 . CS1 maint: обескураженный параметр ( ссылка )
- ^ Бём, Барри В. и Кевин Дж. Салливан. «Экономика программного обеспечения: дорожная карта». Материалы конференции «Будущее программной инженерии». 2000. DOI : 10,1145 / 336512.336584
- ^ Ренато Новаис, Хосе Амансио Сантос, Маноэль Мендонса, Экспериментальная оценка комбинации нескольких стратегий визуализации для анализа эволюции программного обеспечения, Журнал систем и программного обеспечения, том 128, 2017, стр. 56–71, ISSN 0164-1212 , DOI : 10.1016 / j.jss.2017.03.006 .
- ^ Rolia, Джером А., Кеннет С. Sevcik. «Метод слоев». IEEE сделки по программной инженерии 21.8,1995, 689-700, DOI : 10,1109 / 32,403785
- ^ Правила программной инженерии по качеству кода. http://it-cisq.org/standards/code-quality-standards/
- ^ Balalaie, Armin, Аббас Heydarnoori и Pooyan Jamshidi. «Архитектура микросервисов позволяет DevOps: переход на облачную архитектуру». Ieee Software 33.3, май – июнь 2016 г., стр. 42–52, doi : 10.1109 / MS.2016.64
- ^ Q. Фэн, Р. Казман, Ю. Цай, Р. Мо и Л. Сяо, «На пути к архитектурно-ориентированному подходу к анализу безопасности», 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 International в области инженерии и информатики, том 734. Спрингер, Бостон, Массачусетс.
- ^ Сеона Ли, Сунгвон Кан, Какая ситуационная информация может помочь разработчикам при использовании графического рекомендателя кода?, Журнал систем и программного обеспечения, том 117, 2016, стр. 199–217, ISSN 0164-1212 , DOI : 10.1016 / j.jss.2016.02.050 .
- ^ Линда Г. Уоллес, Стивен Д. Шитц, Принятие программных мер: перспектива модели принятия технологии (TAM), Информация и управление, Том 51, Выпуск 2, 2014 г., стр. 249–259, ISSN 0378-7206 , DOI : 10.1016 / j.im.2013.12.003
- ^ Lippert, SK, и Форман, H. (2005). Использование информационных технологий: изучение когнитивных и экспериментальных факторов поведения после усыновления. IEEE Transactions по инженерному менеджменту, 52, 363–381.
- ^ Раджив Д. Банкир и Крис Ф. Kemerer (1992). Метрики оценки производительности для разработки информационных систем: модель принципала-агента. Исследования информационных систем, том 3, номер 4, 379–400.
- ^ М. Краун, «Почему стартапы программных продуктов терпят неудачу и что с этим делать. Эволюция разработки программных продуктов в начинающих компаниях», IEEE International Engineering Management Conference, 2002, pp. 338–343 vol.1. DOI : 10,1109 / IEMC.2002.1038454
- Перейти ↑ Parnas, David Lorge, Precise Documentation: The Key to Better Software, The Future of Software Engineering, 2011, 125–148, DOI : 10.1007 / 978-3-642-15187-3_8
- ^ https://www.bcg.com/capabilities/technology-digital/software-intelligence.aspx
- ^ LaValle S, Lesser E, Shockley R, Hopkins MS и Kruschwitz N (2011) Большие данные, аналитика и путь от понимания к ценности. MIT Sloan Management Review 52 (2), 21–32.
- ^ Янез Прашникар, Жига Дебеляк, Алеш Ахчан (2005) Бенчмаркинг как инструмент стратегического управления, Total Quality Management & Business Excellence, том 16, номер 2, 257–275, doi : 10.1080 / 14783360500054400
- ^ https://www.gartner.com/it-glossary/application-portfolio-analysis
- ^ https://www.gartner.com/doc/3812067/effective-strategies-deliver-sustainable-cost
- ^ https://www.omg.org/spec/AFP