Serializing: Analysis of the five-robust analysis of the start of object modeling
Serializing: Analysis of the five-robust analysis of the start of object modeling
Today, introduce you to the important content of the Iconix modeling method: robustness analysis. Through the work introduced in the last two serialization, we already have a forming hierarchy model, which is based on the overall concept of analysis of the needs. So far, what we do is to understand this system, that is, how to transition from the analysis phase to the design phase from the analysis phase? The robustness analysis debut, this is a very simple but very effective technology, learning most designers very quickly through simple 30 minutes.
Healthy analysis is not part of the UML, which is included in the "Rational UML Special Object Process Extension", nor a regular OO design method, so most UML books have not been mentioned at all (now you are blessed, this Article article will introduce this technology in detail, I also have to find some reference materials to avoid the wrong smile).
The robustness analysis is to classify the object set (hierarchical model of the participating case) in the case, and then analyze the relationship between the objects. And the MVC is a bit similar, robust analysis will be object (not called class here, because it is dynamic analysis, participants are all instances of class) into three categories:
Boundary objects, participants use this object to communicate entity objects with the system, this does not have to say more, the bridge between the object, the boundary object, and the entity object
There are four rules corresponding to interactions between three types of objects:
The use case's actioner (that small person) can only use the boundary object interaction (automation boundary inside the structure analysis) boundary object only with the control object and the actor interact (ie, directly accessing the entity object) entity object can only be related to the control object. Interactive control objects can interact with boundary objects, or interact with entities, but cannot interact with the actioners.
Ok, let's start ROSE, and make a picture to join you.
Healthy sexual graph analysis rules
By drawing robustness analysis, you can easily get several key content
Preliminary design of the normal integrity and then discovery
Below is the robust analysis of my guessing games:
By analyzing the analysis of the robust analysis, a game interaction can be made:
Finally, the robust analysis is a tool. There is no need to retain it after running, it is not much used in future design.
Continued: Object Modeling Six Fully Design
Continued: Object Modeling Six Fully Design
Originally serialized, 10 articles, but after the analysis of the robust analysis, there was no state of theory, and there were some skillful jobs. He has said that this contribution does not tell UML, if the reader needs to get UML Knowledge can refer to other information. I am telling the remaining part of the other, this contribution will tell this. There is no introduction to the content of the model model, most of the reason is this self-contained system, and I will introduce you to you.
The preliminary design of the model has been completed after completing the robustness analysis, and the designer has a preliminary system. If the reader has the UML foundation, it is easy to use the various tools provided by UML to improve the design.
If you find that the class map is incomplete, we should continue to use robust analysis to study it, continue to discover the class until the entire system is complete.
In the case where the class diagram is complete, it should be a class allocation method and attribute, which is a key step in design. Since we use a rapid prototype method, in many places can use reverse engineering to reduce workload (boundary). Attribute and behavior of the controller and entity, can be analyzed by sequential diagrams. If the reader is familiar with the CRC card, it is also a good way to obtain behavior. The sequence diagram can be converted directly into a collaboration map, I personally don't use the collaboration map, but if it is useful for you, it is good. Only the F5 key is required in ROSE, you can obtain a collaboration map from the sequence diagram.
After each class is assigned, how to consider how to implement, the modeling of modeling has been completed.
In fact, it is not difficult to model, just remember the time check demand, don't let the design out of control, you will succeed.
Object modeling starts. (There is a little tiger head snake tail, no way, the back part of the modeling method is basically no correlation, all how to draw the skills, I don't have a lot of books in the market, I don't have enough. "
Thank you for your support, thank you for all your friends.
Serializing: Two Analysis Hierarchical Levels of Four Domain Modeling of Timing Starting
Serializing: Two Analysis Hierarchical Levels of Four Domain Modeling of Timing Starting
In the last serial load, we have initially analyzed the problem domain, obtain a list of class names, and the next work is to draw this analysis level class. Obviously, get the list of classes, of course, Class Dragram should be made, and there is no need to use a specific tool, any vector drawing tool can do this. Everyone pays attention to the class diagram made in this stage, not the class chart to be implemented, but an analytical class diagram, its function is to help the designer's relationship of the system, and put a complicated relationship between the demand manuscript into one Clear full system of context.
Please forgive me for using a less appropriate example. This game is too simple. There is only one participant, there is only one activity. If you use an example, you only have a circle of a circle with a lonely. The question listed here is purely to explain the analysis of the idea. If you do a project in the future, don't complicate things like I deliberately. Gossip less, start ROSE to make Class Dragram, which should be like this.
Now we have to use our expertise to summarize. Obviously, the error message and successful information require a base class, the player's answer, and the correct answer are the same. So, the class diagram has become this:
Please forgive me again, I deliberately make the system so complicated. In fact, for this simple case, there is no need to do this. I just want to explain the class after the discovery class should be summarized. The classes in the actual project must be very much, and the relationship between them is very important, which is an important way to grasp the overall way.
Next, it is the association between the analysis class, and it is also looking for clues from demand documents and problem domains.
"Game Engine should prepare a correct answer", yes, the game engine must use the correct answer.
It's time to do it now, it is obvious that the core of this game is actually a comparison operation, then where should this action be put to deal? (Hey, in fact, this should not be considered at this time, but because the project is relatively simple, I will not have step by step.). I don't know if I don't know MVC. Maybe someone has done, but do you know the MVC's analysis method? If you know the contents of the back, you will be able to look at the contents of the two chapters if you don't know. In fact, there is something similar to MVC in the OO design, which is a robust analysis, similar to MVC, and three classifications also have three classifications: borders, entities, controllers. Now I have a simple classification: there is only the entity and border class, there is no controller, so I need to introduce some Helper classes to supplement this level map, but today, the hand is tired.
In addition, from this chapter, I have to change the topic of this chapter. Because I will join other technologies now, I will cut off some iconix content, I can't call Iconix, so as not to truly Iconix people come to find I am troublesome, and I have been called the object.
Model, UML, Rapid prototype and Iconix
Not much nonsense, if you want to engage in RUP, Iconix is good, you need a roughly understanding of the model, UML. What is the model? It is the abstraction of specific things. For example, you go to buy a building, no matter how the sale of the sale of the sale, you still haven't spent it before you have seen the building, only you have seen it in the house, you know what it is. However, you have not so much time, and it is possible that the developers have not yet covered this house. At this time, Miss sales will take you to the sandbox, pointed to a house model: This is the house you want to buy.
Ok, although now you haven't seen the existing building, but see this model, you should have a probably aware of the building you want to buy, and let go of the factors that are deceived, and you will see the roots of the best in the future. The model is the same structure. Of course, the housing model does not exhibit all features, such as the direction of the water pipe and the electric light switch, although these factors have a lot of affected residential quality, but this is not the first consideration when you buy a building. At the same time developers generally prepare a variety of models for you to visit, such as the overall model of the community and room model, through the cell model you can see which part you want to buy in the community, surrounded by greening, transportation The situation, and through the room type model, you can see the relative specific situation of the room layout, the living room size and the like. When you have finished all the models, there is basically in the heart, most people also decide whether to buy this house according to this situation.
The functions that are substantially similar to the housing model, the software model (generally we call the system model), and there are many modeling methods in UML before UML (iConix is one of them), UML's greatest contribution is unified. Modeling symbol. Unlike the housing model, the software is a virtual thing (herein refers to the essence of the software), there is no way to make a model with a hard paper shell to see you, you can only use graphics and symbols to display the software. Previously, many methods were design graphics and symbols, UML came a pot, and the UML symbols were changed, which is like to express numbers like the Arabic number, 123 you can understand, the foreigners can understand, The unified standard guarantees versatility.
Therefore, UML is a standard modeling language (why is it a language? This is the same as the mathematical language as a mathematical language).
Now it's a rapid prototype. Tell the UML above, just a probably, but only need to be more than the mathematical symbol class here. There is no problem with mathematician symbols between mathematics, everyone can understand. UML communicates between software experts, and everyone can understand. But the participants of this system are not all experts, and many people don't understand the UML model. You have made a lot of design, spend a lot of time to make UserCase, Class Diagram, Action Stream, etc. The user is completely shocking, I have a word in the mouth - cattle! One is completely confused, while shaking your head to you, "What is the function you said?". Well, the problem is coming, what is the way, this is the problem of users care. You painted a big red line, the triangle box circle, the user is not interested, he doesn't know what it is (of course, he may say that it is professional enough, it is complicated enough, maybe you immediately Generate worship psychology). How to answer this question? The rapid prototype appeared.
I design the software, first take a white paper, draw a vertical line from the intermediate pen, divide it into two parts, the left is the computer automatically handled, the right is the user, the middle line is the boundary line, the professional is called Automation boundary. We use your computer, you are hoping that it can help us handle some jobs, otherwise this computer is useless. The function of a software, it is the ability to automatically handle work. So I rally listed a lot of functions to be implemented on the left (Hey, I stressed here, the premise that can do this is to do demand analysis), the user needs to do it on the right. Very good, now I have clarified this system roughly, the user needs to complete the work on the right, you need to call the left function (or a combination of functions) through the middle automation boundary, except for this except for this. Then it means that as long as the automation boundary can be displayed to the user, it is equal to showing the entire system (because the left side is completely closed)
Now I will develop a (or several, in short, I have to include all the content) applet, which contains all user control items described above, and the user runs this program and follows the real system after running (just it will not Dry, just swaying it). Now give the user to demonstrate: Yes? Very good, it is like this. Then let's do this? OK, this is, but some places need to change. No problem, you look at the list to change to me ......
Understand what is a rapid prototype?
As for Iconix, that is, UML fast prototype. Of course, Iconix is far from being so simple, but the basic argument is almost. Pay attention, focus is not in the rapid prototype, in UML, in Usercase, don't make a wrong direction.
Serial: Iconix unified modeling starts before starting to enter the design
Serial: Iconix unified modeling starts before starting to enter the design
Sorry, I am too busy last week, and the practice of the car is in the rain, I feel a little bit, and I have been delayed, so this is relatively late.
I wrote this controversy, but I want to introduce you to Iconix modeling technology, but there is a problem, I will be like a ray into the Wilson cloud room, so that the main line is not Too easy to identify. It's all the old friends who are cndev, nor is it a book for eight hundred, and everyone will bear it. Oh, huh, haha. . . As I have to say today, the root Iconix doesn't matter, I want to write my own design, modeling, modeling, general, extensive, abstract, not much, it is not easy to say.).
IConix is also good, RUP is also a set of rules. If you have seen the book about RUP, most of them talk about the software life cycle, what cycles, then tell the step, how to, then how Sample, it seems that all wells have a strip, and it is not difficult to say: it is not difficult. Just do it, you can succeed. Waiting until you have to do something, suddenly find thousands of Wanxu, you can't get started, you can't do it next step by step.
Why is this? The answer I probably I can't find the entire bookstore. The reason is actually very simple: they only tell you the practice, but did not tell you the idea.
Doing and thinking, it is two different behaviors, usually what kind of idea decides what kind of approach, but what kind of practice does not have to have any ideas. Folk fool, see people to read Buddha, learn to learn, on the surface, seem to be like model samples, the actual effect is very different, the way is usually a sorghum, most of the profession or not, there is no big use .
Now we will throw out the iconix, rup and modeling, with the model design, which can be clearly said: Both the two do not have any differences, the difference is just the idea, that is, the so-called philosophical thinking is different. It is an inside, but RUP is an inside, but it is a yang finger. Iconix is based on the user interface as the guide to drive the entire project, this is very different from RUP (Sorry, I can't say RUP design ideas, because I haven't studied RUP, but I'm going to see it, only Can affirm that the RUP is not a UI drive). In view of this feature, Iconix is especially suitable for RAD developers. You use Delphi, VB what is easy to drive, let C UI drive that is not strong.
Back to modeling and UML, both of Iconix and RUP are actually the same, and the use case, Class Diagram and Class Diagram, which are used by iconix, there is no difference in design. So what I will basically speak in this regard, I will buy a book in the upper street. I will have an Iconix unique idea and approach.
Let me run a little bit a little, talk about the problem of UML. Many books have introduced how to use UML, what steps, what rules, I want to remind: There is no rule, and there is no step in modeling. Hey, don't misunderstand me, I don't want to design the sky, but not be subject to those bar frames. For example, painting, draw a plum blossom, no one regulates what is going to paint first, first painting the branches, you can paint the petals, as long as the final painting, others can see it is a plum flower. Like UML, first design Class Diagram can also, first design Activity Diagram or. Whether it is painting or UML, there is a premise that the chest has Chengzhu (herein, this idiom). I have already had a picture of plum blossoms in my heart, and a solution is approaching UML design, and the designer has a lot of mind. So don't expect UMLs, there is no midst of it. If there is no way to shape it before preparing to do UML, then it is still a good one.
Ok, today's ripple tells this fall, and I will gradually describe the process of Iconix modeling. Please note that all the processes are parallel. Please keep in mind the integrity of the design, the software design and programming is completely different. It is neither the top down, nor from bottom up, but a process of gradually refining, it should be comprehensive, It seems that IE shows the GIF image, from blurring to clear, but from the beginning, you can see the whole picture, remember to remember, not biased.
Finally, these are my personal opinion, if there is a coincidence of Lei Tong, welcome to discuss the discussion of different insights.
The most final, the next chapter, the domain modeling and discovery class.
Continued: Iconix unified modeling starting three domain modeling
Continued: Iconix unified modeling starting three domain modeling
Welcome everyone to return to my serial, starting from this issue, we officially entered the world of Iconix. Gossip less, enter the topic.
What is domain modeling? We designed a system, always hope that it can solve some problems, which are always mapped to realistic issues and concepts. Obviously, our system depends on these issues, and the process of summarizing these issues is domain modeling (this domain, refers to the problem domain).
Ok, let's talk about it, I have to sleep, I can't let the concept of all the concepts, if you are interested, you can call me (premise is not allowed to hit the phone), now I use an actual example to tell the domain modeling.
With a relatively simple example, I wanted to use HelloWorld yesterday, but it's too simple, can't explain the problem, consider it. I use a guessing game to explain the problem. This game believes that the programming language should be very familiar: Enter a number, if you guess the display "you are good" and then end, if not, the system tells you that it is too big or too small, then let you enter Until to guess.
Please take a white paper now, we start to summarize the problem.
------------------------------------------ | System should be prepared A correct answer || || Player can enter an answer || || System should compare the player entered the answer and the correct answer || || System should display the result of the player each input | ------- ---------------------------------- regrets that this example is too simple, but it is simple and simple. Benefits, from this simple example, you can see the basic points of the summary problem.
The first is to involve internal processes, don't appear "If you enter incorrectly, how about it", these are not correct issues, the correct question must be clear, clear, if possible, " What is the format to write.
The second is to enter the details at the beginning (sorry, I am exception, it is too simple), and the problem that contains too many details will be a long list, this list is not used. Try to analyze from the highest layer, but do not simply go to "users to play games". In short, the principle is comprehensive, clear and clear. To do a good job in problem domain analysis, depending on the level and ability of the designer, this is not a simple look at the book.
Ok, now we have a list of system issues, you can work next: Discover the class.
Propose the nouns in the list of questions, get a list of nouns, this is the source of the class (but not busy, this is just the initial process)
-------------- | System || Players || Correct answer || answer || Game Results | -------------- -
Not all nouns can be used as class, next to the screening.
Players are participants, they should put them on the example.
The system is too traditional, and it cannot be the name of an object.
The answer and the correct answer are easily confused, but it is easy to be misunderstood as an action, just called a player answer.
The result is not clear, check the previous needs, should be broken down into error information and completion information
After the screen is complete, get one of the following noun:
-------------- | Correct answer || Player answer || Error information || Completion information | --------------- -
This list lacks the system, looks too thin, go back and carefully check the demand, and should introduce a game engine, which is to act as the scheduler.
-------------- | Game Engine || Correct answer || Player Answer || Error Information || Completion Information | ----------- -----
At the same time, modify the previous problem domain, now the system is clearly a game engine. This replacement is an ideal situation, usually decomposes and associated, and it is necessary to expand the problem domain, sometimes it needs to establish a new problem domain.
------------------------------------------ | Game engine should Prepare a correct answer || || Player can enter an answer || || Game engine should compare the player answer and correct answer || || Game engine should show the result of the player each input | -------------- ------------------------------------ Now you can use ROSE to make Class Diagram, you can use Rad Tools to engage a small GUI to see the effect, find that the class works here. However, the problem domain analysis has not yet finished, the relationship between classes and classes has not been summarized. Of course, that is the next paragraph.
Continued: Iconix unified object modeling starts to target object-oriented methods
Continued: Iconix unified object modeling starts to target object-oriented methods
Write on, the information may not be incomplete, please don't worry about it.
Unfortunately, IT is a field that can take a lot of new concepts and new vocabulary anytime, anywhere. I am afraid that I have dreamed when I write the first program. I didn't expect to develop into this. In the university, I learned the structured programming. I think I have never heard of object-oriented words in 93 years, many students have started self-study for object-oriented programming. I started a little later, and the second grade read a book for Turbo Pascal 5.5-oriented object-oriented programming (remembering the school publishing society) began to explore object-oriented programming. At that time, I haven't heard of what design methods, everything is free, no one guides how I should design.
That is, in 1993, after three years of development, it has entered a mature period after three years, and three major factions have been gradually formed by the original confusion. They are data-centric methods, with script-centered methods and structural methods.
Based on data-centric approach based on technology, these methods such as entity relationship diagrams, data flow graphs, and state conversion diagrams, which are attempted to decompose the system by using data. (Learn the data structure, there is a bit image, design the program first design data, then analyze the data relationship, finally realize the program, this method is generally the most DBA)
The structured method is based on the code, first starting with OO programming, then expand. Structured Method First, which programs are needed, each program should be implemented, and then organize the program into a picture according to some way, called a structural diagram. (Structured method is actually based on functional decomposition systems, such as designing a wage system, can be divided into entered systems, printing systems, query systems, etc. according to functionality, which is approximately one way to use the most traditional programmers)
It is not easy to say that the script is clear, and it is simple to use the script to design, such as comparison OBA methods and Alger / Goldstein methods belong to this class. Use the boundary as a centered method to divide the system. (There is no way, I didn't have to have OBA, I can't use the method to say clearly, I have experienced friends to add it)
In 1993, the best modeling method is a method of object model modeling technology (Object Modeling Technique, OMT), Object-Oriented Software Engineering, OOSE and BOOCH (typically called the Booch method). These three big cow people synthesized into a unified approach in 93 years. After three friends, I went to Rational, developed UML and RUP unified processes, and became a leading sign for object-oriented design. Oh, I said a lot, but I said UML and RUP, or returned to Iconix. In fact, Iconix is also three-friend inventions, which has been made by Iconix before they have not going to Rational, and there is no UML and RUP. If I said, Iconix and RUP have no essential difference (in fact, it is written by BOOCH), and the difference is mainly attitude. RUP is in operation. It is often impossible to touch the direction when using RUP, and I can't find it. (Sep said no tailor, using RUP must be Tailing, but I have a discorporary, and I don't know how to do it. IConix starts from a practical perspective and is not fully faithful to theory. Some places have violated the rules and semantics of all three methods, and the UML has expanded to meet the needs. If you are a strict UML beliefer, don't come to Iconix, but if you want fast application modeling technology to your project, iConix is one of the best choices.
This chapter ends here, and then I will introduce the specific method of Iconix modeling.