Основни правила и фази при разработване на проект
В часовете по информационни технологии вече сте се запознали с основните възможности на програми като текстообработка, електронни таблици и презентации. Сега предстои най-интересното — да използвате наученото извън отделните задачи: за решаване на проблеми от реалния живот.
Когато една задача изисква събиране, организация и представяне на данни, успешното ѝ решаване минава през определени технологични правила. Полезна рамка за организация на усилията при решаване на практически задачи от всички области на човешката дейност е проектът. При създаването на програми също е удобно това да се прави в рамките на проект.
Бележка
Много от нещата в този урок се отнасят за големи и сериозни проекти, разработвани от професионалисти. Но и в профилираните часове по информатика ще имате възможност в колектив със свои съученици да разработвате проекти — а в бъдеще ще се наложи да изпълнявате още много. Затова е добре отсега да свикнете с основните правила.
Що е проект?
Проект наричаме всяко множество от дейности, което има точно определени цел, начало и край и трябва да доведе до получаване на очакваните резултати в рамките на зададено време и ресурси. Постигането на целите става с усилията на определена група от изпълнители, наричани още екип.
Важни характеристики на всеки проект:
- Полезен — решава проблем, представляващ интерес, и удовлетворява потребности. Резултатът може да е продукт (сграда, ново компютърно устройство, по-удобна операционна система) или услуга — действие, подпомагащо отделна личност или група хора.
- Целесъобразен / уникален — резултатите, които ще бъдат получени, или не съществуват, или съществуват, но не са достъпни: не могат да се използват наготово, не могат да се купят, или купуването им не е оправдано икономически.
- Работа в екип — реализира се от няколко изпълнители, които разпределят и координират работата си, така че проектът да се реализира в искания срок, обем и качество. За цялостното управление се определя ръководител на екипа. Освен професионална компетентност, успешният ръководител трябва да притежава и т.нар. меки умения: комуникативност, справяне с проблеми, разрешаване на конфликти, преговаряне, убеждаване. Важно е да планира задачите и отговорностите според личните качества и компетентност на всеки.
- Дисциплина — в описанието на проекта са дадени изискванията към вида и качествата на резултатите и към процеса (в каква среда, с какви ресурси, в какъв срок). Неспазването на дисциплината може да доведе до невъзможност отделните части да се „сглобят" в очаквания краен резултат или до изпуснати срокове.
Жизнен цикъл на проект
Жизненият цикъл (ЖЦ) на проекта е периодът на съществуването му — последователност от фази, през които проектът преминава от започването до завършването си. Всяка фаза има определено начало, край, продължителност и набор от специфични дейности.
Общата схема дава възможност за унифицирано разглеждане на действията във всеки проект, независимо от различията в целите и резултатите. Тя помага на ръководителите чрез стандартизирани подходи да управляват всеки проект систематично и успешно от начало до край.
| Фаза | Какво се прави |
|---|---|
| 1. Инициализираща | Формулиране на целите, приоритетите, крайните срокове и рисковете на проекта |
| 2. Планираща | Определяне на основните задачи и графика за изпълнението им |
| 3. Реализираща | Управляемо и контролирано осъществяване на планираните действия |
| 4. Заключителна | Анализиране на резултатите, обобщаване на придобитите знания и опит, планиране на следващи стъпки |
Инициализиране
В резултат на възникнала потребност човек или група хора — за кратко възложител — решава да инициира проект, чиито резултати да задоволят нуждата. Възложителят описва задачата от своя гледна точка. Това описание може да не е много подробно и дори да е неприемливо от професионална гледна точка, защото често възложителят не е специалист в областта: хората, които искат да си построят жилищен блок, нямат нищо общо със строителството, а повечето потребители на програми не са програмисти.
С приготвеното описание възложителят търси хора, които са в състояние да разработят и изпълнят проекта — изпълнител. Не е изключено възложител и изпълнител да са едни и същи хора: колектив от специалисти, които виждат необходимост от определен продукт и сами се заемат с реализацията му.
Заданието на проекта
Със съвместните усилия на изпълнителя и възложителя се създава задание на проекта. То трябва да съдържа: кратка формулировка на задачата, целите, по-подробно описание на същността, очакваните резултати и изискванията. Част от изискванията се отнасят към процеса на разработване (инструментални средства, технологии, ресурси), а други — към очакваните резултати: обем, съдържание и качество на продуктите.
Проучва се осъществимостта на проекта — финансова, технологична, пазарна: дали могат да бъдат осигурени всички необходими ресурси и среда за успешна реализация. Само при положителен резултат от анализа се взема решение за започване. Определя се ръководител на проекта и се сформира екип.
Планиране
След като заданието е готово и проектът е стартирал, започва фазата на планиране. През нея, след внимателно проучване на заданието, ръководителят със съдействието на екипа и привлечени експерти трябва:
- Да определи основните задачи, продължителността им и последователността, в която ще се изпълняват.
- Да разпредели задачите между членовете на екипа в зависимост от компетентността им. Ако проектът е много голям, може да се раздели на няколко подпроекта — за всеки се определя работна група и отговорник.
- Да състави подробен план-график за изпълнението, като за всяка задача се определят срок, вид, съдържание и качество на получаваните резултати.
- Да състави индивидуални планове на членовете на екипа с отговорностите на всеки.
В зависимост от спецификата на проекта могат да се съставят и допълнителни планове — за управление на риска, за осигуряване на качеството, маркетингов план и др. По време на планирането може да се установят важни особености, които не са били посочени в заданието — тогава заданието се уточнява с възложителя.
Реализация и заключение
В реализиращата фаза екипът изпълнява планираните задачи, а ръководителят следи напредъка спрямо план-графика, координира работата и реагира при отклонения — закъснения, нови изисквания, технически проблеми. Контролът е постоянен: по-добре е проблемът да се открие рано, докато поправянето е евтино.
В заключителната фаза резултатите се предават на възложителя и се анализират: постигнати ли са целите, в срок ли, с какво качество. Натрупаните знания и опит се обобщават — какво работи добре, какво да се промени — и се планират следващи стъпки.
Качество на кода на софтуерния продукт
При софтуерните проекти важна част от качеството на резултата е качеството на кода. Кодът се чете многократно повече, отколкото се пише — от съотборници, от учителя, и от самия теб след месец. Ето основните правила:
Смислени имена
| Лошо | Добре | |
|---|---|---|
| Променлива | int a, b, x2; | int sum, count, maxGrade; |
| Метод | void Doit() | void PrintReport() |
| Булева | bool flag | bool isValid, hasErrors |
Името трябва да казва какво съдържа променливата или какво прави методът — без да се налага да четеш кода им.
Форматиране и структура
- Еднакви отстъпи (индентация) — те показват структурата на блоковете.
- Празен ред между логически отделни части.
- Един метод върши едно нещо; дълъг метод се разделя на по-малки.
- Без повтарящ се код — повтореното се изважда в метод.
Коментари — кога и какви
// ЛОШО: коментар, който повтаря кода
i++; // увеличаваме i с 1
// ДОБРЕ: коментар, който обяснява ЗАЩО
// Прескачаме първия ред — той съдържа заглавията на колоните
i++;Добрият коментар обяснява защо кодът прави нещо, а не какво прави — това се вижда от самия код, ако имената са добри.
Проверка на входните данни
Качественият код не се доверява на входа: проверява дали числото е в очаквания диапазон, дали низът не е празен, дали файлът съществува — и реагира с ясно съобщение вместо да се срине.
Правилото на скаута
Остави кода по-чист, отколкото си го заварил. Всяко минаване през файла е възможност да подобриш име, да махнеш повторение, да добавиш липсваща проверка.
Какво трябва да запомниш
- Проект = дейности с точно определени цел, начало и край, водещи до очаквани резултати в зададено време и ресурси.
- Характеристики: полезен, уникален/целесъобразен, екипна работа, дисциплина.
- ЖЦ на проекта: инициализиране → планиране → реализация → заключение.
- Инициализиране: възложител + изпълнител → задание → анализ на осъществимостта → ръководител и екип.
- Планиране: задачи и срокове, разпределение по компетентност, план-график, индивидуални планове.
- Качествен код: смислени имена, чисто форматиране, коментари „защо", проверка на входа, без повторения.