본문 바로가기
자격증/정보처리기사

1과목 소프트웨어 설계 (4)

by 동욷 2023. 2. 21.

1.  사용자 인터페이스의 기본 원칙

 

- 직관성 : 누구나 쉽게 이해하고 사용 가능해야 한다

- 유효성 : 사용자의 목적을 정확하고 완벽하게 달성해야 한다

- 학습성 : 누구나 쉽게 배우고 익힐 수 있어야 한다

- 유연성 : 사용자의 요구사항을 최대한 수용하고 실수를 최소화 해야 한다

 

2.  사용자 인터페이스 설계 지침

 

- 사용자 중심 :  사용자가 쉽게 이해하고 편리하게 사용할 수 있는 환경 제공, 실 사용자에 대한 이해가 바탕

- 사용성 :  사용자가 소프트웨어를 얼마나 빠르고 쉽게 이해할 수 있는지, 얼마나 편리하고 효율적으로 사용할 수 있는지, 

                 사용자 인터페이스 설계 시 가장 우선시 설계

- 심미성 : 디자인적으로 완성도 높게 글꼴이나 색상을 적용하고 그래픽 요소를 배치하여 가독성 높임

- 오류 발생 해결 : 오류가 발생하면 사용자가 쉽게 인지하도록 설계

 

3. 사용자 인터페이스 개발 시스템의 기능

 

- 사용자의 입력을 검증

- 에러 처리와 그와 관련된 에러 메시지를 표시

- 도움과 프롬포트(Prompt)를 제공

 

4. UI 설계 도구

- 사용자의 요구사항에 맞게 UI의 화면 구조나 화면 배치 등을 설계할 때 사용하는 도구

 

1) 와이어프레임(wireframe)

- 기획 단계의 초기에 제작

- 페이지에 대한 개략적인 레이아웃, UI 요소 뼈대 설계

- 개발자나 디자이너 등이 레이아웃을 협의하거나 현재 진행 상태를 공유하기 위해 사용

- 손그림, 파워포인트, 키노트, 스케치, 일러스트, 포토샵

 

2) 목업(mockup)

- 디자인, 사용방법 설명, 평가 등을 위해 좀 더 실제 화면과 유사하게 만든 정적인 형태의 모형

- 시각적으로만 구성요소를 배치하는 것으로 실제로 구현되지는 않는다

- 파워 목업, 발사믹 목업

 

3) 스토리보드(Storyboard)

- 와이어프레임에 콘텐츠 설명, 페이지 간 이동 흐름 등을 추가한 문서

- 디자이너와 개발자가 최종적으로 참고하는 작업 지침서

- 정책, 프로세스, 콘텐츠 구성, 와이어프레임, 기능 정의 등 서비스 구축을 위한 모든 정보

- 파워포인트, 키노트, 스케치, Axure

 

4) 프로토타입(Prototype)

- 와이어프레임이나 스토리보드에 인터랙션을 적용함으로써 실제 구현된 것처럼 테스트가 가능한

동적인 형태의 모형

- 사용성 테스트나 작업자 간 서비스 이해를 위해 작성하는 샘플

 

5) 유스케이스(Use Case)

- 사용자 측면에서의 요구사항, 사용자가 원하는 목표를 달성하기 위해 수행할 내용을 기술

- 사용자의 요구사항을 빠르게 파악함으로써 프로젝트의 초기의 기능적인 요구를 결정하고 결과를 문서화함

 

 

 

 

5. 품질 요구사항

- 소프트웨어의 기능, 성능, 만족도 등 소프트웨어에 대한 요구사항이 얼마나 충족하는가를 나타내는 소프트웨어 특성의 총체

- 사용자의 요구사항을 충족시킴으로써 확립

 

- ISO/IEC 9126 : 소프트웨어 품질 특성과 평가를 위한 표준 지침/ 국제 표준

- ISO/IEC 25010 : 소프트웨어 제품에 대한 국제 표준/ 2011년에 ISO/IEC 9126을 개정

- ISO/IEC 12119 : ISO/IEC 9126을 준수한 품질 표준/ 테스트 절차를 포함하여 규정

- ISO/IEC 14598 : 소프트웨어 품질의 측정과 평가에 필요 절차를 규정한 표준/

                              개발자, 구매자, 평가자 별로 수행해야 할 제품 평가 활동을 규정

 

1) 기능성(Functionality) 

- 소프트웨어가 사용자의 요구사항을 정확하게 만족하는 기능을 제공하는지 여부를 나타냄

- 하위특성 : 적절성/적합성(suitability) , 정밀성/정확성(accuracy) , 상호 운용성(interoperability),

 보안성(security), 준수성(compliance)

 

2) 신뢰성(Reliability)

- 소프트웨어가 요구된 기능을 정확하고 일관되게 오류없이 수행할 수 있는 정도

- 하위 특성 : 성숙성(Maturity) , 고장 허용성 (Fault Tolerance) , 회복성(recoverability)

 

3) 사용성(Usability)

- 사용자와 컴퓨터 사이에 발생하는 어떠한 행위에 대하여 사용자가 정확하게 이해하고 사용하며, 향후 다시 사용하고 싶은 정도를 나타냄

- 하위 특성 : 이해성(Understandability), 학습성(Learnability), 운용성(Operability), 친밀성(Attractiveness)

 

4) 효율성 (Efficiency)

- 사용자가 요구하는 기능을 할당된 시간 동안 한정된 자원으로 얼마나 빨리 처리할 수 있는지 정도를 나타냄

- 하위 특성 : 시간 효율성(Time Behaviour), 자원 효율성(Resource Behaviour)

 

5) 유지 보수성(Maintainability)

- 환경의 변화 또는 새로운 요구사항이 발생했을 때 소프트웨어를 개선하거나 확장할 수 있는 정도를 나타냄

- 하위 특성 : 분석성(Analyzability), 변경성(Changeability), 안정성(Stability), 시험성(Testability)

 

6) 이식성(Portability)

- 소프트웨어가 다른 환경에서도 얼마나 쉽게 적용할 수 있는지 정도를 나타냄

- 하위 특성 : 적용성(Adaptability), 설치성(Installability), 대체성(Replaceability), 공존성(Co-existence)

 
 
 

6. UI 요소 

- 체크 박스(Check Box) : 여러 개의 선택 상황에서 1개 이상의 값을 선택 할 수 있는 버튼
- 라디오 버튼(Radio Button) : 여러 항목 중 하나만 선택할 수 있는 버튼
- 텍스트 박스(Text Box) : 사용자가 데이터를 입력하고 수정할 수 있는 상자
- 콤보 상자(Combo Box) : 이미 지정된 목록 상자에 내용을 표시하여 선택하거나 새로 입력할 수 있는 상자
- 목록 상자(List Box) : 콤보 상자와 같이 목록을 표시하지만 새로운 내용을 입력할 수 없는 상자
 
 
7. 상위 설계와 하위 설계
- 상위 설계 (아키텍처 설계, 예비 설계) 
  : 설계 대상 -> 시스템의 전체적인 구조     세부 목록 -> 구조, DB, 인터페이스
 
- 하위 설계 (모듈 설계, 상세 설계)
  : 설계 대상 -> 시스템의 내부 구조 및 행위    세부 목록 -> 컴포넌트, 자료 구조, 알고리즘
 

 

8. 소프트웨어 아키텍쳐 설계의 기본원리
- 모듈화(Modularity) : 소프트웨어의 성능을 향상시키거나 시스템의 수정 및 재사용, 유지 관리 등이 용이하도록 시스템의 기능들을 모듈 단위로 나누는 것
- 추상화(Abstraction) : 문제의 전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화시켜 나가는 것 
 유형 : 과정 추상화, 데이터 추상화, 제어 추상화
- 단계적 분해(Stepwise Refinement) : Niklaus Wirth에 의해 제안된 하향식 설계 전략, 문제를 상위의 중요 개념으로부터 하위의 개념으로 구체화시키는 분할 기법
 
- 정보 은닉 (Information Hiding) : 한 모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법
 
9. 소프트웨어 아키텍처의 품질 속성
- 소프트웨어 아키텍처가 이해 관계자들이 요구하는 수준의 품질을 유지 및 보장할 수 있게 설계 되었는지를 확인하기 위해 품질 평가 요소 들을 시스템 측면, 비지니스 측면, 아키텍처 측면으로 구분하여 구체화시켜 놓은 것
 
시스템 : 성능, 보안, 가용성, 기능성, 사용성, 변경 용이성, 확장성
비지니스 측면 : 시장 적시성, 비용과 혜택, 예상 시스템 수명
아키텍처 측면 : 개념적 무결성, 정확성, 완결성, 구축 가능성
 
10. 소프트웨어 아키텍처의 설계 과정
 
1) 설계 목표 설정 : 시스템 개발 방향을 명확히 하기 위해 설계에 영향을 주는 비지니스 목표, 우선순위 등의 요구사항을 분석하여 전체 시스템의 설계 목표를 설정
2) 시스템 타입 결정 : 시스템과 서브 시스템의 타입을 결정하고, 설계 목표와 함께 고려하여 아키텍처 패턴을 선택
3) 아키텍처 패턴 적용 : 아키텍처 패턴을 참조하여 시스템의 표준 아키텍처를 설계
4) 서브시스템 구체화 : 서브시스템의 기능 및 서브시스템 간의 상호작용을 위한 동작과 인터페이스 정의
5) 검토 : 아키텍처가 설계 목표에 부합하는지, 요구사항이 잘 반영되었는지, 설계의 기본 원리를 만족하는지 등을 검토
728x90