Theory, method and practice summary of software architecture

Source: Internet
Author: User

The 1th Chapter: Introduction to Software architecture

What are software crises and what are the specific manifestations of software crises?
Software crisis: Backward software production can not meet the rapid growth of computer software requirements, resulting in software development and maintenance process of a series of serious problems.
The performance of the software crisis:
Software cost is increasing, development schedule is difficult to control, software quality is poor, software maintenance is difficult
The cause of software crisis, how to overcome the software crisis?
The cause of the software crisis is unclear user demand, lack of correct theoretical guidance, software scale is more and more big, software complexity is more and more high.
People are not only faced with technical problems, but more importantly, management issues. To improve the efficiency of software development and improve the quality of software products, it is necessary to adopt engineering development method and production technology. In technology, we should adopt the software production technology based on reuse;
In the management, should adopt the multidimensional project management pattern.
Component: (component, also translated into components, parts):
It refers to the unit software with semantic integrity, correct syntax and reusable value, which can be clearly identified in the process of software reuse, and it is a complex of semantic description, communication interface and implementation code. is a reusable software template unit with some functions, representing the main computational elements and data storage in the system.
Software Architect's Focus:
The first concern is not the function, but the quality of attention (non-functional requirements). Stakeholders are concerned with qualities such as performance, security, scalability, variability, maintainability, usability, etc. After understanding the stakeholder's quality concerns, consider a compromise. Divide and conquer, maintain conceptual integrity
Definition of software Architecture
Software architecture provides a high-level abstraction of the structure, behavior, and attributes of a software system, consisting of the elements that make up the system, the interactions of these elements, the patterns that guide the integration of elements, and the constraints of these patterns. The software architecture not only specifies the organizational structure and topology of the system, but also shows the correspondence between the system requirements and the elements that make up the system, and provides some basic principles of the design decision.
The meaning of software architecture
Architecture is the means for stakeholders to communicate, the system structure is the embodiment of the early design decision, it defined the constraints on the implementation of the system, decided to develop and maintain organizational structure, restricting the quality of the system, can predict the quality of the software, reasoning and control changes are simpler, to facilitate the gradual design of the prototype. At the same time, software architecture is a transitive and reusable model.
Application Status of software architecture
At present, the field of software architecture research is very active, to summarize the existing system structure of research activities, mainly including the following aspects
1. Software Architecture Description Language 2. Architecture construction and Representation 3. Architecture analysis, design and Validation 4. Architecture Discovery, Evolution and reuse 5. Architecture-based software development Methodology 6. Architecture Framework for a specific domain 7. Software architecture Support Tools 8. Software PRODUCT line architecture 9. Methodology for building evaluation software architecture
Architecture analysis, design and validation, discovery, evolution, and reuse
The content of architecture analysis can be divided into structural analysis, functional analysis and non-functional analysis. The process of building a schema that meets the requirements of the software is architecture design.
The essence of the architecture design process is to decompose the system into its constituent components and reassemble the components into a system. There are two main types of schema design methods: The process-driven approach and the problem-list-driven approach.
Architectural testing focuses on simulation system models to address the main issues of the architecture layer. Because of the different levels of abstraction of the test, the framework test strategy can be divided into unit/subsystem/integration/Acceptance testing phase test strategy.
Architecture discovers the architecture of extracting software from the existing system, which is reverse engineering.
Schema reuse is part of design reuse, which is more abstract than code reuse. Because the software architecture is the high-level abstraction of the system, it reflects the main components of the system and its interaction, so it is more stable than the algorithm and more suitable for reuse.
Software Architecture evolution refers to the change of software architecture due to the changes of system requirements, technology, environment, distribution and other factors. The architectural change of a software system at runtime is called the dynamic nature of the schema, and the static modification of the schema is called the schema extension. Both are the research areas of architecture adaptability and evolution.

The 2nd chapter is the software architecture modeling.

Types of Software Architecture modeling
Structural models, frame models, dynamic models, process models, and functional models
What is the "4+1 view", giving the name and main focus of each view, respectively.
The "4+1" view model is the way Kruchten was introduced in 1995 to describe the software architecture, mainly using 5 different views: Logical view, Process view, physical view, development view, and scene view to describe the software architecture. Each view concerns only one side of the system, with 5 views combined to reflect the full content of the system's software architecture
Life cycle model of software architecture
The non-formal description of software architecture, the specification description and analysis of software architecture, the refinement and validation of software architecture, the implementation of software architecture, the evolution and development of software architecture, the provision, evaluation and measurement of software architecture, the end of software architecture
Container
A container is something within which a component can be executed or resides. It can be anything from a network or application server to a rich client application or database. Containers are usually executable files, but not necessarily separate processes.
C4 model
In an object-oriented system, the system is usually made up of multiple containers consisting of multiple components, composed of multiple classes

The 3rd chapter is the architecture style of software.

Definition of software architecture style
Characteristics of the various styles
Data flow style: batch sequence; pipeline/filter.
Features of piping and filter style software architecture
(1) Make the soft component have good concealment and high cohesion, low coupling characteristic; (2) Allow the designer to regard the input/output behavior of the whole system as a simple synthesis of the behavior of multiple filters; (3) Support software reuse. (4) System maintenance and enhance the performance of systems is simple. (5) Allow analysis of some properties such as throughput, deadlock, and (6) Support for parallel execution. However, such a system also has a number of adverse factors.
(1) Typically causes a process to become a batch structure. This is because while filters can process data incrementally, they are independent, so designers must consider each filter as a complete transformation from input to output.
(2) An application that is not suitable for dealing with interactions. This is especially true when there is a need for incremental display of changes.
(3) because there is no common standard in data transmission, each filter increases the work of parsing and synthesizing data, which leads to degraded system performance and increases the complexity of writing filters.
Call/Return Style: Main program/subroutine; object oriented style; hierarchical structure.
Object-oriented Benefits
Can visualize the field of real world, reusability is high, the corresponding change is very strong. Easy to expand, strong maintenance
Data abstraction and object-oriented Organization drawbacks
Performance loss. Object-oriented programming sacrifices for features such as reusability, flexibility, and extensibility. Difficult to test, high overall system design requirements
Independent component style: Process communication; Event System.
Event-based implicit invocation benefits:
Provides powerful support for software reuse. When a component needs to be added to an existing system, it is only necessary to register it in the event of the system. Facilitates the improvement of the system. When one component is substituted for another, the interface of other components is not affected.
The disadvantage of an event-based implicit invocation:
The component abandons the control of the system calculation. The issue of data exchange. Sometimes data can be passed by an event, but
Sometimes the system must rely on a shared warehouse for interaction. At this point, global performance and resource management becomes a problem.
Since the semantics of the process must depend on the context constraints of the triggered event, there is a problem with reasoning about correctness.
Layered System Benefits:
Support the system design based on the increment of abstraction, so that the designer can decompose a complex system by incremental step;
Enhancements are supported because each layer interacts at most and adjacent upper and lower layers, so that changes in functionality affect the adjacent upper and lower layers at most, and reuse is supported. Different implementations of the same layer can be used interchangeably as long as the provided service interface definition is the same. In this way, a standard set of interfaces can be defined, allowing for a variety of implementation methods.
Layered System Disadvantages:
Not every system can be easily partitioned into layered patterns, even if the logical structure of a system is hierarchical
, the system designer has to combine some low-level or advanced functions for system performance, and it is difficult to find a suitable and correct hierarchical abstraction method.
Virtual machine style: interpreter, rule-based system.
Warehouse Style: Database system, hypertext system, blackboard system.
Please briefly describe the definition of blackboard style.
The blackboard structure is a hierarchy of six to eight layers, each of which abstracts the lower layer of information adjacent to it.
The knowledge source represents the independent subtasks in the whole problem solving. Each knowledge source is organized into a conditional part and an action section, which specifies when the knowledge source is available, and the action part is responsible for processing the relevant blackboard elements and generating new elements. The control component acts as the monitor and dispatcher of the blackboard, usually applies the blackboard knowledge source to the blackboard the various elements have the priority order, the dispatcher is responsible for monitoring the blackboard and the computation priority.
C2 style
Features of the C2 style
C2 Architecture Style: it can be generalized as a parallel component network that is bound together by a set of rules. Organization rules are: 1, the system of the components and connectors have a top of a bottom. 2, the top of the component should be connected to the bottom of a connecting piece, the bottom of the member should be connected to the top of the connector, the components can not be directly connected. 3, a connecting piece can be connected with any number of other components and connectors. 4. When the two connectors are connected directly, one of the bottoms must be at the top of the other. The characteristics of C2 style: The component in the system can realize the application demand, and can encapsulate the function of any complexity, and the communication between all the components is realized by the asynchronous message exchange mechanism which is mediated by the connector, the components are relatively independent and the dependencies among the components are less. Some artifacts in the system do not exist within the same address space, or some artifacts share a dependency hypothesis such as a particular control thread.
C/S style
c/S style advantages:
The C/S architecture has powerful data manipulation and transaction processing capability, and the model is simple and easy to understand. The system's customer application and server components are running on different computers, each server in the system can fit the requirements of each component, which shows great adaptability and flexibility to the changes of hardware and software, and it is easy to expand and reduce the system. The functional components in the system are fully isolated, and the development of the client application focuses on the data display and analysis, while the development of the database server focuses on the management of the data. Distribute large application processing tasks across many low-cost computers connected to the network to save money.
c/S style disadvantages:
The development cost is high, the client program design is complex, the information content and the form is single, the user interface style is different, the use is complicated, not conducive to the promotion use, software transplant difficulty, software maintenance and upgrade difficulties, new technology can not be easily applied
Three layer C/s style
Three layer C/s style advantages:
It allows the function of the three-layer structure to be logically maintained relative independence, which can improve the maintainability and expansibility of the system and software. Allows for more flexibility in the use of the appropriate platform and hardware system, so that it
The processing load capacity and processing characteristics are adapted to three layers respectively, and these platforms and components can be well upgradeable and open. Each layer of the application can be developed in parallel to choose the most appropriate development language for each. Using the functional layer to effectively separate the presentation layer from the data layer, it is difficult for unauthorized users to bypass the functional layer and use database tools or black
Unauthorized access to the data layer provides a solid foundation for strict security management.
Issues to be aware of:
Three layer C/s structure of the communication efficiency between each layer if not high, even if the hardware assigned to each layer is very strong, it as a whole
The required performance is not achieved. Design must carefully consider the three-layer communication method, communication frequency and data volume. This is the same as raising the independence of each layer is the key problem of three-layer C/s structure.
Three layer B/s style
b/S style is an implementation of the above three-tier application structure, the specific structure is: Browser/web server/database server. Advantages (1) software based on B/S architecture, system installation, modification and maintenance are all in the server-side solution. (2) Provide the heterogeneous machine, heterogeneous network, heterogeneous application services online, networking, agree to the most realistic open foundation of services. Cons (1) lack of support for dynamic pages, no integration of effective database processing capabilities. (2) In the data query and other response speed, is much lower than the C/s system structure. (3) Data submission is generally based on the page, the dynamic interaction of data is not strong, not conducive to online transaction processing applications.
Heterogeneous style
Domain-specific software architecture (DSSA)
Architecture type of a typical software system
Game System Architecture Example Darkstar
Business System Architecture Example explanner/ai,explanner/j

The 5th chapter is Unified Modeling Language (UML).

Review the meanings, uses, and representations of various diagrams of UML
What is the important role of class diagrams in UML?
1. Provide a way for developers to mimic the real-world expression.
2. Let the analyst use the terminology and customer communication used by the customer to motivate the customer to say the important details of the problem to be solved.
RUP 4+1 diagram
What is an architecture description language? What are the differences and relationships between it and the programming language and UML?
ADL is a formal language, and with the support of the underlying semantic model, it provides a specific syntax and conceptual framework for modeling the conceptual architecture of a software system. The tools based on the underlying semantics provide support for the representation, analysis, evolution, refinement, and design process of the architecture. Its three basic elements are: component, connector, architecture configuration.
Comparison with other languages: Construction Ability: ADL can build large software systems using smaller, independent architectural elements; abstract Ability: ADL enables component and connector descriptions in software architectures to focus only on their abstract features, regardless of their specific implementation details Reuse Ability: ADL makes the components, connectors and even software architecture of software system become reusable parts of software system development and design. The combination ability: ADL makes each system element that it describes has its own local structure, This description of the local structure makes the ADL support the dynamic combination of software systems; heterogeneous capabilities: ADL allows multiple different architectures to describe the existence of associations; the ability to analyze and reason: ADL allows many different kinds of analysis of the performance and functionality of the architecture that it describes.

The 6th chapter is Extensible Markup Language (XML).

XML features, functions, applications
Characteristics:
Simple and effective; easy to learn and use; open international standards; efficient and scalable
Role:
Make the search more meaningful;
Develop flexible Web application software, realize integration of different data, use in a variety of application environments, client data processing and calculation, data display diversification, local data updating, compatibility with existing Web publishing mechanism, scalability, high compression performance
Application:
Apply to customers who need to interact with different data sources, apply a large number of operations to the client, apply the unified data to different users, and apply it to network agents to edit, increase or decrease the information obtained to suit the needs of individual users.
The difference between XML and HTML
HTML is a formatted language, and an HTML literal can be thought of as a formatted program, while a piece of text that conforms to the XML syntax specification is a "pure" piece of data, and its structure is described by other text called DTDs, and its processing may be any other container or program that supports XML. Another difference from XML is that XML is a meta-markup language. XML defines a set of meta-syntax that must be adhered to in a particular area of markup language.
The difference between XSL and CSS
The characteristics and selection principles of various API interfaces for parsing XML documents
Dom,sax,jdom,jaxp

The 8th chapter is the service-based architecture.

Definition of SOA, characteristics, purpose (Purpose)
What are the characteristics of Soa,soa? The
SOA, a shorthand for service-oriented architecture, is the meaning of a service-oriented architecture, Service-architecture.com and Gartner give different definitions, SOA is a method of designing, developing, deploying, and Managing discrete Logical Unit (service) models in a computing environment. Because SOA takes into account objects within the system, SOA is object-based, but as a whole, it is not object-oriented.
Characteristics of SOA: (1) loose coupling, (2) coarse-grained service, (3) standardized interface.
Purpose:
facilitates the decomposition of business system capabilities into highly independent (or loosely coupled), coarse-grained and reusable services, and facilitates the assembly and orchestration of services to meet the changing needs of business and processes.
SOA Goal:
to facilitate the construction of data services, business services, presentation layer components, so that users easily through the interface modeling, process engine and rules engine for flexible application assembly.
SOA Design principles
Well-defined interfaces, self-contained and modular, coarse-grained, loosely coupled, interoperability, compatibility, and policy statements
Key technologies for SOA
Discovering service tiers, describing service tiers, message format layers, encoding format layers, transport protocol layer
SOA implementation methods
1.Web Service
What are WEB services? What are the characteristics of Web services?      
A: A Web service is a business process that runs on the Internet using standard technology, and it can use standard Internet protocols. Programmatic representation on the Internet and on the intranet. Characteristics: 1, the use of Standard protocol specification 2, the use of the normative protocol 3, the high integration capacity of 4, the integrity of the packaging 5, loose coupling

Describe the architecture model of a Web service? What are the three core protocols?
Web Service is a new distributed computing model, and it is an effective mechanism of data and information integration on the Web.
Three constituent elements are: Serverice Broker, service Provider, service requester
Three core protocols: Simple Object Access Protocol soap; Unified description, Discovery, and Integration Protocol Uddi;web Service Description Language WSDL
As the core of Web service architecture, Web service briefly describes the core technology of Web service and its role.
(1): The underlying transport layer, mainly responsible for the transmission mechanism of the message.
(2): Service Communication Protocol layer, Service communication protocol layer is mainly in a unified way to describe and define the communication between the services required by the technical standards.
(3): Service description layer, mainly in a unified way to describe the interface of the service and message Exchange Mode.
(4): Service layer, the main function is to package the legacy system, and through the release of the WSDL interface description is positioned and called.
(5): The business process layer, the main function is to support service discovery, service invocation and point-to service invocation, and to abstract the business process from the underlying invocation of the service.
(6): Service registration layer, the main function is to enable the service provider to publish the service definition through WSDL, and support the service requester to find the required service information.
2. Service Registration Form
3. Enterprise Service Bus

The 9th chapter is about rich Internet application architecture.

Benefits of Ria
The 1.RIA leverages a relatively robust client-side description engine that provides a content-dense, responsive, and graphically rich user interface. Another benefit of RIA is that data can be cached on the client side, enabling a user interface that is much faster than HTML-based and has fewer data trips to and from the server.
RIA Client Development Technology category
Macromedia Flash/flex;ajax;laszlo;avolon;java swt;xul;bindows;oracle Forms
JAVASCRIPT/HTML5: The RIA technology that is considered to be the most promising
Ajax development Model
Ajax Core Technology
Ajax development Process
What is the core of Ajax technology? How does Ajax bind a variety of existing technologies? What role do these technologies play in each other?
At the heart of Ajax technology is the asynchronous transmission of JavaScript calls to XML. With Ajax, you can use JavaScript and DHTML to immediately update the user interface when a user clicks a button, and make an asynchronous request to the server to perform an update or query the database. When the request returns, you can use JavaScript and CSS to update the user interface appropriately instead of refreshing the entire page. Most importantly, the user does not even know that the browser is communicating with the server, and the Web site appears to be responding instantly.
The high extensibility and flexibility of XML makes it possible to describe different types of data in different kinds of application software, which can realize the integration of different data.
XHTML combines the power of some XML with the simple nature of HTML.
JavaScript is used primarily to pass data on the user interface to the server and return the results.
XMLHttpRequest is used to respond to data passed through HTTP, and once the data is returned to the client, it is immediately possible to use the DOM to display the data on the Web page.
The DOM defines a set of interfaces for the parsed version of an XML document.
XSLT can reduce the number of application logic written in JavaScript.
CSS provides a mechanism for separating application styles and designs from content.

11th Chapter User Interface Design

OO Analysis model--Design model
Interface design includes user interface design = user interface design
The golden rule of user interface design and its implication
? user Manipulation Control
? Reduce the user's memory burden
? Keep the interface consistent
User Operation control
Define the interaction mode in a way that does not force the user to enter unnecessary or unwanted actions. provides flexible interaction.
Allow user interaction to be interrupted and revoked. When the skill level grows, you can streamline interactions and allow custom interactions. The user is separated from the internal technical details. The design should allow the user to interact directly with the objects that appear on the screen.
Reduce user memory burden
Reduce the need for short-term memory. Establish a meaningful default. Defines an intuitive shortcut. The visual layout of the interface should be based on real-world symbolism. Revealing information in a way that keeps progressing.
Keep the interface consistent
Allows the user to put the current task into a meaningful environment. Maintain consistency within the application family. If the past interaction model has built up the user's expectations, do not change it unless there is a compelling reason to do so.
What are the aspects of interface analysis
WEBAPP Interface Design
An effective WebApp interface
WebApp Interface Design Principles

The 12th chapter is based on the architecture of software development

The hierarchy of patterns in software design
Design Patterns – Definitions, roles, classifications
What is design mode? How does it differ from style and frame?
Design patterns are a set of reusable, most known, categorized purposes, code design experience Summary. A repetitive solution to a common design problem.
Software architecture style is a idiomatic pattern that describes how systems are organized in a particular application domain. The software framework is the reusable design of the whole or part of the system, the pattern is more abstract than the framework, the framework is a special case of the pattern, and the design pattern is implemented as a framework, which can greatly alleviate the gap from design to realization, and the framework of the schema is easier to understand and be designed and reused than the framework without using the pattern. Generally mature framework contains a variety of design patterns, a framework can not only implement a model, but also concrete implementation of multiple patterns, design patterns and styles are synonyms, usually can be common with each other, style mainly refers to large, macroscopic design. The model can be both macroscopic and microscopic.
Role:
1. Reuse solution-by reusing an already recognized design, I can get a first-advantage in solving problems and avoid repeating the mistakes of previous generations. I can benefit from learning from the experience of others and don't need to design a solution for a problem that always repeats itself.
2. Establish common terminology-communication and collaboration in development requires a common vocabulary base and consensus on issues. Design patterns provide a common benchmark in the analysis and design phases of a project.
3. Improve the observation height--The pattern also provides us with a higher level of view of the problem of observation, design process and object-oriented, which frees us from the shackles of "premature handling of details".
4. Most design patterns also make the software easier to modify and maintain. The reason for this is that they are all proven solutions. As a result, their structure has been developed over the long term and is more adept at coping with change than a newly conceived solution. Also, the code used by these patterns tends to be easier to understand-making the code easier to maintain.
The principles and characteristics of beautiful architecture
23 Classic Design Patterns of Gof
Classification:
1. Create pattern
? Factory method Mode? Abstract Factory mode? Builder mode? Prototype mode? Single-Case mode
2. Structural mode
? Adapter mode? Bridging mode? Combo mode? Decoration mode? appearance mode? Enjoy meta mode? Proxy mode
3. Behavioral Mode
? Responsibility chain model? Command mode? Parser mode? Iterator mode? Broker mode? Memo mode? Observer pattern
? State mode? Policy mode? Stencil method mode? Visitor mode
Example of a specific code implementation for Factory mode, abstract Factory mode
MVC features and Java implementation examples
Mvp
Middleware Technology
Middleware definition, advantages, functionality, classification, development trends
Defined:
Middleware is a kind of software which is between system software and application software.
Advantages:
It enables designers to focus on design and application-related parts, greatly simplifying the design and maintenance work.
Function:
1. Responsible for the connection and communication between client and server, and the efficient communication mechanism between client and application.
2. Provide an interoperability mechanism between the different services of the application layer, and the connection and control mechanism between the application layer and the database.
3. Provide a platform for application development and operation of multi-layered architectures, as well as an application development framework to support modular application development.
4. Shield the differences between hardware, operating system, network, and database.
5. Provide application load and high availability, security mechanism and management functions, as well as transaction management mechanism to ensure the consistency of transactions.
6. Provide a common set of service areas to perform different functions, avoiding duplication of effort and being able to collaborate between applications.
Classification:
The bottom-up approach is divided into three levels: the bottom-level middleware, the general-purpose middleware and the integrated middleware.
Main middleware: RPC,ORB,RMI,RMI-IIOP,MOM, transaction processing monitor
What are the features of the programming language Scala?
Features of the programming language Scala:
1) easy to test. The advantages of functional languages (Lisp, etc.).
2) small amount of code. The advantages of scripting languages (Ruby,python, etc.).
3) The compiler does the type check (type declaration not). The advantages of static type definition language (JAVA,C, etc.) and dynamic type definition language (RUBY,LISP, etc.).
4) The process flow can be described in an intuitive and understandable manner. For the advantages of the process language (COBOL,C, etc.).
5) Can implement encapsulation, inheritance, polymorphism, object-oriented development. The advantages of object-oriented languages (java,c#, etc.).
1. What are the new trends in software development?
First, in the context of the global financial crisis, open source software will get more market opportunities
Second: Open source software will dominate the development of mobile application software
Three: The introduction of open source software to cloud accounting, SaaS (software as a service)

Choose a large software system you are familiar with, analyze the styles used in its architecture, and show the characteristics (why use this style?). What advantages does it bring? What are the disadvantages? )。
The style used in social software architecture analysis: The use of C/s style, and to a certain extent, the three-tier C/S style
to adopt this style of reason:
Presentation layer: Social Information display, and provide updates and search operations
Functional layer: With search, online chat, Offline message, file transfer and so on function
Data layer: Have database server provide message, album, Friend information and other data
Advantage: Make logical structure clearer, classify clearly, give user better experience
Disadvantage: Need data communication support, high dependence on network, no network, Many features will have no meaning.

For an actual system, it is not possible to judge whether it is a-style, B-style, or C-style, because there is not enough reason to classify it as any independent architectural style. This system type is called heterogeneous structure, corresponding to it is a layered system, so this virtual system is a layered system.
This system includes the following architectures: Pipeline and filter style, event driven style, layered system.
Piping and filter styles
Advantages of piping and filter styles:
Disadvantages of piping and filter styles:
Event-driven style
Architecture definition as a development framework that supports component-based development. The language provides the ability to model, analyze, simulate, and code generation, but does not explicitly represent a join as a first-order entity.
Tiered Systems
Benefits of tiered systems: support for system design based on an increasing degree of abstraction, support enhancements, and support for reuse.
The disadvantage of layered systems: not every system can easily be divided into layered mode, even if it is hierarchical, for performance considerations, but also have some low and high-level functions to synthesize, it is difficult to find a suitable, right level abstract method.
C2 style
The components in the system can realize the application requirements, and can encapsulate the functions of any complexity.
The communication between all the components is realized by the asynchronous message exchange mechanism, which is mediated by the connecting parts;
The components are relatively independent and the dependencies between the components are less. Some artifacts in the system do not exist within the same address space, or some artifacts share a dependency hypothesis such as a particular control thread.
Style based on the message bus
The message bus is the system's connector, responsible for the dispatch of messages, delivery and filtering, and the return of processing results. Messages are the only way to communicate between artifacts. Since the components are connected via the bus, it is not required that each component has the same address space or is confined to a single machine, so this style can describe the distributed development system and the system of corba.dcom and EJB specification very well.

Traveler.com is an online travel information services company whose main business is to provide self-help travelers with information about travel routes and surrounding areas. As the company's business continues to evolve, the company's users require location-based value-added travel information services, which they want to be able to obtain information about their location, accommodation, catering and transportation in a given location (using GPS Global Positioning System). In response to this demand, the company's technical staff to the existing system architecture and operating mode of the careful analysis, decided to use mashup technology to integrate from its cooperative site (set as a, B, C, D) information to meet the needs of users. The specific implementation is as follows:
(1) Using the map information provided by a website to obtain the surrounding geographic information related to the user's location.
(2) The B site provides information about the surrounding accommodation according to the user's location information.
(3) The C website provides the surrounding food and beverage information according to the user's location information.
(4) The D website provides information on the surrounding bus lines according to the user's location information.
Question 1:
(2) The service requested by the user to make corresponding processing. (3) The Traveler website requests to return the map information in the vicinity of the user's location to the a website. (5) The Traveler website requests to the B website to return the accommodation information around the location of the user.
(7) To respond to the information provided by the website.
Question 2:
When aggregating services, by invoking the API to get the functionality of each source, the most common types of APIs used in mashups are generally two, rest and soap, and, if the data is aggregated, use RSS to get the data.
Question 3:
The client's user interface can represent and respond to more complex data patterns in order to handle client operations and send and receive data asynchronously. When a page is created on the server and delivered to HTML, the client's program gives the user a better feeling than interacting with the server. To achieve a highly complex data pattern, the client allows the user to build a highly responsive, interactive application. You can implement a user interface that is faster than HTML-based and has fewer data trips to and from the server.
One party believes that the Microsoft. NET platform should be adopted, and one party believes that Java Enterprise platform should be adopted
Gives the advantages and common features of two platforms
(1),. NET platform: Easy to deploy and setup, multi-programming language support, platform-specific optimization support
Java Enterprise Edition platform: Good cross-platform portability support, rich multi-vendor external support, and a good source of customizable support
Common features: Good Web multi-tier application development support, good O/R (object/relationship) mapping support, good Web service support
Java EE is more suitable for large enterprises, big enterprise love Java EE
. NET is more suitable for small and medium enterprises, implementation is fast, easy to maintain, small and medium enterprises are optimistic. Net
The Java EE platform is more stable
. NET platform is more suitable for integration with Microsoft system software
Servers that support the Java EE platform are better and more expensive
Support. NET platform servers occupy the low end of the market, affordable
The Java EE platform is suitable for large data volume concurrent processing system
. NET platform for tightly coupled systems with Microsoft applications such as Office, Project, exchange, etc.
(2) What components should be implemented between groups in the MVC model
In the EJB-based heavyweight framework, the implemented artifacts are:
Model: implemented by EJB artifacts
View: implemented by JSP artifacts
Controller: implemented by servlet artifacts
In a lightweight framework based on struts, the implemented artifacts are:
Model: Implemented by Java Bean artifacts
View: implemented by JSP artifacts
Controller: implemented by servlet artifacts
(3), the main difference between MVP mode and MVC mode is:
① in component coupling: In MVP mode, views do not use models directly, and communication between them is performed through presenter, which enables the separation of views from the model, whereas in the MVC pattern, the views interact directly with the model.
② in the Division of components: in MVP mode, the view needs to deal with the mouse and keyboard trigger interface events, and in the MVC pattern this is usually done by the controller, in the MVP mode, the system core business logic is organized in the presenter, and in the MVC model, The corresponding controller typically only completes the distribution of events.
③ in the development of engineering support: MVP mode can better support unit testing, and in the MVC pattern, because the model and view binding, it is difficult to implement the corresponding unit testing, in the MVP mode, presenter based on the contract interface with the view and model interaction, can better support the reuse of components.
(4), the basic features of the business include:
Atomicity: All operations in a transaction are either completed or not completed and do not end up in the middle of the process. An error occurs during the execution of a transaction and is rolled back to the state it was in before the transaction began, as if the transaction had never been executed.
Consistency: The data integrity limit is not compromised until the transaction begins and after the transaction has ended.
Isolation: Two transactions are performed independently of each other, and two transaction times do not interfere with one another.
Persistence: Changes made to the data by the transaction are persisted in the database and are complete after the transaction is completed.
The two kinds of transaction control methods supported by the EJB specification are:
Transaction maintained by the container (Container Managed TRANSACTION,CMT): The EJB container automatically controls the boundary of the transaction based on the transaction properties specified in the deployment descriptor or EJB artifact annotations, and the transaction maintained by the container is method-level, that is, by default a method is executed as a transaction. When a system-level exception occurs during the execution of a method, the container automatically rolls back the transaction, recovering the results that were previously performed by the method.
Bean-Maintained transaction (Bean Managed TRANSACTION,BMT): The programmer controls the boundary of the transaction execution in the source code of the EJB, and the transaction boundary is controlled by the Java Transaction interface (Java Transaction api,jta). A transaction maintained by a bean can span the bounds of a method.
1. What are the levels of software reuse that can be categorized into software reuse?
A: Software reuse refers to the process of reusing the same or similar software elements in two or more different software development processes. The level of reuse of software can be divided into program code reuse, test case reuse, design document reuse, design process reuse, requirement analysis document reuse and domain knowledge reuse.
2. What kinds of software architecture models can be divided into, how specifically?
A: The core model of the software architecture consists of 5 elements: components, connectors, configurations, ports, and roles. components, connectors, and configurations are the most basic elements.
3. In the design and evolution of the architecture, the experimental prototype phase is divided into 2 cycles, which are summarized in each cycle.
A: There is no specific, definite date for the first cycle, and the end of the first cycle forms the initial design of the graphical user interface and the two versions of the problem domain model. The task of the second cycle is to design and build a next software architecture with the following characteristics: Flexible enough to include existing elements, including new features, and a fairly stable structure in which prototypes can evolve in the experimental prototype phase; Develop an efficient development organization, Allows developers to develop on a prototype basis in parallel.
4. Connector: is used to establish the interaction between the components and control these interaction rules of the architectural building blocks.
5. Architecture configuration: An architecture configuration or topology is a diagram of the connection between a component and a connector that describes the architecture. The architecture configuration provides information to determine whether the component is properly connected, whether the interface is assigned, whether the communication that constitutes the connection is correct, and describes the combined meaning of the implementation requirement behavior.
6. Software Architecture Dynamic: Refers to the software system at the time of operation of the system structure changes.
7.WEB Service stack: The Web service stack is a new architecture, and the entire Web service technology family is called the Web service stack.
8.SOAP: Simple Object Access Protocol, SOAP is an XML-based, lightweight protocol for exchanging structured information in a loosely distributed environment, providing a simple mechanism for using XML to exchange structured and typed information in a loose, distributed environment.
9.WSDL Standard: is an XML format used to implement the description layer in the Web service stack, describing the network service as a collection of communication endpoints capable of exchanging messages.
10. Modifiable: Refers to the ability to quickly change the system at a higher performance-price ratio. Typically, some specific changes are used as a benchmark to measure the modification by examining the cost of these changes. Modifiable includes: 1 maintainability, 2 scalability, 3 restructuring, 4 portability
11. Core resources: is a collection of all the results of domain engineering, and is the basis of product structure in product line.
12. Software PRODUCT line: The SOFTWARE PRODUCT line is a collection of systems that share the same set of features based on a common set of software resources.
13.SEI model: SEI divides the basic activities of the product line into three parts, namely, core resource development, product development and management.
14. Product Line Architecture: Product line architecture is a software architecture and a set of reusable components in a family of products, in order to increase the importance of software, for enterprises to reduce the cost of software development and maintenance provides an important way.
15. What are the phases of the architecture life cycle model?
A: 1, the requirements Analysis Phase 2, the establishment of the software architecture Stage 3, the design phase 4, the realization stage
16. Briefly describe the lifecycle of your software architecture.
A: The non-formal description of the software structure in natural language, and then use the appropriate formal mathematical model to define the non-formal description of the previous stage, so as to get the formal specification description of the software formal structure. The design of the software architecture to verify and refinement, until the need for refinement verification, to the implementation of software architecture. At this stage, the software structure is implemented in the system design, and the structural components and connectors are organically organized. Determine whether the software architecture needs to be expanded and evolved. You need to repeat the above steps, otherwise the architecture is evaluated, measured, and transferred to the end stage.
17. What are the dynamic architecture features?
A: 1, the structural dynamic characteristics 2, adaptive dynamic characteristics 3, intelligent dynamic characteristics
18. Describe how the component-based dynamic architecture model supports running system updates?
A: 1, the detection of the scope of the update 2, update preparation 3, the implementation of update 4, storage updates
19. What are the main ways to evaluate software architecture?
A: 1. Based on a questionnaire or checklist: A questionnaire is a set of related issues that can be applied to various architectural evaluations, which may involve architecture for design decisions, some of which involve architectural documentation, and some that address the details of the architectural description itself. The checklist also contains a series of more detailed and specific questions than the questionnaire, which tend to examine some of the quality attributes of concern. This evaluation method is flexible and free, can evaluate a variety of quality attributes, but also in the software architecture design in several stages. 2. Scenario-based evaluation: A scenario is a sequence of steps to use or modify a system in an orderly manner. The scenario-based approach is first proposed by SEI and applied in the analysis method of architecture tradeoff and software architecture, the software architecture evaluates the software architecture to the extent that the system supports the use or modification activities, thus judging the level of satisfaction that the architecture represents to the quality requirement. 3. Measure-Based assessment: a metric is a pair of values assigned to a property by a software product. This evaluation technique involves 3 basic activities: First of all, we need to establish a mapping relationship between attributes and quality, then get the measurement information from the software architecture document, and finally deduce the system's quality properties according to the mapping principle.
20. Briefly describe the main tasks and contents of the field engineering phase in the dual life cycle.
Answer: (1) domain analysis. Build domain models with existing system designs, architectures, and requirements. (2) field design. The domain model is used to determine the commonality and variability of the domain/product line and to design the architecture for the product line. (3) Field realization. Reusable resources (artifacts, documents, code generators) based on domain architecture development.
21. What are the process models for the SOFTWARE PRODUCT line?
Answer: 1, double cycle model 2, SEI Model 3, three life cycle model
22. Please outline and draw the "4+1" view model
A: The 4+1 view model describes the software architecture from 5 different perspectives (logical view, process view, physical view, development view, and Scene view). On one side of the system of care for each view, 5 views are combined to reflect the entire content of the system's software architecture.
The logical view mainly supports the functional requirements of the system, that is, the system provides the service to the end user; The development view is also called the Module View, which mainly focuses on the organization and management of the software module; The process view focuses on the operational characteristics of the system, focusing on non-functional requirements, such as system performance and availability Physical views mainly consider how to map software to hardware, which usually takes into account system performance, scale, reliability, etc. the scenario can be seen as an abstraction of important system activities, which organically links 4 views, in a sense that the scenario is the most important requirement abstraction.

Theory, method and practice summary of software architecture

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.