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

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

Инструменти за разработкаИнструменти за разработка

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

План на тематаПлан на темата

• Инструменти за дизайнИнструменти за дизайн

• Инструменти на сорс код нивоИнструменти на сорс код ниво

• Инструменти на ниво изпълним кодИнструменти на ниво изпълним код

• Инструментно-ориентирани средиИнструментно-ориентирани среди

• Изграждане на собствени инструментиИзграждане на собствени инструменти

• Tool FantasylandTool Fantasyland

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

Инструменти за дизайнИнструменти за дизайн

• Инструментите за дизайн обикновено са част Инструментите за дизайн обикновено са част от някакъв от някакъв CASE CASE инструментинструмент

• Един инструмент за дизайн помага да се Един инструмент за дизайн помага да се навигира между различни нива на абстракциянавигира между различни нива на абстракция

• Той може да проверява консистентността на Той може да проверява консистентността на дизайнадизайна

• Някои инструменти могат да генерират и сорс Някои инструменти могат да генерират и сорс код на база дизайн схематакод на база дизайн схемата

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

План на тематаПлан на темата

• Инструменти за дизайнИнструменти за дизайн

• Инструменти на сорс код нивоИнструменти на сорс код ниво

• Инструменти на ниво изпълним кодИнструменти на ниво изпълним код

• Инструментно-ориентирани средиИнструментно-ориентирани среди

• Изграждане на собствени инструментиИзграждане на собствени инструменти

• Tool FantasylandTool Fantasyland

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

Инструменти на сорс код нивоИнструменти на сорс код ниво

Категории:Категории:

• РедакториРедактори

• Анализ на качеството на кодаАнализ на качеството на кода

• Преработка на кодаПреработка на кода

• Контрол на версиитеКонтрол на версиите

• Data Dictionary Data Dictionary инструментиинструменти

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

Категория Редактори - Категория Редактори - IDEIDE

Една Една IDEIDE предоставя предоставя::

• Компилация и откриване на грешкиКомпилация и откриване на грешки

• Компресия/очертаване на логически елементиКомпресия/очертаване на логически елементи

• Бърз преход до дефиниция на класове, методи Бърз преход до дефиниция на класове, методи и променливии променливи

• Бърз преход до всяко място, на което даден Бърз преход до всяко място, на което даден клас, метод или променлива се използваклас, метод или променлива се използва

• Форматиране специфично за използвания езикФорматиране специфично за използвания език

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

Категория Редактори - Категория Редактори - IDEIDE

... и още... и още::

• Динамична помощ за използвания език Динамична помощ за използвания език (библиотеки)(библиотеки)

• Съпоставяне на скобите (Съпоставяне на скобите (begin-end)begin-end)

• Шаблони за често използваните езикови Шаблони за често използваните езикови конструкцииконструкции

• Интелигентно отместванеИнтелигентно отместване

• Възможност за използване на макросиВъзможност за използване на макроси

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

Категория Редактори - Категория Редактори - IDEIDE

За финалЗа финал::

• Запомняне на стринговете, по които се Запомняне на стринговете, по които се извършва търсенеизвършва търсене

• Използване на регулярни изрази при “Използване на регулярни изрази при “search-search-and-replace”and-replace”

• ““Search-and-replace” Search-and-replace” върху цяла файлова групавърху цяла файлова група

• Редакция на няколко файла едновременноРедакция на няколко файла едновременно

• Undo Undo на различни нивана различни нива

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

Категория Редактори – Категория Редактори – Search-Search-and-replaceand-replace

““Search-and-replace” Search-and-replace” инструменти:инструменти:

grep “\[ *[0-9]* *\]” *.cgrep “\[ *[0-9]* *\]” *.c

• Често използвани инструменти за тази цел са Често използвани инструменти за тази цел са Perl Perl и и AWKAWK

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

Категория Редактори – Категория Редактори – Сравняване на файловеСравняване на файлове

• Инструменти за сравняване на файлове могат Инструменти за сравняване на файлове могат да се използват за откриване на разлика да се използват за откриване на разлика между различни версии – нещо много полезно, между различни версии – нещо много полезно, особено при работа в екипособено при работа в екип

• Пример за такъв инструмент е Пример за такъв инструмент е diffdiff

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

Категория Редактори – Категория Редактори – Инструменти за обединяванеИнструменти за обединяване

• Някои инструменти за контрол на версиите Някои инструменти за контрол на версиите използват “заключване” на файловете, по използват “заключване” на файловете, по които се работи. Има модели, при които това които се работи. Има модели, при които това не е така.не е така.

• Ако не се използва “заключване”, обикновено Ако не се използва “заключване”, обикновено възникват няколко версии на едни и същи възникват няколко версии на едни и същи файлове, които в последствие трябва да се файлове, които в последствие трябва да се обединят.обединят.

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

Категория Редактори – Категория Редактори – Инструменти за форматиранеИнструменти за форматиране

• Стандартизират сорс кода (отстояния, празни Стандартизират сорс кода (отстояния, празни редове, имена и т.н.)редове, имена и т.н.)

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

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

Категория Редактори – Категория Редактори – Инструменти за документиранеИнструменти за документиране

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

• Използват специални тагове, за анотиране на Използват специални тагове, за анотиране на методи, класове и т.н.методи, класове и т.н.

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

Категория Редактори – Категория Редактори – Cross-Cross-refernce refernce инструментиинструменти

• Генерират списък с променливи, методи и т.н. Генерират списък с променливи, методи и т.н. и местата, на които се използват в проекта.и местата, на които се използват в проекта.

• Обикновено изхода от работата на такива Обикновено изхода от работата на такива инструменти е в уеб страницаинструменти е в уеб страница

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

Категория Редактори – Категория Редактори – Генератор на йерархииГенератор на йерархии

• Тези инструменти съставят карта на Тези инструменти съставят карта на наследяванията. наследяванията.

• Този тип карти могат да се използват в Този тип карти могат да се използват в процеса на откриване на грешки, но са по-процеса на откриване на грешки, но са по-полезни при анализа на структурата на полезни при анализа на структурата на програмтапрограмта

• Подобни инструменти са достъпни в някои Подобни инструменти са достъпни в някои IDEIDE

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

Анализ на качеството на кодаАнализ на качеството на кода

• Инструменти за проверка на синтаксис и Инструменти за проверка на синтаксис и семантикасемантика

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

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

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

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

Преработка на кодаПреработка на кода

• Инструменти за преработка на кодаИнструменти за преработка на кода

• Инструменти за преработка на структурата - Инструменти за преработка на структурата - RestructurersRestructurers

• Инструменти за превеждане на код – Инструменти за превеждане на код – Code Code translatorstranslators

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

Контрол на версиитеКонтрол на версиите

• Контрол на версиите на сорс кодаКонтрол на версиите на сорс кода

• Контрол на версиите на документациятаКонтрол на версиите на документацията

Примерни инструменти: Примерни инструменти: CVS, Microsoft Visual CVS, Microsoft Visual SourceSafe, OpenCM, svkSourceSafe, OpenCM, svk

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

Data Dictionary Data Dictionary инструментиинструменти

• Централно хранилище на метаданниЦентрално хранилище на метаданни

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

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

План на тематаПлан на темата

• Инструменти за дизайнИнструменти за дизайн

• Инструменти на сорс код нивоИнструменти на сорс код ниво

• Инструменти на ниво изпълним кодИнструменти на ниво изпълним код

• Инструментно-ориентирани средиИнструментно-ориентирани среди

• Изграждане на собствени инструментиИзграждане на собствени инструменти

• Tool FantasylandTool Fantasyland

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

Инструменти на ниво Инструменти на ниво изпълним кодизпълним код

• За създаване на кодЗа създаване на код

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

• За извършване на тестовеЗа извършване на тестове

• За оптимизация на кодаЗа оптимизация на кода

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

За създаване на кодЗа създаване на код

• Компилатори и линекриКомпилатори и линекри

• MakeMake, , AntAnt

• Библиотеки с кодБиблиотеки с код

• Wizard-Wizard-и за генерация на коди за генерация на код

• Настройка и инсталацияНастройка и инсталация

• Макро предпроцесориМакро предпроцесори

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

За откриване на грешкиЗа откриване на грешки

• DebuggerDebugger

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

За извършване на тестовеЗа извършване на тестове

• Автоматизиран Автоматизиран frameworkframework за за извършване на тестове – извършване на тестове – JUnit, JUnit, CppUnit CppUnit и т.н.и т.н.

• Генератори на тестовеГенератори на тестове

• Инструменти за създаване и Инструменти за създаване и изпълняване на изпълняване на test-casetest-case-ове-ове

• Инструменти за логически анализИнструменти за логически анализ

• Инструменти за контрол над Инструменти за контрол над паммета – паммета – selective failers, access selective failers, access checkerscheckers

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

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

За оптимизация на кодаЗа оптимизация на кода

• Execution ProfilersExecution Profilers

• ДизасемблериДизасемблери

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

План на тематаПлан на темата

• Инструменти за дизайнИнструменти за дизайн

• Инструменти на сорс код нивоИнструменти на сорс код ниво

• Инструменти на ниво изпълним кодИнструменти на ниво изпълним код

• Инструментно-ориентирани средиИнструментно-ориентирани среди

• Изграждане на собствени инструментиИзграждане на собствени инструменти

• Tool FantasylandTool Fantasyland

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

Инструментно-ориентирани Инструментно-ориентирани средисреди

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

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

План на тематаПлан на темата

• Инструменти за дизайнИнструменти за дизайн

• Инструменти на сорс код нивоИнструменти на сорс код ниво

• Инструменти на ниво изпълним кодИнструменти на ниво изпълним код

• Инструментно-ориентирани средиИнструментно-ориентирани среди

• Изграждане на собствени инструментиИзграждане на собствени инструменти

• Tool FantasylandTool Fantasyland

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

Изграждане на собствени Изграждане на собствени инструментиинструменти

Право на избор:Право на избор:

• Да свършим поставената задача за 5 часаДа свършим поставената задача за 5 часа

• За 4 часа и 45 минути да напишем програма, За 4 часа и 45 минути да напишем програма, която върши работата за 15 минутикоято върши работата за 15 минути

Програмистите винаги избират втория вариант.Програмистите винаги избират втория вариант.

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

ПримерПример

• В една от версиите на В една от версиите на WindowsWindows, , Microsoft Microsoft оновява изцяло шрифтовата подсистема. Това оновява изцяло шрифтовата подсистема. Това изисква създаване на множество изисква създаване на множество допълнителни инструментидопълнителни инструменти

• Извод : Край всеки по-голям проект се правят Извод : Край всеки по-голям проект се правят допълнителни инструменти допълнителни инструменти

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

В допълнение за В допълнение за инструментитеинструментите

• Използването на скриптове е не-лош Използването на скриптове е не-лош компромискомпромис

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

План на тематаПлан на темата

• Инструменти за дизайнИнструменти за дизайн

• Инструменти на сорс код нивоИнструменти на сорс код ниво

• Инструменти на ниво изпълним кодИнструменти на ниво изпълним код

• Инструментно-ориентирани средиИнструментно-ориентирани среди

• Изграждане на собствени инструментиИзграждане на собствени инструменти

• Tool FantasylandTool Fantasyland

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

Tool FantasylandTool Fantasyland

• Доставчиците на инструменти от години се Доставчиците на инструменти от години се опитват да докажат, че скоро добрите опитват да докажат, че скоро добрите инструменти ще елиминрат нуждата от инструменти ще елиминрат нуждата от програмистипрограмисти

• До колко е възможно? Пример – До колко е възможно? Пример – FORTRANFORTRAN е е “инструмент” правен с такава цел“инструмент” правен с такава цел

• Извод : Програмирането е СЛОЖНО. Каквито и Извод : Програмирането е СЛОЖНО. Каквито и инструменти да се ползват, те не заменят инструменти да се ползват, те не заменят модела на мислене на един добър програмист модела на мислене на един добър програмист (например да мисли в зависимости и (например да мисли в зависимости и изключения)изключения)

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

ВъпросиВъпроси