[ZT] Practice of software and demand (Lin Xing "IBM DeveloperWorks")

xiaoxiao2021-03-06  115

Software and demand practice (1) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------- Lin Xing (reproduced from "IBM DeveloperWorks") from monkeys It is said that there is such a joke: a pet shop in Silicon Valley, browsing the pet. At this time, I walked into a customer, saying to the owner: "I want to buy a C monkey." The owner nodded, went to the shop of the store, caught a monkey, handed it to the customer: "Total $ 5,000 "Customer pays the payment, then takes away his monkey." The passenger was very surprised, went to the owner and said before: "The monkey is too expensive!" The owner said: "The monkey can use C to program, very fast, the code is compact, so there is so much money." The passenger saw another monkey in the cage, which is worth 10,000 dollars. So asked: "That is more expensive! What can it do?" The owner replied: "Oh, that is a C monkey; it will be programmed for the object, you will use Visual C , you can also understand a little Java, very useful "" The passenger wrapped over and found the third monkey, it exclusively a cage, the price of the neck was $ 50,000. The passenger took a breath and asked: "The monkey adds up more than all other monkeys! What can it do?" The owner said: "We don't know what it can do, but it is a project consultant. "Although this is just a joke, it is certain that it is very important, project management is very important, and the talents of project management are extremely lacking. In countries developed in software industries, how many of you know the importance of software engineering planning. In Taiwan, India, Japan, there is no shortage of software groups who have successfully implemented software projects, and more don't have to say that as a software big country, it has been getting rid of from lower-level software, enters the realm of design and marketing. . Software is first a product (software is a service or product issues, no conclusion), see the development process of manufacturing in the world, will find some interesting phenomena. In this era of this century, the manufacturing industry in Western countries has experienced the process of promoting productivity, improved quality, etc. However, due to the continuous climb of human resources in Western countries, it is increasingly difficult to reduce product costs, so Western countries can inevitably have experienced the process of migration of manufacturing (the result of manufacturing outgoing) has dropped sharply. Trade is frequent, the country that has accepted manufacturing has developed its own manufacturing), while Western countries leaving only marketing and design capabilities, mastering the focus of product production. Similarly, the IT industry is also experiencing this process: the United States outsourced software to Taiwan, hardware. China's hardware is also rising, but the gap between the software industry, China and other countries is too big, and does not say that in the software industry is at the core status operating system, database. Even if the application software, China's software level is also low. When the foreign manufacturing has just moved into China (reform and opening up), China's small entrepreneurs also did not have any management experience and quality awareness. However, with the development of the manufacturing industry and the entry of foreign advanced ideas, China also has born a very excellent global manufacturing giant. China's software industry is now in just a point of management ideas, but there is still no mature point.

We have reason to believe that China will also have excellent global software companies in the near future. It is still necessary to consider the problem of reality. Software This product is very strange, and the software company's management thinks is equally strange. Unlike the various management ideas of the current enterprise, the management ideas of software companies are mainly for the management of the project to ensure the success of the project. Projects and demand jokes correspond to the project refer to project management personnel, here to introduce a role concept (the same person can serve as a variety of roles), the usual project management role includes: project manager, project recurrence, change Control manager, enterprise process analyst, business model designer, demand analyst, demand reviewer, system analyst ... in a successful project, a variety of role duties clear, division of labor cooperation, and complete the design implementation of the project. So this? Quot; monkey "What did you do in the project? RUP (Rational Unified Process Rui Ji, this article adopts many RUP ideas) divide a project into 10 core workflows and The 4 phases (Phases) and a project view is established in the X-axis as the core workflow. (Figure 1).

This article will introduce the first phase. In the first phase, the demand is heavy, the demand referred to here is not only a workflow of RUP (under business modeling), but is more general concept, including business modeling in RUP workflow. , Demand, partial analysis, test plan, configuration, and change management. Demand is that the project rework caused by ignore the demand process is malignant, and a large number of projects have failed in the demand phase. The following is a typical example of the demand process: 1. The developer has buryd his head in two or three days; 2. Users tell the developer I want to develop an XX system, but I am very busy, you first develop a first Look; the above two attitudes mean that the project is unsuccessful, it should be said that the above developers and users should be responsible for it. Demand is a process of developers and users interaction, and the no input of any party will lead to the failure of the project. Of course, because users are not professional, developers have the right to tell users to treat the needs of the project. I have talked about the projects developed by their company and finally draw a conclusion. All the most successful projects have an important feature: users are very support. The standard of judgeting a software project is to see if it solves the user's problem, and the user's problem is to reflect the needs of users, and demand is also a success standard for the project. Any inadvertent demand phase may lead to a lot of rework in the software implementation stage, and the demand is not cautious, because you can be careful, because many demand is hidden, even users don't know their needs. At this time, there is a scientific approach to help software organizations implement a demand process. The demand is the master of the change. "There is no constant demand, the software in the world has changed more than 3 times, the only owner of the software that only changed two times is dead, death is going to revise the demand." Currently What kind of problem with many software projects? Earlier ERP companies found that the original ERP system needs to improve when the company developed, but to improve or change the existing ERP system, the only way is to revisit an ERP system. This is a small expenditure for companies. At this point, the backward information system has become an important factor in restricting the development of enterprises. What is the reason for this situation? The main factors are traditional system analysis to be carried out in the case where the demand is constant, which can be configured to the optimal extent. However, in modern instantaneous society, a company is in an old model, which will be in a disadvantage in the competition (so now "componentization" ERP, this is an external number). Since the needs of enterprises change, unstable, the enterprise information system established based on changes in the change is of course unstable. At this time, there is a problem, and we have said before, the demand is the foundation of the project, since the demand is unstable, why is it to establish a stable corporate information system? To answer this question, you must first compare the differences between the process and object-oriented development methods. The traditional process-oriented development method has a road to the top 20 years, and set up the horses of the Chinese enterprises. The reason is called the oriented process, because the development of the focus focuses on the process, developers focus on the process of function as the core, such as many people try to write some universal transfer functions to meet the needs of the bank. Process development languages ​​include: Cobol, Pascal, C, and C deformed languages. Object-oriented concepts are in China in nearly 10 years, and their thoughts have not really spread. Simply put, object-oriented is the world, anything in the world is an object, so it is a natural idea that is very natural, which is in line with our thinking habits.

Object-oriented languages ​​include SmallTalk, C , Java, as well as Object Pascal, and C # just born. Demand is unstable, is there any stable thing in the demand? Yes, it is an object. The world is consisting of objects, while the objects are lasting, such as animals, plants have a considerable time. Although objects are also changing, animals, plants are constantly evolving. But the object exists in a quite long period, and the existence time of animals and plants will certainly be longer than any company. The essence of object-oriented development methods analyzes the stable object of enterprises from the instability demand of enterprises, and organizes demand based on corporate objects, and architecture systems. The system thus derived is much more stable than the traditional system, because once the company's mode changes, it is only necessary to reorganize the stable corporate object. This development method is called OOAD (Object Orient Analysis & Design object-oriented analysis and design), and the analyzed corporate object is called Common Business Object. What demand is to define the work of demand workflows in RUP: 1. Customers and other relevant people * reached and maintained in the system's work content. 2. Make system developers more clearly understand system needs. 3. Define the system boundary (limited). 4. Provide the basis for the technical content of the plan iteration. 5. Provide the basis for the cost and time required to estimate the development system. 6. Define the user interface of the system, focusing on the needs and objectives of the user. * Zhou: All people are all people who have affected by the project. Such as customer (or customer representative) users (or user representatives), investors, shareholders, production managers, buyers, designers, testers, document staff, etc. From the above purpose we can rush to what to do during the demand process. In fact, the demand process is to illustrate the demand process, which is to determine what the system is doing and what conditions. Although it is simple, it is not so easy to achieve it. So scientific demand process has a complete set of complete theories, tools, methods to achieve. Just like any company must have a profit, there must be a business and a management process, and the demand process is divided into a demand analysis process and a demand management process. The business's business is a profitability, the demand analysis process is also output in the project; enterprises must guarantee the business to be managed, and the demand analysis process also cannot be separated from demand management. Small businesses have not become the management method of the system. When the company is small, it can be dealt with, but the enterprise is large, all kinds of problems have followed, and the insufficient management directly leads to the inefficiency of business. Similarly, the shortcomings of demand management may cope with small software projects, but for large projects, the insufficient management will expose, and direct consequence is the failure of the project. Instruments out, many people think that the demand management is to control the demand process, this is not wrong, but in RUP's idea, more important thinking is iteration. The purpose of iteration is to develop, in order to evolve, in order to improve. So the software life cycle in RUP is divided into multiple iterative cycles. * Iteration: Iteration includes all other peripheral elements that generate product issuance (stable, executable product versions) and all other peripheral elements to use. Therefore, in a certain extent, development iteration is a complete process of completely passing all workflows: (at least) requirements workflow, analyzes design workflow, implement workflow, and test workflow. It is essentially similar to a small waterfall project. The main thing for the demand analysis process is nothing more than obtaining the requirements of the system for the system, but the demand is changeable, and you can't tell customers to wait until they fix each to develop software. So things that demand management processes are manageable to ensure demand changes.

The Details of the Software Requirements "" Software Demand "book: Software requirements include three different levels - business requirements, user needs and functional requirements - also include non-functional requirements. Business Requirement reflects the organization or customer's high-level target requirements for system, product, which will be explained in project views and scope documents. The User Requirement document describes the task that users must be completed using the product, which is described in the Used Case Document or Script Script (SCENARIO) description. Functional Requirement defines the software features that developers must implement, so that users can complete their tasks to meet business needs. The so-called feature refers to a collection of logical related functional requirements, providing users with processing capabilities and meeting business needs. The relationship between the components of the software requirement is shown in the figure:

Corresponding to the workflow of RUP, business needs is actually the business model of RUP. In this process, participants are mainly business-process analynts. The main purpose is to evaluate the current business process of the company, and determine what extent to which the extent to which you have to do it (you have to do an ERP project means you must optimize business processes, and the last department level The MIS project is not necessary to use the cattle.). Then you will get something called business vision, in fact, what will be like a successful project, and agree on the scope of the public. The business demand level needs to be put into energy depending on the specific item, while the determination of business needs is limited by the user's demand and functional demand, and business needs are the constitution of the demand process, any demand must not be contrary to it. At the user's needs level (RUP requirements workflow), the center of gravity is transferred to how to collect users, that is, the use case of determining roles and roles, demand analysis is difficult, because many demand is hidden, it is difficult to get It is more difficult to ensure the complete demand, and the demand is variable. In general, in the past, it is more based on demand analysis, but the company's documents are often limited, such as lagging behind the current business, not clear enough, depending on the management level, so The method of obtaining the demand is gradually tend to organize the interview. Functional demand relies on user needs, it can be said that it is a mapping of user needs in the system. The developer thinks from the user to the developer. At this level, making a software prototype for users a very good idea. Until now, the user still doesn't have a real concept. If you give the user a prototype, the user will say, "Oh, my XX system is like this." This avoids the user after the software development is completed. I only see some of the risks brought about by software. Is there a need to use a rapid prototype development method and prototype to develop to what level depends on the specific project, many times, use some informal ways to generate prototypes: If you want to develop a web system, let your beauty do a few The page gives the user, if you make a C / S system, do an interface to the user, it is enough to use it, even you can draw a picture of your future software on the blackboard. User is mostly friendly, don't think about the problem. There are many articles in demand for the demand for software demand, which is not the same for the criteria of demand, but they are the same, they are to ensure the smooth progress of the project. Here I summarize some more general standards, it may not be perfect, but as long as you can guarantee these points, your project is not easy: clear (CLEAR), complete (consistent), test (TESTABLE), there are other concepts, such as tracking, modifications, and more. Clearly: At present, most demand analysis is still natural language (because if you use formal language, and user communication will become a big problem, which means that customers must formal language training before developing software, this Is unrealistic). Natural language is the largest drawback of demand analysis is its second meaning. So we have to make certain restrictions on the language used in demand analysis. For example, try to use a simple expression of the subject action.

To put it bluntly, the description in the demand analysis makes people look like a child just learned, do not use questions, and modify these gorgeous expressions. In addition to the language of language, be careful not to use the boss, it is computer terminology. The most important thing for demand analysis is to communicate with users, but most users are not a computer professionals. If you use it in demand analysis, it will cause user understanding. For a few, if you want to be a bank's credit card system, you can describe the software requirements: the bank's card management credit card, each credit card belongs to an account. Credit card has a card number, balance. A credit card has multiple transaction records. Complete: There is no more thing that has missed a worse demand than the software development is close to completion. The integrity of demand is very important, imagine missing demand and have to rework, this is simply a nightmare. But unfortunately, the omission of demand is very often what happened, not just your problem, but more problems happen to users, they don't know what to do. It is a difficult thing to do with the integrity of demand. It involves all parties to all parties in the demand analysis process, throughout the process, developed from the initial plan to the final demand review. Consistency: Consistency is also a relatively large concept, it is difficult to use a few words. Simply, user needs must match business needs, and functional requirements must be consistent with user needs. Strictly abide by the consistency relationship between different levels, it can ensure that the software system developed will not deviate from the initial achievement. In the implementation process, we must also refine the consistency relationship. For example, user needs cannot exceed the previously specified range. Test: How do you feel that a project test starts? Some people say that start from the completion of the coding. Cleaner is a little bit of coding, while the unit test is simultaneously, and the system test is performed after the encoding is completed. These are not wrong. But actually testing is starting from a demand analysis process. Demand analysis is the input and reference of the test plan. This requires demand analysis to be tested. What is testing? Quot; We must use new system to complete report automation processing ", do you think this demand can be tested? Of course, what? What is the standards of automation processing? These are not in demand Explanation. Therefore, this requirement is not tested, that is, it does not have testability. Say it, everyone may understand that several criteria for the previous needs are to ensure the testability of the demand. The fact is like this, only All the needs of the system can be tested, and it is possible to ensure that the software always surrounds the needs of the user, ensuring that the software system is successful.

Practice of software and demand (2) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -------------------------------------- Lin Xing (reproduced from "IBM DeveloperWorks") boiled eggs The revelation has a British to learn to cook eggs, start, when he puts the eggs into boiled water, it will always fry. He thought of various methods for this, and found a solution: a hole on the egg. But in the egg punching, another problem: the hole is small, the egg will also fell; the holes are large, and the egg will flow before it is coagulated. As a result, this British played a batch of eggs, respectively, each of the holes, and record the size of each egg aperture. Through this method, he found a most suitable size - avoiding both frying and ensuring that the egg white does not flow out. At this time, although the problem of cooking egg frying is solved, this British still doesn't know how long it can cook the egg. In order to solve this problem, he started to try to cook the results of different times and find the best time length. Finally, he finally found a method of cooking eggs in the four seas. This case is a ridiculous example for many Chinese. Because smart Chinese have long known that the eggs are placed in the water to one of them to the eggs. From a small incident such as cooking eggs, the Chinese and British reflect two completely different thinking habits - Chinese people rely on his smart, but the British carefully puts every process into The simplest, then executive at class. (The Road of Management Software Hongqi) Although the smart Chinese have four inventions, for modern management ideas, the Chinese have never appreciated the true meaning. No matter which kind of management method, the process capacity is especially important. Although the relevant personnel of the production of a product have thousands, the products produced have only one. This ability is not falling from the sky, which is obtained by developing an extremely detailed production process. After China's thinking of ISO, this ability is also increasing in the domestic manufacturing industry. However, in the software industry, software organizations with this process capacity is still less poor, most software organizations are still a personal heroism in the 1980s, and the development software is strongly powerful. The programmer can successfully complete the software, and the ability is poor. In most software organizations, a few people master the code, they are everything, if they leave the organization, the code in the hand is their capital, and the original organization will be severely blown. The Chinese is keen on the results. The hotspots in 2001 were in CMM. It is now difficult to say that there is a certain bubble in CMM, but it is certain that CMM enters China Software Organization for the development of China's software industry. New era. China's software industry will gradually get rid of the original workshop development, enter the software industry era. The reason why the software industry does not have a software industry is that software products can enter large-scale production and reduce prices like the industrial revolution. Unfortunately, software is different from industrial products. In the process of industrial production, one method of quality testing is to set quality inspection before the factory is factory factory, and the factory is passed through quality testing. This method is unable to apply to software. Later, quality testing gradually incorporated to the production process, monitoring product quality during the process. This approach has made a lot more than the previous method, but it needs to track the production process. The idea of ​​this method is the essence of the quality assurance of the software process. In the "Software Engineering" book, the author divides software engineering into three layers, the bottom is the software process, the last layer is a software method, the highest layer is the Case tool. The software is full of various methodology, from demand to the final maintenance.

It is impossible to apply all methods in your own software organization. So if you have a software engineering article, there is a problem to achieve modernization in tomorrow, disseminate the idea, start from zero. The demand process demand process is a very important part of the software process. Forty-tenth percent of the software project is "LeffingWell 1997) in the demand analysis stage. I have done a small survey by my side, and the results show that the successful project is inseparable from successful demand (an important logo is the user's support). The demand process, also known as the demand engineering and demand phase, including demand development and demand management, the specific workflow they involved, as shown: Demand analysis, we can call it demand project, also known as demand Process and demand stages. The demand project includes demand development and demand management, and the specific workflow they involve is as indicated above. The CMM Capability Maturity Model (CMM Capability Maturity Model) with the CMM Software Engineering Association (SEI Software Engineering Institution) provides a famous software process maturity reference. CMM has become a popular tool in many fields for assessing the maturity of an organization's software process. (For more detailed definitions and instructions, please see "CMM White Paper"). CMM and demand are related to the requirements of demand management in the level 2 (reassecale) and the requirements of demand management in the Level 3 (defined stage). It must be pointed out that CMM only specifies the key ability to be reached by mature software organizations, is a strategy for improving software processes, and does not do restrictions on specific methods. Therefore, there is no content involving demand development in CMM. Demand and software lifecycle model Any software starts from the most vague concept: a process of designing office for a company; designing a business letter printing system and putting the market. This concept is unclear, but it is the prototype of the highest level of business needs. This concept will accompany a purpose, such as the purpose of a "bank deposit system" to improve the efficiency of work. This purpose will become the core idea of ​​the system, the judgment standard for the success or failure of the system. In the 1999 government department, a large amount of OA system has learned a little in Lotus Notes, and IBM is more useful to say), but more common situations are that many government departments have not changed. Instead, a set of flows for automation processing is added. The original intention of improving work efficiency has led to a completely different result. Is this software successful? Software products have entered the software life cycle from the moment of the concept. After experiencing demand, analysis, design, implementation, software will be used and entered the maintenance phase until it is finally demanding due to lack of maintenance costs. Such a process is called "Life Cycle Model). Typical sever life cycle models include waterfall models, rapid prototyping models, iterative models. Waterfall Model is first proposed by ROYCE. This model is known for the cool waterfall. In this model, first determine the requirements, and accept the verification of the customer and the SQA team. Then determined the specification, and after the verification, enter the planning phase ... It can be seen that the crucial point in the waterfall model is that only the document has been prepared and obtained by the SQA team can enter the next stage. In this way, the waterfall model provides statute documents through mandatory requirements to ensure that every stage can complete the task. But in fact, it is often difficult to do, because the entire model is almost driven by documents, which is difficult to read and understand for non-professional users.

Imagine, when you buy clothes, the salesperson presents you is a thick costume specification, what kind of feelings do you have. Although the waterfall model has a lot of good ideas, it can be used, but there is a natural defect in the process capability. The iterative model is the cycle model recommended by the RUP, and it is also the basis for our discussion in this series of articles. In RUP, iteration is defined as: iteration includes all of the development activities that generate product release (stable, executable product versions) and all other peripheral elements to use to use. Therefore, in a certain extent, development iteration is a complete process of completely passing all workflows: (at least) requirements workflow, analyzes design workflow, implement workflow, and test workflow. It is essentially similar to a small waterfall project. RUP believes that all stages (requirements and other) can be subdivided into iterations. Every iteration produces a product that can be released, this product is a subset of the final product. The idea of ​​iteration is as shown above. The biggest difference in iterations and waterfall is the risk of risk exposure? Quot; any project will involve certain risks. If you can avoid risk as soon as possible in the life cycle, then your plan will naturally be more accurate. There are many risks that are discovered until the integrated system has been prepared. Regardless of the experience of developing team, it is impossible to predict all risks. "(RUP) The difference is as shown below:

Due to the characteristics of the waterfall model (the document is the main body), many issues will finally expose, in order to solve the risk of these problems is huge. "In an iterative lifecycle, you need to select new incremental content you want to develop in iteration according to the main risk list. Each iteration is completed, you generate a test-based executable, so you can verify that it has been reduced. Target risk. "(RUP) Rapid prototype model is another model I like to adopt. The rapid prototype model is equivalent to a subset of the product. Note that it is functional. The shortcomings of the waterfall model are not intuitive, and the rapid prototypes solve this problem. In general, according to the needs of customers, the user's most urgent need is solved in a short period of time and completes a product that can be demo. This product is just a partial function (most important). Its most important purpose is to determine the true demand for the user. In my experience, this method is very effective, the original user without a whit concept is often in front of your prototype, and some views make you feel very surprised. After getting the user's needs, the prototype will be abandoned. Because the speed of prototype development is very fast, the design is hardly considered. If the prototype is retained, it will pay great consideration in subsequent development. As for retention prototype, there is also a kind of incremental model to do this, but this model is not accepted by everyone, not within our discussion. BR> The above model has its own unique idea, in fact, the current software organization is rarely said in the model. Models and practical still have great differences. The development of software life cycle models actually reflects the development of software engineering theory. At the earliest, the software life cycle is inadvertent, confusing. In order to control the development process of software, some people, the software development is strictly distinguished into a number of different stages, and there is a strict review in the stage. This is the cause of the waterfall model. The waterfall model embodies a hope for the software process: strict control to ensure quality. Unfortunately, reality is often cruel. The waterfall model does not reach this too high demand, because the process of software is often difficult to predict. Instead, other negative impacts, such as a large number of documents, cumbersome approvals. Therefore, people have begun to try to improve or alternative waterfall methods with other methods. For example, the process segmentation increases the predictability of the process. RUP and XP RUP are the idea and method set of unified process, which is a set of software development unified processes developed by RUP and XP RUP. Remember the picture of our first chapter, that is, the core map of the RUP. RUP divides software development processes into 4 phases and 9 core workflows, complete the entire software lifecycle through a time iteration (Items). RUP can divide the software development process to very small units, each role (workers), and actifctions. Due to precision control, RUP can be competent in oversized project development. Although RUP defines a lot of tiny activities, it does not fall into the ocean of documents like traditional waterfall models because of the use of the Case tool. RUP can also be tried to smaller items by appropriate tailoring. XP (EXTreme Programming), extreme programming. But it seems that there is no translation (listened to the right tissue in the computer area). It is proposed by the Kent Beck master.

After the pain of traditional software development, the master hopes to find an excellent software development method. Master has summarized a lot of software success and failure, and proposed four elements of improved software development methods: communication, simplicity, feedback (feedback), courage. This forms an XP core value. After years of development, XP has developed many ways to support software development in all aspects of software development. The RUP method of a large number of rules is known as the Heavyweight method, and the method of using only a small amount of rules like XP is called a method of lightweight (actually, now there is now one The tendency is called this method as the Agile method). Recently, some articles have also been discussing two methods. For example: XP rise, RUP is not suitable for China's national conditions. I think this is the same as if you discuss C and Java who used to discuss anything. The method has two sides, only the most suitable method, there is no best way. I also felt in practice, and the theory of foreign countries can't be moved in China. After all, the Chinese human environment and abroad are too big. However, RUP is not suitable, I think XP may not be suitable. If someone moves the RUP's set of things, causing the result of the final project failure. This kind of behavior is tantamount to the boat. In my opinion, RUP is like an encyclopedia of software engineering ideas and methods. Among them, you can see the argument of the subsidiaries, you can understand the entire evolution process of software engineering. RUP is worthwhile to have a lot of time to study. A martial arts masters entered the Tibetan Classic Pavilion of Shaolin Temple, you can think about it, is it a scene. XP, which emphasizes the team's full exchange, maximizing people's creativity. It does not set a large number of rules to limit people's actions (the necessary specifications must be observed), and everyone in the development team can freedom, after all, software is creative labor (this sounds like It is a communist implementation of general). At least, domestic companies should learn a rule of XP: only work 40 hours a week. In comparison, RUP is more suitable for large enterprises, big projects, because large teams often need legal system; XP is suitable for small teams, comparing the creativity of small teams. But in practice, there is also an exception. For example, the first item of the XP method is a large project called C3 in Chrysler. In reality, RUP and XP apply to China's software companies have certain difficulties. Have some letters to ask me, RUP is really suitable for Chinese companies? I will tell them directly that it is not suitable. It is difficult to evaluate its excellent and inferiority for RUP. The key is that it is cut later. I have seen an article, which is to discuss how to cut RUP to the XP idea. So the use of RUP is very careful. A high-hit blacksmith can use a hammer to play a good weapon. If it is an ordinary person, it will go to the feet. Increasing the internal force value of the company is not a one or two days, which requires long-term investment and ignorant efforts. The introduction of the big knife is not a complete set of processes, but it is only the truth that the hard medicine is hurt, everyone should also understand. Many young and well-established software professionals want to introduce advanced development philosophy in their own company, but when they are real implementation, they often have to have a blood flow, and there is also the cause of this. I am very admired to them.

Demand Practice (3) Customer Oriented, not Program Oriented ------------------------------------- ------------------------------------------- from: IBM China author: Lin Star [2003/04/02] Software developers are always confused why software is clearly done, but why customers are still unsatisfactory. Customers are always confused why the software and the gap they want will be so big. what on earth is it? How can I fill the gully between developers and customers? As a third article on the software engineering column of the demand, this article will introduce you to this tool -uml (Unified Modeling Language, Unified Modeling Language) that links customers and developers. The development process of a software system says that the customer is proposed by the customer, and then the developer translates it into a language that the machine can understand, and constructs a system to deliver it to the customer. When customers see software, customers usually say a word: "Oh, that is what I said, but that's not what I want." Even the developer is extremely responsible, spend a lot of time to understand customer needs It is still not possible to avoid the above customer complaints. What's more, developers usually think of itself think that they have already learned the needs and like to add some new features to the software according to their own ideas. In such a case, the user's "real" requirement is even more secure. What is the problem? Because most software development work is Program Oriented, not Customer Oriented. Developers believe that they have learned their needs; customers can't express or express themselves; developers complain that customers often revise their needs; customers do not understand why software development has so much restrictions ... All of this is all PROGRAM ORIENTED software development models to avoid malpractices. In the final analysis, these issues are due to different positions of customers and developers. So, between customers and developers, there is a lack of things to connect them together. Therefore, numerous methodology is regarded as the top priority. 1. UMLUML (Unified Modeling Language) is an object-oriented modeling language. Outstanding contributions have been made in software industrialization. Adopted by OMG (Object Management Group) as industry standards. UML is a considerable representative example to solve the above problem. The essence of UML is a communication method, just like English to solve the problem of people around the world. 2. UML origin is recognized as an object-oriented modeling language appeared in the mid-1970s. From 1989 to 1994, it was the Warring States Period of Modeling Language, and the number of no ten has increased to more than fifty kinds. Although conducive to academic development, for end users, understanding a lot of modeling languages ​​is very unnecessary. Three powers in the Warring States Period of Modeling languages: Grady Booch, James Rumbaugh and Ivar Jacobson (known "THREE Amigos"), as well as their method: Booch 1993, OOM and OMT-2. Booch is one of the earliest advocates for an object-oriented method, which proposed the concept of object-oriented software engineering.

Booch 1993 is more suitable for the design and construct of the system; Rumbaugh proposes an object-oriented modeling technology (OMT) method, which uses object-oriented concepts and introduces a variety of independent representations. This method of object model, dynamic model, function model, and use case model are used. OMT-2 is especially suitable for analyzing and describing data-centric information systems; Jacobson proposes an OOSE method in 1994. The maximum feature is the use case, and the concept of external role is introduced in the description of the use case. . The concept of use case is an important weapon for accurately describing the needs, but the use of example throughout the development process, including testing and verification of the system. OOSE is more suitable for supporting business engineering and demand analysis. The world is a big potential, long-term must. Grady Booch, James Rumbaugh and Ivar Jacobson have their own way, and users have hope to have a standard, ending the status quo of chaos. In October 1994, Grady Booch and Jim Rumbaugh were committed to this work. They first unified Booch9 3 and OMT-2 and released the first public version in October 1995, called unified method um 0.8 (unicious method). In the autumn of 1995, OOSE's founder Ivar Jacobson joined this. Two new versions were issued in June and October, 1996, namely, UML 0.9 and UML 0.91, namely UML 0.9 and UML 0.91, namely UML 0.9 and UML (Unified Modeling Language). In 1996, some institutions have become increasingly obvious as their business strategy. UML developers have got a positive response from the public and initiatives established the UML membership association to improve, strengthen and promote UML definition work. Members at the time were DEC, HP, I-Logix, Itellorp, IBM, Icon Computing, MCI Systemhouse, Microsoft, Oracle, Rational Software, Ti, and Unisys. This institution has an important role in promoting UML 1.0 (Jan 2007) and UML 1.1 (November 17, 1997). UML is a collection of long modeling languages. From the birth of the birth, it has been constantly verifying and revising. It emphasizes a standard modeling idea, but it is not a standard construction. The mold process, for different software companies, modeling processes are different. UML does not have a specific platform, regardless of specific implementation. It is a graphical object-oriented modeling language. UML captures information about system static structures and dynamic behavior through different graphical representations, and establishs an object model. Different graphics look at the system from different perspectives. Due to the independence of UML, it can be converted into specific programming languages ​​by dedicated tools, or transfer to UML from programming language code, which is called "reverse engineering". 3. UML is the concept of UML includes two parts of the UML Semantic and UML Representative (NOT), UML semantics defines structural models and behavioral models.

Structural model (also known as static model) emphasizes the system's object structure, such as an object's class, interface, attributes, and relationship; behavioral model (dynamic model) is concerned about system objects Behavioral action, such as objects, interactions, collaborations, and statories. Based on this, UML provides a complete semantic definition for the UML representator. The representation of the UML includes several of the main maps below: Class Diagram, use case diagram, sequence diagram, collaboration diagram, status map (State Diagram), Activity Diagram, Deployment Diagram Semantic Semantic Semantic Due to our discussion is not a UML language, we are just a simple introduction to the actual application of UML. If you are interested in UML, you can see "UML1.3 White Paper". 4. Use examples and use cases (Use case diagram) is the simplest and most complex picture in UML. Say it is simple, because adopting object-oriented thought, it is based on user perspective, drawing very easy, simple graphic represents people understand. Saying it is complicated because the example map is often not easy to control, or too complicated or too simple. The example of a system is too way, too precise, too much, too small, too small. The control of the use case can be regarded as an art. I suddenly remembered that when I just contacted UML, I didn't take care of the use case. I thought it was the most useless picture in UML. Now every time I think of it, I can't help but feel my stupid. Use Case Diagrams Show Actors and Use Cases Together With Their Relationships. Omg-uml v1.3 "uses the example diagram to represent roles and use cases and their relationships. A use case is a kind of classifier representing a coherent unit of functionality provided by a system, a subsystem, or a class as manifested by sequences of messages exchanged among the system and one or more outside interactors (called actors) together with actions performed by "OMG-UML V1.3" use examples describe the consistent functional set of the system, subsystems, and classes, which is manifested as a message interactive sequence of the system and one or more external interactive (roles).

Is it a bit more complicated, an interaction of role (user or external system) and system (to design system), in order to achieve a purpose (Goal), this purpose description is usually a phrase, for example, open a letter of credit, Give the customer back and so on. This relationship is represented by an example. A specific example of example may be like this:

5. Use examples and requirements, use cases, and processes can be said, all of the things mentioned in order to export the use case in the demand. The use case is to look at the system from the user's perspective, not based on programmers. In this way, the use case drive-driven system can truly use the user-centered, any needs of the user can be completely reflected in the system development chain. Users and programmers to communicate with examples to avoid the embarrassing situation of the cattle horses. Once, system developers always acquire demand through plots, asking users to do what they do for him. After cute Jacobson invented the concept of the use case, the demand acquisition becomes asking if the user needs to do with the system. This is the result of the standpoints. Users often don't care about how the system is implemented (there are also a few cute techniques to be exceptional). For them, more important is to achieve his purpose. Conversely, most of the programmers' work habits are how to consider how the computer implements the user's request. Fortunately, the use case method can be adjusted to the contradiction between the two sides, because although the use case is derived from the user, it serves the user, but it can also be used to develop. When the development process of the system is based on the usual case, use case acquisition requirements, use case design, use case code, use case test. This development process is driven by example. In the specific demand process, there is a large use case (business case), there is also a small use case. Mainly due to the scope of the use case. The use case is like a black box, which does not include any and some information related or internal. It is easy to be understood by the user (also including developers) (simple predicate phrases). If the use case is not enough to express enough information to support the development of the system, it is necessary to open the use case black box to examine the structure inside the black box, find the Actor and Use Case inside the black box. In this way, through the continuous open black box, analyze the black box, open the new black box. Until the entire system can be clearly understood. The use case is important. The use case is only the expression of the use case. The expression of the instance is not just an example, and there are many ways, we will tell below. 6. The use of the use case has been spent some of the simplicity and complex relationships of the use case. In many books describing the UML will first introduce the examples, and use some almost perfect examples to explain the example. However, there will be many practical problems during the actual use. I have consulted a lot of friends who use UML and find more or less problems. The inventor of the use case Ivar Jacobson has said that Ericsson spent tens of millions of processes to study the process of establishing the USE Case mode, and now he is a problem that the Rational Company has also spent a lot of money to study the development process. Master spent decades is not so easy. Use an example to not only define an actor, use case, assistation is then simple. Use cases need to be a full effort in many details. I have seen a software company to implement the USE CASE diagram, but after spending a lot of examples of a project, the design coding stage returns to the previous development process. The use of the use case is not just examples of example, and the use case is not a shortcut to the software community. It is a gradual process of introducing use cases in the software group and can be well fused in the software group. Since the contents of the software engineering applications are involved in the contents of the idea. Even if the number of the example map is also very particular. For software groups without OO practical experience, engage in such homework, it is necessary to work, it can be said to be "Wilderness to". " If there is no long-term accumulation and exploration, how to use the integration of software groups? 7. The view of the use case why is the use case effective? In the process of software development, most of the problems are due to the inconsistency of communication. The designer and user communication are not communicated, and the design is not communicating. Software development is playing football.

Coach, striker, midfield, guards, to form faults, how can we win? Some examples mentioned above have also indicated that if the development team has excluded examples of ideas, the project will not succeed. People who have used Rose know that in Rose's interface, there are four views: Use an example view (Logical View), Component View, Deployment View (Deployment View) . This idea stems from 4 1 viewpoints from Kruchten Master. It describes the focus and views of participants in system development work: users (entry users), System Integrators, and the focus and views of five people such as system engineers.

In order to be able to unify the four people different views, Kruchten Master proposed a Scenarios perspective (this word translation is not good, if anyone has better translation, please correct). This view is actually useful for use case view. In the unity of the use case, ensure that these four views can be collaborated to create a good development atmosphere to achieve the success of the software project. So, how should I create a harmonious atmosphere? I still remember that when I introduced the UML language, we talked about several pictures in UML. These few pictures are not isolated. After drawing an example of example, it is usually used to specify the specifications of the example diagram, which is the example of the example in ROSE. In the case of the example, we can analyze the basic classes and organize the class into a package and assign it to the system's three-layer structure, which is a logical view in ROSE. After writing the basic class, we can organize class into components (for specific architectures, such as J2EE or COM), which is a component view in ROSE. Deliver component deployment is concerned about the deployment view in ROSE. (Need to point out, Rose's view with Kruchten Master's 4 1 view, and the component view in Rose is equivalent to the development view of Kruchten Master and Process perspective.) (Note: There are two kinds of view here) Specifications: Views and views. The view is a formal statement, but I think mostly use the idea to say in the usual use. So the views and views here are the same meaning.) Talking about the use case here is mainly To make you understand why there is a different way of use, and different perspectives in software development. 8. Although the emergence of the use case can solve a large part of the problem, it is not universal. The first is the matter of how difficult it is to get a UML-like design into a state that it can be handed over to programmers. The problem with a UML-like design is that it can look very good on paper, yet be seriously Flawed when actually has to program. (Fowler 2001) first handed over to programmakers like UML to programmaking is an extremely difficult thing. The key to the problem is that the design looks good, but you have a problem when you plan to program it. Not only is the communication between analysts and programmers, but also between customers and analysts. Customers are still unacceptable for use cases, which still requires unremitting efforts to make a unremitting effort to adjust this contradiction. Since software engineering is the earliest proposal is based on the theory of architecture, it will make a comparison of software engineering and civil engineering. In civil engineering, the design graphs and models are developed to require strict implementation.

But: The models that civil engineers use are based on many years of practice that are enshrined in engineering codes Furthermore the key issues, such as the way forces play in the design, are amenable to mathematical analysis The only checking we can do of.. UML-LIKE DIAGRAMS IS Peer Review. (Fowler 2001) The model used by civil engineers is based on multi-year practice, and they are described in the special language of civil engineering. And the main problem is that this design needs to meet the math principles. And our only chart for UML is the same level check. See the problem. Simply determine the design of this software in a simple design image without perfect theory is and its danger. More than one experience tells me that the use case written at the beginning is often scared at the end of the project: design and implementation have been completely out of touch. There are two main generations: between customers and developers, analysts and programmers. We focus here on the demand part between customers and developers. The problem of demand is single by the UML language to solve unrealistic, and if the foreign software environment is so good, the customer is still not understanding. Domestic situation is worse, most customers do not have a basic knowledge of computers. For them, only one thing: "Flowers to buy things, the sky is justified." In this point, the software development process is difficult. Get your customers' support. So this is also an important reason for the exquisite example of domestic ERP projects. At this time, the problem discussed is not limited to the technical level. The main focus has been transferred to management, marketing, negotiation skills, etc. The success of UML also needs this big premise. McConnell recommends that in a large project, the overhead of encoding and unit testing accounts for 15% of the overall project overhead. A large part of the time will spend on the BPA (Enterprise Process Analysis) and BPR (Enterprise Process Request). Because many companies are managed in the implementation of electronics, they are dominated by people. For software, no matter how success in it, if there is no accuracy of each link input, it is conceivable. A friend has developed a set of software managed by chain, but since the system runs, the accounting account has never been flat. The main problem is the input irregularity of each node. This problem is no longer a computer to solve. Speaking of this, there is a joke, a company in a specific industry to develop a management software, so I gave the person in charge of the company to analyze his process, suddenly he was surprised to watch me: "Are you in our industry? How can I be more familiar than I am. "In fact, I just analyze their processes with logical point of view and put some vulnerabilities. About business modeling knowledge, there will be large-scale space in the next article, here is not coming. Therefore, it is not the most important thing for demand analysis. 9. Iterative Demand Analysis Software Engineering continues to develop, some of them in the best of XP. (For the introduction of XP, please refer to my last article). The impact of XP on demand is that the developer and client is no longer a customer relationship, but a strategic partnership. Customers will participate in the entire development process as domain experts and provide on-site guidance.

The XP approximate process is: the field expert group (including the development side and customer) will propose functions that need to be developed, reflecting the material card. The project manager cooperates with the material card to each iterative period. Each material card will have a small development team (consisting of analysts, developers, security personnel) to be responsible. Each iterative cycle will receive a product that is available for customers. By dividing the entire project into multiple iterative cycles, you can: shorter iterative cycles easy prediction, the resource allocation plan can do very detailed; provide customers with a sense of actual use, and customers can find their potential Demand, submit demand, arranged in subsequent iterative cycles; continuous final product launch, teams can maintain high morale; different groups can be in different iterative cycles, reducing traditional development methods often appear in traditional development methods The risk of bottlenecks; it is undeniable that XP is a new generation method, which has its advantage. However, it is to point out that in China, it can be used to use XP method companies to say that they can be numbered. Everyone can often see comments, it is not coming. However, there is a development environment, or there is a natural advantage of using the XP method. It is internal development. For example, a large number of large companies, banks, and institutions have their own software development departments. This kind of customer relationship is particularly intimate, and the use of XP methods has his advantage. However, it is currently affecting this development method, but it is in the system. 10. The balance is flat, and UML is still good, it is absolutely worth speaking to study. Especially with the gradual improvement of the big environment, UML will be likely to be a unified modeling language, just like its name. If the needs of Customer Oriented, this is difficult to know. To adopt advanced methods, it is more in good luck.

Demand Practice (4) Business Modeling Period (on) ------------------------------------- ------------------------------------------- from: IBM China author: Lin Star [2003/04/02] Before a large-scale demand survey, there is an important job to do. This work is very small in the project, but it is very important. Different people, different methods have different descriptions of this work. In our article, according to UP thinking, it is called "business modeling". All items have business modeling period 1. What is business modeling, business modeling is a complex process, which is difficult for the next accurate definition. Explaining it in RUP's vocabulary: "Contains all modeling methods that you can use to perform visual modeling. These are the subsets you can use to perform business engineering." As can be seen from the definition, It is a collection of modeling methods to model business. This work may include modeling of business process, modeling, improving business processes, field modeling, etc. 2. Why do you want to develop Brooks Masters? More than 30 years, the APPLICATION Programs AP has become more unrecognizable, such as a group of monsters, difficult to tame. Master Rogerson also said the Application IS A Rock in The River of Change. (Application (System) Became the plain in the trend of the change). For many companies, there is an integral of information systems in the universities of the company seem to have become a luxury. There will be some application systems in the enterprise, and there will be automated operations of the auxiliary enterprise. When the company's information is hoping to integrate the current information system, they can be disappointed when they can cooperate with the development of the company. Most applications lack a unified interface, it is difficult to integrate. In the bank we conduct project development, we also discovered this problem, and the system of different departments could not be interconnected, and cross-sectoral business processes must be handled. Previously, the development of applications was built based on sectoral functions. Simply establish an application system only for the purpose of solving purposes. So this way is established in this way is based on a specific functional area (FUNCTION AREA). As for how to make multiple applications within the company work together, they are not in the designer's consideration. As the company's development, it will find that the company needs to change to adapt to market changes, and the original series of applications have become the road to the company's development, which makes the company have to return to the manual era. In response to this situation, there is no corresponding solution? The solution is from the business modeling, not from the lower level (department-level or less). Through the use case analysis technology, establish a business model of the company, perform appropriate cutting, select a stable software architecture, analyze the business entity of the company (the small inability to be small in business entry, abstract or concrete, such as accounts, contracts, etc. It is called Business Object, which is based on this, assembles the component, implements the corresponding three-layer structure to establish an application system for a particular functional area.

The enterprise application system made in such a process, regardless of the size of the department, or has an enterprise-level, there is room for extension. The three-layer architecture based on the components, and it is possible to better cooperate with the business of the company (the cost of the corresponding change is small). The first step in the whole process is business modeling. In the previous period, China is very popular with the name of the BPR (Business Process Re-Engineering). The term R (RE-ENGINEERING) in this term is proposed by Dr. Hammer, indicating that companies must promote four levels of redesign: Re-position, Re-Organization, Re-System, Re-Vitalizing Rehabilitation Project P (Process) in the name is managed by sales, purchasing to finance, all levels, and strive to reduce costs, improve output, and must have precisely designed enterprise management procedures. This word is currently in series with ERP, has become the pre-engineering of ERP, but also becomes the most important factor in ensuring ERP to establish a corporate perfect management system to support high performance. In fact, this BPR is the business model we talk. It can be seen that business modeling is highlighted in ERP engineering, and BPR in ERP has become an independent discipline. Not only that, even in ordinary information systems, business modeling is also very important, alone, just their scale. At this point, you may not understand, if you just establish an application for the business automation of the company, don't you just turn it out? There are two reasons here, one is that the original business model is very good in people-oriented environments, but it will not be appropriate to move this model. People's capabilities and computers have a lot of access, so the process must be adjusted to accommodate the computer; the second reason is the application system that avoids sector-level, partial functional areas that have been mentioned above. In RUP, business modeling is highly emphasized as a downstream process: business model is an important input of a demand workflow to understand the needs of the system. Business entity is an input to analyze design workflows to determine entity classes in the design model. (RUP) 3. Demand and business modeling business modeling is the initial stage of demand engineering and the initial phase of the entire project. It is to be pointed out that the span of business modeling time has a big difference in different projects. In some projects, such as large ERP systems, it may take a few months. For ordinary projects, the time of business modeling may only take a few days. Demand is technologically independent. There is no meaning in discussion technology during the demand phase. That will only make your attention. The implementation details of technology are analyzed after the analysis, and the design phase needs to be considered. In the business modeling stage, it is not only necessary to ensure the technical innocence of the demand, but also to ensure that your needs should not be detailed. Because of the business modeling phase, the most important thing is to understand the full picture of the business, and in-depth details will be wasted time and energy. To know, discuss business details in an enterprise, even if you give you a month, you have no need to end. In practice, these two points are difficult. For example, companies have a system originally, this has to be compatible with your discussion and new and old systems. At this time, it is important to pay attention, if you are a systematic architecture, then it is a category of technology. If you will discuss the details of each specific module / component, it is not the technical independent, and it is also in-depth details. . On the issue of not deep details, it is often difficult for you to prohibit the status of the project, and you will not discuss some relevant business details.

At this time you can record these details, then return to the business modeling. 1A Stakeholder Is Defined As Anyone Who is Materially Affected by The Outcome of The Project. All people who will be significantly affected by the project. 4. The main task project of the business modeling period is a common vision of the public: If you want to success, you can ink any support of the project At the beginning of the project, whether the project is involved or developers, the project's task, the scope is ambiguous. But with the deepening of the project, the original vague scene will slowly clear and stereo. But in order not to waste time, we need to erect a common vision before project injection. The erection of the common vision can not be as simple as imagined, because every public is concerned about his own interests, all have its own evaluation standard. You can listed everyone on the whiteboard, then discuss each item by item, make a correction, until everyone's opinion is consistent. In the erection of the common vision, there are two things that have been made, and the project scope and high-level demand are available. Project Scope: What should I do, what should I do, I need to have a clear definition at the beginning. For the demand within the project, don't let go, and the project is not to care. Although sometimes, the variation of the range will benefit the project itself, such as the customer's reasonable requirements or changes in market target customers, this change should be carried out under the premise of "resource support" and "approval". The description of the project range can be carried out by statement and illustration. I suggest you use the illustration. Because the statement statement is relatively vague. For example, I often hear a customer. "I want to build our company's e-commerce system." This sentence is a vague, your e-commerce system is what products sell? " What is the customer? Do you want to support online payment? According to these questions, this statement can be further modified, "establishing online ordering systems, for the current product product product of the current target customer sales company." This is clear. However, the way the image will be better, on the selection of the figure, you can use the DFD map or use an example. Depending on the experience, DFD graph is relatively easy to accept customers. High-order demand: This part we will discuss in detail below. Since it is a high-order demand, you can't discuss excessive details. When discussing high-order demand, try to ensure the quick discussion of the system's profile, establish a demand model, resulting in the consistent pass of the project. Support: In order to ensure the smooth progress of the demand plan, the support of the project is critical. You can choose to tell the project at this time, the rights and obligations of the project, as well as the rights and obligations of developers. In this regard, I don't want to say more, you can refer to the second chapter of "Software Demand". The main thing is "The right to change the demand, and it is necessary to undertake the obligation to explain demand to developers." The rights and obligations of developers are just the opposite of the people. Business Modeling Conference: All of this is conducted through business modeling meetings, and other conferences are that this conference requires all projects to participate, if you can't get the opinions of all projects, it is not perfect. The most important tools in the meeting are whiteboards, and an excellent quick book is also necessary. Modeling principle 5. The use case in business modeling In the previous one, we discussed a lot of knowledge, but when we implemented it in the enterprise, we often feel difficult to grasp the use of the company, this is in the misunderstanding of the use case It is also mentioned.

In the actual situation, you may have a very detail of the classification of roles, division of use cases, grasp of grasping, etc., the actual thing is very impact on your project. In RUP, there are a variety of concepts to support the implementation of use: Business Actor, Business Entity, Business Use Case, Business Worker, Business Use Examples (Business Use- Case instance). In order to be more clearly displayed, we adopt a representative of the UP method - RUP. However, in practice, it is necessary to determine the specific situation. The concepts mentioned here are to help you understand the modeling process, not let everyone move hard. When we don't understand the system, we will see the system as a big black box. This big black box we will call him business domain, seeing its exterior as a business. Business environment. Those who have relationships in the business environment and the business domain (may also be object) are called business actors. In actual examples, we may put credit services (note is not credit business systems, here is business modeling, and the system is not existed.) Is called business domain, we have been investigating, discovering our usage and credit business have customers, Other systems used by the People's Bank, the Foreign Exchange Authority, other banks, and credit departments, and other departments within the bank. So these people (things) are the business leads. Examples of business leads generally include clients, suppliers, partners, potential customers ("Markets"), local governments, colleagues who have not modeled in their business. It must be noted that the specific type of user represented by the business lead is not a particular user. One role may have many actual users, and an actual user may also have a lot of roles. Business use cases and business use case examples defined in RUP as follows: A business use-case instance is a sequence of actions performed in a business that produces a result of observable value to an individual actor of the business A business use case defines a set. Of Business Use-Case Instances. A Business Use Case Has A Name. Service Example An instance is a series of actions executed in the business that produces a visible value for the individual protagonist of the business. The business usage defines a set of business example instances. Business use has a name. Just starting everyone may have questions about business use cases and business case instances. In fact, they can regard them into the relationship between base classes and subclasses. In a business, there may be a lot of workflows. For example, when you go to McDonald's, the workflow of the point of the panter and the oat cattle is different. Many processes have caused a certain difficulty in the investigation of demand. Even the oldest philosophy also tells us that the surface phenomenon is complicated, the essence is simple. In order to simplify demand work, we hosted the mergence and point fries into order. In this way, ordering is a business use case, and the merger, the potato is the corresponding business case example.

The concept of business use case business role and business leads is also easy to make people feel. In fact, their English is more likely to understand their differences: Business worker, business actor. Worker has the meaning of workers, and actor has the meaning of participants. So the difference is that one is internally, one is outside. Business roles are people who implement business use cases, the business leads are people related to business. For example, for the bank's bill of payment, the customer is the business lead, he is related to the business. The parish is a business role because they are people who implement business use cases. In RUP, both defined as follows:.. A business worker represents a role or set of roles in the business A business worker interacts with other workers and manipulates business entities while participating in business use-case realizations Business role on behalf of a business Or a set of characters. When participating in business use cases, a business role and other roles interact, and manipulate business entity a Business Actor Reperesents a Role Played in Relation to the Business Environment. The business protagonist represents the role related to the business, This role is held by someone or object in a business environment. Business role

The business leads the business role and the business leads to see the environment. When you develop a company's ERP system, the staff of the department belongs to the business role, and when you develop a department-level application, employees of other departments may belong to the service lead. Business entities, in some articles, known as business objects. Whether it is called, the meaning of the representation is the same. For example, in this example of bank credit, we involve a lot of business entities: contract, single loan, customer, etc. So business entities are those very basic elements in the enterprise. If you feel that the example of bank deposit is not understood. You can imagine menu in the restaurant, burgers, etc. are business entities. In RUP, business entity is defined as: a Business Entity Represents a "Thing" Handled or UseD by Business Workers. Business entity represents "things" that is handled or used by business roles.

The business entity has been discussed in demand variability. Compared to the continuous change of demand, it is possible to exist in a business entity object in a considerable period of time. Airlines are discounted today, and tomorrow is not hit, there is a discount, and it is difficult to fold. However, the ticket has never seen any changes, and there is only one of the same properties: price, flight, departure, destination. Therefore, the business entity is relatively stable. This is a big meaning: "A business entity often represents a certain thing for a number of business use cases or use case instances. Therefore, the survival of the business entity object is quite long. Generally, a good The business entity does not contain information about its use of the main body and the usage method. "(RUP) is a lot of business cases consisting of business entities. In the past, the development method used a module-based method, and when the demand changes, the module had to be rewritten. If a stable business entity is used to realize business use cases, the change of business use cases only need to be combined with business entities. Of course, there are still many technologies that need to be realized and is not as simple. You know, four modernization can be implemented one day. There is also an important reason for using business entities: the characteristics of business entities determine it has natural reuse. Just as McDonald's sales system, there are Hamburg entities, and there are also in the production system. God, this world is really beautiful! A big confusion using business entities should be made as class or attributes. This depends on the level of importance of this entity on the business environment. A customer is a very important class in the bank credit department, and in the deposit department is just a attribute of the credit verification example. This problem is very important. The mistakes in design may lead to a great pain in the future system improvement. For example, the business entity of this design is designed to be attribute, and it has to face the adjustment and system modification of the database when the attribute is increased in the future. 6. Establish business use model business case model (Business use-case model), defined in RUP as: The Business Use-Case Model Is A Model of The Business Intended Functions. The Business Use-Case Model Is Used As An Essential Input To Identify Roles and DeliveRables in the Organization. Service Use model is a model that describes business expectations. As a core input model, the business use case model is used to determine the various roles of the organization and the deliverable workpiece. As can be seen from the definition of the business case model, it is the core of the company, the most summary business description. It is mainly composed of business use cases and business leads. Its main purpose is to explain how customers and partners do business. It describes the main way of business is through business use cases. The figure below shows the illustration of the business case model in RUP.

Business use case model From the figure we can also see that the business case model includes a set of business cases. This is because the business in the enterprise is usually constructed of multiple instances of a number of business use cases. The enterprise workflow formed by these business use cases may be triggered by the business protagonist, or may be triggered by business rules 2. 2 Business Rules: Business rules are a statement that must be observed. (Business Rules Are Declarations Of Policy) The business case model is actually a description of the business operations. In order to establish a complete and accurate enterprise use model, you should focus on the business's business. What is something, but should not focus on how to do it. Although this may generate some business cases, the conflict of business, but RUP's thoughts are iterative, which can be perfect in the next iterative cycle. The business case model is the closest computer model with the business business. Many of their thoughts and business days are as follows. In the daily activities of the company, there may be many kinds of services. In some articles that tell the ERP ideology, it will usually emphasize three categories: one is closely related to the main business, such as banking, credit department, deposit department, etc. This kind of work passes the person's labor, converting a resource into another resource, producing value. One is a management type, such as the company's management, finance department, etc. This work does not produce value, but it has been guided, managed, and detects the first work to increase the output value of the first work. There is also a support work, such as system management, security, etc. It is not very important and has the nature that supports other work. This classification can also be used in business models. Through this classification, you can better grasp the core business use case, and make the foundation for the next step. There are many business use cases that are triggered by the business lead, and the business use cases related to the business leads in RUP are also referred to as core business cases. This emphasizes the purpose of building a business model to provide users-centered service. This is also what we should pay attention to when we build a business case. Of course, sometimes the trigger of business use cases is to generate the result of the user needs. For example, the market research behavior of the company is not triggered by the business lead, but the company has accumulated a large number of user requests. For managed, support, non-direct and business leads, there are also their specific business leads, such as management type business case needs and board of directors, support for business use cases and suppliers Contact. After establishing a basic business case model, it is very necessary to refine this model. At this time, in the previous chapter, the extension and use relationship we introduced in the previous chapter have used the land. In addition to these two relationships, there is a new relationship. 7. Use the relationship of the relationship in business modeling: According to my understanding, it can regard it as a similar relationship with our more familiar inheritance relationship. The word Generalization is generalized, summary. It is a relatively abstract word. Although it is very similar to inheritance relationship, they are different in use in the use of the environment and the purpose. The following figure describes the generalization relationship between four business entities:

When you go to McDonald's (don't misunderstanding, I am not very often going), I will choose Mai Xiang Chicken Hamburg, Mai Xiangfish Hamburg or Hamburg. However, it doesn't make sense to establish a business entity for these three burgers. So you can summarize them into a business entity of Burgers. The same reason, some common attributes and behaviors can also be summarized in the business process of the enterprise. In order to avoid multiple documentation, you can put a common behavior in a separate business case. The use case example of the execution sub-case will follow the event stream of the parent case, while inserting an additional behavior or modifying the behavior defined in the sub-event stream. 8. The method of choosing the above method I use the UP method. However, in addition to the UP method, there are XP, FDD, etc. Therefore, when doing business modeling, you should choose the appropriate workpiece according to different methods. For example, material and function. The quality of the method is not the focus of our article discussions, I will discuss the method in another article. It is necessary to emphasize that the RUP's workpiece discussed above is just to learn, so it defines a more complex workpiece and distinguishes the difference between them. But in practice, there is no need so much workpiece, which will only make your project involvement and developers confused. The difference between these workpieces is as long as you are in your heart. As for specific practices, we will discuss in the next article. Demand Practice (4) Business Modeling Period (below) ------------------------------------- ------------------------------------------- from: IBM China author: Lin Star [2003/04/02] Unlike the theory of the previous article, this article is more focused on reality, and some of the principles and practices that need to be paying attention to the shortage of business modeling, each comes from the practice. Also have theoretical support. Many of them have been summarized more than a number of failures. I believe that if you can understand some of these principles and practices, you can at least avoid repeating the mistakes. Principle 1. Who is "God"

However, have you taken time to find out what he meant, he means he mean after this ridiculous words? I think that software developers have an obligation to educate people, you need to guide you the public, let them say their own voice. After I saw this sentence, I spent some time to understand, in fact, things are very simple, he is a function of customizing report templates. After the end of the project, I have a cooperation with this public, this time, he has become an excellent customer project leader. What did this example explain? People involved are often a field expert, which has a deep understanding of their work, but because of the software development is not understood, the public is often unclear, and even does not express their needs. At this time, it is when you reflect your skill. Remember, treat your customers like God. 2. Patience is the primary understanding who is "God", then treat God. People who are academic engineering generally will be better in logical thinking, but for the public, it is not necessary. I have encountered a letter to the archives. When I understand the needs, I will talk about the West, I am ambiguous. It is clear that the method has been negative a minute, and the next minute is raised. I think my temper should be good, but I will always have almost. Fortunately, I finally supported it. I think, after I have experienced this, my patience index will have a big improvement. I have a colleague's tolerance is what I admire, in a website project, he is responsible for system analysis. He spent three days for three days, and the head of the website project lived together. Finally, after the system analyzes, his spirit is not bad, but the person in charge is already not. Of course, this is just a joke, not to encourage everyone to die. Work and rest is still very important, the body is the capital of the revolution. But this tells us that if it is abundant, demand is difficult to succeed. For example, at the discussion of business modeling, although you stipulate that this meeting is discussed, it is a high-order demand, but the participants will argue with some sesame green beans. what would you do? I believe this situation is very common. Patience will still be embodied as communication, only patient communication, you can uncover the heavy veil of the demand. People's behavior will always be guided by thought, if you can't solve the heart of the public, you can't understand what he really needs. My project is very strange, she is always talking about it: "She wants to realize the report automatically." Her demand will talk about this range, but I I have almost nothing else from her. At this time, I decided to give up, I want to have no more information from her. But after I learned that her work is taken up, I changed my thoughts. After I spent some time, she gave me a lot of help after I finished the idea of ​​reporting. 3. Participation is an important practice of an important XP method to advocate "On-site customer". That is, customers should provide information and make decisions at any time with the developers. And this customer must also be expert, and can have the right to make decisions. This site-site customers believe that the domestic software organizations will not be able to do. But must work hard to this way. I think that there are two kinds of customers in this site: one is a project, and there is an industry expert. In fact, many software companies are equipped with some management consultants, which are industry experts. According to statistics, the proportion of consultants and developers in Guangdong Software Co., Ltd. have reached 3: 1. I think this is a good thing.

The project is often a deep understanding of the transaction in our work, but it is difficult to improve it to a theory level. At this time, some industry experts will need to help. Let the industry experts and projects discuss together, but also inspiration of the project involvement, thinking that he can't think of it. This is the development of "potential demand". On the other hand, participation also means that the project is required to enter the business modeling process, and it is necessary to mobilize their enthusiasm. Therefore, too complex processes will hinder the participation of people. Therefore, it is necessary to use some simple, the workpiece that can be accepted by the customer is necessary. I said the "protagonist" in the previous discussion, "use case", that is theory, it is to give developers, so that the developers have a bottom. You see these people, can they understand? Waiting for them to understand this mechanism, I am afraid that the lily is cold. User Story, Feature, CRC cards These are very good workpieces, which are simple and can meet the needs. Knowledge points: Materials and features represent a simple requirement of users, it can be completed in a shorter time. The material is the workpiece in the XP method, and the characteristics are the workpiece in the FDD method. CRC is an abbreviation of Class, Responsibility, Collaborator, which is a card divided into three parts, which marked the class name, class responsibility, and the cooperative relationship between classes. Very close to customers, can even complete the card in the process of making the game, can bring strong customer participation. 4. Embrace changes I think this will be consistent with the developer. After all, demand changes are the most annoying developers. Yes, I also hate. However, as we often say "crying can't solve the problem", do you hate you can solve the problem? Reject the customer's change request, requiring customers to sign on the requirements specification. These practices can only be counterproductive. There is no positive, positive meaning. The necessary demand change management is important. Because there is no stop, no control changes will inevitably create a great waste of resources. However, from another aspect, the criterioned criteria that the demand change is accepted should be "whether it is reasonable", not "whether it is easy to implement". Demand changes require our development work to be iterated, including requirements, design, implementation and other stages. This will minimize the risk of change. This is further discussed when we discuss specific demand modeling. A higher level of hug changes is an early estimation. Develop a list of possible changes to record possible changes. The easiest example is that a company has hoped to develop a wealth system after developing a reducing system. If you can prevented the forefill, I believe it can save a lot of strength. Another way to predict changes is by usage. But remember, the use of patterns can not live. These are external words, if there is a chance, I will focus on this problem in other articles. Practice 5. The Modeling Conference is the most important means of business modeling. Although the meeting is always carrying some 名 in China, it is a very effective communication method. Modeling Conference is a wide range of meetings, in other words, all relevant personnel should take the meeting. Because of the business modeling period, the main purpose is to establish high-order demand for the system, which requires a common participation of many projects to ensure the broadness of demand. So, the size of the modeling meeting is quite large. People, senior managers, managers, direct users, developers, and all parties should participate in or send representatives to participate in modeling meetings. If you have experienced experience in the large-scale meeting, the more large meetings, the lower it's decision efficiency. this is normal.

Because of a person, there is no need to communicate, the decision efficiency is the highest. When two people, they need to communicate time to make decisions. When three people, this communication is more time. If the number is four people, five people or even 120 people, then most of the time will flow on communication. What's more, there is a difference between people and people, and the argument of interest. So, in order to ensure the efficiency and effect of the meeting, you should follow a certain rule: prepare: If you want to meet, the participants are unclear, then what will you do? You must first spend a lot of time to explain the purpose of your meeting, is it. To send the subject of the meeting in advance, the agenda is sent to the participant, let them have a preparation first, and the meeting will quickly enter the topic. Try to invite the most people: I have said that if the modeling meeting can't hear the most extensive opinions, it is not a successful meeting. But in reality, this is often difficult to do. Because the target organization is a customer, it is often very "". It is impossible to do all the arrival before the importance of the conference. It is objective to have bad, vacation, and have something to do. Here, on the one hand, you need to clarify the interest to the decision maker to the target organization, let them pay attention. On the other hand, you also need to actively invite the project to participate. Because all people are invited, it is as much as possible. Separate the level of participants: I really like the kind of meeting room with an inner ring, an outer ring. Because I invite all people who can't do something, I must first guarantee that the core personnel can be all arrived, sit in the inner ring, then the secondary person, sitting outside the outer ring. The core person is close to your project. For example, financial system, financial executives are core persons. To ensure that the core staff arrived, as for the secondary person, the more all the better. Starting from the bottom: Chinese people have a bad habit, it is the boss says it, he will never say it. So let the underlying first talk first, then turn to the middle layer, then go to the upper layer. The developers don't talk, they are either listening, or guide everyone to talk. If we first let the leaders come to the train, the bottom of the people will not have to say anything. All views of all involved: First, let everyone can speak freely about the new system, and then all the views are listed on the whiteboard. There may be some views here that there will be very absurd, but there is no relationship, despite it. This is a brain force, it is easy to generate new IDEA. The main job of hosting developers is to guide and encourage everyone to say more ideas and record it. Here we have a slight issue, some people say that Chinese people are not willing to express their opinions at the meeting, I don't have to worry too much in this modeling meeting. Why, because the project is involved in any responsibility for their speeches, saying, white saying that Who does not say anyone. Classifying views: If you want your project, you have been tired, and your creativity is almost, your whiteboard is estimated. But you look at the views on the whiteboard, there are a lot of repetitions, there are a lot of similar. So you need to classify these views with logic. This job can also be guided by you. Determine priority: It is also very important to discharge priority to viewpoints. It can help you identify significant risks and provide guidance for you to develop iterative plans. Similarly, this work should also be determined by the project. Investigate the main business logic: What is the main business logic? Including the main business process of the company, the main business rules, and significant algorithms. These are all clear materials that need to be started at the beginning, and they need to know clearly at the modeling meeting.

Of course, you can't say to your project, "this, next, everyone talks about the main business logic." The following is a must not have the mind. You should also guide the public, capture the information you need from the discourse of the people. Note that the meeting time: people are not machines, they will be tired. So the length of controlling the conference is critical. In general, this conference will have four or five hours, according to statistics, the meeting within two hours will not make people feel fatigue. Therefore, the meeting should be divided into several small segments. In addition, you can also determine the number of people participating in each segment according to the progress of the meeting. Because the meeting is, some participants are not too important. Avoid details: The main goal of modeling conference is to establish high-order needs. If you spend too much time in discussing the little things of the chicken fry garlic, you will waste everyone. At this time, the details of the survey demand are not very significant. Because you don't understand a lot of things, you need to further deepen. The details at this time are not much helpful to you. Avoiding technology: I met a crowd responsible for the technology when I modeled the conference. He always inquiry the technical architecture of the system and promoted his design concept. I have to reiterate a few times. "Technical issues We will find time to talk about it separately." I think the technician should have a better idea, and I hope that I can express it. This is not very good. However, when this time is not discussing technology, the demand has not yet been clear, what is the discussion technology is not inverted? Do a good job: As the saying goes, good memory is not as bad. So doing a record at the meeting is critical. Because the price of this meeting is quite high, your project is not possible to do not work every day, accompany you, even if they are willing, their boss is not willing. Therefore, it is necessary to make full use of the results of the conference, so an excellent shorthand is absolutely necessary. In addition, according to the study, if the recorder is used, the participant will make the participant's heart, so do not open, so don't use a recorder. 6. Testing the test in the initial phase of the demand may feel a little strange. Any project will always have a standard to assess whether it is successful. The test here refers to a "executive target" that the assessment software item is successful. This goal will be the criteria for the success of the software development to meet the conditions, the successful determination standard. Many companies do not have a more clear goal when information is under construction. So when I asked this question, his answer is often my goal is to build an enterprise's ERP system, and the construction of a company's information platform. How is this software developed? There is no standard ended. Is the fees ended over, or the decision maker stopped. The goal should have a standard that can be quantified. For example, the purpose of the development logistics system is to shorten the product turnover cycle, reduce inventory; development supply chain system is to strengthen and reducing the supplier, reducing inventory. These and specific business-related indicators can be made by refining, with a variety of division indicators, so it can be done. We refer to this goal is that test is to remind developers to meet this goal as the final test. Your software is doing well, not what is going on, what is it? This is a very simple truth, but in practice, all party and development are often could not see this due to some specific factors. In fact, this goal is in the previous one, then we also called it as a vision, scope. It is essentially the same. This "executable target" can use some factors to measure: 7. Business entity (Business entry) is a category that plays a key role in the enterprise. Customers, suppliers, employees, orders, vouchers, such as this business entity can have a lot of many.

Business entities tend to become a critical factor, because in the system, the behavior of role operation business entities tend to be assigned to business entities, such as "calculation price according to orders" will become an order of orders. In this way, the implementation of the workflow is often completed by multiple business entities. Therefore, the quality of business entity design will have a big effect on the system. The main tasks of business entity design include identifying business entities to determine the properties and behaviors of business entities. To determine a business entity, you must first determine the role and find a business entity from the role. Role requires us to discuss the target organization. With my personal experience, finding business characters is generally relatively simple, but I have to remember that a person may have several business roles, which is often happening. From the behavior of business roles, we can find things handled by the business role, which is the business entity we need. Business entity is a separate business entity or an attribute of a business entity is worth studying. One this is that the property is judged that the business entity will only bring some overhead, but a business entity that the individual listed is just a attribute that is determined to be other business entities, it is possible to bring catastrophic consequences. The biggest possibility is that the system is difficult to expand. In a human resource management system, employee categories may be a very important business entity, which may have a lot of properties. In other systems, such as in stock, employee categories only play a record, the effect of authority management. For example, in some automation processing systems within some enterprises, customers may just be the properties of other entities, while the customer-centric design is now in this design, this design has its fatal defect. To determine the properties and behaviors of the business entity, it is mainly to determine what you want to do every class (business entity), the property is to better describe classes and classes. It is a good way to use CRC cards. CRC is an abbreviation of "Class)," Responsibility "and" Accessor "(Collaborator), which are often present on a card. Class Name Responsible 1 Responsible 1 Auxiliary 1 Responsible 2 Accessories 2 ...

By making such a CRC card, it is more likely to find behavior (responsibility) and attributes (auxiliaries) of each business entity. You may ask, why not find out the properties and behavior directly, but more this. This problem is that we have been emphasizing. In the modeling phase, we face the crowds that may not understand the computer technology, so we can guarantee the integrity and correctness of the demand. 8. Preparation Program Currently in software development, there are two extreme misunderstandings. In some software organizations, generally don't make a plan, or do something general, there is no need to use. Some developers believe that "doing the plan is virtual, it is better to do some practical things." For the project manager, or there is no way to this situation, or the scheduled developer is yang Yin, let the plan be a paper empty text. The project execution is extremely large, and there is a thing in the direction of the deviation. In other organizations, the plan is considered to be the top priority, and it takes a lot of time, human, and the plan to make things don't have a big, and there is no legacy. The project manager written by this plan is also considered a senior talent. The developer sighed, "Write the program is not as good as writing documents." But when executed, the originally precise plan often vulnerable, the progress of the project is dragged. All of us know that in software development, it takes 90% of the time to complete 90% of the project, and then use 90% of the time to complete the remaining 10% project. why? Plan unscientific. In management, planning, also called planning, definition is "to determine the target, implement the target's strategy and means, steps, procedures," I want to put a box into a place, this The place is my purpose, I have to estimate what the route is pushed, and how fast it is. Then I started to push, but also more than time to compare the original plan, you need to adjust the route and speed. This estimate is a plan. The planned goal is not to eliminate errors, but let all errors become a pile of small errors after careful planning. After four design methods, I finally gave up three kinds, but the most is three small mistakes, but the program is rewritten three times because there is no design, but it may cause three big mistakes. However, why do the two extremes mentioned above? The first situation is actually the earliest form of the software industry, no plan, resource allocation confusion, software development process is chaotic, disorder, and spontaneous state. The success of the project is fully capable of luck and project members. The second situation is actually a form of progress, the most typical representative is the waterfall model we mentioned before. Why is this consideration of the careful plan easy to fail? Very simple, you think you consider care, but it is actually not necessarily. I have seen the timetable that is considered in a detailed plan for a week. It seems that he didn't plan to let the developer rest. The plan is an estimate of the future. Which one can accurately say the situation after 6 months, I am afraid no one can go. Before September 11, how many people can eat such a big thing? Then what do you calculate for half a year, or even a year? In addition, do you really understand your developers, so that confidence replaces them to formulate plans? Some people say that the plan has not changed fast. This sentence is very right, it reminds us that there is no plan to do it, and it does not have an executable plan. It is not to be used to show off, it is to be used. When we plan to plan, there is no gorgeous phrase, a beautiful idea.

But we can't do not have some elements: What): The work needed to achieve the target in order; when: when the time required to complete the work; how to do it: To complete Working with the standard to measure; resources: Person / funds required to complete the work; Who (WHO): Who is responsible for completing the task. But we still can't escape the problem of departure from reality and programs. Although we have a lot of things expected after a year, we have nothing to grasp the developers. But if you think about what you have two weeks should still guess, eight or nine don't leave ten. This will lead the concept of iteration. A project consists of several or even iterative cycles, each iterative cycle is easier to estimate and develop a plan. This is the idea of ​​iteration, and a big leap in software engineering technology. Speaking here, I have to hang everyone's appetite. Regarding the discussion of specific development iterative plans, we will stay to the next chapter to discuss the details of demand modeling. 9. Training I hard to imagine how a project is not training how it is going. The soldiers have a cloud, "the three armies have not moved, and the grain is first." We can understand that it is well prepared in advance. The project is also the same, and at the beginning, it is necessary to designate a good training plan, and leave the training time. I think, unless it is a very perfect team, his member must still have something you don't understand. If there is no training program, push the task of learning to push down the person, the risk of the project will become difficult to control. Speaking of training, everyone may think that everyone is sitting there, listen to a teacher. Not like this, training here is a generalized range of training, reaching a group of courses, one meeting, small to one discussion, one exchange, can be training. And its purpose is to complete the project to make the team members have enough knowledge and skills to complete the project. Demand Practice (5) Detail Demand --------------------------------------- --------------------------------------- from: IBM China author: Lin Xing [2003 / 04/02] Different from the business modeling period, I no longer spend the need for a pen ink discussion requirement, because the practice, attention and business modeling period do not have much difference. On the complete process, learning like RUP, XP can learn more than what I will say. Therefore, I will focus on some confusion in my actual work, and some thinking. 1. "Relationship between" and other phases "and then thinking about the end of the end. We simply discuss the relationship between detail requirements and other stages. For the various stages of the software process, the difference is only the focus of focus. In the business modeling phase, we focus on the overall needs of the system; in the details of the details, we focus more on the details of the demand. Other phases are the same, the architecture phase, which is of course how to design a suitable architecture; to the design phase, the attention is transferred to how to design. Of course, the focus is different, resulting in the same skills and tools required by each stage. The business modeling phase requires you to have a whole grasp, you can use a simple model, basic user material and other tools. The details of the details require you to fully explore the needs and conduct good communication. Accordingly, there will be different needs in the architecture, analysis, design, etc. The essence of each stage is the difference in attention, which is the same for most software development. Regardless of the process you use is traditional or iterative.

2, Martin Fowler architecture in his ISA writes: I'm using architecture to mean the important design decisions, the ones that shape most aspects of a software system These are often the harder decisions to change later on in the project (. although often not as hard as people think). As a result these are ones where it's useful to start in the right direction, and thus knowing about architecture is a valuable skill for any software developer. architecture is not a mystery, is nothing more than a decision only , Only this decision is particularly important for software. Software developers may have no active architectural design, but his behavior has been subtracted; and some people are always talking about architectures, but does not understand the meaning of this word. The Spring Festival is coming, and the students must go home. How to choose a transportation of home is an important decision. The distance from the distance, the price of different transportation is explicit, it is easy to know. And the experience also tells you that the train ticket is cheap, but it is more tense, the time spends longer, the whole process is not comfortable; the plane ticket is more expensive, but it is easy to buy, the time is small, the whole process is very comfortable. At this time you have to make the right decisions, choose a correct architecture for home. What are the factors you may consider? Some possible factors are listed below: the degree of crowding, everyone knows the situation during the Spring Festival; the difficulty of buying tickets, the train ticket needs to be booked very early; have additional channels, such as you can buy Aircraft's student ticket; economic strength, after a semester spending, there is still much living expenses left; according to these factors, and these factors, you can estimate one or a few possibilities yourself Architecture solution. And this architecture selection directly affects the behavior after you and affects the result of behavior. What is the difference between development software and buy a ticket? The same should take into account the cost, result, time. Different are just complicated: professional skills are required, there are many uncertain factors. So what is the problem of architecture here? What is the relationship between demand? In the above example, you can see what the architecture is determined? It is a factor. What is the essence of factors? It is a need. Factors are demand. Therefore, the demand determines the architecture. In the previous article, I talked about that the architecture must be set before the details are required. Of course, the architecture at this time may be just a sketch. why? Because we have made business modeling, there is a certain understanding of the project, and it is also clear that the needs of users have a certain feature, cost, scope, time, etc. (if you still don't understand this, please return to business) The mode of mode of modeling is not over yet. At this time, the factors of the decision architecture have been formed, and the architecture can be designed. Demand can determine the architecture, and the architecture can also affect demand. The most obvious example is the design of the user interface.

Although the user interface is mainly from demand, different architectures will also have an impact on the user interface, such as a browser-based client, and the interface that can be provided based on the Windows interface client is different. In XP, this architecture design is called Architecture Spike. Why is it called Spike? That is to say, you need to study, solve some major problems, but you don't provide a complete solution. For example, at the beginning of the project, if you don't know about the new server and operating system, you will definitely take time to understand, try, go to test; if you don't understand the database, you will definitely try to use it. This behavior is Spike. So, the design of the architecture is just a preliminary design, not a perfect, styled design. This should be aware of this. The selection of architecture is very related to the experience and ability of developers. In general, it requires developers with relevant experience. Providing architectural manufacturers, such as cattle, how to choose, and a study. For example, the platform of the data warehouse is a lot of varieties; the choice of Web Server is also a five-flowers; the operating system is the same. These are also closely related to the architecture. 3, mode martial arts has a move, play chess with chess. Whether it is a move, or a chess, it is a specific solution for a certain problem. In the field of software development, this solution is called mode. "Every pattern describes a problem that has been repeated around us, as well as the core of the solution, so that you can use the scheme again and not to do repetitive labor" [AIS, 77] Sentence source from the nasal ancestor - Christopher Alexander. In the field of software development, the most worth mentioning work is the "design mode" written by GOF. In this book, the authors describe 23 design patterns, which can be said that these patterns have laid the foundation for object-oriented design. Another work worth reading is the "analysis mode" in Martin Fowler. In software design, we encounter a variety of questions, we may lack experience, or have limited capacity. This is very normal. But the reality is that the code we produce is not clear enough due to design defects, it is easy to make mistakes, it is difficult to expand. I believe that as long as it is a developed software, I have encountered this problem. So, we hope to see how other people are handling this problem. The "other people" here may be a technical expert, or some people who have experienced the same kind, they have the ability to encounter problems, and have experience. The solution they propose is often very mature and can solve the problems you have currently encountered, and you can solve the problem that you have not yet encountered. This is very great for you. So, we talk about what is derived from the model. Note that the mode is a solution for a certain class. The problem here is a demand. For example, customers want to achieve different tax rate calculations in software, then we naturally think of Strategy mode; when the customer's product has a very complex unit exchange mechanism, we can naturally think of it. Quantity mode. Using mode, we can quickly grasp the needs of the needs. On the other hand, mode often tells us more aspects more than current problems, because models are all experienced precipitation. As mentioned above, it can solve the problem you have not encountered. Therefore, we can also find deeper demand from the model. Another point is also very important, although it is not the relationship between it. Mode often has a pattern name. This forms a communication language.

For example, when we are in the chess, just say "the horse behind the gun", everyone knows what this means, absolutely does not need to explain the way each step. The same is true for software development. I smiled with my companion, said: "Factory Method." Two people can understand what this means, because this is a common language, which represents the various types of relationships and code implementations behind behind. . This is very important in software development. Of course, this has a premise that everyone has a transparent understanding. 4. Simple design model is a ring of design, so we are in the previous examples of design and demand. We still discuss this topic in this section. But the focus is different. There is a principle in XP: KISS. Not KISS. It is an abbreviation for Keep IT Simple and Stupid. In addition to XP, other agile methods are advocated simply designed, objected to overchaif. That is to say, designed the current software for the current needs. Many software personnel are perfect, they like the perfect design, then provide this design to the user. This kind of thought is the beginning of excessive design. Unnecessary functions areted to invest in customers. When we do demand, we often find that developers will sell some new features to customers, or when designing, excessive consideration changes in the future. Therefore, simple design means designing the current needs of the current customer, do not think too much about the functionality currently mentioned. 5. How to uniform careful readers may have been suspected of being sinushed here. While encouraging the use, the most perfect solution is designed; on the other hand, it emphasizes simple. It seems to be self-contradictory. Nice this is where contradictions, but there is also a consistent place. Therefore, we need to trade between using the simple model and the simplicity of maintaining the design. Once, we saw a pattern about permission settings, we think this model is very good, it provides permission control similar to the UNIX operating system, can increase group, user, and can set permissions at the file level . If we got treasure, I think this is a very useful model. So, we spent some time will be implemented and intended to be applied to new software. In practice, we have found that there is no such powerful feature that may only be password control, or simple user management. Such complex features have no meaning to them. Perfect model has been cold in reality. In fact, users don't need this feature at present, and don't need this feature in the future. The user's computer is raising, and we estimate that more than a year or two, users may need this feature to manage his increasingly huge employees. However, this feature is complicated to the user, so they are not willing to accept this "valuable" function. Finally, we think of a solution, we define a universal interface for this feature. With this interface, you can achieve complex features, or you can achieve simple features. In short, as long as you have a way to implement an interface. There are many ways to interface, but in the current simple implementation, it may be just a return statement and there is no much implementation. Correspondingly, the user only needs to use a simple method, such as adduser (), updatePasswd (), and the like. The interface has also been simplified. In this way, we can replace the permissions module when users need, do not affect other applications. Of course, there are a lot of details to pay attention.

After completion, we also discovered another by-products: the entire permissions control module is high polymerization, low coupling. Mode, it is like the design drawings of the nut, which specifies the technical specifications of the nut, but there is no specific size. For different needs, we can design different sizes of nuts for use. The drawings are only one need, and it is not necessary to draw a drawing for each size of the nut. So, a model that has experienced practical tests is often powerful. But it can have a variety of different implementations. Which legal stipulates that you have to fully implement a mode. In actual use, you need to weigh the cost and benefits of the model use. You will find that in many cases, you still have a model, but just a framework, or part of the mode, but this is enough. When demand changes, or when new demand occurs, you can easily add bricks on the original frame. Everything is so natural. For example, in a software stored software, there is a transportation selection algorithm, and the current transportation route is one, but it is very likely to increase the new way. At this time, you decide to use the Strategy mode. But you just have a simple framework, only one specific subclass, to achieve the current algorithm. When the new transportation path appears, you need to add an algorithm, you can add a subclass, as long as the interface is the same, the change does not affect the other part of the system. 6. Test test is very important and is the key to software success or failure. But the current domestic pair is not concerned, or pretending to pay attention. This will not guarantee the quality of the software. There are a lot of tests, and we are talking about it here is that the requirements are closely related to the Acceptance Test (about this word, there may be different translations). Surely you are not going to assume you're getting what you need. Prove that it works! Acceptance tests allow the customer to know when the system works, and tell the programmers what needs to be done. The above excerpt "XPInstalled . There are two effects on reception test: first, let customers understand what the system can do, and then let the programmer understand what to make the system. There is a test method to keep the test to finalize, let customers discover the error. Don't do this. The original cost can be corrected for 1 yuan, and it may take 1000 yuan to solve this time. This is the magnification effect of software development. Because many of the work has been established based on this error, developers have also no image for this error. There is a very important value in XP called feedback. Kent Beck has a very good sentence in Extreme Programming Explained: "Optimism is a professional disease, feedback is its prescription." From the needs of the needs, the system is delivered to the customer, and the customer comments. This is a feedback process. The less time spent on the feedback process. Acceptance is an effective means to address customer feedback. Customers write repeatable test scripts, the software developed by developers should experience this test script. This feedback speed is very high and can effectively solve the problem of feedback.

Therefore, customers are also required to provide relevant receiving tests when requested to implement demand: if it's five having the program, it's, it's development. A valuable feature must be testable, if not, Then this function is either worthless, or it is not clear. Note that this test must be repeatable. This is because of the variability of demand. Demand is constantly changing, which means that the code is constantly changing. Therefore, the code that has been proven to receive testing has also need to prove again. This requires testing to be repeated. A large number of tests, even duplicate tests lead to a new problem: a lot of time is tested by manual testing. Therefore, the variable demand puts forward a new requirement for the test: automated test. Only automated testing can only complete such a large number of testing. At present, the best automation test tool should be the XUnit series. Regarding this issue, you can refer to the relevant information, which we don't discuss in-depth discussion. One form of receiving test is the description of the natural language and takes a group of test data. One thing to emphasize is that this test data must include input and output. This can be compared. If only input is not output. Test is likely to be white. Therefore, calculating this output is manually calculated, it is also necessary. In addition to receiving testing, there is a very important concept that unit tests. However, the relationship between unit testing and design is relatively large, and there is no excessive relationship with demand. We just click here. If you are interested, you can refer to the relevant information. 7. Decomposition For demand, the most skills that need to be used may be the skill of decomposition. It can be said that the most important thinking of software science is the idea of ​​"divided into force". Not? Object-oriented is an idea of ​​decomposition. Class, components, packages, this hierarchical structure is not embarrassing "Separate"? Of course, I may confuse the bags and components here. But my main purpose is to point out that this decomposition method is ubiquitous in software development. The same is true for demand. Our earliest business model is to get a profile of a system. Then I went to the details of the details, we will put this picture, down, until we have a grasp. How to take 100 bricks? If a piece of tired, it is easy to fall. A more good practice is to first 10 pieces of packaging, so that 100 bricks become 10 bricks, and then tired of them. Object-oriented is actually doing this, of course, object-oriented achievements is much more difficult than tired. Let's take a look at how XP handles decomposition. The biggest cycle in XP is called release (Release), a publishing requires a month or month, generally no more than 6 months. The final version of the release, you need to provide a publishing version that can run software. Then, XP also defines the secondary cycle, called iteration, once it iterations require a week or weeks. Every iteration is a "Psend Release" (preted release ", that is, iterative finals must also provide a software that can work, this software can be released at any time. In order to define things to handle in an iteration, XP also defines the material (Story), a material represents a feature that customers want in software (Feature), a material is small, it only needs to spend A developer a few days or weeks.

The material is already small, but it also needs to be subdivided to the task (Task), and a task only takes 1 to 4 days of workload. This is not the smallest unit, XP also divides the task to test (Test), but this has arrived at a personal level. We see that XP defines a 5-level unit from the customer to every developer and accurate time to days, hours. So I sometimes listen to people saying that XP seems to be un strold for developers. Wrong, XP can be said to be the most stringent method required, this classification method can be seen. What is the benefit of this classification? First of all, let's see the release version, the shortest time released is one month, that is, the most frequently delivered a software to the customer a month. In this way, the feedback is guaranteed to be largely carried out. Avoiding the last customer discovery in the traditional development method is too late. Look at iteration, iterative is called a counterfeit version, that is, because its nature of its output is the same. It is a product that can be delivered, but iterate is relatively small, there is no need to deliver it to the customer. We know that integration is a big problem in traditional software development. Integration will inevitably have problems, but no one knows where there is a problem. So, XP avoids this problem through uninterrupted integration. However, the cycle of iteration is so short, what can you do? This is the cause of the material. The material is proposed by the customer, and the customer decides the priority, which is determined which release and iteration of the client. At the same time, as we mentioned above, the customer needs to make a reception test for material. A material period is a few days or a few weeks, and the time iterate will be a few weeks. This shows that the material is too large, and the unit is too large. So the material is once again decomposed into tasks. Every task requires a developer to claim, sign. In the process of breaking down, we can find that there are some tasks to share multiple materials, this concept and the concept of use in the use case are consistent. Developers will estimate their tasks. Thereby, a total time of an iterative cycle is obtained. The estimate of this time is based on past experience, so this estimate tends to be more accurate as the project progresses. Let's talk about XP here, don't ask everyone to paint gourd, you can't do that. Because the various practices of XP are all integrated, only all practices can reflect their power. We don't do this. But we can borrow it. Decomposition, classify, sort, estimate. This method of analyzing problems is also our dedication. There are a few points here: The earliest decomposition basis is often the time for customers. For example, customer wants what to see within 3 months. After the customer and development is discounted, it decides to develop two releases. This decision allows the developer to provide reference, but the decision is in the client; the material is proposed, the material's priority, the material arrangement, these are the rights of customers. Customers also have the right to cancel, increase, modify the material, or change its priority; how much software can be seen, and how much software can be seen. Customers can also cancel the current project, and previous investments will have the software output of the corresponding part; the estimation of development time is the power of developers, and any other time schedule of developers is wrong; mission The choice is also for the principle of developer voluntary; if the developer estimates the total time and iterations of the iterative time, it is absolutely unsatisfactory to sacrifice the additional time exchange iteration of the developer's additional time to complete. This approach is tantamount to drinking thirst. A better approach is to remove some tasks. 8. How do customers participate in this is a pure supplementary problem.

Once, a reader wrote to ask me that China's customer quality is relatively low, and the computer does not understand the computer, XP emphasizes the on-site customer reality. XP requires developers to support it in the development of software. It is very difficult to do this. It is difficult to do this. I have encountered this problem, know the problem of problems. I think this problem can be divided into two aspects. One is a customized software. For this project, you need to solve the problem of users' participation, and often the client's older is willing to invest in funds, but it is not willing to put support. I have also seen the client side specialize in a situation where you are going to deal with demand. In this case, if you have no ability to overcome it, then this item is definitely failed. Even if the project is finally successful, I applied for awards such as "major research", you are very clear, this is just a surface skill. There are a lot of reasons for this problem, you need to analyze them, list the deepest reasons, and to ensure that these reasons listed are not interacting. Then try again to solve it. In general, if the customer is really willing to implement this software, things are not unresolved. The other is productive software. We can divide the customers of this software into three categories: market staff, field experts, end users. Market people tend to have initial understandings for software, but this kind of understanding is often not deep enough. Therefore, when developing product chemical software, it is necessary to equip special market staff, and their needs for customers is the most demand for the first source of demand. Since your boss wants to develop this software, it means that the future market of the software is expected, and the requirements of market personnel join should be satisfied. Secondly, it is a domain expert. Nowadays, there are now field experts, and their role is not small, and they are equally familiar with demand compared to market staff, because they are a senior user, and they are familiar with theory, they can Software has developed great effort. Finally, the end users, the participation of the two categories of people in front is not enough, and if the end user does not recognize the software, it is still useless. Therefore, it is very important to ask the market staff to find a possible target customer, trial software, and comments. The Beta test we often say is to do. 9. The first episode of the earliest of this article is from a credit system (in the view of the article, this system is a failure case). In addition, there have been some experience of some previous projects, as well as some of your friends. Finally, it has become this article. This series of articles have a long span. During this period, my thoughts have also experienced a big change, so there is a situation in which some of them have been done in writing. Although this article named "Practice of Demand", the various ideas and methods mentioned have theoretical basis. Of course, I also have a lot of information. And my personal ability is extremely limited, so sometimes I have a weak force. In this case, there will be a lot of errors. I also hope to get the readers' understanding and correct. In the process of writing, there are also a lot of enthusiastic people writing letters, which have become good friends. I have wanted to organize the problem inside, but because of negligence, some of them have been found. I hope I can have the opportunity to do this.

Reference: Karl Wieger: "Software Requirements" Scott W. Ambler: agilemodeling: http://www.agilemodeling.com Scott W. Ambler: The Object Primh, G., And Rumbaugh, J .. (1999) The Unified Software Development Process GOF: "Design Patterns: Elements of Reusable Object Oriented Software" Eric Gamma, Kent Beck: Junit: http://www.junit.org Kent Beck, Martin Fowler: "Planning Extreme Programming "Author's introduction: Lin Xing, Chen Yun Software Studio Project Management Group Senior Project Manager, has many years of project implementation experience. Chen Xun Software Studio is committed to the application of advanced software ideas, software technology applications, main research directions lies in software process ideas, Linux cluster technology, OO technology and software plant models. You can contact him by email IAMLINX@21cn.com.

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

New Post(0)