1.3. Софтуернитехнологии 1.3.1. Терминология Терминът Software Engineering се е появил за първи път на една конферен-
ция на НАТО през 1969 година. Както вече беше казано в началото, за най-
подходящ еквивалент на български смятаме софтуерни технологии, а отх-
върляме другия кандидат — софтуерно инженерство. Поучително е да се отбе-
лежи, че споменатата конференция е била проведена с цел обсъждане на проб-
лема със софтуерната криза. Няколко години преди това са се появили ком-
гпотрите от т. нар. трето поколение, тяхната мощност, превъзхождаща на поря-
дък тази на компютрите от второ поколение, е изисквала програмни продукти,
непознати дотогава по своя мащаб и сложност. Оказало се е, че в този период
не е било ясно как да се произведе такъв софтуер. Така възниква естествената
необходимост от специална дисциплина, която да се опита да помогне за прео-
доляването на софтуерната криза.
14
1.3.2. Определения Известни са немалък брой определения на софтуерни технологии. Ето ня-
кои от тях:
Наур през 1969 година определя: установяването и използването на
здрави принципи за разработване с цел по икономичен начин да се произведе
софтуер, който е надежден и функционира ефективно върху реална машина;
според дефиницията на IEEE (Асоциацията на американските електрон-
ни инженери) софтуерните технологии представляват систематичен подход към
разработването, експлоатирането, съпровождането и изваждането от експлоа-
тация на софтуера;
определението на Феърли от 1984 г. гласи: технологична и мениджърска
дисциплина, занимаваща се систематично с производството и съпровождането
на софтуерните продукти, които се разработват навреме и на основата на точно
определени разходи.
Може да се смята, че второто от тези определения най-много се приближа-
ва до съвременното разбиране за същността на софтуерните технологии. Едно
допълнение, което смятаме за необходимо, е прилагателното „качествен" към
„софтуер". Второ, огромното разпространение на търговска основа на прог-
рамни продукти е свързано с техния маркетинг. От друга страна, изваждането
от експлоатация по важност и по съдържание далече отстъпва на другите еле-
менти на дефиницията. Следователно определението, което ще ползваме оттук
нататък, гласи:
Софтуерните технологии представляват систематичен подход
към разработването на качествен софтуер, както и към неговото
предлагане на пазара, експлоатация и съпровождане. 1.3.3. Цели При така поставеното условие за качество на разработвания софтуер не-
обходимо е да се идентифицират основните му атрибути. Това ще бъде напра-
вено тук на най-общо ниво, а ще бъде разгледано подробно в специална глава
на тази книга.
Всеки програмен продукт следва да може да бъде лесно съпровождан.
Това означава, че в него трябва да могат относително лесно да се внасят изме-
нения и подобрения, както и лесно да се отстраняват грешки. За да може това
да се осъществява, е необходимо програмният продукт да бъде добре доку-
ментиран.
Софтуерът трябва да бъде надежден. Това означава, че грешките в него
трябва да сведени до възможния минимум, а продуктът да изпълнява очаквани-
те от потребителя функции.
Програмният продукт трябва да бъде ефективен. Това не означава изпол-
зване на възможностите на хардуера до границите на допустимото — най-мал-
кото защото такъв софтуер обикновено се съпровожда много трудно. Все пак
потребителят очаква оптимално в известен смисъл експлоатиране на ресурсите
на компютъра преди всичко по отношение на икономичното използване на опе-
ративната памет и достигането на голяма бързина на изпълнение.
15
18. Ползване на отпуск. Ако не е договорено друго, препоръчително е да
не се разрешава отпуск на членове на екипа, ако продължителността на проекта
е под 6 месеца. При по-дълги проекти може да се разрешава, като периодът на
отпуска се определя така, че да не се нарушава планираното изпълнение на
проекта.
Плащания. Плащанията не могат да надхвърлят договорената стой-
ност на проекта. Схемата за плащанията се приема в началото на проекта и не
подлежи на промяна. Броят на междинните плащания зависи от продължител-
ността на проекта, като е прието поне 20% да се изплащат след окончателното
приемане на проекта. В условия на инфлация се допуска индексиране на цени-
те по предварително договорена формула.
Прекратяване на договора. Договаря се при какви случаи е възмож-
но едностранно прекратяване, с какъв срок на предизвестие и с какви финансо-
ви последици.
Особени ситуации. При възникване на извънредни обстоятелства, въз-
препятстващи изпълнението на задълженията на някоя от страните, се подписва
допълнително споразумение за последствията.
Разрешаване на противоречия. Противоречията и споровете се раз-
решават чрез преговори, а ако не се постигне съгласие — по съдебен път.