Automated Sequence Diagram Generation from CRC Information

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software development processes face challenges in maintaining up-to-date sequence diagrams and class diagrams due to their cumbersome nature, making them less useful for validating designs as projects progress.

Innovation Solution

A method and system for automatically generating and updating sequence diagrams and class diagrams using Class-Responsibility-Collaborator (CRC) information, where objects, responsibilities, and collaborators are associated to generate messages and dependencies, enabling processors to create these diagrams efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If sequence diagrams and class diagrams are manually created and maintained, then design visualization is achieved, but the diagrams become out-of-date and less useful as the project progresses

Engineering Contradiction:
Improvediagram accuracyVSAvoidtime to update diagrams
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by automatically generating sequence diagrams and class diagrams from CRC cards before the actual software development work begins. The diagrams are created in advance based on the CRC model, establishing a baseline that can be automatically updated as development progresses, thus maintaining accuracy without manual intervention.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements self-service by enabling the system to automatically update its own documentation. When CRC cards are modified during development, the sequence diagrams and class diagrams are automatically regenerated from the updated CRC information, allowing the documentation to self-update without requiring manual intervention from developers.

Inventive Principle:
Principle #25Self-service

2Loss of information

If sequence diagrams are manually generated, then system behavior can be captured, but the process becomes cumbersome and maintenance-intensive

Engineering Contradiction:
Improvesystem behavior documentationVSAvoiddiagram maintenance complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent merges the creation and maintenance of sequence diagrams with the CRC card modeling process. Instead of treating diagram creation as a separate, cumbersome task, the system combines it with the existing CRC card development workflow, automatically generating diagrams from the same source material used for system design, thus reducing maintenance complexity while preserving complete system behavior documentation.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If multiple software programmers develop multiple elements independently, then development productivity is improved, but integration and validation become difficult

Engineering Contradiction:
Improvedevelopment speedVSAvoiddesign validation
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies universality by creating a common CRC card-based modeling framework that serves multiple functions: it acts as both a design specification tool for individual programmers and an automatic generation source for sequence diagrams and class diagrams used for integration validation. This multi-functional approach allows independent development while maintaining design consistency across all team members.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9158504B2Method and system to automatically generate use case sequence diagrams and class diagrams
Publication Date: 2015.10.13 BAKER HUGHES CO
  • US9158504B2 patent drawing
  • US9158504B2 patent drawing
  • US9158504B2 patent drawing

AI summary

A system and computer-executed method automatically generate a sequence diagram from Class-Responsibility-Collaborator (CRC) information. The CRC information identifies objects, responsibility information for each object, and collaborator information for each object, and the CRC information corresponds with each activity in an activity diagram. The method includes storing, in a storage device, the objects and corresponding class types of the objects according to the CRC information and associating, by a processor, each of the objects with one or more other objects according to the collaborator information of the CRC information. The method also includes determining, by the processor, messages from each of the objects to associated objects according to the responsibility information, and the processor automatically generating the sequence diagram including the objects and the messages among the objects.