Process-oriented and object-oriented UML & RUP

Source: Internet
Author: User
Process-oriented and object-oriented

Both process-oriented and object-oriented are software technologies. We generally classify process-oriented as a structured analysis method, and usually use DFD graphs, ER models, and UC matrices, object orientation is summarized as inheritance, encapsulation, polymorphism, and other specific technologies. In fact, all technologies are just tools that people use different methods to understand and describe the world.
If we reference Booch:
I have never reused the object-oriented programming goals. On the contrary, for me, objects provide a way to deal with complexity issues, which can be traced back to Aristotle: do you regard this world as a process or object? Prior to the rise of object-oriented movement, programming was process-centric, such as structured design methods. However, the system has reached the extreme level of complexity that surpasses its processing capabilities. With objects, we can build a larger and more complex system by raising the abstract level-I think this is the true victory of the object-oriented programming movement.

In conclusion, the object-oriented approach can help us build more complex systems to explain the increasingly complex real world.
Object-oriented, the essence of the world is composed of objects. Everything is an object. objects that seem unrelated to each other usually reflect different motion processes under different driving force and rules, then these processes show our vivid world.
Process-oriented, believing that everything in the world is not isolated. They are closely linked with each other and are indispensable, mutually influencing and interacting to form a small system with a strict causal relationship, more small systems form a large system. The connections between all small systems are also close and inseparable.

Taking the world as a process, this method has a hypothetical premise, that is, the process is stable, so that we have the basis for analysis, and all the work results depend on this process. Each link in the process has a strict causal relationship. Unfortunately, the world is not static and changing all the time, so the causal relationships on which the system depends become increasingly fragile. Process orientation faces too many difficulties. It is hard to cope with the complexity and frequent changes of the world.
In fact, not the process-oriented approach is incorrect, but because there are too many factors that constitute a system. We need to take all possible factors into account and analyze all the causal relationships clearly, it is too difficult to simulate this process. We have limited energy and computing power, so process-oriented thinking is powerless to this complex world.

"Having a hammer may not be an architect" is necessary to understand object-oriented languages, but it is not the first priority. Understanding object ideas is the key.

The Object-Oriented (Object Oriented) method regards the world as an independent Object. There is no causal relationship between the two objects. Only driven by an external force can objects transmit information to each other based on certain rules. These interactions constitute a "process" in the real world. Without external force, the object remains "static.
Object-oriented has a very important feature: Abstract layers. For example, a car. No matter which abstract level, we only need to face limited complexity and limited object structure, so we can focus on how objects at this level work. In addition, replacing a part with a lower abstraction level does not affect the functionality of a higher level. For example, spark plugs of a car.

However, object-oriented problems also exist:
How are objects abstracted?
Objects can be combined as needed. How can they be combined?
There may be multiple designs for the same question. What kind of design is good?

In actual work, multiple classes are often designed to meet the requirements. But why is this design necessary? Why are there 3 classes without losing 5? Why 7 methods instead of 10 methods? There are not many people who can answer this question. Most of them are based on experience, from demand to design, from implementation to objects. Designers come out with a single shot of their heads. Based on experience, they cannot say either or both, beginners are even more embarrassed. They can only get several classes to see if they can meet their needs. They can't modify them and try again.

How to analyze and export the requirements, and verify whether the design results meet the requirements. It is difficult for many experienced designers to express a reasonable derivation process.
There is a gap between the real world and the object world-this gap is called abstraction, and abstraction is the essence of object-oriented. It is also difficult. The difference between OO design masters and cainiao lies in abstract capabilities.
Fortunately, the Masters invented the OOAD method behind UML and UML, which bridges the gap.

In OO development, a vital capability is to skillfully assign responsibilities to software objects. there are other important skills in OOAD, but it is hard to master and critical to emphasize Responsibility Assignment.

What is UML?
UML is a standard graphical representation. It is critical to think about it with objects. UML is neither an OOAD nor a method, but a graphical representation. It makes no sense to learn how to create an excellent object-oriented design, how to evaluate and improve the design, and how to learn UML or CASE tools, object thinking is the key and difficulty.

What is analysis and design?
Analysis: focuses on the investigation of problems and needs.
DESIGN: It emphasizes the conceptual solution to meet the needs, rather than implementation.
Object-Oriented Analysis (OOA): It emphasizes discovering and Describing Objects (or concepts) in the problem field ).
Object-Oriented Design (OOD): focuses on defining software objects and how they work together to achieve their needs.

UML and UP
UML background
OO programming language emerged in the S (Smalltalk/Simula). After 82 years, it gradually began to develop object ideas. there are many masters, such as Kent Beck, Ivar jacbson (one of UML creators), and Jim Rumbaugh (one of UML creators)
UML was started in 94 years. It combined Booch and OMT methods. At that time, it was called unified method. Booch, Rumbaugh, Ivar jacbson joined Rational, and UML1.0 was formed in 97 years.

When talking about UML, we can't help but talk about the same process as the RUP, UML, And RUP engineers.

What is UP
UP (Unified Process) has become a popular iterative software development Process for constructing object-oriented systems. in particular, the Rational Unified Process is a detailed and refined Process that has been widely adopted.

UP stage (four stages ):
Initial Stage: General Conception, business case, scope, and fuzzy evaluation.
Refinement phase: refined conception, iterative implementation of core architecture, high-risk solution, determination of most needs and scopes, and more practical evaluation.
Construction phase: iterative implementation of elements with low risks and relatively simple elements, and deployment preparation.
Handover phase: beta testing and deployment.

The initial stage is not the demand stage, but the feasibility stage. A sufficient investigation should be conducted at this stage to determine whether to continue or terminate the project.
The Refinement phase is not a demand or design phase, but a stage that iteratively implements the core architecture and solves high-risk problems.
Figure:

UP subjects (9 core workflows ):
Business Modeling
Requirement
Design
Implementation: programming and building a system
Test
Deployment
Configuration and change management
Project Management
Environment: create a tool and process environment

Not all views in UML need to be used. The key is to describe things from the perspective of software engineering and what tools are needed to describe things.

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.