Разработка на софтуер: Разлика между версии
Изтрито е съдържание Добавено е съдържание
Редакция без резюме |
форматиране: 2x нов ред, 2x тире, 6lokavica, А|А, интервали, кавички (ползвайки Advisor.js) |
||
Ред 1:
'''Разработката на софтуер''' (среща се и като '''разработка на приложения''', '''софтуерен дизайн''', '''проектиране на софтуер''', '''разработване на приложен софтуер''') е разработването на [[софтуер]]ен продукт съобразен с нуждите на дадена целева група или маркетинга на един софтуерен продукт. Терминът
[[Софтуер]] може да бъде разработен по множество от причини. Трите най-общи са да отговаря на конкретните нужди на клиент/фирма ([[:en:custom software|custom software]]), да отговаря на възприетите нужди на група от потенциални потребители (рекламен и [[:en:open source software|open source software]]) или за лична употреба (например някой учен може да напише програма за автоматизиране на сложни задачи). Вградената разработка на софтуер е разработката на вграден софтуер. Например, ако е използван софтуер за контрол на консуматорските продукти, се изисква процесът на разработка да бъде интегриран с разработката на контролиран физически продукт. Системният софтуер засяга апликации и самия процес на [[програмиране]], поради което често се разработва отделно.
Ред 24:
== Дейности на разработката на софтуер ==
=== Спецификация ===
Източниците на идеи за софтуерни продукти са много. Тези идеи могат да дойдат от [[:en:Market_research|пазарни проучвания]], включващи [[:en:Demographics|демография]] на потенциално нови клиенти, съществуващи клиенти, друг вътрешен персонал от разработчици или креативна трета страна. Идеите за софтуерни продукти са първо оценени от [[:en:Marketing|маркетингов]] личен състав за икономическа изпълнимост, за съчетаване със съществуващи канали на разпределение, за възможни ефекти върху съществуващи продуктови линии, за нужни допълнения и за съчетаване с интересите на компанията. Цената и определеното време се преценят във фазата на пазарно оценяване, . Рано в тази фаза, в зависимост от по-детайлната информация, предоставена от маркетинговия състав и софтуерните разработчици, се решава дали проектът трябва да бъде осъществен.
Line 35 ⟶ 34:
След като основните изисквания са събрани от клиента, започва техния по-задълбочен анализ. Определя се обхвата на разработения продукт като се поставят конкретни задачи на проекта и се изработва съответната документация (scope document).
Някои функционалности могат да останат извън обхвата на проекта като в последствие могат да го оскъпят. Най-честа причина е неяснота по отношение на изискванията и приложението в самото начало на разработване. Ако друга компания извършва разработването и планирането, този документ може да се счита за правен документ и е част от договорните отношения. В случай на възникване на спорове и двусмислено тълкуване
=== Дизайн ===
Line 45 ⟶ 44:
[[:en:Software testing|Софтуерното тестване]] е интегрална и важна фаза в процеса на софтуерна разработка. Тази част от процеса осигурява разпознаването на дефектите възможно най-рано. В някои процеси, известни като тестово разработване, тестовете може да бъдат разработени преди писането на програмен код и да служат като показател за коректна имплементация.
[[:en:Software documentation|Документирането]] на вътрешния дизайн на софтуера, с цел бъдеща поддръжка и подобрение, се прави по време на разработката. Това може да включва
=== Внедряване и поддръжка ===
Line 55 ⟶ 54:
== Подтеми ==
=== View model ===
[[File:TEAF Matrix of Views and Perspectives.jpg|thumb|360px|The [[TEAF]] Matrix of Views and Perspectives.]]
Line 65 ⟶ 63:
=== Бизнес процеси и модели на данни ===
[[File:Process and data modeling.svg|thumb|360px|example of the interaction between business process and data models.<ref name="SS93"> Paul R. Smith & Richard Sarfaty (1993). [http://www.osti.gov/energycitations/servlets/purl/10160331-YhIRrY/ Creating a strategic plan for configuration management using Computer Aided Software Engineering (CASE) tools.] Paper For 1993 National DOE/Contractors and Facilities CAD/CAE User's Group.</ref>]]
[[:en:business model|Бизнес моделът]] илюстрира функциите,
[[:en:data model|Моделът на данните]] позволява детайлите на информацията да бъдат съхранени и се използва главно, когато крайният продукт е поколението на компютърен софтуерен код за апликация или подготовката на функционална спецификация, която да помогне или за правенето, или за продажбата на софтуера.
Line 76 ⟶ 74:
* Увеличаване на компютърната помощ в разработката на софтуер, както и по-добра поддръжка
* Инженерен подход към разработката на софтуер и неговата поддръжка.
Типични помощни инструменти съществуват за [[:en:configuration management|управление на конфигурацията]], [[:en:data modeling|моделиране на данни]], [[:en:model transformation|моделиране на трансформации]], [[:en:refactoring|рефакториране]], [[:en:source code generation|генерация на програмен код]].
Line 88 ⟶ 87:
=== Моделиращ език ===
[[:en:modeling language|Моделиращ език]] е всеки [[:en:artificial language|изкуствен език]], който може да бъде използван, за да изрази информация, знания или системи в една структура, които са дефинирани в последователна група от правила. Правилата се използват за интерпретация на значението на компонентите в една структура. Моделиращият език може да бъде графичен или текстов. Графичните използват [[:en:diagramming technique|диаграмни техники]] с
Примери за графични моделиращи езици в сферата на софтуерното инженерство са:
* [[:en:Business Process Modeling Notation|Business Process Modeling Notation]] (BPMN, и [[
* [[:en:EXPRESS (data modeling language)|EXPRESS]] и EXPRESS-G (ISO 10303-11) е интернационален, стандартен моделиращ език за данни
* [[:en:Extended Enterprise Modeling Language|Extended Enterprise Modeling Language]] (EEML) е широко използван за бизнес процесно моделиране
Line 99 ⟶ 98:
* [[:en:LePUS3|LePUS3]] е [[:en:object-oriented|обектно-ориентиран]], визуален, дизайн-описателен език и [[:en:formal specification|бивш специфициращ]] език, който е съвместим най-вече с моделиране на широко обектно-ориентирани ([[:en:Java (programming language)|Java]], [[:en:C++|C++]], [[:en:C Sharp (programming language)|C#]]) програми и [[:en:design patterns|design patterns]].
* [[:en:Specification and Description Language|Specification and Description Language]] (SDL) е специфициращ език, съсредоточен в недвусмислената спецификация и описание на поведението на разпределени системи
* [[:en:Unified Modeling Language|Unified Modeling Language]] (UML) е [[:en:general-purpose modeling|general-purpose]] език, който е индустриален стандарт за специфициране на софтуерно-интензивни системи. UML 2.0 поддържа
Не всички моделиращи езици са изпълними и за тези, които са, използването им не означава че програмисти не са нужни. Вместо това, изпълнимите моделиращи езици имат за цел да разширят
=== Програмни парадигми ===
[[:en:programming paradigm|Програмна парадигма]] е фундаментален стил на компютърно програмиране, който като цяло не е воден от методология за управление на проекта. Парадигмите се различават в концепциите и абстракциите, използвани за представяне на елементите в една програма (като обекти, функции, променливи, ограничения) и в изчислителните стъпки (като оценяване, продължения, поток от данни). Понякога утвърдените от парадигмата концепции, биват използвани кооперативно в архитектурния дизайн на високо ниво в една система, в други случаи обхватът на програмната парадигма е ограничен до вътрешната структура на конкретната програма или модул.
Един програмен език може да поддържа [[:en:multi-paradigm programming language|повече от една парадигми]]. Например програми писани на [[:en:C++|C++]] или [[:en:Object Pascal|Object Pascal]] може да са изцяло [[:en:procedural programming|процедурни]], изцяло обектно-ориентирани, или да
Както различни групи софтуерно инженерство застъпват различни методологии, така и различните програмни езици застъпват различни парадигми. Някои езици са направени да поддържат само една парадигма ([[:en:Smalltalk|Smalltalk]] поддържа обектно-ориентирано програмиране, [[:en:Haskell (programming language)|Haskell]] поддържа функционално програмиране), докато други поддържат повече от една (например [[:en:Object Pascal|Object Pascal]], [[:en:C++|C++]], [[:en:C Sharp (programming language)|C#]], [[:en:Visual Basic|Visual Basic]], [[:en:Common Lisp|Common Lisp]], [[:en:Scheme (programming language)|Scheme]], [[:en:Python (programming language)|Python]], [[:en:Ruby (programming language)|Ruby]] and [[:en:Oz (programming language)|Oz]]).
Line 122 ⟶ 121:
=== Софтуерна платформа ===
[[:en:software framework|Софтуерната платформа]] е преизползваем дизайн или имплементация за софтуерна система или подсистема. Софтуерната система може да включва подпомагащи програми, [[:en:library (computer science)|библиотеки]] за програмен код, [[:en:scripting language|език за скриптиране]] или друг [[:en:software|софтуер]], който да помогне да се разработят и слепят различните компоненти на софтуерния проект. Платформите могат да намалят, консолидират или стандартизират логика, както и да изпълнят имплементации без показване на тяхната интелектуална собственост или чувствително-внедрените променливи. Различни части и компоненти от платформата могат да бъдат показани, посредством [[:en:application programming interface|API]]. Тези показани интерфейси се считат за публични (public) и представят общ протокол от информация и процедури. Те са обикновено показани чрез декларации,
== Бележки ==
<references />
{{Превод от|en|Software development|683279988}}
[[Категория:Разработка на софтуер| ]]
|