The process-oriented design method emphasizes the consideration of the software's functional characteristics. process-oriented designers usually divide the system into multiple functional modules at different levels, at the same time, try to minimize the Coupling Degree between modules.
The main task of object-oriented analysis is to establish an accurate, complete, and consistent system model-analysis model based on user needs. The input of this process is the functional requirements of the software (non-functional requirements are usually left in the object-oriented design stage before consideration ).
The object-oriented analysis process generally observes and analyzes software systems from a different perspective, and generates the following three analysis models:
Function Model: Use Case Model
Object Model: analyzes the use case model to break down the system into collaborative analysis classes.
Dynamic Model: describes the dynamic behavior of the system, describes the interaction between objects in the system through the sequence diagram and collaboration diagram, and describes the State Changes of individual objects in the system through the state diagram.
Object-Oriented Design is the result of object-oriented analysis, and the output is final. The refined design model focuses on describing the attributes and methods of objects.
There are three types of classes in the analysis model: entity class, boundary class, and control class.
Object-Oriented Analysis and design should be case-driven
Extract attributes
Extracted relationships: one-to-one, one-to-many, many-to-many, and inductive relationships
Architecture Analysis: avoid misunderstanding of functional decomposition
Architecture mode:
System software: layers (layer-3 architecture), pipelines and filters, and blackboard)
Distributed Software: Broker, Client/Server, peer to peer)
Interactive Software: MVC, display-abstract-control
Architecture Analysis: Avoid circular dependency