본문 바로가기

CS/창의적 컴퓨터공학 설계

(7)
7. CRC Cards CRC card는 class responsibility collaboration 의 약자이다. 클래스를 만들고 그 클래스가 어떤 역할을 하고 어떤 콜라보를 하는 지 등에 대한 표현을 하는 일종의 문서이다. Responsibility는 클래스가 만들어진 목적에 부합하는 어떤 책임을 말하는 것이다. Collaboration은 클래스가 어떤 일을 할 때 하나의 일을 하나의 클래스가 할 수도 있지만, 몇 개의 클래스가 서로 협력해서 일을 할 경우를 말한다. Responsibility는 knowing과 doing으로 나뉜다. 클래스가 use case 요구사항에 따라서 해야 하는 operation과 그 일을 하기 위해서 필요한 데이터가 담긴 attribute가 있다. Knowing은 클래스가 알아야하는 것으로, 보..
6. Use Case, Use case Description * 유즈 케이스 Use case는 말 그대로 사용 예제이다. User가 system을 사용할 때 어떻게 사용할 지에 대한 사용 예제를 말한다. Use case는 uml 다이어그램 테크닉에서 처음 시작하는 주체라고 할 수 있다. Use case는 user들에 의해서 수행되는 activity이다. User가 소프트웨어를 이용해서 system에 무엇을 요구하는지, 그 system은 요구를 받고 어떻게 반응하고 어떤 행동을 해주는지를 표현한다. * use case description Use case description은 각 use case에 따라서 무엇을 하는지를 표현하는 것이다. -element element에는 name, ID number, Primary Actor, Brief description, i..
5. System Analysis 1. 현행 시스템을 분석한다. 완전히 새로운 소프트웨어를 만드는 것이 아니고 사용자가 돈을 주고 사서 사용하고 만족을 얻어야 하기 때문에, 사용자의 요구사항에 맞게 제작해야 한다. 따라서 현재 사용하고 있는 소프트웨어의 시스템을 모델링해보고 더 나은 소프트웨어 로 어떻게 업그레이드 할지를 생각하는 것이 중요하다. 현행 시스템 분석 후에 목표 시스 템을 구성하고 개발 표준을 정의하면 된다. 현행 시스템의 하드웨어 구성과 네트워크 구성을 파악하고 장단점을 분석한 뒤 개선 방안을 도출해내면 된다. 2. 요구사항을 얻는다. 요구사항에 따라서 소프트웨어를 어떻게 만들 것인지 어떤 기능을 첨 부할 것인지를 결정하기 때문에 요구사항을 파악하는 것이 중요하다. 요구사항을 추출할 때는 요구사항 메트릭스를 사용하기도 한다..
4. 다이어그램 UML Diagram 1) use case diagram use case는 사용 예제이다. 소프트웨어 사용자는 사람이 될 수도 있고, 다른 소프트웨어가 될 수도 있다. 사용자와 소프트웨어 간의 연관성을 보여주고, 어떤 일을 위해서 소프트웨어가 어떻게 작동되는지를 그린 다이어그램이다. - 네모 박스가 시스템이다. 바운더리가 있는데 바운더리는 시스템과 외부 시스템을 구별하는 것이다. - 시스템 내부의 타원형이 use case이다. - 그 use case와 관련된 외부 actor가 있다. 사람일 수도, 시스템일 수도 있다. 2) activity diagram 소프트웨어를 진행할 때 일을 순차적으로 보여주는 것이다, 3) class diagram 소프트웨어 안에 구체적인 일을 하는 것이 클래스고, 그 클래스가 어떻게 작동하는 지를 ..
3. UML은 무엇인가 Unified Modeling Language UML은 일종의 설계 도구라고 생각하면 된다. 소프트웨어는 무작정 구현하는 것이 아니고 설계 과정이 필요하다. 이 때 무작정 설계하는 것이 아니라 TOOL을 사용해서 설계한다, MODELING은 디자인이라고 생각하면 된다. 컴퓨터, 소프트웨어에 관련된 책을 보면 디자인이라는 말보다 모델링이라는 말을 많이 쓰고, 컴퓨터라는 단어보다는 머신이라는 단어를 많이 사용한다. 머신은 컴퓨터와 같은 말이고 모델링은 디자인 설계를 의미한다. LANGUAGE는 소통하기 위한 언어. 컴퓨터 용어에서는 사람과 사람이 소통하고, 시스템과 사람이 소통해야 한다. 설계하는 사람과 설계하는 사람이 소통해야하는 언어이다. 설계 도면을 그려놓으면 A,B,C 설계자, 프로그래머 모두가 이해..
2. 컴퓨터공학 설계란 무엇인가 1) develop a design strategy 설계는 사람들에게 생산적인 의미를 부여해야한다. 사람들이 잘 사용할 수 있게하는 디자인 전략을 수립해야한다. 설계 시 설계 도면을 그리고 그 도면을 따라 소프트웨어를 만든다. 2) design architecture and interfaces 소프트웨어는 아키텍처 - 구조- 가 있다. 소프트웨어를 만들 때 그 안에 작은 소프트웨어 모듈이 있고, 그 안에 객체가 있다. 또한 그 모듈과 객체들이 서로 소통하면서 데이터를 주고 받으면서 소프트웨어가 일을 하게 된다. 인터페이스는 소통이다. 사람과 시스템이 소통할 때 user interface를 사용한다. 사람은 생각도 하고 감정도 있어서 까다로운 존재이므로 user interface는 시간을 들여서 잘 만들어..
1. 컴퓨터공학은 무엇인가 컴퓨터공학과는 주로 소프트웨어를 다룬다. 컴퓨터공학도 공학이니까 공학에 대한 설계를 한다. 공학에 대해 설명할 때는 과학과 공학의 차이를 설명한다. 과학 : '왜 그런 현상이 생기는 걸까?' , 기술적 진보에 의미 공학 : '어떻게 하면 새롭고 창의적인 물품을 만들 수 있을까?', 산업적 생산적 진보에 의미 공학은 창의적인 물품을 만들어내는 것이다. 창의적이라는 것은 사람들이 좋아할 만한 물품을 의미한다. 사실상 기술적 진보 의미도 포함할 때도 있지만, 기술적 진보가 없어도 사람들이 필요로 하고 생활을 윤택하게 하는 것, 이로 인해 경제적인 이익을 얻을 수 있는 것이다. 예를 들어서, 달에 가고자 할때, 우주선을 만들어서 달에 간다. 기술적 진보가 필요하다. 하지만 기술적 진보가 됐다고 해서, 회사가 수..