7.3 forming a team structure

 
After the first few levels of the framework module breakdown structure is quite stable, you can put these modules assigned to the development team. The results obtained are assigned view is the work discussed in Chapter 2. The view module assigned to an existing or developing unit, or to define a new cell.
 
As early as 1968, the close relationship between architecture and its developers attracted the attention of the person in the soil. [Conway 68, 29] have done as set forth below:
 
Take any two nodes x and y in the system. They are either connected by a path. Either not connected. (That is, in some way, or they can affect the operation of the communication system, or no such communication.) If there exists a branch, is responsible for the development of the two nodes X and Y design team certainly has been negotiated, and reached an agreement on the communication interface specification two nodes. On the other hand, if no branch between two nodes x and y, then there is no communication between the two subsystems, thus these two development teams will not require negotiation, there is no branch between x and y .
 
Conway described the purpose of doing this is to show how the structure distinguish structures and systems development organizations Jian to (at least from the communication path in this regard), but the relationship between the two structures structures and systems development organizations is two-way, two-way and this is necessary.
 
The impact on the organizational structure of the framework is obvious. Once the architecture of the system to be developed by a consensus, it is necessary to develop a large allocation of each module to each team, which gave rise to reflect the various groups work breakdown structure. Each group can be carried out according to their mode of development (or with a predetermined pattern to develop the entire system). For large systems, which can concurrently occurring inch group belong to different sub-supplier with concurrency. Development practices may include the following items, such as bulletin boards and Web for communication, for naming files and with the quality control system. All of which may vary with different development teams and different, especially for the development of large systems. Moreover, to establish a quality assurance and testing procedures for each group, each group also needs to establish contact in order to coordinate with each other.
 
Therefore, the organization of the teams responsible for each module with concurrency. Within the team needs to have a mechanism of communication very easy: playing need to share information in the form of a large number of mountain detailed design decisions frequently now. In between each group, there will be no need to communicate so much, but this communication is also critical (Fred Brooks believes that if not carefully managed communication overhead between the teams, project development may cause trouble). Of course, assuming the system has been designed for a reasonable separation problems.
 
Failure to meet these design criteria, the system will be very complicated. In fact, the development team structure and control of inter-group communication is an important factor affecting large-scale projects with concurrency and success. If communication between teams is indeed complex. That means between these elements to be developed by the group interaction is too complicated, or is not sufficiently clear demand for these elements before developing. In this case, not only requires a lot of communication within the team, but also frequent exchanges between the groups. This requires a lot of consultations, and often need to redefine the elements and their interfaces. Like software systems, the development team also should strive to be loosely coupled, highly cohesive.
 
Why development team structure reflects module breakdown structure? Design principle configuration of the modular decomposition - - Implicit information Zang principle requires each module may change the details of the encapsulated or hidden, that is, to establish a variable details removed, its users (this is the other modules of the system ) provides a common and consistent set of service interfaces. This means that each module constitute their own small areas: Here we use the "field" to refer to a specialized field of knowledge or expertise. This helps the same, as the following example structure between the group and the modules exploded naturally reaches shown:
 
• the module is a user interface of the layer system. It provides to other modules application programming interface independent of the specific user interface components (radio buttons, dials, dialog boxes, etc.) for providing information to users, since these components may vary. Here is a collection of such art user interface component.
 
• The module is hidden process scheduler and the number of available processor scheduling algorithm. Here is the field of process scheduling and various appropriate algorithms.
 
• The module is A-7E system architecture (Chapter 3) a physical model module. The module is used to count the grate thereof
Equation certain values ​​of the physical environment encapsulated. Here is the field of numerical analysis (because these equations must be implemented in order to ensure sufficient accuracy on a digital computer operations) and avionics.
 
The module is seen as a very small field makes us realize that the most effective way to give full play to the ability of developers everybody is reasonable arrangements according to their expertise. Only modular structure allows it. The following quotation will be talked about, sometimes Development Organization panel independent of the frame structure will be added.
 
Concurrency and sister organization of more subtle architecture carved ring, but it is just as important influence on the development of architecture and organization (that is to build the system architecture group described) of. Let's say you are a member of a database application development team, was assigned to design an application architecture in small cyanosis. Then you will most likely be seen as a problem facing the problem of data-built house. Consider what kind of number noted in the library system should be used or whether it should build their own database systems, or data access is assumed
And other issues in the form of inquiries carried out. So you advocate for data storage and management, and implementation issues such as the form of the query are using a variety of different subsystems. Members from the telecommunications group Telecom's perspective on the system. For this man, the database (probably not interested in it) is only a subsystem of it.
 
Chapter 1 discusses organizational issues, how previous experience and the desire to adopt or some concurrency and skills will affect the architecture, the above scenario is how this influence will be reflected in a concrete example. With the organizational development work in a particular area continues, it will form as a means of further contract business - some products, and will have a dedicated team to maintain these products. We will discuss this issue in Chapters 14 and 15.
 
7.4 Creating a skeleton system
After the framework has been fully designed, and the team is ready to start building the framework, we can construct the skeleton of this system - idea stage to provide a basic ability to - kind of project to achieve favorable order function of the system.
 
The classic software engineering practices recommended to separate the various parts Qing Xi area code in order to be able to add the respective parts of the system and the system for independent testing. However, what parts should be independent? If the framework to guide, implement the order is more consumer clearly.
 
First of all, realize software part of the implementation process architecture and interactive components. This may require the generation of real-time scheduler system: to achieve a rules engine (with a prototype set of rules) to control the excitation rules in a rules-based system: multi-process system process synchronization mechanism or client / server system collaborative client / server. Please usually under conditions, basic interaction mechanism is provided by a third-party middleware, in which case the task becomes install rather than implementation. In the top of the communication or interaction infrastructure, you may want to install the simplest functions, which only provoked some fixed behavior. At this point, you have a running system. This provides the basis for adding useful features.
 
Now, you can choose which elements to provide added functionality to the system. This choice may be made based on the following factors: First, the most problematic part of the process to reduce risk; or the type and level of concurrency and existing staff: as soon as possible or useful products to the market.
 
After selecting the next increment of a functional element, can be employed using a structured (Chapter 2), in order to know what software should be used in the system to support this feature (with opposite placeholder).
 
With the increment of the process continue, more and more, until the software is completed with concurrency. At any time, integration and testing tasks are not many, are easy to find the source of the error recently introduced in each increment. When developing with smaller increments, the predictability of budget and schedule stronger, and therefore, management and marketing activities easier.
 
Even to distinguish Jian part of the code will help pave the way for the complete system Jian hair. These stubs are eventually follow the same system interfaces required. Therefore, even if the lack of KBA really function, they also contribute to understanding and interaction between test components. These stub components can simulate this interaction in two ways: non-hard-coded to generate creative output (real predetermined output coded), or read from a file output. They can also generate the system - comprehensive load to estimate the time has completed the development of a working version of the actual processing needs. This helps in the understanding of the early system performance requirements, including interactive performance and bottlenecks.
 
According Cusumano and Selby said, the evolution of life is the basis for the delivery of the strategy adopted by Microsoft. Microsoft Corporation When using this method, to create a "complete" skeleton system in the early stages of product development, and frequently (often overnight) can re-create the "work" but there are gaps in the system and the final system . The effect of this practice is good, you can get a working system, and you can always say that the properties of this system of work had been enough, and then launch the product. But the problem is that the first part of a development team to complete the system to make the definition of the interface, and the subsequent development of all subsystems have to meet this demand playing interface. This is actually more complex part of the system will be detrimental, because they need to play more analysis, and therefore less likely to make its defined interfaces. This will make the complex more complex subsystems. Therefore, we suggest you first skeleton subsystem interface to consult, and then use the skeleton system to improve development efficiency.
 
7.5 Summary
Framework must be designed according to the needs analysis, architecture design but need not begin in demand after the analysis is complete. In fact, the framework identifies key drivers, you can begin to design the architecture. When designing a sufficient portion of the rear frame (once again explain the framework necessary to wait until the design is complete), you can develop a skeletal system. The skeletal system is the frame (and its ability to deliver at any point a) above iterative development.
 
Quality property scene and tactics Chapter 4 and Chapter 5 describes the architecture design is critical. ADD is a top-down design process, it needs to use quality attributes suitable framework to define the mode and used by the functional requirements of the instantiated model given module type.
 
Determining a communication path through the frame necessary. Determines some level of organization. Existing organizational structure through the provision of expertise and a vested interest in the organization department, also had an impact on architecture.
 
7.6 can further refer to the literature
[McConnell 96] will deliver the evolution of life as a software development life cycle model of "first-class" model is described. Its purpose is to support time-to-market pressures and functionality of the product with different priorities of the organization, because it will be able to organize any iteration of the product advertised. When combined with the system's skeleton structure, and focus on the use of the structure, we can achieve the characteristics of a particular product release, to maximize the impact on the market. "
 
Christopher Alexander on the pioneering work of architecture (building type) design pattern laid mold design software
Basic type of work. His book [Alexander 77] is a must-read thing to understand and learn design patterns. (These books are also helpful for building.) 
 
About software design patterns, the author most frequently mentioned is the so-called "Gang of Four" [Gamma 95]. [Buschmann 96]
A set of frame styles filing for the design mode, so put the two link up.
[Brooks 95] is a must-read reference book for all software engineers, revised edition of the book was to discuss the merits of iterative development framework based, in particular, also to Microsoft's practice example described.
[Bosch 00a] is provided a method different from the ADD architecture design, the method first consider partitioning to implement the functions, and then converting the divided to achieve other quality attributes.
[Kruchten 00] on the Rational Unified Process is described. [Cusumano 95] Microsoft's development practices are described in detail.
 
7.7 Discussion Questions
⑴ framework affecting the development team responsible for the development of each module, and developed these modules make up the framework. The development team is usually reflected in the structure of the framework is modular decomposition. If other common structures (such as process structure) on the framework level as a basis for the development team, and what advantages and disadvantages?
(2) ADD provides a "blocking" demand approach. Architecture drivers have been met, must also meet other requirements in the environmental design program developed for these drivers. Design strategy is to break down, what other adhesion method? Why not use a decomposition meet all these needs?
 
 
 
 

Guess you like

Origin www.cnblogs.com/mongotea/p/11985977.html
Recommended