ITC Networks - telecommunication software, offshore development, outsourcing Sections: about us | services | main customers | focus areas | careers | case studies

Home >> Services >> Software development



CHOOSING THE SYSTEM ARHITECTURE AND DESIGN

The system architecture describes a high-level configuration of components that form the system, and the connections that coordinate the activities of those components.

Several considerents should be taken into account when choosing the system architecture:
  • Since choosing the architecture is the first design decision, it greatly affects all subsequent design decisions. The architecture should be suitable to the type of problem to be solved.

  • Architecture is the essential to building a disciplined structured development, allowing for future extensions - similar products - with reduced effort and risk.

  • Architecture is usually the first aspect to be examined by a new programmer (especially a maintenance programmer) when starting to work on the system

  • There are several powerful architectures who have been refined and adapted to solve problems of particular types. It is preferable to choose from these one adapted to the customer's specific problem, since its usefulness, reliability and limitations have already been determined by extensive domain use.

Among the most widely spread architectures:

The Repository:
itc networks In the Repository model:
itc networksShared data is stored in centralized location (the repository subsystem), and accessed by various (other) subsystems
itc networksShared data is passed from one subsystem to the next (“pipeline” architecture)
itc networks Advantages:
itc networksEfficient way to share large amounts of data
itc networksData integrity localized to repository module
itc networks Disadvantages:
itc networksSubsystems must agree on a repository data model.
itc networksSchema evolution is difficult and expensive
itc networksDistribution can be a problem
The Client-Server Model:
itc networks In the Client-Server model:
itc networksSubsystems are viewed as independent processes
itc networksThe set of stand-alone servers provide specific services such as printing and data management
itc networksThe set of clients call on these services
itc networks Advantages:
itc networksMakes effective use of networked systems and thus may require cheaper hardware
itc networksIt is easy to add new servers or upgrade existing servers
itc networksIncreased availability of information by redundancy
itc networks Disadvantages:
itc networksData interchange can be hampered by different data layouts
itc networksCommunication may be expensive
itc networksData integrity functionality must be implemented for each server
The Abstract Machine:
In the Abstract Machine model, the system is organized into a set of layers (tiers) each of which provide a specific set of services.
itc networks The most popular architecture from this category is the Model-View-Controller architecture, which divides a business application into its three main components:
itc networksthe View (or Presentation) layer refers to the user interface and concentrates on making it as easy and intuitive to use as possible
itc networksthe Model layer represents the business logic
itc networksthe Controller handles the interaction between the first two
itc networks Advantages:
itc networksMinimal coupling between components performing totally independent functions
itc networksSpecialized developers work only within their layer
itc networksFlexibility and portability, layers can be changed completely without affecting other layers if the interface remains the same
itc networks Disadvantages:
itc networksNot suitable for simple problems, for which it introduces additional artificial complexity
After choosing a system architecture, the detailed Software Design Specification document is created:
itc networks A good SDS:
itc networksContains system architecture description (the high-level design), with an overview of modules or components, structure and relationships and user interface issues
itc networksContains detailed descriptions of components (the detailed design), specifying type, purpose, function, dependencies, interfaces, subordinates, resources
itc networksAnalyzes reuse and relationship to other products
itc networksExplains design decisions and examines trade offs




  ©Copyright 2000-2004, ITC Networks. All rights reserved.