4+1 UML view model
Logical view
Describes the abstract descriptions of a system's parts. Used to model what a system is made up of and how the parts interact with each other. The types of UML diagrams that typically make up this view include class, object, state machine, and interaction diagrams.
Process view
Describes the processes within your system. It is particularly helpful when visualizing what must happen within your system. This view typically contains activity diagrams.
Development view
Describes how your system's parts are organized into modules and components. It is very useful to manage layers within your system's architecture. This view typically contains component diagrams.
Physical view
The diagrams in this view show how the abstract parts map into the final deployed system. This view typically contains deployment diagrams.
Use case view
Describes the functionality of the system being modeled from the perspective of the outside world. This view is needed to describe what the system is supposed to do. All of the other views rely on the use case view to guide them that’s why the model is called 4+1. This view typically contains use case diagrams.

Use cases diagrams用例图
Use cases diagrams is used to capture system's requirements, they specify the value that the system delivers to users.
Use Case Relationships: Include, Extend, Generalization.

Process View
Activity diagrams活动图
Activity diagrams show high-level actions chained together to represent a process occurring in your system. Activity diagrams can be used to describe the business and operational step-by-step workflows of components in a system. An activity diagram shows the overall flow of control.
Logical View
Class diagram类图
The class diagrams describes the structure of a system by showing the system's classes, their attributes, and the relationships among the classes.
Visibility + public, # protected, – private, ~ package
Dependency ----->
Dependency is a weaker form of relationship which indicates that one class depends on another because it uses it at some point of time.
Association is shown using a simple line connecting two classes.
Association means that a class will actually contain a reference to an object, or objects, of the other class in the form of an attribute
Aggregation is shown by using an empty diamond arrowhead next to the owning class. Aggregation is really just a stronger version of association and is used to indicate that a class actually owns but may share objects of another class.
Composition is shown using a closed, or filled, diamond arrowhead.
Composition is an even stronger relationship than aggregation,
Generalization and inheritance
Object diagrams对象图
An Object diagram focuses on some particular set of object instances and attributes, and the links between the instances.
Object diagrams are particularly useful when you want to describe how the objects within the system would work together in a particular scenario.
Sequence diagrams顺序图
A sequence diagram shows how processes operate with one another and in what order.
A sequence diagram shows, as parallel vertical lines (lifelines), different processes or objects that live simultaneously, and, as horizontal arrows, the messages exchanged between them, in the order in which they occur. This allows the specification of simple runtime scenarios in a graphical manner.
Communication diagrams通信图
A Communication diagram models the interactions between objects or parts in terms of sequenced messages; it adds another perspective to an interaction by focusing on the links between the participants.
Timing diagrams时序图
Timing diagrams are used to explore the behaviors of objects throughout a given period of time.

Composite structure diagram组合结构图– Logical View
Composite structure diagram is a type of static structure diagram that shows the internal structure of a class and the collaborations that this structure makes possible.

This diagram can include internal parts, ports through which the parts interact with each other or through which instances of the class interact with the parts and with the outside world, and connectors between parts or ports. A composite structure is a set of interconnected elements that collaborate at runtime to achieve some purpose. Each element has some defined role in the collaboration.
State machine diagrams状态机图 - Logical View
Behavioral state machines show states, transitions, and behavior (inside states and along transitions). There's another type of state machine called a protocol state machine that doesn't model behavior but is useful for modeling protocols such as network communication protocols.
Development View
Component diagram组件图
A component diagram depicts how components are wired together to form larger components and or software systems.
Physical view
Deployment diagrams部署图
A deployment diagram serves to model the physical deployment of artifacts on deployment targets.
Deployment diagrams show "the allocation of Artifacts to Nodes according to the Deployments defined between them."



Java (162) Lucene-Solr (112) Interview (63) J2SE (53) Algorithm (45) Soft Skills (39) Eclipse (32) Code Example (31) Troubleshooting (27) JavaScript (23) Linux (22) Spring (22) Tools (22) Windows (22) Web Development (20) Nutch2 (18) Bugs (17) Dev Tips (17) Debug (16) Defects (14) Text Mining (14) J2EE (13) Network (13) PowerShell (11) Chrome (10) Problem Solving (10) Google (9) How to (9) Learning code (9) Performance (9) Security (9) UIMA (9) html (9) Design (8) Http Client (8) Maven (8) bat (8) blogger (8) Big Data (7) Database (7) Guava (7) JSON (7) Shell (7) System Design (7) ANT (6) Coding Skills (6) Lesson Learned (6) Programmer Skills (6) Scala (6) css (6) Algorithm Series (5) Cache (5) Continuous Integration (5) IDE (5) Testing (5) adsense (5) xml (5) AIX (4) Become a Better You (4) Code Quality (4) Concurrency (4) GAE (4) Git (4) Good Programming Practices (4) Jackson (4) Life (4) Memory Usage (4) Miscs (4) OpenNLP (4) Project Managment (4) Review (4) Spark (4) ads (4) regular-expression (4) Android (3) Apache Spark (3) Distributed (3) Dynamic Languages (3) Eclipse RCP (3) English (3) Happy Hacking (3) IBM (3) J2SE Knowledge Series (3) JAX-RS (3) Jetty (3) Mac (3) Python (3) Restful Web Service (3) Script (3) regex (3) seo (3) .Net (2) Android Studio (2) Apache (2) Apache Procrun (2) Architecture (2) Batch (2) Bit Operation (2) Build (2) Building Scalable Web Sites (2) C# (2) C/C++ (2) CSV (2) Career (2) Cassandra (2) Fiddler (2) Google Drive (2) Gson (2) How to Interview (2) Html Parser (2) Http (2) Image Tools (2) JQuery (2) Jersey (2) LDAP (2) Logging (2) Software Issues (2) Storage (2) Text Search (2) xml parser (2) AOP (1) Application Design (1) AspectJ (1) Chrome DevTools (1) Cloud (1) Codility (1) Data Mining (1) Data Structure (1) ExceptionUtils (1) Exif (1) Feature Request (1) FindBugs (1) Firefox (1) Greasemonkey (1) HTML5 (1) Httpd (1) I18N (1) IBM Java Thread Dump Analyzer (1) Invest (1) JDK Source Code (1) JDK8 (1) JMX (1) Lazy Developer (1) Machine Learning (1) Mobile (1) My Plan for 2010 (1) Netbeans (1) Notes (1) Operating System (1) Perl (1) Problems (1) Product Architecture (1) Programming Life (1) Quality (1) Redhat (1) Redis (1) RxJava (1) Solutions logs (1) Team Management (1) Thread Dump Analyzer (1) Tips (1) Visualization (1) boilerpipe (1) htm (1) ongoing (1) procrun (1) rss (1)

Popular Posts