Machineboy空

프로그래밍을 배운다는 것?과 UML(Unified Modeling Language) 본문

Computer/CS

프로그래밍을 배운다는 것?과 UML(Unified Modeling Language)

안녕도라 2024. 7. 7. 15:07
프로그래밍(Programming)을 배운다는 것은 컴퓨팅 사고력(Computing thinking)이라는 사고 체계를 배우는 것

<Computational thinking> Wing, Jeanette M(2006)

 

프로그래밍

  • 컴퓨터 프로그램을 이용하여 문제를 해결하는 것
  • 컴퓨터에게 일을 시킬 수 있는 방법론
  • 문제를 분석하고 해답을 도출해 가는 과정에서 컴퓨팅 사고력을 사용하는 것

컴퓨팅 사고력은 이렇듯 우리를 둘러싼 현상을 주의 깊게 분석하여 컴퓨터와 협업을 해서 풀 만한 문제와 그렇지 않은 문제를 가려내는 작업부터 시작한다.

  1. 분해(Decomposition)
  2. 패턴인식(Pattern Recognition)/ 데이터 표현(Data Representation)
  3. 일반화(Generalization) / 추상화(Abstraction)
  4. 알고리즘(Algorithm)

(ex) 퀴즈 게임을 코딩해 보라!

분해
(Decomposition)
현실의 문제를 컴퓨터가 이해 가능한 수준으로 잘게 나누는 단계 퀴즈 카테고리를 선택한다 > 무작위로 1문제를 고른다 -> 문제를 참가자에게 보여준다 -> 제한시간 확인하면서 동시에 사용자의 답을 기다린다 -> 답을 받으면 점수를 계산한다 등의 루틴 반복
패턴인식(Pattern Recognition)
/데이터 표현 (Data Representation)
각 부분에서 유사한 부분들, 반복 수행하여 해결할 수 있는 작업들의 패턴을 찾아내는 단계 무작위 문제 추출 -> 문제와 보기 보여주기 -> 제한시간 확인하며 입력 기다리기 -> 점수 계산
일반화(Generalization)/
추상화(Abstraction)
문제를 어떤 구체적 대상에서부터 떼어내어 보편적인 문제 해결 방법으로 가져가는 단계 퀴즈 문제와 보기 문항을 화면에 보여준다 : 항상 유지되는 부분, 퀴즈 문제와 내용과 보기 문항의 내용: 달라지는 부분
알고리즘 (Algorithm) 잘게 쪼개진 작은 문제들을 순차적으로 해결하여 궁극적으로 전체를 해결해나가는 단계 수도코드 작성

 

UML(Unified Modeling Language) 

기본 9개의 다이어그램 + 변경, 추가된 5개의 다이어그램 포함한 14개의 다이어그램

 

현실의 문제를 컴퓨터 프로그래밍으로 해결하는 과정을 실행흐름에 따라 작은 작업단위로 나누고 작업과 작업사이를 데이터로 연결한 그림이라고 말할 수 있다. 즉, 도형과 기호로 소프트웨어를 설명함으로써 전세계 어느 개발자와도 의사소통이 가능하게 하는 것이다.

  • 구조 다이어그램(structure diagram) : 프로그램 내부를 정적인 측면에서 전체 망라하여 보여줌.
    • 클래스 다이어그램(class diagram) : 소스코드의 가장 작은 단위인 클래스 내의 변수와 함수의 이름과 타입까지 세세히 적는다.
    • 객체 다이어그램(object diagram)
    • 패키지 다이어그램(package diagram)
    • 복합 구조 다이어그램( composite structure diagram)
    • 컴포넌트 다이어그램(component diagram)
    • 배치 다이어그램(deployment diagram): 프로그램을 구동하는 컴퓨터 시스템의 서버 구성을 어떻게 할 것인지 단위가 큼
    • 프로필 다이어그램(profile diagram)
  • 행위 다이어그램(behavior diagram) : 주로 사용자가 시스템을 어떻게 사용할 것인지 그림으로 표현
    • 액티비티 다이어그램(activity diagram)
    • 유스케이스 다이어그램(use cae diagram)
    • 상태 기계 다이어그램(state machine diagram)
  • 상호작용 다이어그램(interaction diagram) : 행위 다이어그램의 하위그룹으로 인식되기도 한다, 프로그램 내부 프로세스가 어떻게 진행되는지 프로세스가 진행됨에 따라서 어떤 클래스의 어떤 함수가 호출되는지 도적인 측면에서 보여준다.
    • 시퀀스 다이어그램(sequence diagram)
    • 커뮤니케이션 다이어그램(communication diagram)
    • 상호작용 다이어그램(interaction diagram)
    • 시간순 다이어그램(timing diagram)