Friday, August 12, 2011

Software Systems Architecture


Software Systems
One of the better and popular methods available today for capturing the details of an enzdvnktire architecture into a single model is by producing an array of representations of its different parts and components. This allows each component to focus on a specific facet of the system. However, the task is as difficult to do as it is to understand and you will be doomed to failure if you attempt to do it without planning your work properly. First and foremost, you must do the following: 
  • Define the main functioning elements that form your architecture
  • Describe how these functioning elements are going to interact with one another and how they will react to outside influence
  • Identify the information that the elements will present, store and manage
  • Know the hardware and software that will be needed in order to support the elements functions and information
  • Define what operating features and abilities will be provided
People are commonly tempted to answer all of the above questions with the help of a single, all-inclusive model. This typical model uses a combination of formal and colloquial notations which it uses to define the various aspects of the system. These aspects are software layering, functional structure, inter-component communication, concurrency and physical deployment environment.
Making Use of 'Views'
Complex systems need to be presented in a manner that makes them extremely user friendly, manageable and comprehensible. For that matter, a common approach used by systems developers is attacking an issue from multiple dimensions all at the same time. This is done by 'partitioning' the AD into interrelated 'views'. Specific features of the architecture are defined by each of these views and they collectively describe the entire system.
Points to Consider When Creating Views
Each 'view' represents one of the many structural aspects that make up the architecture. They help in illustrating how the entire architecture will address the concerns of the end users and stakeholders. This makes a 'view' an important aspect of the architecture. The following points must be made clear during the process of creating views: 
  • View scope: The architecture's structural aspects that you are trying to represent must be properly defined. Some examples of what structural aspects can be defined are runtime operating elements and the intercommunication between components, and the runtime environment and how the system is deployed into it.

  • Element types: The type or types of architectural elements that you are categorizing should also be defined. For instance, when deciding on the deployment of the system, you should consider whether you need individual server machines, or just a service environment that the elements of the system are deployed into.

  • Audience: The systems developer should also be able to define the class of beneficiaries that he is aiming the view at. They can either focus a view on a specific class of stakeholder, a specific person, or at a larger cluster whose members have varying interests and levels of expertise.

  • Audience expertise: Before defining views, it is essential to note down the technical skills and knowledge base of the stakeholders who will end up using the system. For instance, a novice user can barely be considered to be an expert in the field and are unlikely to have much knowledge about either hardware or software.

  • Scope of concerns: It also helps to identify what concerns of the stakeholder the specific view will serve to address. The knowledge of stakeholders on the architectural aspects and their background to these concerns should be identified.
A Little Focus on Content Goes a Long Way
As is the case with the architectural development process, when creating separate views for architecture, the main challenge of the systems developer is getting the appropriate content in the view. If you provide too much unnecessary detail and information to the audience, they will be weighed down. On the other hand, providing insufficient information will risk confusing the audience. Asking yourself two key questions when creating views helps to improve your prospects of success. The first question that needs to be asked Is whether the target stakeholders will be able to discern whether their concerns have been addressed. The second question to ask is whether will be able to successfully undertake the important role of building the system. If you think that the answer to both these questions is a unanimous 'yes', you know that have made the right choices.

No comments:

Post a Comment