CS/TOPCIT 썸네일형 리스트형 [TOPCIT] 01소프트웨어 개발_5. 소프트웨어 아키텍처 설계 5. 소프트웨어 아키텍처 설계 5.1 소프트웨어 아키텍처 설계 소프트웨어 아키텍처 개요 소프트웨어 아키텍처 : 소프트웨어 개발에 직간접적으로 영향을 미치고 복잡도를 높이는 다양한 요소들을 체계적으로 다루기 위한 것 소프트웨어 아키텍처는 의사소통 수단 및 프로젝트 초기 의사결정 도구로 활용, 시스템 전체 구조 및 개발 프로젝트 조직 결정 시 참조 소프트웨어 아키텍처 설계 절차 요구사항분석, 아키텍처 분석 및 설계, 아키텍처 검증 및 승인 절차로 진행 요구사항 : 제안요청서, 인터뷰, 회의 등을 통계 구체적으로 파악, 기능 및 비기능 요구사항 및 명세 아키텍처 분석 : 품질 요소 식별, 우선순위 결정하여 평가 및 상세화 아키텍처 설계 : 사용자 요구사항 만족시킬 수 있도록 시스템 구조 설정 -> 시스템 분할.. 더보기 [TOPCIT] 01소프트웨어 개발_4.소프트웨어 설계 원리와 구조적 설계 4. 소프트웨어 설계 원리와 구조적 설계 4.1 소프트웨어 설계 원리 소프트웨어 설계 단계에서는 분할과 정복을 기본적 설계원리로 표현한다. 문제를 서브시스템으로 분할하고 개발하여 추후 통합되어 전체 시스템이 작동될 수 있도록 한다. 추상화 추상화는 상위 수준에서 제품의 구현을 먼저 생각하는 것을 의미한다. 컴포넌트의 구현 방법을 과감히 생략하고 외부 인터페이스에 초점을 맞추는 것이다. 정보 은닉 정보 은닉이란 각 모듈의 내부 내용을 감추고 인터페이스를 통해서만 메세지를 전달할 수 있도록 하는 개념 구성 요소간의 독립성을 유지시켜준다는 점에서 중요하다. 단계적 정제 프로그램의 구조에서 점차 모듈에 대한 세부 사항으로 내려가며 구체화된다. 세부적인 묘사를 가능하게 함으로써 시스템의 구현을 가능하게 한다. 설.. 더보기 [TOPCIT] 01소프트웨어 개발_3.자료구조와 알고리즘 3. 자료구조와 알고리즘 3.1 자료구조(Data Structure) 정의 자료를 컴퓨터의 기억장치 내에 저장하는 방법 => 자료의 특성과 사용 용도를 고려하여 조직적, 체계적으로 정리 분류 선형구조와 비선형구조 선형구조 : 자료가 일렬로 연결되어 있는 형태 ex) 배열, 선형리스트, 스택, 큐, 데크 등 비선형구조 : 자료의 구성이 계층구조나 망구조의 특별한 형태 ex) 트리, 그래프 등 스택과 큐 스택 데이터가 입력된 순서로 기억공간에 저장되어 출력 시 후입선출 되는 자료구조 스택 연산 top() : 스택의 맨 위에 있는 데이터 값 반환 push() : 스택의 데이터 삽입 pop() : 스택에서 데이터 삭제 후 반환 isempty() : 스택에 원소가 없으면 true, 있으면 false 반환 isfu.. 더보기 [TOPCIT] 01소프트웨어개발_2.소프트웨어 재사용 2. 소프트웨어 재사용 2.1 소프트웨어 재사용 소프트웨어 재사용 정의 소프트웨어 재사용이란 사용 소프트웨어 개발관련 지식(기능, 모듈, 구성 등)을 표준화하여 개발 생산성을 높이기 위하여 반복적으로 사용하기에 적합하도록 구성하는 방법 신규 개발되는 소프트웨어의 품질과 생산성 및 신뢰성을 높이고 개발 일정 및 비용을 감소 소프트웨어 재사용 배경 소프트웨어 위기로 인한 품질 및 생산성 저하 소프트웨어 개발의 자동화 기술 발달로 CASE 도구 사용 확대 소프트웨어 개발 표준화 준수 및 품질확보 노력 소프트웨어 재사용의 목적 신뢰성: 기능, 안전, 속도 등의 사전 성능 검증됨 확장성: 검증된 기능 기반으로 upgrade 용이 생산성: 비용, 시간 위험 등 전체적 개발 프로세스 향상 소프트웨어 재사용의 대상 일.. 더보기 [TOPCIT] 01소프트웨어 개발_1. 소프트웨어 공학 개요 1. 소프트웨어 공학 개요 1.1 소프트웨어 공학의 배경과 목적 소프트웨어 공학 정의 요구사항 분석에서부터 유지보수에 이르기 까지 전과정(생명주기)에 걸쳐 예상되는 어려움을 해결하기 위한 체계적인 관리와 효율적 업무 수행을 지원해주는 기술, 기법 => 프로세스, 인력, 기반 인프라 기술의 3가지 핵심 요소를 균형있게 유지해야한다. 소프트웨어 공학 배경 소프트웨어에 대한 수요가 급증하고 => 재사용성을 높여 효율적인 소프트웨어를 개발하기 위한 방법들을 연구 => 시장에서 우위를 선점하기 위해 개발 시간을 단축해야 했다 이로인해 개발 생산성을 높이는 방법에 대한 연구가 본격화 되었고 애자일 방법론이 본격적으로 도입되었다. 소프트웨어 공학의 4가지 중요요소 방법(프로젝트 계획수립, 자료구조, 알고리즘, 코딩,.. 더보기 이전 1 다음