Chapter 13 Surgery (9)

zhaozj2021-02-16  48

Chapter 13 Surgery (9)

335. Summarization The purpose is to filter, consolidate and abstract elements set attributes to their package containers to give a higher level, more abstract view of the system. See the package. Semantic package containers, such as packets, and classes, can have inheritance properties and contacts to summarize their contents and contacts. This allows the modelers to make more details in a higher level, so it is more easily understood to better understand the system. For example, dependence between two packages indicates that there is dependence between a pair of elements in at least two packages. Summary has fewer details than the original information. There may be one or more dependencies, which depend on the level of dependencies. In any case, the modeler knows the modification of a package that may affect other packages. If you need more details, once the modeler notice that the high-level summary can be carefully checked. Similarly, dependencies between two classes typically indicate dependence between their operations, such as a method in which a class is called in another class (not method!). Many levels of dependence is dependent from operation and attributes. Typically, the connection summarized on the package container indicates at least one content between the contents. Usually they do not mean that all of the included elements are involved in contact. 336. The father of the superclass generally contacts other classes - that is, more ordinary elements declare. The child class is called subclasses. The father class is called superclaments. See generization. The semantic subclass inherits its superclass structure, contacts, and behavior, and can be increased. 337. SuperType superclass synonymous name. More neutral term "father" can be used on any generalized elements. See generization. 338. The provider (Supplier) provides an element that can be excited by other elements. Contrast: CLIENT. In the representation, the provider appears in the head of the dotted line dependent arrow. See Dependency. 339. Swimlane, in order to organize the responsibilities of the activity and subjunction on the activity map. The lane does not have a fixed meaning, but they often correspond to organizational units in commercial models. See the Activity Graph. The active state in the semantic activity map can be organized into various parts based on their representation, called a lane. The lane is a packet consisting of the organizational activity map. Each lane represents a part of a particular meaningful state responsibility - for example, a business organization responsible for workflow steps. Models can use them under any suitable conditions. If the lane is present, they will divide the status of the status map. Each lane is made from a different name with other lanes. It does not have additional semantics in UML, but it can have some meaning of the real world. Active map can generally be divided into a lane, each lane separation from its neighbor lane by vertical solid line (Figure 13-176). Each lane represents some of the senior duties of the entire event, and the entire activity may be implemented by one or more objects at the end. The relative order of the lane is not as important in semantics, but may indicate some relationship in the real world. Each active state is assigned to a lane and replaced in a lane. The conversion may pass through a lane; there is no meaning of the route of the conversion path. Because the lane is divided into any directory, if the regional arrangement of the geometry is not feasible, it can also be implemented in other ways. You can use color or simple use of tag values ​​to indicate each divided area. 340. Synchron State) A special state that can be implemented between two concurrent locations in one state machine. See complex transformation, composite state, bifurcation (JOIN), State Machine, Transition.

Semantic composite status may consist of several concurrent areas, each area has its own order state area. Each concurrent area is active when entering a concurrent composite state. In each concired area, there is a control thread, each area independent of the other area (the meaning of concurrency). However, occasionally requires synchronization of controls between concurrent regions. One method is a conversion in a region with a monitoring condition for a state dependent on other regions. This approach is useful for mutual exclusion, including shared resources, but it does not have this situation: the activities in a region affect the consequences in other areas. In order to capture this situation, you can use the synchronous state. The synchronous state is a special state that connects two concurrent areas. The area can be peer - that is, two concurrent regions belonging to the same composite state - or they are nesting in the peer area. But these two areas cannot be connected in sequence. A conversion is connected to the input of a bifurcation of a region to the input of the synchronous state, and the other converts the output of the synchronous state to a combination of one in another area. In other words, the synchronous state is a buffer, indirectly connects a bifurcation in a region to a combination in another area. Bounding and binding must have an input state and output status in their respective regions. The excitation of the transition in the first area is synchronized until the combined conversion in the second area is excited. If the condition on the combined conversion is satisfied before the synchronous state is changed to activity, the combination must wait until the conversion in the first area is excited. In other words, it represents a conversion in the second area that can be excited until the conversion in the first area is excited. Note Because each bifurcation must have an input and output in its own area, the synchronous state does not change the basic order of each concurrent area, nor does it change nested rules to form a composite state (except for synchronous state. And its arc does not belong to any composite parent status). Producer-consumer problem is a typical example of the synchronous state. Producers inspire a conversion of a activation synchronous state, and consumers have a conversion that must require synchronization status before excitation. If the input conversion to the synchronous state is part of the loop, the first area may exceed the second area. In other words, the synchronous state may have multiple rings (terms using Petri network). Therefore, different from the normal state, the synchronous state represents a counter or queue (if the flow is flowing between the information is the latter - for example, the synchronization state is a target flow state). By default, synchronous states can have unlimited multiple rings, but the modeling can define a top boundary for the number of rings that can be brought by the synchronous state. If the ability of the synchronous state is exceeded, this is a runtime error. In most cases, this upper bound is unlimited or 1, the latter represents a simple latch. The upper bound of 1 is only used in the case where it is guaranteed without overrun. This is the responsibility of the modeling. If the closed composite state exits, there is a ring on the synchronous state, which will be destroyed. When entering the composite state, the synchronous state is empty. There may be a plurality of input arcs that enter the synchronization state, but they must be bifurcated from the same order area. Similarly, there may be a plurality of output arcs that leave the synchronous state to bind in the order area. Because each area is in order, there will be no danger of conflict between multiple arcs. The synchronization state can be an object flow state. In this case, it represents a queue that is transmitted from a region to another region. The representation of the synchronization state is represented by a small circle, labeled a separate upper industry in the circle, is an integer or an asterisk (*) means unlimited. From the synchronous strip (a heavy strip) symbol to the synchronous state, there is a conversion arrow, as well as a conversion arrow from the synchronous state to another area. As shown in Figure 13-77 The synchronous state is best painted between the boundaries of the two regions, but it is not always possible (two regions are not adjacent), in any case, the connection topology is not Embodiment. In one activity map, each conversion arc represents a state.

Therefore, an arrow can be drawn from the output of the bifurcation to a binding input without an explicit display synchronization state (but the synchronization state needs to display its boundary). Examples Figures 13-178 show a state diagram of the purchase situation. In addition to calculating the money after the selection, the purchase and payment are made concurrently. This synchronization is displayed by inserting a synchronous state between Pick SEATS and Post Charges. There is a bifurcation after Pick Seats because it has a Print Tickets and synchronous state. Print Tickets don't have to wait for synchronization. There is a combination before Post Charges because it must wait for Validate Counts and synchronous states. When print tickets and post charge are over, the composite state will end, and mial Tickets is executed. This synchronization state has a upper bound of 1. There is no need for a larger upper bound because there is only one synchronization every execution of the composite state. Figure 13-179 shows the batch form of the order fill in the processing process. In this variant, there are many fixed single lines. The order has a server to fill in and the money has another server processing. You cannot collect money before the order is filled in, but the order can exceed the money and make the synchronous state have an unlimited upper bound. This is a classic producer - consumer situation. Discussion Synchronous status provides minimal cost for producers - consumer problems, and is more secure than ordinary concurrent structures because each concurrent area always maintains a control thread. Because the concurrent status is quit, it will empty the synchronous state, so there is no overrun danger (if the upper bound is unlimited). However, if you use a synchronous state in a loop containing the branch, there is a hazard: an area has ended and the other area is still waiting for a synchronization ring that never reaches. If each state is waiting for the branch of the ring emitted from the other party, there is a possibility of deadlocks. There is no way to avoid such a situation in the concurrent system allowed to determine. Even if there is no synchronous state, the end is not guaranteed due to the existence of the problem. 341. Synchronous action Send an object to stop a request to wait for a response; a call. Contrast: asynchronous activities. 342. System (System) organizes a collection of connecting units that complete a certain purpose. A system can be described in one or more models, possibly through different viewpoints. The system is a "complete model". The semantic system is modeled by a advanced subsystem that indirectly contains a collection of the entire real world destination model elements. The representation system can be displayed as a package with a structural SYSTEM. But rarely needs to be used as a unit to display a system. 343. The select value of the tag (TAG) tag value. It represents the name of the attribute defined during modeling. 344. Tagged value is attached to a tag value pair with a certain information. Constraint, STEREOTYPE, see 14 chapters, standard elements, there is a series of predefined labels. Semantic tag values ​​are available on any element (including model elements and representation elements) to load various information, usually the semantics of elements are secondary and may be important to modeling companies. The selection is called a label; it is a string value. Each tab represents an attribute that can be used for one or more elements. On any element in a model, the label name can only appear at most. The value of the label may be various types, but is encoded as a string. The interpretation of the value is the agreement between the modeling and modeling tools. The tag value can be implemented as a query table that is indexed by the label to improve access efficiency. The label value represents any information expressed in text, which is often used to store engineering management information, such as the author, test state of an element, a test state, an important component of a final system (tag may be Author, Status and Importance).

The label value represents an extension of the metalance to the UML element class. This is not a fully applicable extended mechanism but is used to increase information to the existing metacclass for the benefits of the backend tool, such as code generators, report generators, and excitation. To avoid confusion, the label should be distinguished from the existing meta properties of the model elements they apply. You can use a tool to make this check. Some tags are predefined in UML; others can be user-defined. The tag value is allowed to attach any information to the extension mechanism on the model. Representation The value of each tag is displayed in the following way, and the tag is the name of the label and the value is a word amount. The tag value can be included in a list of inclusive, comma-separated properties, and other attribute keywords. A keyword can be declared to represent a label with a particular value. In this case, the keyword can be used separately. If there is no label, it is regarded as one of the other legal values ​​of the label. Example {Author = Joe, Status = TESTED, Requirement = 3.563.2a, support} Discussion Most model editing programs provide basic feature to define, display, and look up the tag value as a string, but do not need to expand UML Semantics. However, backend tools, such as code generators, report generators, can read tag values ​​and flexibly change their semantics. Note that the label value list is an old idea - for example, a list of properties in the Lisp language. The tag value is a method of attaching a non-semantic engineering and tracking information to a model. For example, the label Author may have an element of an element, and the label Status can have development status, such as INCOMPLETE, TESTED, BUGGY, and COMPLETE. The tag value can also be used to attach the control of the implementation language to the UML model without using the details of the language to the UML. Code generating flag, prompt, but notes can be encoded as label values ​​without affecting the low layer model. For a variety of languages, multiple labels on the same model are possible. Models editor and semantic analysts don't have to understand the label - they can be processed as a string. The backend tool, such as a code generator, can understand and process the tag value. For example, the tag value can name the container class that is used to overrunate the default implementation of the multi-value association. The tag value satisfies many types of information must be attached to the model, but it is not a complete meta-model extension mechanism. The label forms a flat namespace, which must adopt some conventions to avoid conflicts. They do not provide a method of declaring the value. Their purpose is not to be semantically expanded to the modeling language itself. The label is a bitmap model attribute, but they are not a metamodity attribute, and there is no cell model element that is normalized. The label is used, like the use of functions in the programming language library, may take a certain period of development, in which conflicts may occur between different developers. After a certain amount of time, some standards may appear. UML does not include "registration" of the label, nor does it provide this expectation: Early label users may retain them to prevent future use in other places. 345. Target Scope is an instance of a value or a categorical declaration. See the Scope Discussion The target range is mainly used to store classes as attribute values ​​or associated targets. Its use is limited. A separate vocabulary "scope" represents the owner range. 346. The state of the state machine formed by the Target State converted. After the object is processed, the object is in the target state (or the target status set, if it is one Multiple target status composite status). It does not apply to internal conversion because internal conversion does not cause changes in state. See Transition 347. Template (Template) A parameterized model element. To use templates, these parameters must be bound (when modeling) actually on.

Synonymous name: Parametric element. See Binding, Bound Element Semantic Template is a description of an element with one or more unbound form parameters. So it defines a series of potential elements, each element is binding the parameters to the actual value. Typically, parameters are classifications that represent attribute types, but they can also represent integers or even operations. The ancillary element in the template is defined in the form of parameters, so when they are bound, they are bound. The template class is a description of a class of parameters. The template may contain the default elements representing the template itself, as well as form parameters. An active class can be generated by binding the parameters to the actual value. Attributes and operations in the template class can be defined by form parameters. Templates may also be associated with its own parameters, such as association or generalization. When the template is bound, the result is the connection between the bound template class and the class being bound to the contact parameters. Template class is not a class directly available (because it has unbound parameters). It is necessary to bind its parameters to the actual value to generate the actual class. Only the actual classes can be used as associated fathers or targets (but allows from the template to another class). The template class may be a common subclass, which means all classes formed by the binding template are subclasses for a given class. It can also be a child of a template parameter; this means that the binding template class is a child who is being passed as a parameter. Parameterization can be used on other model elements, such as cooperation or even the entire package. The description given here is used in a significant manner to other model elements. The content of the model is not directly affected by the appropriate rules of the model. This is because they have parameters that have complete semantics until binding. The template is a secondary template element - not directly establishing a model, but is established for other elements. Therefore, the contents of the template are outside the semantics of the system. The result of the binding template is a common model element and a normal element in the target system affected by the fitness rules. A certain fitness rule of the template can be adapted by taking into account their binding results, but we will not try to list them. In a certain sense, its content is replicated, and the parameters are replaced by the actual value. The result is part of an effective model, as if it has been included therein. Other types of categories, such as use cases or signals, can also be parametric. Cooperation can also be parametric; then they become models. A small dashed rectangle is added to the upper right corner of the torque or other model element. The dotted rectangle contains a list of formal parameters of the class. Each parameter has a name and a class element. The list cannot be empty (otherwise there is no template), although it may be omitted in the representation. The name, attributes, and operations of the parameterized class are in a class rectangle, but may also include form parameters. The parametry element of other species is similar. The formal parameters can appear in the template to display a related class determined by a certain parameter. The syntax of the parameters is as follows: name: Type where Name is the identifier of the parameter and has a template range. TYPE is a string that specifies the type expression for the parameter. If the type name is omitted, it is considered that the result is a type of expression, such as class names, or data types. Other parameter types (such as integers) must be explicitly displayed, and the result must be a valid type expression. Figure 13-180 shows a template with an integer parameter and a class parameter. This template is associated with each of its parameters. Discussion The effective model is an implicit model formed by binding all templates. The template parameter is meaningless in the effective model, because they have been bound. They can only be used in the template range. This is enough to handle the composition elements contained in the parameterization element, such as attributes or operations in the parameterized class. There are more difficulties for elements outside the parameterized element. For example, a class may be associated or generalized to other classes. If those classes are the parameters of the template, they can't be part of a valid model, and they cannot be part of the ordinary class. Therefore, the parameterized element contains a body representing a model segment. The model segment is not part of a valid model. It is part of the template itself, which may contain template parameters, such as representing a parameter of a class.

When the template is bound, the body is implicitted, and the parameters are replaced by the actual value, and the copy becomes part of the effective model. An instance of each template increases the effective model. Figure 13-181 shows an example. The template implicitly includes an element that represents an instantiated template element itself - for example, a class generated by a binding template. This implicit element can be used to build contacts, such as association or generalization - template parameters. In this representation, the parameter draws in the template boundary, and the connection inside the template boundary represents a connection to the implicit instantiated model element. When the template is instantiated, these becomes the connection between the binding element (just generated) and the element (already existing and template parameters) in the active model. Templates can be children with other elements. This means that the binding element generated by it is a given element. For example, in Figures 13-181, each variable array is a array. So, Varray is a child of Array, Varray

is a child of Array, and so on. A template usually does not be a father of another element. This will mean that each element generated by the binding template is a father of other elements. Although some people will give certain meanings for this situation, this is not true. Two templates cannot be associated only because of the same name. (Do this means that the first template's instantiation is related to each instantiation of the second template, which is not usually desirable. This is often misunderstood by the authors of the past.) Parameters only in its own Valid in the template. Use the same name for a parameter in two templates that do not make it the same parameters. Typically, if the two templates have a parameterized element that must be connected, a template must be instantiated in another template. (Memolive, the template is implicitly instantiated in its own body. Therefore, both templates are effectively instantiated in vivo, so they are contacted between instantiated elements.) Figure 13-182 shows the definition One error in contact with a correct attempt - in this case, there is a parameterized pointer to the same type of parameterized array. Figure 13-182 A similar approach is to declare a parameterized class of children with other parameterized chemicals, which use the same parameters to bind. Another method is to instantiate both templates in a third-party template with only one parameter. This parameter is used to bind a copy of the other side template. You can then construct a correlation between the modified copy of the template. In most cases, do not need to do this, because contact can be declared in any template. 348. Thread (Thread) (from the control thread) After a single path executed by a program, a dynamic model, or a different stream representation. Also implement an active object to a structural type of a lightweight process. See an active object, a composite transition, a composite state, a Synchron, a Synchron. 349. Time (TIME) represents an absolute or relative time value. See Time Expression. 350. Time Event represents an event that is satisfied with a certain time expression, such as an absolute time or a package after the object enters a status of a given time. Semantic Time Event is an event that relies on the presence of the clock and depending on the clock. In the real world, the clock is implied. In the computer, it is a physical entity, there may be different clocks in different computers. Time event is a message from the clock to the system. Note that the absolute time or lapse time can be defined for the real world clock or virtual internal clock (in the latter case, there may be differences in different objects).

Time event may be based on absolute time (a day of time or clock setting in the system) or relative time (entering a state or after a certain time). Indicates that the normal time event is not like a signal as a naming event. Instead, the time expression is only used as the trigger of the conversion. Discussion In any actual implementation, the time event is not from the whole - they come from a system or a clock object outside the system. In this way, they have changed almost differently, especially in real time and distributed systems. In such a system, which clock is used must be solved - there is something like "real-time". (It does not exist in the real world - Ask Einstein) 351. Time expression (Time Expression) Its calculation results are an absolute or relative time value expression. Used to define time events. Most time expressions or events after entering a certain state or a particular absolute time occurred. Another time expression must be defined in a particular way. Indicates the method of passence. The event representative of a certain amount of time after entering the state of the converted state can be represented as a keyword After. After the After follows its calculated value (when modeling) is a certain amount of time. After (10 Seconds Since Exit from State A) If there is no statement, it is the passage time from the entry containing the conversion. Absolute time. Events that represent the absolute time can be represented as the keyword when, followed by a Boolean expression that contains time to enclose the inclusive arc. When (Date = JAN.1, 2000) 352. A indicator of the Timing Mark event or a message occurrence time. The time sign is in the limit. Semantic time labeled the formation of an expression based on the name of the message. In interaction, the message is given a name, and the time standard expression can be formed according to it. In the following expression, Message is the name of the message. Message.Sendtime () message.RecieveTime () represents the schedule is displayed as text. Example The following constraint limits the time required to form a dial-up sound. {Dialtone.sendtime () - offhook.sendtime () <1 second} 353. Tracking (trace) represents a historical development process or represents the dependency of the same concept, which does not have a rule that is from another inherited. A special model between an element. This is the least specially dependent form, which also has the least semantics. It is mainly used as a reminder to the thinking process of people during the development process. See Dependency), Model. Semantic tracking is one of the dependencies, indicating that the connection between the two elements of the same concept on different meanings levels. It does not represent the semantics in the model. It is a connection between the elements between elements with different semantics - the connection between elements on different models of different meanings. There is no explicit mapping between the elements. Usually it represents a connection between two ways of catching a concept at different development phases. For example, two elements of different variations belonging to the same subject can be connected by a tracking connection. Tracking cannot indicate the connection between the instance of the runtime. Instead, it is a dependence between the model element itself. The main application of track is to track the requirements that have changed during the development of the system. Tracking relies on elements of two models (such as use case models and design models) or different forms of elements of the same model. The representation is tracked by a dependent arrow with keyword trace (a virtual arrow, the tail is on the new element on the new element), but. However, usually in different models that are displayed in different sections, so in actually, in touch is often implemented as a hyperlink. 354. Transient Link only exists a limited time chain - such as an operation of an operation - a link. See Association, Collaboration, Usuage.

Semantics In the execution process, some links have a limited time. Of course, if the time span is large enough, almost all objects and chain lifetimes are limited. However, some links only exist in certain restriction contexts, such as during execution of a method. The process parameters and local variables can be represented by a temporary chain. It is possible to coordinate all such links, but in this way, the conditional conditions must be declared very roughly and lose the accuracy of the combination of the restriction object. Such a situation can be used to establish a model, and cooperation is a configuration of the object and the link existing in a particular context. The associated role from cooperation can be considered a temporary chain existing during execution of behavior entities (such as a process). It appears as use dependence in class model. To get a complete detail, you need a reference behavior model. The indicator temporary chain is displayed as an association with a structural type attached to the chain role to represent a variety of different implementations. The following configuration is used. Process Parameter Process Local Variable Global Variable (visible throughout the model or); if it should be trustworthy, it violates the object-oriented spirit. Self-link (the ability to send a message to yourself, implied in the object, only displayed in the dynamic situation with message flow) association (default, no statement unless you emphasize ); It is not a temporary chain, which is listed just for integrity. 355. Temption object only exists only during the execution of its thread. 356. Transition is used to represent a relationship between two states of a state machine, that is, an object in an initial state enters the second state by performing a specified action, of course, this conversion requires a certain The specified event occurred and the designated monitoring condition is met. In this change in this state, the conversion is referred to as an excitation. Simple conversion has only one source state and a target state. Complex conversion has more than one source state and / or there is more than one target state. It represents conversion that occurs in a series of concurrent active states or under a budging or combined control. The internal conversion has a source state but there is no target state. It represents the reaction of an event that is not transformed. Status and conversion is the vertices and nodes of the state machine. See the state machine (State Machine). Semantic conversion indicates that there may be some paths between all states in the life history of an object, and the action that occurs when the status changes. The path to the object that displays a state to react the occurrence of an event. Status and conversion is the vertices and arcs in the state machine to describe the possible life history of all instances in a class. Structure Conversion has a source state, an event trigger, a guardian condition, an action, and a target state. In the conversion, some may be missing. The source state source state is the state that is converted. If an object is in a source, and this object accepts the event's trigger and monitoring conditions, this state's external conversion will be excited. The target status target state is the active state after the end of the conversion, which is a status of the primary object to be turned. The target state does not use internal conversions that do not exist. Event Trigger Event Trigger is an event. After it is accepted by an object of the source, the conversion can be excited as long as the monitoring condition is satisfied. If this event has parameters, these parameters can be converted, or they can be used by the monitoring conditions and the expression of the action. Events triggering converts become current events, and can be accessed by concurrency, these and motivations are the steps of "running to completion" by an event excited. The conversion without a clear trigger event is called end conversion (or no contact), which is implicitly triggered at any internal activity in the state. The composite state indicates its end by reaching its termination state.

If a state does not have internal activity or nested state, the status is entered after any entry action execution, then the end state will be triggered immediately. It should be noted that the end conversion should be excited and must meet the condition of the care. If the monitoring conditions are not established when the end occurs, the implicit end event will be consumed, and even if the conditioning condition is set up, the conversion will not be stimulated. (This behavior is used to simulate an event) Note that all performance of an event of a state machine must have the same feature. The conditioning condition conditioning condition is a Boolean expression that triggers a value at an event of an event, including implicit end event pair of triggers ending. If an event occurs when the state machine is executing the "Run to End", this event is saved until this process ends and state machines. Otherwise, this event will be processed immediately. If the value of the expression is true, the conversion can be excited; if the value of the expression is false, the conversion cannot be excited; if no conversion is suitable for excitation, the event will be ignored. This situation is not wrong. Multiple conversions with different monitoring conditions can be triggered by the same event. If this event occurs, all guardians are tested, and if there is more than one monitoring condition, there is only one conversion to be excited. If there is no given priority, choose which conversion to excite it is uncertain. Note that the value of the monitoring conditions is calculated once when the event is processed. If its value begins to be a false, it will be true, the conversion is not excited unless there is another event that occurs, and the conditioning condition is true. Note that the monitoring conditions are not the correct way to continuously monitor a value. Modifying events should be used in this case. If the conversion has no monitoring conditions, the conditioning conditions are considered true, and once the trigger event occurs, the conversion is activated. If there are several conversions to activate, there is only one can be excited, and its choice is uncertain. For convenience, a monitoring condition can be dismantled into a series of simple monitoring conditions. In fact, this series of guardians can be a branch of a trigger event or a guard condition, each branch is a separate conversion, each conversion is different but is a valid conditioning condition (separate) The trigger event is triggered, which is a collection of all the guardians on the path of the trigger event ("and"). All expressions on this path get values ​​before the conversion accesses. The conversion cannot be partially excited. In fact, a set of independent conversions can partially share their description. Figure 13-183 is an example. Note that the trees of those guardians and reasonable ability to convert the conversion are only for convenience, because the same effect can also be implemented through a set of independent conversion, as long as each conversion has its dismantling condition. The action conversion can contain actions that describe an action. This expression is for process calculations, process calculations can affect objects of the owner of the state machine (and, indirectly, other objects will also be affected). Action expressions can use the parameters of the trigger event, and the properties of the object you have. During the entire "run to the completion", if the current event is included in the event, the outlet action, and the inlet action is excited, the trigger event is available. The action can be an action order. A single action is atomic - means that it cannot be terminated outside, but must be performed before any other action or event. The action should use the minimum duration to prevent the state machine to be aborted. Any event received during action execution will be saved until the action ends, the event accepted has also been obtained. Branches For convenience, several shared the same trigger events have different monitoring conditions to be divided into the same group because the model and representation are divided into the same group to avoid the same part of the trigger or the guard condition. This is only a convenient expression, and does not affect the semantics of the conversion. View the detailed description of its representation in the branch.

Representation The conversion is represented by a solid line arrow, from a state (source state) to another (target state), with a conversion line. Figure 13-184 shows the conversion between two states, as well as a case where multiple line segments are divided into one. Internal conversion is expressed as a conversion line inside the status flag. A conversion line has the following format: Name: Operation Event Name Operation (Parameter List) Operation [Monitoring Condition] Operation / Action List Operation Name can be used to reference conversion expressions, especially for forming a time standard. There is a colon. The event name is named an event, followed by a list of parameters. If there is no parameters, the parameter list can be omitted. Event name and parameter list are omitted for an end conversion. The parameter list has the following format: Name: Type table, guarding condition is a Boolean expression, consisting of entries such as parameters, attributes, properties, and objects described by the status machine. The guard condition may also include a test of the concurrent state in the state machine or test of the external state specified by a obtained object - [in Status 1] and [In State 2] are specific examples. The status name can be limited by the nested state containing their nested state, generating this form: State 1 :: State 2 :: State 3. In the entire state machine, this form can be used if the same status name is happened in different composite state regions. The list of action is a process expression that is executed when the conversion is excited. It consists of an operation, attribute, an entry such as an object's connection, a parameter of a trigger event. Action includes actions that call, send, and other types. The list of operations can include a plurality of semicolon-separated action clauses: action table; branch a conversion can include a line segment, and there is a trigger event accompanying the binding state, drawing a small circle. This is equivalent to a set of independent conversions, each of which is equivalent to each path of the tree, its monitoring conditions are all conditions on this path. Only one movement of the last line of each path can have. In the binding state, if it represents a bifurcation or combination, it can also be drawn into a diamond, which is not different in the sense. The discussion conversion represents the atomic changes from one state to another, or may accompany the atomic action. Conversion is uninterruptible. The action on the conversion should be short, usually trivial processing, such as assignment, declaration, and simple calculation. 357. The fourth phase of the transition phase software development process, in which the system is implemented in the real world environment. At this stage, the configuration attempts have been completed, and the remaining views that have not been completed in front of the previous phases are also completed. See the development process 358. Transition Time See the Timing Mark. 359. Trigger an event that causes a conversion to excite. Its name can be a norm (the event itself), or a verb (the incident occurred). See the end conversion, transition. Semantics Each conversion (except for end conversion is due to the end of internal activity), it involves it as part of the structure. If an event occurs when an object is in a state in which an external-directional conversion is included, and the transformed trigger is the event or the ancestors of this event, then this conversion is tested. If the conditions are met, the conversion can be excited; if the conditioning condition is missing, it must be satisfied. If there are multiple conversion satisfaction conditions, there is only one can be excited, and which one chooses may be uncertain. (If the object has multiple concurrent status, the conversion starting from any state may be excited, but only one conversion can be excited.) Note that the monitoring conditions are only when the trigger event (including implicit end events) occurs Test once.

If there is no conversion when an event occurs, this event will only be ignored. This is not a mistake. In a monitoring condition, or in an operation of a participating or participating in the inlet action of the target state, the parameters of the trigger event can be used. The entire step of "running to completion" after the conversion is executed, and the action in the conversion is available as the current event to the current event. In a subsequent segment of an inlet action or multi-segment conversion, the exact type of this event may not be known, so the type of this event will be identified in an action using a polymorphic operation or the situation. Once the type of determination is obtained, the parameters can be used. The name and feature of the representation of the trigger event are part of the conversion label. See Translation. The trigger event can be accessed in an expression defined by the reserved word "current event". This keyword involves a trigger event in a plurality of conversion first sections. 360. Triggerness Transition There is no clear event trigger conversion. When it leaves an ordinary state, it represents an end conversion, that is, this conversion is the end of the event and is triggered by a certain event. When it leaves a pseudo-state, it represents a conversion segment, which can be automatically passed, and if its previous segment has ended the action. The contactless transition is used to connect the initial state and historical state to achieve their target status. 361. Ordered list (TUPLE) a list of sequential arrangements. Typically, the meaning of this term is a list of similar formats (this is a standard mathematical term). 362. Type (TYPE) As an adjective: The class dollar that is declared in accordance with the value of a property, parameters, or variables must be retained. Its actual value must be an instance of this type, or an example of one of this type of descendants. As a noun: a structure of a class usually illustrates a series of instances (such as objects) and operations for these objects. Types may not contain any ways. Comparison: Interface, implement the class. Types and implementation categories can be configured to category or implement classes (although there is no differential for them). Types are used to illustrate an object's domain and for these types of operations, but do not define physical implementations of these objects or operations. The type may not contain any method, but it can provide operational instructions for these behaviors, and may include attributes and methods, which are for the operation of the operation. The type of properties and associations do not determine the implementation of its objects. One implementation class defines methods of physical data structures and objects, as implemented in traditional languages, such as C and SmallTalk. When an implementation class includes all the operations like the type of behavior, the implementation class is considered to implement a type. One implementation class can implement multiple types, while multiple implementations can achieve the same type. An attribute and association of a class do not have to be the same, like the type of type. Implementation classes can provide methods for operation in their physical properties and associated conditions, and can declare additional operations in other types. The object must be an instance of only one implementation class, which specifies the physical implementation of the object. However, an object is a plurality of types of instances. If the object is an instance of only one implementation class, this implementation class must implement all the types of an instance as an instance. If the dynamic category is available, the object can get and lose type during the lifetime. Through this type of type, a variable role is portrayed, and the object can be accepted, and then give up. Although the type and implementation class are not the same, the internal structure is consistent, so they become a model type model. They support generalization, alternative principles, and attribute inheritance, associations, and operations. The type can be dedicated to the type, and the implementation class can also be dedicated to implementation classes. Types can only be linked by implementing this behavior and implementation classes. Indication shows that there is no keyword when there is no obvious feature. The type "type" is "type" when the type is indicated, and the implementation class has the keyword "importation". Figure 13-185 shows an example.

Relying on the type of implementation of the class becomes a model by using the "implementation", it is expressed as a dashed line with real triangular arrows (a "dashed generalization arrow" or a "dependency relationship" that is "actually arrow"). This symbol represents inheritance relationships in operation, but does not represent the inheritance of the structure (attribute or association). Implementation can be used between any two types, and one of these classes will support another type of element, but the implementation of the type that relies on the type of type is a common use of this way. The discussion type and implementation class is some restriction concept, which is due to the concept of traditional programming languages ​​like C and SmallTalk. In UML, the concept of classes can be applied directly in a more comprehensive manner. UML provides support for multi-class and dynamic categories to remove distinctive needs between types and implementations. However, these differences are indeed useful when compiling code in traditional language. 363. Type expression is an expression whose value is a reference to one or more data types. For example, in a typical programming, a property type declaration is a type expression. For example, the type expression in the C is as follows: Person * Order [24] boolean (*) (String, Int) 364. No interpretation (uninterpreted) one placeholder, supplied to one or more types that are not defined by UML . Each non-explanatory value has a corresponding string to represent. In any physical implementation, such as model editing, implementation must be completed, so there is no explanation value. 365. Unspecified Value is not yet specified by the model. Discussing a non-specified value is not a value at a particular meaning, and in addition to its value is not required or its value is not related to those characteristics, the non-specified value cannot appear in a full model. For example, multiple properties are unknown; and it must have a value. If there is a lack of any knowledge, it is equivalent to a multiplex, so the semantics of UML do not allow or do not process the lack of values ​​or non-specified values. In another meaning, "non-specified" is a useful portion of the endless model. It does this mean: "I still didn't think about this value, and I have made it recorded so that I can give it a value later." Non-designated is an external, the model is incomplete status. This is a useful ability, and one of the tools can support it. It is relying on its original nature, such a value cannot appear in the completed model, and it does not pay attention to its semantics. When the value is required, the tool can automatically provide a default value for non-specified values ​​- such as when the code is generated - but this is just a convenient measure, not part of the semantic. Non-specified values ​​are concepts outside UML semantics. Simply, the default value provided for features does not have a semantic definition. There is only one value in the model. For newly created elements, tools can be automatically provided. Need again, this is just a part of the operation due to the tool, not part of the UML semantic. Semantic complete UML models have no default or non-specified values; only they have values. 366. Use (USUGE) a dependency. In this relationship, an element (customer) requires the presence of another element (provider) for its own current function or implementation - usually because of the reason. See COLLABORATION, Dependency, Temption Link. Semantic One-dependent relationship is such a condition: an element (customer) requires the existence of another element (provider) for its own current implementation or function.

All elements must exist in equally significant levels - means that they do not involve increasing levels (such as transformations between an analysis stage and a class of implementation levels) in abstract or implementation. Using dependencies often involve implementing level elements, such as a C containing files, which contains compiler results. Use can be further constructed to indicate the precise properties of the dependencies, such as an operation or instantiation belonging to another class or instantiation belonging to another class. The representation is represented by a virtual arrow (dependency) with keyword "use". Arrow in the provider (independent) element, while the tail is in the customer (dependent) element. Discussion uses to meet the temporary chain - that is, the connection between the instances of the class, this connection is not always meaningful or existed, exists in some contexts, such as one sub-process. In this case, the dependency structure does not model all information unless it does exist. The cooperative structure provides the ability to model this connection in all details. Standard element call, create, instantiate, and send. 367. Use (Use) Use the keywords in the representation of dependencies. 368. The order of the use case action, including variable order and error order, enabling a system, subsystem, or class to be performed by interaction with an external participant. See Participants (Actor), Classifier. Semantic use cases are a coherent functional unit that is provided by a class element (a system, subsystem, or class) displayed by a message. These messages and motions are executed in the system and one or more. External user exchange between participants. The purpose of the use case is to define a behavior of a class element (including a subsystem or the entire system) but does not display the internal structure of the class. Each use case illustrates a service of a user provided to it, i.e., a particular way for an external visible use class. It describes the complete order of initialization by a user interacts between user and class elements, and responses performed by a class element. The interaction here only includes communication between the system and the participants. Internal behavior and implementation are hidden. A total use of a class or system segmentation and override it, each use example represents a part of quantization, extentful and functionality available to the user. Note that users here include people, computers, and other objects. Participants are ideal things for users, not representatives of natural users. A natural user can map to many participants, and a participant can represent the same aspect of multiple natural users. See the participant (actor). The use case includes a conventional main line behavior that responds to a user request, and the possible variables of conventional order, such as intervals, abnormal behavior, and errors. Its purpose is to describe a coherent functionality in all of its changes, including all error conditions. A full-set example of a class indicates all the different ways of using this type. For convenience, the use case can be packaged. The use case is a description; it describes potential behavior. The execution of the use case is the use case instance. The behavior of the use can be described in an additional state machine or with the text code (the same as the state machine), or a informal text description can be used. Behavior can be illustrated by a set of options, but does not form. This may be enough in the early stages of development. The use case example is executed by a use case, initialized by a message from one instance of the participant. As a response to this message, the use case instance executes a series of useful examples to specify actions, such as sending messages to the participant instance, do not have to just give initial participants. Participant instances can send messages to the user instance, and this interaction continues until the instance has responded to all inputs. When it no longer gets the input, it will end. As a whole in interaction with the external participant, the use case is an explanation of the behavior of the system (or other type).

In the system of implementing behavior, cooperation implements the use case, the internal interaction between the internal objects is also described. Structure use cases can have class characteristics and contacts. The feature case is a class, therefore has attributes and operations. The attribute is used to represent the state of the use case - the travel of the execution case. One operation represents a piece of work that can be performed with an example, it is not directly taken directly from the outside, but can be used to describe the impact of the use of the system. The execution of the operation can be associated with messages from the participant. Operation acts on the properties of the use case, and indirectly acts on the system or class attached to the use case. The association to the participant's association between the participant and the use is indicated that the participant instance is communicating with the system instance or class instance, and has an impact on some of the results important for participants. Participants will model external users of the class, so that if this type of element is a system, its participant is the external user of the system. Participants in lower grade subsystems may be other classes of the entire system. A participant can communicate with multiple use cases - that is, participants can request multiple different services of the system - and if the service is provided, one use case can communicate with one or more participants. Note that the use case specified by the same system cannot communicate with each other, because any of these cases describe a complete use separately. They can interact indirectly by sharing participants. The interaction between the participants and the use cases can be defined using an interface. An interface defines an operation that can support or use a participant or use case. Different interfaces given by the same use case do not need mutual exclusion. The generalization of generalization links will be associated with the use cases and more general cases. Sub-use cases inherit the properties, operations, and behavioral sequences of thermal use, and can increase their own additional properties and operations. The child uses an increase in incremental behavior to the parent use by inserting an additional action sequence in any point to the parent example, which can also modify some inheritance operations and sequences, but this must be completed as any overload to make the father-use case The purpose is reserved. Extended expansion linkage is a dependency. The customer use case adds an incremental behavior to the base case by inserting an additional action sequence to the base sequence. The customer use includes one or more separate behavior sections. The extended contact contains a column extension name from the base case, which is as much as the number of segments of the customer usage. An extension represents one or a set of positions in the base case, and the extension can be inserted at this location. In the extension point, the expansion connection can also have a condition to use the properties of the parent case. When an instance of a parent use reaches a location referenced in the extended point of connection, the above conditions are judged; if the condition is true, the behavior segment in the sub-case in which it is constructed is performed. If there is no conditional constraint, it is considered to be true. If the extension contact has more than one extension, the condition is only judged by the first extension point in the first paragraph. Extended contacts do not create a new can be used. Instead, it implicitly adds behavior to the original case. Base cases include extended behavior. Unlasting raw basis is unavailable in its old forms. In exchange, if you extend a use case, you cannot implicitly use the basis for instantification when there is no extension. The use case can have multiple extensions, and these extensions apply to the same basis, and if their conditions are satisfied, one can be inserted into an example example. On the other hand, an extension can extend multiple base cases (or the same extension in different extended points), each on its correct extension point (or a list of extensions). If there are multiple extensions on the same extension point, the relative order they perform is uncertain. Note that the expansion case is not instantiated, and the propylery example must be instantiated to obtain a combined basis-addition-extension behavior. Extended use cases can not be instantiated, but no matter which case, it does not include alone examples. Including contacts are included in the control of one customer use case, the behavior order of the behavior of the provider use in the interaction order of a customer usage. And this customer use is at a location specified by the customer's description.

This is a dependency that is not generalized because the provider use cannot be replaced in the location where the customer usage occurs. Customers can use the properties of the basis for obtaining values ​​and communication results. The use case instance executes a customer usage. When it arrives, the executive case is started until the end. It then restarts the execution of customer usage, exceeds the location. Between different execution, the provider's use case has no value to not change. The use case can be abstract, which means it cannot be instantiated directly in a system execution. It defines a fragment of a behavior, and this behavior is a specific example transit or included; or it is an execution of a base case; if it can be instantiated by himself, it can also be specific. Behavior One The behavioral order of use can be described with a state machine, an active diagram, or an executable text code. The status of the state machine or the state of the code can call the internal operation of the use case to illustrate the effect of the execution. Action can also display messages sent to participants. The use of an example can be used as a form or plain text, but this description is not tight and can only be used in humans. The action of the use case can be explained during the operation of the call by the type described by the following. One operation can be called multiple use cases. Implementation of the implementation can be explained by a composition. The cooperation is to describe the implementation of the use case by relying on the object in the class described in the example. Each cooperation describes the context between the elements of the system, and there is one or more interactions in the system. Cooperation and their interaction define how objects in the system are interacting to obtain external behavior specified by the use case. The system can be explained by a variety of abstract levels. For example, the use case of the system can be redefined into a set of subordinate cases, each of which means a subsystem. The functionality described by the super (higher level) will be fully tracked to the functionality described by the subordinate (lower level). A super usage and a set of subordinate use cases describe the same behavior at different abstractions. The subordinate use case is the behavior of the super-use case, which is described by the collaboration of the super-use case, and can be represented in the cooperation plot. A super-use case occurs in multiple participants in multiple subordinate use cases. These relationships will achieve the results hierarchical in a set of nested use cases and cooperation in the entire system. The representation of the method is to be represented by an elliptical shape comprising the name of the case. If the attributes and operations of the use case must be displayed, the use example can be drawn into a rectangular class with a keyword "use case". Figure 13-186 shows an example of example. An extension is an entity named inside the use case, which describes the position of the action sequence from other use cases can be inserted. Extended points provide an indirect level between extensions and behavioral sequence text. The extended point references a location or a set of locations in the behavioral sequence of the use case. This reference can be independently changed for expansion links using this extension point. Each extension must have a unique name in the use case. The extension can be listed in the area of ​​the use case, the title is "extended". (Fig. 13-187) Communication connection between the use case and the participant is a solid line that represents the connection case and the participant symbols with an associated symbol. Because communications are the only association between participants and use cases, the keyword "communication" can usually be omitted. Typically, this connection is uniquely defined because the participant and the use case is uniquely defined, so the name or role name is not marked on this solid line. Ubensed Contact A generalized arrow indicates that a solid line from the child to the parent example, a real triangular arrow pointing to the father's use. Extend contact or contains a dependent relationship arrow with keyword "extend" or "incrude" indicates that a dashed line with an attachment arrow, pointing to customer usage. There is also a list of extension points in the extended connection (canceled on the figure). Figure 13-187 shows various use cases. Behavior Description Use example and its external interactive sequences are typically represented by a chart of a sequence diagram. This ultra-chain is not visible, but can be moved in an editor. Behavior can also be description with a state machine or with programming language text in an additional example. Natural language text can be regarded as an informal description.

See Extensions, as an example of some behaviors sequences. The connection between the use case and its implementation can be expressed as an implementation link, which is implemented from one to cooperation. However, because these links are often in different models, they are usually represented by an invisible hyperlink. The desired situation is that there is a tool that can support this ability: "Compression Enter" in an example to view its scheme and / or implementation of a cooperation. 369. Diagram of the relationship between participants and use cases in the same system (USE Case Diagram). See the participant (actor), use case. An example of a method of using an example is a set of participants, a set of associations, participants and use cases, connection between the participants and the use cases, and the sequenification of the participant, and the like. The examples are illustrated in the example of the element from the use case model (use case, participant). 370. Use case generalization is a class element relationship between a use case (sub-case) and another use case (parent), where the parent example describes the characteristics of the child use and other use cases, which The use case has the same father. This is suitable for generalization of use cases. The semantic use case can be specialized into one or more sub-cases, and use these use cases to represent more clear forms of the parent example (Figures 13-188). Because the use case is a class, the child use is to inherit all attributes, operations, and relationships of the father. The implementation of this inheritance operation can be reloaded by the cooperation of the sub-case. The use of the Verify Identity of the father-use case: the parent use is abstract, there is no behavioral sequence. A concrete descendes must provide the behavior as shown below. CHECK Password's CHECK Password: From the primary database Get password request Using password users to provide a password to check the use of Cryptographic case Retinal SCAN when the user logs in: Get a network-like feature of the main database to scan the user's network and get feature The primary characteristics and scan feature comparative sub-cases inherit the behavioral sequence of the parent case, and additional behavior can be inserted into the parent case (Fig. 13-189). The parent use and sub-use cases are potentially modified (if they are not abstract), while different specialties of the same parent use are independent, this is different from the expansion link, which implicitly limits the same basis. Behavior can be added to the child case by adding steps in the behavior sequence inherited from the actual use case, or can be done by declaring the sub-case declaration and the contact. If the parent use is abstract, its behavior sequence can be segmented, and these segments are explicit incomplete in the parent example, and must be provided by the sub-case. The child use can limit the steps of inheriting the furting example, but this capability must be careful due to the overloading of the method, as the intention to ensure that the parent case must be retained. Wide connection will use a child to connect to a parent use. Sub-use cases can access and modify the properties defined by the parent example. An alternative to use case means that the behavior sequence of the sub-case must contain the behavioral sequence of its parent case. The steps in the parent sequence sequence do not need to be adjacent to each other; the child use can insert an additional step in inheriting the behavior sequence of the autoforms. The use of multiple inheritance of the use case requires an explicit description, indicating how the steps are inserted into the steps in the behavioral sequence of the parent example to generate a sequence of the sub-case. Using an extensive can use private inheritance to share the implementation of the base case, not completely, but this function should be conservative. The representation uses a normal generalization symbol-a solid line from the child to the parent example, and the empty triangle arrow points to the symbol of the father's case. Examples Figures 13-188 show an abstract use case identity test and its characterization of two specific use cases, and the behavior of the use case is shown in Figures 13-189. Use an example instance (Use case instance) is performed by a sequence action specified by a use case. User case. 372. Use an example model (User Model), which describes the functional requirements of the system or other class dollar on the project. See the participant (actor), use case.

The semantic usage model represents the functionality of a system or other type of element, which is manifested as an external interaction with the system. The use case model is displayed in the case. 373. Use case view refers to the aspect of the system that is related to the designated behavior in terms of use. A use case model is a model that is concentrated in this view. The use case is part of the modeling concept of loosely, like a dynamic view. 374. Utility A type of constructor, which groups global variables and processes in the form of class declarations. The attributes and operations of utility have become global variables and global processes, respectively. The utility is not a basic modeling structure, but it is convenient for programming. It has no instance. The inability of semantic utility is global variable, and the utility operation is global operation. Since as a class member, the global attribute and operation can be better modeled, the effectiveness is not required for object-oriented programs. This structure is provided in order to be compatible with language-oriented language, such as C. Indicates that the method is expressed as a class symbol, and there is a structural keyword "utility" above the class name. Attributes and operations represent a global member. There is no statement in the symbol here. 375. Value See Data Value. 376. Vertex) In the state machine, one source or target is converted. The vertex can be a state or a pseudo-state. 377. A view of the view (VIEW) model, which can be seen from a perspective or advantageous location, and it omits the entity-independent entity with this perspective. This word is used herein not to represent an explanation element. Instead, the semantic model and the image of the visible representation include it. 378. Visibility (Visibility) A enumeration, its value (public, protected, or private) illustrates whether the model elements it involve are visible outside its namespace. See Access (Acess), as a discussion of a visibility rule applied to the package. Semantic visibility declares the ability to model an element to reference an element, this element is in different namespaces with reference elements. Visibility is a part of an element and a connection between its containers, and the container can be a package, class, or some other namespace. There are three predefined visibility. Any element of the public can access the elements indicated by the package container if the container is accessible. Protected only the elements in the container or children of the container can access the pointed elements, other elements cannot reference or use it. Private only elements in the bag container can access the pointed elements. Other elements, including elements of children with enclosed, can not reference or use it. The type of visibility can be defined for some programming languages, such as the Implementation visibility of C (actually, all non-public visibility forms are determined by language). Use additional selection must rely on the agreement between the user and the modeling tool and the code generator. The representation of the visibility is represented by a specific keyword or a marker before the model element. Public protected # private - visibility tags can be canceled. The lack of visibility markers Description Visibility is not displayed, not unfained or public. Even if the visibility is not displayed, there is also a tool to give the visibility assignment of the new element. The visibility tag is a quick method for complete form of a string for a visibility. Visibility can also be described with keywords (PUBLIC, Protected, Private). This form is commonly used when an internal table element is applied to a fast attribute or other table element. Any language-specific or user-defined visibility must be described with a specific string or with a tool proprietary agreement. In a class, the visibility label is on the table element, such as attributes and operations. This indicates whether other classes can access these elements. Associated in an association, the visibility label is on the role name of the target class (through the visibility setting, the end end of the access). This indicates whether the distal class can reach the end of the visibility mark by associating. In a packet, the visibility label is labeled directly on the elements contained directly to the package, such as class, association, and nested packages.

转载请注明原文地址:https://www.9cbs.com/read-25103.html

New Post(0)