автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Анализ эффективности исходных текстов программ в процессе обучения

кандидата технических наук
Халабия Рустам Фарук
город
Москва
год
1999
специальность ВАК РФ
05.13.11
Диссертация по информатике, вычислительной технике и управлению на тему «Анализ эффективности исходных текстов программ в процессе обучения»

Оглавление автор диссертации — кандидата технических наук Халабия Рустам Фарук

ведение шва 1. Проблема повышения эффективности программ

1. Способы получения эффективных программ

2. Сравнение существующих систем оптимизации и отладки

3. Выводы и задачи исследования 22 лава 2. Модель и методика оценки текстов программ

1. Формализованная модель представления текста программы

2. Построение модели и процедура определение характеристик программы

3. Методика оценки эффективности текста программы

4. Выводы к главе 2 37 лава 3. Методологические основы построения автоматизированной истемы анализа эффективности текстов программ (АСАЭИТП) 1. Назначение и архитектура АСАЭИТП

2. Иерархическая модель АСАЭИТП

3. Принципы построения алгоритмов анализа

1.4. Алгоритмы обработки текстов программ

1.4.1. Обработка текстов, содержащие линейные последовательности

5.4.2. Обработка текстов, содержащие реализующие конечные алгоритмы

3.4.2.1. Минимизация верхней границы времени счета

3.4.2.2. Минимизация нижней границы времени счета кЗ. Обработка текстов, содержащие комбинаторные алгоритмы

Л. Обработка текстов, содержащие циклы к5. Алгоритмы декомпозиции исходного текста в памяти 73 \.6. Обработка текстов программ, содержащие массивы и размещение их в памяти Выводы к главе шва 4. Программная реализация АСАЭИТП

1. Элементы АСАЭИТП

2. Тестирование АСАЭИТП

3. Выводы к главе 4 96 сновные результаты диссертационной работы 97 писок использованной литературы 99 риложение

Введение 1999 год, диссертация по информатике, вычислительной технике и управлению, Халабия Рустам Фарук

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

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

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

Наиболее общее качество программы это ее эффективность. Под ффективностью программы понимается ее способность получить [еобходимый результат с минимальными для выполнения ресурсами.

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

Возрастающая сложность ПО и повышающиеся требования к ним привели к необходимости применения эффективных технологий их создания.

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

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

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

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

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

Для достижения поставленной цели выделены следующие 1селедовательские задачи:

- проведение анализа существующих систем оптимизации и систем отладки;

- исследование принципов построения исходных текстов программ;

- исследование методов оценки эффективности исходных текстов программ;

- разработка формализованной модели представления исходного текста программы;

- исследование и разработка структуры автоматизированной системы анализа эффективности исходных текстов программ (АСАЭИТП);

- разработка концептуальной модели АСАЭИТП.

На защиту выносятся:

- формализованная модель представления программы как объекта проектирования;

- методика и алгоритм анализа формализованной модели;

- методика и алгоритм оценки эффективности текстов программ;

- методика и алгоритм автоматизированного получения эффективного исходного текста программы.

Поставленные задачи диссертационного исследования решены на снове применения системно-структурного анализа, теории графов, еории вероятности, моделирования и системного программирования.

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

Заключение диссертация на тему "Анализ эффективности исходных текстов программ в процессе обучения"

Результаты работы внедрены в Московской Государственной Академии приборостроения и информатики (МГАГШ).

Библиография Халабия Рустам Фарук, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. Кириенко Н. А. Оптимизация программ в процессе трансляции. Минск, 1991.-115 с.

2. Липаев В.В. Качество программного обеспечения. М.: Финансы и статистика, 1983. -326 с.

3. Липаев В.В. Отладка сложных программ: Методы, средства, технология. М.: Энергоатомиздат, 1993. - 384 с.

4. Липаев В. В. Проектирование математического обеспечения АСУ (системотехника, архитектура, технология). М.: Сов. Радио, 1977, -400 с.

5. Марка Д. А., МакГоуэн К. Методология структурного анализа и проектирования. - М.: МетаТехнология, 1993.

6. Мессарович М., Мако Д. Такахара И. Теория иерархических многоуровневых систем. Пер. с англ. Под ред. И.Ф. Шахнова, М.: Мир, 1973,-213 с.

7. Мешков А., Тихомиров Ю. Visual С++ и MFC. Программирование для Windows 95 и Windows NT: В трех томах. Том 1. СПб.: BHV -Санкт-Петербург, 1997. - 464 с.

8. Мюррей Н., Паппас К. Создание переносимых приложений для Windows 95. СПб.: BHV - Санкт-Петербург, 1996. - 305 с.

9. Поттосин И. В. Глобальная оптимизация практический подход. В кн.:Тр. Всесоюз. симпоз. по методам реализации новых алгоритмических языков. 4.1. Новосибирск, 1970, с 113-128.

10. Пустоваров В. И. Язык Ассемблер в программировании информационных и управляющих систем. М.: «ЭНТРОП», К.: «ВЕК», 1996.-304.

11. Савельев А. Я., Новиков В.А., Лобанов Ю. И. Подготовка информации для автоматизированных обучающих систем. М.:Высш. шк, 1986.- 176 с.

12. Сергиенко И.В. Математические модели и методы решения задач дискретной оптимизации. Киев: Наук. Думка, 1985. - 384 с.

13. Халабия Р.Ф. Оптимизация программ. В сб.: Межвузовский сборник научных трудов «Программное и информационное обеспечение систем различного назначения на базе персональных ЭВМ»,- М., МГАПИ, 1996, с. 131-133.

14. Халабия Р.Ф. Ошибки в программах при их оптимизации. В сб.: Межвузовский сборник научных трудов «Программное и информационное обеспечение систем различного назначения на базе персональных ЭВМ»,- М., МГАПИ, 1998, с. 196-198.

15. Халабия Р.Ф. Оптимизация машинного кода. В сб.: Межвузовский сборник научных трудов «Программное и информационное обеспечение систем различного назначения на базе персональных ЭВМ»,- М., МГАПИ, 1998, с. 192-194.

16. Халабия Р.Ф. Модель представления алгоритма в процессе оптимизации. Тезисы докладов второй научно-технической конференции «Моделирование и исследование сложных систем», г. Москва, Июнь 1998 г, с296 299.

17. Ackerman А. Е., Buchwald L. S., Lewski F. H. Software inspection: an effective vérification process. IEEE Software. 1989. May. P31-36.M. Andrew Koenig, John Guttag. Abstraction and Spécification in Program Development. McGraw-Hill, NY, 1986.

18. Andrew Koenig, Stanley Lippman. Optimizing Virtual Tables in С++ Release 2.0. The С++ report, March 1990.

19. Bjarne Stroustrup. The C++ Programming Language, 2nd Edition. -Addison-Wesley, MA 1991.

20. Cea J. Optimization: Theorie et algorithmes. Dunoh, 1971.H. Cooke D.J., Bez H.E. Computer mathematics. Cambridge University Press, 1984.-380 p.

21. IBM J. Res. Develop. Vol.38. No.5, September 1994. Instruction sheduling in the TOBEY compiler, p577-593

22. International standard programming languages ADA. ISO 8652: 1987 (e). - 4p.

23. Landin P.J. The next 700 programming languages. Comm. ACM, 1966, №3, p. 157-164.

24. Marcel Beemster. Strictness optimization for graph reduction machienes. ACM Transation Programming Languages and System, September 1994, pp 1449-1466.

25. Parhi K., Messerschmitt D. Static rate-optimal scheduling of iterive dataflow programs via optimum unfolding. IEEE Transactions On Computers, February 1991, pp. 178-194.

26. Pareto V. Coursd' Economie Poligue Lausanne: Houge, 1989. 200 p.

27. Rymer J. W. What should real time tosting offer. IAAA paper, 1977, №783, p78-83.

28. Shlomit S., Ron J. Program optimization and parallelization using idioms. ACM Transation Programming Languages and System, May 1994, pp. 305 -327.

29. FILES A VE AS ID FILE MRU FILEl, GRAYED Ю CLOSE1. EDIT UNDO

30. EDITCUT ID EDIT COPY ID EDITPASTEШ EDIT PASTE SPECIAL

31. VIEWTOOLBAR ID VIEW STATUS BAR1. APP ABOUTAcceleratorDR MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE iEGINN", "O", "S",X", "C", "V",

32. FILENEW, IDFILEOPEN, ID FILE SAVE, ID NEXT PANE, ID PREV PANE,

33. CANCEL EDIT CNTR, VIRTKEY, NOINVERTDialogDD ABOUTBOX DIALOG DISCARDABLE 0, 0, 217, 551TYLE D S MODALFRAME | WSPOPUP | WSCAPTION | WSSYSMENUAPTION "About beg"ONT 8, "MS Sans SerifiEGIN

34. FTMARGIN, 7 RIGHTMARGIN, 210 TOPMARGIN, 7 BOTTOMMARGIN, 48 END <NDendif // APSTUDIOJNVOKED1 String Tabletringtable discardableJEGIN

35. P OLE INIT FAILED "OLE initialization failed, lie correct version."

36. P FAILED TO CREATE "Failed to create object ystem registry."sNDstringtable preload discardable iegin

37. AP P ABOLIT "Display program information, version number andopyright\n About "

38. FILE MRU FILE 15 "Open this document" ID FILE MRU FILE 16 "Open this document"iNDTRINGTABLE DISCARDABLE IEGIN

39. NEXT PANE "Switch to the next window pane\nNext Pane" IDPREVPANE "Switch back to the previous window pane\nPrevious Pane"ndTRINGTABLE DISCARDABLE IEGIN

40. WINDOW SPLIT "Split the active window into panes\nSplit"i~NDTRINGTABLE DISCARDABLE ¡EGIN

41. EDIT CLEAR "Erase the selection\nErase"

42. EDIT CLEAR ALL "Erase everything\nErase All"

43. EDIT COPY "Copy the selection and put it on the Clipboard\nCopy"

44. EDIT CUT "Cut the selection and put it on the Clipboard\nCut"

45. EDIT FIND "Find the specified text\nFind"

46. EDIT PASTE "Insert Clipboard contents\nPaste"

47. VIEW TOOLBAR "Show or hide the toolbar\nToggle ToolBar" ID VIEW STATUS BAR "Show or hide the status bar\nToggle StatusBar"indTRINGTABLE DISCARDABLE ffiGIN

48. OLE INSERT NEW "Insert new embedded object\nNew Object"

49. OLE EDIT LINKS "Edit linked objects\nEdit Links"

50. OLE EDIT CONVERT "Convert object to different type\nConvert Object"1.DTRINGTABLE DISCARDABLE JEGIN

51. Text = colorArraynIDColor IDM BLACK.; nvalidateQ;id CChildWnd:: OnUpdateColor(CCmdUI* pCmdUI) €mdUI->SetCheck(pCmdUI->m nID == пШСо1ог);Обработчик для настройки цветов iid CChildWnd: :OnCustom()