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 PDF

Info

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
Application number
KR1020210063746A
Other languages
Korean (ko)
Inventor
김영효
Original Assignee
주식회사 스트라토아이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 스트라토아이티 filed Critical 주식회사 스트라토아이티
Priority to KR1020210063746A priority Critical patent/KR20220156153A/en
Publication of KR20220156153A publication Critical patent/KR20220156153A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems

Abstract

Provided are a method for assisting software development using visual representation of state transition of a software component and message exchange between software components, and a system thereof. The software development method according to one embodiment of the present disclosure, as a method performed in a computing device, may comprise the steps of: displaying multiple state objects representing multiple states which a first component of physical components of a hardware device can have; displaying multiple action objects representing each of multiple actions causing transition between the multiple states; and displaying a message related to a first action among the multiple actions, wherein the message is a first message causing the execution of the first action or a second message sent by the first action.

Description

소프트웨어 컴포넌트의 상태 변화 및 메시지 교환의 시각적인 표현을 이용한 소프트웨어 개발 지원 방법 및 그 시스템{METHOD AND SYSTEM FOR ASSISTING SOFTWARE DEVELOPMENT USING VISUAL REPRESENTATION OF STATE TRANSITION OF AND MESSAGE EXCHANGE BETWEEN SOFTWARE COMPONENTS}Software development support method and system using visual representation of state change and message exchange of software components

소프트웨어 컴포넌트의 상태 변화 및 메시지 교환의 시각적인 표현을 이용한 소프트웨어 개발 지원 방법 및 그 시스템에 관한 것이다. 보다 자세하게는, 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.

미국등록특허 제7613599호US Patent No. 7613599 미국공개특허 제2013-0086551호US Patent Publication No. 2013-0086551

본 개시의 일 실시예를 통하여 달성하고자 하는 기술적 과제는, 소프트웨어를 구성하는 컴포넌트들이 놓일 수 있는 다양한 상태들 및 상태들 사이의 천이를 직관적으로 표현하는 소프트웨어 개발 지원 방법 및 그 시스템을 제공하는 것이다.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 service server 10 and developer terminals 20-1 and 20-2 that can access the IDE service server 10 through a network. can include The software development support system shown in FIG. 1 provides a server-based IDE such as a cloud-based IDE. The software development support system according to this embodiment does not necessarily have to be a server-based IDE. For example, another embodiment of the present disclosure may be an IDE that is installed only in the developer terminals 20-1 and 20-2 (client-alone). Some technical ideas provided by the server-based IDE described with reference to this embodiment are naturally applicable to IDEs installed only in the developer terminals 20-1 and 20-2 as they are. For example, such an IDE may be an IDE for developing equipment control programs for developing software that operates on hardware devices, such as manufacturing equipment. In this case, the IDE service corresponding to the IDE service server 10 of FIG. 1 may be installed in the developer terminals 20-1 and 20-2. Of course, various embodiments presented in this specification can be applied to such an IDE for facility control development.

IDE 서비스 서버(10)는 소스 코드 등 개발 프로젝트의 산출물을 저장하기 위한 IDE 스토리지(11)와 네트워크 또는 내부망(미도시)을 통하여 연결될 수 있다. 또한, IDE 서비스 서버(10)는 개발자 단말들(20-1, 20-2)에 복수의 뷰(view)를 포함하는 IDE GUI의 데이터를 송신할 수 있다. 상기 IDE GUI는 코드 뷰, 유닛 설계 뷰, 프로퍼티 뷰, 및 FSM 뷰 등을 포함할 수 있다.The IDE service server 10 may be connected to the IDE storage 11 for storing outputs of development projects such as source codes through a network or an internal network (not shown). Also, the IDE service server 10 may transmit IDE GUI data including a plurality of views to the developer terminals 20-1 and 20-2. The IDE GUI may include a code view, a unit design view, a property view, and an FSM view.

본 실시예에 따른 소프트웨어 개발 지원 시스템이 제공하는 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 IDE service server 10 may be understood in more detail with reference to some embodiments to be described later.

본 개시에 따른 소프트웨어 개발 지원 방법 및 그 시스템에 의해 개발될 수 있는 소프트웨어의 일례로서, 하드웨어 장치, 예컨대 제조 설비를 제어하기 위한 소프트웨어를 설명한다.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 IDE service server 10 includes the FSM view, and in the FSM view, state transitions of one or more components and messages causing them may be displayed. This will be described later with reference to FIG. 4 and below.

이하, 도 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 actor component units 31 to 33 corresponding to a specific part of the hardware device and a variable type unit 34 corresponding to a value structure composed of a plurality of values constituting a set having a common purpose, etc. can include

액터 컴포넌트들(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 actor components 31, 32, and 33 takes an independent FSM (Finite State Machine)-based operation method, and for this purpose, each of the actor components 31, 32, and 33 uses state information 31a, 32a, and 33a. have Also, the actor components 31, 32, and 33 may exchange messages with each other. To this end, each of the actor components 31, 32, and 33 may have message queues 31b, 32b, and 33b. Although the message queues 31b, 32b, and 33b are illustrated as being implemented as First-In-First-Out (FIFO) in FIG. 2, message queues implemented in other ways may be included in each actor component.

이하, 도 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 IDE server 10 and the IDE storage 11 described with reference to FIG. 1 , the online communication server 200 and the developer terminals 20-1 and 20 of the online communication device 100 The method according to the present embodiment may be performed by the collaboration of -2).

단계 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, component #1, through the FSM view may be received. As described above, the software development support system according to an embodiment of the present disclosure may provide a code view, a unit design view, a property view, and an FSM view. According to a user's selection, a command for switching to an FSM view displaying an FSM diagram of a corresponding component may be received. In some embodiments, an instruction may be received to simultaneously display an FSM view of two or more of the plurality of components making up the software. This will be described later.

단계 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 exemplary FSM view 40 that may be referred to for understanding some embodiments of the present disclosure. Referring to FIG. 4 , the FSM view 40 includes a target component FSM diagram display area 41, a minimap display area 42, and a tool box 43 display area for editing and/or manipulation of components. can do.

FSM 다이어그램 디스플레이 영역(41)에는 예컨대 대상 컴포넌트의 상태, 상태의 천이를 유발하는 메시지, 및 이를 처리하는 액션들에 각각 대응되는 오브젝트들과, 이들을 관계를 나타내는 연결선 등이 디스플레이될 수 있다. FSM 다이어그램 디스플레이 영역(41)에 제공되는 사항에 대해서는 도 6 및 도 7 등을 참조하여 보다 자세히 후술할 예정이다.In the FSM diagram display area 41, for example, objects corresponding to the state of the target component, a message causing state transition, and actions for processing the target component, and a connection line indicating a relationship between them may be displayed. Items provided in the FSM diagram display area 41 will be described later in detail with reference to FIGS. 6 and 7 .

미니맵 디스플레이 영역(42)에는 소프트웨어를 구성하는 복수의 컴포넌트들을 각각 나타내는 그래픽 객체들(421a, 421b, 421c)이 디스플레이될 수 있다. 일 실시예에서, 미니맵 디스플레이 영역(42)에는, 소프트웨어를 구성하는 모든 컴포넌트들 중에서, 디스플레이 영역(41)에 디스플레이되고 있는 대상 컴포넌트와 관련 있는 일부 컴포넌트들을 나타내는 그래픽 객체들(421a, 421b, 421c)만이 디스플레이될 수 있다. 대상 컴포넌트와 관련 있는 일부 컴포넌트들이란, 대상 컴포넌트에게 메시지를 송신하는 컴포넌트 및/또는 대상 컴포넌트로부터 메시지를 수신하는 컴포넌트일 수 있으나, 이에 한정되는 것은 아니다.Graphic objects 421a, 421b, and 421c each representing a plurality of components constituting the software may be displayed on the mini-map display area 42 . In one embodiment, in the mini-map display area 42, among all the components constituting the software, graphic objects 421a, 421b, and 421c representing some components related to the target component being displayed on the display area 41 are displayed. ) can be displayed. Some of the components related to the target component may be a component that transmits a message to the target component and/or a component that receives a message from the target component, but is not limited thereto.

미니맵 디스플레이 영역(42)에는, 대상 컴포넌트 및 다른 컴포넌트들이 서로 메시지를 주고받는 방향을 나타내는 그래픽 객체들, 예컨대 연결선들(422a, 422b, 422c)이 디스플레이될 수 있다. 몇몇 실시예에서, 상기 그래픽 객체들은 메시지의 이동 방향을 나타내는 애니메이션의 형식으로 표시될 수 있다.In the mini-map display area 42, graphic objects indicating directions in which messages are exchanged between the target component and other components may be displayed, for example, connection lines 422a, 422b, and 422c. In some embodiments, the graphic objects may be displayed in the form of an animation indicating a moving direction of the message.

본 실시예에서는, 미니맵 디스플레이 영역(42)이 제공됨으로써, 열람 대상 컴포넌트와 소프트웨어 내의 다른 컴포넌트들의 상호 작용(예컨대 메시지 송수신)에 관한 요약된 정보가 열람자에게 직관적으로 제공될 수 있다. In this embodiment, as the mini-map display area 42 is provided, summary information about interactions (eg, message transmission/reception) between a viewing target component and other components in software may be intuitively provided to a viewer.

툴 박스(40)는 예컨대 컴포넌트의 상태, 상태의 천이를 유발하는 메시지 및 이를 처리하는 액션들을 편집하기 위한 버튼들을 포함할 수 있다. The tool box 40 may include, for example, buttons for editing the states of components, messages that cause state transitions, and actions for processing them.

이하에서는, 도 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 software components #1 and #2.

도 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 (state #11, state #12, and state #13) that component #1 may have may be displayed in step S51. Referring to FIG. 7 , objects 711 to 714 representing states (state #21, state #22, state #23, and state #24) that component #2 may have may be displayed in step S51. .

다시 도 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 (action #12, Objects 622 to 625 representing actions #13, action #14, and action #15, respectively, may be displayed. Referring to FIG. 7 , actions for transitioning the state of component #2, including an object 721 representing action #21 causing the state of component #2 to transition from state #21 to state #22 Objects 722 to 724 respectively representing action #24) may be displayed.

다시 도 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 , component #1, including connection lines 641a and 641b having directionality, indicating a process in which component #1 having state #11 transitions to state #12 by action #11, and component #1 having action #11 Through actions #15 to #15, a plurality of connection lines indicating that the state can be changed to any one of states #11 to #13 may be displayed. Referring to FIG. 7 , a plurality of directional connection lines indicating that component #2 can change to any one of states #21 to #24 through actions #21 to #24 may be displayed. .

다시 도 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 object 631 indicating a message (Msg #11) causing execution of action #11 causing component #1 having state #11 to transition to state #12 may be displayed. have. In this embodiment, when component #1 receives Msg #11, the state of component #1 may change from state #11 to state #12, which can be achieved through execution of action #11.

다른 예로서, 도 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 action #23 causing component #2 having state #22 to transition to state #21 may be displayed. have. In this embodiment, when component #2 receives Msg #21 while in state #21, it may transition to state #22 by action #21, and when component #2 is in state #22 or #23, Msg #21 Upon reception of , state #21 may be transitioned by action #23.

몇몇 실시예에서, 메시지를 나타내는 오브젝트는, 관련된 상태 및 액션을 나타내는 오브젝트들 사이에 디스플레이될 수 있다. 예컨대 컴포넌트 #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 object 631 corresponding to Msg #11 that triggers the execution of action #11 that causes the state of component #1 to transition from state #11 to state #12 is the object 611 representing state #11 and action # It can be displayed between objects 621 representing 11. In some embodiments, the object 631 corresponding to Msg #11 is displayed on the connection line 641a so as to at least partially overlap the connection line 641a connecting the object 611 representing the state #11 and the action #11. It can be.

단계 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 object 631 indicating Msg #11 related to component #1 shown in FIG. 6 may be obtained.

단계 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 object 631 indicating Msg #11 associated with component #1 is selected or pointed to through a pointing means in step S541. In addition, FIG. 9 shows an example of displaying identification information of other components that send Msg #11 to component #1, that is, component #2 and #3.

도시되지는 않았지만, 몇몇 실시예에서는 단계 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 mini-map 42 of the components sending the selected message to the first component may be changed, and the delivery direction of the message may be displayed as an animation on the mini-map 42 .

단계 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 action #23 of component #2 and action #35 of component #3 that send Msg #11 to component #1.

이어서 단계 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., component #2, is displayed, and the FSM diagram of the first component, e.g., component #1, is an abbreviated or simplified view 60a. can be changed to and displayed. Referring to FIG. 11 , an object 723 representing action #23, which is an action of sending Msg #11 to the first component among actions associated with the second component, may be highlighted in a differentiated color and displayed.

도 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 part 70a of the FSM diagram of the second component may be displayed, and the FSM diagram of the first component may be changed to a reduced or simplified view 60a and displayed. Here, the portion 70a of the FSM diagram of the second component includes an object 723 representing action #23 of sending Msg #11 towards the first component among actions associated with the second component, and object 723 It may be a part corresponding to a predetermined area around it. Similar to the user interface shown in FIG. 11 , an object 723 indicating action #23 of sending Msg #11 to the first component may be highlighted and displayed.

도 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 part 70a of the FSM diagram of the second component may be displayed, and the FSM diagram 60 of the first component may be displayed side by side. Referring to FIG. 13 , within the portion 70a of the FSM diagram of the second component, an object 723 representing action #23 of sending Msg #11 to the first component may be highlighted. Also, within the FSM diagram 60 of the first component, the object 631 indicating the Msg #11 may be highlighted and displayed. Furthermore, a graphic object 1301 indicating that Msg #11 is generated and sent by action #23 may be displayed between the object 723 and the object 631 .

몇몇 실시예에서, 단계 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 object 622 indicating action #12 for changing the state of component #1 shown in FIG. 6 from state #11 to state #13 may be obtained.

단계 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 component #2 by action #12 of component #1, and Msg #33, a message sent to component #3 by action #12 of component #1. An exemplary appearance is shown.

이어서 단계 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, component #1, is displayed, and the FSM diagram of the second component, eg, component #2, is an abbreviated or simplified view 70b. It can be displayed in the form of Referring to FIG. 17, an object 622 representing action #12, which is an action of sending Msg #24 toward a second component among actions associated with the first component, and Msg #24 in the FSM diagram 70b of the second component. An object 734 indicating may be displayed with a highlight in a differentiated color. Furthermore, a graphic object 1701 indicating that Msg #24 is sent by action #12 may be displayed between the object 622 and the object 734 .

도 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 simplified view 60a and displayed, and a portion 70a of the FSM diagram of the second component may be displayed. Here, the part 70a of the FSM diagram of the second component includes an object 734 representing Msg #24, which is a message sent by the first component and received by the second component, and a predetermined area around the object 734. It may be a part corresponding to . Similar to the user interface shown in FIG. 17, an object 622 representing action #12 and an object 734 representing Msg #24 may be displayed with emphasis, indicating that Msg #24 is sent by action #12. A graphical object 1701 may be displayed between objects 622 and 734 .

도 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 simplified view 60a and displayed, and the FSM diagram 70 of the second component may be displayed side by side. An object 622 representing action #12 and an object 734 representing Msg #24 can be displayed with emphasis, and a graphic object 1701 representing that Msg #24 is sent by action #12 is displayed as object 622. It can be displayed between and the object 734.

몇몇 실시예에서, 단계 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., component #1, is flatly displayed on a first layer 2101, and an FSM diagram 70 of a second component, e.g., component #2, is displayed on a second layer. 2102, and an exemplary view in which a third layer, for example, an FSM diagram of component #3 is flatly displayed on a third layer 2103, is shown.

다시 도 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 , connection lines 2111 and 2112 indicating message exchange between components #1 and #2 are displayed, and connection lines 2113 and 2113 indicating message exchange between components #2 and #3. A state in which the connection line 2114 is displayed is shown. If there is a message exchanged between component #1 and component #3, a connection line representing such a message can visually connect the first layer and the third layer.

다시 도 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 user interfaces 2431 to 2434 are provided for switching between displaying or not displaying layers in which FSM diagrams of components #1 to #4 are displayed is shown.

단계 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 user interface 2434 is unchecked, the FSM diagram of component #4 is hidden, and graphic objects representing messages exchanged by component #4 with other components are also hidden.

지금까지 도 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 instructions 2301 and 2302 for sending a message by action_12, which is an action of a component named Actor_1. Command 2301 is an exemplary command for the component to send msg_24 towards another component referenced by a member variable named actor2. Command 2302 is an exemplary command for the component to send msg_33 towards another component referenced by a member variable named actor3.

단계 S12에서는 예컨대 도 23에 도시된 소스 코드로부터 생성된 추상 구문 트리로부터, 명령어(2301, 2302)가 식별될 수 있다.In step S12, instructions 2301 and 2302 may be identified from an abstract syntax tree generated from the source code shown in FIG. 23, for example.

단계 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 computing device 1000 includes one or more processors 1100, a system bus 1600, a communication interface 1200, a memory 1400 for loading a computer program 1500 executed by the processor 1100, A storage 1300 for storing the computer program 1500 may be included.

프로세서(1100)는 컴퓨팅 장치(1000)의 각 구성의 전반적인 동작을 제어한다. 프로세서(1100)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(1100)는 본 발명의 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(1000)는 둘 이상의 프로세서를 구비할 수 있다.The processor 1100 controls the overall operation of each component of the computing device 1000 . The processor 1100 may include at least one of a Central Processing Unit (CPU), a Micro Processor Unit (MPU), a Micro Controller Unit (MCU), a Graphic Processing Unit (GPU), or any type of processor well known in the art. can be configured to include Also, the processor 1100 may perform an operation for at least one application or program for executing a method/operation according to various embodiments of the present disclosure. Computing device 1000 may include two or more processors.

메모리(1400)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(1400)는 본 발명의 다양한 실시예들에 따른 방법/동작들을 실행하기 위하여 스토리지(1300)로부터 하나 이상의 컴퓨터 프로그램(1500)을 로드(load) 할 수 있다. 메모리(1400)의 예시는 RAM이 될 수 있으나, 이에 한정되는 것은 아니다. 시스템 버스(1600)는 컴퓨팅 장치(1000)의 구성 요소 간 통신 기능을 제공한다.Memory 1400 stores various data, commands and/or information. Memory 1400 may load one or more computer programs 1500 from storage 1300 to execute methods/actions according to various embodiments of the present invention. An example of the memory 1400 may be RAM, but is not limited thereto. The system bus 1600 provides a communication function between components of the computing device 1000 .

시스템 버스(1600)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다. 통신 인터페이스(1200)는 컴퓨팅 장치(1000)의 유무선 인터넷 통신을 지원한다. 통신 인터페이스(1200)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(1200)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다. 스토리지(1300)는 하나 이상의 컴퓨터 프로그램(1500)을 비임시적으로 저장할 수 있다. 스토리지(1300)는 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.The system bus 1600 may be implemented as various types of buses such as an address bus, a data bus, and a control bus. The communication interface 1200 supports wired and wireless Internet communication of the computing device 1000 . The communication interface 1200 may support various communication methods other than Internet communication. To this end, the communication interface 1200 may include a communication module well known in the art. Storage 1300 may non-temporarily store one or more computer programs 1500 . The storage 1300 may include a non-volatile memory such as a flash memory, a hard disk, a removable disk, or any type of computer-readable recording medium well known in the art.

컴퓨터 프로그램(1500)은 본 발명의 다양한 실시예들에 따른 방법/동작들이 구현된 하나 이상의 인스트럭션들을 포함할 수 있다. 컴퓨터 프로그램(1500)이 메모리(1400)에 로드 되면, 프로세서(1100)는 상기 하나 이상의 인스트럭션들을 실행시킴으로써 본 발명의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다.Computer program 1500 may include one or more instructions in which methods/operations according to various embodiments of the invention are implemented. When the computer program 1500 is loaded into the memory 1400, the processor 1100 may execute the one or more instructions to perform methods/operations according to various embodiments of the present invention.

이상 첨부된 도면을 참조하여 본 명세서의 실시예들을 설명하였지만, 본 명세서의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 명세서의 실시예들이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.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 액션을 나타내는 오브젝트 사이에 상기 제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.
제2항에 있어서,
상기 제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.
제2항에 있어서,
상기 제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.
제2항에 있어서,
상기 메시지를 디스플레이하는 단계는, 상기 제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.
제5항에 있어서,
상기 세부 정보는 상기 소스 컴포넌트로 하여금 상기 제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.
제5항에 있어서,
상기 세부 정보를 디스플레이하는 단계는, 상기 제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.
제2항에 있어서,
상기 메시지를 디스플레이하는 단계는, 상기 제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.
제8항에 있어서,
상기 제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.
제8항에 있어서,
상기 제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.
제1항에 있어서,
상기 제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.
제11항에 있어서,
상기 메시지를 디스플레이하는 단계는, 상기 제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.
제11항에 있어서,
상기 메시지를 디스플레이하는 단계는, 상기 제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.
제11항에 있어서,
상기 메시지를 디스플레이하는 단계는, 상기 제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.
제14항에 있어서,
상기 제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.
제1항에 있어서,
상기 복수의 상태들과 상기 복수의 액션들의 관계를 나타내는 그래픽 객체를 디스플레이하는 단계를 더 포함하는,
소프트웨어 개발 지원 방법.
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.
제16항에 있어서,
상기 제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항에 있어서,
상기 컴포넌트들 중에 제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.
제18항에 있어서,
상기 제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.
제18항에 있어서,
상기 제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항에 있어서,
상기 컴포넌트들 중, 상기 제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.
제21항에 있어서,
상기 제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.
제22항에 있어서,
상기 이격된 상기 제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.
제22항에 있어서,
상기 제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 컴포넌트가 발송하거나 수신하는 메시지와 관련된 정보를 저장소에 저장하는 단계
를 더 포함하고,
상기 제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.
제25항에 있어서,
상기 소스 코드를 분석하는 단계는,
상기 소스 코드를 파싱하여 추상 구문 트리(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.
제25항에 있어서,
상기 소스 코드의 갱신을 감지하는 단계; 및
상기 소스 코드의 갱신의 감지에 응답하여, 상기 제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.
KR1020210063746A 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 KR20220156153A (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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