Posts

Showing posts from December, 2020

What is the difference between a software framework and a software architecture?

Software frameworks are reusable "semi-finished" software for domains (such as ERP, computing, etc.) that implement common parts of the domain and provide well-defined points of variability to ensure flexibility and extensibility. In other words, the software framework is the softwarenation of the results of domain analysis and the template for the final application in the domain. With the expansion of software scale, wide application and the development of software reuse technology, the software reuse based on subroutine and class has a lot of shortcomings: (1) The library of the subroutine is becoming more and more huge, which makes it difficult for its users to master (2) Most classes are too small to do all the useful work by themselves It is for these reasons that a set of classes (modules) are considered as a whole in reuse, resulting in a software framework. The software framework contains at least the following components: (1) A series of modules to complete the calcu

What is software architecture design?

I. Concept of system architecture By Edward Crawley, Bruce Cameron, And Daniel Selva co-authored SYSTEM ARCHITECTURE: Strategy and Product Development for Complex Systems. In the book, the word "system" is defined in this way: a system is a set of entities and their relationships, whose functions are greater than the sum of their respective functions. In other words, the function has to be 1+1>2, which is called emergence. For example, a pile of bricks and wood cannot provide shelter from the wind and rain, but they can form a warm house. The function of the house is greater than the sum of the functions of the pile of materials, so the house is a system. Now that you know what a system is, let's look at what a system architecture does: 1) Determine the form and function of the system. To put it bluntly, it's analyzing requirements. 2) Determine the entities, forms, and functions of the entities in the system. It's dividing up the system. To accomplish this tas