Software Development Methodology
Software development is a process of organizing software production using a well-defined set of technologies and symbolic expressions. Structured Approach
Structured method is composed of structural analysis, structured design and structured programming, which is a data flow oriented development method.
Structured analysis: According to the principle of decomposition and abstraction, according to the process of data processing in the system, the function model of the system is set up by the flow chart to complete the requirement analysis work.
Structured design: According to the module independence criterion, the software structure optimization criterion transforms the flow diagram into the software architecture, uses the software structure diagram to establish the system physical model, realizes the system outline design.
Structured Programming: Use 3 of the basic control structure to construct the program, any program can be ordered, select and repeat 3 basic control structure.
The overall guiding ideology of structured methods is top-down, layered decomposition, and its basic principle is the decomposition and abstraction of functions. Suitable for the field of data processing problems, not suitable for large-scale, particularly complex projects, and difficult to adapt to changes in demand. Jackson Method
The Jackson method is a data structure-oriented development approach.
The JSP (Jackson Structure Programming) method is data structure-driven and suitable for small-scale projects. The JSP method first describes the input/output data structure of the problem, analyzes its correspondence, and then introduces the corresponding program structure to describe the software process of the problem.
Jsd method is the extension of JSP method, and it is a complete system development method. First, the real-world model is established, the functional requirements of the system are determined, and the requirements are described with particular emphasis on the timing of the operations. It is driven by events and is a process-based development approach, so it is suitable for systems with particularly strong timing, including data processing systems and some real-time control systems. Prototyping Methods
The prototype method is more suitable for the situation that the user's demand is unclear and the demand changes frequently. When the system size is not very large and not too complex, it is better to adopt this method. Object-oriented approach
Object-oriented approach is based on object as the most basic element, it is also the core of analyzing problems and solving problems. Object-oriented methods include object-oriented analysis, object-oriented design and object-oriented implementation.
UML is an object-oriented standard modeling language, which unifies the modeling process and representation of various methods through unified semantics and symbolic representation, and now becomes the industry standard of object-oriented modeling. Agile Approach Extreme Programming (XP)
XP is a lightweight (agile), efficient, low-risk, flexible, predictable, and scientific approach to software development. It consists of 4 parts of values, principles, practices and behaviors, which are interdependent, interrelated and through the whole life cycle through behavior.
4 values: Communication simplicity Feedback Courage
5 principles: Quick Feedback Simplicity assumes progressive modification advocates change of quality work
12 Best Practices: Plan Games: quickly plan and refine as the details evolve. Small release: The system is designed to be delivered as early as possible. Metaphor: Find the right metaphor to convey information. Simple design: Only deal with current requirements and keep the design simple. Test first: Write the test code before you write the program. Refactoring: Re-examining requirements and designs, redefining them to meet new and existing needs. Pair programming, collective code ownership, continuing integration: You can provide a running version of your customers by day or even by the hour. Work 40 hours per week, onsite customer and coding standards. Crystal Method:
The Crystal Method considers that each project requires a different set of strategies, conventions and methodologies. The method of parallel contention:
The side-by-side contention method uses the iterative method, in which the iteration McCartney every 30 days into a "sprint" and the product is implemented according to the priority level of the requirement. Adaptive Software Development (ASD)
ASD has 6 basic principles: There is a mission as a guide; features are seen as a key point in customer value, and waiting in the process is important, so that the "redo" and "do" changes are not considered corrections, but rather as a survey of software development realities. The determined delivery time forces the developer to carefully consider the critical requirements of each production version. Risk is also contained therein. software Tools
Software used to assist in the development, operation, maintenance, management, and support of activities in the process of software is called software tools. Software Development tools: Requirements analysis Tool design tool coding and debugging tool testing tools Software Maintenance tool: version Control tool file Analysis tool development repository Tools reverse engineering tool reengineering tools: mainly focus on code refactoring, program structure refactoring and data structure reconstruction. Software management and software support Tools: Project management tools configuration management Tools software evaluation tools Software development environment
Software development environment is a software system that supports software product development, which is composed of software toolset and environment integration mechanism.
The characteristics of the software development environment: the service of the environment is integrated. The environment should support the way the team works and provide it with a configuration management environment that can be used to support a variety of software development activities, including analysis, design, programming, debugging, and documentation.
An integrated development environment is a software development environment that integrates software tools that support multiple software development methodologies and open models. This environment should be open and cut. Openness provides the convenience of integrating out-of-the-box tools into the environment, tailoring can be tailored to different applications and different user needs to form a specific development environment. End
I am Heng Zhao Qing, a member of the North Drift.
Life motto: [Make a decision, not difficult, difficult is to put into action, and adhere to the end]
Today's bitter pill, is the foreshadowing of yesterday, the present pay, is the flower of tomorrow. Come on... Come on...