Topcit 정리/기술영역 - 소프트웨어 개발(21)
-
6. 객체지향 설계 과정
객체지향 설계 개념과 원리 객체와 클래스 클래스는 유사한 객체들의 모임으로, 각 객체는 특정 속성이 모임이다. 비슷한 객체를 묶어 종류의 속성 제약조건 및 동작의 유형을 공유한다. 캡슐화 각자 클래스들이 독립성을 가지고 기능을 수행할 수 있도록 감싸는 것을 캡슐화라 하며, 종속성을 줄일 수 있다. 상속 유사한 클래스를 정의 내리거나, 하위 개념을 정의할 때 만들어진 클래스를 상속할 수 있다. 클래스의 정의를 단순화시킬 수 있고 새로운 클래스를 쉽게 정의할 수 있다. 다형성 동일한 이름의 오퍼레이션이 다양한 작업을 하는 것을 말하며, 상위 클래스에서 정의된 메서드를 하위 클래스에서 재정의하는 오버라이딩, 이름은 같지만 매개변수를 달리하여 재정의하는 오버로딩 등이 있다. 정적 모델링과 동적 모델링 정적 모델..
2021.01.21 -
5. 소프트웨어 아키텍처 설계
소프트웨어 아키텍처 설계는 요구사항 분석, 아키텍처 분석 및 설계, 아키텍처 검증 및 승인 절차로 진행된다. 아키텍처 유형 저장소 구조 한 서브시스템에서 데이터를 만들고 다른 서브시스템들이 데이터를 사용하는 경우 모든 공유 데이터를 한 곳에 저장하여 모든 서브시스템이 공유하는 구조이다. MVC 구조 GUI설계에 많이 활용되는 프레임워크로 한 객체의 여러 가지 표현이 서로 상호작용 하도록 지원하는 접근법으로 한 객체의 표현이 수정되면 다른 모든 표현도 따라 갱신된다. 클라이언트 - 서버 모델 서비스를 요구하는 클라이언트와 서비스를 제공하는 서버로 구성되어 있으며 분산 시스템으로 구현되어 네트워크 시스템을 효과적으로 이용할 수 있다 계층 구조 시스템을 여러 계층으로 구성하여, 각 계층이 다른 서비스를 제공하..
2021.01.20 -
4-3 구조적 설계 기법
구조적 설계는 요구사항 명세서를 설계 문서로 바꾸는 데 필요한 가이드라인을 제시한다. 분석에서 설계로 이동하며 요구사항 명세서에 나타나 있는 특성을 이용하여 설계 문서를 만든다. 변환 흐름 중심 설계 변환 흐름 중심은 시스템을 입력, 변환, 출력 시스템으로 나눈다. 자료 흐름 중심의 프로그램 구조를 만들고, 최상위 모듈에 입력 모듈, 변환 모듈, 출력 모듈을 하위 모듈로 둔다. 각각 모듈은 일을 수행하고 최상위 모듈에 전달하며 마지막 출력 모듈이 최상위 모듈의 값을 반환한다. 트랜잭션 흐름 중심 설계 트랙잭션흐름에 의한 설계는 입력을 여러 갈래의 출력으로 쪼갤 수 있는 경우에 가능하다. 트랜잭션 흐름은 세 가지 구성요소로 이루어져 있다. - 트랜잭션 중심으로 작용하는 모듈 - 입력을 받아들이는 모듈 - ..
2021.01.19 -
4-1, 4-2 소프트웨어 설계 원리/응집도와 결합도
소프트웨어 설계 원리 분할 소프트웨어 설계 단계에서 요구사항을 분할하여 최대한 덜 복잡하게 만들어야 하며, 이를 통해 얻어진 결과는 독립성을 고려하여 재조합되어야 한다. 분할한 시스템 구성요소를 서브시스템이라 부르며, 시스템 설계자는 명확히 서브시스템을 나누어야 한다. 추상화 추상화는 흐름을 지키며 큰 그림을 그리는 과정이며, 세부적인 항목은 생략한다. 컴포넌트의 구현 방법은 생략하고 상호 작용에 중심을 두어 표현한다. 정보 은닉 각 모듈의 내부 내용을 감추고 인터페이스를 통해서만 메시지를 전달하자는 개념이다. 이러는 이유는 하부 시스템이 다른 모듈에 영향을 끼치거나, 독립성에 방해를 하기 때문이다. 단계적 정제 단계적 정제는 구조가 내려가며 구체화된다. 정제 과정에서 추상화 수준이 낮아지며 점점 세부적..
2021.01.18 -
3-3, 3-4, 3-5 구조적 분석 기법/객체지향 분석/요구사항 명세화
구조적 분석 기법 구조적 분석 기법은 기능 관점에서 처리 위주로 모델링하는 대표적인 방법이다. 자료 흐름도 (Data Flow Diagram) 외부 객체 : 시스템 외부에서 시스템과 정보를 주고받는 사용자 등 외부 객체 프로세스 : 시스템 안에서 정보를 처리하고 변환시킨다. 데이터 항목 : 프로세스 사이의 정보 흐름을 표시한다. 자료 저장소 : 저장소로 주로 데이터베이스를 표현한다. 소단위 명세 소단위 명세서는 분할이 완료된 자료 흐름도의 프로세스가 어떤 기능을 수행하는지 기술하는 것이다. 더 이상 쪼개지지 않는 최하위 프로세스를 설명한다. 자료 사전 자료 사전은 자료 흐름도에 나타난 데이터 정보를 모아놓음으로써 개발자나 사용자들이 편리하게 사용할 수 있도록 한다. 객체지향 분석 객체지향은 주어진 문제를..
2021.01.14 -
3-1,2 소프트웨어 요구사항 분석과 모델링
요구사항의 분석 개요 요구사항은 프로젝트 범위와 규모를 정하는 가장 중요한 정보로써 프로젝트 전체 과정 동안 추적관리가 필요하다. 요구사항 분석 단계에선 무엇을 해야하는것에 초점이 맞춰줘 있다. 기능적 요구사항 : 목표를 만들기 위하여 요구되는 소프트웨어 기술 비기능적 요구사항 : 시스템의 품질 또는 특성을 정의하기 위한 요구사항 지속적 요구사항 : 조직의 핵심 활동 관련 안정된 요구사항으로 문제 영역을 모델로부터 유도 휘발성 요구사항 : 시스템의 개발 환경이나 사용자의 요구에 의해 변화하는 요구사항 요구사항 분석의 어려운점 다양한 도메인 지식이 부족하고 요구를 잘못 이해하면 충돌 또는 모호함이 발생한다. 개발 규모가 커지고 여러 명이 작업할수록 이러한 점은 더욱 중요하게 된다. 기능적 요구사항 및 비기..
2021.01.13