- ASP.NET 3.5 Application Architecture and Design
- Vivek Thakur
- 335字
- 2021-05-28 17:47:06
Software Architecture
There are many different definitions of software architecture scattered across the web, in reference materials, and in books. In the wide world of programming, many of the definitions you may find are most likely going to be extremely technical in the language they use, and can be difficult for a beginner to fully grasp and understand. There are even places on the web that list thousands and thousands of different definitions by leading software architects, engineers, doctors, philosophers, and professors. (Reference: http://www.sei.cmu.edu/architecture/community_definitions.html).
To begin with, let's start with a technical definition:
Software architecture is an abstraction, or a high-level view of the system. It focuses on aspects of the system that are most helpful in accomplishing major goals, such as reliability, scalability, and changeability. The architecture explains how you go about accomplishing those goals.
Now we will translate this definition into something simple, generic, and easy to understand:
Software architecture is a blueprint of your application.
To elaborate more on the "blueprint" part, let us try to understand software architecture with a simple analogy—the process of casting.
Casting is a manufacturing process in which a liquid material is poured into a mold that contains a hollow cavity of a desired shape. The liquid is then allowed to cool and solidify, taking the shape of the mold it was poured into. The mold is the guide that shapes the liquid into the intended result. Keep in mind that the mold can be of any shape, size, or dimension, and is separate or unrelated to the liquid that is poured in.
Now, think of software architecture as the mold and think of your project as the liquid that is poured into this mold. Just like casting, software architecture is the guide that shapes your project into the intended result. The architecture of a software system has no strict relation to the actual code that is written for this system. The architecture simply makes sure that the development process stays within certain defined limits.
- PS職場達人煉成記:人人都能學會的Photoshop辦公設計技巧
- Spring Python 1.1
- Photoshop CC摳圖+修圖+調色+合成+特效標準培訓教程(全視頻微課版)
- Entity Framework Tutorial
- Pro/E Wildfire 5.0中文版入門、精通與實戰
- Inkscape 0.48 Illustrator's Cookbook
- CakePHP 1.3 Application Development Cookbook
- 中文版Photoshop CS6平面設計實用教程(第2版)
- AutoCAD 2016中文版完全自學手冊
- Apache Maven 3 Cookbook
- 碼上學會:中文版Creo 3.0機械設計全能一本通(雙色版)
- CorelDRAW 2020中文版入門、精通與實戰
- Indesign平面排版技術應用
- Instant Markdown
- Altium Designer 21 PCB設計官方指南(高級實戰)