Lightweight modeling needs
table of Contents
Where did the demand come from? Some basic principles demand types of possible demand analysis Artifact's Artifact Initial Requirements Up Front - IRUF Detailed Details Modeling Stage Solutions Demand Modeling Full Push Tips References and Recommended Readings Footnotes
Where did the demand come from?
From the project Party A, or direct or indirect users, senior managers, operators, support staff, testers, developers who have contact with your system, or maintenance personnel? Is this the source of all formal needs? In fact, providing demand, interpretation requirements, designated demand and arrangement of demand is the responsibility of project Party A. In addition, Party A has the right to develop team investment time to distinguish and understand these needs. It is very important to understand this concept in this way of modeling. The project Party A is responsible for demand, and the development team is responsible for understanding and implementation.
Does this mean that you can wait for your project Party A to tell you what they need? of course not. For what they tell you, you can ask questions, analyze, to give them a more specific content, even as you can make your own opinion make the original intention. You can suggest add some new needs, please note that you are only recommended, they can consider accepting formal needs (may make modifications) or refuse. In order to find potential needs, you should always keep in touch with Party A, and with some existing documents, such as company policies and regulations, previous systems, or disclosed resources, such as information, books, magazines or Your competitors' products and services. Declaring again, your project Party A is the ultimate determinant of demand, not you. I can't emphasize this.
So where is the project from Party A known their needs? "I really hope I can do this", they often complain about existing systems, because their competitors can do, but they can't; or want to avoid the problems that have emerged; or just add more than one New features. Some Party A, especially operators and advanced IT department managers, may need to integrate existing or upcoming horses; or due to a demand for a certain (like a number of computers). It is worth noting that the Party A of your project should be based on a large number of clearly clarify the demand, and these basis should exist, you can determine this by communicating with it.
My experience tells me that the addition of experts in the project is very valuable to identify potential demands. For example, an e-commerce system is built, and I will invite people, tax law experts or suppliers from international software design experience. When you are not familiar with some of the systems (it is possible that this is the e-commerce system you first facilitate users around the world), this method is particularly effective. I often invite some external experts to communicate one or two together, to help us check whether we are lacking because of our experience. This is a very important way to ensure our system is a very important way, especially in the initial definition project. This can also help Party A further think. But do you realize that there is danger? External experts you invited present some suggestions that may be very good, but it is not used at all. In other words, you still have to pick up the selection from these experts.
Some basic principles
The active participation of the project Party A is critical to constructive demand. There are two problems in the actual operation: First, Party A's own ability to provide demand and whether they are willing to participate actively. From my experience, some project groups do not have enough ways to contact Party A (or not know where Party A), this is entirely the problem of project team itself. Your project must have funds, isn't it? These funds must be from Party A from some form, so they do exist. Similarly, the user is also certain. Even if your system is facing the public, there is at least potential users, you can find them, talk to them. So there must be someone you can ask. You may say, "Sometimes it is necessary to find out that these people have certain difficulties", "Let them participate in it, not very good." Yes, there is indeed this difficulty, I want to overcome it. I talked about some solutions in "Solving Demand Analysis Modeling" section, including issues with no sufficient ways to contact Party A. My principle is that if your project Party A is not or is not willing to participate, this means that your project has lost the internal support of this success, so you either solve this problem or simply cancel this project to reduce losses. If you listen to, at least you can't claim to use the development method of the smart model (Party A is a core content in which it is in the development method of AM). So how do you think that Party A is actively involved? Figure 1 is generally described using the UML activity diagram (UML Activity Diagram), which indicates the task of the developer and Party A. The dashed line in the figure separates the two parts tasks. It can be seen from the figure that there are some tasks to work together, such as idea or suggested determination, discussing a potential requirement, modeling, possibly developing Potentially Documenting. The project Party A is responsible for the priority of the designated demand, and the system is developed for them, which is of course their ligation. Similarly, developers are responsible for estimating the resources required to achieve this demand because they are actual staff. If you don't make an estimate, it is unreasonable to use an estimate of the project group. This is unreasonable. Although the priority of demand is determined and estimated exceeding AM discussions, you can find it in software processes such as XP and UPs, understanding them is important for analysis of the entire demand. AM is not a software process, which is just a modeling method applied to these software flows.
Figure 1 Demand analysis phase process (using UML Activity Diagram)
My point of view is: The project Party A should join the modeling and document development, actively participate, not just information. In order to achieve this, it is prone to training, guiding, and guidance to Party A, which is prone to developers. I have seen some small companies that have just started, Party A in large enterprises and government agencies can build demand models with very high efficiency and documentation of these demand. In the telecommunications industry, in the financial industry, in the manufacturing industry, I saw such a person in the army. Why is this important? Because your project Party A is the real expert of demand. They know what they want (see "solving the common problem in the modeling of demand analysis", if they don't know). And as long as you are willing, they can learn how to build a demand model and write them down (translation, so you can communicate with the same language). From a lightweight point of view, this is very meaningful, because more people will share the work of demand modeling. In order to make the project Party A more easily participate, eliminate obstacles in industry terminology, you should follow the most simple tools. Table 1 lists artifacts in many demand stages, they can be obtained with simple or complex tools. For each Artifact, the corresponding simple tools are given. Figures 2 and 3 are two examples using a simple tool. Figure 2 illustrates a display interface with a sticking paper needle to simulate it. Figure 3 is an example of establishing a conceptual model using an index card. When you introduce new technologies during the demand analysis phase, such as some drawing tools that can make good use case diagrams or Case tools with powerful features, this will make your project Party A difficult to join. Because they do not only learn how to model models, but also learn how to use these tools. The less simple tools are used, the lower the threshold, where you have more opportunities to enhance the effective collaboration between mutual.
Figure 2 A basic user interface prototype
Figure 3 Two CRC cards
I firmly believe that the establishment of demand is independent of technology. Object-oriented demand, structured demand, based on components, which are all categories of implementation technology. Although you can choose some technique to analyze the needs of demand, you must keep in mind that you really care about the demand itself. All of the techniques described below, you can choose one or more of the needs of demand modeling.
But sometimes you have to leave the idea of "establishing and technical unrelated demand". For example, a very common restriction is that most projects can benefit from existing basic technologies. At this level, demand is still independent of technology. But if you still have some basic technology, such as a version of the Sybase database or the module given by SAP R / 3, not from the bottom of the bottom, then it is. As long as you know what you are doing, don't do this often.
Remember to start from small things. The smaller the need (FEATURES) or user stories), the more easily estimate and implementation relative to the greater demand (using case cases). For average, a function of using a case covered is more than one use scenario, which is the meaning of "big".
For the use of the requirements trace table (Requirements Tracebility Matrix), you also need to think twice. Tracking ability refers to tracking to another Artifact of an Artifact produced by the project, and the requirements tracking table is used to record these associations. It is starting from each requirement, can be traced back to all related analysis models, architectural models, design models, source code, or test cases. Using the organization of the tracking table To ensure the consistency of each stage Artifact, you must regularly update, not only when it is affected. The benefit of using it is that you can easily analyze which parts in the system will be affected by this demand change. However, if you have one or two people who are familiar with the system (the translation: Of course you have to keep them), when the system needs to change, the evaluation impact through them will be easier and the cost will be lower. In my opinion, the evaluation of the tracking table is too high, because the overhead of maintaining it is much greater than the benefits obtained, even if you have a special tool to do this. Let your project's management recognize its true value and price, let them make decide whether to use it. After all, the tracking table is a valid document. They can make a decision accordingly. Type of demand
I think the demand can be divided into two categories: Behavio, and non-behavioral. The needs of behavioral types describe how users are interactive with the system (user interface), how to use the system (usage), or how the system implements a business function (business rule). The need for non-behavioral types describes the technical aspects of the system, typical such as availability, security, performance, interoperability, credibility, and reliability. It should be noted that these two types of demand are sometimes not necessarily completely separated. Performance requirements for access data are significantly technical needs, but it will also reflect the response time of the user interface, which affects availability and certain usage. Access rights management, such as who can get specific information, which is obviously a behavior type requirement. But it also involves security of this non-behavioral type. Don't be nervous, don't die. The key is to determine and understand the needs given. If you consider a need for a class, who will really care about it?
Artifact, possible demand analysis
Because there are several types of needs, it is possible that some or all of them are suitable for your project; it is because each model has strengths and disadvantages, you should use these models to take advantage of the best efficiency. Table 1 lists some of the commonly used requirements analysis modeling artifacts, more detailed descriptions of Artifacts for agile modeling. The "Simple Tool" in the table points out that the simple tools common to generate the corresponding Artifact (the importance of using simple tools is discussed in the "Some Basic Principles" section).
Artifact Type Simple Tool Description Business Rules Definition Business Rule Definition Behavi Type Index Card Business Rule is a valid principles or policy that software must meet. Change Change Change Case Index Card Change Case is often used to describe new potential requirements or modifications for existing needs. One of both CRC Models CRC Model, usually the behavioral type index card (INDEX CARD) CRC model is a set of standard index cards. Each card is divided into three parts, namely the name, class of the class, and the partner of the class. Category is an abstraction of a similar object. The responsibility is that the class knows or is going to do, and the partner is another class with the interaction with the class. During the demand modeling process, the CRC model is used in concept modeling to reveal the concepts in a certain field and the high-level relationship between them. Constraint definition is a restriction on the degree of freedom for you to provide solutions. It is very effective for the constraint as a global demand for your project. Data Flow Diagram DATA FLOW DIAGRAM (DFD) behavior type Whiteboard Data Flow Diagram The data in the system is in the processing process, the physical, and the flow of data storage station. It is often used to describe the environment of the system and point out the main external entities that interact with your system. Basic User Interface The original user interface prototype is low-precision in both the basic user interface of the Essential UI Prototype. It shows the approximate idea behind the interface, not detail. Basic Case Essential Use Case Behavior Type Paper One Case (use case) is a series of actors, and the value of the participant can be measured by using a case. Basic use cases are a simplified, abstract, generalized case. It draws a user's intent in a manner regardless of a specific technique and implementation. One of the two characteristics Features, which is often used by behavioral type index cards (Index Card) from the user's perspective, and features are a small, useful result. A feature is a unit of measure that can be used, report, and tracking. It is understandable and measurable, can be completed in two weeks (together with several other features) (COAD, Lefebvre, & Deluca, 1999). (Demolition: A Feature is equivalent to a function in most cases) Technical requirements Technical Requirement non-behavioral type Index Card (INDEX CARD) requires a part of non-functionality in the system, such as performance issues, Reliability issues or technical environmental issues. Using Scenario Usage Scenario Behaviy Type Index Card (INDEX CARD) A single logical path is depicted by one or more usage cases or user stories. A scenario can represent a basic route in a case, a pleasant path; or other path in this case; or a path across several cases or user stories. Using a case diagram Use Case Diagram Behavior Type White Board Use Case Diagram consisting of some cases, participants, and their relationships. Or there will be a system boundary box. When modeling, the data flow map is used to describe the environment of the system and point out the main external entities related to the system. User Story User Story's Index Card (INDEX CARD) a user story is your memorandum of talking to the project Party A. It is a high level of demand, including behavioral requirements, business rules, constraints, and technical requirements. Table 1 Optional Demand Modeling Artifact
It should be noted that it does not mean that you need to use all of the above in any project. Familiar with your model This principle (see the Principles of Agile Modeling) is what you want to know when each artifact is suitable for use. The more you know more about the model, the more you can use the correct artifact based on the actual situation.
Artifact's selection is often around the underlying software development process used. On the home page, I briefly illustrate the case where AM is used with other software development processes with complete life cycles, such as XP or UP. Usually different underlying software development processes have different preferences for demand analysis Artifact, like XP uses user stories and use cases. This is also a problem that you should consider when you model it. For details, see AM and XP and AM and UP.
Centered method
How to model demand in a business application? Let us look at the example below. In this example, we have to establish a demand model for a SWA Online system. Before starting, readers must recognize several issues. First, this paper is mainly focused on demand modeling, such as other types of modeling, such as analysis modeling, architecture modeling or design modeling, I will hit and give me the article. Connection. The smart software development is a highly repeated process, whereby actually demand modeling is not clearly clear from other types of models. Second, it is only one of many usable methods, and other methods may be dexterous. Remember, AM is a set of practice-based methods, it does not define a specific, specification, so it can be taken. Don't worry, I will give the other way I may adopt during the process, but this is not all - keep your idea. Third, since the SWA Online develops teams use Enterprise Unified Process (EUP) (AMBLER, 2001B) development processes, the case will serve as a major role. Conversely, if using Extreme Programming (XP) (BECK, 2000), the user story will dominate. I re-discussed this example from the perspective of XP in AM and XP. Fourth, although this example is fictional based on my actual experience, I think this will make our discussion more simply. Fifth, it is best to divide the demand modeling into two different phases: the initial phase of the demand (IRUF) and the detailed description stage.
Demand initial phase (IRUF)
Demand Initial Phase (IRUF) occurs at the beginning of the entire project lifecycle, corresponding to the first iteration in the Inception Phase and XP in Rational Unified Process (Kruchten, 2000). It has three main purposes: First, at least from the high level to determine the scope of the system to clarify the scope of the work you have to do; second, define the high-level needs of the system; third, for the meaning of demand, at Party A And the development project group is consistent. If you and the project Party A at the same place, and they can just achieve more consistent opinions on the system, this stage may only take hours; otherwise, it is possible to extend to a few days or weeks (see "Solving the common problem in demand analysis modeling"). You may need to convene a large modeling meeting, mainly to achieve these three purposes in the initial phase of the demand. These meetings have the following characteristics:
§ long time. It takes a few days to a big project.
§ There are many projects Party A to participate extensively.
§ Trend to compare formal forms (mainly because of the many people who participate in meetings, and what dexterous ways that project Party is not familiar). § Includes some developers. Especially when you begin to let the project group understand what kind of function is done.
The definition of the system range may be enough to use a sentence. It is possible to "sell products to customers" to customers in short, "in the United States, for details, for details." product". The system ranges can also be defined using a CONTEXT MODEL, indicating how your system adapts to all environments. It often uses the case diagram, see Figure 5; or data flow diagram (DFD), see Figure 4 (often called Level-0 DFD). It is very important to engage in the scope of the system. Only this can define your development work. The first sentence above is too general, which may mean that international customers, obviously more than the workload of the US local customers. Similarly, selling virtual products such as online music requires another set of online delivery systems. Over time, this range may change due to the change of the decision of Party A, so always ready to meet changes.
Figure 4 Environmental model of SWA Online constructed with data flow diagram (DFD)
Figure 5 Environmental model of Swa Online constructed in use case (use case)
So, which one is best for describing the system? One sentence, DFD, or use case diagram? Depending on your situation. The statement is directly when it is, but it is worse than the connotation of graphics. The DFD of Figure 4 is centered on the system to be constructed, expressed its relationship with other external entities (tissues, people or other systems), which are outside the control range of your system but interact with your system. The main advantage of this way is that it depicts the main information between your system and the outside in a reasonable detail. The use case diagram of Figure 5 also focuses on the system to be built, and a participant (organization or person) interact with the system. Its main advantage is to depict external and internal participants with the system interactive, while DFD has only external. The main disadvantage is that it does not give any details of the system and participants. Which one should you use? They have their own advantages and disadvantages, you may consider using it. Ok… …? This is not very dense for me. A better solution is to violate the rules, combined with the advantages of these two ways only generate one picture, just like I am in Figure 6. Pay attention to my style: "i" in the upper left corner of the two entities This is an internal entity; removed the digital identifier in the DFD (digital identifier is difficult in manual maintenance), I would rather follow certain rules to make The name of the entity is unique, and this unique name can function as needed. Although I have chosen the rules of displaying data streams, I still can easily use the symbol of the case map. Fortunately, my project Party A like DFD, I also vote it. Remember that there is a destination modeling this principle is to know your listener and choose the Artifact that is best for them.
Don't be afraid to break the rules. General experience tells us not to include internal entities in Level-0 DFD, introducing internal entities means you start excavation details. But I have chosen this here because it allows me to make the second picture. I won't die and die, and I will not cause the model of modeling police. Yes, I violate the approach to the application modeling standard, but I do this to reduce the cost of development and maintenance. When this is a big problem for some people, I think my organization can re-consider the standard.
Figure 6 Environmental model using DFDs with internal entities
In order to determine the high-level needs of the system, I recommend to take the method based on how to focus on how users use the system. According to my experience, this is a way to develop vast majority of software development. If you use the system how the system doesn't have a concept, it is difficult to imagine the software you produce to support their work and improve their working methods. I will use this method to build commercial applications within the organization, the commercial software, the commercial software used by the customer (such as Case Tool or Text Processing Software), the development, and even integrated business systems (COTS) such as SAP R / 3 or Oracle Financials. In the development of the data warehouse system, there is a general error, which is first collecting "data demand". Russence lists the data elements or data entities that users want to store in the data warehouse. At first glance, this is a good idea, but if you don't know how the user uses these data, then you can't make a priority or you don't know if you are doing it is what Party A is thinking. For the COTS system, you need to choose what modeling way to use based on the needs. This is a better way to use the Feature, User Stories (User Stories) listed in Table 1. Based on the use of appropriate Artifact, I will choose to use the case because SWA uses EUP as the main process of software development, and the use case is the most suitable for this process. If they choose XP, use the user story as good. If FEATURE Driven Development (FDD) (COAD, Lefebvre, Deluca, 1999), that feature is my choice. Figure 7 is a graph of a high-level use case, which is a digital photo, from the discussion of my project, the picture drawn on the whiteboard. This is a basic case diagram (Constantine & Lockwood, 1999; Ambler, 2001a), because it displays the system as a technical independent point. Based on this picture, you can implement this system in a whole manual manner, or you can build a fully automated system. One of the cases "Post Product Review" can be renamed "Write Product Review" to make it more general, but my project Party A is more preferred. I have been working hard to make the demand regardless of specific technologies, but in fact, many systems have been limited to a certain area. For example, SWA Online is limited to the Internet-based solution, at which time it costs to try to abstract it, they will only have to pay. Remember to ensure that Party A investment has gains the principle of the maximum benefit, focusing on those needs models that can bring benefits.
Figure 7 A high-level SWA online use case diagram
The case should be simple, and the logical description of a little outline of each case in the initial phase (IRUF) is sufficient. You don't have to refine at this time, you only need to have a basic understanding of the use of the system, determine the initial range, and then add a point in the use case and participant plus a point of proposition. If you get the recognition of Party A, you don't have to spend more energy in the initial stage. It may be enough for three to four cases. Then follow the principle of a destination modeling, we can terminate the work of the initial phase and enter the detailed modeling phase to establish a detailed model and implement the needs you identified. Note that this method is more useful in implementing XP projects, rather than implementing a UP project.
You can see that in the demand map shown in Figure 7, I used the UML's constructor << include >>, however I suggested in the book "The Object Primer 2 / E" (Ambler, 2001a) The use of structural use cases in the case of the analysis level, typically use cases, because they often reflect the architectural and design problems, while the number of cases of the demand level is not the case. Similarly, I will not be complained by the modeling police because so. This figure is meaningful because it shows that it is a common model for different phases in the process, here it means that I have to consider the problem and analysis of two aspects. To reach an agreement between the project Party A, this is easy, it makes it difficult, even though you have "solving the common problem in the modeling of demand". The background, priority and preferences of each Party A are different. In order to reach a consensus, everyone must recognize this, exchanged each other, what they need to get from the system, listen to others, and prepare for a common goal. In the group I have worked, as long as you have any opinions, we will write down each person before everyone can see, and discuss it. This approach can be visually visualized, and the focus can be discussed. In a question, we think that it is no longer necessary or at least relative to other problems, we will wipe it. Although sometimes it is a good opinion, it is simply wiped, because usually I want to record the final decision. For two mutually peerless issues, I like to draw a connection between them to highlight them to discuss.
Since we focus on high-level use requirements, relevant business rules and constraints are often determined simultaneously. Similarly, some technical needs and demands that may or may not be implemented in the future will be determined. In the initial phase (IRUF), you should arrange business rules, constraints, and technical needs. Common ways are written them on paste paper or whiteboard, find out if you have enough information to carry out the next stage the work. The purpose of ending the initial phase as soon as possible is to prevent you from inquiry in progress in this stage. When you perform detail discussions at the initial phase demand discussion, you will bring risks to your project, because you will not receive specific feedback to you, thus caught in the quagmire of analysis. Remember this principle Your main purpose is software, not the models and documents that imagine how your software works. For example, at the initial demand for SWA Online, Party A proposed some business rules and execution sequence, like how to pack a type of goods, some products have a certain amount of time limit, as well as the split process. When I heard the needs such as such a need, I will call someone to write it on the whiteboard or index card, and then put these index cards on the common table that can be seen in each person.
There is an important point of view here: modeling meetings are interactive, each participating. The beginning of the conference requires an experienced model designer to open white, explains some technologies, and promotes participants into the state. This may simply call someone to go to the platform, explain the content that is talking about, demonstrates a business rule to summarize a business rule by filling in an index card, or recording the data on the pasted paper on the paste paper. When the participants are familiar with this modeling method, according to the active participation of Party A of the smart model, you will find that you don't have to spend too much energy to encourage their participation. Yes, some people should be shake and need more encouragement, but that after all, it is human nature (if I can choose, I prefer to choose the joining of Party A, instead of being unwilling to speak them. View of the person).
When your development group determines the current version of the current version, it is often accompanied by some subsequent versions or some potential needs you may implement at a certain time. Although you don't want too much more, you don't want to achieve too much features to meet these potential needs, but you don't want to discard them here. They are also valuable. These potential demands may affect your choice of system architecture. Change case (Bennett, 1997; Ambler, 2001a) is a simple technique for recording potential demand, Figure 8 is two variations in SWA Online. An important job when defining project ranges is to point out which needs should be implemented now, which are out of range. The demand in the transformation case is outside the current project. See the Agile Architecture article for details on how to use changes in the change in Variations. Variation: Extension to North America: Very possible time: 12-18 months Influence: § Must support users to Canada and Mexico delivery. The relationship with the new shipper needs to be established. § It is necessary to calculate relevant tax and tariffs. § Due to legal and local customs, products sold in these markets may vary. § Multi-language support (English and French are the official language of Canada, Mexico is Spanish). Variation: Sales virtual products (online music, video, books ...) possibilities: Very possible period: 6-12 months impact: § Cannot mix with the actual product transportation process. § We may need to support digital licenses for certain products. § Sales of individual products may have some constraint (effective time, copy quantity)
Figure 8 Two change in SWA Online
So how many documents do you need to record the scope of the project, the initial, high-level demand? Just like I suggested in the Agile Documentation article "just enough to use it". For SWA Online, we may establish an environment chart containing the HTML page, the use case diagram of Figure 7, and a short indicating that the range is enough. In order to establish a high-level demand document, I will try to transfer the case to a single document that can be handled in a document, or is a simple text file. The reason why it is because we must refine them in the detailed modeling period. There is such an electronic document that makes sharing and processing easier. As for index cards recorded in business rules, constraints, technical needs, and changing cases, they keep them as further refinement in the detailed modeling phase. I will let my project Party A believe that if we find that they do need, we will deal with it, because we need them at that time. This way to avoid some work that may be unnecessary in document (some business rules are not logical, so you can make the development group before you know that the true value of their true value is wasted). It can quickly enter the detailed modeling phase and then enter the implementation phase.
Detailed demand modeling stage
Once the scope of the system is recognized, based on the results of this phase, you can start developing the progress for your development work, bringing these needs into an iteration process. The program evolves with the continuous development of the needs of the needs, so you have started real development.
The beginning of the iterative process
In the beginning of this process, these requirements will be distributed to each developer. In an item group implemented in an XP development process, developers will form a pair of pairs and voluntarily process a given user story. Each user story is handled in the same process, and this process continues until all user stories are processed. Implement UP project groups or operate in a similar manner, or assigned a demand to a developer or a group by the project manager. Regardless of the way, the development team / pair is in the state of achieving these needs. The first step is to understand what you want to get in detail, this may need to make some demand modeling analysis. There are two ways to model in the beginning of this iterative process:
Concentrate all the needs are modeled together. With this approach, the entire project group and the available project Party A will explore detailed needs, analyze these needs, and propose recommendations for existing system design to support these needs. Suppose this whole iterative process is two weeks, I hope this meeting lasts for an hour to half a day. If this process is longer, assume that four to six weeks, you may need to spend a whole day on this. This time doesn't want more than a day, because you will not receive specific feedback, the specific feedback will only be obtained when you use the code to verify it. The advantage of this method is that there is a specific view that can be made and intended to do, and can get the idea of all project members, thus increasing the opportunity to establish a good start. Its shortcomings are only for small project groups, generally less than ten people. And more wasteful time, because everyone is not to participate in all aspects after everyone. Note Once this initial phase is completed, each development team still needs detailed modeling of the part they are responsible. Each development team is directly modeling the needs of their responsible. Some development groups will give up the above practices in the beginning of the iterative process, and simply let the groups entered the part of their responsible. The success needs of this way has this premise: there is no connection between the demand, or at least contacts too much; the developer follows the collective ownership practice; based on the shared code. Its advantage is that it can enable the project team to enter the first day of the iterative process. But it has several disadvantages: First, when the demand is mapped to the design, there may be two groups in handling the issues related to the order calculation (such as a team responsible for calculating the tax, and another group is responsible for the calculation of discounts This will have two groups of work overlap. But this is not a serious problem, because each group should know what other groups are doing, and work together when needed. Second, this will pass through the entire implementation view of the project after a long time. Third, starting to compete for Party A of the project, because each group work needs to be entered from them.
Iterative process
Once the start-phase work is ended, the project team quickly entered the continuous iterative process, modeling, coding, testing, compiling, or software configuration. The work of most demand modeling in your and project Party A will be embodied during this period. The purpose of this process is to explore and refine these needs. In fact, more accurately, these work is some modeling conferences, because you may continue to repeat demand, analysis, and design. These meetings are generally held by a group of people, generally including development team members and input by Party A by one or several projects. This kind of meeting generally discusses a certain type of problem, such as "Sally, can you spend a few minutes to talk about how the customer searches for a single order?".
So how do I make detailed demand modeling in the project of SWA Online? First of all, suppose we have two people to form a pair. In this iterative process, we have to implement the definition of the order and use the order of the basic route of the "Place Order" behavior in the case. Here, we don't implement lookup feature, any type of error and abnormal processing, tax calculations and discount calculations [1]. The basic route of a behavior is often referred to as "Happy Path" because all operations along this basic route are normal, pleasant. Alternate Course Of Action is a way to describe the route that is when there is an abnormal operation, such as a case where a user is set to a product lack of inventory. We are now only concerned about "Happy Path", and other needs will be processed by other groups or we. The first thing we have to do is fulfilling the logic process of this basic route, as shown in Figure 9. At the same time, the original user interface prototype of this case is also performed, as shown in Figure 2 above. The reason why we must conduct these two parts parallelism because they solve this problem from two different aspects. Using the case described is what the user is doing when the next order is to do, and the basic user interface origin is constructed a user interface that supports the behavior. Note that another case "Search for Item (S)" is called using a case "Place Order" using the constructor (STEREOTYPE << include >>, see Figure 7. Although this function is part of the case in this case, we don't implement it here because it exceeds the scope. We will use another way, it is possible to directly give a page of a hypothetical query result. This query function will be implemented at a later time (remember, what we use is incremental way). It is also now not considered any type of technical problem, and we will determine these issues in future analysis or design. Now we just want to understand the basic process of this order, later (maybe a few minutes later) we care about the details of the implementation. For logic steps we don't have in this iterative process, such as taxes and discounts, when we are encoding the interface.
This case case starts from one user. The user searches items through another case "Search for Item (S)?". Users choose one item and add it to his / her order. Users specify that they want to buy the number of items. The total price is calculated through the unit price and purchase quantity of the item. Users repeat steps 2 to 5: Continue to order other items. The user ends the item to their order. Users provide shipping information and payment information, including their name, phone number, and mailing address. The system calculates the total price of all items in the order. The system is calculated for this order based on the rules of "Calculate Taxes for An ORDER". The system calculates the discount for this order according to the rules of "Calculate Discount for An ORDER". The system displays taxes and discounts. The system plus taxes and subtract discounts, and the final price is obtained. The system shows the summary table of the order. Users verify that the order is correct. The system is scheduled for this order (see Using the Case "Fulfill Order" system) to give a set of summary receipts.
Figure 9 Behavior Basic Route
Although we know that the system uses a browser to operate, we will not use an HTML editor to design the user interface design, but still use paste paper. Because in the early stages of user interface design, we often increase or decrease control, change the layout, we want to support with a tool, while the flexibility and flexibility of paste paper is what we need. When the layout of this page is stabilized, we will go to the HTML editor because we want to generate a more specific interface to make Party A. At the moment, we will act simple. At this stage, we follow several practices of dedication. Obviously, there is a Create Several Models in Parallel, because we have carried out the work of using the case and the basic user interface; modls with others, because of the two Our developers and at least one Party A, which is responsible for providing needs; DEPICT MODELS SIMPLY, I can see this through this simple model in Figure 2; there is a simple content (CREATE SIMPLE) Content) This section, Figure 9 is a good example, it has just described business logic using cases in detail; use appropriate artifact (s) (Apply the right artifact (s)) This article, business The rules are not reflected in the case and in other separate business rules artifact, although you may make an objection to "the total price of the calculation order is a simple business rule" (at this time, for the calculation order, the tax and calculation order discount These two business rules that you might be reserved in the artifact of the business rules in the document or the card. In addition, the demand for user interface is also another artifact, ie the basic user interface prototype. If we still have data demand, it will use conceptual models; there is a case where you switch to another Artifact (Iterate to another artifact), when we add one of the user interface prototype, discovery in use case The lack of corresponding logic, and vice versa, then we will modify in the use of cases and basic user interface protocols; finally, it also uses the simple tool (Use the Simplest Tool), user interface prototype It is paper, written on a whiteboard using case logic.
Generally, we spend the above modeling time is 30 to 60 minutes. Suppose we are satisfied with the results of modeling, or continue analysis and design work until coding, or take a few minutes to update the concept model of the project group. I recommend using as simple conceptual model, just like the CRC card shown in Figure 3 because they are easy to use and very easy to be understood by the project. They are not only used to represent the main entities in the system, but also the responsibilities of these entities (including data and behavior). For conceptual modeling, your next best choice is to use UML class diagrams (Class Diagram). It has the advantage that it is possible to represent the relationship between class or entity, such as multiplicity and role (ROLES). The class partners in the CRC model implies the relationship between classes. The problem is for your project Party A, class diagrams are not as easy to understand, even if they work hard to participate, but class maps are too complicated. Traditional data models are used for conceptual modeling, and the practice verification is also possible even when the use of structured techniques are implemented, but the class diagram of UML is difficult to do. Although the modeling work I have told here is like it to spend an hour, you can easily organize your modeling work and better divide. Perhaps first set out the cases of using the previous layer using the case and its corresponding user interface, implement this part of the function, and then go back to solve the cases of the following layers. This method is working very well in two layers, you should use the most suitable method for you.
Recognizing that it is important to repeatedly repeated during this iterative process. When needed, you will return to the work of demand modeling. When you start implementing this feature, it is possible to find that you don't know the details of your work, such as the limit of purchases for some items. If this happens, you will have a new feature requirement to evaluate, you want to specify priority and bring it into the iteration process. It is possible that your logic order reverses - the customer may first provide delivery and payment information; it is also possible to provide a way to provide customers with one-time establishment of their delivery and payment information. All in all, new demands must be handled during a new round of iterations.
Solving common problems in demand modeling
In order to model demand in a smart manner, there is a need for a certain condition. But unfortunately, many project groups do not have. Demand modeling is often affected and destroyed by the environment you are, generally the cultural development of the organization is not conducive to effective software development or the impact of Party A does not know their decision. In this section, I list some questions that often encountered in most project groups in demand modeling and discuss possible solutions. These common puzzles are as follows:
It is difficult to approach the project Party A Party ', Party A Dispersed Project Stakeholders. Party A party does not know what they want (Project Stakeholders Do Not Know What The Want) project change your mind (project stakeholders change their minds) Conflicting priorities (Conflicting priorities) too many projects Party would like to get involved (too many project stakeholders want to participate) project Party specifies technical solutions (project stakeholders prescribe technology solutions) project a Fang legalistic (project stakeholders are unable to see beyond the current situation) Party vague project (project stakeholders are afraid to be pinned down) project stakeholders do not understand the modeling artifacts (project stakeholders do not understand modeling artifacts) developers do not understand business (Developers do not understand the problem domain) project stakeholders too focused on a certain type of demand (project stakeholders are overly focused on one type of requirement) project stakeholders to determine the needs of the many red tape (project stakeholders require significant Formality Regarding Requirements) Developers don't understand demand (Detail "Diffous # 1 is difficult to approach item A
This is a frequent problem. Due to some reasons, senior management sectors are sometimes willing to invest millions of dollars for a system development, but they are not willing or cannot assign some suitable candidates to tell you what this system needs to do. "For the success of the project, developers need to receive active support from Party A". The project is often seriously lacking for this understanding. They don't know how software is developed; or they have always worked in this way. (Translator: 即 不 不 人员 人员 协 协 开 开 开,,,,, 方法 方法 方法 方法 方法 方法 方法 方法 方法 方法 方法 方法 方法
To solve this problem, first you need to communicate with the project Party A, telling them that you need to work closely with them, they must work with you with you. Sometimes there may be no confirmation users, this is usually the case when you develop a retail product or a web-based new system for you (potential) customers, in which case you need some people to replace . A better way is to choose your market staff or sales staff because they are familiar with their customers, and their brains will have a general contour. Or directly find some possible users (you can think of this system from the user's point of view; or hire some people from outside, they should be the user of your product). According to my experience, you can definitely find people who can provide your system. I have had some timers I have not been able to provide people working with me (but I finally found [translation]). Remember your project Party A is not only a direct user of the system, you should realize that you are risky if there is no direct user involved in your software development. Puzzle # 2 project Party A is dispersed in all areas
For the previous problem, there is another reason is that your project Party A and your development group are not in the same place, making you no way to work well with them. This situation often occurs within a relatively large organization, and some projects are outsourced to other organizations; or there will be this problem in a project developed by multiple organizations. There are several ways to solve. First, find ways to concentrate the development team and project Party A to a place. As I mentioned in "Communication", face-to-face communication is the most direct effective way. If you don't do this, the next best approach is to let project Party A and developers in a period of time, and another time communicate through other means (in "communication", I propose several options The way, such as email, video conferencing, and some tools that support collaboration modeling). I have participated in a project group consisting of 300 people. The project Party A works together with our developers every three weeks, and the other two weeks are connected by email and telephone, this way is quite it is good. If the two methods are not applicable, the next better method is to work together to work together to the grounds of Party A of the project. I successfully used this method in several projects. But pay attention to this is very difficult for those who are traveling (I often travel, fortunately, I like to travel). Another way is to let business analysts go to the project Party A to understand their needs, and then let them come back to define demands with developers. Of course, you can use these methods based on your situation.
Puzzle # 3 project Party A party doesn't know what they want to get
This is why you want to take time to model it. By modeling to explore what they want and what they are important for them. Today's business is very complicated, Party A often realizes problems that need to be solved or have improved opportunities, but they don't know how to do it. This is very normal. Have you renovated your room or re-arranged furniture? You know that you want to have a better living environment, but it often measures. Maybe you will see the pictures on the magazine, visit a furniture store, or go to a friend to see how they are furnish. If you feel difficult to interview a living room, I know that the Party A of your project is to determine how it is not easy.
This is a normal phenomenon, we start with this point of view. If your users can't tell you how they want to get something, tell them that this is nothing. What they need to do now is to tell you what they want to make you. Similar to the renovation room, you may now have no overall layout ideas, but you can start with a bookshelf. Focus on one aspect of the most clear ideas in the system, modeling this small part, and then implements a working system (follow the code to verify this). They can operate on the ground and give you feedback. If they can't even even the demand for a small point, it is as if you are completely uncertain, there will be books in the room, then start from investigating their current work. By modeling existing workflows, you will learn more about their work, see where they may need, and the worst link, where you can suggest it to them. Puzzle # 4 project Party A change idea
Party A is also a person, and it will change your mind. You put the furniture according to the location of the imagination, but when you go back to the end, you may think that there is no achievement in the imagination. You will change your idea, let alone the complex system. The 100% of the project will change your idea.
To solve this problem, you first have to accept this fact, hug changes. No matter what change happens, it is related to modeling, because you will find that you don't know their needs (see the previous discussion), or you don't understand what they want. When you discuss with Party A, you should have a consistent understanding from their perspective, which will ensure that you don't make another assumption, and will improve the quality of the conversation. I have participated in projects for an e-commerce system development management system. In this project, we have drawn a fair and accurate demand. In the first week, we provided two web pages: one is the home page, which contains a menu item for key features; another high priority function. We do it all as required by them. When we want them to demonstrate, they realize that the initial idea is not good, then ask us to re-construct. Change is coming. Finally, when the user changes the idea of a part in the system, you will find that it is actually because they don't figure out the problem that needs to be solved, which means that it is necessary to open a meeting with them (see the demand modeling meeting). Related content); or because of the opinions of Party A, Party A, there is no proper handling.
Puzzle # 5 priority conflict
The system you built must reflect multi-faceted needs, including direct users, senior management, your implementation personnel, support personnel, and maintenance personnel. All aspects have different priority requirements and objectives, even if different individuals in the same category are. This will conflict and conflicts must be processed.
Once again, the first is to accept this phenomenon. The priority of the system needs to be negotiated. Do you notice what I said? You need to define your system's priority. Every project has a priority in the minds of Party A, which is very good, but your purpose is to decide the priority of the entire system, which is often different from their personal ideas. One way is to implement representation: specify some representatives, each of them can represent Party A of a large group, let them negotiate to make a decision. You may want yourself to support this consultation, but this work is time-consuming, and it is possible that the results will lead to the formation of hostile with you and your project groups (expensive). I suggest that other people will do this as much as possible. If the negotiation has no result, your last trick is only the help of seeking the gold owner (that is, the person who pays people), and requires them to arbitrate. In the development of an international e-commerce system I have participated, some Party A visualize the system to support multiple languages (English, English, Spanish, German, Japanese and Cantonese). In this way, only we can serve every major market. Other parties want to make this system run quickly, but only willing to support US English, because they think this is acceptable for customers (your project Party A is stupid). We can't agree, so I react up this problem up. The final decision is that the first version only supports US English and then performs a demand assessment when there is indeed other languages. Puzzle # 6 Excessive project Party people want to participate
Sometimes you will find too much people who want to participate. This situation usually occurs in the initial stage of the project, everyone has a strong interest, or your project is related to the individual's performance, many people want to be stained. The best way is to thank everyone's enthusiasm, let them understand that your help is enough, and you have already selected some people, telling them to contact them when you need their help. When I am in this situation, I will try to pick the most suitable candidates, those who can provide the best insights and will take time to work together with my development group. At the same time, I will not alienate those who haven't joined in, and it is possible that some special expertise we need at some time, or you can promote our work through them. In general, a positive participating project Party A will become more familiar with this system, but it is also an increase in blind spots, and it is increasingly difficult to find some potential problems. Therefore, it is quite worth the connection to qualified external personnel.
Puzzle # 7 project Party A designated technical solution
I have encountered such a situation, and a project Party A person said that we need some kind of technique, such as a version of Oracle. At this time, I really need is from them to the needs of behavioral types, such as "customers can deposit the money into an account." Indeed, the technical constraint is certain that the development group should know, but at this time they just want to tell you that oracle is the fact that Oracle is the fact that the database standards they organize. Many times, the real problem is that your project is difficult to distinguish between system needs and system architecture. It is possible that this person is a technical problem, or it is just because they are just a new period of business weekly Read a successful article for successfully using an Oracle database.
The best solution is to define the rights and responsibilities of Party A of the project to develop an appropriate working framework so that they can focus on what issues need to do in the definition system, and developers concentrate on how to do This issue is on this issue. Another strategy is to ask them "If you already have an appropriate technology, which is still so important?" Or "How do you want to use this technology,", this problem is to identify the actual needs.
Puzzle # 8 items Party A ink
In many organizations, people have worked in the same way for many years. They may never have seen other ways or never thought about it. They have a fear of changing, which may be that they are afraid that there is no required skills to adapt to new systems, or they may be worried that they will be replaced by the new system. For these concerns, they will give demand in the way they are suitable for them. The best way to solve this problem is to discuss current situations, which way to distinguish it is good and which way is not good, and tell them how to change the current situation. Assuming in the Swa Online project, a part of a person tells you that any set of items can only be ordered at most when determining the demand. what? Obviously If you ask this inquiry, you will soon learn that their current operation procedure is the customer mailing or fax to the company, and then the customer service representative is input. Each set form is only ten lines, and it is known that the previous green screen (ie, a single display) system is also designed to allow 10 information to be entered each screen. In fact, it is not necessary to ask so much, you should point out that the order of filling in the paper form is the real reason for this restriction, because the size of the paper is limited, then demonstrates that you can easily achieve more than the ten items in a single order. After a while, he will recognize this is entirely possible, especially when you show him that its competitors do not have this limit, it will also eliminate his doubts. Puzzle # 9 items Party A
Sometimes because Party A is not willing to make specific replies, the demand given is very vague. This is mainly because they are afraid of mistakes. Their previous experience tells them that re-realizing a change in demand, demand must be correct in advance. This is basically unable to do, thereby choosing a vague word, not expressing on some issues.
"You are ready to meet changes; your development method is iterative, increasing, so that it can reduce the overhead brought by changes; your goal is to provide them with the best solution, and this means some Demand will evolve over time, "To solve this problem, you should leave such an impression to the project Party A. The words and deeds are consistent, and the changes can be accepted and supported during the implementation process. After a long time, I will see my project, and the Party of your project will recognize that they can make a decision now, and if you need to change safely if you need it in the future. When you finish the software after each iterative process, your Party A sees that the software will be afraid of the state of statement when they continue to develop by the system understanding.
Puzzle # 10 items Party A party does not understand artifacts
Most of the projects, there may be most developers, have not officially launched modeling. It is very likely that they don't know how to see a UML activity map, or a data model, or a UML usage case, because this is not the skills required for their daily work. The problem is that they need to understand these Artifacts you do, so that you can understand what you express, you can actively join the construction work.
The first is to determine what Artifacts you need to know your project, so you can know where you should concentrate. This is the easiest tool to use this method to help you. If you strive to use simple tools such as index cards, paper and whiteboard, you reduce the learning curve of Party A. The second step is to teach them these technologies, I prefer this way of Just In Time (JIT). That is, when we need a technique in a modeling meeting, I will explain it in general, and then discuss how to apply this technology in depth in the issues we discussed. In the beginning of a project, I will summarize some common modeling techniques to make them feel a feeling of work. It will also provide them with some readings, usually the object primer 2 / e (Ambler, 2001a), which tells these techniques in detail (translation: do not forget advertisements. Using this method, I have taught the two simple tools that have never built models, like CRC and basic user interface prototypes, each with less than fifteen minutes. For those complicated technologies, such as flowcharts or class models, you need to learn slowly. The third step is to generate operational software as quickly as possible and to get specific feedback. When these models become a reality, your project Party A can see that the basic user interface model they write on the paste paper change to an HTML page, and the CRC card describes the customer's concept reaction in the software. Puzzle # 11 Developers don't understand business
A universal problem is that developers don't understand Party A during the beginning of the project, making it difficult to communicate with Party A personnel. This is natural, just like modeling is not the daily work of Party A, developers are not an expert that is familiar with Party A business. That's why people who need two groups are actively involved in demand modeling. If the three people must have the principle of our teacher, everyone can contribute to it. Developers need to take time to learn the corresponding business, although they will ultimately learn with the progress of the project, but we often find that this is too slow, you must have to speed up this process in some way. A year ago, a company I worked, they did understand the importance of developers to understand business. In the first three days, I and another new employee were trained by the vice president of Party A. This is a billions of dollars of financial institutions that describe the basic situation of their departments. Each Vice President takes a few hours to train two (yes, two) developers. If your organization is not like this, you can find a few books related to the business, the instrument of the instructor is ideal. I think developers should read it extensively. I often read wealth magazines, economies, Utne Reader and national geographic magazines, not only to THE COMMUNICATIONS OF THE ACM and IEEE Software related to software development. This makes me have a broad knowledge background, which helps me in entering a new environment.
Puzzle # 12 Project Party A Party is concentrated in a certain type of demand
Sometimes you will find that although Party A provides a lot of demand for you, it may be in the form of a case or using scenario, but it is not enough for non-behavioral types (or behavioral types). This indicator shows that there is no to find someone, or you miss someone in some aspects such as operators and support staff. Therefore, it is necessary to re-considerate a combination of Party A in demand modeling.
Puzzle # 13 Project Party A Participation has a lot of bashus
Many Party A believe that formal (planned meeting, the official demand document and formal speaking of their review and signing) are the performance of professionalization. I think this is the software process concept formed in the past two eras. Our Party A side does not know that there is another road to go. This is also due to the tension relationship between the information and the business world. Our Party did not trust us, they insisted on fulfilling these many of the traditional articles, with this to get more controls for the development process they are not familiar with. You need to communicate with them, explain to them, there is another more destacious way, let them understand the problem brought now (slow development progress, there is not enough opportunity to understand the demand, overboard costs ...) . Ask Party A, what is their true purpose? Is it a development of a running system or a meeting and manufacturing documentation? If the former is definitely it, then ask why they have to stick to these procedures. Don't accept their first answered, you should set up the roots, find out the real reasons. As I pointed out in the Agile Documentation, they don't believe us, this is a way they are holding our hands and feet. The next step is to believe you, generally more difficult, mainly look at what they have experienced in the previous software development. And ask them to remove some procedures. Then you have to prove (ie delivery software), you can show them no more procedures. Deliver the user through the looped iteration process until your software can be delivered to the user when working effectively.
Puzzle # 14 Developers don't understand demand
"Developers don't understand the needs of business analysts and users", "in project groups that do not use smart models, they often hear such complaints. Fortunately, you will not encounter this problem in project groups that use dense modeling. First, familiar with your model and familiar with your tools tell you that developers should have sufficient training for the artifacts and common tools used and have sufficient experience. If not, then they must receive training and guidance. Second, incremental changes This principle suggests that you divide a system into many small parts, each time a small piece, one is established, which is also reflected in small incremental modeling. This avoids the developer's need to understand too much demand, caught in a big demand document. Third, the active participation of the project Party A must have this principle of the three people to ensure that your project Party A can explain their needs to developers, and developers are willing to do so. Fourth, create simple content and simply modeling these two principles ensure that your demand model is as easy as possible.
skill
The techniques listed below can help you improve the efficiency of modeling model modeling, and they follow the way to model:
The collection of demand runs throughout the project. Most of these items are. Although most of the demand work is in the beginning of the project, it is very likely that you still need to go back to demand until the code is completely freeze. Remember the principle of hug changes. Explanation technology. Each participating personnel, including project Party A, should have a basic understanding of modeling technology. If they have never heard of the CRC card? It takes a few minutes to explain what they are, why do you use this technology, and build it. If your project Party A cannot use the correct modeling technology, then Party A active participation will not come up. Use the user's terminology. Don't force the project ATM using the terminology of your software development. This system is built for them, so it should be you use their terminology to model it. enjoying the moment. Modeling is not a hard work. In fact, you can make a full style. Tell some jokes, easily. People can be more efficient in a brisk environment. Acquired management support. Introducing the time of demand model, especially in this paper, the use-centric design technology, is a new concept for many organizations. The project Party A is actively involved in modeling, which may be a fundamental change in most organizations. Anything involving cultural changes, no support for advanced management is impossible to succeed. You need to get your information department and management of management over the user. Take a width priority method. My experience is that it is best to outline the outline of the system at the beginning, and learn about the system of the system as much as possible, and then concentrate on a small aspect. In this way, you will soon have a understanding of the whole system, choose a good entry point. Existing documents are a good source of demand. As a policy manual, government law, and even school textbooks These existing documents are a good source of demand. In an e-commerce system I have participated in, I am the first thing is to find a book about e-commerce to identify some basic needs (such as supporting credit card transactions). Remember to reserve the practice of existing resources. Remember today's users are the analysts and future developers tomorrow. Three people must have this principle of our teacher. In fact, it means that your project Party A is also studying software development. Often see a user first becoming a business analyst, and then becoming a real developer by learning more development skills. Because the smart software development is more emphasized in the past software development methods, this phenomenon will happen more often. Getting these people who are willing to carry out this transformation, give them help. It is possible that some people will help you build a business skills, and help you jump out of the world. Reference and recommended reading
See http://www.agilemodeling.com/essays/references.htm.
footnote
[1] This example reveals common problems with cases. For a single iterative process, they are usually crude. You can let a case of use in multiple iterative processes, from project management perspectives, it is not very good; or you can refactor to a smaller set of cases, this is from modeling angle. not good.
Translation
Artifact - the ultimate or intermediate product manufactured or used in a software project. It is used to record or communicate information. It can be a document, model, or model element.
This paper translated the consent of Mr. Scott W.AMBLER, thank you here.
My website: http://cn.geocities.com/luckygao100