Thursday, April 15, 2010

5.1 Role of Software Architecture

What is architecture? Generally speaking, architecture of a system provides a very high level view of the parts of the system and how they are related to form the whole system. That is, architecture partitions the system in logical parts such that each part can be comprehended independently, and then describes the system in terms of these parts and the relationship between these parts.
Any complex system can be partitioned in many di erent ways, each providing a useful view and each having di erent types of logical parts. The same holds true for a software system—there is no unique structure of the system that can be described by its architecture; there are many possible structures.

Due to this possibility of having multiple structures, one of the most widely accepted definitions of software architecture is that the software architecture of a system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them [6]. This definition implies that for elements in an architecture, we are only interested in those abstractions that specify those properties that other elements can assume to exist and that are needed to specify relationships. Details on how these properties are supported are not needed for architecture. This is an important capability that allows architecture descriptions to represent a complex system in a succinct form that is easily comprehended.

An architecture description of a system will therefore describe the di erent structures of the system. The next natural question is why should a team building a software system for some customer be interested in creating and documenting the structures of the proposed system. Some of the important uses that software architecture descriptions play are [6, 23, 54]:
  1. Understanding and communication. An architecture description is primarily to communicate the architecture to its various stakeholders, which include the users who will use the system, the clients who commissioned the system, the builders who will build the system, and, of course, the architects. Through this description the stakeholders gain an understanding of some macro properties of the system and how the system intends to ful-fill the functional and quality requirements. As the description provides a common language between stakeholders, it also becomes the vehicle for negotiation and agreement among the stakeholders, who may have conflicting goals.
  2. Reuse. The software engineering world has, for a long time, been working toward a discipline where software can be assembled from parts that are developed by di erent people and are available for others to use. If one wants to build a software product in which existing components may be reused, then architecture becomes the key point at which reuse at the highest level is decided. The architecture has to be chosen in a manner such that the components which have to be reused can fit properly and together with other components that may be developed. Architecture also facilitates reuse among products that are similar and building product families such that the common parts of these di erent but similar products can be reused. Architecture helps specify what is fixed and what is variable in these diferent products, and can help minimize the set of variable elements such that di erent products can share software parts to the maximum. Again, it is very hard to achieve this type of reuse at a detail level.
  3. Construction and Evolution. As architecture partitions the system into parts, some architecture-provided partitioning can naturally be used for constructing the system, which also requires that the system be broken into parts such that di erent teams (or individuals) can separately work on dif erent parts. A suitable partitioning in the architecture can provide the project with the parts that need to be built to build the system. As, almost by definition, the parts specified in an architecture are relatively independent (the dependence between parts coming through their relationship), they can be built independently.
  4. Analysis. It is highly desirable if some important properties about the behavior of the system can be determined before the system is actually built. This will allow the designers to consider alternatives and select the one that will best suit the needs. Many engineering disciplines use models to analyze design of a product for its cost, reliability, performance, etc. Architecture opens such possibilities for software also. It is possible (though the methods are not fully developed or standardized yet) to analyze or predict the properties of the system being built from its architecture. For example, the reliability or the performance of the system can be analyzed. Such an analysis can help determine whether the system will meet the quality and performance requirements, and if not, what needs to be done to meet the requirements. For example, while building a website for shopping, it is possible to analyze the response time or throughput for a proposed architecture, given some assumptions about the request load and hardware. It can then be decided whether the performance is satisfactory or not, and if not, what new capabilities should be added (for example, a di erent architecture or a faster server for the back end) to improve it to a satisfactory level.
Not all of these uses may be significant in a project and which of these uses is pertinent to a project depends on the nature of the project. In some projects communication may be very important, but a detailed performance analysis may be unnecessary (because the system is too small or is meant for only a few users). In some other systems, performance analysis may be the primary use of architecture.

46 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. I'm definitely NOT a software architect, so when I wanted to implement microsoft dynamics 365 for financials in my company, I just went straight to Anegis Consulting, who did it for me. Check them out, they're great :)

    ReplyDelete
  3. Hey!
    Your article on Role of software architecture helped me a lot in my career. It is somewhat similar to the roles of Software Engineer . To obtain more knowledge, referring the Samples is more important.

    ReplyDelete
  4. The material and aggregation is excellent and telltale as comfortably. Software Engineering

    ReplyDelete
  5. This is a very nice content.Service corners is a Best Website Designing Company in Lucknow provide all the services regarding the website designing and development. We have a great team of designing and development who are dedicated to their work on time.
    We are not here only for Best Website Designing, we also deal in software designing and digital marketing. includes SEO and SMO.

    ReplyDelete
  6. Lankatricks.com is the best online place in the Sri Lanka for finding educational resources such as Government exam papers and Knowledge like SLAS Exams, Banking Exam, Gread five scholership exam, O/L Exam, A/L Exam, University Exams, Technical knowledge exam etc. Here, Can get Exam papers, Pass Papers, Model Papers,Syllubus and many more other educational resources.

    ReplyDelete
  7. Thanks for sharing content and such nice information for me. I hope you will share some more content about. role of software Please keep sharing!

    App development

    ReplyDelete
  8. Okay so the architecture engineering is really a tough but fun to do . Nice reading your blog keep telling us more .
    technology write for us

    ReplyDelete
  9. Hello. Thank you for all the information. We are planning to implement some software solutions based on all good advice found on this blog. What do you think about this consulting company pro4people.com (visit) ? They specialize in software development. Maybe you can recommend something in particular?

    ReplyDelete
  10. This is really nice. Thanks for sharing this article
    SEO Company in Lucknow

    ReplyDelete
  11. outsourcingall.com "Usually I never comment on blogs but your article is so convincing that I never stop myself to say something about it.
    This paragraph gives clear idea for the new viewers of blogging, Thanks you. You’re doing a great job Man, Keep it up.
    Seo training
    Seo training in dhaka
    SEO Services in bangladesh

    ReplyDelete
  12. Thank you for sharing great information about search engine optimization. Googlez is one of the best search engine optimization company in India provide complete web related solutions from SEO, SEO Promotion and Website Optimization.
    read more

    ReplyDelete
  13. Your explanation is not proper. you are confusing reader. Your sentences are long.

    ReplyDelete
  14. Your explanation is not proper. Long sentences confuses the reader. No clarity in the parts. Repeating the things that are said.

    ReplyDelete
  15. I respect this blog to percentage statistics about this vital difficulty matter. right right here i discovered one of a kind segments and now i am going to use those new guidelines with new enthusiasm. Shipping Management Software UAE

    ReplyDelete
  16. Please share more like that.
    will help you more:
    谷歌优化,baidu seo,谷歌seo,外贸网站建设,独立站引流,海外推广,web development outsourcing China ,web design ,web design China,谷歌推广,外贸英文网站建设,谷歌优化最牛的公司,谷歌排名,英文网站翻译,西安facebook营销,上海谷歌优化,上海谷歌seo,北京谷歌优化,facebook,北京谷歌seo
    外贸网站建设

    ReplyDelete
  17. Wow, this is a beautiful and remarkable post....this post is quite stunning. Continue blogging in this manner on our blog. Thank you for this post, and please continue. https://www.goodreads.com/user/show/135150397-idioticmedia

    ReplyDelete
  18. ShortRank is the well known and the best SEO marketing company in agra, Praneet Thakur is the founder of this company as well as he is an expert in search engine optimization.
    We are providing you all types of SEO services such as on page SEO, off page SEO, website SEO, link building and many more.

    SEO Company in Agra

    ReplyDelete
  19. Evoseedbox is a seedbox service gives you a high speed, anonymous connection to our servers so you can download torrents in complete privacy. Our seedbox service is used by people all around the world to download and stream files like movies, tv shows, music, ebooks, software and much more.

    ReplyDelete
  20. ShortRank is the well known and the best SEO marketing company in Navi Mumbai, Praneet Thakur is the founder of this company as well as he is an expert in search engine optimization.
    We are providing you all types of SEO services such as on page SEO, off page SEO, website SEO, link building and many more.


    SEO Company in Agra

    ReplyDelete
  21. thanks a lot for sharing, this really helped in my workSEO company in Varanasi

    ReplyDelete
  22. I would highly appreciate if you guide me through this.
    Thanks for the article. Really nice one and full of knowledge. Thank you!!
    Here My website for seedbox

    ReplyDelete
  23. I loved to read blogs and your blog is one of the best blog.Sattaking

    ReplyDelete
  24. Very good info. Lucky me I discovered your site by chance (stumbleupon). I have saved it for later! Here is my web site:https://collinprpn77888.jts-blog.com/7280097/all-about-satta-king

    ReplyDelete
  25. Well explained article, loved to read this blog post and bookmarking this blog for future.http://www.szltgd.com/space-uid-1977071.html

    ReplyDelete
  26. Very good info. Lucky me I discovered your site by chance (stumbleupon). I have saved it for later! Here is my web site:http://zanderzfkl90235.blogginaway.com/8461090/what-exactly-is-satta-king

    ReplyDelete
  27. Very good info. Lucky me I discovered your site by chance (stumbleupon). I have saved it for later! Here is my web site:https://sethhmqu12356.nizarblog.com/6543693/what-s-satta-king

    ReplyDelete
  28. Very good info. Lucky me I discovered your site by chance (stumbleupon). I have saved it for later! Here is my web site:Sattaking

    ReplyDelete
  29. I loved to read blogs and your blog is one of the best blog.Satta King

    ReplyDelete
  30. Rapid Seo Services is the well known for the best seo services in Agra. One of the Top Best Digital Marketing Agency and Seo Service Company in Agra. We are providing you all types of SEO services such as on page SEO, off page SEO, website SEO, link building and many more. SEO Company in Agra

    ReplyDelete
  31. Nice content. School management software is a one-stop destination designed to digitize every operation of administration, management, teacher and faculty in the educational institute.

    ReplyDelete
  32. Choose Best Web designing firm in Thane. Design your site for best conversions online.

    ReplyDelete
  33. Choose Best SEO Company in Thane. Optimize your site for best keywords online.

    ReplyDelete
  34. Constructing a home is everyone’s dream. Make your dream a reality with SK Design's and Construction. We would like to create your happiness. We have created more enthusiasm in many customers' lives that can be seen in our testimonials. top 10 construction company in Lucknow

    ReplyDelete
  35. Your blog is really amazing. I am very glad to have found such a useful blog. Thank You so much to share this wonderful blog with us.

    SEO Agencies in Gurgaon
    SEO Company in Gurgaon
    Best SEO Company in Gurgaon
    Best SEO Agency in Gurgaon

    ReplyDelete
  36. Thanks for sharing the great post regarding to the Role of software architecture. You want to know more about: Why Architectural Services Is Important Click Here.

    ReplyDelete

Pages