인터페이스는 우리가 인터넷을 사용할 때 흔히 접할 수 있다.
인터페이스를 통해 내가 원하는 것들을 컴퓨터 언어를 배우지 않고도 쓸 수 있고 어린아이와 노인들도 쉽게 사용 할 수 있을 정도로 쉽고 대중화 되어있다.
인터페이스를 쉽게 만듦으로서 사용자는 물론 개발중 고객이 원하는 것이 무엇인지 알 수 있는 척도이기도 하다.
따라서 인터페이스의 설계는 설계 단계에서도 구조 설계를 하기 이전에 하는것이 바람직하다.
사람과 컴퓨터 사이의 인터페이스(HCI : Human-Computer Interface)
- 비전공자인 사용자가 컴퓨터에 원하는 기능을 사용하려할 때 컴퓨터와 사용자를 이어주는 문과 같은역할
ex) 홈페이지, 웹사이트
인터페이스의 특징
① 사용자 중심으로 설계되어야함
② 입력방식이 간편해야하고 기억하기 쉬워야 함
③ 출력방식이 이해하기 쉽고 친절해야 함
④ 인터페이스의 입출력 언어를 사용자가 쉽게 배울 수 있어야함
인터페이스 개발과정
① 사용자의 요구사항이 인터페이스에 반영되어야 함
→ 따라서 인터페이스의 대한 논의는 보통 분석 단계에서 부터 이루어짐
② 사용자의 요구사항이 사용자 인터페이스에 반영되어야 함
③ 인터페이스의 구체적인 설명은 사용자 안내서에 기록됨
인식 모델
- 인터페이스는 인간의 인식 과정을 이해하여 컴퓨터가 인간과 쉽게 대화 할 수 있도록 만든다.
사용자 인터페이스 방식
① 명령어
: 명령어는 컴퓨터가 처음 도입된 후에 널리 이용된 사용자 인터페이스이며, 컴퓨터를 잘 모르는 일반인 보다 전문적인 기술을 가진 기술자 또는 전문가에 적합하다
- 사용자가 가장 강력하고 빠르게 컴퓨터와 대화 할 수 있는 매커니즘
② 메뉴 지향 시스템
: 항목들을 열거 한 매커니즘이며 현재도 널리 쓰이고 있다.
1) 풀 스크린 메뉴
: 메뉴가 스크린 전체를 차지하고 사용자는 메뉴 항목중 하나를 반드시 선택하여야함
2) drop-down 메뉴
: 종목별로 메뉴를 조직하여 사용함
3) pop-up 메뉴
: 많은 메뉴가 필요하고 스크린에 공간이 없을 때 유용
4) push-button 메뉴
: 자주 쓰는 메뉴를 직접 선택 할 수 있는 메뉴
5) radio-button 메뉴
: 여러 선택에서 단 하나의 선택사항만 선택 할 수 있는 경우
6) check-box 메뉴
: 여러 선택에서 여러가지의 선택사항을 선택 할 수 있는 경우
③ 서식 기입
: 많은 양의 데이터를 입력하는 경우에 서식 기입식 사용자 인터페이스를 사용할 수 있다.
인터페이스 설계 지침
- 일관성이 있어야 한다
- 표준안을 만들어야 한다
- 원상복구를 허용하여야 한다
상세설계
: 모듈 또는 오퍼레이션들에 대해 알고리즘을 설계하는 것
- 오퍼레이션의 내부 구조를 설계함
- 프로그래밍 언어를 사용하지 않고 제어 추상화를 이용해 알고리즘을 표현
- 알고리즘의 표기 방법은 그래픽 표기방법과 가상 코드 표기방법이 있음
알고리즘의 표기법
순서도
: 그래픽 요소로 알고리즘의 제어 흐름을 표시하는 그래픽 도구
특징
1. 간단하여 배우기 쉽다
2. 구조적이 되지 못하고 복잡한 프로그램 구조를 생성 할 수 있다
3. 간단한 모듈에 적합하나 복잡한 시스템 구조를 설명하는데 부적합하다
N-S도표
: 순서적 구조, 조건 분기 구조, 순환구조등 기본적인 요소에 대한 표시방법을 제공
특징
1. 프로그램의 기본 제어 구조를 서로 다른 도표로 표시하여 쉽게 읽고 이해할 수 있음
2. 프로그램의 구조를 구조적으로 작성해야만 함
3. 임의로 goto 문을 작성할 수 없고 N-S도표가 제공하는 요소만 사용 가능
4. 순환 제어 구조를 쉽게 표현할 수 있음
프로그램 설계언어 (PDL: Program Design Language)
: 가상코드의 일종.
고급언어와 유사하나 프로그램 제어 또는 데이터 타입의 정의에서 자연 언어를 사용할 수 있기 때문에 직접 컴파일 불가하며 설계 명서 언어로만 사용
구조적 프로그래밍
: 쉽게 이해 할 수 있고 이해도가 높으며 수정이 용이한 프로그램을 작성하는 방법
ㄴ 22.9.13 추가) 변수, 함수, 순차, 분열, 반복 등 구조가 포함된 방법 ex) C언어
'개발 > 소프트웨어 공학' 카테고리의 다른 글
소프트웨어 테스트 (0) | 2022.01.25 |
---|---|
프로그래밍과 코드 검사 (1) | 2022.01.24 |
디자인 패턴 (0) | 2022.01.23 |
자료 흐름 중심 설계와 데이터베이스 설계 (0) | 2022.01.21 |
소프트웨어 설계 기법 (0) | 2022.01.20 |
댓글