화면 설계
1 ) UI 요소
- Text box : 텍스트 입력
- Password box : 비밀번호 입력
- Radio button : 여러 개 중에 1개 택일
- Checkbox button : 여러 개 중에 중복 택일
- Select box : 드롭다운 형식의 1개 택일
- Textarea box : 여러 줄의 텍스트 입력
- submit button : 서버로 입력한 데이터를 전송
- reset button: 입력한 데이터 제거(초기화)
- Toggle button : 여러 개의 선택 항목 중 하나의 버튼만 선택 가능
2 ) UI 설계 원칙
- 직관성
- 유효성
- 학습성
- 유연성
3 ) UI 개발 시스템의 필수 기능
- 사용자 명령을 받아들일 프롬프트 기능
- 사용자 명령 입력의 검증 기능
- 에러 처리와 에러 메시지 처리 기능
- 도움말 지원 기능
애플리케이션 설계
1 ) 모듈의 공유도(Fan-in)와 제어도(Fan-out)
- 공유도(Fan-in) : 얼마나 많은 모듈이 주어진 모듈을 호출하는 가를 나타내는 척도
- 제어도(Fan-out) : 주어진 모듈이 호출하는 모듈의 개수
2 ) 공통 모듈의 원칙
- 정확성(Correctness)
- 명확성(Clarity)
- 완전성(Com-pletness)
- 일관성(Consistency)
3 ) 공통 모듈의 재사용 범위에 따른 분류
- 함수와 객체 재사용 : 클래스나 메서드 단위로 사용, 소스코드 등을 재사용
- 컴포넌트 재사용: 컴포넌트 단위로 재사용, 컴포넌트 자체 수정 못하고 인터페이스를 통해 통신
- 애플리케이션 재사용 : 공통 업무 기능을 제공하기 위해 애플리케이션을 공유
4 ) 소프트웨어 재사용의 2가지 기본 기술
생성 중심(Generation Based, 모듈화) : 재사용 단위를 찾아 발전
합성 중심(Composition Based, 모델화) : 모듈을 생산성 있게 조립하는 기술
5 ) 소프트웨어 재사용의 이점
- 개발 시간과 비용을 단축
- 프로젝트 실패의 위험 줄임
- 개발 지식을 공유
- 소프트웨어의 품질, 생산성 향상
6 ) 모듈의 평가 기준
- 결합도(연관성) : 모듈 간의 관계성의 척도, 작게 할수록 좋은 설계
- 응집도(완성도) : 한 모듈 내에 요소 간의 연관 정도, 크게 할수록 좋은 설계
7 ) 소프트웨어 모듈 결합도
- 결합도 낮음(높은 품질) ---------------------------------> 결합도 높음(낮은 품질)
- 자료 결합도 -> 스탬프 결합도 -> 제어 결합도 -> 외부 결합도 -> 공통 결합도 -> 내용 결합도
8 ) 소프트웨어 모듈 응집도
- 응집도 낮음(낮은 품질) ---------------------------------> 응집도 높음(높은 품질)
- 우연적 응집도 -> 논리적 응집도 -> 시간적 응집도 -> 절차적 응집도 -> 통신적 응집도 -> 순차적 응집도 -> 기능적 응집도
응집도의 유형
- 우연적 응집도 : 모듈 내부의 루틴들이 뚜렷한 관계없이 묶인 경우로 응집도가 가장 약하고 가장 좋지 않은 모듈
- 논리적 응집도 : 모듈 내부의 루틴들이 같은 범주에 속하는 기능끼리 묶인 모듈
- 시간적 응집도 : 모듈 내부의 루틴들이 시간적으로 수행시기가 같은 기능끼리 묶인 모듈로 같은 시간에 처리되어야 하는 활동들이 묶인 경우의 응집도
- 절차적 응집도 : 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우의 응집도
- 기능적 응집도 : 모듈 내부가 하나의 단일 기능으로 존재하는 경우로 응집도가 강하고 가장 좋은 모듈
- 통신적 응집도 : 모듈 내부의 루틴들 중 작업 대상이 같은 기능 기리 묶인 모듈
- 순차적 응집도 : 모듈 내부의 루틴들이 이전의 명령어로 부터 나온 출력 결과를 그다음 명령어의 입력 자료로 사용하는 경우의 응집도
9 ) N-S(Nassi-Schneiderman) 도표
- 논리의 기술에 중점을 둔 도형 표현 방법
- 임의의 제어 이동이 어려움
- 그래픽 설계 도구
- 상자 도표
- 복합조건 처리 시 시각적으로 명확히 식별
10 ) HIPO(Hierarchy Input Process Output) 도표
- 기능과 자료의 의존 관계를 동시에 표현
- 하향식(Top-Down) 개발에 적합
- 보기 쉽고 이해 용이
- 차트 종류: 가시적 도표(도식 목차), 총체적 도표(총괄 도표), 세부적 도표(상세 도표)
11 ) 시스템 아키텍처(상위 설계)의 설계
- S/W 아키텍쳐 설계에 제약을 하는 상위 설계임
- 제약 안에서 세부적인 설계 작업을 수행하는 상세 설계가 존재
- H/W와 S/W로 구성된 시스템의 아키텍처
- 전체적인 아키텍처 설계, 인터페이스의 정의, 사용자 인터페이스 설계 수행
계층화 패턴(Layered Pattern)
- 표현 계층(Presentation Layer) - UI 계층(UI Layer)
- 프로세스 계층(Process Layer) - 서비스 계층(Service Layer)
- 비즈니스 논리 계층(Business Login Layer) - 도메인 계층(Domain Layer)
- 데이터 접근 계층(Data Access Layer) - 영속 계층(Persistence Layer)
파이프- 필터 패턴(Pipe-filter Patter)
데이터 스트림을 생성하고 처리하는 시스템에서 사용
서브 시스템이 입력 데이터를 받아 처리하고 결과를 다음 서브 시스템으로 넘겨주는 과정을 반복
12 ) 코드의 기능
식별 기능, 분류 기능, 배열 기능, 간소화 기능, 표준화 기능, 연상 기능, 암호화 기능, 오류 검출 기능
13 ) 코드의 유형 분류
순차 코드(Sequence Code) : 일정한 일련번호를 부여하는 방법으로 자료가 발생하는 순서나 도착하는 순서 또는 어떤 논리적인 순서로 배열하여 놓고, 차례로 코드부여
블록 코드(Block Code) : 회사에서 사원번호 부여 시 전체 네 자리로 구성하는 경우, 앞의 두 자리는 부서 구분이고, 나머지 두 자리는 일련번호를 부여하는 경우의 코드
10진 코드(Decimal Code) : 도서관에서 도서 정리를 목적으로 만든 것으로 코드의 내용이 좌측과 우측으로 분리되어 좌측 부분은 그룹 분류에 따르고, 우측 부분은 10진수의 원칙에 따라 세분화하는 코드
그룹 분류 코드(Group Classification Code) : 전체 대상을 대분류, 중분류, 소분류로 구분해 놓고 각 분류별로 개개의 대상을 표현하도록 한 후 합쳐 구성하는 코드
연상 코드(Mnemonic Code) : 대상 항목의 명칭 등을 코드에 반영하여 대상에 대한 연상이 가능하도록 한 코드
표의 숫자 코드(Significant Digit Code) : 대상 항목의 중량, 면적, 용량들의 물리적 수치를 이용하여 만든 코드
14 ) 시스템 연계 기술
연계 기술 | 설명 |
DB Link | 데이터베이스에서 제공하는 DB Link 객체를 이용한다. 수신측에서 DB Link를 생성하고 송신측에서 해당 DB Link를 직접 참조하는 방식이다. 사용방법: 테이블명@DBLink명 |
DB Connection | 수신측의 WAS에서 송신측 데이터베이스로 연결하는 DB Connection Pool을 생성한다. 사용방법 : Data Source = DB Connection Pool명 |
API/ OpenAPI | 송신측의 데이터베이스에서 데이터를 가져와 제공하는 응용 프로그래밍 인터페이스 프로그램이다. API명, 입출력 인수 사용 정보가 필요하다. |
JDBC | 수신측의 프로그램에서 JDBC 드라이버를 이용하여 송신 시스템 데이터베이스와 연결한다. DBMS 유형, DBMS서버 IP와 Port, DB Instance 정보가 필요하다. |
Hyper Link | 웹 응용에서 하이퍼링크를 이용한다. |
Socket | 서버는 통신을 위한 Socket을 생성하여 Port를 할당한다. 클라이언트의 통신 요청 시 클라이언트와 연결하고 통신하는 네트워크 기술이다. |
Web Service | 웹 서비스에서 WSDL과 UDDI, SOAP프로토콜을 이용하여 연계한다. |
출처 이기적 정보처리 기사
'정보처리기사' 카테고리의 다른 글
정처기#10 자료구조 (0) | 2022.02.03 |
---|---|
정처기 스터디 1주차 (0) | 2022.01.30 |
정처기 #7 요구사항 정의 (0) | 2022.01.26 |
정처기 #5,6 테일러링을 위한 품질관리, 소프트웨어 개발의 생명주기 (0) | 2022.01.24 |
정처기 #4 프로젝트 관리 (0) | 2022.01.24 |
댓글