We hope to successfully create a software model. But how to become a great modeling, how to start? Please apply some of the following key principles in the software project to get immediate results. 1, people-oriented
Software is produced - no user, software is just a bit collection without any meaning. Many software experts are very deep in their occupations because they will focus tightly in technology. Indeed, components, enterprise Java Beans (EJBs) and agents are very interesting, but if your software is difficult to use or do not meet user needs, these technologies have nothing to do. It is necessary to take a certain amount of time to study the software requirements and user interfaces that users understand.
2, understand why design
The best designer uses most of the time modeling, occasionally writing source code. This increases the rationality of their design.
3, modest quality
You can't know what you know, even more enough things need to be struggled. Software development is a complex labor because development tools and development technologies are always constantly changing. This process is just a person impossible to fully understand. You can learn some new knowledge every day - in software development, you may be more - of course, you have to choose modest.
4. Demand is a requirement
If you don't have any needs, there is no need to write software. Successful software is in a predetermined time, within a predetermined cost, meets its users' needs. If you don't know what needs, your project guarantee will fail.
5, requires very little change, but you often change their understanding
Object Toolsmith's Doug * Smith likes: "Analysis is a science, design is an art." He is just a "correct" model - fully demonstrates all questions - many "correct" models - they provide a good solution for solving problems.
Demand seems to often change, because your collection work is not good enough, not what they actually change. You may say that users can't clearly tell you what they need, but collecting demand is your job; you may say that a group of newcomers have never done your past work, but you should communicate with them from the first day; you may Will complain that your organization does not provide a good way to communicate with our customers, but this means that senior management does not really support your project. You may complain about new laws, but you should pay attention to what changes have undergone outside the environment; you may also complain that your competitors put forward a new concept, but why isn't your organization mentioned first?
Examples with changes in demand, but you don't have a good collection of needs.
6, constantly reading
In a sun-changing industry, you can't live in the past. It is recommended that you read at least two or three magazines and a book every month. It is worthwhile in this area. This contemplation, you will become an attractive competitor of the organization's internal new exciting project.
7, reduce the coupling of the software
There are many coupled systems; it is difficult to maintain; the changes in one will tend to cause changes in the other, and in turn - this makes you a headache. You can make details of the implementation of the implementation, do not share the data structure, not allowing the application to directly access the data storage (my principle). Loosely coupled software is more easier to use, easy to maintain, easy to improve.
8, increase the cohesiveness of the software
If a software component completes a feature, then it is consolidated, which means that high-polymer software is easy to maintain and improve. Judging whether the component is consolidated, it will be described if it can be described in a simple words. If you need a paragraph or need to use "and", "or" such a context, you may need to re-decompose it into several parts. Highly polymer software is more likely to be reused.
9, look forward to selling your software
The upgrade is the implementation of software development, no matter what software tool market propaganda. You can count your software on another operating system or database, even it is just an upgrade version. Want to know how big is Win16 upgrade to Win32? Each time you draw a unique advantage of an operating system, such as a process communication policy; a feature of the database, such as writing a storage process with the corresponding language, your design conflicts with this unique product. Successful modeling hides these implementation details, if you want to change, just change its housing. 10, accept changes
It may be that this is a word, but the change is indeed constant. You can document "Change Case" to plan it - your system will complete the needs (see "Change Plan", objectively thinking, May 1999). Thinking about these issues while modeling, you can develop a strong enough design to easily support these changes - design robust software should be your main goal.
11, do not underestimate scalability
The most important thing in the Internet is to consider scalability in the initial development of development. Today, the software used by 100 people may be used by tens of thousands of organizations tomorrow. It may be used by millions of people next month. You can design scalable software by analyzing your software (often available in user case models), then compiles your system, you can extend it to high load environments to complete these transactions. Considering the scalability at the beginning of the design, then you can avoid a lot of repetition when you find that the system suddenly has a large number of users.
12, stability is only one of the design factors
Concentrate on a design factor - stability, which looks very fascinating - will inevitably lead to the design of the foot, resulting in the rework of the team. Your design must take into account scalability, availability, portability, and extensibility. These design factors must be considered in the early stage of the project, properly handling them. Stability may be, or you may not be your first factor, but you should consider other design factors.
13, handle the components interface
A wisdom bead is "Unified Modeling Language User Guide", the writer is Grant * Boss, Aihua * Jackbleson, Jim Rambo (Edison * Würingsley), which point out in the design initial definition User Interface. This will help your team agrees with the software 棏, so that the independent sub-group works separately. As long as the component interface is stable, what is the irrelevant it is made. Basic principle is that if you can't define what you look like, you can't understand enough things to start internal work.
14, "shortcut" often spends more time
Software development has no shortcuts. The effort to shorten the user's demand time will cause the software to not meet the needs of users, rework; work that starts to start causing a few weeks of development, because developers often do; if the test work is reduced daily, It will result in a few weeks and even last month to correct the mutual conflicting data caused by your forgotten error, which requires the data and software from the new debug data. Avoid shortcuts - do well in the correct way.
15, don't trust others
Products vendors and service providers are not your friends, most of your partners and senior managers are not. Most companies want to lock you on their products, or the operating system or the database or development tool. Most consultants and contractors only care about your banknote, not your project (try not to pay them, see how long they can support). Most programmers think they know more than anyone, so they will abandon your model and prefer their own model. Improvement through comments is usually a good way to solve these problems. Sales operators are important to you. Your organization will invest in software development in establishing models, documentation, and proven processes.
16, indicating that your development is based on practice
You should establish a technical model, that is, the terminal to the terminal model, to prove that your approach is really valid. Do this work as early as possible during the development phase, because if your design does not work from the beginning, there is no matter how much code is not impossed in the future software development process. Your technical concept will prove that your design is really valid, it is easier to get support. 17. Apply mature mode
There is now a large number of available models, and how to solve problems in the model. Good modeling, usually a good developer, can avoid from the new manufacturing component. To refer to a large number of different types of models, please visit http://www.ambysoft.com/processpatternspage.html
18, familiar with the advantages and disadvantages of various models
You may have to contact many different modes. Use the case model to capture behavioral requirements, capture the required unchanged data by the data model to support the system. You can try to model your constant data in the user case, but this is not very useful to developers. Similar to this, the data model is not large about describing the software requirements. Each model in your modeling tool should have its corresponding position, you should know when and where they will be used.
19. Use a variety of models for a task
When collecting demand, we must consider the development of user case models, user interface models, and domain models. When designing the software, consider creating a class model, a series of sequence diagrams, some statement, some cooperation diagrams, and finally the constant physical model. Model If only one model is used, it may develop a software that is not strong, or it is impossible to meet the needs of users, or it is not easy to improve.
20, educate your customers
If your users don't understand, establish a complex model is meaningless - or worse, they don't understand why you want to use these models. Tell your partners modeling; otherwise, they are likely to look at those beautiful pictures and then cut the source code. You also need to tell your importance of the user's needs model. Do this on user case and user interface model, then they will understand that you are working hard. When everyone speaks a generic language, your team will get good communication.
21, a stupid man with good tools is still a stupid material
You can give me a CAD / CAM tool, then I want to design a bridge, but I may be a person who finally completes this job, because I know nothing about civil engineering. Having a good modeling tool does not make you a good model, this is just a way you have contact with good modeling tools. It is necessary to have a good model of work experience, not just a week of training in a thousand dollars. A good computer-assisted modeling tool is important, but you must first learn how to use this tool, thereby developing the model it supports.
22, understand the whole process
Good developers understand the entire software process, although they are not very popular in all aspects. 36 page displayed software process - quite complex, is it? This shows how it is more important to the entire software, object-oriented, modeling, how to make them more important. Excellent modeling considers the entire blueprint, considering long-term development and user needs, while considering how to maintain and support them developed.
23, as early as possible, often test
If a project does not need to test, then he may not be worth it. You can detect your model by establishing a technical model, or performing technical reviews on them. The yourself in the software development period, the harder the mistakes discovered, and more expensive. Test as early as possible is worth it.
24, documentation your work
If you don't need a document, the project may not be created. You must document your resolution and what they are based (especially those that are unspeakable), and others can clearly know what you want to express.
25, technology is changing, but its foundation is constant