KR20220156153A - Method and system for assisting software development using visual representation of state transition of and message exchange between software components - Google Patents
Method and system for assisting software development using visual representation of state transition of and message exchange between software components Download PDFInfo
- Publication number
- KR20220156153A KR20220156153A KR1020210063746A KR20210063746A KR20220156153A KR 20220156153 A KR20220156153 A KR 20220156153A KR 1020210063746 A KR1020210063746 A KR 1020210063746A KR 20210063746 A KR20210063746 A KR 20210063746A KR 20220156153 A KR20220156153 A KR 20220156153A
- Authority
- KR
- South Korea
- Prior art keywords
- component
- message
- displaying
- action
- representing
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000007704 transition Effects 0.000 title claims abstract description 45
- 230000000007 visual effect Effects 0.000 title abstract description 7
- 230000009471 action Effects 0.000 claims abstract description 145
- 238000010586 diagram Methods 0.000 claims description 128
- 238000003860 storage Methods 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 11
- 230000001960 triggered effect Effects 0.000 claims description 2
- 230000003993 interaction Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 238000011161 development Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000007792 addition Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/453—Help systems
Abstract
Description
소프트웨어 컴포넌트의 상태 변화 및 메시지 교환의 시각적인 표현을 이용한 소프트웨어 개발 지원 방법 및 그 시스템에 관한 것이다. 보다 자세하게는, GUI(Graphic User Interface) 기반의 통합 개발 환경(IDE: Integrated Development Environment) 등에서 제공될 수 있는, 소프트웨어 컴포넌트의 상태 천이 및 이를 유발하는 메시지 교환을 직관적으로 이해할 수 있도록 시각적으로 표현하는 소프트웨어 개발 환경 제공 방법 및 그 시스템에 관한 것이다.A method and system for supporting software development using visual representations of state changes and message exchanges of software components. More specifically, software that visually expresses state transitions of software components and message exchanges that cause them, which can be provided in a GUI (Graphic User Interface)-based Integrated Development Environment (IDE), etc. It relates to a method and system for providing a development environment.
통합 개발 환경(IDE)은 개발자의 생산성을 증대하기 위하여 소프트웨어 개발 과정에서 필요한 코딩, 디버깅, 컴파일, 배포 등 다양한 요소들이 통합된 도구이다. 통합 개발 환경은 GUI 기반의 인터페이스를 제공하는 방향으로 발전해 왔다. 예시적인 통합 개발 환경으로서, 이클립스(Eclipse), 비주얼 스튜디오(Visual Studio) 등을 들 수 있다.An integrated development environment (IDE) is a tool that integrates various elements such as coding, debugging, compiling, and distribution required in the software development process to increase developer productivity. The integrated development environment has evolved to provide a GUI-based interface. As exemplary integrated development environments, Eclipse, Visual Studio, and the like can be cited.
통합 개발 환경에 있어서, 프로그래밍 경험이 많지 않은 개발자도 쉽게 개발을 진행할 수 있는 가이드를 제공하는 것이 필요하다. 이를 위하여, 직관적인 사용자 입력을 통하여 코드의 기본 틀을 최대한 세팅해 주는 기능을 제공하는 것이 바람직하다. In an integrated development environment, it is necessary to provide a guide that allows developers without much programming experience to easily develop. To this end, it is desirable to provide a function for maximally setting the basic frame of the code through an intuitive user input.
또한 개발 중인 소프트웨어를 구성하는 논리적인 구조와 구성 요소들의 세부 설계 사항을 직관적으로 이해할 수 있도록 시각화하는 기능을 제공하는 것이 바람직하다. In addition, it is desirable to provide a visualization function to intuitively understand the logical structure and detailed design details of the components constituting the software under development.
본 개시의 일 실시예를 통하여 달성하고자 하는 기술적 과제는, 소프트웨어를 구성하는 컴포넌트들이 놓일 수 있는 다양한 상태들 및 상태들 사이의 천이를 직관적으로 표현하는 소프트웨어 개발 지원 방법 및 그 시스템을 제공하는 것이다.A technical problem to be achieved through an embodiment of the present disclosure is to provide a software development support method and system that intuitively express various states in which components constituting software may be placed and transitions between states.
본 개시의 다른 일 실시예를 통하여 달성하고자 하는 기술적 과제는, 소프트웨어 컴포넌트들 사이에 교환되는 다양한 메시지들과 그로 인해 유발되는 상태의 천이를 직관적으로 표현하는 소프트웨어 개발 지원 방법 및 그 시스템을 제공하는 것이다.A technical problem to be achieved through another embodiment of the present disclosure is to provide a software development support method and system that intuitively express various messages exchanged between software components and state transitions caused thereby. .
본 개시의 또 다른 일 실시예를 통하여 달성하고자 하는 기술적 과제는, 소프트웨어 컴포넌트들의 동작 등을 기술한 소스 코드를 이용하여, 소프트웨어 컴포넌트의 상태 천이 및 메시지 교환을 자동으로 시각화하는 소프트웨어 개발 지원 방법 및 그 시스템을 제공하는 것이다.A technical problem to be achieved through another embodiment of the present disclosure is a software development support method for automatically visualizing state transitions and message exchanges of software components using source codes describing operations of software components, and a method for supporting software development thereof. to provide the system.
본 개시의 또 다른 일 실시예를 통하여 달성하고자 하는 기술적 과제는, 소프트웨어의 둘 이상의 컴포넌트들의 상태 천이 및 메시지 교환을 한 화면에서 효율적으로 열람할 수 있는 소프트웨어 개발 지원 방법 및 그 시스템을 제공하는 것이다. A technical problem to be achieved through another embodiment of the present disclosure is to provide a software development support method and system capable of efficiently viewing state transitions and message exchanges of two or more software components on one screen.
본 개시의 또 다른 일 실시예를 통하여 달성하고자 하는 기술적 과제는, 소프트웨어 개발자 또는 제3자가 소프트웨어의 여러 컴포넌트들의 사이의 상호 작용을 인터랙티브하게 조회할 수 있는 소프트웨어 개발 지원 방법 및 그 시스템을 제공하는 것이다. A technical problem to be achieved through another embodiment of the present disclosure is to provide a software development support method and system in which a software developer or a third party can interactively inquire the interaction between various software components. .
본 개시의 또 다른 일 실시예를 통하여 달성하고자 하는 기술적 과제는, 하드웨어 장치를 구성하는 물리적인 컴포넌트들을 제어하기 위한 소프트웨어 내부의 상태 천이 및 메시지 교환을 직관적으로 표현하는 소프트웨어 개발 지원 방법 및 그 시스템을 제공하는 것이다. A technical problem to be achieved through another embodiment of the present disclosure is to provide a software development support method and system that intuitively express state transitions and message exchanges inside software for controlling physical components constituting a hardware device. is to provide
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present disclosure are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below.
본 개시의 일 실시예에 따른 소프트웨어 개발 방법은, 컴퓨팅 장치에서 수행되는 방법으로서, 하드웨어 장치의 물리적 컴포넌트들 중 제1 컴포넌트가 가질 수 있는 복수의 상태들을 각각 나타내는 복수의 상태 오브젝트들을 디스플레이하는 단계와, 상기 복수의 상태들 사이의 천이를 유발하는 복수의 액션들을 각각 나타내는 복수의 액션 오브젝트들을 디스플레이하는 단계와, 상기 복수의 액션들 중 제1 액션과 관련된 메시지를 디스플레이하는 단계 - 상기 메시지는 상기 제1 액션의 실행을 유발하는 제1 메시지 또는 상기 제1 액션에 의해 발송되는 제2 메시지임 - 를 포함할 수 있다. A software development method according to an embodiment of the present disclosure is a method performed in a computing device, comprising the steps of displaying a plurality of state objects each representing a plurality of states that a first component among physical components of a hardware device may have. , displaying a plurality of action objects each indicating a plurality of actions that cause a transition between the plurality of states, and displaying a message related to a first action among the plurality of actions - the message is the first action object. A first message that triggers the execution of 1 action or a second message sent by the first action.
일 실시예에서, 상기 제1 메시지는, 상기 복수의 상태들 중 제1 상태에서 상기 제1 액션이 실행되도록 유발하는 메시지이며, 상기 메시지를 디스플레이하는 단계는, 상기 제1 상태를 나타내는 오브젝트와 상기 제1 액션을 나타내는 오브젝트 사이에 상기 제1 메시지를 나타내는 오브젝트를 디스플레이하는 단계를 포함할 수 있다. In one embodiment, the first message is a message that causes the first action to be executed in a first state among the plurality of states, and the displaying of the message includes an object representing the first state and the The method may include displaying an object representing the first message between objects representing the first action.
일 실시예에서, 상기 제1 메시지를 나타내는 오브젝트를 디스플레이하는 단계는, 상기 제1 상태를 나타내는 오브젝트와 상기 제1 액션을 나타내는 오브젝트 사이를 잇는 연결선 상에 상기 제1 메시지를 나타내는 오브젝트의 적어도 일부가 중첩되도록 디스플레이하는 단계를 포함할 수 있다. In one embodiment, the displaying of the object representing the first message may include placing at least a portion of the object representing the first message on a connection line between the object representing the first state and the object representing the first action. It may include a step of displaying so as to overlap.
일 실시예에서, 상기 제1 메시지를 나타내는 오브젝트는 상기 제1 메시지를 나타내는 텍스트 오브젝트를 포함할 수 있다. In one embodiment, the object representing the first message may include a text object representing the first message.
일 실시예에서, 상기 메시지를 디스플레이하는 단계는, 상기 제1 메시지와 관련된 세부 정보를 디스플레이를 나타내는 단계를 더 포함하되, 상기 세부 정보는 상기 제1 컴포넌트를 대상으로 하여 상기 제1 메시지를 발송하는 소스 컴포넌트의 식별 정보를 포함하며, 상기 소스 컴포넌트는 상기 컴포넌트들 중 상기 제1 컴포넌트와 상이한 제2 컴포넌트일 수 있다.In one embodiment, the displaying of the message further includes displaying detailed information related to the first message, wherein the detailed information is configured to send the first message to the first component. It includes identification information of a source component, and the source component may be a second component different from the first component among the components.
일 실시예에서, 상기 세부 정보는 상기 소스 컴포넌트로 하여금 상기 제1 메시지를 발송하도록 하는 액션의 식별 정보를 더 포함할 수 있다. In one embodiment, the detailed information may further include identification information of an action causing the source component to send the first message.
일 실시예에서, 상기 세부 정보를 디스플레이하는 단계는, 상기 제1 메시지를 나타내는 오브젝트를 선택 또는 포인팅하는 사용자 입력에 응답하여, 상기 세부 정보를 디스플레이하는 단계를 포함할 수 있다. In an embodiment, the displaying of the detailed information may include displaying the detailed information in response to a user input of selecting or pointing to an object representing the first message.
일 실시예에서, 상기 메시지를 디스플레이하는 단계는, 상기 제1 컴포넌트를 대상으로 하여 상기 제1 메시지를 발송하는 제2 컴포넌트 및 제3 컴포넌트를 각각 나타내는 오브젝트들을 디스플레이하는 단계를 포함하며, 상기 제2 컴포넌트를 나타내는 오브젝트를 선택 또는 포인팅하는 사용자 입력에 응답하여, 상기 제2 컴포넌트의 상태의 천이를 나타내는 다이어그램의 적어도 일부를 디스플레이하는 단계를 더 포함할 수 있다. In one embodiment, the displaying of the message includes displaying objects representing a second component and a third component that send the first message to the first component, respectively, and the second component The method may further include displaying at least a portion of a diagram representing a state transition of the second component in response to a user input of selecting or pointing to an object representing the component.
일 실시예에서, 상기 제2 컴포넌트의 상태의 천이를 나타내는 다이어그램의 적어도 일부를 디스플레이하는 단계는, 상기 제2 컴포넌트가 수행하는 액션들 중에 상기 제1 컴포넌트를 대상으로 상기 제1 메시지를 발송하는 제2 액션을 나타내는 오브젝트를 디스플레이하는 단계를 포함할 수 있다. In one embodiment, the displaying of at least a portion of a diagram representing the state transition of the second component may include sending the first message to the first component among actions performed by the second component. 2 may include displaying an object representing the action.
일 실시예에서, 상기 제2 컴포넌트의 상태의 천이를 나타내는 다이어그램의 적어도 일부를 디스플레이하는 단계는, 상기 다이어그램을 반투명하게 디스플레이하는 단계를 포함할 수 있다. In an embodiment, the displaying of at least a portion of the diagram indicating the state transition of the second component may include displaying the diagram in a translucent manner.
일 실시예에서, 상기 제2 메시지는 타깃 컴포넌트를 대상으로 상기 제1 액션에 의해 발송되는 메시지이며, 상기 타깃 컴포넌트는, 상기 제1 컴포넌트이거나 또는 상기 컴포넌트들 중 상기 제1 컴포넌트와 상이한 제2 컴포넌트일 수 있다. In one embodiment, the second message is a message sent by the first action to a target component, and the target component is the first component or a second component different from the first component among the components. can be
일 실시예에서, 상기 메시지를 디스플레이하는 단계는, 상기 제1 액션을 나타내는 오브젝트에 인접하여 상기 제2 메시지를 나타내는 오브젝트를 디스플레이하는 단계를 포함할 수 있다. In one embodiment, the displaying of the message may include displaying an object representing the second message adjacent to the object representing the first action.
일 실시예에서, 상기 메시지를 디스플레이하는 단계는, 상기 제1 액션을 나타내는 오브젝트를 선택 또는 포인팅하는 사용자 입력에 응답하여, 상기 제2 메시지를 나타내는 오브젝트를 디스플레이하는 단계를 포함할 수 있다. In one embodiment, the displaying of the message may include displaying an object representing the second message in response to a user input of selecting or pointing to an object representing the first action.
일 실시예에서, 상기 메시지를 디스플레이하는 단계는, 상기 제1 액션에 의해 상기 제2 컴포넌트를 대상으로 발송되는 상기 제2 메시지 및 상기 제1 액션에 의해 제3 컴포넌트를 대상으로 발송되는 제3 메시지를 각각 나타내는 오브젝트들을 디스플레이하는 단계를 포함하며, 상기 제3 메시지를 나타내는 오브젝트를 선택 또는 포인팅하는 사용자 입력에 응답하여, 상기 제3 컴포넌트의 상태의 천이를 나타내는 다이어그램의 적어도 일부를 디스플레이하는 단계를 더 포함할 수 있다. In one embodiment, the displaying of the message may include the second message sent to the second component by the first action and the third message sent to the third component by the first action. In response to a user input of selecting or pointing to an object representing the third message, displaying at least a portion of a diagram representing state transition of the third component can include
일 실시예에서, 상기 제3 컴포넌트의 상태의 천이를 나타내는 다이어그램의 적어도 일부를 디스플레이하는 단계는, 상기 제3 컴포넌트가 수행하는 액션들 중에 상기 제3 메시지에 의해 유발되는 제3 액션을 나타내는 오브젝트를 디스플레이하는 단계를 포함할 수 있다. In one embodiment, the displaying of at least a portion of the diagram representing the state transition of the third component may include selecting an object representing a third action triggered by the third message among actions performed by the third component. It may include displaying.
일 실시예에서, 상기 복수의 상태들과 상기 복수의 액션들의 관계를 나타내는 그래픽 객체를 디스플레이하는 단계를 더 포함할 수 있다. In one embodiment, the method may further include displaying a graphic object representing a relationship between the plurality of states and the plurality of actions.
일 실시예에서, 상기 제1 액션은 상기 제1 컴포넌트를 제1 상태로부터 제2 상태로 천이시키는 액션이고, 상기 관계를 나타내는 그래픽 객체를 디스플레이하는 단계는, 상기 제1 상태를 나타내는 오브젝트와 상기 제1 액션을 나타내는 오브젝트를 시각적으로 연결하는 그래픽 객체를 디스플레이하는 단계와, 상기 제1 액션을 나타내는 오브젝트와 상기 제2 상태를 나타내는 오브젝트를 시각적으로 연결하는 그래픽 객체를 디스플레이하는 단계를 포함할 수 있다. In one embodiment, the first action is an action of transitioning the first component from a first state to a second state, and displaying a graphic object representing the relationship includes an object representing the first state and the second state. The method may include displaying a graphic object visually connecting an object representing one action, and displaying a graphic object visually connecting an object representing the first action and an object representing the second state.
일 실시예에서, 상기 컴포넌트들 중에 제1 그룹의 컴포넌트들 각각을 나타내는 오브젝트들을 디스플레이하는 단계를 더 포함할 수 있다. In one embodiment, the method may further include displaying objects representing each of the components of the first group among the components.
일 실시예에서, 상기 제1 그룹의 컴포넌트들 각각은 상기 제1 컴포넌트와 메시지를 교환하는 컴포넌트일 수 있다. In one embodiment, each of the components of the first group may be a component that exchanges messages with the first component.
일 실시예에서, 상기 제1 그룹의 컴포넌트들 각각을 나타내는 오브젝트들을 디스플레이하는 단계는, 상기 오브젝트들을 미니맵 상에 디스플레이하는 단계와, 상기 제1 그룹의 컴포넌트들과 상기 제1 컴포넌트 사이의 메시지 송수신 방향을 상기 미니맵 상에 시각적으로 나타내는 단계를 포함할 수 있다. In one embodiment, the displaying of objects representing each of the components of the first group may include displaying the objects on a mini-map, and transmitting and receiving messages between the components of the first group and the first component. A step of visually indicating a direction on the mini-map may be included.
일 실시예에서, 상기 컴포넌트들 중, 상기 제1 컴포넌트와 상이한 제2 컴포넌트의 상태의 천이를 나타내는 다이어그램을 디스플레이하는 단계를 더 포함할 수 있다. In an embodiment, the method may further include displaying a diagram showing state transitions of a second component different from the first component among the components.
일 실시예에서, 상기 제1 컴포넌트의 상태의 천이에 관한 그래픽 객체들을 제1 레이어 상에 디스플레이하는 단계와, 상기 제2 컴포넌트의 상태의 천이에 관한 그래픽 객체들을 제2 레이어 상에 디스플레이하되, 상기 제2 레이어는 상기 제1 레이어와 이격하여 디스를레이하는 단계를 더 포함할 수 있다. In one embodiment, displaying graphic objects related to the state transition of the first component on a first layer, and displaying graphic objects related to the state transition of the second component on a second layer, The step of displaying the second layer at a distance from the first layer may be further included.
일 실시예에서, 상기 이격된 상기 제1 레이어와 상기 제2 레이어 사이에, 상기 제1 컴포넌트와 상기 제2 컴포넌트 사이의 메시지 교환을 나타내는 그래픽 객체들을 디스플레이하는 단계를 더 포함할 수 있다. In one embodiment, the method may further include displaying graphic objects representing message exchange between the first component and the second component between the separated first layer and the second layer.
일 실시예에서, 상기 제1 레이어 및 상기 제2 레이어 중 적어도 하나의 가시성을 토글하기 위한 사용자 인터페이스를 제공하는 단계와, 사용자에 의해 비가시화되는 레이어와 연관된 컴포넌트가 다른 컴포넌트와 교환하는 메시지에 대응되는 그래픽 객체들을 비가시화화는 단계를 더 포함할 수 있다. In one embodiment, providing a user interface for toggling the visibility of at least one of the first layer and the second layer, and corresponding to a message exchanged between a component associated with a layer invisible by a user and another component. A step of making the graphic objects to be invisible may be further included.
일 실시예에서, 상기 컴포넌트들에 대응되는 소스 코드를 로딩하는 단계와, 상기 소스 코드를 분석하는 단계와, 상기 분석 결과에 기초하여, 상기 제1 컴포넌트가 발송하거나 수신하는 메시지와 관련된 정보를 저장소에 저장하는 단계를 더 포함하고, 상기 제1 액션과 관련된 메시지를 디스플레이하는 단계는, 상기 저장소에 저장된 정보에 기초하여, 상기 메시지를 디스플레이하는 단계를 포함할 수 있다. In one embodiment, the step of loading the source code corresponding to the components, the step of analyzing the source code, based on the analysis result, storage of information related to the message sent or received by the first component The displaying of the message related to the first action may include displaying the message based on information stored in the storage.
일 실시예에서, 상기 소스 코드를 분석하는 단계는, 상기 소스 코드를 파싱하여 추상 구문 트리(Abstract Syntax Tree)를 생성하는 단계와, 상기 추상 구문 트리를 분석하여 메시지의 송수신과 관련된 인스터럭션을 식별하는 단계와, 상기 식별된 인스트럭션에 기초하여, 상기 제1 컴포넌트가 발송하는 메시지의 타깃 컴포넌트에 관한 정보를 식별하는 단계와, 상기 식별된 인스트럭션에 기초하여, 상기 제1 컴포넌트를 대상으로 메시지를 발송하는 소스 컴포넌트에 관한 정보를 식별하는 단계를 포함할 수 있다. In one embodiment, the analyzing of the source code may include parsing the source code to generate an abstract syntax tree, and analyzing the abstract syntax tree to generate instructions related to transmission and reception of messages. Identifying information about a target component of a message sent by the first component based on the identified instruction; and sending a message to the first component based on the identified instruction. It may include identifying information about the sending source component.
일 실시예에서, 상기 소스 코드의 갱신을 감지하는 단계와, 상기 소스 코드의 갱신의 감지에 응답하여, 상기 제1 컴포넌트의 상태의 천이를 나타내는 다이어그램의 적어도 일부를 갱신하여 디스플레이하는 단계를 더 포함할 수 있다. In one embodiment, the step of detecting the update of the source code, and in response to the detection of the update of the source code, updating and displaying at least a part of the diagram representing the state transition of the first component. can do.
본 개시의 일 실시예에 따른 컴퓨터 판독 가능한 비일시적 저장 매체는 명령어를 포함하고, 상기 명령어는 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 하드웨어 장치의 물리적 컴포넌트들 중 제1 컴포넌트가 가질 수 있는 복수의 상태들을 각각 나타내는 복수의 상태 오브젝트들을 디스플레이하는 단계와, 상기 복수의 상태들 사이의 천이를 유발하는 복수의 액션들을 각각 나타내는 복수의 액션 오브젝트들을 디스플레이하는 단계와, 상기 복수의 액션들 중 제1 액션과 관련된 메시지를 디스플레이하는 단계 - 상기 메시지는 상기 제1 액션의 실행을 유발하는 제1 메시지 또는 상기 제1 액션에 의해 발송되는 제2 메시지임 - 를 포함하는 동작들을 수행하도록 할 수 있다.A computer readable non-transitory storage medium according to an embodiment of the present disclosure includes instructions, and when executed by a processor, the instructions cause the processor to: displaying a plurality of state objects respectively representing the states of the plurality of states; displaying a plurality of action objects each representing a plurality of actions that cause a transition between the plurality of states; Displaying a message related to the action, wherein the message is a first message causing execution of the first action or a second message sent by the first action.
본 개시의 일 실시예에 따른 소프트웨어 개발 지원 장치는, 프로세서, 메모리, 및 상기 메모리에 로드(load)되고, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 포함하되, 상기 컴퓨터 프로그램은, 하드웨어 장치의 물리적 컴포넌트들 중 제1 컴포넌트가 가질 수 있는 복수의 상태들을 각각 나타내는 복수의 상태 오브젝트들을 디스플레이하는 인스트럭션과, 상기 복수의 상태들 사이의 천이를 유발하는 복수의 액션들을 각각 나타내는 복수의 액션 오브젝트들을 디스플레이하는 인스트럭션과, 상기 복수의 액션들 중 제1 액션과 관련된 메시지를 디스플레이하는 인스트럭션 - 상기 메시지는 상기 제1 액션의 실행을 유발하는 제1 메시지 또는 상기 제1 액션에 의해 발송되는 제2 메시지임 - 을 포함할 수 있다.A software development support apparatus according to an embodiment of the present disclosure includes a processor, a memory, and a computer program loaded into the memory and executed by the processor, wherein the computer program is a physical component of a hardware device. An instruction for displaying a plurality of state objects each representing a plurality of states that a first component may have, and an instruction for displaying a plurality of action objects each representing a plurality of actions that cause a transition between the plurality of states. and an instruction for displaying a message related to a first action among the plurality of actions, wherein the message is a first message causing execution of the first action or a second message sent by the first action. can do.
도 1은 본 개시의 일 실시예에 따른 소프트웨어 개발 지원 시스템의 구성도이다.
도 2는 본 개시의 몇몇 실시예들을 이해할 때 참조될 수 있는 예시적인 하드웨어 장치를 추상화한 참조 도면이다.
도 3은 본 개시의 다른 일 실시예에 따른 소프트웨어 개발 지원 방법의 순서도이다.
도 4는 본 개시의 몇몇 실시예들을 이해하기 위해 참조될 수 있는 예시적인 FSM 뷰를 도시한 도면이다.
도 5는 도 3을 참조하여 설명한 실시예의 일부 단계를 보다 자세히 설명하기 위한 도면이다.
도 6 및 도 7은 본 개시의 몇몇 실시예들을 이해할 때 참조될 수 있는 예시적인 컴포넌트들 각각의 FSM 다이어그램을 도시한 도면이다.
도 8은 도 5를 참조하여 설명한 동작들 중 일부를 보다 자세히 설명하기 위한 도면이다.
도 9는 도 8을 참조하여 설명한 동작들 중 제1 메시지를 선택하는 사용자 입력을 획득하는 동작을 이해하기 위하여 참조될 수 있는 예시적인 사용자 인터페이스를 나타낸 도면이다.
도 10은 도 8을 참조하여 설명한 동작들 중 제2 컴포넌트의 FSM 뷰를 요청하는 사용자 입력을 획득하는 동작을 이해하기 위하여 참조될 수 있는 예시적인 사용자 인터페이스를 나타낸 도면이다.
도 11 내지 도 13은 도 8을 참조하여 설명한 동작들 중 제2 컴포넌트의 FSM 뷰를 제1 컴포넌트의 FSM 뷰와 함께 디스플레이하는 동작을 이해하기 위하여 참조될 수 있는 예시적인 사용자 인터페이스를 나타낸 도면이다.
도 14는 도 5를 참조하여 설명한 동작들 중 일부를 보다 자세히 설명하기 위한 도면이다.
도 15는 도 14를 참조하여 설명한 동작들 중 제1 액션을 선택하는 사용자 입력을 획득하는 동작을 이해하기 위하여 참조될 수 있는 예시적인 사용자 인터페이스를 나타낸 도면이다.
도 16은 도 14를 참조하여 설명한 동작들 중 제2 컴포넌트의 FSM 뷰를 요청하는 사용자 입력을 획득하는 동작을 이해하기 위하여 참조될 수 있는 예시적인 사용자 인터페이스를 나타낸 도면이다.
도 17 내지 도 19는 도 14를 참조하여 설명한 동작들 중 제2 컴포넌트의 FSM 뷰를 제1 컴포넌트의 FSM 뷰와 함께 디스플레이하는 동작을 이해하기 위하여 참조될 수 있는 예시적인 사용자 인터페이스를 나타낸 도면이다.
도 20은 본 개시의 다른 일 실시예에 따른 소프트웨어 개발 지원 방법에 의해 복수의 컴포넌트들 각각의 FSM 다이어그램을 입체적으로 디스플레이하는 예시적인 방법을 나타낸 순서도이다.
도 21은 도 20을 참조하여 설명한 방법을 이해하기 위하여 참조될 수 있는 예시적인 사용자 인터페이스를 나타낸 도면이다.
도 22는 도 3을 참조하여 설명한 실시예의 일부 단계를 보다 자세히 설명하기 위한 도면이다.
도 23은 도 22를 참조하여 설명한 동작들 중 일부를 이해하기 위하여 참조될 수 있는 예시적인 소스 코드를 나타낸 도면이다.
도 24는 도 3을 참조하여 설명한 실시예의 일부 단계를 보다 자세히 설명하기 위한 도면이다.
도 25는 본 개시의 또 다른 일 실시예에 따른 소프트웨어 개발 시스템에 포함되는 개발자 단말 또는 IDE 서비스 서버의 하드웨어 구성도이다.1 is a configuration diagram of a software development support system according to an embodiment of the present disclosure.
2 is a reference diagram abstracting an exemplary hardware device that may be referred to when understanding some embodiments of the present disclosure.
3 is a flowchart of a software development support method according to another embodiment of the present disclosure.
4 is a diagram illustrating an example FSM view that may be referenced for understanding some embodiments of the present disclosure.
FIG. 5 is a diagram for explaining in detail some steps of the embodiment described with reference to FIG. 3 .
6 and 7 are FSM diagrams of each of the illustrative components that may be referenced in understanding some embodiments of the present disclosure.
FIG. 8 is a diagram for explaining in detail some of the operations described with reference to FIG. 5 .
FIG. 9 is a diagram illustrating an exemplary user interface that may be referenced to understand an operation of acquiring a user input for selecting a first message among the operations described with reference to FIG. 8 .
FIG. 10 is a diagram illustrating an exemplary user interface that may be referenced to understand an operation of obtaining a user input requesting an FSM view of a second component among operations described with reference to FIG. 8 .
11 to 13 are views illustrating exemplary user interfaces that may be referenced to understand an operation of displaying an FSM view of a second component together with an FSM view of a first component among operations described with reference to FIG. 8 .
FIG. 14 is a diagram for explaining in detail some of the operations described with reference to FIG. 5 .
FIG. 15 is a diagram illustrating an exemplary user interface that may be referred to in order to understand an operation of obtaining a user input for selecting a first action among the operations described with reference to FIG. 14 .
FIG. 16 is a diagram illustrating an exemplary user interface that may be referenced to understand an operation of obtaining a user input requesting an FSM view of a second component among operations described with reference to FIG. 14 .
17 to 19 are views illustrating exemplary user interfaces that may be referenced to understand an operation of displaying an FSM view of a second component together with an FSM view of a first component among operations described with reference to FIG. 14 .
20 is a flowchart illustrating an exemplary method of displaying an FSM diagram of each of a plurality of components in a three-dimensional manner by a software development support method according to another embodiment of the present disclosure.
FIG. 21 is a diagram illustrating an exemplary user interface that may be referred to for understanding the method described with reference to FIG. 20 .
FIG. 22 is a diagram for explaining in detail some steps of the embodiment described with reference to FIG. 3 .
FIG. 23 is a diagram showing exemplary source code that can be referenced to understand some of the operations described with reference to FIG. 22 .
FIG. 24 is a diagram for explaining in detail some steps of the embodiment described with reference to FIG. 3 .
25 is a hardware configuration diagram of a developer terminal or IDE service server included in a software development system according to another embodiment of the present disclosure.
이하, 첨부된 도면을 참조하여 본 명세서의 실시예들을 상세히 설명한다. 본 명세서의 실시예들의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 명세서의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.Hereinafter, embodiments of the present specification will be described in detail with reference to the accompanying drawings. Advantages and characteristics of the embodiments of this specification, and methods for achieving them will become clear with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the technical idea of the present invention is not limited to the following embodiments and can be implemented in various different forms, only the following embodiments complete the technical idea of the present invention, and the embodiments of this specification belong It is provided to completely inform those skilled in the art of the scope of the present invention, and the technical spirit of the present invention is only defined by the scope of the claims.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 명세서의 실시예들을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.In adding reference numerals to components of each drawing, it should be noted that the same components have the same numerals as much as possible even if they are displayed on different drawings. In addition, in describing the embodiments of the present specification, if it is determined that a detailed description of a related known configuration or function may obscure the subject matter, the detailed description will be omitted.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 명세서의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 명세서의 실시예들을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used in a meaning commonly understood by those of ordinary skill in the art to which the embodiments of this specification belong. In addition, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless explicitly specifically defined. Terminology used herein is for describing the embodiments and is not intended to limit the embodiments herein. In this specification, singular forms also include plural forms unless specifically stated otherwise in a phrase.
또한, 본 명세서의 실시예들의 구성 요소를 설명하는 데 있어서, 제1, 제2 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소 또는 소프트웨어 컴포넌트가 다른 구성 요소 또는 소프트웨어 컴포넌트에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.In addition, in describing the components of the embodiments of the present specification, terms such as first and second may be used. These terms are only used to distinguish the component from other components, and the nature, order, or order of the corresponding component is not limited by the term. When an element or software component is described as being “connected”, “coupled” or “connected” to another element or software component, the element may be directly connected or connected to the other element, but each component It should be understood that another component may be “connected”, “coupled” or “connected” between elements.
이하, 몇몇 실시예들에 대하여 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, some embodiments will be described in detail with reference to the accompanying drawings.
본 개시의 일 실시예에 따른 소프트웨어 개발 지원 시스템의 구성 및 동작을 도 1을 참조하여 설명한다.The configuration and operation of a software development support system according to an embodiment of the present disclosure will be described with reference to FIG. 1 .
본 실시예에 따른 소프트웨어 개발 지원 시스템은, 도 1에 도시된 바와 같이 IDE 서비스 서버(10) 및 IDE 서비스 서버(10)에 네트워크를 통하여 접속할 수 있는 개발자 단말들(20-1, 20-2)을 포함할 수 있다. 도 1에 도시된 소프트웨어 개발 지원 시스템은 클라우드 기반 IDE와 같은 서버 기반 IDE를 제공한다. 본 실시예에 따른 소프트웨어 개발 지원 시스템이 반드시 서버 기반 IDE여야 하는 것은 아니다. 예를 들어, 본 개시의 다른 실시예는 개발자 단말(20-1, 20-2)에만 설치되는(client-alone) IDE일 수도 있을 것이다. 본 실시예를 참조하여 설명하는 서버 기반 IDE에서 제공하는 몇몇 기술 사상들은 당연히 개발자 단말(20-1, 20-2)에만 설치되는 IDE에도 그대로 적용 가능하다. 예를 들어, 이러한 IDE는 하드웨어 장치, 예컨대 제조 설비에서 동작하는 소프트웨어를 개발하기 위한 설비 제어 프로그램 개발용 IDE일 수 있다. 이 경우, 도 1의 IDE 서비스 서버(10)에 대응되는 IDE 서비스는 개발자 단말(20-1, 20-2)에 설치되는 것일 수 있다. 이러한 설비 제어 개발용 IDE에도 본 명세서에서 제시되는 다양한 실시예들이 적용될 수 있음은 물론이다.As shown in FIG. 1, the software development support system according to the present embodiment includes an
IDE 서비스 서버(10)는 소스 코드 등 개발 프로젝트의 산출물을 저장하기 위한 IDE 스토리지(11)와 네트워크 또는 내부망(미도시)을 통하여 연결될 수 있다. 또한, IDE 서비스 서버(10)는 개발자 단말들(20-1, 20-2)에 복수의 뷰(view)를 포함하는 IDE GUI의 데이터를 송신할 수 있다. 상기 IDE GUI는 코드 뷰, 유닛 설계 뷰, 프로퍼티 뷰, 및 FSM 뷰 등을 포함할 수 있다.The
본 실시예에 따른 소프트웨어 개발 지원 시스템이 제공하는 IDE는, 소스 코드를 파싱하는 파서(parser), 파싱된 소스 코드를 기초로 추상 구문 트리를 생성하는 AST 생성부, 생성된 AST를 기초로 하여 소스 코드 내에서 메시지를 송신하는 명령어를 식별하고, 메시지 송수신의 소스 컴포넌트 및/또는 타깃 컴포넌트를 기준으로 이를 메시지 송수신을 구조체에 기록하는 메시지 분석부를 포함할 수 있다.The IDE provided by the software development support system according to the present embodiment includes a parser for parsing source code, an AST generation unit for generating an abstract syntax tree based on the parsed source code, and a source code based on the generated AST. It may include a message analyzer that identifies instructions for transmitting messages within the code and records message transmission and reception in a structure based on a source component and/or a target component of message transmission and reception.
IDE 서비스 서버(10)의 다양한 동작에 대하여는 후술될 몇몇 실시예들을 참조하여 보다 자세히 이해될 수 있을 것이다.Various operations of the
본 개시에 따른 소프트웨어 개발 지원 방법 및 그 시스템에 의해 개발될 수 있는 소프트웨어의 일례로서, 하드웨어 장치, 예컨대 제조 설비를 제어하기 위한 소프트웨어를 설명한다.As an example of software that can be developed by the software development support method and system according to the present disclosure, software for controlling a hardware device, for example, a manufacturing facility, will be described.
본 개시에 따른 소프트웨어 개발 지원 방법 및 그 시스템에 의해 개발될 수 있는 소프트웨어는, 하드웨어 장치의 전체적인 동작을 위하여 요구되는 복수의 구성 단위 또는 복수의 기능 단위 각각을 담당하는 소프트웨어 컴포넌트들로 구성될 수 있다. 소프트웨어 컴포넌트는 특정 기능을 실행하는 복수의 함수 및 상기 함수의 실행에 수반되는 변수들로 구성될 수 있을 것이다.The software development support method and software developed by the system according to the present disclosure may be composed of a plurality of structural units required for the overall operation of the hardware device or software components responsible for each of the plurality of functional units. . A software component may be composed of a plurality of functions that execute specific functions and variables involved in the execution of the functions.
소프트웨어 컴포넌트는, 하드웨어 장치를 구성하는 물리적인 컴포넌트들에 대응될 수 있다. 각각의 소프트웨어 컴포넌트는 대응되는 각각의 물리적인 컴포넌트의 상태 및 동작 등을 정의하는 명령어들을 포함하는 소스 개체들을 통해 구현될 수 있다.A software component may correspond to physical components constituting a hardware device. Each software component may be implemented through source entities including instructions defining the state and operation of each corresponding physical component.
예를 들어, 제1 소스 개체는 개발 대상 소프트웨어의 제1 컴포넌트를 구현하기 위한 것이고, 상기 제2 소스 개체는 개발 대상 소프트웨어의 제2 컴포넌트를 구현하기 위한 것일 수 있다. 제1 소스 개체는 제1 소스 파일의 소스 코드를 가리키고, 상기 제2 소스 개체는 제2 소스 파일의 소스 코드를 가리킬 수 있다. 다만, 상기 제1 소스 개체와 상기 제2 소스 개체가 반드시 서로 다른 소스 파일에 기록될 필요는 없다. 예를 들어, 상기 제1 소스 개체와 상기 제2 소스 개체는 하나의 소스 파일의 서로 다른 영역의 소스 코드들을 각각 가리킬 수도 있다.For example, the first source entity may implement a first component of the software to be developed, and the second source entity may implement a second component of the software to be developed. The first source object may point to the source code of the first source file, and the second source object may point to the source code of the second source file. However, the first source entity and the second source entity need not necessarily be recorded in different source files. For example, the first source entity and the second source entity may respectively indicate source codes of different regions of one source file.
한편, 각각의 소프트웨어 컴포넌트가 반드시 개별적인 바이너리로서 산출되어야 하는 것은 아니다. 즉 각각의 소프트웨어 컴포넌트는, 서로 다른 하드웨어 컴포넌트 또는 기능 단위의 구현을 위해 그 구현이 개별적인 소스 개체에 기록된 것으로 이해될 수 있다. On the other hand, each software component does not necessarily have to be produced as an individual binary. That is, it can be understood that each software component is recorded in an individual source entity for the implementation of different hardware components or functional units.
한편, 하드웨어 장치를 구성하는 물리적인 컴포넌트들과 이에 대응되는 각각의 소프트웨어 컴포넌트들은 유한-상태 머신(FSM: Finite-State Machine)일 수 있다. 다시 말해, 상기 컴포넌트들은 유한한 개수의 상태들 중 한 번에 하나의 상태만을 가질 수 있는 추상 기계로서 이해될 수 있으며, 어떠한 사건(Event) 내지는 액션(Action)에 의해 한 상태에서 다른 상태로 변화할 수 있다. 본 명세서에서 이러한 상태 변화를 전이 또는 천이(Transition)라고 지칭하기로 한다.Meanwhile, physical components constituting the hardware device and respective software components corresponding thereto may be a finite-state machine (FSM). In other words, the components can be understood as abstract machines that can have only one state out of a finite number of states at a time, and change from one state to another due to some event or action. can do. In this specification, this state change will be referred to as transition or transition.
전술한 바와 같이 IDE 서비스 서버(10)가 제공하는 IDE GUI는 FSM 뷰를 포함하며, FSM 뷰에서는 하나 또는 그 이상의 컴포넌트들의 상태의 천이 및 이를 유발하는 메시지들이 디스플레이될 수 있다. 이에 대해서는 도 4 이하를 참조하여 후술하기로 한다. As described above, the IDE GUI provided by the
이하, 도 2를 참조하여, 본 개시의 몇몇 실시예들을 이해할 때 참조될 수 있는 예시적인 하드웨어 장치를 추상화한 머신을 나타낸 참조 도면이다. Referring now to FIG. 2, it is a reference diagram illustrating a machine abstracting an exemplary hardware device that may be referenced in understanding some embodiments of the present disclosure.
상기 머신은 하드웨어 장치의 특정 파트에 대응되는 액터 컴포넌트 유닛들(31 내지 33) 및 공통된 용도를 가지고 있어 세트를 구성하는 복수의 밸류로 구성되는 밸류 구조체에 대응되는 Variable 타입의 유닛(34) 등을 포함할 수 있다.The machine has
액터 컴포넌트들(31, 32, 33) 각각은 독자적인 FSM(Finite State Machine) 기반의 동작 방식을 취하며, 이를 위해 액터 컴포넌트(31, 32, 33) 각각은 상태 정보(31a, 32a, 33a)를 가진다. 또한, 액터 컴포넌트(31, 32, 33)들은 서로 메시지를 교환할 수 있다. 이를 위해 액터 컴포넌트(31, 32, 33) 각각은 메시지 큐(31b, 32b, 33b)를 구비할 수 있다. 도 2에는 메시지 큐(31b, 32b, 33b)가 FIFO(First-In-First-Out)로 구현되는 것으로 도시되어 있으나, 다른 방식으로 구현된 메시지 큐가 각 액터 컴포넌트에 포함될 수도 있을 것이다. Each of the
이하, 도 3을 참조하여, 본 개시의 다른 일 실시예에 따른 소프트웨어 개발 지원 방법을 설명한다. 이하, 본 실시예에 따른 방법을 설명함에 있어서, 각각의 동작의 주체에 대한 기재가 생략될 수 있으며, 이 경우 상기 동작의 주체는 컴퓨팅 장치인 것으로 이해될 수 있을 것이다. 상기 컴퓨팅 장치는, 예를 들어 도 1을 참조하여 설명한 각각의 개발자 단말(20-1, 20-2)일 수 있다. 또한, 본 실시예에 따른 방법은 복수의 컴퓨팅 장치들에 의하여 나뉘어 수행될 수도 있다. 예를 들어, 도 1을 참조하여 설명한 IDE 서버(10) 및 IDE 스토리지(11) 중 적어도 하나와, 온라인 커뮤니케이션 서버(200)와 온라인 커뮤니케이션 장치(100)의 각각의 개발자 단말(20-1, 20-2)의 협업에 의하여 본 실시예에 따른 방법이 수행될 수도 있을 것이다. Hereinafter, a software development support method according to another embodiment of the present disclosure will be described with reference to FIG. 3 . Hereinafter, in describing the method according to the present embodiment, description of the subject of each operation may be omitted, and in this case, it will be understood that the subject of the operation is a computing device. The computing device may be, for example, each of the developer terminals 20 - 1 and 20 - 2 described with reference to FIG. 1 . Also, the method according to the present embodiment may be divided and performed by a plurality of computing devices. For example, at least one of the
단계 S1에서, 소프트웨어 개발 프로젝트에 포함된 하나 이상의 소스 파일들이 로딩되고, 소스 코드가 분석되어, 그 결과가 저장될 수 있다. 단계 S1에 대해서는 도 22를 참조하여 보다 자세히 설명하기로 한다.In step S1, one or more source files included in the software development project are loaded, the source code is analyzed, and the result may be stored. Step S1 will be described in more detail with reference to FIG. 22 .
단계 S3에서는, 소프트웨어를 구성하는 복수의 컴포넌트들 중 하나의 컴포넌트, 예컨대 컴포넌트 #1의 FSM 다이어그램을 FSM 뷰를 통해 열람하고자 하는 요청이 수신될 수 있다. 전술한 바와 같이 본 개시의 일 실시예에 따른 소프트웨어 개발 지원 시스템은 코드 뷰, 유닛 설계 뷰, 프로퍼티 뷰, 및 FSM 뷰 등을 제공할 수 있으며, 단계 S2에서는 예컨대 특정 컴포넌트의 FSM 다이어그램을 열람하고자 하는 사용자에 선택에 의해, 해당 컴포넌트의 FSM 다이어그램을 표시하는 FSM 뷰로 전환하도록 하는 명령이 수신될 수 있다. 몇몇 실시예에서, 소프트웨어를 구성하는 복수의 컴포넌트들 중 둘 이상의 컴포넌트들의 FSM 뷰를 동시에 디스플레이하도록 하는 명령이 수신될 수도 있다. 이에 대해서는 후술하기로 한다.In step S3, a request to view an FSM diagram of one of the plurality of components constituting the software, for example,
단계 S5에서는, 단계 S1에서 수행된 소스 코드 분석 결과에 기초하여, 단계 S2에서 선택된 컴포넌트를 대상으로 한 FSM 뷰가 디스플레이될 수 있다. 본 개시의 일 실시예에 따른 소프트웨어 개발 지원 시스템이 제공하는 예시적인 FSM 뷰에 대해서는 도 4를 참조하여 후술하기로 한다. In step S5, based on the source code analysis result performed in step S1, an FSM view targeting the component selected in step S2 may be displayed. An exemplary FSM view provided by the software development support system according to an embodiment of the present disclosure will be described later with reference to FIG. 4 .
단계 S7에서는, 소스 코드에 갱신이 있었는지 여부가 판정되고, 소스 코드에 발생한 수정, 추가, 삭제 등을 적절히 처리하기 위한 루틴이 수행될 수 있다. 소스 코드에 발생한 갱신을 적절히 처리하기 위한 루틴은, 예컨대 단계 S2에서 선택된 컴포넌트에 대해 발생한 변경 사항을 단계 S3에서 디스플레이된 FSM 뷰에 반영하는 동작을 포함할 수 있다. 단계 S4에 대해서는 도 24를 참조하여 후술한다.In step S7, it is determined whether or not there has been an update to the source code, and a routine for appropriately processing corrections, additions, deletions, etc. occurring in the source code can be performed. The routine for appropriately handling updates occurring in the source code may include, for example, an operation to reflect changes occurring to the component selected in step S2 to the FSM view displayed in step S3. Step S4 will be described later with reference to FIG. 24 .
도 4는 본 개시의 몇몇 실시예들을 이해하기 위해 참조될 수 있는 예시적인 FSM 뷰(40)를 도시한 도면이다. 도 4를 참조하면, FSM 뷰(40)는, 대상 컴포넌트 FSM 다이어그램 디스플레이 영역(41), 미니맵 디스플레이 영역(42), 및 컴포넌트의 편집 및/또는 조작을 위한 툴 박스(43) 디스플레이 영역을 포함할 수 있다. FIG. 4 is a diagram illustrating an
FSM 다이어그램 디스플레이 영역(41)에는 예컨대 대상 컴포넌트의 상태, 상태의 천이를 유발하는 메시지, 및 이를 처리하는 액션들에 각각 대응되는 오브젝트들과, 이들을 관계를 나타내는 연결선 등이 디스플레이될 수 있다. FSM 다이어그램 디스플레이 영역(41)에 제공되는 사항에 대해서는 도 6 및 도 7 등을 참조하여 보다 자세히 후술할 예정이다.In the FSM
미니맵 디스플레이 영역(42)에는 소프트웨어를 구성하는 복수의 컴포넌트들을 각각 나타내는 그래픽 객체들(421a, 421b, 421c)이 디스플레이될 수 있다. 일 실시예에서, 미니맵 디스플레이 영역(42)에는, 소프트웨어를 구성하는 모든 컴포넌트들 중에서, 디스플레이 영역(41)에 디스플레이되고 있는 대상 컴포넌트와 관련 있는 일부 컴포넌트들을 나타내는 그래픽 객체들(421a, 421b, 421c)만이 디스플레이될 수 있다. 대상 컴포넌트와 관련 있는 일부 컴포넌트들이란, 대상 컴포넌트에게 메시지를 송신하는 컴포넌트 및/또는 대상 컴포넌트로부터 메시지를 수신하는 컴포넌트일 수 있으나, 이에 한정되는 것은 아니다.
미니맵 디스플레이 영역(42)에는, 대상 컴포넌트 및 다른 컴포넌트들이 서로 메시지를 주고받는 방향을 나타내는 그래픽 객체들, 예컨대 연결선들(422a, 422b, 422c)이 디스플레이될 수 있다. 몇몇 실시예에서, 상기 그래픽 객체들은 메시지의 이동 방향을 나타내는 애니메이션의 형식으로 표시될 수 있다.In the
본 실시예에서는, 미니맵 디스플레이 영역(42)이 제공됨으로써, 열람 대상 컴포넌트와 소프트웨어 내의 다른 컴포넌트들의 상호 작용(예컨대 메시지 송수신)에 관한 요약된 정보가 열람자에게 직관적으로 제공될 수 있다. In this embodiment, as the
툴 박스(40)는 예컨대 컴포넌트의 상태, 상태의 천이를 유발하는 메시지 및 이를 처리하는 액션들을 편집하기 위한 버튼들을 포함할 수 있다. The
이하에서는, 도 3을 참조하여 설명한 단계 S3에 관하여, 도 5 내지 도 19를 참조하여 보다 자세히 설명한다.Hereinafter, step S3 described with reference to FIG. 3 will be described in more detail with reference to FIGS. 5 to 19 .
도 5는 소스 코드의 분석 결과에 기초하여 하나 또는 둘 이상의 컴포넌트에 대한 FSM 뷰를 디스플레이하는 동작을 보다 자세히 설명하기 위한 도면이다. 5 is a diagram for explaining in detail an operation of displaying an FSM view of one or more components based on a source code analysis result.
도 6 및 도 7은 예시적인 소프트웨어 컴포넌트 #1 및 컴포넌트 #2의 FSM 다이어그램을 나타낸 참조 도면이다. 6 and 7 are reference diagrams illustrating FSM diagrams of exemplary
도 5를 참조하면, 우선 단계 S51에서, 대상 컴포넌트가 가질 수 있는 복수의 상태들을 나타내는 상태 오브젝트들이 디스플레이될 수 있다. 도 6을 참조하면, 컴포넌트 #1이 가질 수 있는 상태들(상태 #11, 상태 #12, 상태 #13)을 각각 나타내는 오브젝트들(611, 612, 613)이 단계 S51에서 디스플레이될 수 있다. 도 7을 참조하면, 컴포넌트 #2가 가질 수 있는 상태들(상태 #21, 상태 #22, 상태 #23, 상태 #24)을 각각 나타내는 오브젝트들(711 내지 714)이 단계 S51에서 디스플레이될 수 있다.Referring to FIG. 5 , in step S51, state objects representing a plurality of states that a target component may have may be displayed. Referring to FIG. 6 , objects 611, 612, and 613 representing states (
다시 도 5를 참조하면, 단계 S52에서는 컴포넌트가 가질 수 있는 복수의 상태들 사이의 변화 내지는 천이를 유발하는 액션 내지는 이벤트들을 나타내는 액션 오브젝트들이 디스플레이될 수 있다. 도 6을 참조하면, 컴포넌트 #1의 상태가 상태 #11로부터 상태 #12로 천이하도록 하는 액션 #11을 나타내는 오브젝트(621)를 비롯하여, 컴포넌트 #1의 상태를 천이하는 액션들(액션 #12, 액션 #13, 액션 #14. 액션 #15)을 각각 나타내는 오브젝트들(622 내지 625)이 디스플레이될 수 있다. 도 7을 참조하면, 컴포넌트 #2의 상태가 상태 #21 로부터 상태 #22로 천이하도록 하는 액션 #21을 나타내는 오브젝트(721)를 비롯하여, 컴포넌트 #2의 상태를 천이하는 액션들(액션 #22 내지 액션 #24)을 각각 나타내는 오브젝트들(722 내지 724)이 디스플레이될 수 있다.Referring back to FIG. 5 , in step S52 , action objects representing actions or events that cause changes or transitions among a plurality of states that a component may have may be displayed. Referring to FIG. 6 , actions for transitioning the state of component #1 (
다시 도 5를 참조하면, 단계 S53에서는 복수의 상태들과 액션들의 관계를 나타내는 그래픽 객체들, 예컨대 연결선들이 디스플레이될 수 있다. 도 6을 참조하면, 상태 #11을 가지는 컴포넌트 #1이 액션 #11에 의해 상태 #12로 천이되는 과정을 나타내는, 방향성을 가지는 연결선들(641a, 641b)을 비롯하여, 컴포넌트 #1이 액션 #11 내지 액션 #15을 통해 상태 #11 내지 상태 #13 중 어느 하나의 상태로 변화할 수 있음을 나타내는 다수의 연결선들이 디스플레이될 수 있다. 도 7을 참조하면, 컴포넌트 #2가 액션 #21 내지 액션 #24를 통해 상태 #21 내지 상태 #24 중 어느 하나의 상태로 변화할 수 있음을 나타내는, 방향성을 가지는 다수의 연결선들이 디스플레이될 수 있다. Referring back to FIG. 5 , in step S53, graphic objects representing relationships between a plurality of states and actions, for example, connection lines, may be displayed. Referring to FIG. 6 ,
다시 도 5를 참조하면, 단계 S54에서는 각각의 액션의 실행을 유발하는 메시지를 나타내는 오브젝트들이 디스플레이될 수 있다. 메시지를 나타내는 오브젝트들은 메시지의 명칭 등 메시지를 식별하기 위한 텍스트 객체를 포함할 수 있다. Referring back to FIG. 5 , in step S54, objects indicating a message causing execution of each action may be displayed. Objects representing the message may include text objects for identifying the message, such as the name of the message.
예를 들어, 도 6을 참조하면, 상태 #11을 가지는 컴포넌트 #1이 상태 #12로 천이되도록 하는 액션 #11의 실행을 유발하는 메시지(Msg #11)를 나타내는 오브젝트(631)가 디스플레이될 수 있다. 본 실시예에서, 컴포넌트 #1이 Msg #11을 수신하면 컴포넌트 #1의 상태가 상태 #11로부터 상태 #12로 변화될 수 있으며, 이는 액션 #11의 실행을 통해서 달성될 수 있다. For example, referring to FIG. 6 , an
다른 예로서, 도 7을 참조하면, 상태 #22를 가지는 컴포넌트 #2가 상태 #21로 천이되도록 하는 액션 #23의 실행을 유발하는 메시지(Msg #21)를 나타내는 오브젝트(731b)가 디스플레이될 수 있다. 본 실시예에서, 컴포넌트 #2가 상태 #21일 때 Msg #21을 수신하면 액션 #21에 의해 상태 #22로 천이될 수 있고, 컴포넌트 #2가 상태 #22 또는 상태 #23일 때 Msg #21을 수신하면 액션 #23에 의해 상태 #21로 천이될 수 있다. As another example, referring to FIG. 7 , an object 731b indicating a message (Msg #21) causing execution of
몇몇 실시예에서, 메시지를 나타내는 오브젝트는, 관련된 상태 및 액션을 나타내는 오브젝트들 사이에 디스플레이될 수 있다. 예컨대 컴포넌트 #1의 상태가 상태 #11로부터 상태 #12로 천이되도록 하는 액션 #11의 실행을 유발하는 Msg #11에 대응되는 오브젝트(631)는, 상태 #11를 나타내는 오브젝트(611)와 액션 #11을 나타내는 오브젝트(621) 사이에 디스플레이될 수 있다. 또한 몇몇 실시예에서, 상기 Msg #11에 대응되는 오브젝트(631)는, 상태 #11를 나타내는 오브젝트(611)와 액션 #11을 잇는 연결선(641a)과 적어도 일부 중첩되도록 연결선(641a) 상에 디스플레이될 수 있다.In some embodiments, an object representing a message may be displayed between objects representing related states and actions. For example, the
단계 S54에 대해서는 도 8 내지 도 13을 참조하여 보다 자세히 설명하기로 한다.Step S54 will be described in more detail with reference to FIGS. 8 to 13 .
다시 도 5를 참조하면, 단계 S55에서는 각각의 액션이 실행될 때 각각의 액션에 의해 생성되어 해당 컴포넌트 자신 또는 다른 컴포넌트를 향하여 발송되는 메시지들이 디스플레이될 수 있다. 이에 대해서는 도 14 내지 도 19를 참조하여 보다 자세히 설명하기로 한다.Referring back to FIG. 5 , in step S55, when each action is executed, messages generated by each action and sent to the corresponding component itself or to another component may be displayed. This will be described in more detail with reference to FIGS. 14 to 19 .
이하에서는 도 5를 참조하여 설명한, 각각의 액션의 실행을 유발하는 메시지를 나타내는 오브젝트들을 디스플레이하는 단계 S54에 대하여, 도 8 내지 도 13을 참조하여 보다 자세히 설명한다.Hereinafter, step S54 of displaying the objects indicating the message that triggers the execution of each action, which has been described with reference to FIG. 5 , will be described in more detail with reference to FIGS. 8 to 13 .
도 8을 참조하면, 먼저 단계 S541에서는 대상 컴포넌트(이하, "제1 컴포넌트"라고 지칭한다)와 연관된 어느 하나의 메시지를 나타내는 오브젝트를 선택하는 사용자의 입력이 획득될 수 있다. 예컨대 도 6에 도시된 컴포넌트 #1과 관련된 Msg #11을 나타내는 오브젝트(631)를 선택하는 사용자 입력이 획득될 수 있다.Referring to FIG. 8 , first, in step S541, a user's input for selecting an object representing any one message associated with a target component (hereinafter, referred to as a “first component”) may be obtained. For example, a user input selecting an
단계 S542에서는, 제1 컴포넌트를 대상으로 상기 선택된 메시지를 발송하는 하나 이상의 컴포넌트들의 식별 정보가 디스플레이될 수 있다.In step S542, identification information of one or more components sending the selected message to the first component may be displayed.
도 9에는, 단계 S541에서 컴포넌트 #1과 연관된 Msg #11을 나타내는 오브젝트(631)가 포인팅 수단을 통해 선택 내지는 포인팅된 예시적인 모습이 도시되어 있다. 또한 도 9에는 컴포넌트 #1을 대상으로 Msg #11을 발송하는 다른 컴포넌트들, 즉 컴포넌트 #2와 컴포넌트 #3의 식별 정보가 디스플레이된 예시적인 모습이 도시되어 있다.FIG. 9 shows an exemplary appearance in which an
도시되지는 않았지만, 몇몇 실시예에서는 단계 S542에서는, 제1 컴포넌트를 대상으로 상기 선택된 메시지를 발송하는 컴포넌트들과 메시지의 전달 방향이 전술한 미니맵(42) 상에 강조되어 디스플레이될 수 있다. 예를 들어, 제1 컴포넌트를 대상으로 상기 선택된 메시지를 발송하는 컴포넌트들이 미니맵(42) 상에서 디스플레이되는 색상이 변경되고, 메시지의 전달 방향이 미니맵(42) 상에서 애니메이션으로 표시될 수 있다.Although not shown, in some embodiments, in step S542, the components sending the selected message to the first component and the forwarding direction of the message may be highlighted and displayed on the mini-map 42 described above. For example, the colors displayed on the
단계 S543에서는, 제1 컴포넌트를 대상으로 상기 메시지를 발송하는 컴포넌트들 중 어느 하나의 컴포넌트(이하, "제2 컴포넌트"라고 지칭한다)를 선택하는 사용자 입력이 획득되고, 단계 S544에서는 선택된 제2 컴포넌트와 연관된 액션들 중에서 상기 메시지를 발송하는 액션의 식별 정보가 디스플레이될 수 있다. In step S543, a user input for selecting one of the components (hereinafter referred to as "second component") among the components for sending the message to the first component is obtained, and in step S544, the selected second component is obtained. Identification information of an action for sending the message among actions related to may be displayed.
몇몇 실시예에서는, 단계 S543에서 여러 컴포넌트들 중 어느 하나를 선택하는 사용자 입력을 획득하는 동작이 생략되고, 제1 컴포넌트를 대상으로 상기 메시지를 발송하는 모든 컴포넌트들 각각에 대하여, 상기 메시지를 발송하는 액션의 식별 정보가 디스플레이될 수 있다. 도 9에는 컴포넌트 #1을 대상으로 Msg #11을 발송하는 컴포넌트 #2의 액션 #23 및 컴포넌트 #3의 액션 #35의 식별 정보가 디스플레이된 예시적인 모습이 도시되어 있다.In some embodiments, an operation of obtaining a user input for selecting one of several components in step S543 is omitted, and for each of all components sending the message to the first component, sending the message Identification information of the action may be displayed. FIG. 9 shows an example of displaying identification information of
이어서 단계 S545에서는 제2 컴포넌트의 FSM 뷰를 요청하는 사용자의 입력이 획득될 수 있다. 도 10을 참조하면, 제2 컴포넌트의 FSM 뷰를 요청하는 사용자의 입력은, 단계 S542 및 단계 S544에서 디스플레이된 제2 컴포넌트 및/또는 연관 액션의 식별 정보를 선택 내지는 포인팅하는 사용자 입력일 수 있다. Subsequently, in step S545, a user's input requesting the FSM view of the second component may be obtained. Referring to FIG. 10 , the user's input requesting the FSM view of the second component may be a user input of selecting or pointing to identification information of the second component and/or associated action displayed in steps S542 and S544.
단계 S546에서는 제2 컴포넌트의 FSM 다이어그램 뷰가, 제1 컴포넌트의 FSM 다이어그램 뷰와 함께 한 화면 내에 디스플레이될 수 있다. In step S546, the FSM diagram view of the second component and the FSM diagram view of the first component may be displayed on one screen.
도 11 내지 도 13은, 본 개시의 다양한 실시예에 따라, 제2 컴포넌트의 FSM 뷰가 제1 컴포넌트의 FSM 뷰와 함께 디스플레이된 다양한 예시적인 사용자 인터페이스들을 나타낸 도면이다.11-13 are diagrams illustrating various exemplary user interfaces in which an FSM view of a second component is displayed along with an FSM view of a first component, in accordance with various embodiments of the present disclosure.
먼저 도 11을 참조하면, 단계 S546에서, 제2 컴포넌트, 예컨대 컴포넌트 #2의 FSM 다이어그램 전체(70)가 디스플레이되고, 제1 컴포넌트, 예컨대 컴포넌트 #1의 FSM 다이어그램은 축약 또는 간소화된 뷰(60a)로 변경되어 디스플레이될 수 있다. 도 11을 참조하면, 제2 컴포넌트와 연관된 액션들 중에서 제1 컴포넌트를 향해 Msg #11을 발송하는 액션인 액션 #23을 나타내는 오브젝트(723)가 차별화된 색상으로 강조되어 디스플레이될 수 있다.Referring first to FIG. 11 , in step S546, the entire FSM diagram 70 of the second component, e.g.,
도 12를 참조하면, 단계 S546에서, 제2 컴포넌트의 FSM 다이어그램의 일부(70a)가 디스플레이되고, 제1 컴포넌트의 FSM 다이어그램은 축약 또는 간소화된 뷰(60a)로 변경되어 디스플레이될 수 있다. 여기서 제2 컴포넌트의 FSM 다이어그램의 일부(70a)는, 제2 컴포넌트와 연관된 액션들 중에서 제1 컴포넌트를 향해 Msg #11을 발송하는 액션 #23을 나타내는 오브젝트(723)를 포함하며, 오브젝트(723) 주변의 소정의 영역에 해당되는 일 부분일 수 있다. 도 11에 도시된 사용자 인터페이스와 마찬가지로, 제1 컴포넌트를 향해 Msg #11을 발송하는 액션 #23을 나타내는 오브젝트(723)는 강조되어 디스플레이될 수 있다. Referring to FIG. 12 , in step S546, a
도 13을 참조하면, 단계 S546에서, 제2 컴포넌트의 FSM 다이어그램의 일부(70a)가 디스플레이되고, 제1 컴포넌트의 FSM 다이어그램(60)이 나란히 디스플레이될 수 있다. 도 13을 참조하면, 제2 컴포넌트의 FSM 다이어그램의 일부(70a) 내에서, 제1 컴포넌트를 향해 Msg #11을 발송하는 액션 #23을 나타내는 오브젝트(723)가 강조 표시될 수 있다. 또한 제1 컴포넌트의 FSM 다이어그램(60) 내에서 상기 Msg #11을 나타내는 오브젝트(631)가 강조되어 디스플레이될 수 있다. 나아가, 액션 #23에 의해 Msg #11가 생성되어 발송된다는 것을 나타내는 그래픽 객체(1301)가 오브젝트(723)와 오브젝트(631) 사이에 디스플레이될 수 있다. Referring to FIG. 13 , in step S546, a
몇몇 실시예에서, 단계 S546에서 제2 컴포넌트의 FSM 다이어그램은 반투명하게 처리되어 디스플레이될 수 있으며, 제2 컴포넌트의 FSM 다이어그램이 제1 컴포넌트의 FSM 다이어그램 위에 적어도 일부 중첩 내지는 오버레이되어 디스플레이될 수도 있다. In some embodiments, in step S546, the FSM diagram of the second component may be processed to be translucent and displayed, and the FSM diagram of the second component may be displayed by at least partially overlapping or overlaying the FSM diagram of the first component.
지금까지 도 8 내지 도 13을 참조하여 설명한 본 실시예의 구성에 따르면, 소프트웨어, 예컨대 하드웨어 장치의 제어를 위한 프로그램을 구성하는 컴포넌트의 FSM 다이어그램을 개발자 또는 제3자가 열람함에 있어서, 제1 컴포넌트의 FSM 다이어그램을 열람하는 도중에, 제1 컴포넌트를 향하여 특정 메시지를 발송하여 연관된 액션이 실행되도록 하는 제2 컴포넌트의 FSM 다이어그램을 간편하게 열람할 수 있다. According to the configuration of the present embodiment described with reference to FIGS. 8 to 13 so far, when a developer or a third party views an FSM diagram of a component constituting software, for example, a program for controlling a hardware device, the FSM of the first component While viewing the diagram, it is possible to conveniently browse the FSM diagram of the second component, which sends a specific message towards the first component to cause the associated action to be executed.
또한 제1 컴포넌트와 제2 컴포넌트의 FSM 다이어그램을 한 화면 내에서 나란히 디스플레이함으로써, 열람자로 하여금 제1 컴포넌트와 제2 컴포넌트의 상호 작용을 보다 직관적으로 이해할 수 있도록 한다. In addition, by displaying FSM diagrams of the first component and the second component side by side on one screen, the viewer can more intuitively understand the interaction between the first component and the second component.
또한 제1 컴포넌트와 제2 컴포넌트의 FSM 다이어그램을 디스플레이함에 있어서, 두 컴포넌트 사이의 메시지 교환 등 상호 작용에 관련이 있는 일 부분만을 선별적으로 디스플레이함으로써, 수 십 가지 이상의 다수의 상태들 사이에서 변화하는 복잡한 컴포넌트들의 FSM 다이어그램을 한 화면에 동시에 디스플레이할 때 발생하는 시각적인 복잡성을 현저히 저감할 수 있다. In addition, in displaying the FSM diagram of the first component and the second component, by selectively displaying only one part related to the interaction, such as message exchange between the two components, changing between dozens or more of multiple states. Visual complexity that occurs when FSM diagrams of complex components are simultaneously displayed on one screen can be significantly reduced.
또한 제1 컴포넌트와 제2 컴포넌트의 FSM 다이어그램을 한 화면 내에서 디스플레이하되, 제2 컴포넌트의 FSM 다이어그램을 반투명 처리하여 제1 컴포넌트의 FSM 다이어그램 위에 오버레이하여 디스플레이함으로써, 디스플레이 영역이 제한된 경우에도 두 컴포넌트의 FSM 다이어그램을 동시에 디스플레이할 수 있다. In addition, FSM diagrams of the first component and the second component are displayed on one screen, but the FSM diagram of the second component is translucently processed and displayed as an overlay on the FSM diagram of the first component, so that even when the display area is limited, the two components FSM diagrams can be displayed simultaneously.
이하에서는 도 5를 참조하여 설명한 단계 S55에 대해서 도 14 내지 도 19를 참조하여 보다 자세히 설명하기로 한다.Hereinafter, step S55 described with reference to FIG. 5 will be described in more detail with reference to FIGS. 14 to 19 .
도 14를 참조하면, 먼저 단계 S551에서는 제1 컴포넌트와 연관된 여러 액션들 중에 어느 하나의 액션을 나타내는 오브젝트를 선택하는 사용자의 입력이 획득될 수 있다. 예컨대 도 6에 도시된 컴포넌트 #1의 상태를 상태 #11로부터 상태 #13으로 변화시키는 액션 #12를 나타내는 오브젝트(622)를 선택하는 사용자 입력이 획득될 수 있다.Referring to FIG. 14 , in step S551, a user's input for selecting an object representing one of several actions associated with the first component may be obtained. For example, a user input selecting an
단계 S552에서는, 단계 S551에서 선택된 액션에 의해 발송되는 하나 이상의 메시지들이 디스플레이될 수 있다.In step S552, one or more messages sent by the action selected in step S551 may be displayed.
단계 S553에서는, 단계 S552에서 디스플레이된 하나 이상의 메시지들 중 어느 하나의 메시지를 선택하는 사용자 입력이 획득될 수 있다. In step S553, a user input for selecting one of the one or more messages displayed in step S552 may be obtained.
단계 S554에서는, 단계 S553에서 선택된 메시지를 수신하는 타깃 컴포넌트(이하, "제2 컴포넌트"로 지칭한다)의 식별 정보가 디스플레이될 수 있다.In step S554, identification information of a target component (hereinafter, referred to as a "second component") receiving the message selected in step S553 may be displayed.
몇몇 실시예에서는, 단계 S553에서 여러 메시지들 중 어느 하나를 선택하는 사용자 입력을 획득하는 동작이 생략되고, 단계 S551에서 선택된 액션에 의해 발송되는 모든 메시지들과 그 메시지를 수신하는 컴포넌트들의 식별 정보가 디스플레이될 수 있다. 도 15에는 컴포넌트 #1의 액션 #12에 의해 컴포넌트 #2를 대상으로 발송되는 메시지인 Msg #24 및 컴포넌트 #1의 액션 #12에 의해 컴포넌트 #3를 대상으로 발송되는 메시지인 Msg #33이 디스플레이된 예시적인 모습이 도시되어 있다. In some embodiments, an operation of obtaining a user input for selecting one of several messages in step S553 is omitted, and all messages sent by the action selected in step S551 and identification information of components receiving the messages are can be displayed. 15 displays Msg #24, a message sent to
이어서 단계 S555에서는 제2 컴포넌트의 FSM 다이어그램 뷰를 요청하는 사용자의 입력이 획득될 수 있다. 도 16을 참조하면, 제2 컴포넌트의 FSM 다이어그램 뷰를 요청하는 사용자의 입력은, 단계 S552 내지 단계 S554에서 선택 및 디스플레이된 메시지 및/또는 해당 메시지를 수신하는 제2 컴포넌트의 식별 정보를 선택 내지는 포인팅하는 사용자 입력일 수 있다. Subsequently, in step S555, a user's input requesting an FSM diagram view of the second component may be obtained. Referring to FIG. 16, the user's input requesting the FSM diagram view of the second component is selected or pointed to the message selected and displayed in steps S552 to S554 and/or identification information of the second component receiving the corresponding message. It may be a user input that
단계 S556에서는 제2 컴포넌트의 FSM 다이어그램 뷰가, 제1 컴포넌트의 다이어그램 FSM 뷰와 함께 한 화면 내에 디스플레이될 수 있다. In step S556, the FSM diagram view of the second component and the FSM diagram view of the first component may be displayed on one screen.
도 17 내지 도 19는, 본 개시의 다양한 실시예에 따라, 제2 컴포넌트의 FSM 다이어그램 뷰가 제1 컴포넌트의 FSM 다이어그램 뷰와 함께 디스플레이된 다양한 예시적인 사용자 인터페이스를 나타낸 도면이다.17-19 are diagrams illustrating various exemplary user interfaces in which an FSM diagram view of a second component is displayed along with an FSM diagram view of a first component, in accordance with various embodiments of the present disclosure.
먼저 도 17을 참조하면, 단계 S556에서, 제1 컴포넌트, 예컨대 컴포넌트 #1의 FSM 다이어그램 전체(60)가 디스플레이되고, 제2 컴포넌트, 예컨대 컴포넌트 #2의 FSM 다이어그램은 축약 또는 간소화된 뷰(70b)의 형태로 디스플레이될 수 있다. 도 17을 참조하면, 제1 컴포넌트와 연관된 액션들 중에서 제2 컴포넌트를 향해 Msg #24를 발송하는 액션인 액션 #12를 나타내는 오브젝트(622) 및 제2 컴포넌트의 FSM 다이어그램(70b)에서 Msg #24를 나타내는 오브젝트(734)가 차별화된 색상으로 강조되어 디스플레이될 수 있다. 나아가, 액션 #12에 의해 Msg #24가 발송된다는 것을 나타내는 그래픽 객체(1701)가 오브젝트(622)와 오브젝트(734) 사이에 디스플레이될 수 있다.Referring first to FIG. 17, in step S556, the entire FSM diagram 60 of the first component, eg,
도 18를 참조하면, 단계 S556에서, 제1 컴포넌트의 FSM 다이어그램은 축약 또는 간소화된 뷰(60a)로 변경되어 디스플레이되고, 제2 컴포넌트의 FSM 다이어그램의 일부(70a)가 디스플레이될 수 있다. 여기서 제2 컴포넌트의 FSM 다이어그램의 일부(70a)는, 제1 컴포넌트가 발송하여 제2 컴포넌트가 수신하는 메시지인 Msg #24를 나타내는 오브젝트(734)를 포함하며, 오브젝트(734) 주변의 소정의 영역에 해당되는 일 부분일 수 있다. 도 17에 도시된 사용자 인터페이스와 마찬가지로, 액션 #12를 나타내는 오브젝트(622) 및 Msg #24를 나타내는 오브젝트(734)가 강조되어 디스플레이될 수 있으며, 액션 #12에 의해 Msg #24가 발송된다는 것을 나타내는 그래픽 객체(1701)가 오브젝트(622)와 오브젝트(734) 사이에 디스플레이될 수 있다.Referring to FIG. 18 , in step S556, the FSM diagram of the first component may be changed to a reduced or
도 19를 참조하면, 단계 S556에서, 제1 컴포넌트의 FSM 다이어그램은 축약 또는 간소화된 뷰(60a)로 변경되어 디스플레이되고, 제2 컴포넌트의 FSM 다이어그램(70)이 나란히 디스플레이될 수 있다. 액션 #12를 나타내는 오브젝트(622) 및 Msg #24를 나타내는 오브젝트(734)가 강조되어 디스플레이될 수 있으며, 액션 #12에 의해 Msg #24가 발송된다는 것을 나타내는 그래픽 객체(1701)가 오브젝트(622)와 오브젝트(734) 사이에 디스플레이될 수 있다.Referring to FIG. 19 , in step S556, the FSM diagram of the first component may be changed to an abbreviated or
몇몇 실시예에서, 단계 S556에서 제2 컴포넌트의 FSM 다이어그램은 반투명하게 디스플레이될 수 있으며, 제2 컴포넌트의 FSM 다이어그램이 제1 컴포넌트의 FSM 다이어그램 위에 적어도 일부 중첩 내지는 오버레이되어 디스플레이될 수도 있다. In some embodiments, the FSM diagram of the second component may be displayed translucently in step S556, and the FSM diagram of the second component may be displayed at least partially overlapping or overlaid on the FSM diagram of the first component.
지금까지 도 14 내지 도 19를 참조하여 설명한 본 실시예의 구성에 따르면, 소프트웨어, 예컨대 하드웨어 장치의 제어를 위한 프로그램을 구성하는 컴포넌트의 FSM 다이어그램을 개발자 또는 제3자가 열람함에 있어서, 제1 컴포넌트의 FSM 다이어그램을 열람하는 도중에, 제1 컴포넌트의 특정 액션에 의해 발송되는 메시지 및 그 메시지를 수신하는 제2 컴포넌트의 FSM 다이어그램을 간편하게 열람할 수 있다. According to the configuration of the present embodiment described with reference to FIGS. 14 to 19 so far, when a developer or a third party views an FSM diagram of a component constituting software, for example, a program for controlling a hardware device, the FSM of the first component While browsing the diagram, it is possible to conveniently browse the FSM diagram of the message sent by the specific action of the first component and the second component receiving the message.
또한 제1 컴포넌트와 제2 컴포넌트의 FSM 다이어그램을 한 화면 내에서 나란히 디스플레이함으로써, 열람자로 하여금 제1 컴포넌트와 제2 컴포넌트의 상호 작용을 보다 직관적으로 이해할 수 있도록 한다.In addition, by displaying FSM diagrams of the first component and the second component side by side on one screen, the viewer can more intuitively understand the interaction between the first component and the second component.
또한 제1 컴포넌트와 제2 컴포넌트의 FSM 다이어그램을 디스플레이함에 있어서, 두 컴포넌트 사이의 메시지 교환 등 상호 작용에 관련이 있는 일 부분만을 선별적으로 디스플레이함으로써, 수 십 가지 이상의 다수의 상태들 사이에서 변화하는 복잡한 컴포넌트들의 FSM 다이어그램을 한 화면에 동시에 디스플레이할 때 발생하는 시각적인 복잡성을 저감할 수 있다. In addition, in displaying the FSM diagram of the first component and the second component, by selectively displaying only one part related to the interaction, such as message exchange between the two components, changing between dozens or more of multiple states. Visual complexity that occurs when FSM diagrams of complex components are simultaneously displayed on one screen can be reduced.
또한 제1 컴포넌트와 제2 컴포넌트의 FSM 다이어그램을 한 화면 내에서 디스플레이하되, 제2 컴포넌트의 FSM 다이어그램을 반투명 처리하여 제1 컴포넌트의 FSM 다이어그램 위에 오버레이하여 디스플레이함으로써, 디스플레이 영역이 제한된 경우에도 두 컴포넌트의 FSM 다이어그램을 동시에 디스플레이할 수 있다. In addition, FSM diagrams of the first component and the second component are displayed on one screen, but the FSM diagram of the second component is translucently processed and displayed as an overlay on the FSM diagram of the first component, so that even when the display area is limited, the two components FSM diagrams can be displayed simultaneously.
이하에서는 도 20 및 도 21을 참조하여, 본 개시의 다른 실시예에 따른 소프트웨어 개발 지원 방법에 의해 복수의 컴포넌트들 각각의 FSM 다이어그램을 입체적으로 디스플레이하는 예시적인 방법을 설명한다.Hereinafter, an exemplary method of displaying an FSM diagram of each of a plurality of components in a three-dimensional manner by a software development support method according to another embodiment of the present disclosure will be described with reference to FIGS. 20 and 21 .
먼저 도 20을 참조하면, 단계 S61에서는 제1 컴포넌트의 FSM 뷰가 제1 레이어 상에 디스플레이되고, 단계 S62에서는 제2 컴포넌트의 FSM 뷰가 제2 레이어 상에 디스플레이될 수 있다. 여기서 제1 레이어와 제2 레이어는 소정의 거리만큼 이격되어 디스플레이될 수 있다. 몇몇 실시예에서, 제1 레이어 및/또는 제2 레이어는 반투명하게 디스플레이될 수 있다.Referring first to FIG. 20 , in step S61 the FSM view of the first component may be displayed on the first layer, and in step S62 the FSM view of the second component may be displayed on the second layer. Here, the first layer and the second layer may be displayed apart from each other by a predetermined distance. In some embodiments, the first layer and/or the second layer may be displayed translucently.
도 21에는, 제1 컴포넌트, 예컨대 컴포넌트 #1의 FSM 다이어그램(60)이 제1 레이어(2101) 상에 평면적으로 디스플레이되고, 제2 컴포넌트, 예컨대 컴포넌트 #2의 FSM 다이어그램(70)이 제2 레이어(2102) 상에 평면적으로 디스플레이되며, 제3 레이어, 예컨대 컴포넌트 #3의 FSM 다이어그램이 제3 레이어(2103) 상에 평면적으로 디스플레이된 예시적인 모습이 도시되어 있다.In FIG. 21, an FSM diagram 60 of a first component, e.g.,
다시 도 20을 참조하면, 단계 S63에서는 제1 컴포넌트와 제2 컴포넌트 사이의 메시지 교환을 나타내는 그래픽 객체들, 예컨대 연결선들이 제1 레이어와 제2 레이어 주변에 디스플레이될 수 있다. Referring back to FIG. 20 , in step S63, graphic objects representing message exchange between the first component and the second component, for example, connection lines, may be displayed around the first layer and the second layer.
도 21을 참조하면, 컴포넌트 #1과 컴포넌트 #2 사이의 메시지 교환을 나타내는 연결선(2111) 및 연결선(2112)이 디스플레이되고, 컴포넌트 #2와 컴포넌트 #3 사이의 메시지 교환을 나타내는 연결선(2113) 및 연결선(2114)이 디스플레이된 모습이 도시되어 있다. 컴포넌트 #1과 컴포넌트 #3 사이에 교환되는 메시지가 있다면, 그러한 메시지를 나타내는 연결선이 제1 레이어와 제3 레이어를 시각적으로 연결할 수 있다.Referring to FIG. 21 ,
다시 도 20을 참조하면, 단계 S64에서는 단계 S61 내지 단계 S62에서 디스플레이된 레이어들 각각의 가시성을 토글하기 위한 사용자 인터페이스가 제공될 수 있다. 예컨대 도 21을 참조하면, 컴포넌트 #1 내지 컴포넌트 #4의 FSM 다이어그램이 디스플레이되는 레이어들 각각의 표시 여부를 전환할 수 있도록 하는 사용자 인터페이스(2431 내지 2434)가 제공된 예시적인 모습이 도시되어 있다.Referring back to FIG. 20 , in step S64, a user interface for toggling the visibility of each of the layers displayed in steps S61 and S62 may be provided. For example, referring to FIG. 21 , an example of a state in which
단계 S65에서는 레이어들 중 일부를 비가시화하도록 하는 사용자의 입력에 응답하여, 해당 컴포넌트의 FSM 뷰가 디스플레이된 레이어를 숨김 처리하고, 해당 컴포넌트가 다른 컴포넌트와 주고받는 메시지를 나타내는 그래픽 객체들 또한 숨김 처리할 수 있다. 예컨대 도 21을 참조하면, 사용자 인터페이스(2434)가 체크 해제됨으로써 컴포넌트 #4의 FSM 다이어그램은 숨김 처리되어 있으며, 컴포넌트 #4가 다른 컴포넌트와 주고받는 메시지들을 나타내는 그래픽 객체들도 숨김 처리되어 있다.In step S65, in response to a user's input for making some of the layers invisible, the layer on which the FSM view of the corresponding component is displayed is hidden, and graphic objects representing messages exchanged by the corresponding component with other components are also hidden. can do. For example, referring to FIG. 21 , as the
지금까지 도 20 및 도 21을 참조하여 설명한 본 실시예에 따르면, 소프트웨어, 예컨대 하드웨어 장치의 제어를 위한 프로그램을 구성하는 컴포넌트의 FSM 다이어그램을 개발자 또는 제3자가 열람함에 있어서, 다수의 컴포넌트들의 FSM 다이어그램을 각각의 레이어에 디스플레이하되 이들 레이어를 입체적으로 적층하여 디스플레이함으로써, 열람자로 하여금 다수의 컴포넌트들의 FSM 다이어그램을 한눈에 조망할 수 있도록 하는 인터페이스를 제공할 수 있다.According to the present embodiment described with reference to FIGS. 20 and 21 so far, when a developer or a third party views an FSM diagram of a component constituting software, for example, a program for controlling a hardware device, the FSM diagram of a plurality of components It is possible to provide an interface that allows a viewer to view the FSM diagram of a plurality of components at a glance by displaying them on each layer but stacking and displaying these layers in three dimensions.
또한 본 실시예에 따르면, 다수의 컴포넌트들의 FSM 다이어그램이 평면적으로 디스플레이된 레이어를 입체적으로 적층하여 디스플레이하고, 각각의 레이어들 사이를 연결하는 그래픽 객체를 통해 각각의 컴포넌트들 사이의 상호 작용, 예컨대 메시지 교환을 표현함으로써, 열람자로 하여금 다수의 컴포넌트들 사이의 상호 작용을 보다 직관적으로 이해할 수 있도록 한다. In addition, according to this embodiment, the FSM diagram of a plurality of components is stacked and displayed in a two-dimensionally displayed layer, and an interaction between each component through a graphic object connecting between each layer, for example, a message Expressing the exchange allows the viewer to more intuitively understand the interaction between multiple components.
또한 본 실시예에 따르면, 다수의 컴포넌트들의 FSM 다이어그램이 평면적으로 디스플레이된 레이어를 입체적으로 적층하여 디스플레이하고, 각각의 레이어를 반투명 처리하여 서로 일부분이 중첩되도록 디스플레이함으로써, 디스플레이 영역이 제한된 경우에도 다수의 컴포넌트의 FSM 다이어그램을 동시에 디스플레이할 수 있다. In addition, according to the present embodiment, layers in which FSM diagrams of a plurality of components are flatly displayed are three-dimensionally stacked and displayed, and each layer is processed to be translucent and partially overlapped with each other, so that even when the display area is limited, a number of FSM diagrams of components can be displayed simultaneously.
이하에서는 도 3을 참조하여 설명한 단계 S1, 즉 소스 코드의 분석 과정에 관하여 도 22 및 도 23을 참조하여 보다 자세히 설명한다.Hereinafter, step S1 described with reference to FIG. 3, that is, the source code analysis process will be described in more detail with reference to FIGS. 22 and 23.
도 22는 본 개시의 몇몇 실시예에 따른 소스 코드의 분석 과정을 보다 자세히 설명하기 위한 도면이고, 도 23은 이를 이해하기 위하여 참조될 수 있는 예시적인 소스 코드이다.22 is a diagram for explaining a source code analysis process according to some embodiments of the present disclosure in more detail, and FIG. 23 is an exemplary source code that can be referred to for understanding.
이하에서 설명될 소스 코드 분석 과정은 IDE가 실행되어 소프트웨어 프로젝트가 오픈될 때, 소스 코드가 수정되거나 저장되는 시점에 수행될 수 있는데, 이에 한정되는 것은 아니다. 이하에서 설명될 소스 코드 분석 과정은 소프트웨어의 빌드 및 실행 없이도, 소스 코드 자체에 대한 정적인 분석으로서 수행될 수 있다.The source code analysis process to be described below may be performed when the IDE is executed and the software project is opened, and when the source code is modified or saved, but is not limited thereto. A source code analysis process to be described below can be performed as a static analysis of the source code itself without building and executing software.
먼저 단계 S11에서는, 소스 코드가 파싱되어 추상 구문 트리가 생성될 수 있다. 도 1을 참조하여 전술한 바와 같이, 본 개시의 몇몇 실시예에 따른 소프트웨어 개발 지원 시스템이 제공하는 IDE는, 소스 코드를 파싱하는 파서(parser), 파싱된 소스 코드를 기초로 추상 구문 트리를 생성하는 AST 생성부, 생성된 AST를 기초로 하여 소스 코드 내에서 메시지를 송신하는 명령어를 식별하고, 메시지 송수신의 소스 컴포넌트 및/또는 타깃 컴포넌트를 기준으로 이를 메시지 송수신을 구조체에 기록하는 메시지 분석부를 포함할 수 있다. 단계 S11에서는 예컨대 파서에 의해 플레인 텍스트 상태의 소스 코드가 파싱되고, 파싱 결과에 기초하여 소스 코드에 포함된 명령어들이 AST 생성부에 의해 추상 구문 트리(Abstract Syntax Tree) 형태로 구조화될 수 있다. 일 실시예에서, 추상 구문 트리는 소스 코드 별로 생성되거나 컴포넌트 별로 하나씩 생성될 수 있는데, 이에 한정되는 것은 아니다.First, in step S11, the source code may be parsed to generate an abstract syntax tree. As described above with reference to FIG. 1, the IDE provided by the software development support system according to some embodiments of the present disclosure generates an abstract syntax tree based on a parser that parses source code and the parsed source code. An AST generation unit that generates an AST, a message analysis unit that identifies an instruction for transmitting a message in the source code based on the generated AST, and records the message transmission and reception in a structure based on the source component and / or target component of message transmission and reception. can do. In step S11, for example, the source code of the plain text state is parsed by a parser, and based on the parsing result, instructions included in the source code may be structured in the form of an abstract syntax tree by an AST generation unit. In one embodiment, the abstract syntax tree may be generated for each source code or one for each component, but is not limited thereto.
단계 S12에서는, 단계 S11에서 생성된 추상 구문 트리들이 분석되어, 메시지 송수신과 관련된 명령어들이 식별될 수 있다.In step S12, the abstract syntax trees generated in step S11 are analyzed to identify instructions related to message transmission and reception.
도 23에 도시된 예시적인 소스 코드에는, Actor_1 이라는 명칭을 가지는 컴포넌트가 가지는 액션인 action_12에 의해 메시지를 발송하는 명령어들(2301, 2302)이 포함되어 있다. 명령어(2301)는 상기 컴포넌트가 actor2 이라는 멤버 변수에 의해 참조되는 다른 컴포넌트를 향하여 msg_24를 송신하는 예시적인 명령어이다. 명령어(2302)는 상기 컴포넌트가 actor3이라는 멤버 변수에 의해 참조되는 다른 컴포넌트를 향하여 msg_33를 송신하는 예시적인 명령어이다.The exemplary source code shown in FIG. 23 includes
단계 S12에서는 예컨대 도 23에 도시된 소스 코드로부터 생성된 추상 구문 트리로부터, 명령어(2301, 2302)가 식별될 수 있다.In step S12,
단계 S13에서는 소스 코드의 분석 결과에 따라 생성된 추상 구문 트리들로부터 식별된 인스트럭션들에 기초하여, 특정 컴포넌트가 발송하는 메시지의 타깃 컴포넌트들이 식별되고, 단계 S14에서는 특정 컴포넌트에게 메시지를 발송하는 소스 컴포넌트들이 식별될 수 있다. 예를 들어서, 제1 컴포넌트가 발송하는 각각의 메시지의 대상이 되는 컴포넌트들에 관한 정보가 식별되며, 제1 컴포넌트를 향하여 메시지를 발송하는 컴포넌트들에 관한 정보도 식별될 수 있다. In step S13, target components of a message sent by a specific component are identified based on the instructions identified from the abstract syntax trees generated according to the source code analysis results, and in step S14, a source component that sends a message to a specific component. can be identified. For example, information about components that are targets of each message sent by the first component may be identified, and information about components sending messages to the first component may also be identified.
단계 S15에서는, 단계 S14에서 식별된 정보들이 적절한 구조로 저장될 수 있다. 예를 들어, 메시지를 송신하는 소스 컴포넌트를 기준으로 타깃 컴포넌트들에 관한 정보가 구조화되어 저장될 수 있으며, 메시지를 수신하는 타깃 컴포넌트를 기준으로 소스 컴포넌트들에 관한 정보가 구조화 저장될 수도 있고, 두 가지 방식 모두에 의해 정보가 저장될 수도 있다. In step S15, the information identified in step S14 may be stored in an appropriate structure. For example, information about target components may be structured and stored based on a source component that transmits a message, and information about source components may be structured and stored based on a target component that receives a message. Information may be stored in all of these ways.
앞서 설명한 단계 S5에서 특정 컴포넌트에 대한 FSM 다이어그램이 FSM 뷰에 디스플레이될 때, 전술한 단계 S11 내지 S15를 통해 식별되어 저장된 정보가 로딩되어 이용될 수 있다. When the FSM diagram for a specific component is displayed on the FSM view in step S5 described above, information identified and stored through steps S11 to S15 may be loaded and used.
및/또는 타깃 컴포넌트를 기준으로 이를 메시지 송수신을 구조체에 기록하는 메시지 분석부를 포함할 수 있다. and/or a message analyzer that records message transmission/reception in a structure based on the target component.
본 개시의 몇몇 실시예에 따른 IDE는 소스 코드를 파싱하는 파서(parser), 파싱된 소스 코드를 기초로 추상 구문 트리를 생성하는 AST 생성부, 생성된 AST를 기초로 하여 소스 코드 내에서 메시지를 송신하는 명령어를 식별하고, 메시지 송수신의 소스 컴포넌트 및/또는 타깃 컴포넌트를 기준으로 이를 메시지 송수신을 구조체에 기록하는 메시지 분석부를 포함할 수 있다.An IDE according to some embodiments of the present disclosure includes a parser for parsing source code, an AST generation unit for generating an abstract syntax tree based on the parsed source code, and a message in the source code based on the generated AST. It may include a message analysis unit that identifies commands to be transmitted and records message transmission and reception in a structure based on a source component and/or a target component of message transmission and reception.
이하에서는 도 3을 참조하여 설명한 단계 S7, 즉 소스 코드의 갱신을 처리하는 루틴에 관하여 도 24를 참조하여 보다 자세히 설명한다.Hereinafter, step S7 described with reference to FIG. 3, that is, a routine for processing source code update will be described in more detail with reference to FIG. 24.
단계 S5에서 FSM 뷰가 디스플레이되고 있는 도중에 소스 코드의 갱신이 발생할 경우, 이하에서 설명될 단계 S7이 수행될 수 있다.In step S5, when the source code is updated while the FSM view is being displayed, step S7 to be described below may be performed.
도 24를 참조하면, 단계 S71에서는 소스 코드에 추가, 수정, 삭제 등의 변경 내지는 갱신이 발생하였는지 여부가 감지될 수 있다. Referring to FIG. 24 , in step S71, whether a change or update such as addition, modification, deletion, etc. to the source code has occurred can be detected.
단계 S72에서는, 앞서 도 22 및 도 23을 참조하여 설명한 소스 코드 분석 과정, 예컨대 단계 S11 내지 S15의 적어도 일부가 다시 수행될 수 있다. In step S72, at least a part of the source code analysis process described above with reference to FIGS. 22 and 23, for example, steps S11 to S15, may be performed again.
단계 S73에서는, 소스 코드에서 감지된 변경 사항들을, 단계 S5에서 디스플레이된 컴포넌트의 FSM 다이어그램에 반영하여, FSM 뷰를 갱신할 수 있다.In step S73, the FSM view may be updated by reflecting changes detected in the source code to the FSM diagram of the component displayed in step S5.
지금까지 도 1 내지 도 24를 참조하여, 본 개시의 몇몇 실시예에 따른 소프트웨어 개발 지원 방법 및 시스템에 관하여 설명하였다.So far, with reference to FIGS. 1 to 24 , software development support methods and systems according to some embodiments of the present disclosure have been described.
전술한 실시예들에 따르면, 소프트웨어를 구성하는 컴포넌트의 FSM 다이어그램을 개발자 또는 제3자가 열람함에 있어서, 제1 컴포넌트의 FSM 다이어그램을 열람하는 도중에, 제1 컴포넌트를 향하여 특정 메시지를 발송하여 연관된 액션이 실행되도록 하는 제2 컴포넌트의 FSM 다이어그램을 간편하게 열람할 수 있다. According to the above-described embodiments, when a developer or a third party browses an FSM diagram of a component constituting software, a specific message is sent to the first component so that a related action is performed while browsing the FSM diagram of the first component. You can conveniently browse the FSM diagram of the second component to be executed.
또한 제1 컴포넌트와 제2 컴포넌트의 FSM 다이어그램을 한 화면 내에서 나란히 디스플레이함으로써, 열람자로 하여금 제1 컴포넌트와 제2 컴포넌트의 상호 작용을 보다 직관적으로 이해할 수 있도록 한다. In addition, by displaying FSM diagrams of the first component and the second component side by side on one screen, the viewer can more intuitively understand the interaction between the first component and the second component.
또한 제1 컴포넌트와 제2 컴포넌트의 FSM 다이어그램을 디스플레이함에 있어서, 두 컴포넌트 사이의 메시지 교환 등 상호 작용에 관련이 있는 일 부분만을 선별적으로 디스플레이함으로써, 수 십 가지 이상의 다수의 상태들 사이에서 변화하는 복잡한 컴포넌트들의 FSM 다이어그램을 한 화면에 동시에 디스플레이할 때 발생하는 시각적인 복잡성을 현저히 저감할 수 있다. In addition, in displaying the FSM diagram of the first component and the second component, by selectively displaying only one part related to the interaction, such as message exchange between the two components, changing between dozens or more of multiple states. Visual complexity that occurs when FSM diagrams of complex components are simultaneously displayed on one screen can be significantly reduced.
또한 제1 컴포넌트와 제2 컴포넌트의 FSM 다이어그램을 한 화면 내에서 디스플레이하되, 제2 컴포넌트의 FSM 다이어그램을 반투명 처리하여 제1 컴포넌트의 FSM 다이어그램 위에 오버레이하여 디스플레이함으로써, 디스플레이 영역이 제한된 경우에도 두 컴포넌트의 FSM 다이어그램을 동시에 디스플레이할 수 있다. In addition, FSM diagrams of the first component and the second component are displayed on one screen, but the FSM diagram of the second component is translucently processed and displayed as an overlay on the FSM diagram of the first component, so that even when the display area is limited, the two components FSM diagrams can be displayed simultaneously.
전술한 실시예들에 따르면, 소프트웨어를 구성하는 컴포넌트의 FSM 다이어그램을 개발자 또는 제3자가 열람함에 있어서, 다수의 컴포넌트들의 FSM 다이어그램을 각각의 레이어에 디스플레이하되 이들 레이어를 입체적으로 적층하여 디스플레이함으로써, 열람자로 하여금 다수의 컴포넌트들의 FSM 다이어그램을 한눈에 조망할 수 있도록 하는 인터페이스를 제공할 수 있다.According to the above-described embodiments, when a developer or a third party browses an FSM diagram of a component constituting software, the FSM diagram of a plurality of components is displayed on each layer, but by stacking and displaying these layers in three dimensions, the viewer It can provide an interface that allows the FSM diagram of multiple components to be viewed at a glance.
또한 다수의 컴포넌트들의 FSM 다이어그램이 평면적으로 디스플레이된 레이어를 입체적으로 적층하여 디스플레이하고, 각각의 레이어들 사이를 연결하는 그래픽 객체를 통해 각각의 컴포넌트들 사이의 상호 작용, 예컨대 메시지 교환을 표현함으로써, 열람자로 하여금 다수의 컴포넌트들 사이의 상호 작용을 보다 직관적으로 이해할 수 있도록 한다. In addition, FSM diagrams of multiple components are layered and displayed in a three-dimensional manner by layering flatly displayed layers, and by expressing interaction between each component, for example, message exchange, through a graphic object connecting between each layer, the viewer enables a more intuitive understanding of the interaction between multiple components.
또한 다수의 컴포넌트들의 FSM 다이어그램이 평면적으로 디스플레이된 레이어를 입체적으로 적층하여 디스플레이하고, 각각의 레이어를 반투명 처리하여 서로 일부분이 중첩되도록 디스플레이함으로써, 디스플레이 영역이 제한된 경우에도 다수의 컴포넌트의 FSM 다이어그램을 동시에 디스플레이할 수 있다. In addition, layers in which the FSM diagrams of multiple components are flatly displayed are layered and displayed in three dimensions, and each layer is translucent and displayed so that portions overlap with each other, so that even when the display area is limited, the FSM diagrams of multiple components can be displayed at the same time. can be displayed.
요컨대 본 개시의 실시예들에 따르면 개발 중인 소프트웨어를 구성하는 논리적인 구조와 구성 요소들의 세부 설계 사항을 직관적으로 이해할 수 있도록 시각화하는 기능이 제공되어, 소프트웨어 개발 과정의 효율성과 편의성이 증대될 수 있다. In short, according to the embodiments of the present disclosure, a function to visualize the logical structure and detailed design details of components constituting the software under development is provided so as to intuitively understand, so that the efficiency and convenience of the software development process can be increased. .
지금까지 도 1 내지 도 24를 참조하여 설명된 본 개시의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.The technical idea of the present disclosure described with reference to FIGS. 1 to 24 so far may be implemented as computer readable code on a computer readable medium. The computer-readable recording medium may be, for example, a removable recording medium (CD, DVD, Blu-ray disc, USB storage device, removable hard disk) or a fixed recording medium (ROM, RAM, computer-equipped hard disk). can The computer program recorded on the computer-readable recording medium may be transmitted to another computing device through a network such as the Internet, installed in the other computing device, and thus used in the other computing device.
이하, 본 개시의 몇몇 실시예들에 따른 예시적인 컴퓨팅 장치의 하드웨어 구성을 도 25를 참조하여 설명하기로 한다. 도 25를 참조하여 설명하는 컴퓨팅 장치는, 예를 들어 도 1을 참조하여 설명한 개발자 단말 또는 IDE 서비스 서버의 하드웨어 구성일 수 있다.Hereinafter, a hardware configuration of an exemplary computing device according to some embodiments of the present disclosure will be described with reference to FIG. 25 . The computing device described with reference to FIG. 25 may be, for example, a hardware configuration of a developer terminal or an IDE service server described with reference to FIG. 1 .
도 25는 본 개시의 다양한 실시예에서 컴퓨팅 장치를 구현할 수 있는 예시적인 하드웨어 구성도이다. 컴퓨팅 장치(1000)는 하나 이상의 프로세서(1100), 시스템 버스(1600), 통신 인터페이스(1200), 프로세서(1100)에 의하여 수행되는 컴퓨터 프로그램(1500)을 로드(load)하는 메모리(1400)와, 컴퓨터 프로그램(1500)을 저장하는 스토리지(1300)를 포함할 수 있다.25 is an exemplary hardware configuration diagram in which a computing device may be implemented in various embodiments of the present disclosure. The
프로세서(1100)는 컴퓨팅 장치(1000)의 각 구성의 전반적인 동작을 제어한다. 프로세서(1100)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(1100)는 본 발명의 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(1000)는 둘 이상의 프로세서를 구비할 수 있다.The
메모리(1400)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(1400)는 본 발명의 다양한 실시예들에 따른 방법/동작들을 실행하기 위하여 스토리지(1300)로부터 하나 이상의 컴퓨터 프로그램(1500)을 로드(load) 할 수 있다. 메모리(1400)의 예시는 RAM이 될 수 있으나, 이에 한정되는 것은 아니다. 시스템 버스(1600)는 컴퓨팅 장치(1000)의 구성 요소 간 통신 기능을 제공한다.
시스템 버스(1600)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다. 통신 인터페이스(1200)는 컴퓨팅 장치(1000)의 유무선 인터넷 통신을 지원한다. 통신 인터페이스(1200)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(1200)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다. 스토리지(1300)는 하나 이상의 컴퓨터 프로그램(1500)을 비임시적으로 저장할 수 있다. 스토리지(1300)는 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.The
컴퓨터 프로그램(1500)은 본 발명의 다양한 실시예들에 따른 방법/동작들이 구현된 하나 이상의 인스트럭션들을 포함할 수 있다. 컴퓨터 프로그램(1500)이 메모리(1400)에 로드 되면, 프로세서(1100)는 상기 하나 이상의 인스트럭션들을 실행시킴으로써 본 발명의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다.
이상 첨부된 도면을 참조하여 본 명세서의 실시예들을 설명하였지만, 본 명세서의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 명세서의 실시예들이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.Although the embodiments of this specification have been described with reference to the accompanying drawings, those of ordinary skill in the art to which the embodiments of this specification belong will find other specific embodiments of this specification without changing the technical spirit or essential features. It can be understood that it can also be implemented in the form. Therefore, the embodiments described above should be understood as illustrative in all respects and not limiting. The protection scope of the present invention should be construed according to the claims below, and all technical ideas within the equivalent range should be construed as being included in the scope of the technical ideas defined by the present invention.
Claims (29)
컴퓨팅 장치에서 수행되는 방법으로서,
하드웨어 장치의 물리적 컴포넌트들 중 제1 컴포넌트가 가질 수 있는 복수의 상태들을 각각 나타내는 복수의 상태 오브젝트들을 디스플레이하는 단계;
상기 복수의 상태들 사이의 천이를 유발하는 복수의 액션들을 각각 나타내는 복수의 액션 오브젝트들을 디스플레이하는 단계; 및
상기 복수의 액션들 중 제1 액션과 관련된 메시지를 디스플레이하는 단계 - 상기 메시지는 상기 제1 액션의 실행을 유발하는 제1 메시지 또는 상기 제1 액션에 의해 발송되는 제2 메시지임 -
를 포함하는,
소프트웨어 개발 지원 방법.
A method performed on a computing device, comprising:
displaying a plurality of state objects each representing a plurality of states that a first component among physical components of a hardware device may have;
displaying a plurality of action objects each representing a plurality of actions causing a transition between the plurality of states; and
Displaying a message related to a first action among the plurality of actions, wherein the message is a first message causing execution of the first action or a second message sent by the first action
including,
How to support software development.
상기 제1 메시지는, 상기 복수의 상태들 중 제1 상태에서 상기 제1 액션이 실행되도록 유발하는 메시지이며,
상기 메시지를 디스플레이하는 단계는, 상기 제1 상태를 나타내는 오브젝트와 상기 제1 액션을 나타내는 오브젝트 사이에 상기 제1 메시지를 나타내는 오브젝트를 디스플레이하는 단계를 포함하는,
소프트웨어 개발 지원 방법.According to claim 1,
The first message is a message that causes the first action to be executed in a first state among the plurality of states,
The displaying of the message includes displaying an object representing the first message between an object representing the first state and an object representing the first action.
How to support software development.
상기 제1 메시지를 나타내는 오브젝트를 디스플레이하는 단계는, 상기 제1 상태를 나타내는 오브젝트와 상기 제1 액션을 나타내는 오브젝트 사이를 잇는 연결선 상에 상기 제1 메시지를 나타내는 오브젝트의 적어도 일부가 중첩되도록 디스플레이하는 단계를 포함하는,
소프트웨어 개발 지원 방법. According to claim 2,
The displaying of the object representing the first message may include displaying so that at least a portion of the object representing the first message is overlapped on a connection line connecting the object representing the first state and the object representing the first action. including,
How to support software development.
상기 제1 메시지를 나타내는 오브젝트는 상기 제1 메시지를 나타내는 텍스트 오브젝트를 포함하는,
소프트웨어 개발 지원 방법.According to claim 2,
The object representing the first message includes a text object representing the first message,
How to support software development.
상기 메시지를 디스플레이하는 단계는, 상기 제1 메시지와 관련된 세부 정보를 디스플레이를 나타내는 단계를 더 포함하되,
상기 세부 정보는 상기 제1 컴포넌트를 대상으로 하여 상기 제1 메시지를 발송하는 소스 컴포넌트의 식별 정보를 포함하며,
상기 소스 컴포넌트는 상기 컴포넌트들 중 상기 제1 컴포넌트와 상이한 제2 컴포넌트인,
소프트웨어 개발 지원 방법.According to claim 2,
The displaying of the message further includes displaying detailed information related to the first message,
The detailed information includes identification information of a source component that sends the first message to the first component,
The source component is a second component different from the first component among the components,
How to support software development.
상기 세부 정보는 상기 소스 컴포넌트로 하여금 상기 제1 메시지를 발송하도록 하는 액션의 식별 정보를 더 포함하는,
소프트웨어 개발 지원 방법.According to claim 5,
The detailed information further includes identification information of an action that causes the source component to send the first message.
How to support software development.
상기 세부 정보를 디스플레이하는 단계는, 상기 제1 메시지를 나타내는 오브젝트를 선택 또는 포인팅하는 사용자 입력에 응답하여, 상기 세부 정보를 디스플레이하는 단계를 포함하는,
소프트웨어 개발 지원 방법.According to claim 5,
The displaying of the detailed information includes displaying the detailed information in response to a user input of selecting or pointing to an object representing the first message.
How to support software development.
상기 메시지를 디스플레이하는 단계는, 상기 제1 컴포넌트를 대상으로 하여 상기 제1 메시지를 발송하는 제2 컴포넌트 및 제3 컴포넌트를 각각 나타내는 오브젝트들을 디스플레이하는 단계를 포함하며,
상기 제2 컴포넌트를 나타내는 오브젝트를 선택 또는 포인팅하는 사용자 입력에 응답하여, 상기 제2 컴포넌트의 상태의 천이를 나타내는 다이어그램의 적어도 일부를 디스플레이하는 단계를 더 포함하는,
소프트웨어 개발 지원 방법.According to claim 2,
The displaying of the message includes displaying objects representing a second component and a third component respectively sending the first message to the first component,
In response to a user input of selecting or pointing to an object representing the second component, displaying at least a portion of a diagram representing a state transition of the second component,
How to support software development.
상기 제2 컴포넌트의 상태의 천이를 나타내는 다이어그램의 적어도 일부를 디스플레이하는 단계는, 상기 제2 컴포넌트가 수행하는 액션들 중에 상기 제1 컴포넌트를 대상으로 상기 제1 메시지를 발송하는 제2 액션을 나타내는 오브젝트를 디스플레이하는 단계를 포함하는,
소프트웨어 개발 지원 방법.According to claim 8,
The displaying of at least a portion of the diagram representing the state transition of the second component may include an object representing a second action of sending the first message to the first component among actions performed by the second component. Including the step of displaying,
How to support software development.
상기 제2 컴포넌트의 상태의 천이를 나타내는 다이어그램의 적어도 일부를 디스플레이하는 단계는, 상기 다이어그램을 반투명하게 디스플레이하는 단계를 포함하는,
소프트웨어 개발 지원 방법.According to claim 8,
Displaying at least a portion of the diagram representing the state transition of the second component comprises displaying the diagram translucently.
How to support software development.
상기 제2 메시지는 타깃 컴포넌트를 대상으로 상기 제1 액션에 의해 발송되는 메시지이며,
상기 타깃 컴포넌트는, 상기 제1 컴포넌트이거나 또는 상기 컴포넌트들 중 상기 제1 컴포넌트와 상이한 제2 컴포넌트인,
소프트웨어 개발 지원 방법.According to claim 1,
The second message is a message sent by the first action to a target component,
The target component is the first component or a second component different from the first component among the components,
How to support software development.
상기 메시지를 디스플레이하는 단계는, 상기 제1 액션을 나타내는 오브젝트에 인접하여 상기 제2 메시지를 나타내는 오브젝트를 디스플레이하는 단계를 포함하는,
소프트웨어 개발 지원 방법.According to claim 11,
The displaying of the message includes displaying an object representing the second message adjacent to the object representing the first action.
How to support software development.
상기 메시지를 디스플레이하는 단계는, 상기 제1 액션을 나타내는 오브젝트를 선택 또는 포인팅하는 사용자 입력에 응답하여, 상기 제2 메시지를 나타내는 오브젝트를 디스플레이하는 단계를 포함하는,
소프트웨어 개발 지원 방법.According to claim 11,
The displaying of the message includes displaying an object representing the second message in response to a user input of selecting or pointing to an object representing the first action.
How to support software development.
상기 메시지를 디스플레이하는 단계는, 상기 제1 액션에 의해 상기 제2 컴포넌트를 대상으로 발송되는 상기 제2 메시지 및 상기 제1 액션에 의해 제3 컴포넌트를 대상으로 발송되는 제3 메시지를 각각 나타내는 오브젝트들을 디스플레이하는 단계를 포함하며,
상기 제3 메시지를 나타내는 오브젝트를 선택 또는 포인팅하는 사용자 입력에 응답하여, 상기 제3 컴포넌트의 상태의 천이를 나타내는 다이어그램의 적어도 일부를 디스플레이하는 단계를 더 포함하는,
소프트웨어 개발 지원 방법.According to claim 11,
The displaying of the message may include objects representing the second message sent to the second component by the first action and the third message sent to the third component by the first action, respectively. Including the step of displaying,
In response to a user input of selecting or pointing to an object representing the third message, displaying at least a portion of a diagram representing state transition of the third component,
How to support software development.
상기 제3 컴포넌트의 상태의 천이를 나타내는 다이어그램의 적어도 일부를 디스플레이하는 단계는, 상기 제3 컴포넌트가 수행하는 액션들 중에 상기 제3 메시지에 의해 유발되는 제3 액션을 나타내는 오브젝트를 디스플레이하는 단계를 포함하는,
소프트웨어 개발 지원 방법.According to claim 14,
The displaying of at least a portion of the diagram representing the state transition of the third component includes displaying an object representing a third action triggered by the third message among actions performed by the third component. doing,
How to support software development.
상기 복수의 상태들과 상기 복수의 액션들의 관계를 나타내는 그래픽 객체를 디스플레이하는 단계를 더 포함하는,
소프트웨어 개발 지원 방법.According to claim 1,
Further comprising displaying a graphical object representing a relationship between the plurality of states and the plurality of actions.
How to support software development.
상기 제1 액션은 상기 제1 컴포넌트를 제1 상태로부터 제2 상태로 천이시키는 액션이고,
상기 관계를 나타내는 그래픽 객체를 디스플레이하는 단계는,
상기 제1 상태를 나타내는 오브젝트와 상기 제1 액션을 나타내는 오브젝트를 시각적으로 연결하는 그래픽 객체를 디스플레이하는 단계; 및
상기 제1 액션을 나타내는 오브젝트와 상기 제2 상태를 나타내는 오브젝트를 시각적으로 연결하는 그래픽 객체를 디스플레이하는 단계
를 포함하는,
소프트웨어 개발 지원 방법.According to claim 16,
the first action is an action of transitioning the first component from a first state to a second state;
The step of displaying a graphic object representing the relationship,
displaying a graphic object visually connecting an object representing the first state and an object representing the first action; and
Displaying a graphic object visually connecting an object representing the first action and an object representing the second state
including,
How to support software development.
상기 컴포넌트들 중에 제1 그룹의 컴포넌트들 각각을 나타내는 오브젝트들을 디스플레이하는 단계를 더 포함하는,
소프트웨어 개발 지원 방법.According to claim 1,
Further comprising displaying objects representing each of the first group of components among the components.
How to support software development.
상기 제1 그룹의 컴포넌트들 각각은 상기 제1 컴포넌트와 메시지를 교환하는 컴포넌트인,
소프트웨어 개발 지원 방법.According to claim 18,
Each of the first group of components is a component that exchanges messages with the first component,
How to support software development.
상기 제1 그룹의 컴포넌트들 각각을 나타내는 오브젝트들을 디스플레이하는 단계는,
상기 오브젝트들을 미니맵 상에 디스플레이하는 단계; 및
상기 제1 그룹의 컴포넌트들과 상기 제1 컴포넌트 사이의 메시지 송수신 방향을 상기 미니맵 상에 시각적으로 나타내는 단계
를 포함하는,
소프트웨어 개발 지원 방법.According to claim 18,
The step of displaying objects representing each of the components of the first group,
displaying the objects on a mini-map; and
Visually displaying message transmission/reception directions between the first group of components and the first component on the mini-map.
including,
How to support software development.
상기 컴포넌트들 중, 상기 제1 컴포넌트와 상이한 제2 컴포넌트의 상태의 천이를 나타내는 다이어그램을 디스플레이하는 단계를 더 포함하는,
소프트웨어 개발 지원 방법.According to claim 1,
Further comprising displaying a diagram showing a transition of a state of a second component different from the first component among the components,
How to support software development.
상기 제1 컴포넌트의 상태의 천이에 관한 그래픽 객체들을 제1 레이어 상에 디스플레이하는 단계; 및
상기 제2 컴포넌트의 상태의 천이에 관한 그래픽 객체들을 제2 레이어 상에 디스플레이하되, 상기 제2 레이어는 상기 제1 레이어와 이격하여 디스를레이하는 단계;
를 더 포함하는,
소프트웨어 개발 지원 방법.According to claim 21,
displaying graphic objects related to the state transition of the first component on a first layer; and
displaying graphic objects related to the state transition of the second component on a second layer, the second layer spaced apart from the first layer;
Including more,
How to support software development.
상기 이격된 상기 제1 레이어와 상기 제2 레이어 사이에, 상기 제1 컴포넌트와 상기 제2 컴포넌트 사이의 메시지 교환을 나타내는 그래픽 객체들을 디스플레이하는 단계
를 더 포함하는,
소프트웨어 개발 지원 방법.The method of claim 22,
Displaying graphic objects representing message exchange between the first component and the second component between the spaced first layer and the second layer;
Including more,
How to support software development.
상기 제1 레이어 및 상기 제2 레이어 중 적어도 하나의 가시성을 토글하기 위한 사용자 인터페이스를 제공하는 단계; 및
사용자에 의해 비가시화되는 레이어와 연관된 컴포넌트가 다른 컴포넌트와 교환하는 메시지에 대응되는 그래픽 객체들을 비가시화화는 단계
를 더 포함하는,
소프트웨어 개발 지원 방법.The method of claim 22,
providing a user interface for toggling visibility of at least one of the first layer and the second layer; and
Making graphic objects corresponding to messages exchanged with other components by a component associated with a layer that is invisible by the user invisible.
Including more,
How to support software development.
상기 컴포넌트들에 대응되는 소스 코드를 로딩하는 단계;
상기 소스 코드를 분석하는 단계;
상기 분석 결과에 기초하여, 상기 제1 컴포넌트가 발송하거나 수신하는 메시지와 관련된 정보를 저장소에 저장하는 단계
를 더 포함하고,
상기 제1 액션과 관련된 메시지를 디스플레이하는 단계는, 상기 저장소에 저장된 정보에 기초하여, 상기 메시지를 디스플레이하는 단계를 포함하는,
소프트웨어 개발 지원 방법.According to claim 1,
loading source codes corresponding to the components;
analyzing the source code;
Based on the result of the analysis, storing information related to a message sent or received by the first component in a storage.
Including more,
Displaying the message related to the first action comprises displaying the message based on information stored in the storage.
How to support software development.
상기 소스 코드를 분석하는 단계는,
상기 소스 코드를 파싱하여 추상 구문 트리(Abstract Syntax Tree)를 생성하는 단계;
상기 추상 구문 트리를 분석하여 메시지의 송수신과 관련된 인스터럭션을 식별하는 단계;
상기 식별된 인스트럭션에 기초하여, 상기 제1 컴포넌트가 발송하는 메시지의 타깃 컴포넌트에 관한 정보를 식별하는 단계; 및
상기 식별된 인스트럭션에 기초하여, 상기 제1 컴포넌트를 대상으로 메시지를 발송하는 소스 컴포넌트에 관한 정보를 식별하는 단계
를 포함하는,
소프트웨어 개발 지원 방법.According to claim 25,
Analyzing the source code,
generating an abstract syntax tree by parsing the source code;
analyzing the abstract syntax tree to identify instructions related to transmission and reception of messages;
based on the identified instruction, identifying information about a target component of a message sent by the first component; and
Identifying information about a source component that sends a message to the first component based on the identified instruction.
including,
How to support software development.
상기 소스 코드의 갱신을 감지하는 단계; 및
상기 소스 코드의 갱신의 감지에 응답하여, 상기 제1 컴포넌트의 상태의 천이를 나타내는 다이어그램의 적어도 일부를 갱신하여 디스플레이하는 단계
를 더 포함하는,
소프트웨어 개발 지원 방법.According to claim 25,
detecting an update of the source code; and
In response to detecting the update of the source code, updating and displaying at least a part of a diagram representing a state transition of the first component.
Including more,
How to support software development.
상기 명령어는 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
하드웨어 장치의 물리적 컴포넌트들 중 제1 컴포넌트가 가질 수 있는 복수의 상태들을 각각 나타내는 복수의 상태 오브젝트들을 디스플레이하는 단계;
상기 복수의 상태들 사이의 천이를 유발하는 복수의 액션들을 각각 나타내는 복수의 액션 오브젝트들을 디스플레이하는 단계; 및
상기 복수의 액션들 중 제1 액션과 관련된 메시지를 디스플레이하는 단계 - 상기 메시지는 상기 제1 액션의 실행을 유발하는 제1 메시지 또는 상기 제1 액션에 의해 발송되는 제2 메시지임 -
를 포함하는 동작들을 수행하도록 하는,
컴퓨터 판독 가능한 비일시적 저장 매체.A computer-readable non-transitory storage medium containing instructions,
When executed by a processor, the instructions cause the processor to:
displaying a plurality of state objects each representing a plurality of states that a first component among physical components of a hardware device may have;
displaying a plurality of action objects each representing a plurality of actions causing a transition between the plurality of states; and
Displaying a message related to a first action among the plurality of actions, wherein the message is a first message causing execution of the first action or a second message sent by the first action
To perform operations including
A computer-readable, non-transitory storage medium.
메모리; 및
상기 메모리에 로드(load)되고, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 포함하되,
상기 컴퓨터 프로그램은,
하드웨어 장치의 물리적 컴포넌트들 중 제1 컴포넌트가 가질 수 있는 복수의 상태들을 각각 나타내는 복수의 상태 오브젝트들을 디스플레이하는 인스트럭션;
상기 복수의 상태들 사이의 천이를 유발하는 복수의 액션들을 각각 나타내는 복수의 액션 오브젝트들을 디스플레이하는 인스트럭션; 및
상기 복수의 액션들 중 제1 액션과 관련된 메시지를 디스플레이하는 인스트럭션 - 상기 메시지는 상기 제1 액션의 실행을 유발하는 제1 메시지 또는 상기 제1 액션에 의해 발송되는 제2 메시지임 -
을 포함하는,
소프트웨어 개발 지원 장치.
processor;
Memory; and
A computer program loaded into the memory and executed by the processor,
The computer program,
instructions for displaying a plurality of state objects each representing a plurality of states that a first component among physical components of the hardware device may have;
instructions for displaying a plurality of action objects each representing a plurality of actions that cause a transition between the plurality of states; and
An instruction for displaying a message related to a first action of the plurality of actions, wherein the message is a first message causing execution of the first action or a second message sent by the first action
including,
Software development support device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210063746A KR20220156153A (en) | 2021-05-18 | 2021-05-18 | Method and system for assisting software development using visual representation of state transition of and message exchange between software components |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210063746A KR20220156153A (en) | 2021-05-18 | 2021-05-18 | Method and system for assisting software development using visual representation of state transition of and message exchange between software components |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220156153A true KR20220156153A (en) | 2022-11-25 |
Family
ID=84237453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210063746A KR20220156153A (en) | 2021-05-18 | 2021-05-18 | Method and system for assisting software development using visual representation of state transition of and message exchange between software components |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20220156153A (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613599B2 (en) | 2000-06-02 | 2009-11-03 | Synopsys, Inc. | Method and system for virtual prototyping |
KR20130086551A (en) | 2012-01-25 | 2013-08-02 | 한미약품 주식회사 | Self-emulsifying drug delivery system composition comprising dutasteride and method for preparing the same |
-
2021
- 2021-05-18 KR KR1020210063746A patent/KR20220156153A/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613599B2 (en) | 2000-06-02 | 2009-11-03 | Synopsys, Inc. | Method and system for virtual prototyping |
KR20130086551A (en) | 2012-01-25 | 2013-08-02 | 한미약품 주식회사 | Self-emulsifying drug delivery system composition comprising dutasteride and method for preparing the same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8862975B2 (en) | Web-based workflow service visualization and navigation | |
US11385760B2 (en) | Augmentable and spatially manipulable 3D modeling | |
US10061552B2 (en) | Identifying the positioning in a multiple display grid | |
WO2018228211A1 (en) | Application conversion method, apparatus and device | |
US20150309695A1 (en) | Virtual interactive learning environment | |
CN112035101B (en) | Method, device, medium and equipment for creating command library combining RPA and AI | |
WO2015143416A1 (en) | Systems and methods for developing and using real-time data applications | |
JP7220753B2 (en) | Labeling tool generation method and apparatus, labeling method and apparatus, electronic device, storage medium and program | |
CN113296856B (en) | Page jump and route configuration method, equipment, system and storage medium | |
US10838717B2 (en) | Representing a software application using extended reality | |
US20190052542A1 (en) | System and method for providing visualizations of computing infrastructure using a domain-specific language for cloud services infrastructure | |
CN111949258B (en) | Approval process construction method, device and system | |
US20190278431A1 (en) | Window control for simultaneously running applications | |
US20200241992A1 (en) | System and method for dynamic domain-specific sequence diagram visualization | |
JP2019197560A (en) | Method of testing prototype linked with existing application | |
CN112214210A (en) | Logistics business rule engine and configuration method, device, equipment and storage medium thereof | |
KR101326985B1 (en) | Method and apparatus for developing, distributing and executing object-wise dynamic compileless programs | |
JP7457168B2 (en) | Semiconductor device modeling method and apparatus | |
US11789775B2 (en) | Progress visualization of computational job | |
KR20220156153A (en) | Method and system for assisting software development using visual representation of state transition of and message exchange between software components | |
CN115617441A (en) | Method and device for binding model and primitive, storage medium and computer equipment | |
CN113407241A (en) | Interactive configuration method, device and system and electronic equipment | |
US20220113993A1 (en) | Graphical user interfaces for exploring and interacting with distributed software applications | |
CN113590086B (en) | Method for rapidly developing software, computer device and storage medium | |
CN115309376B (en) | Application creation method and device, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right |