1. Development method
1.1 According to the development style
- Top-up: Divide big problems into smaller ones and solve them one by one
- Bottom-down: starting from concrete components, splicing designer's skills to interconnect, modify and expand
1.2. According to the nature
- Formalization: data reasoning method, representing clean room engineering (generally not tested)
- Informalization: various development models
1.3 Scope of application
- Holistic approach: an approach to the whole process of software development
- Local approach: Approach to a specific phase of the software
ps: Clean Room Engineering (CSE)
- Analytical box modeling using the box structure specification
- Correctness verification to eliminate errors
- statistical error
- QC
2. Informal development method
2.1. Prototype method
According to the realization of functional points:
- Horizontal prototype: Behavioral prototype, which is used to refine the requirements of the interface but does not realize the function
- Vertical prototype: structured prototype, given the realization of complex algorithms, realized some functions
According to the final result:
- Disposable: exploratory prototype, solving demand uncertainty, ambiguity, incompleteness, ambiguity
- Evolutionary: Gradually evolve into the final system for occasions that are easy to upgrade and optimize.
2.2. Structured development
Advantages: clear development goals, staged development projects, standardized development documents, and structured design documents
Disadvantages: The development cycle is long, it is difficult to adapt to changes in requirements, and data structures are rarely considered
2.3. Agile development method
People-oriented, close collaboration with users, face-to-face communication, release increments as soon as possible, small and independent development team, suitable for small-scale projects.
2.4. Object-oriented development
Coad/Yourdon method: OOA and OOD adopt exactly the same concept and notation, and there is no need for notation conversion between period analysis and design
Booch method: the static model describes the composition and structure of the system, which is divided into logical model, physical model, and dynamic model describes the state change and interaction process of the object, including state diagram and sequence diagram
OMT method: using the idea of modeling, using object model (object diagram), dynamic model (state diagram) and function model (DFD)
OOSE Method: Use Cases Replace DFD for Requirements Analysis and Functional Modeling
2.5. Service-oriented development method
level of abstraction
- Operation: the lowest layer, which represents a single logical unit of transactions, contains a specific structured interface, and returns a structured response
- Services: Represent logical groupings of operations
- Business Process: At the highest level, a long-running set of actions or activities performed to achieve a specific business goal
2.6. Component-Oriented Software Development
Component acquisition:
- Use existing components.
- Extract legacy engineering artifacts
- Buy
- to develop
Component reuse method:
- Retrieve and Extract Components
- Understanding and Evaluating Components
- modify component
- component assembly
Build categories:
- Keyword taxonomy: Divide application concepts into a tree or directed acyclic graph structure, represented by keywords
- Facet taxonomy: Use facets to describe the functions performed by components, the data to be manipulated, the context in which components are applied, or other characteristics
- Hypertext method: According to human associative thinking, you can jump to documents containing related concepts or components arbitrarily.
3. Development model
Waterfall model: structured approach, staged development, clear requirements, complete documentation, weak risk control
Prototype model: Iterative method, divided into original development and target software development, the requirements are not clear
Spiral model: a combination of belt method, waterfall and prototype development model, suitable for large, complex and risky projects
Fountain model: object-oriented method, good reuse, no gaps in the development process, saving space.
V Model: Combining Development and Testing
Transformation Model: Suitable for Formal Development
Rapid Application Development RAD: component-based development methods, user participation, development or reuse of components, high modular requirements, not suitable for new technologies
RUP/UP: use-case-driven, architecture-centric, iterative, incremental.
4. System analysis
4.1. Structural analysis
- Functional model: DFD data flow diagram, data flow cannot flow directly from external entities to storage, processing must have input and output
- Data Model: ER Diagram
- Behavioral Model: STD State Transition Diagram
4.2. Object-oriented analysis:
- Functional model: use case diagram, there are three relationships among use cases including inclusion, extension, and generalization. The component use case model generally needs to be managed in four stages, which are identifying participants, merging requirements to obtain use cases, refining use case descriptions, and adjusting use case models. Three of these stages are required.
- Data Model: Class Diagram
- Behavioral models: activity diagrams, sequence diagrams, state diagrams
The process of analyzing the model through object-oriented analysis components: the process of establishing the analysis model generally includes defining concepts, determining the relationship between classes (dependence, generalization, combination, aggregation, realization), adding responsibilities to classes, and establishing interaction diagrams.
5. System design
5.1. Structural design:
- Outline design: including architecture design, interface design, data design, using SC system structure diagram
- Detailed design: including process design, program flow chart, IPO diagram, box diagram, problem analysis diagram, decision tree, and decision table.
5.2 Object-Oriented Design
Architecture Diagram (Package Diagram), Use Case Realization Diagram, Class Diagram, Other (State, Activity Diagram)