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

Preview:

DESCRIPTION

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

Citation preview

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

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

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

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

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

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

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

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

• Tool FantasylandTool Fantasyland

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

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

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

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

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

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

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

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

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

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

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

• Tool FantasylandTool Fantasyland

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• Tool FantasylandTool Fantasyland

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

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

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

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

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

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

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

• MakeMake, , AntAnt

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

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

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

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

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

• DebuggerDebugger

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

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

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

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

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

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

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

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

• Execution ProfilersExecution Profilers

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

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

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

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

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

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

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

• Tool FantasylandTool Fantasyland

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

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

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

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

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

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

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

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

• Tool FantasylandTool Fantasyland

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• Tool FantasylandTool Fantasyland

Tool FantasylandTool Fantasyland

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

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

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

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

Recommended