Identifying Quality Attributes for Software Architecture

  • Pradyumn Sharma
  • May 23, 2017

Tags: ,

Identifying Quality Attributes for Software Architecture

Pradyumn Sharma

May 23, 2017

In my blog on Agile Architecture and Design, I had talked about identifying the desired quality attributes for the architecture of a system, in consultation with the Product Owner. I had also talked about prioritizing these desired qualities based on

  • their business value to the customer, and
  • the cost of implementing early vs cost of implementing late.

Related to these points, I have been asked a question: How do we get the customer to specify the desired architecture qualities? And assess their business value? After all, most customers are not likely to be familiar with the technical terminology that we may use in software architecture and development.

Well, the answer to that, as it turns out, is similar to the way you would figure out the functional requirements from a customer. You ask questions. Whenever things are not obvious to the customer, think of scenarios and narrate stories to help move the requirements discussions along.

In addition, you apply your knowledge of the technologies, the domain, the business environment, etc, to be able to assess the importance of the various quality attributes, such as performance, security, usability, availability, internationalization, dependencies on external systems, etc.

Suppose, you are building a stock trading system. Some of the quality attributes should be obvious, if we have some idea about what stock trading systems do, such as:

  • Security would be critical, as there is money involved
  • If the system is going to facilitate trade on various stock exchanges, then dependency on external systems would be important too
  • As stock prices may change in a fraction of a second, based on demand and supply, performance would be very important as well

However, we shouldn’t just make assumptions and unilaterally decide what the desired quality attributes for the system should be. We must verify our understanding and all our assumptions with the customer. We must ask appropriate questions, even for the quality attributes that don’t appear important to us, because who knows, we may be missing something that could be very important for our customer.

Another related question: how do we validate architecture choices with the customers that are too technical for them to understand?

Suppose we need to deal with concurrency in an application, because more than one user may sometimes want to modify the same data in that application (shared mutable data).

We know that dealing with concurrency typically entails locking some records or resources in a system. There are various approaches to locking, say, a database record, such as optimistic locking and pessimistic locking. Suppose we are evaluating these two approaches for an application.

How do we decide which of the two locking approaches is more appropriate for a system that we are building? Should we (the development team) brainstorm among ourselves, make assumptions and decide on our own? Or should we make the customer decide?

The customer should make the choice. But how do we make the customer understand these two choices, and make a decision? Perhaps they have never heard of optimistic and pessimistic locking or do not fully understand the technical aspects of each locking strategy.

Well, be creative. Weave stories from business scenarios that illustrate the two (or more) different choices, without emphasising the technical terms. Make the customer understand the scenarios and the business consequences thereof. We can, for example, describe and discuss alternative scenarios as illustrated below.

Let’s say we are building an airline reservation system. A user, Amar, wants to book two seats for a specific flight. At that point of time, exactly two seats are available for that flight. Amar is satisfied with the price of the seats and decides to book these. It takes him ten minutes to fill up all the details required for making the reservation.

Meanwhile, another user, Betty, also wants to book one seat for the same flight.

Scenario 1

As Amar has not yet finished booking his two seats, the system displays a seat being available to Betty. She starts to fill up the details for her booking as well. Now Betty is faster with her fingers on the keyboard than Amar, and completes her booking before Amar. As Betty has already taken taken one seat, by the time Amar hits the “Submit” button, only one seat is remaining.

The system informs Amar that there is no seat available. Amar is furious for having wasted his time. Consequence: one unhappy customer. Or the possibility of overbooking of seats, which, if not handled well, may result in bad publicity, loss of revenue, and litigation costs. (This scenario happens due to optimistic locking, but we don’t need to use the technical terms with the customer).

Scenario 2

As soon as Amar starts filling up his details, we “hold” the two seats for him, and after that, when Betty searches for a seat, we report to her that no seat is available. (In technical terms, this would happen when we do pessimistic locking, but again, we don’t need to mention this term to the customer). We don’t overbook a seat, nor leave a customer unhappy.

But then, if Amar does not eventually complete his booking and changes his mind, we would lose the opportunity of making that sale to Betty too. And if nobody tries to book that seat later, we face an opportunity loss.

Scenario 3

(Variation on scenario 2) We keep a hold on the two seats for Amar, but only for some fixed duration. When Betty wants to make a booking and the only available seats are on “hold”, we inform her about the same, and advise her to wait for some (specific) time period and try again. Or we could offer to inform her later about the seat becoming available as soon as possible, and perhaps even offer her a discount for her “understanding”.

Scenario 4

(Variation on scenario 1) We consciously allow slight overbooking, with the assumption that some customers eventually cancel their bookings or don’t show up. If in some (acceptably small percentage of cases) no cancellations happen, we offer a very attractive compensation to someone whom we regretfully have to unbook (but, hopefully, not “drag and drop”!)

In summary,

  • Scenario 1: no direct revenue loss or opportunity cost; but one potentially unhappy customer or overbooking
  • Scenario 2: no overbooking, no unhappy customer; but possibility of revenue loss
  • Scenario 3: similar to scenario 2, but with a chance to avoid revenue loss
  • Scenario 4: similar to scenario 1, revenue-maximizing, but occasionally, with a significantly higher cost (financial or reputation)

Based on these scenarios and their consequences, the customer can now make an informed choice which in turn translates into sound architectural decisions.

19 responses to “Identifying Quality Attributes for Software Architecture”

  1. Really informative blog.Really looking forward to read more. Will read on…

  2. “Great, thanks for sharing this article.Much thanks again. Fantastic.”

  3. click here says:

    Hi , I do believe this is an excellent blog. I stumbled upon it on Yahoo , i will come back once again. Money and freedom is the best way to change, may you be rich and help other people.

  4. I’ve recently started a website, the info you provide on this website has helped me greatly. Thank you for all of your time & work.

  5. LOOSE says:

    jual processing machine indonesia Appreciation for a further educational web-site. Exactly where else may I get this variety of info coded in this type of excellent usually means? I’ve a venture that I am right now going for, and that i are with the seek out similarly info.

  6. I’m no longer positive the location you happen to be obtaining your information, nonetheless excellent subject. My partner and i would need to spend some time learning more or maybe finding out additional. Thank you for excellent details I’d been on the lookout for this info for my vision. I’m no longer positive the location you happen to be obtaining your information, nonetheless excellent subject. My partner and i would need to spend some time learning more or maybe finding out additional. Thank you for excellent details I’d been on the lookout for this info for my vision.

  7. I merely like the precious data you actually offer on your articles.. cara beli saham di bei I am going to take a note of your site and appearance yet again below usually. My business is relatively sure I will study a lot of completely new products right right here! Best of luck for!

  8. Fantastic do the job! Right here is the style of information and facts that are supposed to possibly be shared around the web. Waste around the get motor in the meantime not necessarily ranking this particular placed bigger! Can occur over along with check out the site aplikasi berita saham 2019. Thank you Means)

  9. Kesalan Patharan 碧雅詩 【彩妝產品】粉餅專用海棉的商品介紹 UrCosme (@cosme TAIWAN) 商品資訊 Kesalan Patharan 碧雅詩,彩妝產品,粉餅專用海棉

  10. This is certainly attention-grabbing, You’re a strong exceedingly competent tumblr. I have got joined up with your current rss and sit up to get searching for much more of your own wonderful posting.. aplikasi android rekomendasi saham indonesia Moreover, We’ve shared your web blog around my myspace

  11. Your article on Identifying Quality Attributes for Software Architecture – Pragati Software is very good. We hope you can continue posting many more post . Long live

  12. Hi there, basically was conscious of your blog site by way of Yahoo, and discovered that it must be truly informative.. video youtube terfavorit My goal is to be cautious about brussels. I will be happy for those who move forward this in the future. Quite a few other folks will probably be gained through your producing. Cheers!

  13. 青春雖然一去不返,但如果有機會,你又會唔會重新捉緊青春嘅尾巴?CLEVIEL 高濃度透明質酸 就為你打開人生新一頁,令你嘅肌膚重新充滿光澤,回復年輕彈性! 同惱人皺紋等老化現象Says Goodbye!CLEVIEL Prime 功能: 提升 ◆ 結構提升◆ 改善臉部輪廓◆ 新加入無痛配方 最佳適用範圍: ✔前額 ✔太陽穴 ✔顴骨 ✔面頰 ✔虎紋 CLEVIEL Contour+ 最佳適用範圍:✔鼻 ✔下巴 ✔虎紋

  14. 我們彩用國際及美國食品及藥物管理局FDA認可的CO2 激光儀 Lutronics® Spectra SPR, 具安全性, 準確度高 . 二氧化碳激光可安全地去除皮膚上的癦痣、肉粒、疣、老人斑等問題。此激光的幼細光束可準確及直接地將要去除的組織氧化,過程快捷,傷口細小及乾淨,對周圍的皮膚傷害減至最少。一般1-2次就可永久去除。

  15. 洢蓮絲 says:

    IELLIOS是由歐盟資助倫敦大學細胞重建研究所研究. 採用諾貝爾生理醫學獎科技 , 透過”納米能量電流” 以最親膚與迅速導入的方式 , 利用電腦化系統去令皮膚再生 , 令皮膚組織在無創傷的情況下自然更新及收緊 . 這治療是無創無痛的 . 完成治療後亦沒有傷口 . 我們是香港第一引入IELLIOS的機構 , 醫生會根據客人不同情況去為你設計不同的組合 .在外國IELLIOS受到很多荷里活明星, 歌手以至政客的追棒 , Madonna的facialist kate somer -field就常用IELLIOS為她護理肌膚 , 令52歲的她肌膚輪廓均保持於30歲的狀態. IELLIOS的訊號技術,採用心臟起博起原理,活躍無法正常運作的心臟細胞。訊號技術可活化及修復愛損皮膚,透過傳送訊號,激活靜止的細胞。IELLIOS的訊號技術給予細胞指令,引發細胞再次生長,令肌膚重回年輕。

  16. 防曬粉 BB粉底霜 亮麗柔滑打底乳液 亮麗柔滑控油打底乳液 有機幹細胞修護CC霜 潤澤防曬底霜 礦物質潤澤慕斯 礦物質奇幻粉餅 礦物質蜜粉 完美礦物粉底 控油定妝蜜粉 高清控油粉餅 控油蜜 保濕滋潤噴霧 有機抗氧爽膚噴霧 有機抗敏保濕

  17. Google Adwords 關鍵字廣告

  18. 改善下垂 says:

    我們彩用國際及美國食品及藥物管理局FDA認可的CO2 激光儀 Lutronics® Spectra SPR, 具安全性, 準確度高 . 二氧化碳激光可安全地去除皮膚上的癦痣、肉粒、疣、老人斑等問題。此激光的幼細光束可準確及直接地將要去除的組織氧化,過程快捷,傷口細小及乾淨,對周圍的皮膚傷害減至最少。一般1-2次就可永久去除。

Leave a Reply

Your email address will not be published. Required fields are marked *

© 2017 Pragati Software Pvt. Ltd. All Rights Reserved.