官术网_书友最值得收藏!

Architecture: First Steps

How do business requirements dictate architectural decisions? Lets understand this through a quick and small example. Assume that a software company, Takshila Inc., has recently bagged the contract for building a new inventory management system for a local cosmetics manufacturing firm. After the initial talks with the stakeholders, the business analyst from Takshila comes up with high-level specifications, which are:

  • The system should be accessible from any online location
  • The system should be able to process multiple orders at the same time
  • The system should be able to interact and process information from different locations having different databases
  • The system should interact with other software packages (such as financial software) already in use by the company
  • The system should be easy to customize later by the internal development team

With these requirements in mind, and after detailed discussions with team members, the software architect has come up with the following architectural specifications for the proposed inventory management software:

  • The system should be web based, using a thin-client architecture.
  • The system should have built-in multithreading capabilities.
  • The system should be database-independent, which means that the system should be able to work with multiple types of databases without changing the code—probable use of dependency injection.
  • The system should expose a set of functions as an API, and should also be able to import data from other sources and process this data in its own tables.
  • The system should have loosely-coupled tiers, so that each individual tier has no dependency on the other and can be used with any other tier.

Note how the business requirements have been translated into architectural specifications, and still there is not a word about a programming or development platform! So the architecture has nothing to do with development platforms, programming languages, design and so on. We can create a system satisfying the above requirements in many ways, using different designs and probably using different platforms too (for example, one could either use ASP.NET or JSP/J2EE). In short, the architecture does not care whether you use LINQ, AJAX, or Ruby on Rails. As long as you are meeting the architectural specifications, you are free to choose your own technology and tools.

主站蜘蛛池模板: 汕头市| 全南县| 马龙县| 财经| 饶阳县| 勃利县| 盘山县| 彭州市| 秀山| 丰顺县| 石首市| 景德镇市| 保靖县| 丰城市| 乐亭县| 平乡县| 科尔| 监利县| 淮南市| 邵阳市| 荆门市| 纳雍县| 邵东县| 洛宁县| 锦州市| 会东县| 武冈市| 宜君县| 黔江区| 于都县| 汉川市| 墨玉县| 衡水市| 宁阳县| 双峰县| 黄梅县| 临洮县| 辉县市| 游戏| 乳山市| 建昌县|