Software Development Process Overview (1)-head first OOA & D Reading Notes

Source: Internet
Author: User
Recently, I was excited and started to look for some software development process management books. , My This articleBlog Recorded some . I recently bought xin's The path to mountains , I have seldom bought books written in China. , I hope this instinct makes ChinaProgramSome gains . In fact, these books are not very suitable for people who came to work in year 67, but one of my problems is to blame all of them and try my best to solve every doubt I encountered during the software development process, can find the theoretical basis and causes for each practice. This book is my next 《 Head first Design Pattern And then read the second book. Head first A series of books, I feel very suitable for me, because there are not many texts, I use a large number of tables, pictures to explain some Oo So I only spent about a month's free time reading this 600 Pages of books (including Preface J ) . In fact, all the content is basically understood. Where can I find my gains? The harvest is to understand why and how to organize the technologies we have seen before. The concepts used are as follows: OO principles, test driven, domain analysis, use case, unit test, Requirement Analysis And so on.

Here I plan to give a brief introduction to the software development process in the book. In the future, I will start every major step in development. First read a picture in the book (cell phone shot, please forgive me ):

This is basically the process, but it does not mean that the process is from the firstFeature list Continue to do the last step DeliveryThe system has been developed, because everyone knows that there is such an easy task. Many steps have to be done several times or even repeatedly. However, a specific problem is basically solved in this order.

1. Feature list And Use Case Diagrams . Basically, Demand Analysis is always the first step to solve a problem, because you are not sure what the problem is. So this step is critical and easy. The key is that accurate requirements can make the development process very smooth, with unclear ideas. Changing needs are a great challenge for the development team. It is easy to say that this is the first step of development, and no project fails. This step can generally be completed.
After talking about so many requirements, what is the first step? A typical scenario is that the customer will give you a one-page requirement document (of course, mature customers will give two-page documents ). In fact, these pages can only be said to beVision( Vision), Just refer to this document, it is difficult to clearly define the requirements. Therefore, the first step is to determineFunction list( Feature list ), OrUse case diagram (Use Case digoal) Note that the use case diagram only identifies each use case, which is more granular than a specific use case. No one can use this page to obtain the correct answer. What should we do,Communication!Yes. Continue to communicate with users and clearly define the main Feature And the main use cases, as far as possible to accurately define what the system needs to do, to achieve the function. You don't have to pursue a complete list or use case at a time. As the number of iterations increases, it will naturally be improved. In this way, you will understand what the system needs to do and how users will use the system.

2. Break up the problem . I know what functions to do. We need to classify these functions according to their interrelationships, that is, to divide the system into several modules, so as to minimize interaction between modules and clarify interfaces. Here we need applications such as encapsulation and single responsibility principles. Oo Some design principles. If a system, especially a large-scale system, has scientific module division, it can greatly improve the efficiency of parallel development and reduce the impact of delivery delay of a certain module on other modules.

3. requirement . As shown in the figure, before you start to select a function or use case for development, you need to take a step. understand the problem . That is, you can have an accurate understanding of the problem, and then need to communicate with the user again to break down a specific use case or function. Here there are two development modes , feature-driven (feature driven) or case-driven ( Use Case Driven ). Function-driven development is smaller than case-driven development. The path to be selected determines what to get next. To select a case driver, you need to write case (Use Case), use cases may have many forms, such as use case diagrams, natural language descriptions, and step breakdown. In the end, all major paths and other paths should be included, that is, various scenarios (scenario) all must be included. Use Cases are used to communicate with users and confirm that our understanding of requirements is correct and complete in a way that users are familiar. During the first iteration, the selection of function points or use cases requires the most fundamental, core, and most dependent one of the other parts to start the development iteration.

4. domain analysis and Design . Domain Analysis refers to ing nouns in use cases and entity classes in the final system, and ing between Verbs and methods. Of course, this ing does not have a one-to-one ing relationship. You need to add, delete, modify, or delete ing based on the actual situation. Finally, these classes and methods are assembled into class diagram . A class chart is a key intermediate product in software development. It allows other programmers who care about your system to quickly understand the overall system architecture. The system Design refers to the actual situation and some design principles, design patterns, and decomposition, combination, and abstraction of various classes on the class diagram, details. The contribution of a class chart with reasonable structure and clear functions, both maintainability and scalability, to subsequent development is self-evident.

5. Implementation . the implementation only looks like referring to the class chart and other existing Code to perform some work similar to the brick header. In fact, the implementation work is far more than that. First, a good code style is required to make the code readable. Secondly, adequate unit test guarantee is required. Now test drive (test driven) it has been very important. Third, there must be code reuse considerations to maximize the use of existing methods or algorithms for function implementation. Fourth, be aware of refactoring (refactoring) at any time , this ensures that the Code continues to grow in a concise, efficient, readable, maintainable, scalable, and reusable manner. Finally, we need to apply the basic oo rules in a practical way, such as OCP, SRP, dry and other rules.

6.Iteration.Generally, after a function or use case is implemented, select another function or use case to apply the previous steps.IterationAll functions or use cases are implemented. The system function list may also be modified and updated from time to time. It is necessary to have smooth and clear communication with the customer to ensure that the system developed is what the user wants.

7.Delivery.Delivery, with the assurance of the previous steps, the final delivery is very much worth looking forward. The customer will send a thank-you email, and the boss will prepare an objective red envelope. He is also very fulfilled and on vacation....

These are a brief introduction to the development process. In my plan, the next article will provide an in-depth introduction to the acquisition and analysis of requirements and effective communication with users.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.