강의 정리/소프트웨어 분석 및 설계 (9) 썸네일형 리스트형 소프트웨어분석및설계 (13) 컴포넌트 모델과 OOP / - 컴포넌트란 무엇인가?- 클라이언트 컴포넌트와 서버 컴포넌트는 어떻게 구분하는가? - 클라이언트 컴포넌트로컬 자원을 사용하여 작업을 수행.서버에게 데이터를 요청하거나, 특정 작업을 수행하도록 요청을 보낸다.사용자와 직접 상호작용.주로 GUI 컴포넌트: 버튼, 리스트, 스프레드 시트.- 서버 컴포넌트클라이언트의 요청을 처리, 응답을 제공.서버의 중앙집중 자원 사용, 다수의 클라이언트 요청에 응답.컨테이너 안에 포함되어 통신. 이때 통신은 서버 내부에 들어있는 비즈니스 오브젝트들이 서로 통신하는 것.EJB(Enterprise Java Beans), CORBA(Common Object Request Broker Architecture) 등. - 컴포넌트 아키텍쳐플러그-인 된 컴포넌트를 관리하는 시스템컴포넌트.. 소프트웨어 분석 및 설계 중간 정리 CH01. 모델링 개념 01. 시스템이란? - 시스템: 비즈니스 문제를 해결하기 위한 목적으로 구성된 소프트웨어+하드웨어의 조합. - 더 폭넓은 개념의 시스템: 컴퓨터 기반 솔루션 + 연관된 사람과 프로세스까지 포함. 이는 복잡성의 문제를 발생시킴. ! 소프트웨어 개발의 현실 - 정보시스템구축 프로세스인 Software Development Life Cycles(SDCL): IT시스템 및 개발과정을 이해하기 위해 중요. 시스템을 디자인하고, 구축하고, 유저들에게 인도하여 - 어떻게 정보 시스템이 비즈니스 요구를 충족시킬 수 있는지를 이해하는 절차. - 성공적 시스템 개발은 '분석'으로부터 시작. 시스템 개발의 성패는 사용자의 비즈니스 목적 = 이윤창출에 얼마나 부합하는지로 결정된다. ! 소프트웨어 개발의.. 소프트웨어 분석 및 설계 (2) 모델링 01. 모델이란? 1. 모델 : 현실세계의 생각이나 아이디어를 구체적으로 표현하기 위해 사용되는 방법. 모델은 어떤 현상을 표현해 줄 수 있으며, 모델을 작성하는 규칙 혹은 표현 규칙이 존재한다. * 예를 들어 자동차를 디자인하는 사람들은 가장 먼저 자동차를 설계한 뒤에 찰흙, 나무 등으로 설계를 따라 동일하게 제작한다고 한다. 이 과정을 모델링이라고 한다. 2. 모델링 : 해석하기 용이한 추상적인 디자인의 구축. - 분석 기법은 모델을 대상으로 유용한 정보를 이끌어 내는 일에 사용된다. - 모델은 자체적으로 어떤 현상을 표현할 수 있다. - 모델의 구성자는 잘 정의된 구문과 의미를 제공함으로 공통된 이해에 도움을 줄 수 있어야 하고 - 이를 통해 문제의 표현 혹은 솔루션의 표현에 대한 공통 이해를 가능.. 소프트웨어 분석 및 설계 (7) 상태 모델 01. 상태 모델이란? "시스템 내의 객체들은 사건/시간의 흐름에 따라 자신의 상태를 바꾼다." : 시간의 흐름에 따라 변하는 객체의 값을 의미. - 이를 표현할 수 있는 행위모델 필요. - 시스템의 변화를 모델링하는 수단. - 시작, 상태전이, 끝이 있다. - 유한상태기계로도 표현. 객체의 상태는 속성의 값과 그 시간 특정한 포인트에 있는 다른 객체와의 관계로 정의된다. 객체의 속성은 상태에 영향을 주지만 - 그러나, 모든 속성이 변화를 일으키는 것은 아니다. 이벤트라는 것은 특정한 시간에 발생하는 어떤 것인데, 이는 객체의 상태를 변경한다. transition은 한 상태에서 다른 상태로의 객체의 변화를 묘사하는 관계이다. 1. 상태의 예시 1) 스위치를 킬 때마다 온/오프가 상태. 2) 리모컨 버튼을.. 소프트웨어 분석 및 설계 (6) 유스케이스 모델2 - 지난주: 유스케이스 모델1 다른 UML에 비해 중요한 비중을 차지. 지금까지 개발자 관점으로 진행, 코딩 구현과 설계에 비중. 취업을 하면 회사에서 어느정도 교육을 해줌 - Associate Architect. 분석에 관한 이야기를 하면서 가장 강조하는게 바로 '유스케이스'. 왜 중요한가? 코딩하는 부분에선 큰 문제가 없다고 가정하면 개발자로서 겪는 큰 어려움은 코딩의 문제가 아니다. Project의 성공의 가장 중요한 부분: 사용자, 발주자, 이해관계자들이 무엇을 요구하는가. needs requirements 왜 분리하는가. 개념을 구분할 필요 있다. 1) needs: 이 사람들이 가지고 있는 문제, 서비스의 니즈. 니즈를 정확하게 찾아내는 것 중요. 니즈의 식별 -> 명세 -> 확인. 2) 시스템.. 소프트웨어 분석 및 설계 (5) 유스케이스 모델 * relation 과 attributes는 무슨 차이가 있는가. 속성는 보관되어야 하는 정보이다. 속성은 클래스 자체의 특징이기도 하다. 이름, ID, 부서, 업무내용, 소속부서 등의 기본적인 정보가 된다. 이때 Employee의 Department(부서정보)는 따로 클래스로 정의할 수 있다. 이 둘은 어떤 관련이 있을까? 어떻게 정의하는게 좋을까. Employee assorted to Department(속성 취급) 와 Employee -- Department(관계 형성) 중에서 무엇을 선택해야 하는가. 관계도 어떤 관점에서는 Attribute(정보)이며, 양쪽 클래스를 모두 거치는 정보이다. 결국 Attribute는 고유한 정보이고, 관계는 양쪽에 걸친 정보이다. 후자는 속성으로 정의할 것이 아니고.. 소프트웨어 분석 및 설계 (4) 클래스 연관의 이해와 활용 01. 구조모델과 개념모델 구조적인 모델은 비즈니스 시스템에서 만들어지거나 사용되는 오브젝트를 보여주는 포멀한 방식이다. 분석가들은 이것은 어떻게 저장되고 만들고 조정되는지에 대한 디테일은 없이 실제 오브젝트들의 논리적인 구조를 보여주는 것인 컨셉츄얼 모델을 만든다. 왜냐하면 모델은 암시와 기술적인 테크닉으로부터 자유롭고, 분석가는 시스템의 진짜 비즈니스적인 요구에 알맞는 모델에 더 쉽게 주목할 수 있다. 실제 "비즈니스 문제"에 대해 반영하는 컨셉츄얼한 모델. 구조 모델의 초보적인 단계가 컨셉츄얼 모델. 구조 모델은 디자인 모델까지 끌고 간다. * UML 쓸 줄 모르는 개발자들도 존재. 수업시간에 배우지 않거나 20년 전에 했거나 객체지향을 하지 않거나. 보통은 이렇게 하십시오 하고 개발합니다. 1. .. 소프트웨어 분석 및 설계 (1) 모델링 개념 01. 시스템이란? - 시스템: 비즈니스 문제를 해결하기 위한 목적으로 구성된 소프트웨어와 하드웨어의 조합. 이때 중요한 것은 '비즈니스 문제를 해결하기 위한다는' 것. 비즈니즈 문제가 존재해야만 시스템이 요구된다. - 더 폭넓은 개념의 시스템: 컴퓨터 기반 솔루션 + 밀접히 연관된 사람과 프로세스까지 포함된 개념. 예를 들어, 정보 시스템Imformation Systems에는 하드웨어, 소프트웨어, 데이터, 네트워크 그리고 사람, 프로세스가 포함된다. 전자의 4가지 요소는 일반적으로 시스템을 구성할 때 함께 언급되는 요소들이지만 후자는 다소 특별. 사람에는 유저와 개발자라는 불가분의 두 관계가 존재, 프로세스에는 개발과 운영이 함께 포함. 이는 복잡성의 문제를 야기한다. 위의 6가지 요소들이 언급되는 .. 이전 1 2 다음