Topic: How much is the object-oriented approach? NewTomme: Now everyone is systematically analyzed, what method is used, how much is the object-oriented method, or use the old way ?! I am in some modules (Some of the projects in a project) After analyzing the previous data flow map, it was found that it could not be clear and a good explanation system, but the entire big project is expressed by the data flow, what should I do? I don't understand the OO's analysis! Another thing, most software development is not in accordance with the method of software engineering, is a simple analysis and writing some documents, then the brothers here, you develop. Is it in accordance with the development law of software engineering, first analyze, there is a good document, the programmer can get things through it and some simple communication! Test has a test record, there is also a part of quality monitoring ?! How do you do it? I am very poor, I have more advice, yes, rose, rose, etc. , Is you used to use it in the real development process?!
Potian: According to I know, there are few cases that are rarely developed in the country-oriented method, there are several cases: 1. I don't know if it is object-oriented: this is not necessarily a bad thing, aunt, no matter how much C has been developed as a classic operating system, compiling the system, I think in some cases, non-objective methods can also perfectly Solve the problem. Such as apache. However, I don't mean that object-oriented in this area (system software) is poor, the CHOOSE group led by Ralph Johnson can reach 80% of C, while flexibility and adaptive gains don't say. . 2. Use the facing programming language but do not use any object-oriented features. For example, today's Delphi, VB, PB, etc. are all ordered to object-oriented, but in fact, the characteristics of the language itself are completely unused. I have obtained the provincial scientific and technological progress award in 1995, but I said, There is no one to object-oriented ideas. 3. Using object-oriented language and object-oriented tools, but actually or false objects. This company and individual are now mainstream. I have worked in a very large Chinese company. They use RUP, and there is also the concept of the so-called object, but the vast majority of their objects is just a simple packaging of traditional programs. It does not take into account object-oriented. Vocation: Reliability, flexibility, better architecture, faster customer response. From my own point of view, object-oriented development should have the following basic features: 1. Object-oriented ideas: note, I don't use object-oriented methodology, if you think that use an object-oriented methodology, you can call you to use object-oriented ideas, I don't see it. Object-oriented thinking, first of all, how do you come to see this world, a little bit, how do you think about what you have to solve, what you think is to be solved is composed of all lines and above, such as input, modification, deletion, Still have some interactionful object cooperation to complete the task? This world has a "God" and all the world is the result of these objects with self-destruction and self-behavior. 2. Object-oriented Software Engineering: If you don't use any object-oriented methodology, I will not have to reject you. However, methodology is the accumulation of predecessors, how to obtain demand, how to model, design, how to start coding (detailed design), how to test, how to organize your development team. It is a problem that must be practiced, and it is also necessary to learn from a variety of methods. In terms of demand, according to different situations, USE Case, USE MAP, and CRC are available, but I actually use the most sketch plus the template of Alistair Cockburn. In modeling, UML is a standard, but the analysis model is what I often learn from. I will not be stupid to draw a detailed thing to model the model. The analysis model is of course endless. There is too much to accumulate, but things like Party, Business Rule, Invantory, Account, how much there are too many things. In design, through the model I built, the model is the most common method. I have found that the design model community is so rich, so that it is hard to construct new models, of course, I don't rule out sometimes Small discovery. For example, I used FactoryMethod almost in every system to create objects, OBServer, Stragy implemented MVC, plus MEMOTO with Command to implement UNDO, REDO, FACADE to pack sub-layers, State mode is also extremely wide, including hospital patients Patients (registration, admission, pre-emergence, discharge), and EOSP2P P2P underlying protocol implementation.
These systems are in use, different hospitals, different services over P2P, the effect is obvious. Singleton doesn't have to say it. The model uses you to design so flexible, effective, I think they can solve 80% of the design in the design. There are two phases in the test. For unit testing, I tried to do it myself, of course, the XUnit series, which is also necessary for refactoring. I didn't study too much in terms of functional test. Generally speaking, it is better than it is too good. 3. The premise of application software projects: The reason why this is placed behind. Because, if you don't understand the software engineering, there is no practical, in fact, this premise is hard to see. This premise is the interface instead of implementing programming, no interface programming, your group has no way to organize, and people have no way to assign. The interface means that some people can implement interfaces, while another person can use the interface. If the change is achieved, there is no impact on the user, so the key to the design is the interface. The key to the organization and process control is also the interface. People's organization and progress control I often refer to Jim Coplien's homepage, benefiting a lot, but from my current, the main method is the Kent Beck door task card 4. Language, I like Java as other object-oriented languages, Of course, there are many arguments, I don't talk. 5. Mature stage. Object-oriented maturity phase is a frame. Regarding the design of the framework, the development of staff in design modeling and white box development is very high, I have said it here. The framework that is studying on my homepage can see our ideological methods. Other basic skills, such as IDiom, refactoring, etc., but will not be detailed here. Interested people can discuss my Erptao.org. NEWTOMME: Thank you! You seem to have a very experienced system analyst, good, can you ask you questions in the future?
Yes, I still want to ask, what do you think is an object-oriented analysis to use in any project (I think there are two different projects: to customize the software of the customer, and have autonomous product software).
Potian: These both look different, but actually the same question: What is relatively stable, which is variable, change frequency? Object-oriented analysis method The first question is to separate the contents of these two parts. If you give the customer, the project has never been exposed to the area, then the abstraction and isolation of the start is more difficult. However, from my experience, I have never been touched by it. If your system does not need to deal with personnel, unit, organization, amount (amount, conversion)? Don't your system do not handle time-related issues? What is your system handling properties that may change? Such problems, if there is a good frame, implementation, expansion, and modification are very convenient. The problem may lie in time, funds, and pressure may be difficult to in the beginning when using object-oriented ways. A new area may take a long time to work more profound. If time, it is very important, you can implement it first, and of course the object-oriented method. At the beginning, the abstraction may be poor, but this is not a problem. If you start with object-oriented methods, you will slowly improve your analysis and design with Refactory. At this time, refactoring may be very important, and Extreme Programming has highlighted specialties in this regard. I am mainly studying Martin Fowler's "refactoring", and the ph.tery of several disciples of Ralph Johnson, I think it is feasible to improve the existing code, and must do, the effect is also obvious. Because of the object-oriented no matter what methodology, you are asked for Iterator, and refactoring is a relatively best way. However, even for customized development of new areas, object-oriented ideas is also extremely useful. For example, the separation of the interface, the quality control, and the MVC mode is more thorough. You can separate models and views, two batches of different experts, good interfaces, and separate tests. BTW, many systems look to customize, but it is not the case, such as many ERP systems can be implemented, you can use Business Rule to solve these problems. Learn each other, have time to visit my home ERPTAO.org
NewTomme: I have seen it, but I don't know much about a lot of theories. In fact, I can only be entangled in the experience and theory of systematic analysis. I wrote nearly two years of software, now I want to turn to DBA or system. Design, and in this process, I think it is more expensive than the programmer to analyze system analysis, software engineering knowledge requirements, so I don't know where to start, I only have heard UML and Rose, but it is I don't understand how to use these norms and tools to apply to a variety of software projects. I think they can only standardize documents, development process, test, implementation, but in the pre-system architecture, special current ERP, CRM and other software Development, as well as the design work of the data warehouse I have, these methods are very specific and feasible, and now there is what IMM, quality control, which has more abstracts on the previous analysis. Require, so, what methods and tools should be specifically, what methods are better, I think I have no psychology.