-
객체지향 설계 과정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 기능 등 큐 운영체제의 작업 스케줄링, 대기 행렬의 처리, 비동기 데이터 교환, 키보드 버퍼 이용, 스풀 운..