Thursday, April 15, 2010

5.2 Architecture Views

There is a general view emerging that there is no unique architecture of a system. The definition that we have adopted (given above) also expresses this sentiment. Consequently, there is no one architecture drawing of the system. The situation is similar to that of civil construction, a discipline that is the original user of the concept of architecture and from where the concept of software architecture has been borrowed. For a building, if you want to see the floor plan, you are shown one set of drawings. If you are an electrical engineer and want to see how the electricity distribution has been planned, you will be shown another set of drawings. And if you are interested in safety and firefighting, another set of drawings is used. These drawings are not independent of each other—they are all about the same building. However, each drawing provides a di erent view of the building, a view that focuses on explaining one aspect of the building and tries to a good job at that, while not divulging much about the other aspects. And no one drawing can express all the di erent
aspects—such a drawing will be too complex to be of any use.
 
Similar is the situation with software architecture. In software, the di erent drawings are called views. A view represents the system as composed of some types of elements and relationships between them. Which elements are used by a view, depends on what the view wants to highlight. Di ferent views expose dif erent properties and attributes, thereby allowing the stakeholders and analysts to properly evaluate those attributes for the system. By focusing only on some aspects of the system, a view reduces the complexity that a reader has to deal with at a time, thereby aiding system understanding and analysis.


A view describes a structure of the system.We will use these two concepts— views and structures—interchangeably. We will also use the term architectural view to refer to a view. Many types of views have been proposed. Most of the proposed views generally belong to one of these three types [6, 23]:
– Module
– Component and connector
– Allocation
 
In a module view, the system is viewed as a collection of code units, each implementing some part of the system functionality. That is, the main elements in this view are modules. These views are code-based and do not explicitly represent any runtime structure of the system. Examples of modules are packages, a class, a procedure, a method, a collection of functions, and a collection of classes. The relationships between these modules are also code-based and depend on how code of a module interacts with another module. Examples of relationships in this view are “is a part of” (i.e., module B is a part of module A), “uses or depends on” (a module A uses services of module B to perform its own functions and correctness of module A depends on correctness of module B), and “generalization or specialization” (a module B is a generalization of a module A).
 
In a component and connector (C&C) view, the system is viewed as a collection of runtime entities called components. That is, a component is a unit which has an identity in the executing system. Objects (not classes), a collection of objects, and a process are examples of components. While executing, components need to interact with others to support the system services. Connectors provide means for this interaction. Examples of connectors are pipes and sockets. Shared data can also act as a connector. If the components use some middleware to communicate and coordinate, then the middleware is a connector. Hence, the primary elements of this view are components and connectors.
 
An allocation view focuses on how the di erent software units are allocated to resources like the hardware, file systems, and people. That is, an allocation view specifies the relationship between software elements and elements of the environments in which the software system is executed. They expose structural properties like which processes run on which processor, and how the system files are organized on a file system.
 
An architecture description consists of views of di erent types, with each view exposing some structure of the system. Module views show how the software is structured as a set of implementation units, C&C views show how the software is structured as interacting runtime elements, and allocation views show how software relates to nonsoftware structures. These three types of view of the same system form the architecture of the system.
 
Note that the di erent views are not unrelated. They all represent the same system. Hence, there are relationships between elements in one view and elements in another view. These relationships may be simple or may be complex. For example, the relationship between modules and components may be one to one in that one module implements one component. On the other hand, it may be quite complex with a module being used by multiple components, and a component using multiple modules. While creating the di erent views, the designers have to be aware of this relationship.
 
The next question is what are the standard views that should be expressed for describing the architecture of a system? To answer this question, the analogy with buildings may again help. If one is building a simple small house, then perhaps there is no need to have a separate view describing the emergency and the fire system. Similarly, if there is no air conditioning in the building, there need not be any view for that. On the other hand, an office building will perhaps require both of these views, in addition to other views describing plumbing, space, wiring, etc.
 
However, despite the fact that there are multiple drawings showing di erent views of a building, there is one view that predominates in construction—that of physical structure. This view forms the basis of other views in that other views cannot really be completed unless this view can be done. Other views may or may not be needed for constructing a building, depending on the nature of the project. Hence, in a sense, the view giving the building structure may be considered as the primary view in that it is almost always used, and other views rely on this view substantially. The view also captures perhaps the most important property to be analyzed in the early stages, namely, that of space organization.
 
The situation with software architecture is also somewhat similar. As we have said, depending on what properties are of interest, di erent views of the software architecture are needed. However, of these views, the C&C view has become the defacto primary view, one which is almost always prepared when an architecture is designed (some definitions even view architecture only in terms of C&C views). In this chapter, we will focus primarily on the C&C view. A note about relationship between architecture and design is in order. As partitioning a system into smaller parts and composing the system from these parts is also a goal of design, a natural question is what is the di erence between a design and architecture as both aim to achieve similar objectives and seem to fundamentally rely on the divide and conquer rule? First, it should be clear that architecture is a design in that it is in the solution domain and talks about the structure of the proposed system. Furthermore, an architecture view gives a high-level view of the system, relying on abstraction to convey the meaning— something which design also does. So, architecture is design. We can view architecture as a very high-level design, focusing only on main components, and the architecture activity as the first step in design. What we term as design is really about the modules that will eventually exist as code. That is, they are a more concrete representation of the implementation (though not yet an implementation). Consequently, during design lower-level issues like the data structures, files, and sources of data, have to be addressed, while such issues are not generally significant at the architecture level. We also take the view that design can be considered as providing the module view of the architecture of the system.
 
The boundaries between architecture and high-level design are not fully clear. The way the field has evolved, we can say that the line between architecture and design is really up to the designer or the architect. At the architecture level, one needs to show only those parts that are needed to perform the desired evaluation. The internal structure of these parts is not important. On the other hand, during design, designing the structure of the parts that can lead to constructing them is one of the key tasks. However, which parts of the structure should be examined and revealed during architecture and which parts during design is a matter of choice. Generally speaking, details that are not needed to perform the types of analysis we wish to do at the architecture time are unnecessary and should be left for design to uncover.

29 comments:

  1. Thank you for information. It's quite clearly to understand. Moreover, for people who would like to focus their attention on the app development costs (time and money) and come the mobile market with a quality product like Tinder, I could advise to read this article:Thunderrise Go aheard, it's very practical to use!

    ReplyDelete
  2. I was really pleasant to have read this text, it helped me up in havign a clue about software engineering arquitecture design

    ReplyDelete
  3. Nice blog provides many informative and helpful articles. Thanks for sharing the information. Looking for more updates in future.
    Online Safety Software

    ReplyDelete
  4. Please Visit Now !!!
    For Games & Softwarez, Antivirus, Android Apps, Games Mod Etc... ✅ GAMESOFCHINA {Gaming & Software HUB}

    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. This is really a very good article. Thanks for taking the time to discuss with us, I feel happy about learning this topic. keep sharing your information regularly for my future reference.
    software development company Islamabad

    ReplyDelete
  7. I found this information assuredly beneficial. Keep up with this tremendous work.Professional Web design services are provided by W3BMINDS- Website designer in Lucknow.
    Website Design Agency | Website design company in Lucknow

    ReplyDelete
  8. This is very good and informative article. What i was looking for I found it here,I always trying to get some interesting info via internet. Thanks a lot for sharing.. Software Development company in india

    ReplyDelete
  9. Hey Nice Blog!!! Thank you for sharing information. Wonderful blog & good post.Its really helpful for me, waiting for a more new post. Keep Blogging!

    MLM Software Company
    CRM Software Company
    Payroll Management Software

    ReplyDelete
  10. Hey, I have been following your blog for a while. I love your content and how helpful your posts are! I enjoy reading your blog a lot and have been recommending it to my friends. I would be really ecstatic if you could look at my posts as I am trying to help people by blogging on different engineering genres, such as this agriculture engineering post i recently made, would love your input on it! :- http://bit.ly/agriculturalengineering

    ReplyDelete
  11. Software Solutions
    Alpha Data provides a number of value-added software solutions in uae designed to address an organization’s unique needs.

    ADM: Application Delivery Management (ADM) Solutions efficiently streamlines application delivery in a secure manner while providing an excellent user experience through the power of Big Data.

    ITOM: IT operations management facilitates all aspects of the IT infrastructure, including capacity, performance, and networking, among other key factors. This is especially crucial for IT companies that are required to provide high-quality support to digital organizations.

    Information Security: Alpha Data offers its competent and highly skilled team of experts to provide key insights and offer world-class support according to the needs of the customer. Alpha Data’s security portfolio comprises of several key segments including Compliance Framework Consultancy, as per international standards; Security Auditing Consultancy, particularly Vulnerability Assessment, Penetration Testing, and Compliance Audits; and finally, Cyber threats Detection Consultancy featuring SIEM (Security Information and Event Management) tool consultancy SIEM tool performance optimization consultancy and USMS as a Service through Alpha Cloud

    Business Community and Disaster Recovery: Alpha Data provides comprehensive High availability (HA) and clustering solutions based on Microsoft, HP Servers and Storage for Microsoft, Linux and HP-UX Platforms; Data Replication Solutions based on products from XOSoft and HP providing maximum uptime and quick recovery from disasters, which are designed according to the best international practices to optimize WAN links to DR Sites as well using the WX Products; and, lastly, Enterprise Backup Software Development companies Solutions to deliver comprehensive data protection in a comprehensive, centralized backup and recovery solution for enterprises.

    ReplyDelete
  12. NETSOL Technologies Inc is a worldwide provider of global IT
    and enterprise application solutions which include credit and finance portfolio management systems,
    SAP consulting, custom development, systems integration and technical services.Asset Finance Software
    https://www.netsoltech.com/

    ReplyDelete
  13. The economic landscape of today is not only demanding but it also comes with a lot of pressure.
    Businesses are starting to see that they need to do something different and unique if they want to make an impact and grow.
    Asset Finance And Leasing is a great way for any company to grow.

    ReplyDelete
  14. Thanks for the best content
    The way the field has evolved, we can say that the line between architecture and design is really up to the designer or the architect.
    GREAT WORK
    IMPRESSIVE!!!
    TOP DESIGNING IN UK

    ReplyDelete
  15. THANK YOU FOR THE INFORMATION .HI GUYS IF YOU SEARCHING FOR software application development services

    PLEASE VISIT US
    software application development services



    ReplyDelete
  16. We develop software companies in Dubai, Get in touch with our software development company Dubai

    ReplyDelete
  17. Goyes is a leading men & women online shopping store Pakistan and has become the perfect Fashion Wear Online Shop. explore the perfect collection of clothing, barand like Qalamkar, and t-shirts, shoes, embroidered dresses, shirts, suits, trousers, blazers, watches, accessories, goyes provied salon deals in lahore and much more.

    ReplyDelete
  18. Nice Post!!
    With that being said, I am very excited to meet the head of banks, Fintech and crypto investors who dream of disrupting the Fintech arena.
    If you are one of those individuals, let’s explore ideas together.
    Ankit Jain - Join me on my journey to disrupt the Fintech field and create a frictionless banking experience for upcoming generations.

    ReplyDelete
  19. Thanks for sharing a valuable information with us regarding architecture Construction company in Lucknow

    ReplyDelete
  20. I wanted to thank you for this excellent read!! I definitely loved every little bit of it. I have you bookmarked your site to check out the new stuff you post Architect company in Lucknow

    ReplyDelete
  21. The best Article that I have never seen before with useful content and very informative.Thanks for sharing info. Architect in Lucknow

    ReplyDelete
  22. I love your blog. I often read your articles and it feels so real. from where do you get these kind of stuff? I really loved it. thank you so much for sharing this with us love from... Best interior designer in Lucknow

    ReplyDelete
  23. I agree with a lot of the points you made in this article. If you are looking for the sewage land capability testing victoria, then visit Landcapabilityassessmentvictoria.com. I appreciate the work you have put into this and hope you continue writing on this subject.

    ReplyDelete
  24. Nice reading, I love your content. This is really a fantastic and informative post. Keep it up and if you are looking for septic land capability testing victoria then visit **Landcapabilityassessmentvictoria.com**.

    ReplyDelete
  25. Thanks for sharing the nice information regarding to Architectural. I am watiting your next blog. you want to Know more about
    Architectural Shop Drawing Services Get In Touch With Us.

    ReplyDelete

Pages