Научная и инженерная дисциплины программной инженерии

Теоретический фундамент программной инженерии

Таким образом, ПИ сложилась, как научно-инженерная дисциплина, которая входит в состав компьютерной науки (Сomputer science).
Следовательно, новое определение программной инженерии как научной и инженерной дисциплины в более широком смысле.

Программная инженерия - раздел компьютерной науки, изучающий методы и средства построения компьютерных программ; отражает закономерности развития и обобщает накопленный опыт программирования; оперирует объектами (модулями, компонентами, программными аспектами и т.п.) и определяет автоматизированные операции по их производству; вырабатывает правила и порядок инженерной деятельности и управления технологическим процессом построения из простых объектов новых, более сложных, объектов (программного обеспечения, программных систем (ПС), семейств систем, программных проектов и т.д.), а также методы измерения и оценки готового продукта .

Научная и инженерная дисциплины программной инженерии

Теория построения - это теория их программирования с абстрактными спецификациями (графовыми и структурными схемами, функциями и композициями, дескрипторами и номинативными данным, сценариями (use case диаграммы), а также формальная проверка соответствия объектов требованиям по методам доказательства, верификации, инспекции и т.п.

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

Программная инженерия как научная дисциплина

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

Программная инженерия как дисциплина охватывает теоретические, формальные методы и соответствующие средства построения сложных программных объектов.

Научная и инженерная дисциплины программной инженерии

Построение имеет целью анализ предметной области, которая автоматизируется, и продуцирование результирующего кода для выполнения на компьютере.

Интегрированы в программную инженерию фундаментальные науки, упомянутые выше (на рис.1.1), а также наука программирования, составляют ее общую теоретическую основу, которая предоставляет базовые понятия, объекты и формальные механизмы, необходимые для предоставления программным продуктам общих свойств и специфических черт соответственно с установленными к ним требованиями

Программная инженерия как дисциплина охватывает теоретические, формальные методы и соответствующие средства построения сложных программных объектов. Построение имеет целью анализ предметной области, которая автоматизируется, и продуцирование результирующего кода для выполнения на компьютере. Интегрированы в программную инженерию фундаментальные науки, упомянутые выше (на рис.1.1), а также наука программирования, составляют ее общую теоретическую основу, которая предоставляет базовые понятия, объекты и формальные механизмы, необходимые для предоставления программным продуктам общих свойств и специфических черт соответственно с установленными к ним требованиями.

ПИ как наука включает в себя:
1) основные понятия и объекты;
2) теорию программирования и методы управления производством продукта;
3) средства и инструменты процессов разработки продукта.

Основные понятия программной инженерии

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

 

Предоставим общее определение целевых объектов в ПИ.

Определение 1.3. Программная (прикладная) система (Application) - комплекс интегрированных приложений и средств, реализующих набор взаимосвязанных функций некоторой предметной области в заданной среде. В комплекс могут входить: прикладные системы (например, программы расчета зарплаты, учета материалов на складе и т.п.), общесистемные программные средства (например, транслятор, редактор, СУБД и др.), специализированные программные средства для реализации функций защиты информации, обеспечения безопасности функционирования и др..

Способ изготовления - инженерия ПС (или application engineering), который включает в себя процессы ЖЦ, методы разработки и процедуры управления, а также методы и средства оценки продуктов и процессов с целью их усовершенствования.

прикладные программные системы. Так, функциями некоторой ОС являются управление задачами, программами, данными и т.п. Способ изготовления - инженерия разработки целевых программ для задач с ПО.

Определение 1.5. Семейство систем (Systems family) - совокупность программных систем с общим (неизменным для всех членов семейства) и управляемым (переменным) набором характеристик, удовлетворяющих определенные потребности прикладной области (домена). Способ изготовления - инженерия домена (Domain Engineering) или конвейерное производство однотипных ПП по единой схеме на основе специально разработанных базовых членов семейства и других готовых программных ресурсов (assets) с помощью базового процесса или автоматизированной линейки продукта (Product line).

Определение 1.6. Программный проект - уникальный и интегрированный комплекс взаимосвязанных мероприятий, ориентированных на достижение целей и задач объекта разработки по определенным требованиям к срокам, бюджету и характеристикам ожидаемых результатов деятельности от него. Способ изготовления - инженерия процесса разработки и менеджмента проекта.

Определение 1.7. Сложные программные объекты - совокупность взаимосвязанных целевых объектов различных типов, которые выполняют необходимые функции в сложной системе, представлены как самостоятельно разработанные простые и целевые объекты или выбраны из готовых ресурсов.

2. Теория программирования - совокупность методов, языков и средств описания и проектирования целевых объектов, а также методов их доведения, верификации и тестирования [6-8]. Вместе объекты теории программирования в программной инженерии используют формальные методы управления проектом (персоналом, материальными и финансовыми ресурсами) и его отдельными характеристиками. Согласно проведенной нами классификации методов теории программирования в программной инженерии применяются следующие (рис.1.3):