Сложни софтуерни интегрирани системи. Основни понятия.


Категория на документа: Информатика



Балансиране на конкуриращите се приоритети на заинтересованите страни

Ползи: Изравнява приложенията с бизнес и потребителските нужди, оптимизиране на бизнес стойността.

Модел: определяне и разбиране на бизнес процесите и потребностите на потребителите; приоритизиране на проекти и изисквания и се нуждае от няколко софтуерни възможности; разбиране какви активи може да бъдат използвани; балансиране на потребителски нужди и повторна употреба на активи.

Анти-модел: Постигане на точни и подробни изисквания, преди започването на каквато и работа по проекти. Изискванията фокусират стремежа към персонално решение.

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

На второ място, ние трябва да знаем какви са наличните активи, а след това да балансираме повторната употреба та тези активи с потребностите на заинтересованите лица. Примерите за активи включват наследени приложения, услуги, компоненти за многократна употреба, както и модели. Повторната употреба на активите в много случаи може да доведе до намаляване на разходите на проекта; а за доказани активи, повторното им използване, често означава по-високо качество в нови приложения. Недостатъкът е, че в много случаи, трябва да съвместим повторната употреба на активи и пълното удовлетворяване на нуждите на крайния потребител. Многократното използване на компонент, може да намали разходите за развойна дейност за определени капацитети от 80 процента, но това може да се отнася само за 75 процента от изискванията. Така че, ефективното повторно използване изисква постоянно балансиране с променящите се нужди на заинтересованите страни.

Сътрудничество между екипите

Ползи: производителност на екипа, по-добра връзка между нуждите на бизнеса и развитието и дейността на софтуерните системи.

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

Анти-модел: Стимулирайте талантливите индивиди и ги "въоръжете" с мощни инструменти.

Първата стъпка в ефективното сътрудничество е да се мотивират индивидите в отбора да изпълняват качествено работата си. Идеята за самоуправляващи се екипи придоби популярност в гъвкавите общности; тя се състои в това на направим екипа ангажиран с това, което трябва да се направи и след това да възложим правомощието да взема решения по всички въпроси, които пряко въздействат върху резултата. Когато хората чувстват, че те са наистина отговорни за крайния резултат, те са много по-мотивирани да си вършат добре работата.

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

Анти-моделът тук ще бъде да се стимулират героични разработчици, желаещи да работят изключително дълги часове, включително и през почивните дни. Сроден анти-модел е да има високо специализирани хора, оборудвани с мощни инструменти за да вършат своята работа, с ограничено сътрудничество между различните членове на екипа и ограничена интеграция между различните инструменти. Предположението е, че ако просто всеки върши своята работа, крайният резултат ще бъде добър.

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

Ползи: ранно намаляване на риска, по-висока предсказуемост, доверие сред заинтересованите страни.

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

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

Днешните приложения са твърде сложни, за да преминат перфектно първоначалните тестове за изисквания, проектиране и внедряване. Най-ефективните методи за разработка на приложения прегръщат неизбежността на промяната. Чрез ранната и непрекъсната обратна връзка, ние се учим как да се подобри приложението, а итеративния подход ни дава възможност за прилагане на тези промени постепенно. Цялата тази промяна трябва да бъде управлявана разполагайки с процеси и инструменти на място, така че да можем да ефективно да управляваме промяната, без да пречим на творчеството.

Повдигане нивото на абстракция

Ползи: Производителност, намалена сложност.

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

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

Един от основните проблеми, пред които сме изправени в разработката на софтуер е сложността. Знаем, че намаляването на сложността оказва голямо въздействие върху продуктивността. Работата на по-високо ниво на абстракция намалява сложността и улеснява комуникацията.

Един ефективен подход за намаляване на сложността е повторното използване на съществуващите активи като компоненти за многократна употреба, наследени системи, съществуващи бизнес процеси, модели, или софтуер с отворен код. Два велики примера за повторна употреба, които са имали голямо влияние върху софтуерната индустрия през последното десетилетие, са повторното използване на мидълуер като бази данни, уеб сървъри и портали и софтуер с отворен код, който осигурява много по-малки и по-големи компоненти, които могат да бъдат свързани. Движейки се напред, уеб услугите вероятно ще имат по-голямо въздействие върху повторната употреба, тъй като те предоставят прости начини за повторно използване на големи парчета функционалност между разнородни платформи и с разхлабването на връзките между потребителя и доставчика на услугата, както е показано на фигура 6. Това означава, че ще може по-лесно да се изберат различни комбинации от услуги, за справяне с нуждите на бизнеса. Повторната употреба е подпомогната и от отворените стандарти като RAS, UDDI, SOAP, WSDL, XML, и UML.

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




Сподели линка с приятел:





Яндекс.Метрика
Сложни софтуерни интегрирани системи. Основни понятия. 9 out of 10 based on 2 ratings. 2 user reviews.