저는 이 정의를 보고 이런 생각이 들더라구요.
분석 자동화도구? 무엇을 분석한다는 거야?
일단 위키피디아의 글을 인용해보겠습니다.
Computer-aided software engineering (CASE) is the domain of software tools used to design and implement applications. CASE tools are similar to and were partly inspired by computer-aided design (CAD) tools used for designing hardware products.
Computer-aided software engineering - Wikipedia
예시로 제공한 이미지는 다음과 같습니다.
설명을 보니까, CAD 기기와 유사한 것이라고 합니다. CAD는 주로 기계공학에서 어떤 기계를 만들고 싶을 떄, 설계를 도와주는 Tool 입니다.
아~ 뭔가 CASE == 소프트웨어 개발을 도와주는 Tool 정도로 이해가 됩니다.
정보처리기사의 범위 내에서 정리한 내용은 다음과 같습니다.
요구분석 -> 설계 -> 구현 -> 검사 및 디버깅
이러한 과정에서 CASE를 활용하여 자동화한다고 합니다.뭐 좋은 이야기는 다있죠. 조금 풀어보자면 GUI를 지원하고, 소프트웨어 전과정에 걸친 도구이므로 모든 단계가 연결되는 것은 당연한 것일 것이고, 다양한 소프트웨어 개발 모형을 지원해야하는게, 표준화라는 것이 구체적인 사례를 하나의 원리와 같이 일반화 하는 과정이니까요.
바로 정보처리기사 문제로 사용됩니다…
일단 언제 사용했는지 알기위해서는 왜 나왔는지 알면 이해에 도움이 될 것 같네요.
소프트웨어의 개발 규모가 점점 커지고 복잡해지면서 생명주기는 짧아 지는 환경이 되었어요. 그러니까 앱으로 따지자면 앱의 구현 난이도는 올라갔는데 짧은 시간내로 만드는 개발자의 ‘헬’로 월드가 되었죠.
이러한 시간을 줄이기 위해서 어떻게 해야할까요? 아마도 매번 반복되는 요소들이나 컴퓨터가 잘 하는 부분을 컴퓨터에게 시키면 되겠죠. 그 시키는 것이 “자동화” 입니다.
이 자동화를 도와주는 도구가 CASE가 되겠습니다.
툴에 대해서 예시를 들자면 다음과 같은 것들이 있습니다.
드디어 언제 사용하는지에 대한 답을 드릴 수 있을 것 같습니다.
답은 상황에 따라 다릅니다..(너무 당연하죠..ㅎㅎ)
그래서 그 상황이 어떤 것인지 조금 사례를 들어들이면 되지 않을까 합니다. 이러한 사례에서 사용됩니다.
::유지보수의 사례 (Reengineering)::
텍스트 기반의 언어 -> 객체지향 언어로 변환해주는 툴
::설계 코딩의 사례::
ERP -> Web 을 자동으로 구축해주는 툴
이 외의 사례로는 “분석-개발”, “분석-테스트, “코딩-유지보수” 그리고 “설계-코딩 동시수행” 등등이 있습니다.
이제 현실로 돌아와서 당장 문제를 맞춰야하잖아요.
위 개념들을 완벽히 숙지하고 또 다음으로 넘어가면 아마 2년해도 못 딸 수도 있을 것 같아요.
정보처리기사는 A = B 를 묻는 시험이라고 생각해요. 즉, “인지”의 수준만 익히면 문제를 맞출 수 있는 수준으로 질문을 하더라고요. 아마 기술사부터는 응용이 시작되겠죠?
어째든 본론으로돌아와서 문제에서 주로 이렇게 물어봅니다.
왠만한건 다 설명한 것 같은데 안한 것 2 개가 보이네요 “상위 CASE”와 “정보저장소” 입니다.
"상위CASE" 란,
계획과 분석 설계 단계를 지원하는 것입니다. 제공 기능으로는 다이아그램 그리기, 명세서 작성 등의 기능을 제공하는데 이를 통해 기업이나 조직을 기술하기 용이합니다.
즉, 상위 CASE는 전반적인 관리를 하는 CASE 툴이라고 보면 되겠죠. 그러면 기능도 당연히, 무언가 디테일하고 구체적인 것이라기보다 데이터모델이나 전반적인 흐름을 관리하는 느낌이 정답이 될 것 같아요.
"정보저장소" 란,
CASE 환경의 여러도구들이 상호연관되어 동작할 수 있도록 도와주는 구심체 역할을 하는 저장소입니다. CASE 내부에 발생하는 데이터들을 저장하도록 도와주어 여러 기능을 하다록 도와줍니다. 만약 저장소 없이 각각 CASE 기능이 저장하여 동작한다면(단위형태로동작한다면) 각 기능간 데이터 연결이 안되면 그때그때 다시 데이터를 입력해주어야하는 불편함과 그 동작에서 발생할 휴먼에러가 발생할 수도 있습니다. 무엇보다 불편하죠.
제가 이해한 걸 바탕으로 작성한 개념설명입니다. 다시 설명드리면, 기능을 좀더 잘 동작하도록 데이터를 저장하는 저장소이다.
그래서 이제 문제에 나오는 기능이 어떤 답이 나올지 예상이 되시나요?
무언가 데이터를 저장하고 연결하고 공유해주고, 저장소로 인해 편해진 무언가가 나오지 않을까요?
CASE의 기능이 가장 빈출이고 정보저장소가 가장 적게 나왓습니다.
급하시면 두 가지정도만 눈도장찍고 가시면 될 것 같네요. 나머지 글들은 공부한 개념이 현실에서 어떤식으로 연결될지 제가 궁금해서 작성하다가 이렇게 공유하게 되었습니다.
읽어주셔서 감사합니다!
정보처리기사 CASE(Computer-Aided Software Engineering) | jtrimind blog
Computer-aided software engineering - Wikipedia
분석자동화 도구
https://www.happycampus.com/report-doc/4217057/
CASE 환경에서의 정보저장소 (Information Repository)의 구성
강병도,우치수