Develop large-scale systems with the Rational unified process
English original
content:
The system software development of the system software development of the historical interconnect system development Lifecycle system development workflow and work product interconnect system, the development of the system in the interconnection system, the design model in the system consisting of the interconnection system is mutually The relationship between the system architecture system composed of information set interconnect systems in the system consists of continuous system composed of the system.
The Rational Zone is also:
All articles online courses
MARIIA Eriicsson 2004 History This article is written in accordance with the "Systems of Interconnected Systems" in the "Systems Of Interconnected Systems" in which Ivar Jacobson, Karin Palmkvist and Susanne Dyrhage is published in the 5-2-6 months of ROAD. This paper absorbed valuable experience in several large-scale system development projects and intentionally combines them with the Rational Unified Process (RUP) [2] and unified modeling language [3]. When the system consists of the interconnect system development large-scale system, its complexity will greatly increase. It not only requires you to understand a more complex work product, but you have to bear additional overhead because you need to manage more resources. This article describes a framework mode that helps manage new complex costs. The architecture mode is called a system consisting of an interconnect system during discussion elsewhere [4]. This architecture mode is useful when building large complex systems or highly integrated IT solutions such as commands and control systems. These types of "large systems" are divided into several different parts in most cases, and each part is independently developed as separate systems. The oversized system is implemented through a set of interconnect systems, while the interconnect systems communicate with each other and perform the responsibility of the oversized system. One of the systems reflects the overall performance, we call it superior system. The remaining system represents a part of the overall, we call the slave system. The secondary system is very different from the subordinate system that implements it. The relationship between different types of systems is clear: from the perspective of the superior system, the subordinate system is a subsystem, see Figure 1. Figure 1. The statute of the superior system is implemented by a system consisting of an interconnect system, wherein the system A, B, and C are implemented by subsystems A, B, and C of the superior system, respectively. Several benefits from the superior system and its subordinate system:
The slave system can be managed separately in all activities in the life cycle, including sales and delivery. By inserting the slave system into other systems composed of an interconnect system, it is easy to use the slave system to implement other superiors. When you start building a system, don't always know that it is not a system consisting of an interconnect system. You can start from the "simple" system view, decide whether to apply system modes consisting of interconnect systems in the late stage of life cycle. You don't have to develop a new version of the upper system, you can change the slave system. A new version of the superior system is required only when the main function changes. Each subordinate system has a set of related work products, and there is a clear traceability between work products. From the work product set of the subordinate system to the corresponding working product set of the superior system, there is also a traceability between them. Each subordinate system can be managed as an independent development project that has its own life cycle stage: initial phase, refinement phase, build phase, and transformation phase. If the "super system" is being built, it may be necessary to further divide the slave system to make it a system composed of an interconnect system. Software Development Life Cycle In the Rational Unified Process (RUP), the development life cycle introduces and discusss from two perspectives: Management angle and development perspective, see Figure 2. From a management point of view, developing a system or developing a new generation of systems must experience four life cycle stages. From the development perspective, you have developed an increasing system version with iterative way. The activities executed in the iterative process are divided into a core workflow in the Rational Uniform Process (RUP). Each core workflow focuses on an aspect of the system and finally forms a system model or document set. Figure 2. Iterative models extending it to the system of interconnect systems, superior systems and each subordinate system to undergo their own life cycle, and they are often treated as separate items. Figure 3. Each system, including the superior system, and slave system, you have to experience your lifecycle. Of course, there is indeed dependencies in the life cycle. How to correctly manage dependencies is one of the problems faced by the system consisting of interconnect systems. Dependencies have the following types: life cycle is related to time. The life cycle of the superior system begins. Once the superiors have experienced at least once iteration and the slave system is relatively stable, the life cycle of the slave system can begin. In fact, you may even know which one is the slave system before the superior system experiences at least one iteration. Once the interface of the slave system is stable, the life cycle of the superior system can enter the maintenance phase. This means that it does not actively develop unless the problem is required to modify the interface of the slave system. The interface of the subordinate system is mastered by a person who develops a superior system. For more information on the interface, see [3] and [5]. The class that implements the slave system interface is owned by the person who develops the subordinate system. System development workflows and work products have a natural premise, namely the superior system and slave system can be developed using the same work product set and through the same workflow, which is particularly typical when developing non-complex systems. In our continued explanation of how to implement this, you need to introduce work products and workflows. In the Rational Unified Process (RUP), we introduced five core workflows, see Figure 4. they are, respectively:
Business Engineering - The purpose is to assess organizations that are about to use the system, better understand the needs and problems of system resolution. The final result is to get a use case model and a business object model. This workflow is optional. If the organizational structure of the deployment system is too simple, the workflow may not increase value. Demand - the purpose is to obtain and evaluate demand, focus on availability. The result is generating an exemplary model, wherein the protagonist represents an external unit that communicates with the system, with an example represents a transaction sequence, providing a measured result value for the protracant. Analysis design - the purpose is to investigate the expected implementation environment and its impact on system construction. The result is generating an object model (design model), including use case implementation. These use cases implements how objects are communicating to perform use cases. The workflow may include interface definitions of class and subsystems, specify their responsibility in the operations provided. This object model is also transformed in terms of language, distribution, etc. to adapt to the implementation environment. Considering the analysis results as a separate model sometimes useful, then the model is called an analysis model. Figure 4. Each core workflow is associated with a particular model set. Implementation - the purpose is to implement a system in the predetermined implementation environment. The result is generating source code, executable code and files. Test - the purpose is to ensure that the system is consistent with the expected system, and there is no error in the implementation. It generates a qualified, ready-to-delivery system. The development of systems composed of interconnect systems We must complete work is to determine how to distribute a system between several systems, each system responsible for a clear defined responsibility subset. That is to say, the main goal is to define interfaces between these subordinate systems. After achieving the above main goals, the remaining work can be done independently of each subordinate system according to the principle of "divided into force". Therefore, in addition to testing the system after implementation, this is all the work we have to do for the system. How can the decomposition criteria decide whether system is decomposed into a system consisting of an interconnect system? Below is two features that should be worth noting: If the system has considerable scale and complexity, the problem can be divided into many small problems, which is easier to understand. Is it working on a physically independent system? This is often encountered when processing legacy systems or legacy frames. Decomposition helps to define natural interfaces and narrow interfaces between the components of the system. You can decide to use some important COTS (spot sales) products to implement a part of the system. Decomposition will help to clarify how you intend to use COTS products. Partitions can maximize the potential of distributed development organizations and clearly divide the work between several teams that are geographically dispersed. Consider the following risks include:
Over-segmentation can lead to problems that only see trees do not see forests. Using a physical separated system or physically separated team, there is a risk of killing any form of multiplexing, and finally get a rigid system. Organization should reduce the above risks, the key is to delegate a group of people to supervise the entire development. This group is often called the architect team, and they should focus on the following questions:
Define an overall architecture and subordinate systems comply with the architecture. Appropriate attention to multiplexing and experience sharing between subordinate systems. What is the relationship between production of work products and subordinate system work products and superior system work products have a clear understanding. Define an effective change management policy and get all the team observance. The architect team can (but not always) control the development of the superior system. For more fully discussions on organizations, see [6]. The lifecycle of the superior system First, you can choose to perform business projects to better understand the environment of your system. In the following cases, it can create value:
Developers need to better understand the organization, and the organization itself has different types of business operations, and the terminology and processes need to be unified, or software engineering is completed with business reconstruction projects. See also [6]. This work will produce a business case model and a business object model. Another way is to select a limited business engineering, focusing on key concepts in business areas, and record them in business model objects. This method is often referred to as a field modeling. Once a measures are taken to the business model, you will need to get the need for the entire system. We are the same as other systems that make up the needs of systems consisting of interconnect systems. The use case model is a very natural representation of the results, please refer to [7]. Considering the most straightforward way of the superior usage model is to assume that it fully acquires the behavioral needs of the system. However, there may be few such situations. Since we need to implement the system with other systems, the overall system is likely to be quite complicated. Therefore, it is not a good idea at this level. Thus, the superiors usually gives a complete but simplified system functional requirements. It is not necessary to be too detailed at this level, as detailed modeling will be performed in each subordinate system. Moreover, many needs are not necessarily visible in the superior cases divided into several subsystems, which is also the fact. Such demand can be said to be a "local" requirement of the subsystem. The purpose of the analysis design is to obtain a strong system architecture, of course, this is extremely important to the system consisting of interconnect systems. The developers of the superior system must obtain a strong slave system structure, but they do not have to be internally structured. Therefore, we use the concept of subsystem to model system division, divide the system into many smaller parts. In order to get the correct subsystem set, we have developed an analysis model between how to assign the responsibilities of the superior system between these subsystems. When executing advanced use cases, the analysis class should express the roles undertaken in the system. Therefore, the analysis model is similar to the advanced use case model, and a simplified view of the complete object structure is given. Combine functionally related analytical classes to different subsystems. Thus, the subsystem structure we get is ideal from it based on functional standards, for example, we have not considered any demand distribution. The existence of legacy systems is usually a factor affecting huge. Legacy systems may perform some or many responsibilities defined in the analysis model. The presence of these systems may also cause the duties discovered in the analysis to divide in order to maximize existing capabilities. The design results may be a subsystem structure, which is very different from the structural definitions defined by the analysis process. So we finally got a designed subsystem structure, and each subsystem will be implemented by a subordinate system (see Figure 5). In order to continue each of the respective development of each system, we define an interface for each subsystem. In fact, the definition interface is the most important event executed at the superior system level, because the interface provides the rules for developing the subordinate system. No need to define design classes, the only thing to do is to define the interface of the design subsystem. Implementation does not require part of the superior system lifecycle, and only perform some prototype design work, research system specific aspects of technology. The final workflow is a test, which refers to an integrated test when assembling different subordinate systems, and also tests whether each superior use case is implemented in accordance with its protocol. Figure 5. The upper system describes a model set, wherein the sub-system defined by the advanced design model will be implemented by the slave system. The interface of the slave system belongs to the superior system. To illustrate how to use the superior system, several iterative schedule samples are given below; one is an iterative plan for the superior system lifecycle first phase, and the other is an iterative plan for the extension phase. We use the activity map to describe the iterative plan. The action status in these figures corresponds to the workflow defined by the Rational Unified Process (RUP). Figure 6. A event diagram describing an example of an iterative plan for the primary system first phase. Figure 7. A event diagram describing the iterative plan of the superior system refining stage.
Since you have implemented a limited prototype implementation in order to study the relevant technical aspects of the system, there is an action status "implementation class". The lifecycle of the slave system is developed in normal ways, and it is considered as the protagonist to communicate with other system. As mentioned earlier, you can perform normal activity sets for each subsystem and develop usually used models. If the higher level model is defined in all details, complete recursive can be obtained between different levels of models, but as mentioned earlier, this is actually like this. For the dependent system, you need to perform a demand workflow. The interface and use case of the superior system will be the main input of you understand the boundary of the dependent system and its protagonist. When performing the analysis design of the slave system, the interface defined by the superior system will become "boundary conditions" along with advanced use cases. Figure 8. The subordinate system is described by their respective models. To illustrate how to use the slave system, the iterative schedule example of the two subordinate system lifecycle is given below. Figure 9. Example of the secondary stage iterative plan for the subordinate system. This is an incomplete iteration because no executable code is generated. Figure 10. Example of an iterative plan of the subordinate system. The focus of the extension phase is to complete the framework and the definition of the system. Use cases in systems composed of interconnect systems You should establish a use case model in the system, including superior systems, and slave systems, and systems composed of interconnect systems. They are related to the following ways (see Figure 11): Advanced use cases of the superior system are broken down into the subsystem (not necessarily, but usually). Each "block" will become a use case in the dependent system model, see Figure 11. From a slave system's point of view, other subordinate systems are the protagonist of its use case model, see Figure 12. Figure 11. The relationship between the advanced use case of the superior system and the detailed use case of the slave system. Figure 12. In the use case model of the slave system X2, both the slave system x1 and x3 are considered as the protagonist. There are some special precautions to describe the use cases of the superior system. Since in a sense, you will re-describe all the needs of each subordinate system, so these use cases are meaningless. Under normal circumstances, as long as the step-by-step outline of the advanced use event stream is enough, it is not necessary to disclose the details. In this use case model, any case relationship (general relationship, extending relationship, and inclusive relationship) should not be used. In general, it does not create value, the reasons are as follows:
You will not describe the advanced use case in detail, so you don't have to worry about the text appears in several places. In any case, the information structure needs to be established when you decompose advanced usage to "slave system". Will it have a puzzle with other constructor hybrids. But there is an important exception, that is, if you intend to find a reusable component in a system composed of an interconnect system. Establish a superior usage model to find a general use case model, which is a good way to find a reusable component. For more information on this topic, see [6]. The design model in the system composed of the interconnect system consists of the interconnect system, including the superior system and the slave system, including the superior system and the slave system, should have its own design model. The design model is related to the following ways:
The subsystem in the upper system design model defines the boundaries of the slave system. The operation defined for the superior system subsystem is the input to define the slave system interface. Description of the superior system design model is not as described in detail. Description objects include:
Subsystem, brief description. Implementation, use subsystem collaborative mode. The general method of recording these advanced use cases is to draw a sequence diagram. By drawing these graphics, you can define the "block" of the advanced use case on the slave system, see Figure 13. The operation of the subsystem. The interface definition of the subsystem. Figure 13. A sequence diagram of achieving superior use case A. The information set in the system consisting of interconnect systems Invested in a large amount of effort in understanding how to manage work products and how to correctly understand their dependencies. In the previous section, we specially discussed the dependencies and the dependence between the design model and the slave model model and the design model. Also consider some general dependencies. After a certain entitlement of the lifecycle, the system will produce work products that can be organized into information set [8], see Figure 14. These information sets to organize according to the work product evolved in the "Common". Depending on the application type being built, the exact content of each collection can be customized, but the collection remains unchanged. You need to understand the dependencies between collections, so that you can effectively maintain the traceability between work products. Figure 14. The life cycle of the system will generate an information set. In the system consisting of interconnect systems, the superiors and each subordinate system will produce their respective information sets, see Figure 15.
The slave information set has a dependency on the corresponding superior information set. Due to the different application types, the content type of the corresponding information set between the superiors can be different. The associated slave information set should be independent, just they obey the same subsystem interface defined by the superior system. The effort to be tracked on the traceability between the maintenance of the superior system and the working product of the subordinate system should be less. The priority of the traceability within the maintenance system should be determined. Figure 15. Each system in the system consisting of interconnect systems will generate its own information set. The system of the system consisting of the system consists of each system in the system consisting of interconnect systems, including superior systems and slave systems, should define their architecture. For superior systems, archives should include the following:
Key cases or scenes of the superior system. The hierarch of the system composed of interconnect systems. How to deal with multiplexing between the slave system and multiplexing content. General key mechanisms and implementation of all subordinate systems. For example, all subordinate systems should use universal communication, error reporting, fault-tolerant management mechanisms, otherwise the superiors will not be express as a similar system. For slave systems, architects should clarify the following questions:
The role in the system consisting of the slave system in the interconnect system. Key cases or scenes of the dependent system. The slave system uses a hierarchical structure defined by a system consisting of an interconnect system. In other words, it is the responsibility to define how the slave system is fulfilled in the hierarchical structure of the system composed of the interconnection system. Which generic key mechanisms are used, how to use and add key mechanisms for which applications dedicated. How to multiplex. Specifically, which subsystems are two or more subordinate systems, which mechanisms need to be established to allow the slave system to communicate. The relationship between the system You have seen that common system development activities can also be applied to systems implemented by interconnect systems. This is very advantageous because it means that you don't have to use a way to do so in a large-scale tribe of other systems. You can also use the superior system to separate the superior system to its other subordinate system. Each system in the system composed of interconnect systems has its own life cycle. Since each system may have a different feature, you can use different development processes to generate a system. According to the Rational Unified Process (RUP) [2], each system will have a different development case. Finally, pay attention to the independence between the systems involved in the system constituted by the interconnect: First, check the subordinate system. In the design model of the superior system, each subordinate system implements a subsystem. The subsystem relies on each other's interface, but it is not directly dependent on each other, please refer to Figure 12. Therefore, a subsystem in which a new version can be replaced, as long as the new subsystem uses the same interface, it will not affect other subsystems. You will have the same relationship between the slave system. Each subordinate system looks around the environment as an interface set. This means you can replace the system, as long as the new system is the same as the role played by other systems, such as the new system can be represented by the same interface. The system is referenced by each of the interfaces, which is specified by the correspondence between the subsystem and the interface in the superiors. In the use case model of the slave system, the interface of other slave systems interacting with it is represented as the protagonist. It can be said that the slave system regards the interface of another system as provided by the relevant protagonist, so it will never be directly referenced by other systems, see Figure 16. Note that in Figure 12, interface B appears, indicating that interface B is the subsystem in the superior system and the same interface actually referenced by the corresponding slave system. Figure 16. The subsystem of the superiors is only interdependent through the interface. Therefore, the implementation of the subordinate system has obtained the same independence. In the model of the superior system, the subsystem B provides interface B connected to other subsystems. Thus, the corresponding slave system B also needs the same interface B to other subordinate systems. What is the superior system situation? What is the relationship with the subordinate system? From the following aspect, it is independent of its implementation system: Each such system is only an implementation of the content specified in the superior system model, and is not part of the superiors. For actual reasons, in order to track the needs, you need to define the traceable link between the systems at different levels, and the most "simple" method is to define such links only between the interfaces, see Figure 11. In fact, it can even be said that the slave system is only provided to provide an implementation defined in the higher model. However, this is only true for simple systems. In addition to what happened in a specific interaction point, the interface did not specify anything. A subordinate system may have 100 interfaces, and each interface has 10 operations. In an interface description, it is impractical to associate an input of an interface with one or more outputs of another interface. This is why it takes an example to explain the semantics of the subordinate system. Conclusions can be concluded that each system involved is independent of other systems when a system is implemented by a system consisting of an interconnect system, but they seriously depend on each other's interface. This provides you with a good subordinate system parallel development platform. The architecture and modeling techniques of the system consisting of interconnect systems can be used in a variety of systems, such as:
The distributed system is large or complex system consolidated system of system systems for several business sectors. The distributed development of system systems of other systems can also be reversed: from a set of existing systems, the assembly system is defined by interconnection System consisting of system. In fact, in some cases, the early stage of the large system is developing in this way. You realize that you have several systems that can be interconnected, so that the system can create a "large" system, which can create more value than the two independent systems. I in fact, if a different part of a system itself can be considered as a system, it is recommended to define it as a system consisting of an interconnect system. Even if it is still a single system, due to distributed development, multiplexing or customers only need to purchase several parts of it, it will also prove that the system is necessary to divide several independent products. It is only necessary. An example. As a conclusion, we carefully analyze two cases of system architects that can be composed of interconnect systems. In each example, we will explain that the system in the discussion is to be considered as a single system, and as a collection of separation systems, it should be treated as a superior system implemented by a system consisting of an interconnect system. . Large-scale system telephone networks may be the world's largest system consisting of interconnect systems. This is a good example that requires two complexity of more than two system levels in the telephone network. It is also an example of such a case: the top level system is mastered by a standardized entity, and the different competition companies develop one or several subordinate systems that must meet the standard. Here, we will discuss mobile telephone network GSM (global mobile phone system), which illustrates the advantages of implementing systems that make large-scale systems as interconnect systems. The function of large-scale systems typically contains several business areas. For example, the GSM standard includes the entire system from the call user to the called user. In other words, it includes both mobile phones, including the behavior of the network node. Since different parts of the system is the product itself purchased, even by different customers, they can be used as a system. For example, companies develop a complete GSM system sell mobile phones to users and sell network nodes to the attendant. This is a reason for different parts of the GSM system as a different subordinate system. Another reason is that a large-scale complex system such as GSM is too long; different parts must be developed in parallel with several development teams. On the other hand, since the GSM standard includes the entire system, there is a reason to consider the system as a whole, that is, the superior system. This helps developers understand the problem area, and how different parts are related to each other. The distributed system is distributed in a system of several computer systems, using a system architecture consisting of an interconnect system is very suitable. As the name suggests, the distributed system consists of at least two parts. Since these systems must be clearly defined in the distributed system, these systems are also ideal for distributed development, that is, several independent development teams are parallel. The slave system of the distributed system itself can even be sold as a product. Thus, it is natural to treat distributed systems as a stand-alone system. The demand for distributed systems typically includes the functionality of the entire system, sometimes not pre-defining interfaces between different parts. Moreover, if the problem of developers is unfamiliar, they first need to consider the functionality of the entire system, regardless of how it will be distributed. This is two important reasons for treating it as a single system. Renewal Systems often reuse legislative systems. The legacy system can be described as a subordinate system. In order to understand how the legacy system works in the large environment of the superior system, it is necessary to "rebuild" a use case model for it, sometimes there is an analysis model. These reconstruction models do not have to be complete, but at least there is a legacy function that has a direct impact on the rest of the system constituted by the interconnection system, otherwise modification is required. Two or more pre-fabricated packages can be integrated and customized using a pre-produced package system. Enterprise Resource Planning (ERP) system is a typical example.
Many ERP systems are a combination of MRP (material resource planning), inventory management, supply chain management, etc. There are also similar combinations such as human resources and wages for human resources and wages. They are just like a prefabricated system, in order to get a complete system, they must dedicate their interconnections and other standards. For the role of understanding the assembly, we need the superior system. This is the situation facing many customers in the financial industry. Summary This paper proposes a system architecture mode composed of an interconnect system. This architecture mode not only allows recursive in a model, but also considers each subsystem itself as a system and allows recursive between all work product sets per system. The introduced architecture is used in systems that are implemented by several systems that communicate with each other. Each system involved is described by its own model set, separated from the model of other systems. The advantage of using this technique is obvious: to deal with quite complex issues and use the principles of "divided into trigures" to understand them. However, the disadvantage is that your overhead increases, and the progress cannot be synchronized. We also examine several examples, in these examples, organize that the superior system is difficult to use the iterative lifecycle, so that the risk is pushed to the end of the last system life cycle. You have to pay attention to perform a reasonable and efficient multiplexing policy to avoid developing a "rigid" system set. The examples given herein illustrate the system modeling framework composed of interconnect systems to be used in many applications. In fact, as long as the different parts of the system itself can be considered as a system, the architecture proposed herein can be used. Reference Jacobson, I .; Palmkvist, K .; And Dyrhage, S., Systems of Interconnected Systems, ROAD, 2 (1), 1995. Rational Unified Process Rumbaugh, J .; Booch, g .; Jacobson, i., UML Reference Manual, Addison Wesley Longman, 1999. Herbert A. Simon, The Sciences of the Artificial, MIT Press, 1981. Jacobson, I .; Bylund, S .; Jonsson, P., Using Contracts and Use Cases to Build Plugable Architectures , Journal of Object-Oriented Programming, May / June, 1995. Jacobson, J .; Griss, M .; Jonsson, P., Software Reuse - Architecture, Process and Organization for Business Success, Addison Wesley Longman, 1997. Jacobson, I Use Cases in Large-Scale Systems, ROAD, 1 (6), 1995.