This chapter will explain what is the way, model, and how to use models. This chapter will explain the different levels of the model: ideal, partial and tool-based.
2.1 What is a model
The model is a way to express the same or other tools in a tool. The model simplifies or ignores other aspects from a model viewpoint to seize the most important aspects of things. Engineering, buildings and many other models need to be used in creative areas.
Tools for expression models are easy to use. The architectural model can be the architectural drawing drawn on the drawing, or a three-dimensional model made with a thick panel, and can also be represented by a finite element equation in a computer. A structural model of a building not only shows the appearance of this building, but also uses it to perform engineering design and cost accounting.
The model of the software system is expressed in modeling language, such as UML. The model contains semantic information and representation, which can take a variety of different forms such as graphics and text. The purpose of establishing a model is because the model is easier and convenient to use in some uses than the manipulation.
2.2 Use of model
Model has a variety of uses
1. Capture the need for precise and expressing the project and the knowledge in the application field, so that all stakeholders can understand and agree
The various models of buildings can accurately express this building in appearance, transportation, service facilities, wind resistance and seismic performance, consumption, and other needs. All aspects of stakeholders include architects, construction engineers, contractors, party members, owners, lessengers and municipalities of each sub-project.
Different models of the software system can capture demand information about this software, how to use methods, test questions, and constructors, etc. All aspects of stakeholders include software structural designers, system analysts, programmers, project managers, customers, investors, end users, and operators using software. Use a wide variety of models in UML.
2. Perform system design
Architects can use the model maps drawn on the drawings, exported to the model or the actual three-dimensional model to make your design results, and use these models to do design. Construction, modify a small model is relatively simple, which makes the designer don't need to create and innovate.
Before writing program code, the software system model can help software developers easily study multiple framework and design of software. Before performing detailed design, a good modeling language allows designers to have a comprehensive understanding of the software's architecture.
3. Separate specific design details with demand
A model of a building can show an appearance that meets the requirements of the customer. Another type of model can illustrate the setting of electrical lines, pipelines, and ventilation pipes inside the building. Achieving these settings have multiple programs. The final identified architectural model must be a design designer think the best design. Customers can check and verify this program, but usually customers don't care about specific design details, as long as they can meet their needs.
A class of models of software systems can indicate that the external behavior of this system corresponds to information corresponding to the real world, and the other model can display the categories in the system and internal operations required to implement system external behavior characteristics. There are many ways to achieve these behaviors. The model corresponding to the final design must be one of the designers think the best.
4. Generate useful actual products
The architectural model can have a variety of related products, including the list of building materials, the deflection of buildings under various wind speeds, stress levels of each point in the building structure.
Using the model of the software system, you can get a statement, process body, user interface, database, legal use, configuration, and comparative descriptions with other unit technical competition.
5. Tissue, find, filter, recovery, check, and edit the information about large systems
Construction models to organize information on service facilities: building structure, electrical, pipeline, ventilation facilities, decor, etc. Unless the computer is stored, the lookup and modification of this information is not so easy. Instead, if the entire model and related information are stored in a computer, these work is easy to perform, and various design schemes can be easily studied, and these design plans share some public information.
Software system uses views to organize information: static structural view, state machine view, interaction, reflecting the needs of the needs. Each view is a map for a part of the information selected from the model from a model. No model management tools cannot make the model to be arbitrarily accurate. An interace view editing tool can be used in different formats that hide the temporary unwanted information for a specific purpose and will be displayed later, and the operation can be packet, modify the model elements, and only one command to modify a set of model elements. and many more. 6. Economically research solutions in multiple design processes
The pros and cons of different design plans to the same building may not be clear at the beginning. For example, the different sub-structures that can be used may have complex interactions between each other, and construction engineers may not be able to make correct evaluations. Before actual construction of buildings, the model can be used to study multiple design options simultaneously and conduct corresponding costs and risk estimates.
Multiple actual solutions can be proposed by studying a model of a large software system and can be compared to each other. Of course, the model cannot be done enough, but even a rough model can explain many of the problems to be solved in the end design. Using models can be studied in a variety of designs, the cost of cost is only cost to implement one of the programs.
7. Use the model to fully grasp the complex system
A tornado in the engineering model of the tornado attack building is impossible to be the tornado in the real world, just a model. The real tornado is impossible to come, and it will destroy the measurement tool. Many fast, intense physical processes can now use this physical model to study and understand.
A large software system may not be able to study directly due to its complexity, but the model makes it possible. In the absence of detail, the model can abstract to a certain level to make people understand. You can use a computer to complicate models to identify possible "problem points", such as time errors and resource competition. Before making changes to the actual object, the dependence between the components in the model research system can be brought about which changes may be caused.
2.3 Mode of Model
For different purposes, the model can take a variety of forms and different abstractions. The amount of information contained in the model must correspond to the following purposes:
Guidance design ideas
The high-level model established in the project was used to centralize stakeholders' ideas and emphasize some important options. These models describe the needs of the system and represent the starting point of the entire system design. Early model helps the project initiator to study the possible é for the project before the details of the system. With the progress of the design, the early model is replaced by a more precise model. There is no need to save various options and rework in the early study. The purpose of the early model is to help get ideas. But the final "Idea Model" is recorded before the design is detailed. The early model does not need to achieve the accuracy of the model of the stage, and there is no need to involve a set of concepts related to the implementation of the system. Establishing this model only using a subset of components defined by UML, which is much less than the components used in the post-design phase.
When an early model develops to a complete view model with a certain precision -, for example, the model of system requirements - then save it when the development process enters the next stage. Continuously incrementally developed in the model (the reasoning process developed in this case) is also saved and recorded and recorded) and the general solution to the "dead end point" until the random stripe development of the correct solution An important difference between. The latter case is usually not known how to start, and there is no need to record the entire development process, unless you encounter special circumstances need to be traced back.
2. Abstract description of the basic structure of the system
The model established in the analysis phase and the initial design phase is centered on key concepts and final systems. These models match in some way with the final system. However, the details are lost in the model, and this information must be explicitly supplemented during the design process. The purpose of using an abstract model is to correct the high-level universal problems in the system before processing local details. Through a careful development process, these models can develop into the final model that guarantees the final model to properly implement the design intent of the initial model. Tracking capabilities must be tracked from the process from the basic model to the full model, otherwise the final system cannot correctly contain key features to express the basic model. The basic model emphasizes the semantics, they do not need detail to system implementation. This situation sometimes happens: the difference in low-level implementation will make the logic ambiguous. The pathway from the basic model to the final implementation model must be clear and concise, regardless of this process, is automatically implemented by the code generator or manually realized by the designer. 3. Detailed specification of the final system
The system implementation model contains sufficient information that can build this system, which not only includes the logic semantics, algorithms, data structures, and mechanisms that ensure the correct completion of system functions, but also include system articles, these products The mutual collaboration between individuals and uses auxiliary tools. This model must include assemblies to the model elements to facilitate understanding and automatic processing with a computer. This is not the characteristics of the target application system, but the system constructor should have characteristics.
4. Typical or possible system example
Equipped examples can improve people's observational capabilities and make the system's instructions and achieve actual effects. However, even if there are very many examples, there is also a detailed definition of the effect. We finally hope that the model can explain the general situation, which is also what the program code is going. However, examples of typical data structures, interaction order, or object life history are beneficial for understanding complex systems. Be careful. Logically, it is impossible to summarize the most general case from a large plot of special case, but most people think about some of the problems that are carefully selected for this issue. The sample model is only an example of the model without a general description, so there is a difference between these two models. The sample model typically only uses the subset of components defined by UML. The description model and example model are useful in modeling.
5. Description of comprehensive or part of the system
The model can fully describe a standalone system and do not need to reference external information. More general, the model is organized by mutually distinguishing, discontinuous description units, each unit can be stored and manipulated as a whole. This model has a displacement that must be associated with other models of the system. Because these parts have correlations and meanings, they can construct different systems with other distributors through various modes. Get reuse is an important goal of a good modeling method.
The model has changed over time. The depth refinement is derived from a more abstract model, and the specific model is derived from a logical model. For example, the model established in the start phase is a high-level view of the entire system. Over time, some details are added to the model and some changes have been introduced. Once time, the core focus of the model is converted from one user-centered front-end logic view to a rear end physical view that implements a center. With the development process, the model must be repeated in various levels to obtain a better understanding, and a single perspective or linear process is unlikely to understand a large system. The form of the model does not matter "correct and wrong".
2.4 Model content
Semantic and representation
The model contains two main aspects: semantic information (semantic) and visual expression method (representation).
Semantic aspects use a set of logical components to express the meaning of the application system, such as classes, associations, status, use cases, and messages. Semantic model elements carry the meaning of the model, they express semantics. Semantic modeling elements are used for code generation, validity verification, complexity metrics, etc., its visual appearance is independent of most processing models. Semantic information is often referred to as a model. A semantic model has a lexical structure, a highly formulated rule and a dynamic execution structure. These aspects generally describe (as this is the literature of UML), but they are closely correlated and are part of the same model. Visual expressions can be displayed semantic information in the form of human observation, browsing, and editing. The mode element carries the visual expression of the model, that is, semantics is expressed in a manner that can be directly understood. They did not add new semantics, but the expression is organized in a useful manner to emphasize the model of the model. So they are guided by the understanding of the model. The semantics of expression elements come from semantic model elements. However, since the model is drawn by people, the expression elements are not completely from the logical elements of the model. The arrangement of expression elements may express additional meaning of semantic relationships, which are not obvious or ambiguous, so that they cannot be formally expressed in the model, but they can give people to Di Dynamic.
2. Context
The model itself is a product of a computer system and is applied in a large context that gives the model meaning. This includes the internal organization of the model, the entire development process of the annotation of each model, a default set, created, and manipulating the assumption of the model and the relationship between the model and its environment.
The model needs to have internal organizations, allowing multiple working groups to use a model without excessive mutual involvement. This decomposition of the model is not as required in semantic, compared to a model of a plurality of packages that are cohered before and after a decomposition, the information expressed by a large single structure may be equally accurate because of the organization The boundary of the unit determines that the work of accurate definition semantics is complicated, so the information expressed in this single model may be more accurate than the model of the package structure. However, it is impossible to effectively operate in a large single model from a large single model. Second, the single model does not have a reusable unit for other situations. Finally, some modifications to the big model tend to cause unexpected consequences. If the model is properly decomposed into a small subsystem having a good interface, the consequences of the modifications that are small, independent units can be tracked. In any case, the large system is broken down into the hierarchical structure consisting of carefully selected units, which is the most reliable method in the method of designing large systems in the human millennium.
The model captures semantic information for the application system, but also requires various information in the model itself, such as a certain type of designer, process debug status, and regulations for the use of various personnel. This information is mostly the system semantic peripheral information, but it is very important to the development process. Therefore, the model of establishing a system must consider both aspects. The easiest implementation method is to add project management information as an comment to a semantic model -, you can arbitrarily describe the model element with a non-modeled language. Use the text string in the UML to represent a comment.
The commands used by the text editor or browser are not part of the programming language, similarly, commands for creating and modifying models are not part of modeling language semantics. The properties of the model elements have no default, in a specific model, they have values. However, for the actual development process, there is no need to decide all the details related to the modification of the model. The default value exists in the modeling language and the boundary of modeling tools that support this language. In commands of the creation model used by modeling tools, they are real default values, although they may exceed a single modeling tool and become the general language used by modeling tools as desired.
The model is not built and used isolated. They are part of the large environment where the model is located. This large environment includes modeling tools, modeling languages, and language compilers, operating systems, computer network environments, system specific implementations, and so on. System information should include all aspects of the environment. Some of the system information should be saved in the model, even if this information is not semantic information, such as project management comments (already discussed above), code generation hint, model packaging, editing tool default settings. Other information should be saved separately, such as program source code and operating system configuration commands. Even the information in the model, the explanation of this information can also be located in multiple different places, including modeling languages, modeling tools, code generators, compilers, or command languages, and more. This book explains the model with UML itself. However, when the specific physical implementation of the system is performed, other resources used to interpret, these resources are invisible to UML. What does the model illustrate?
A model is a system potential configuration; the system is its range, or value. The system configuration is an ideal situation in accordance with the model. However, all the conditions required by the model cannot be implemented in reality. Model is still a general description of system meaning and structure. This description is the range, or meaning of the model. The model always has a certain abstraction level. It contains the most basic ingredients in the system and ignores other content. For models, there is a need to consider:
Abstract and concrete. The model contains the basic components of the system and ignores other content. Which is the basic content which is not the basic content needs to be determined based on the purpose of modeling. This is not to say that the accuracy of the information contained in the model is second, that is, only two cases of accurate and incorrect. There may be a model of a series of expressions that have different expression accuracy but gradually increase. Modeling languages are not programming languages. The content expressed by modeling languages may be inaccurate because the excess details are not related to the modeling. Models with different levels of precision can be applied to various stages of the same project. Models for programming coding must be related to programming languages. Typical case is the use of high-level, low-expression models in the early analysis phase. As the development process is in-depth, the model used is increasingly refined, and the model that is ultimately used includes a large amount of detail, with high precision.
Description and implementation. A model can tell us "What" (explain), or tell us how a function is implemented - how to do "(Implement). Pay attention to this two aspects when modeling. What is important before how to do a lot of time research is to correctly analyze what system needs. An important side of modeling is abstracted on specific implementation details. There may be a series of related relationships between illustrative and implementation, where an explanation in a level is the implementation of it.
Explanation and exemplify. The model is mainly descriptive. The model is described by one by one, and these instances are only in an example in the model. Most instances exist only in part of the run. Sometimes, running instance itself is a description of other things. We call these mixed objects as a metamodel. Deeply see that anything is not a descriptive, which is exemplified, this view is not in line with the actual situation. One thing is an example or a description is not an isolated distinction, and most of the things can be investigated in a variety of angles.
Explain changes. There will be a variety of explanations in a modeling language. Semantic variation points can be defined - there may be a variety of explanations --- give each explanation a semantic change more, so that can identify which explanation is used. For example, the user of the SmallTalk language avoids multiple inheritance relationships in the system implementation model, as the SmallTalk language does not support multiple inheritance. Other programming language users may use multiple inheritance in model species. Semantic change points support a variety of specific implementation