소프트웨어 설계 - contents.kocw.netcontents.kocw.net/KOCW/document/2014/deagucatholic/kimhangkon1/… · 2010 Software Engineering 3 소프트웨어 설계 개념(1) • 소프트웨어

Embed Size (px)

Citation preview

  • Software Engineering

    2014 Kim, Haeng Kon

  • 2010 Software Engineering

    2

    ,

    .

    - G.Myers, 1978

  • 2010 Software Engineering

    3

    (1)

    ,

    , , ,

    : (What) (How)

  • 2010 Software Engineering

    4

    (2)

  • 2010 Software Engineering

    5

    (1)

    1)

    : ,

    ,

    : ,

  • 2010 Software Engineering

    6

    (2)

    ( )

    ()

    ( )

    ()

  • 2010 Software Engineering

    (3)

    2)

    7

  • 2010 Software Engineering

    8

    (Data structure design)

    (Architecture design)

    (Interface design)

    ,

    (Procedure design)

  • 2010 Software Engineering

    9

    (structured design)

    , ,

    ( )

    Yourdon/Coad

    Jackson, Warnier-Orr

    (object-oriented design)

    (=+)

    Yourdon, Sheller/Meller, Rumbaugh, Booch...

  • 2010 Software Engineering

    (Module) (Identifiable unit),

    .

    (Abstraction)

    (Modularity)

    (Information Hiding)

    (Complexity)

    (System Structure)

    10

  • 2010 Software Engineering

    11

    (design principles)

    (Modularity)

    (Abstraction)

    (Information hiding)

    (Stepwise refinement)

    (Structure)

  • 2010 Software Engineering

    12

    (Modularity) (1)

    ?

    ?

    (cohesion)

    (coupling)

    : :

    1 4

    5

    6 3

    2

    1 2 3

    4 5

    6

    C(p1) C(p2) E(p1) E(p2) E(p1p2) > E(p1) E(p2)

  • 2010 Software Engineering

    13

    (Modularity) (2)

    (Module)

    (subsystem), (subroutine), (work

    unit)

    , ,

    , , , ,

  • 2010 Software Engineering

    14

    (Abstraction)

    (Functional Abstraction)

    (Data Abstraction)

    ( = + )

    (Control Abstraction)

  • 2010 Software Engineering

    15

    (Information hiding)

    ,

    (Encapsulation)

    , ,

  • 2010 Software Engineering

    16

    (Stepwise refinement)

    (Wirth )

    (, )

  • 2010 Software Engineering

    17

    (Structure)

    ,

    Fan-In

    Fan-Out

  • 2010 Software Engineering

    18

    (1)-

    (Coupling)

    :

    (Ripple Effect)

    (Data coupling)

    (Stamp coupling)

    (Control coupling)

    (Common coupling)

    (Content coupling)

  • 2010 Software Engineering

    19

    (2)-

    1) Data Coupling( )

    2) Stamp Coupling( )

    3) Control Coupling( )

    4) Common Coupling( ) (global data area)

    5) Content Coupling( )

  • 2010 Software Engineering

    20

    (3)-

    (Cohesion)

    :

    (Functional Cohesion)

    (Sequential Cohesion)

    (Communicational Cohesion)

    (Procedural Cohesion)

    (Temporal Cohesion)

    (Logical Cohesion)

    (Coincidental Cohesion)

  • 2010 Software Engineering

    21

    (4)-

    1) (Functional Cohesion)

    ex) ,

    2) (Sequence Cohesion)

    ex)

    3) (Communication Cohesion)

    ex)

    4) (Procedural Cohesion)

    ex) :

  • 2010 Software Engineering

    22

    (5)-

    5) (Temporal Cohesion)

    ex)

    6) (Logical Cohesion)

    ex)

    7) (Coincidential Cohesion)

    ex)

  • 2010 Software Engineering

    23

    (6)

    ?

    ?

    ()

    ?

    ?

    ?

    Yes

    No

    Yes

    No

    Yes

    No

    ?

    ?

    ()

    ?

    ?

    ?

    Yes

    No

    Yes

    No

    Yes

    No

  • 2010 Software Engineering

    24

    (1)

    ,

    (transition flow)

    (transaction flow)

  • 2010 Software Engineering

    25

    (2)

    comment

    Module

    (/)

    ()

  • 2010 Software Engineering

    26

    (3)

    (transition flow)

    DFD

  • 2010 Software Engineering

    27

    (4)

  • 2010 Software Engineering

    28

    (5)

  • 2010 Software Engineering

    29

    (6)

    (transaction flow)

    : ,

    , , ,

    DFD

  • 2010 Software Engineering

    30

    (7)

    DFD

  • 2010 Software Engineering

    31

    (1)

    Module

    :

    :

    ( )

    : h/w s/w

  • 2010 Software Engineering

    32

    (2)

    (flow chart)

    N-S (Nassi-Schneiderman Chart)

    (pseudo code)

    (decision table)

    (decision diagram)

    PDL(Program Design Language)

    (state transition diagram)

    (action diagram)

  • 2010 Software Engineering

    33

    (3)

    ( , :)

    /* */

    /* */

    /* */

    /* */

    = 0

    = 1

    >

    := ().

    ( : , )

    +=( - )

    +:=1

    .

  • 2010 Software Engineering

    34

    JSP(Jackson system of Programming)

    Warnier

  • 2010 Software Engineering

    35

    JSP (1)

    JSP : Jackson System of Programming

  • 2010 Software Engineering

    36

    JSP (2)-

    (Data Step)

    (Program Step)

    (Operation Step)

    (Text Step)

    JSP . /

    JSP tree

  • 2010 Software Engineering

    37

    JSP (3)-JSP

  • 2010 Software Engineering

    38

    JSP (4)-

    ,

    .

    ,

    . ,

    .

  • 2010 Software Engineering

    39

    JSP (5)-

  • 2010 Software Engineering

    40

    JSP (6)-

    /

  • 2010 Software Engineering

    41

    JSP (7)-

    1) file file

    2) file

    3)

    4)

    5) ()

    6) ()

    7)

    8)

    9)

    10)

    11)

    12)

    13)

    14) file file

    15) file

    16) file

  • 2010 Software Engineering

    42

    JSP (8)-

    Text

  • 2010 Software Engineering

    43

    Warnier (1)

    (1)

    (1)

    (1)

    (1)

    (1)

    (1)

    (1)

  • 2010 Software Engineering

    44

    Warnier (2)

    (m)

    (n)

    (0-1)

    (0-1)

    (1)

    (1)

    (n)

    (1)

    (1)

    (0-1)

    (0-1)

    (1)

    +

  • 2010 Software Engineering

    45

    Warnier (3)

  • 2010 Software Engineering

    46

    Warnier (4)

    Program

  • 2010 Software Engineering

    47

    Focus