0. SysML 스펙과 함께 프로그램 친화적인 설계하기
1. 요구 사항 정의 (Requirements Definition)
- 요구 사항(Requirements): 시스템이 만족해야 할 요구 사항들을 정의합니다. 이 단계에서 기능적 요구 사항, 비기능적 요구 사항 등을 모두 포함해야 합니다.
2. 시스템 구조 설계 (System Architecture Design)
- 블록 정의(Block Definitions): 시스템의 구성 요소들을 정의합니다. 각각의 블록은 시스템의 물리적 또는 논리적 구성 요소로, 속성, 관계 등을 정의합니다.
- 패키지 정의(Package Definitions): 블록을 논리적으로 묶어서 패키지로 관리합니다. 패키지 내에 포함된 블록들이 모듈화되어 관리될 수 있습니다.
3. 인터페이스 설계 (Interface Design)
- 인터페이스 정의(Interface Definitions): 시스템 내의 블록 간에 데이터를 주고받는 방법을 정의합니다. 인터페이스는 블록 간의 상호작용을 구체적으로 설계합니다.
4. 동작 설계 (Behavior Design)
- 유스케이스 다이어그램(Use Case Diagrams): 사용자가 시스템과 어떻게 상호작용하는지 정의합니다. 시스템의 기능을 큰 틀에서 파악할 수 있게 됩니다.
- 액티비티 다이어그램(Activity Diagrams): 시스템의 각 활동을 정의하고, 각 활동이 어떤 순서로 이루어지는지 시각화합니다. 여기서 시스템의 동작 흐름을 구체적으로 설계합니다.
- 시퀀스 다이어그램(Sequence Diagrams): 시간 순서에 따라 객체들 간의 메시지 흐름을 정의합니다. 블록이나 인터페이스 간의 상호작용을 세부적으로 정의할 수 있습니다.
5. 상태 설계 (State Design)
- 상태 다이어그램(State Diagrams): 시스템이나 객체의 상태 전이를 정의합니다. 시스템이 어떤 조건에서 어떤 상태로 전환되는지를 규명합니다.
6. 제약 조건 설계 (Constraint and Parameter Design)
- 파라메트릭 다이어그램(Parametric Diagrams): 시스템의 제약 조건을 정의하고, 시스템 내에서 변수 간의 관계를 정의합니다. 이를 통해 시스템의 성능, 최적화 조건 등을 관리할 수 있습니다.
7. 구현 및 테스트 (Implementation and Testing)
- 액티비티 다이어그램(Activity Diagrams): 각 액티비티의 흐름을 구현 단계에서 코딩 순서에 맞게 구체화합니다. 테스트 케이스나 시뮬레이션 단계에서 유용할 수 있습니다.
- 시퀀스 다이어그램(Sequence Diagrams): 시스템 간 상호작용을 코딩하고, 테스트할 때 시나리오로 활용할 수 있습니다.
프로그램 규모에 따른 과정
작고 간단한 사내 프로그램
- 1, 2, 4(선택), 6(필요한 경우)
- 간단한 경우 Retool이나 Bubble 정도만 활용해도 괜찮다.
프론트만 필요한 프로그램
- 서버 기능 필요 없이 쿠키 제공만으로도 활용 할 수 있는 단순한 프로그램
- 보통 로그인을 요구하지 않는다.
- 1, 2, 3, 4(일부), 5, 6(필요한 경우)
서버만 제공해도 되는 프로그램
- 디스코드 봇, 슬랙 봇 등 이미 플랫폼에 종속된 인터페이스가 존재하는 경우
- 1, 2, 4, 6
0. SysML 스펙과 함께 프로그램 친화적인 설계하기
http://example.com/p/71891f079f36441d9c81efc37cd0d328/