22
1 컴포넌트 GUI 설계 copyright © 2016 한국항공대학교 소프트웨어학과 지승도교수 R.S. Pressman Monolithic Monolithic vs. Modular Ø Unified è constructed by one single module

컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

1

컴포넌트및 GUI 설계

copyright © 2016한국항공대학교소프트웨어학과지승도교수

R.S. Pressman

Monolithic

Monolithic vs. ModularØ Unified

è constructed by one single module

Page 2: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

Multi-facetted

Monolithic vs. ModularØ Hierarchical, Abstraction, Divide & conquer

è constructed by multiple module in hierarchical fashion

4

컴포넌트란?

n Component is a modular building block for computer software

n “a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces.”

ABC

AB C A B

AB

C1 C2

C2C1

BA+ =

ABCAB

A

B

C1

C2

C

Page 3: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

5

컴포넌트란? (계속)

n OO view (Object-Oriented Design): a component contains a set of collaborating classes. Each class within a component has been fully elaborated to include all attributes and operations that are relevant to its implementation.

n Conventional view (Structured Design): logic, the internal data structures that are required to implement the processing logic, and an interface that enables the component to be invoked and data to be passed to it.

6

Componentbased on Object-oriented Design

Analysis Class

Component(in architecture design)

Design Class(in component design)

Page 4: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

7

Component based on Structured Design

8

Component based on Structured Design

Page 5: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

9

컴포넌트 설계 지침

n Components

n Naming conventions should be established for components that are specified as part of the architectural model and then refined and elaborated as part of the component-level model

(problem-oriented à implementation-specific)

n Interfaces

n Interfaces provide important information about communication and collaboration

n Dependencies and Inheritance

n it is a good idea to model dependencies from left to right and inheritance from bottom (derived classes) to top (base classes).

InheritanceDependency

Page 6: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

11

Cohesion (응집도)

n Conventional view:

n the “single-mindedness” of a module

n OO view:

n cohesion implies that a component or class encapsulates only attributes and operations that are closely related to one another and to the class or component itself

n Levels of cohesion

n Functional

n Layer

n Communicational

n Sequential

n Procedural

n Temporal

n utility

12

Coupling (결합도)

n Conventional view: n The degree to which a component is connected

to other components and to the external world

n OO view:n a qualitative measure of the degree to which

classes are connected to one another

n Level of couplingn Contentn Inclusion or importn Commonn Externaln Controln Stampn Datan Routine calln Type use

Page 7: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

13

컴포넌트설계

n Step 1. Identify all design classes that correspond to the problem domain.

n Step 2. Identify all design classes that correspond to the infrastructure domain. (GUI, O/S etc. that are not described in the analysis model)

n Step 3. Elaborate all design classes that are not acquired as reusable components.

n Step 3a. Specify message details when classes or component collaborate.

n Step 3b. Identify appropriate interfaces for each component.

14

컴포넌트설계 (계속)

n Step 3c. Elaborate attributes and define data types and data structures required to implement them.

n Step 3d. Describe processing flow within each operation in detail.

n Step 4. Describe persistent data sources (databases and files) and identify the classes required to manage them.

n Step 5. Develop and elaborate behavioral representations for a class or component.

n Step 6. Elaborate deployment diagrams to provide additional implementation detail.

n Step 7. Factor every component-level design representation and always consider alternatives.

Page 8: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

15

Collaboration Diagram

16

Refactoring Interface

Page 9: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

17

Activity Diagram

18

Statechart Diagram

Page 10: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

19

Designing Conventional Components

n options:n graphical (e.g. flowchart, box diagram)

n decision table

n Pseudo-code (e.g., PDL)

uses a limited set of logical constructs:“Structured Programming”

sequencecondition if-then-else, caseloops

20

Flow Chart

Page 11: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

21

Decision Table

22

Program Design Language (PDL)

Page 12: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

23

24

GUI 역사

• “User friendly”

1. Command-based2. Menu-driven3. Point&pick

• GUI (Graphic User Interface)

• HCI (Human Computer Interaction)à e.g., 아이폰, 3-D TV, VR, AI

• Story à Emotion

Page 13: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

현실과가상의공존: LVC(Live-Virtual-Constructive)

항공대 LVC 실험실구축계획

활주로 비행시뮬레이터 UAV 비행제어컴퓨터 쿼드콥터 실험공간

안전그물

VirtualLive Constructive

대화면시스템

보유장비및공간

구축예정장비

LVC실험실습실

제어용워크스테이션헤드마운트디스플레이

Page 14: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

한국항공대학교

Virtual 시뮬레이터

HLA/RTIHLA/RTI

Live 인터페이스Constructive 시뮬레이션

Live

합성 상황실 무인항공기(UAV)

Page 15: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

29

인터페이스설계

Easy to use?Easy to understand?

Easy to learn?

30

인터페이스설계

lack of consistencytoo much memorizationno guidance / helpno context sensitivitypoor responseArcane/unfriendly

Typical Design Errors

Page 16: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

31

황금 법칙

n Place the user in control

n Reduce the user’s memory load

n Make the interface consistent

32

인터페이스설계 원칙: Place the User in Control

• Define interaction modes in a way that does not force a user

into unnecessary or undesired actions.

• Provide for flexible interaction.

• Allow user interaction to be interruptible and undoable.

• Streamline interaction as skill levels advance and allow the

interaction to be customized.

• Hide technical internals from the casual user.

• Design for direct interaction with objects that appear on the

screen.

Page 17: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

33

인터페이스설계 원칙:Reduce the User’s Memory Load

• Reduce demand on short-term memory. (remember past actions)

• Establish meaningful defaults.

• Define shortcuts that are intuitive. (e.g., ALT-P)

• The visual layout of the interface should be based on a real

world metaphor.

• Disclose information in a progressive fashion. (e.g., menu-driven)

34

인터페이스설계 원칙:Make the Interface Consistent

• Allow the user to put the current task into a meaningful

context.

• Maintain consistency across a family of applications.

• If past interactive models have created user expectations,

do not make changes unless there is a compelling reason

to do so. (e.g., CTRL-C)

Page 18: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

35

User Interface Design Modelsn User model — a profile of all end users of the

system (Novice, Knowledgeable/intermittent user, Knowledgeable/frequent user)

n Design model — a design realization of the user model (data, architecture, interface, procedure)

n Mental model (system perception) — the user’s mental image of what the interface is

n Implementation model — the interface “look and feel” coupled with supporting information that describe interface syntax and semantics

“Know the user, know the tasks”

36

User Interface Design Process

Page 19: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

37

User Analysis

n User Interviews

n Sales Input

n Marketing input

n Support input

e.g., Big Data Analysis

38

Task Analysis and Modeling

n Use-cases define basic interaction

n Task elaboration refines interactive tasks

n Object elaboration identifies interface objects

(classes)

n Workflow analysis defines how a work process is

completed when several people (and roles) are

involved

n Hierarchical representation is derived by a stepwise

elaboration of each task identified for the user

Page 20: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

39

Swimlane Diagram

40

Analysis of Display Content

n Character-based report (e.g., spreadsheet)

n Graphical display (e.g., histogram, 3-D model,

picture)

n Specialized information (e.g., audio or video files)

Page 21: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

41

Design Issues

n Response time

n Help facilities

n Error handling

n Menu and command labeling

n Application accessibility

n Internationalization

42

Design Evaluation Cycle

Page 22: 컴포넌트 및 GUI 설계 - KOCWcontents.kocw.net/KOCW/document/2015/kau/jiseungdo/10-2.pdf · 컴포넌트설계(계속) nStep 3c. Elaborate attributesand define data typesand

43

Homework #6

n Design 모델 제출

1. Class design (class diagram)

2. Architecture design (DFD => Architecture)

3. Component-level design (activity diagram,

Statechart diagram, PDL/Flowchart/Table)

4. Interface design (swim-lane diagram, GUI sample)