1 / 35

Методология на разработката

Методология на разработката. Инструменти за разработка. План на темата. Инструменти за дизайн Инструменти на сорс код ниво Инструменти на ниво изпълним код Инструментно-ориентирани среди Изграждане на собствени инструменти Tool Fantasyland. Инструменти за дизайн.

Download Presentation

Методология на разработката

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Методология на разработката Инструменти за разработка

  2. План на темата • Инструменти за дизайн • Инструменти на сорс код ниво • Инструменти на ниво изпълним код • Инструментно-ориентирани среди • Изграждане на собствени инструменти • Tool Fantasyland

  3. Инструменти за дизайн • Инструментите за дизайн обикновено са част от някакъв CASE инструмент • Един инструмент за дизайн помага да се навигира между различни нива на абстракция • Той може да проверява консистентността на дизайна • Някои инструменти могат да генерират и сорс код на база дизайн схемата

  4. План на темата • Инструменти за дизайн • Инструменти на сорс код ниво • Инструменти на ниво изпълним код • Инструментно-ориентирани среди • Изграждане на собствени инструменти • Tool Fantasyland

  5. Инструменти на сорс код ниво Категории: • Редактори • Анализ на качеството на кода • Преработка на кода • Контрол на версиите • Data Dictionary инструменти

  6. Категория Редактори - IDE Една IDE предоставя: • Компилация и откриване на грешки • Компресия/очертаване на логически елементи • Бърз преход до дефиниция на класове, методи и променливи • Бърз преход до всяко място, на което даден клас, метод или променлива се използва • Форматиране специфично за използвания език

  7. Категория Редактори - IDE ... и още: • Динамична помощ за използвания език (библиотеки) • Съпоставяне на скобите (begin-end) • Шаблони за често използваните езикови конструкции • Интелигентно отместване • Възможност за използване на макроси

  8. Категория Редактори - IDE За финал: • Запомняне на стринговете, по които се извършва търсене • Използване на регулярни изрази при “search-and-replace” • “Search-and-replace” върху цяла файлова група • Редакция на няколко файла едновременно • Undo на различни нива

  9. Категория Редактори – Search-and-replace “Search-and-replace” инструменти: grep “\[ *[0-9]* *\]” *.c • Често използвани инструменти за тази цел са Perl и AWK

  10. Категория Редактори – Сравняване на файлове • Инструменти за сравняване на файлове могат да се използват за откриване на разлика между различни версии – нещо много полезно, особено при работа в екип • Пример за такъв инструмент е diff

  11. Категория Редактори – Инструменти за обединяване • Някои инструменти за контрол на версиите използват “заключване” на файловете, по които се работи. Има модели, при които това не е така. • Ако не се използва “заключване”, обикновено възникват няколко версии на едни и същи файлове, които в последствие трябва да се обединят.

  12. Категория Редактори – Инструменти за форматиране • Стандартизират сорс кода (отстояния, празни редове, имена и т.н.) • Съществуват два основни типа – едните променят сорс кода, а другите генерират нови файлове на база кода, без да внасят изменения в него.

  13. Категория Редактори – Инструменти за документиране • Използват се за генериране на документация направо от сорс кода • Използват специални тагове, за анотиране на методи, класове и т.н.

  14. Категория Редактори – Cross-refernce инструменти • Генерират списък с променливи, методи и т.н. и местата, на които се използват в проекта. • Обикновено изхода от работата на такива инструменти е в уеб страница

  15. Категория Редактори – Генератор на йерархии • Тези инструменти съставят карта на наследяванията. • Този тип карти могат да се използват в процеса на откриване на грешки, но са по-полезни при анализа на структурата на програмта • Подобни инструменти са достъпни в някои IDE

  16. Анализ на качеството на кода • Инструменти за проверка на синтаксис и семантика • Инструменти за отчетност на метрики : + 20% продуктивност при поддръжката

  17. Анализ на качеството на кода - Пример

  18. Преработка на кода • Инструменти за преработка на кода • Инструменти за преработка на структурата - Restructurers • Инструменти за превеждане на код – Code translators

  19. Контрол на версиите • Контрол на версиите на сорс кода • Контрол на версиите на документацията Примерни инструменти: CVS, Microsoft Visual SourceSafe, OpenCM, svk

  20. Data Dictionary инструменти • Централно хранилище на метаданни • Каталог съдържащ всички елементи на данните – имена, структури, информация за употребата им, отношения, произход, формат

  21. План на темата • Инструменти за дизайн • Инструменти на сорс код ниво • Инструменти на ниво изпълним код • Инструментно-ориентирани среди • Изграждане на собствени инструменти • Tool Fantasyland

  22. Инструменти на ниво изпълним код • За създаване на код • За откриване на грешки • За извършване на тестове • За оптимизация на кода

  23. За създаване на код • Компилатори и линекри • Make, Ant • Библиотеки с код • Wizard-и за генерация на код • Настройка и инсталация • Макро предпроцесори

  24. За откриване на грешки • Debugger

  25. За извършване на тестове • Автоматизиран framework за извършване на тестове – JUnit, CppUnit и т.н. • Генератори на тестове • Инструменти за създаване и изпълняване на test-case-ове • Инструменти за логически анализ • Инструменти за контрол над паммета – selective failers, access checkers • Инструменти за проследяване на грешките

  26. За оптимизация на кода • Execution Profilers • Дизасемблери

  27. План на темата • Инструменти за дизайн • Инструменти на сорс код ниво • Инструменти на ниво изпълним код • Инструментно-ориентирани среди • Изграждане на собствени инструменти • Tool Fantasyland

  28. Инструментно-ориентирани среди • Някои среди са доказали, че по-добри в инструментно-ориентираното разработване. Пример : UNIX и огромния набор малки инструменти (grep, diff, make, crypt, lint, sed, awk..)

  29. План на темата • Инструменти за дизайн • Инструменти на сорс код ниво • Инструменти на ниво изпълним код • Инструментно-ориентирани среди • Изграждане на собствени инструменти • Tool Fantasyland

  30. Изграждане на собствени инструменти Право на избор: • Да свършим поставената задача за 5 часа • За 4 часа и 45 минути да напишем програма, която върши работата за 15 минути Програмистите винаги избират втория вариант.

  31. Пример • В една от версиите на Windows, Microsoft оновява изцяло шрифтовата подсистема. Това изисква създаване на множество допълнителни инструменти • Извод : Край всеки по-голям проект се правят допълнителни инструменти

  32. В допълнение за инструментите • Използването на скриптове е не-лош компромис

  33. План на темата • Инструменти за дизайн • Инструменти на сорс код ниво • Инструменти на ниво изпълним код • Инструментно-ориентирани среди • Изграждане на собствени инструменти • Tool Fantasyland

  34. Tool Fantasyland • Доставчиците на инструменти от години се опитват да докажат, че скоро добрите инструменти ще елиминрат нуждата от програмисти • До колко е възможно? Пример – FORTRAN е “инструмент” правен с такава цел • Извод : Програмирането е СЛОЖНО. Каквито и инструменти да се ползват, те не заменят модела на мислене на един добър програмист (например да мисли в зависимости и изключения)

  35. Въпроси

More Related