Бағдарламалық жасақтаманың көмекшісі - Knowledge Based Software Assistant

The Бағдарламалық жасақтаманың көмекшісі (KBSA) қаржыландыратын зерттеу бағдарламасы болды Америка Құрама Штаттарының әуе күштері. Бағдарламаның мақсаты -дан тұжырымдамаларды қолдану болды жасанды интеллект жобалау және енгізу мәселесіне компьютерлік бағдарламалық жасақтама. Бағдарламалық жасақтама өте жоғары деңгейдегі тілдерде модельдермен сипатталатын болады (мәні барабар бірінші ретті логика ) содан соң трансформация ережелері сипаттаманы тиімді кодқа айналдырады. Әуе күштері басқаруға арналған бағдарламалық жасақтама жасай аламыз деп үміттенді қару-жарақ жүйелері және басқа да басқару және басқару осы әдісті қолданатын жүйелер. Бағдарламалық жасақтама USAF қару-жарақ жүйелері үшін өте маңызды бола бастаған кезде, бағдарламалық жасақтаманы әзірлеу процесінің сапасы мен өнімділігін арттыру әскерилер үшін де, сонымен бірге ақпараттық технологиясы АҚШ-тың басқа да ірі салаларында.

Тарих

1980 жылдардың басында Америка Құрама Штаттарының Әскери-әуе күштері жасанды интеллект технологияларын қолданудан айтарлықтай пайда тапқанын түсінді сараптамалық мәселелерді шешу ұшақтардағы ақауларды диагностикалау сияқты. Әуе күштері зерттеушілер тобына тапсырма берді жасанды интеллект және формальды әдістер бағдарламалық жасақтаманы дамытудың жалпы проблемаларына осындай технологияларды қалай пайдалануға болатындығы туралы есеп әзірлеу үшін қауымдастықтар.

Есепте бағдарламалық жасақтаманы дамытуға жаңа көзқарас туралы айтылды. Техникалық сипаттамаларды диаграммалармен анықтаудан және оларды қолда бар кодқа қазіргі процедураға айналдырудан гөрі, білімге негізделген бағдарламалық қамтамасыз етудің көмекшісі (KBSA) өте жоғары деңгейдегі тілдерде сипаттамаларды анықтап, содан кейін спецификацияны біртіндеп тиімді кодқа айналдыру үшін трансформация ережелерін қолдану керек гетерогенді платформаларда.

Жүйенің дизайны мен нақтылануындағы әрбір қадам интеграцияланған репозитарийдің бөлігі ретінде жазылатын болады. Бағдарламалық жасақтаманы жасау артефактілерінен басқа, әртүрлі анықтамалар мен түрлендірулер оларды талдауға болатын етіп жазылатын және қажет болған кезде кейіннен қайта ойнатылатын болады. Әр қадам іске асырылатын жүйеге арналған әр түрлі функционалды емес талаптарды ескеретін түрлендіру болады деген ой болды. Мысалы, Ada сияқты арнайы бағдарламалау тілдерін қолдануға немесе нақты уақыттағы ақауларға төзімділік миссиясы үшін кодты қатайтуға қойылатын талаптар.[1]

Әуе күштері осы көзқарас бойынша келесі зерттеулерді қаржыландыру туралы шешім қабылдады Римдегі ауаны дамыту орталығы зертхана Гриффис әуе күштерінің базасы Нью-Йоркте. Ерте зерттеулердің көп бөлігі Солтүстік Калифорниядағы Кестрел институтында өткізілді Стэнфорд университеті ) және Ақпараттық ғылымдар институты (ISI) Оңтүстік Калифорнияда (бірге USC және UCLA ). Кестрел институты ең алдымен логикалық модельдерді тиімді кодқа айналдыруға бағытталған. ISI бірінші кезекте логикалық формализммен салыстыруға болатын, бірақ интуитивті және жүйелік талдаушыларға таныс форматтарда болатын сипаттамаларды анықтауға бағытталған. Сонымен қатар, Raytheon бейресми талаптарды жинауды зерттейтін жоба жасады және Honeywell мен Гарвард университеті негіздер, интеграция және қызметті үйлестіру бойынша жұмыс жасады.

ҚБСА бағдарламасы негізінен қаржыландырылмаса да MIT Programmer's Apprentice жобасы да көптеген мақсаттарды көздеді және KBSA сияқты әдістерді қолданды.[2]

KBSA бағдарламасының кейінгі кезеңдерінде (1991 жылдан бастап) зерттеушілер бағдарламалық жасақтаманың орташа және ірі масштабтарында қолданылатын прототиптерін жасады. Сондай-ақ, осы кейінгі кезеңдерде таза KBSA тәсілінен жалпы және қазіргі және болашақты толықтыру мен көбейту үшін білімге негізделген технологияны пайдалану туралы жалпы сұрақтарға ауысты. компьютерлік бағдарламалық қамтамасыздандыру (CASE) құралдары. Осы кейінгі кезеңдерде ҚБСА қауымдастығы мен объектіге бағдарланған және бағдарламалық қамтамасыз ету инженерлік қоғамдастықтары арасында айтарлықтай өзара әрекеттестік болды. Мысалы, KBSA тұжырымдамалары мен зерттеушілері мега бағдарламалау мен қолданушыға бағдарланған бағдарламалық жасақтама бағдарламаларында маңызды рөл атқарды. Қорғаныс бойынша алдыңғы қатарлы ғылыми жобалар агенттігі (DARPA).[3] Осы кейінгі кезеңдерде бағдарлама өзінің атауын білімге негізделген бағдарламалық жасақтама (KBSE) деп өзгертті. Атаудың өзгеруі бағдарламалық жасақтаманың өмірлік циклін қамтитын мүлдем жаңа құралды жасауды емес, білімге негізделген технологияны біртіндеп қолданыстағы құралдарға енгізудің әртүрлі зерттеу мақсаттарын көрсетті. Сияқты компаниялар Андерсен Консалтинг (ең ірі жүйелік интеграторлардың бірі және өзінің CASE құралының сатушысы) бағдарламада осы кейінгі кезеңдерде үлкен рөл атқарды.

Негізгі ұғымдар

Трансформация ережелері

KBSA қолданған трансформация ережелері сараптамалық жүйелерге арналған дәстүрлі ережелерден өзгеше болды. Трансформация ережелері әлемдегі фактілерге емес, спецификация мен енгізу тілдеріне сәйкес келді. Ереженің оң жағында да, сол жағында да өрнектерді, таңбалауыштарды және рекурсияны қолданып түрлендірулерді көрсету мүмкін болды. Сол жақтағы өрнек іздеу үшін қолданыстағы білім қорындағы заңдылықтарды көрсетеді. Оң жақтағы өрнек сол жағын түрлендіретін жаңа үлгіні көрсете алады. Мысалы, жиынтық теоретикалық типті Ada жиынтығының кітапханасын пайдаланып кодқа түрлендіріңіз.[4]

Трансформация ережелерінің бастапқы мақсаты жоғары деңгейлі логикалық спецификаны нақты аппараттық және бағдарламалық платформаға арналған жақсы жасалған кодқа нақтылау болды. Бұл теореманы дәлелдеу және автоматты бағдарламалау бойынша алғашқы жұмыстардан шабыт алды. Алайда, Ақпараттық ғылымдар институтының (ISI) зерттеушілері эволюциялық трансформациялар.[5] Сипаттаманы кодқа айналдырудың орнына эволюция трансформациясы спецификация деңгейіндегі әртүрлі стереотиптік өзгерістерді автоматтандыруға арналған, мысалы, бар класстан жалпы мүмкіндіктермен бөлісуге болатын әртүрлі мүмкіндіктерді алу арқылы жаңа суперкласс жасау. Эволюциялық түрлендірулер бағдарламалық жасақтама үлгілерінің пайда болуымен және екі топтың тұжырымдамалары мен технологияларымен бір уақытта дамыды. Эволюциялық трансформациялар мәні бойынша белгілі болды қайта өңдеу нысанға бағытталған бағдарламалық жасақтама үлгілері қоғамдастығында.[6]

Білімге негізделген репозиторий

KBSA негізгі тұжырымдамасы барлық артефактілер: талаптар, сипаттамалар, түрлендірулер, дизайн, код, процесс модельдері және т.б. білімге негізделген репозиторий. KBSA есебінің түпнұсқасы кең спекторлы тіл деп сипатталған. Талап а білімді ұсыну толығымен қолдайтын жақтау өміршеңдік кезең: талаптар, спецификация және код, сондай-ақ бағдарламалық жасақтаманың өзі. Білімдер базасының негізгі көрінісі бір құрылымды қолдануды көздеді, бірақ нақты презентациялар мен іске асыруларды қолдау үшін әр түрлі қабаттарды қосуға болады.

Бұл алғашқы білім базасын негізінен ISI және Kestrel ғимараттары жасады Лисп және Лисп машинасы қоршаған орта. Kestrel ортасы сайып келгенде Refine деп аталатын коммерциялық өнімге айналды, оны Kestrel компаниясының Reasoning Systems Incorporated деп аталатын бөлу компаниясы жасап шығарды.

Бағдарламалық жасақтаманың кері инженері мәселесінде тілді және қоршаған ортаны нақтылау: бизнес үшін өте маңызды, бірақ тиісті құжаттары жоқ ескі кодты алу және оны талдап, оны қолдауға болатын түрге ауыстыру құралдары қолданылды. Туралы көбірек алаңдаушылықпен Y2K проблемасы кері инженерия АҚШ-тың көптеген ірі корпорациялары үшін маңызды іскерлік мәселе болды және бұл 1990 жылдары KBSA зерттеулерінің басты бағыты болды.[7][8]

ҚБСА қауымдастықтары мен қоғам арасында айтарлықтай өзара әрекеттестік болды Фреймдік тіл және объектіге бағытталған қауымдастықтар. ҚБСА-ның алғашқы білім базалары іске асырылды объектіге негізделген емес, тілдер объектіге бағытталған. Нысандар сыныптар мен кіші сыныптар ретінде ұсынылды, бірақ объектілерде әдістерді анықтау мүмкін болмады. Андерсен Консалтингтік Тұжырымдамасы Демо сияқты KBSA-ның кейінгі нұсқаларында спецификация тілі хабарлама жіберуді қолдау үшін кеңейтілді.

Ақылды көмекші

ҚБСА проблемаларды қалай шешуге және пайдаланушылармен жұмыс істеуге келгенде дәстүрлі сараптамалық жүйелерге қарағанда басқаша көзқарас ұстанды. Дәстүрлі сараптамалық жүйеде қолданушы бірқатар интерактивті сұрақтарға жауап береді және жүйе шешімін ұсынады. KBSA тәсілі қолданушыны бақылауда қалдырды. Сараптама жүйесі сарапшының қажеттілігін белгілі бір дәрежеде ауыстыруға және жоюға тырысқан кезде, ҚБСА-дағы интеллектуалды көмекші тәсілі процесті технологиямен қайта ойлап табуға тырысты. Бұл қолданушы интерфейсі деңгейінде бірқатар жаңалықтарға әкелді.

Нысанға бағытталған қауымдастық пен KBSA арасындағы ынтымақтастықтың мысалы ретінде KBSA пайдаланушы интерфейсі үшін қолданылатын архитектура болды. KBSA жүйелері пайдаланушы интерфейсін моделі-қарау-контроллері (MVC) қолданды. Бұл Smalltalk орталарынан алынған идея.[9] MVC архитектурасы KBSA пайдаланушы интерфейсіне өте жақсы сәйкес келді. KBSA орталарында білім базасының бірнеше гетерогенді көріністері ұсынылды. Жаңа туындайтын модельге субъектілер мен қатынастар, объектілердің өзара әрекеттестігі, сыныптар иерархиялары, деректер ағыны және көптеген басқа көзқарастар тұрғысынан қарау пайдалы болуы мүмкін. MVC архитектурасы бұған ықпал етті. MVC архитектурасымен негізгі модель әрқашан а болатын білім қоры болды метамодель спецификация және енгізу тілдерінің сипаттамасы. Талдаушы белгілі бір диаграмма арқылы біраз өзгеріс жасаған кезде (мысалы, класс иерархиясына класс қосылды), бұл өзгеріс негізгі модель деңгейінде жасалды және модельдің әртүрлі көріністері автоматты түрде жаңартылды.[10]

Трансформацияны қолданудың артықшылықтарының бірі - спецификация мен іске асырудың көптеген аспектілерін бірден өзгертуге болатындығында. Шағын масштабты прототиптер үшін алынған сызбалар жеткілікті қарапайым болды, сондықтан негізгі орналасу алгоритмдері пайдаланушыларға диаграммаларды тазартуға тәуелді болды. Алайда, егер түрлендіру ондаған, тіпті жүздеген түйіндері бар модельдерді түбегейлі өзгерте алса және әр түрлі көріністердің үнемі жаңаруын байланыстыратын болса, бұл өз алдына міндет болады. Андерсен Консалтингтің зерттеушілері Иллинойс Университетінің графика теориясы бойынша білім қорымен байланысты әр түрлі көріністерді автоматты түрде жаңарту және сілтемелердің минималды қиылысы бар графиктерді құру, сонымен қатар домен мен қолданушының арнайы орналасу шектеулерін ескеру бойынша жұмыс жасады.

Интеллектуалды көмек көрсету үшін қолданылатын тағы бір тұжырымдама мәтінді автоматты түрде құру болды. ISI-дегі алғашқы зерттеулер формальды сипаттамаларды табиғи емес тілдегі мәтіндік құжаттардан алудың орындылығын зерттеді. Олар тәсілдің өміршең еместігін анықтады. Табиғи тіл табиғатынан жүйені анықтау үшін жақсы формат ретінде қызмет ету үшін тым түсініксіз. Алайда, табиғи тілді генерациялау менеджерлер мен техникалық емес қызметкерлер оқи алатын мәтіндік сипаттамалар жасау әдісі ретінде қарастырылды. Бұл әсіресе әуе күштеріне өте ұнады, өйткені заң бойынша олар барлық мердігерлерден жүйені әртүрлі тұрғыдан сипаттайтын әр түрлі есептер шығаруды талап етті. ISI, кейінірек Cogentext және Андерсен Консалтингтің зерттеушілері өздерінің технологияларын қолдана отырып, әуе күштері келісімшарттарында талап етілетін құжаттаманы жасау арқылы тәсілдің өміршеңдігін көрсетті.[11]

Әдебиеттер тізімі

  1. ^ Жасыл, Корделл; Д.Лакхэм; Р.Бальцер; Т.Читэм; C. Rich (тамыз 1983). «Білімге негізделген бағдарламалық қамтамасыз ету туралы есеп» (PDF). Kestrel институты. A996431: 78. Алынған 4 қаңтар 2014.
  2. ^ Бай, Чарльз; Ричард C. Уотерс (қараша 1988). «Бағдарламашының шәкірті жобасы: зерттеуге шолу» (PDF). Компьютер. 21 (11): 10–25. дои:10.1109/2.86782. hdl:1721.1/6054. Алынған 26 желтоқсан 2013.
  3. ^ Дебеллис, Майкл; Кристин Хаапала (1995 ж. Ақпан). «Пайдаланушыға арналған бағдарламалық жасақтама». IEEE Expert. 10 (1): 34–41. дои:10.1109/64.391959.
  4. ^ Смит, Даг (1991). «KIDS - білімге негізделген бағдарламалық жасақтама жүйесі». Майкл Лоуриде Роберт Маккартни (ред.) Бағдарламалық жасақтаманы автоматтандыру. AAAI / MIT түймесін басыңыз. 483-514 бб. CiteSeerX  10.1.1.54.6955. ISBN  978-0262620802.
  5. ^ Джонсон, Льюис; ХАНЫМ. Қауырсын (1991). «Техникалық сипаттамаларын құру үшін эволюциялық түрлендірулерді қолдану». Бағдарламалық жасақтаманы автоматтандыру. AAAI Баспасөз: 65–92.
  6. ^ Фаулер, Мартин (1999). Қайта өңдеу: қолданыстағы кодтың дизайнын жақсарту. Аддисон Уэсли. ISBN  0201485672.
  7. ^ Бом, Барри; Prasanta Bose (1998-08-15). «KBSA өмірлік циклін бағалау: қорытынды техникалық есеп» (PDF). Шарт №: F30602-96-C-0274. Бағдарламалық жасақтама жасау USC орталығы. Мен. Алынған 4 қаңтар 2014. Бағдарлама өзінің түпкі мақсаттарына жете отырып, өнімділікті арттыратын бірнеше спинофтарды тудырды, мысалы, нақтыланған бағдарламалық жасақтаманы қайта құру және тестілеу құралдары
  8. ^ Уэлти, Крис. «KBSE-93 қысқаша мазмұны: Сегізінші білімге негізделген бағдарламалық жасақтама жасау бойынша конференция». ase-conferences.org. Алынған 4 қаңтар 2014. REFINE / COBOL Object Modeling Workbench реинжиниринг құралдарының жиынтығын ұсынады, Refine - KBSA тұжырымдамасының демо тілі.
  9. ^ Харрис, Дэйв; Чечри (1988). «Білімге негізделген талаптар көмекшісі». IEEE Expert. 3 (4).
  10. ^ Джонсон, Льюис; Дэвид Р. Харрис; Беннер Кевин; Martin S. Feather (1992 ж. Қазан). «Овен: ҚБСА-ға қойылатын талаптар / спецификациялар қыры». Рим зертханасының қорытынды техникалық есебі. RL-TR-92-248.
  11. ^ Дебеллис, Майкл; Кант Мирияла; Судин Бхат; Уильям С.Сассо; Оуэн Рэмбо (сәуір 1993). «KBSA тұжырымдамасының демонстрациясы: қорытынды техникалық есеп». USAF Рим зертханасының техникалық есебі. RL-TR-93-38. Алынған 4 қаңтар 2014.