Създаване на софтуерен проект

Софтуерният проект цели създаването на специфична софтуерна система или софтуерно приложение. Той се характеризира с план, начало и край.

Софтуерен процес е последователността от дейности за създаване на софтуерния продукт.

Етапи при реализирането на софтуерен проект


Създаването на софтуерно приложение изисква съвместната работа на екип от разработчици. Те планират, изпълняват и предават софтуерния проект.

 

Защо се разработват проекти от екипи?

Реализирането на софтуерен проект обикновено включва следните етапи:
1. Изисквания – подробно описание на изискванията на проекта;
2. Анализ – проучване и анализ на решения на задачата;
3. Дизайн – проектиране на потребителския интерфейс;
4. Кодиране – създаване на програмен код за реализация на модела;
5. Тестване – създаване на тестови примери с входни данни и очаквани резултати;
6. Документация – изготвяне на документация за софтуерния проект;
7. Приемане – завършеният проект се предава и представя за приемане от клиента;
8. Поддържане – приложението се поддържа и подобрява при необходимост.

Софтуерни модели

Agile  е итеративен процес на софтуерна разработка, който използва обратната връзка от клиента като начин за контрол. Софтуерът се реализира поетапно, с редовно тестване на отделните етапи от развитието му. Важна особеност е, че в края на всеки спринт има работещ продукт с добавена функционалност.

Водопадният модел представлява процес на софтуерно разработване, при който изпълнението се прави последователно (етап след етап). Този метод е подходящ, когато изискванията са ясно определени в началото и не се очакват промени по време на изпълнението на проекта. След завършването на една стъпка процесът продължава със следващата стъпка, без да има връщане за променяне на вече завършените етапи.

ВОДОПАДЕН МОДЕЛ

Пример


При разработването на приложение „калкулатор“ може да се заложи изпълнение на четирите аритметични операции (събиране, изваждане, умножение и деление) над два аргумента. В графичния потребителски интерфейс се планира да има бутони с надписи за отделните цифри, бутони за операциите и две текстови полета за въвеждане на стойности, както и необходимите за описание на текстовите полета етикети.


Ако проектът се създаде по водопаден модел, е необходимо всички изисквания да са определени и да се изпълняват етапите от разработката на проекта последователно, без изменение, а клиентът да го получи накрая.

 

Ако проектът се създава по гъвкав модел (agile), на първия спринт от него може да се реализира наличието на бутони с цифри и само една операция, например събиране. Когато тази част от проекта е готова и клиентът я приеме, едва тогава проектът ще бъде пуснат към следващ спринт. В момента на някое от обсъжданията може да се предложи и допълване на функционалностите. Например операцията изваждане може да стане и върху един аргумент или да се добави нова операция – „деление с остатък“.

      Задача 1

Съставете таблица с предимствата и недостатъците на всеки от моделите за софтуерна разработка.

 

Разгледайте етапите от отделните софтуерни модели и етапите в началото на този урок. Намирате ли съответствие? Опишете го.

Анализ на изискванията

Извършват се проучване и анализ на решения за даден проект. Едни изисквания са добри, ако са ясни и точни, лесно проверими, проследими, необходими, независещи от начина за реализиране.

Анализ на решаването на проблема – моделиране на решението на проблема

Определяне на дадените величини, търсените величини, алгоритъма за получаване на решението и ограниченията.

Проектиране на графичния потребителски интерфейс


В този урок ще разширим познанията ви за графичния потребителски интерфейс. Да покажем как в едно приложение може да има цветове, и то те да са професионално подбрани. Както вече знаете от часовете по информационни технологии, можете да вземете точния номер на цвят от изображение с инструменти като Color Picker.

С някои от онлайн приложенията може да се вземе и цветова схема, в която цветовете са хармонични. Такова приложение е  http://colorschemedesigner.com.

Ако цветовете в едното приложение са шестнадесетични, а в средата за визуално програмиране са необходими в RGB, то може да се използва вграденият в операционната система калкулатор, за да се преобразуват числата.

Проектирането на дизайна на потребителския интерфейс с прилагане на материален дизайн е актуална тема в дизайна  https://material.io.

Програмиране – кодиране на логиката на приложението

Писането на кода е свързано с функционалността на приложението. Графичният потребителски интерфейс само показва как ще изглежда приложението, но визуалното поставяне на бутони и прозорци не е достатъчно, за да се реализират действията.
Функционалността се прави чрез програмиране, включващо логика, като например алгоритми, които реализират избрания модел.
Как ще „работи един дизайн“, можем да видим чрез прототипиране на приложение, което изучавате в часовете по информационни технологии

      Задача 2

Напишете програма, която да реализира логиката на една от функционалностите на текстообработваща програма, свързана със статистики на текста. Нека тя да включва определяне на:
– Колко думи има в текста?
– Колко символа има в текста?
– Колко символа има, включително интервалите?

Тестване на валидиране на приложението

Създаденото приложение трябва да се тества за грешки. Също така трябва да се провери дали всички компоненти работят правилно и според изискванията. След като се тестват поотделно, компонентите трябва да се тестват и заедно, защото тогава може да се появят проблеми, които липсват при тестване в изолация.

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

Документацията на проекта е информацията, която описва софтуерното приложение на потребителите и обикновено включва ръководство на потребителя или справочник. Този документ предлага текстово описание и графични визуализации на проекта. Често този етап може да включи изработването на инструкции (tutorials) във вид на книга (wiki или програма), подпомагащи разучаването на продукта, или бързи справки за неговата функционалност.

Презентиране и защита на софтуерния проект

Презентирането на софтуерния проект е умение, което вече имате от часовете по информационни технологии. Обръщаме внимание, че изборът на съдържание за презентиране зависи от това кой е в аудиторията: дали това са клиенти, които се вълнуват повече от функционалността, а не от това какви алгоритми сте използвали.

Самостоятелна работа

Часовник, показва времето в часовата зона за България. Създайте проект, с който да се вижда при конкретно време в България съответното време в Милано, Хонконг и Торонто.

Необходимо е да направят анализи как да се организират входните данни, за да е еднозначно и да е лесно за обработка.
Обмислете какви данни трябва да се въведат, какви ограничения имат те, какви изчисления трябва да направите. От какви помощни променливи ще имате нужда?


РЕФЛЕКСИЯ

⏍ Научих какво е софтуерен проект.
⏍ Разбрах какви методологии се използват в софтуерната практика.
⏍ Познавам етапите в разработката на софтуерен проект.

РЕЧНИК

user requirements анализ на изискванията
agile model гъвкав модел
waterfall model водопаден модел
develop разработка
deploy внедряване