분류 전체보기
-
객체지향 설계 과정Topcit/소프트웨어 개발 2018. 6. 11. 15:11
객체지향설계 개념과 원리 정의 객체지향 분석 과정에서 밝혀진 사용자 요구사항을 어떻게 소프트웨어의 모습으로 나타낼 것인가에 초점을 맞춘다. 구현에 관한 세부사항을 제시하고 구체적 실현 방법을 정한다. 객체와 클래스 클래스는 유사한 객체들의 모임이다. 객체는 측정 속성의 모임에 의해 기술된다. 비슷한 객체들을 묶는 작업을 분류화라 한다. 캡슐화 정보 은닉을 통한 추상화, 독립성 향상을 얻을 수 있다. 상속 클래스 사이에 유사성이 존재할 때 유사성을 모아 하나의 새로운 클래스를 정의한다. 상위 클래스는 하위 클래스들의 공통적인 속성과 오퍼레이션을 가진다. 상위 클래스의 정보는 하위 클래스에 상속된다. 다형성 동일한 이름의 오퍼레이션이 클래스에 따라 다르게 동작하는 것 객체 지향에서 다향성은 상속 관계에서 사..
-
소프트웨어 아키텍처 설계Topcit/소프트웨어 개발 2018. 6. 11. 15:11
소프트웨어 아키텍처 설계 소프트웨어 아키텍처 개요 소프트웨어 개발에 영향을 미치고 복잡도를 높이는 다양한 요소들을 체계적으로 다루기 위한 개발 대상 소프트웨어의 청사진 소프트웨어 아키텍처 설계 절차 요구사항 분석 제안요청서, 인터뷰, 회의 등을 통해 요구사항을 파악 기능, 비 기능 요구사항을 분류하고 명세한다. 아키텍처 분석 및 설게 품질 요소를 식별하고 우선순위를 결정한다. 아키텍처 검증 및 승인 아키텍처 유형 저장소 구조 시스템에서 사용되는 모든 공유 데이터를 한 곳에 보관하여 모든 서브시스템들이 데이터를 공유할 수 있도록 만든 구조 다량의 데이터를 공유하는데 적합한 방식 MVC 구조 GUI 설계에서 많이 활용되는 프레임워크 한 객체의 표현이 수정되면 다른 모든 표현도 갱신된다. 수정이 단순화되며 재..
-
소프트웨어 설계 원리Topcit/소프트웨어 개발 2018. 6. 11. 15:10
소프트웨어 설계 원리 분할 분할과 정복 사용자의 요구사항을 지속적으로 분할하여 문제영역의 복잡성을 줄이고 이를 통해 얻어진 결과를 적절한 그룹으로 재조합 하는 것 서브 시스템 시스템 상위 레벨에서 분할한 시스템 구성 요소 시스템 설계자는 문제를 서브 시스템으로 분할하고 추후 여러 개발자들이 서로 다른 서브시스템을 독립적으로 개발할 수 있도록 한다. 추상화 상세한 수준의 구현 보다는 상위 수준에서 제품의 구현을 먼저 생각하는 것 추상화를 통해 관심분야가 아니거나 필수적이지 않은 세부적인 것을 생략함 유형 자료 추상화 제어 추상화 과정 추상화 정보 은닉 각 모듈의 내부 내용을 감추고 인터페이스를 통해서만 메시지를 전달할 수 있도록 하는 개념 모듈들 사이의 독립성을 유지시켜준다. 단계적 정제 프로그램 구조에서..
-
요구사항 분석과 명세화Topcit/소프트웨어 개발 2018. 6. 11. 15:05
소프트웨어 요구사항 분석 요구사항 분석 개요 요구사항은 프로젝트 범위와 규모를 결정하는 가장 중요한 정보이다. 프로젝트 전체 과정 중 적극적인 변경, 추적 관리를 통한 현행화가 반드시 필요하다. 요청자의 요구사항을 개발하고자 하는 시스템의 범위와 특징에 맞추어 정제해 가는 과정 설계를 진행하기 이전 주어진 시스템에 대한 이해도를 높여가는 과정 요구사항 분석 단계의 주요 초점은 How가 아닌 What에 맞춰져 있다. 시스템이 수행할 가능에 초점을 맞추어 시스템의 목표를 기술하며 어떻게 수행 될지는 기술하지 않는다. 요구사항 분류 기능적 측면 기능적 요구사항 목표 시스템 구현을 위하여 요구되는 소프트웨어 기능과 속성 시스템에서 필요한 기능, 동작, 행위를 직접적으로 기술 비기능적 요구사항 시스템의 전체 품질..
-
소프트웨어 기반 기술Topcit/소프트웨어 개발 2018. 6. 11. 14:54
자료구조 정의 컴퓨터에서 다양한 자료를 더욱 효율적으로 표현, 활용할 수 있도록 자료의 특성과 사용 용도를 고려하여 조직적, 체계적으로 구분하여 표현한 것 분류 선형구조 배열 리스트 선형 리스트 연결 리스트 스택 큐 비선형구조 트리 그래프 자료구조의 선택 기준 자료의 처리 시간 자료의 크기 자료의 활용 빈도 자료의 갱신 정도 프로그램의 용이성 자료구조의 활용 배열 리스트의 표현, 다항식의 덧셈 문제 해결, 희소행렬 등 리스트 배열의 구현, DBMS 인덱스, 탐색, 정렬 등 스택 인터럽트 처리, 재귀 프로그램의 순서 제어, 서브루틴의 복귀 번지 저장, 후위 표기법 수식 연산, 텍스트 에디터 Undo 기능 등 큐 운영체제의 작업 스케줄링, 대기 행렬의 처리, 비동기 데이터 교환, 키보드 버퍼 이용, 스풀 운..
-
소프트웨어 개발 및 관리Topcit/소프트웨어 개발 2018. 6. 11. 14:53
소프트웨어 특성 하드웨어와 다른 점 SW는 HW에 비해 수정하기가 쉽다. SW는 오래 쓰더라도 낡지 않지만 유지보수 비용은 HW보다 더 많이 소모된다. SW의 비가시성으로 인해 진행 상태를 알기 어렵다. SW는 요구사항을 정의하기 어렵다. 수확체증의 법칙이 적용된다. 수확체증의 법칙 : 추가 생산해도 추가 비용이 들지 않는다. 소프트웨어의 특징 투입 인력의 수와 성과가 비례하지 않다. 소프트웨어가 기기의 원가 경쟁력을 결정한다. 재사용이 가능함 소프트웨어 공학의 중요 요소 소프트웨어 공학 소프트웨어의 개발, 운용, 유지보수, 생명주기 전반을 체계적, 서술적, 정량적으로 다루는 학문 방법 구성 프로젝트 계획 수립과 추정, 시스템과 소프트웨어 분석, 자료구조, 프로그램 구조, 알고리즘, 코딩, 테스팅, 유지..
-
P425 Adhere윈도우즈 API 정복 과제 2018. 2. 18. 17:02
메인 윈도우 하나와 툴 팔레트에 해당하는 팝업 윈도우 하나를 생성한다. 팝업 윈도우의 닫기 버튼은 쓸 수 없고 회색의 배경색을 주어 툴 팔레트처럼 보이도록 만들자. 크기 조정이 가능한 경계선을 가지지만 폭은 200픽셀로 고정되어 있어 크기 조정을 할 수 없고 높이만 조정할 수 있다. 높이는 부모의 높이를 초과하지 못하며, 최소 부모 높이의 1/4이상의 크기를 유지해야 한다. 팝업 윈도우가 부모의 좌우측벽에 30픽셀 미만으로 접근하면 부모의 벽에 밀착시켜 툴 팔레트를 부모와 쉽게 정렬할 수 있도록 한다. 포토샵같은 그래픽 편집 프로그램의 툴 팔레트에서 볼 수 있듯이 작고 배치하기 쉬운 팝업 윈도우를 만든다고 생각하면 된다.
-
P397 ParentCenter윈도우즈 API 정복 과제 2018. 2. 18. 17:01
대화상자의 속성 중에 화면상의 절대 위치를 지정하거나 화면의 중앙에 대화상자가 나타나도록 하는 속성이 있다.그러나 부모의 중앙에 나타나는 속성은 없으므로 함수를 직접 만들어 써야 한다.대화상자의 핸들을 주면 이 대화상자를 부모 윈도우의 중앙으로 이동시키는 다음 함수를 구현해보자. void MoveToParentCenter(HWND hWnd); 대화상자의 핸들 하나만을 인수로 취하며 크기는 그대로 유지한 채 부모 윈도우의 정중앙으로 이동시켜야 한다.보통 대화상자가 초기화되는 시점인 WM_INITDIALOG에서 이 함수를 호출할 것이다.만약 부모가 최소화되어 있다면 부모 윈도를 먼저 복구한 후에 화면 중앙으로 이동해야 한다.