정보시스템 과제 (7장 ~ 9장)
7장
1. 391쪽 3번) 바람직한 설계가 되기 위한 다음 원리의 개념을 예를 들어 자세히 설명하라.
(1)복잡성 최소화
개념)시스템이 진화할수록 기능도 복잡해지고 따라서 구조도 복잡해질 수 밖에 없다.
그러나 복잡한 여러 가지 요소를 교통 정리하여 단순화하거나 복잡함을 최소화하는 것이 좋은 설계이다.
예)예를 들어, 회계 정보 시스템을 구성할 때 기능적으로 분할하여 지급회계, 미수금 회계, 급여 회계 등으로 나누는 것과 같다.
(2)느슨한 결합
개념)소프트웨어의 모듈 간 연결을 최소화하도록 설계하여야 한다.
또한 패키지 사이, 클래스사이에 결합되는 것을 최소로 하기 위하여 클래스 인터페이스의 추상화,
클래스 안에 있는 정보를 감추는 정보 은닉 원리 을 적용한다 . 연결이 최소화되면 통합이나 테스트,
유지 관리 할 때 작업을 줄일 수 있다. 왜냐하면 한 부분을 수정하였을 때
그 영향으로 다른 부분을 수정하여야 하는 부분이 적어지기 때문이다.
예)예를 들어 빙산의 일각처럼 모듈 내부의 모든 자세한 작업을 숨기고
외부 클라이언트에게 인터페이스를 제공하여 그것으로만 쓰게 한다면 모듈 사이의 결합은 상당히 줄어든다.
(발견된 결함의 원인이 모듈내부나 인터페이스로 국한되기 때문.)
(3)유연한 구조
개념)시스템이 내부 구조를 해치지 않고 쉽게 확장할 수 있다면 설계는 유연한 구조를 갖게 된다.
다른 부분에 영향을 주지 않고 시스템의 일부를 변경할 수 있기 때문이다.
유연한 구조를 만드는 방법으로는 변경될 것 같은 부분을 찾아 고립시키는 방법과,
동적 바인딩과 패턴을 이용하여 바인딩 타임을 늦추는 방법이 있다.
예)다음은 유연한 구조를 만드는 2가지 방법의 각각의 예시에 대하여 설명이다.
먼저 변경될 것 같은 부분을 찾아 고립시킴: 예를 들면 하드웨어 의존부분, 입출력 포맷, 상태변수,
데이터의 크기 제약 등 자주 바뀌는 부분을 규명하여 별도의 클래스로 분류하고,
이런 부분의 변경이 다른 부분에 영향을 주지 않도록 고립시키고 외부에 영향을 주지 않도록 인터페이스를 설계한다.
다음으로 동적바인딩과 패턴을 이용하여 바인딩 타임을 늦추는 방법의 예로 객체지향의 상속을 들 수 있다.
과수원에서 나무에 비료 주는 것을 제어하는 시스템이 있다고 하자. 과수의 종류에 따라서 다르게 제어한다면
다음에 있는 코드와 같이 과수 타입에 따라 다른 처리를 하여야 한다. 과수원에 새로운 과수를 심었다고 할 때
제어 시스템 안에 있는 과수 타입을 묻는 switch문장은 대부분 변경 및 확장되어야 하는데
객체지향의 상속이라는 개념 때문에 앞으로 새로운 과수를 추가되더라도
다른 곳은 영향 받지 않고 상속하는 클래스만 추가하면 되므로 유연성을 가진다.
2. 패키지 다이어그램의 예를 찾아서 간단하게 설명하시오.
패키지 다이어그램이란 클래스와 같은 여러 모델 요소들을 그룹화 하여 패키지를 구성하고 패키지 사이의 관계를 표현하는 다이어그램이다.
예) 좌석 예약 시스템
5개의 시스템(주문, 예약선택, 좌석db, 가격, 카드서비스)으로 구성된다.
> 주문 서브시스템을 표현하기 위해 패키지를 추가
> 예약 선택과 가격 서브시스템 추가
> 주문 패키지는 예약 선택 패키지의 도움이 필요하다(의존성:화살표 표시)는 것과 예약 선택 클래스를 참조한다는 것(의존성 스테레오 타입 import 추가)을 의미
> 카드서비스 패키지와 좌석DB를 추가
> 주문과 카드서비스 패키지 간은 의존관계와 import를 추가
> 좌석DB와 예약선택 패키지 간은 access 의존성 스테레오 타입으로 표현
3. 391쪽 5번
4. 3-계층으로 개발된 정보시스템의 예를 찾아서 간단하게 설명하시오.
3-계층은 가장 일반적인 다층 아키텍처로 UI와 DB접근계층 사이에 논리계층이 있는 구조를 가지고 있다.
예)J2EE (Java 2 Enterprise Edition)패턴
J2EE는 자바 기술로 기업환경의 어플리케이션을 만드는데 필요한 스펙들을 모아둔 스펙집합이다. 언어는 JAVA, 플랫폼은 자유이다.
J2EE의 가장 큰 특징이라면, Java로 구현된 기술이기 때문에 Java가 갖는 기본적인 특징인 "플랫폼 독립" 성을 갖추고 있다는 것이다.
Java언어는 JVM(Java Virtual Machine)이라는 가상 머신을 통해 각 OS에 맞게 바이트 코드로 변환되어 실행되기 때문에
JVM이 탑재된 플랫폼이라면 어떤 플랫폼이라도 동일한 자바 소스 코드를 실행시킬 수 있다.
마지막으로 다음은 J2EE의 구성요소이다.
-Servlet : 클라이언트가 보내는 HTTP요청을 처리하는 서버측 자바 프로그램이며, Servlet엔진이 있어야한다.
-JSP (Java Server Pages):HTML이나 Java코드를 써서 사용자에게 정보를 보여준다.
JSP가 처음 실행될 때 Servlet엔진이 이것을 Servlet으로 컴파일 시켜서 내부적으로는 Servlet으로 동작한다.
-EJB(Enterprise Java Beans):Java에서 제공하는 분산 컴포넌트 기술로 비즈니스 로직이나 데이터, 메시지를 처리할 수 있다.
-Remote Method Invocation(RMI):프록시를 써서 원격에 있는 Java객체의 메소드를 실행시키기 위한 기술
-Java Naming DirectoryInterface(JNDI):자바 기술로 만들어진 객체에 이름을 붙여 찾을 수 있도록 단일한 인터페이스를 제공
-Java Database Connector(JDBC): 여러종류의 데이터베이스 시스템에 접근하는 단일한 인터페이스를 제공 ,
각각의 데이터베이스에 맞는 JDBC드라이버가 있어야한다.
-Java Connector Architecture(JCA):이기종 플랫폼을 통합할 수 있도록 플랫폼 독립적인 인터페이스를 제공
-Java Message Service(JMS): 여러가지 메시징 시스템에 대한 플랫폼 독립적인 인터페이스를 제공
5. 392쪽 9번
(1) 가장 적합한 설계패턴: 어댑터 패턴
이유: 필요한 인터페이스는 제공하나 객체의 수정 없이 새로운 인터페이스를 정의하려 하기에
(2) 가장 적합한 설계 패턴: 추상 팩토리 패턴
이유: 여러 가지 다른 생산자가 만든 어플리케이션을 혼합하여 사용하여야 하고 여러 생 산자를 위해 단일 소프트웨어를 개발하기 힘들기 때문에 추상 팩토리가 적절
(3) 가장 적합한 설계 패턴: 브리지 패턴
이유: 여러 개발자들에 의해 점증적으로 개발하여 통합해야 하고 서브 시스템을 여러 버전 으로 만들어야 하기에 ,
여러 가지 버전에 대해 동일 인터페이스를 동적으로 같이 끼우는게 가능하기에 브리지 패턴이 적절
8장
1. 451쪽 5번) 다음은 어떤 회사의 제품 주문서이다. 이 테이블을 정규화하라. 각 단계별로 정규화가 어떻게 이루어지는지 테이블을 제시하고 설명하라.
(1) 반복 그룹과 비정규형 설계
제품주문서(제품번호, 제품명, 재고수량, /주문번호, 수출여부, 고객번호, 사업자번호, 우선순위, 주문수량)
(2) 1차정규형
제품주문서(1차정규형)
제품제호 | 제품명 | 재고 수량 | 주문 번호 | 수출 여부 | 고객 번호 | 사업자 번호 | 우선순위 | 주문수량 |
1001 | 모니터 | 1990 | AB345 | X | 4520 | 398201 | 1 | 150 |
1001 | 모니터 | 1990 | AD347 | Y | 2341 | 533392 | 3 | 600 |
1007 | 마우스 | 9750 | CA210 | X | 3280 | 200212 | 8 | 1200 |
1007 | 마우스 | 9750 | AB345 | X | 4520 | 398201 | 1 | 300 |
1007 | 마우스 | 9750 | CB218 | X | 2341 | 533392 | 3 | 390 |
1201 | 스피커 | 2108 | CB232 | Y | 3320 | 533392 | 3 | 80 |
이때 조합 기본키는 제품번호, 주문번호
(3) 2차정규형
1) 제품(제품번호, 제품명, 재고수량),
주문서(주문번호, 수출여부, 고객번호, 사업자번호, 우선순위)
2) 제품-주문(제품번호, 주문번호, 주문수량)
3) 다음은 순서대로
제품(2차정규형), 주문(2차정규형), 제품-주문(2차 정규형)을 나타낸 표이다
제품 번호 | 제품명 | 재고 수량 |
1001 | 모니터 | 1990 |
1001 | 모니터 | 1990 |
1007 | 마우스 | 9750 |
1007 | 마우스 | 9750 |
1007 | 마우스 | 9750 |
1201 | 스피커 | 2108 |
주문 번호 | 수출 여부 | 고객 번호 | 사업자 번호 | 우선순위 |
AB345 | X | 4520 | 398201 | 1 |
AD347 | Y | 2341 | 533392 | 3 |
CA210 | X | 3280 | 200212 | 8 |
AB345 | X | 4520 | 398201 | 1 |
CB218 | X | 2341 | 533392 | 3 |
CB232 | Y | 3320 | 533392 | 3 |
제품번호 | 주문번호 | 주문수량 |
1001 | AB345 | 150 |
1001 | AD347 | 600 |
1007 | CA210 | 1200 |
1007 | AB345 | 300 |
1007 | CB218 | 390 |
1201 | CB232 | 80 |
4) 3차정규형
제품(3차정규형)
제품번호 | 제품명 |
1001 | 모니터 |
1007 | 마우스 |
1201 | 스피커 |
제품번호 | 재고수량 |
1001 | 1990 |
1007 | 9750 |
1201 | 2108 |
주문 번호 | 수출 여부 | 우선 순위 |
AB345 | X | 1 |
AD347 | Y | 3 |
CA210 | X | 8 |
AB345 | X | 1 |
CB218 | X | 3 |
CB232 | Y | 3 |
고객번호 | 사업자 번호 |
4520 | 398201 |
2341 | 533392 |
3280 | 200212 |
3320 | 533392 |
2. 451쪽 6번)
STUDENT(STUDENT-NUMBER, STUDENT-NAME, TOTAL-CREDITS, GPA,
ADVISER-NUMBER, ADVISOR-NAME, (COURSE-NUMBER, COURSE-DESC, NUMBER-CREDITS, GRADE))
(1) 2차정규화
STUDENTS(STUDENT-NUMBER, STUDENT-NAME, GPA)
ADVISER(ADVISER-NUMBER, ADVISOR-NAME)
COURSE(COURSE-NUMBER, COURSE-DESC, GRADE)
STUDENTS-COURSE(STUDENT-NUMBER, COURSE-NUMBER, TOTAL-CREDITS, NUMBER-CREDITS)
(2) 3차정규화
STUDENTS(STUDENT-NUMBER, STUDENT-NAME)
STUDENTS(STUDENT-NUMBER, GPA)
ADVISER(ADVISER-NUMBER, ADVISOR-NAME)
COURSE(COURSE-NUMBER, COURSE-DESC, GRADE)
STUDENTS-COURSE(STUDENT-NUMBER, COURSE-NUMBER, TOTAL-CREDITS, NUMBER-CREDITS)
3. 8장 강의안 5페이지의 Presentation tier, Logic Tier, Data Tier 영문을 번역하시오.
(1)프리젠 테이션 계층
응용 프로그램의 최상위 레벨은 사용자 인터페이스입니다.
인터페이스의 주요 기능은 작업과 결과를 사용자가 이해할 수 있는 것으로 변환하는 것입니다
(2)논리 계층
이 계층은 응용 프로그램을 조정하고 명령을 처리하며 논리적인 결정과 평가를 수행하고 계산을 수행합니다.
또한 두 개의 주변 레이어 사이에서 데이터를 이동하고 처리합니다.
(3)데이터 계층
여기 정보는 데이터베이스 또는 파일 시스템에서 저장되고 검색됩니다.
그 정보는 처리를 위해 논리 계층으로 다시 전달 된 다음 최종적으로 사용자에게 다시 전달됩니다.
4. 8장 강의안 24페이지의 database schema를 번역하시오.
데이터베이스 시스템의 데이터베이스 스키마는 데이터베이스 관리 시스템 (DBMS)이 지원하는 공식 언어로 구조가 설명되며
데이터베이스 구성 방법에 대한 청사진으로 데이터 구성을 나타냅니다.(관계형 데이터베이스의 경우 데이터베이스 테이블로 분리됨)
데이터베이스 schema의 정식 정의는 데이터베이스에 부과 된 무결성 제약 조건이라고 하는 수식 집합 (문장)입니다.
9장
1. 9장 강의안 8페이지의 Ben Shneiderman’s "Eight Golden Rules of Interface Design“를 요약하시오.
(1) 일관성을 위해 노력하라
비슷한 상황에서 일관된 일련의 행동이 요구되어야한다. 프롬프트, 메뉴 및 도움말 화면에서 동일한 용어를 사용해야합니다.
전체적으로 일관된 명령을 사용해야합니다.
(2) 자주 발생하는 사용은 짧게 하라
사용 빈도가 증가함에 따라 사용자들은 접촉의 수를 줄이길 원하고 접근속도를 증가시키고 싶어 한다.
단축, 기능키, 숨겨진 명령, 그리고 매크로 기능은 숙련된 사용자들에게 매우 도움이 된다.
(3) 유익한 피드백을 제공해라
모든 운영자 작업에는 시스템 피드백이 있어야합니다. 빈번하고 사소한 행동의 경우 응답은 겸손 할 수 있지만
드문 경우이거나 주요한 조치의 경우 응답이 더 중요합니다.
(4) 클로저를 생성하는 대화상자
일련의 작업은 시작, 중간 및 끝의 순서로 그룹으로 조직되어야 한다. 일련의 작업을 완료했을 때
유익한 피드백은 작업자에게 성취의 만족감과 안도감, 만일의 사태를 위한 계획과 옵션들을 그들의 마음에서 떨쳐버릴 신호,
그리고 다음 일련의 작업들을 수행할 준비가 되었다는 것을 알려 준다.
(5) 간편한 오류처리를 제공하여야 한다
가능한 사용자가 심각한 오류를 만들지 않도록 시스템을 디자인하라. 만약 오류가 발생한다면 시스템은 오류를 찾아내고
오류를 해결하기 위해 간단하고 이해하기 쉬운 메커니즘을 제공해야한다.
(6) 쉽게 액션을 되돌리도록 허락하라
이 특징은 사용자들이 에러가 달성되지 않은 것을 알기 때문에 걱정을 완화시킨다.
따라서 이는 친숙하지 않은 옵션도 탐험하도록 장려한다. 취소 가능한 단위는 단일 행동, 데이터 접근, 완전한 그룹의 액션이 될 수 있다.
(7) 내적 통제 소재를 지원하라
숙련된 사용자들은 그들이 시스템을 담당하고 시스템이 그들의 행동에 반응하는 감각을 강하게 원한다.
사용자를 반응자보다 행동의 시작자로 만들도록 시스템을 디자인하라.
(8) 단기기억을 줄여라
단기기억에서 인간의 정보 처리 과정의 한계는 인터페이스(디스플레이)가 간단하게 표시되고 다수의 페이지는 통합되어지고
빈번한 윈도우 모션(창 이동)은 감소되며 코드, 기억술 그리고 연속된 행동에 대한 충분한 훈련시간이 할당되는 것을 요구한다.
2. 509쪽 5번
3. 9장 강의안 12페이지를 번역하시오.
사용자 인터페이스의 정의 (wikipedia)
인간 - 기계 상호 작용의 산업 디자인 분야에서 사용자 인터페이스는 인간과 기계 간의 상호 작용이 발생하는 공간입니다
이 상호 작용의 목적은 작업자의 의사 결정 과정에 도움이되는 정보를 기계가 동시에 피드백하는 한편,
인간 끝에서 기계를 효과적으로 작동 및 제어 할 수있게하는 것입니다.
4. 509쪽 8번.
(1)명령이나 기능을 비즈니스 작업 단위와 유사하게 그루핑 한다. 기능과 서브메튜를 여러 단계의 계층 구조로
그루핑하여 사용자가 작업하는 방식이나 논리를 반영한다.
(2)메뉴 리스트는 순서를 정렬하거나 많이 사용하는 것을 맨 위에 둔다. 메뉴의 순서에 대한 일반적인 규칙은 없지만
가장 좋은 방법은 사용자에게 프로토 타입을 보여 주고 의변을 받아 반영한다. 최근 사용한 것을 보여 주는 메뉴도 있는데
사용자에 따라 선호하기도 하고 혼란을 느끼기도 한다.
(3)숙달된 사용자에게는 지름길을 제공하여 여러 단계의 메뉴를 거치는 것을 피할수 있게 한다.
alt키와 문자키를 눌러 핫키를 제공하면 지름길을 제공 할수 있다.
(4)필드의 대부분의 값이 같다면 디폴트 값을 사용한다.
예를들어, 고객의 90%가 서울에 산다면 서울을 디폴트 도시로 사용한다.
(5)예전 레코드의 같은 필드로부터 값을 입력할 수 있도록 복사 기능을 사용한다.
(6)몇 개의 문자만 입력하여도 후보 단어가 디스플레이되는 빨리 찾기 기능을 제공한다.
'♥교육♥ > 대학' 카테고리의 다른 글
[과제]청각보조기구 캡스톤①-목적,필요성,사양,경제성(NPW,MARR,IRR,) (0) | 2019.01.14 |
---|---|
[과제] SCM 혁신사례 SK하이닉스 반도체 SCM사례 (0) | 2019.01.13 |
[과제]알기쉬운 FTA-FTA 확산의 원인과과 경제적효과 특징 목적 추진현황 (0) | 2018.12.19 |
[과제]소프트웨어 개발 프로젝트 실패 사례와 시스템 개발과정 분석 (0) | 2018.12.17 |
[독서] 이것만은 남기고 가야지(이응수 황혼일기) 독후감 (0) | 2018.10.26 |