Nh pậ  môn  Công nghệ h cọ  Ph nầ  m mề Introduction to Software Engineering

Department of Software Engineering Faculty of Information Technology Hanoi University of Technology TEL: 04­8682595  FAX: 04­8692906  Email: cnpm@it­hut.edu.vn

ª  Dept. of SE, 2001 SE­IV.1

HUT, Falt.  of  IT

Ph nầ  IV

Thi

tế  kế và L pậ  trình

Design and Programming

Ch

ngươ  6:

Ph

ngươ  pháp thi

tế  kế hệ th ngố

tế  kế hệ th ngố  là gì?   tế  kế hệ  ngươ  pháp thi

ª  Dept. of SE, 2001 SE­IV.2

6.1. Thi 6.2. Ph th ngố  HUT, Falt.  of  IT

6.1.

Thi

tế  kế hệ th ngố  là

gì?

• Là thi

cượ  hệ th ngố  th aỏ

tế  kế c uấ  hình ph nầ  c ngứ  và c uấ   trúc ph nầ  m mề  (g mồ  cả ch cứ  năng và  dữ li uệ ) để có đ mãn các yêu c uầ  đề ra

• Có thể xem như Thi

tế  kế c uấ  trúc

tế  kế

(WHAT), chứ không ph iả  là Thi Logic (HOW)

ª  Dept. of SE, 2001 SE­IV.3

HUT, Falt.  of  IT

Quy trình thi

tế  kế hệ th ngố

• Phân chia mô hình phân tích ra các hệ

con

• Tìm ra sự t

ngươ  tranh (concurrency)

trong hệ th ngố

• Phân bố các hệ con cho các bộ xử lý

ho cặ  các nhi mệ  vụ (tasks)

tế  kế giao di nệ cượ  cài đ tặ  qu nả  trị dữ

• Phát tri nể  thi • Ch nọ  chi nế  l  HUT, Falt.  li uệ of  IT

ª  Dept. of SE, 2001 SE­IV.4

Quy trình thi

tế  kế hệ th ngố

(ti pế ) • Tìm ra ngu nồ  tài nguyên chung và cơ

chế đi uề  khi nể  truy nh pậ  chúng

• Thi

tế  kế cơ chế đi uề  khi nể  thích h pợ   cho hệ th ngố , kể cả qu nả  lý nhi mệ  vụ cượ  xử lý

• Xem xét các đi uề  ki nệ  biên đ

như thế nào

• Xét duy tệ  và xem xét các th aỏ  hi pệ

(trade­offs)

ª  Dept. of SE, 2001 SE­IV.5

HUT, Falt.  of  IT

Các đi mể  l uư  ý khi thi

tế  kế hệ

th ngố cượ  lu ngồ  dữ li uệ  từ

(1) Có thể trích đ

hệ th ngố : đó là ph nầ  n iộ  dung đ cặ  tả  yêu c uầ  và giao di nệ

(2) Xem xét t

iố   uư  tài nguyên ki nế  trúc

lên hệ th ngố  r iồ  quy tế  đ nhị

ki nế  trúc (3) Theo quá trình bi nế  đ iổ  dữ li uệ , hãy  cượ  ki nế  trúc

xem nh ngữ  ch cứ  năng đ như thế nào

ª  Dept. of SE, 2001 SE­IV.6

HUT, Falt.  of  IT

Các đi mể  l uư  ý (ti pế )

l

(4) Từ ki nế  trúc các ch cứ  năng theo (3), hãy  iạ , từ đó chuy nể  sang  tế  kế chi

ngươ  trình và thi

xem xét và ch nhỉ ki nế  trúc ch ti

tế

các đ nơ  vị ch

(5) Quy tế  đ nhị

ngươ  trình theo  các ch cứ  năng c aủ  hệ ph nầ  m mề  có d aự   theo lu ngồ  dữ li uệ  và phân chia ra các  thành ph nầ (6) Khi c uấ  trúc ch

ngươ  trình l nớ  quá, ph iả

phân chia nhỏ h nơ  thành các môđun  ª  Dept. of SE, 2001 SE­IV.7

HUT, Falt.  of  IT

Các đi mể  l uư  ý (ti pế )

(7) Xem xét dữ li uệ  vào­ra và các t pệ

ngươ  trình. Truy

dùng chung c aủ  ch c pậ  t pệ  t

iố   uư

(8) Hãy nghĩ xem để có đ

tế

cượ  nh ngữ  thi ngươ  pháp

kế trên thì nên dùng ph lu nậ  và nh ngữ  kỹ thu tậ  gì ?

ª  Dept. of SE, 2001 SE­IV.8

HUT, Falt.  of  IT

Thi

tế  kế hệ th ngố

• Thi

tế  kế hệ th ngố

– Thi – Thi

tế  kế hệ th ngố  ph nầ  c ngứ  [(1), (2)] tế  kế hệ th ngố  ph nầ  m mề  [(3)­(7)]

• Thi

tế  kế hệ th ngố  ph nầ  m mề tế  kế t pệ  (file design) [(7)] tế  kế ch cứ  năng hệ th ngố  [(3)­(6)]

– Thi – Thi

ª  Dept. of SE, 2001 SE­IV.9

HUT, Falt.  of  IT

6.2 Ph

ngươ  pháp thi

tế  kế hệ

• Ph

ngươ  pháp thi

• Ngoài ra còn các ph

th ngố tế  kế c uấ  trúc hóa  (Structured Design) c aủ  Constantine ngươ  pháp khác,  tế  kế t ngổ  h pợ

ngươ  pháp thi như Ph (Composite Design) c aủ  Myers

ª  Dept. of SE, 2001 SE­IV.10

HUT, Falt.  of  IT

Thi

tế  kế c uấ  trúc hóa

• B tắ  ngu nồ  từ  modularity, top­down

design, structured programming ngươ  pháp thi

• Còn xem như Ph

tế  kế

ngướ  lu ngồ  dữ li uệ  (Data flow­oriented

h design)

• Quy trình 6 b

ngươ  trình; (4) xác đ nhị

cướ : (1) t oạ  ki uể  lu ngồ  thông  tin;  (2) chỉ ra biên c aủ  lu ngồ ; (3) ánh xạ DFD  sang c uấ  trúc ch  phân  c pấ  đi uề  khi nể ; (5) tinh l cọ  c uấ  trúc; (6) ch nọ   mô tả ki nế  trúc

ª  Dept. of SE, 2001 SE­IV.11

HUT, Falt.  of  IT

Thi

tế  kế c uấ  trúc hóa

(1) Môđun và tham số (2) L uư  đồ bong bóng và c uấ  trúc phân c pấ

(3) Ph

(Source/Transform/Sink) và TR (Transaction)

(4) Phân tích c uấ  trúc hóa (5) Chu nẩ  phân chia môđun

L uư  đồ bong bóng (Bubble chart) C uấ  trúc phân c pấ  (Hierarchical structured chart) ngươ  pháp phân chia STS

ª  Dept. of SE, 2001 SE­IV.12

HUT, Falt.  of  IT

(1) Môđun

• Dãy các l nhệ  nh mằ  th cự  hi nệ  ch cứ

đ cộ  l pậ

năng (function) nào đó cượ  biên d chị cượ  d chị

• Có thể đ • Môđun đã đ

có thể đ

cượ

môđun khác g iọ  t

iớ • Giao di nệ  gi aữ  các môđun thông qua

các bi nế  tham số (arguments)

ª  Dept. of SE, 2001 SE­IV.13

HUT, Falt.  of  IT

(2a) L uư  đồ bong bóng (Bubble  chart)

• Bi uể  thị lu ngồ  xử lý dữ li uệ • Ký pháp

Tên dữ li uệ Tên dữ li uệ

Tên ch cứ năng

(Dữ li uệ vào) (Bong bóng) (Dữ li uệ ra)

ª  Dept. of SE, 2001 SE­IV.14

HUT, Falt.  of  IT

(2b) C uấ  trúc phân c pấ   (Hierarchical structured chart)

• Là phân c pấ  bi uể  thị quan hệ phụ thu cộ  gi aữ   các môđun và giao di nệ  (interface) gi aữ  chúng

• Các quy

cướ :

– Không liên quan đ nế  trình tự g iọ  các môđun, nh ngư

ng mầ  đ nhị là từ trái qua ph iả

– M iỗ  môđun xu tấ  hi nệ  trong c uấ  trúc 1 l nầ , có thể

đ cượ  g iọ  nhi uề  l nầ

– Quan hệ trên d iướ : không c nầ  nêu số l nầ  g iọ

ª  Dept. of SE, 2001 SE­IV.15

HUT, Falt.  of  IT

Hierarchical structured chart

• Các quy

cướ  (ti pế ):

– Tên môđun bi uể  thị ch cứ  năng (“làm gì”), đ tặ  tên

iướ  t ngổ  h pợ  l iạ  sẽ

ngươ   ngứ  phía

sao cho các môđun ở phía d bi uể  thị đủ ch cứ  năng c aủ  môđun t trên

– Bi nế  số (arguments) bi uể  thị giao di nệ  gi aữ  các

ị ọ  có thể

môđun, bi nế  số ở các môđun g iọ /b g i khác nhau

– Mũi tên v iớ  đuôi tròn tr ngắ  bi uể  thị dữ li uệ , đuôi

tròn đen (h ngồ ) bi uể  thị flag

– Chi uề  c aủ  mũi tên là h

ngướ  truy nề  tham số SE­IV.16 ª  Dept. of SE, 2001

HUT, Falt.  of  IT

Hierarchical structured chart

Module A

1

Module B Module C Module D

Luồng dữ liệu Module E

Luồng flag

ª  Dept. of SE, 2001 SE­IV.17

HUT, Falt.  of  IT

(3) Ph

ngươ  pháp phân chia STS, TR

• Thi – Ph

tế  kế c uấ  trúc: ngươ  pháp phân chia STS

(Source/Transform/Sink:  Ngu nồ /Bi nđ i

ế ổ /H pthấ

– Ph

• Minh h aọ  phân chia ch cứ  năng theo

bong bóng c aủ  DFD (bi uể  đồ lu ngồ  dữ  li uệ )

ụ) ngươ  pháp phân chia TR (Transaction)

ª  Dept. of SE, 2001 SE­IV.18

HUT, Falt.  of  IT

(3a) Ph

ngươ  pháp phân chia STS

1) Chia đ iố  t

ngượ  “bài toán” thành các

ch cứ  năng thành ph nầ

F3 F5 F1 F4

Bài toán Problem F2

ª  Dept. of SE, 2001 SE­IV.19

HUT, Falt.  of  IT

Quy tế  đ nhị

lu ngồ  dữ li uệ   chính 2) Tìm ra lu ngồ  dữ li uệ  chính đi qua các ch cứ   iớ  đ uầ  ra (Output)

năng: từ đ uầ  vào (Input) t

INPUT

F3

F5

F1 F4

Lu ngồ  dữ  li uệ  chính F2

OUTPUT

ª  Dept. of SE, 2001 SE­IV.20

HUT, Falt.  of  IT

Quy tế  đ nhị

bong bóng và dữ  li uệ

3) Theo lu ngồ  dữ li uệ  chính: thay t ngừ

ch cứ  năng b iở  bong bóng và làm rõ dữ  li uệ  gi aữ  các bong bóng

Data1

Data2

Data3

Data4

Data5

Data6

F1 F2 F3 F4 F5

INPUT

OUTPUT

ª  Dept. of SE, 2001 SE­IV.21

HUT, Falt.  of  IT

Từ sơ đồ bong bóng sang  sơ đồ phân c pấ  vị trí tr uừ  t

ngượ  hóa t

iố  đa

4) Xác đ nhị

đ uầ  vào và đ uầ  ra

Data1

Data2

Data3

Data4

Data5

Data6

F1 F2 F4 F5

INPUT

OUTPUT

Trừu tượng hóa tối đa đầu ra

F3 Trừu tượng hóa tối đa đầu vào

Transform Module

Sink Module

Source Module

ª  Dept. of SE, 2001 SE­IV.22

HUT, Falt.  of  IT

5) Chuy nể  sang sơ đồ phân c pấ

Data1

Data2

Data3

Data4

Data5

Data6

INPUT

OUTPUT

Trõu t­îng hãa tèi ®a ®Çu vµo

Trõu t­îng hãa tèi ®a ®Çu ra

Trans fo rm Mo dule

S ink Mo dule

S o urc e  Mo dule

F1 F3 F4 F2 F5

Control  Module

0

Source Module

Transform  Module

Sink  Module

2

1  ª  Dept. of SE, 2001 3 SE­IV.23

HUT, Falt.  of  IT

6) Xác đ nhị

các tham số gi aữ  các môđun

d aự  theo quan hệ phụ thu cộ

Module 0

3

5

3

5

0

Module 1

Module 2

Module 3

2 1 3

ª  Dept. of SE, 2001 SE­IV.24

HUT, Falt.  of  IT

7) V iớ  t ngừ  môđun (Source, Transform, Sink)  iạ  các  iạ  áp d ngụ  cách phân chia STS l pặ  l l ngườ  h pợ   cướ  từ 1) đ nế  6). Đôi khi có tr b không chia thành 3 mô đun nhỏ mà thành 2  ho cặ  1

8) Ti pế  t cụ  chia đ nế  m cứ  c uấ  trúc lôgic khi

ngươ   ngứ  v iớ  thu tậ  toán đã  bi

tế  thì

môđun t cượ  c uấ  trúc phân  iạ  ta đ d ngừ . T ngổ  h pợ  l c pấ : m iỗ  nút là 1 môđun v iớ  số nhánh phía  d

iướ  không nhi uề  h nơ  3

ª  Dept. of SE, 2001 SE­IV.25

HUT, Falt.  of  IT

(3b) Ph • Khi không t nồ  t

ngươ  pháp phân chia TR iạ  lu ngồ  dữ li uệ  chính, mà

dữ li uệ  vào có đ cặ  thù khác nhau như nh ngữ   ngu nồ  khác nhau xem như các Giao d chị  khác  nhau

ngứ  v iớ  1 môđun xử lý nó

• M iỗ  giao d chị • Phân chia môđun có thể: theo kinh nghi mệ ;

iố  đa

cướ  t theo tính đ cộ  l pậ  môđun; theo số b trong 1 môđun (ví dụ < 50) và theo chu nẩ

ª  Dept. of SE, 2001 SE­IV.26

HUT, Falt.  of  IT

(4) Phân tích c uấ  trúc hóa

• Xác đ nhị  lu ngồ  dữ li uệ • Lu ngồ  tuy nế  tính thì theo phân chia

STS

• Lu ngồ  phân nhánh thì theo phân chia

TR

ª  Dept. of SE, 2001 SE­IV.27

HUT, Falt.  of  IT

(5) Chu nẩ  phân chia môđun

• Tính đ cộ  l pậ : Độ k tế  h pợ  (coupling) và

Độ b nề  v ngữ  (strength) • 5 tiêu chu nẩ  c aủ  Myers

– Decomposability – Composability – Understandability – Continuity – Protection

ª  Dept. of SE, 2001 SE­IV.28

HUT, Falt.  of  IT

tế  kế c uấ  trúc

Đ cặ  tr ngư  c aủ  thi hóa • Dễ thích  ngứ  v iớ  mô hình vòng đ iờ  thác

cướ  do tính thân thi nệ  cao

tế  kế theo ti nế  trình, không h pợ  v iớ   tế  kế xử lý theo lô (batch system)

n • Thi thi

iả  quy tế

• Dùng phân chia ­ k tế  h pợ  để gi tính ph cứ  t pạ  c aủ  hệ th ngố

• Topdown trong phân chia môđun • Kỹ thu tậ  l pậ  trình hi uệ  quả

ª  Dept. of SE, 2001 SE­IV.29

HUT, Falt.  of  IT

Ch

ngươ  7:

Kỹ thu tậ  thi

tế  kế ch

ngươ

trình

ngươ  trình là gì ? tế  kế ch

ngươ  trình

7.1 Thi 7.2 Ph 7.3 Công cụ thi

tế  kế ch ngươ  pháp thi tế  kế

ª  Dept. of SE, 2001 SE­IV.30

HUT, Falt.  of  IT

7.1 Thi

ngươ  trình là

tế  kế chi ti

• Là thi

tế  kế ch gì ? tế  c uấ  trúc bên trong  tế  kế tính năng  ngươ   ngứ

c aủ  ph nầ  m mề : thi t ngừ  môđun và giao di nệ  t

• C uấ  trúc ngoài c aủ  ph nầ  m mề : thi

tế

kế hệ th ngố

• Trình tự xử lý bên trong: Thu tậ  toán

(gi

iả  thu tậ , Algorithm); Logic

ª  Dept. of SE, 2001 SE­IV.31

HUT, Falt.  of  IT

7.2 Ph

tế  kế ch

ngươ

ngươ  pháp thi trình

• Không có tr ngạ  thái mờ (fuzzy), để

tế  kế c uấ  trúc trong đúng

đ mả  b oả  thi đ nắ

• Ngôn ngữ l pậ  trình phù h pợ • Tri nể  khai đúng đ nắ  đ cặ  tả ch cứ  năng

các môđun và ch ph

ngươ  pháp lu nậ  thi

tế

ngươ  trình nhờ  tế  kế chi ti tế  kế dễ chu nẩ  hóa

• Dùng quy trình thi cướ

t ngừ  b  HUT, Falt.  of  IT

ª  Dept. of SE, 2001 SE­IV.32

Kỹ thu tậ  thi

tế  kế ch

ngươ

trình

• Kỹ thu tậ  thi

tế  kế mô hình hệ ph nầ

m mề – H ngướ  ti nế  trình (process) : Kỹ thu tậ

thi

tế  kế c uấ  trúc đi uề  khi nể

– H ngướ  c uấ  trúc dữ li uệ  (data): Kỹ thu tậ

thi

tế  kế c uấ  trúc dữ li uệ

– H ngướ  sự v tậ  / đ iố  t

thu tậ  thi

tế  kế h

ngượ  (object): Kỹ  ngượ

ngướ  đ iố  t

ª  Dept. of SE, 2001 SE­IV.33

HUT, Falt.  of  IT

7.2.1 L pậ  trình c uấ  trúc hóa • Khái ni mệ  cơ b nả : tu nầ  tự, nhánh (ch nọ ),

l pặ ; c uấ  trúc mở r ngộ , ti nề  xử lý, h uậ  xử lý

• Nh ngữ  đi mể  l

iợ  khi thi

tế  kế thu tậ  toán

– Tính đ cộ  l pậ  c aủ  môđun: chỉ quan tâm

vào­ra

ngươ  trình dễ hi uể

ngươ  trình th cự  hi nệ

– Làm cho ch – Dễ theo dõi ch – Hệ ph cứ  t pạ  sẽ dễ hi uể  nhờ ti pế  c nậ

phân c pấ

ª  Dept. of SE, 2001 SE­IV.34

HUT, Falt.  of  IT

Lo iạ  bỏ GOTO

• GOTO dùng để làm gì? – Cho phép th cự  hi nệ  các b

cướ  nh yả  đ nế  m tộ

• T iạ  sao c nầ  lo iạ  bỏ GOTO ?

nhãn nh tấ  đ nhị

• Ph ngươ  pháp lo iạ  bỏ GOTO • Có thể lo iạ  bỏ GOTO trong m iọ  tr

ngườ

h pợ ?

– Phá vỡ tính c uấ  trúc c aủ  l pậ  trình c uấ  trúc hóa

• Thế nào là “kỹ năng l pậ  trình c uấ  trúc”  HUT, Falt.  of  IT

ª  Dept. of SE, 2001 SE­IV.35

L uư  ý khi thi

tế  kế ch

ngươ

trình • Phụ thu cộ  vào kỹ năng và kinh nghi mệ

c aủ  ng

iườ  thi

tế  kế • C nầ  chu nẩ  hóa tài li uệ  đ cặ  tả thi

tế  kế

tế chi ti • Khi thi

tế  kế c uấ  trúc đi uề  khi nể  c aủ

iả  thu tậ , vì theo các quy

cướ  c uấ  trúc  iườ   tế  kế bị h nạ  chế, bó bu cộ  theo khuôn

gi hóa nên đôi khi tính sáng t oạ  c aủ  ng thi m uẫ  đã có

ª  Dept. of SE, 2001 SE­IV.36

HUT, Falt.  of  IT

7.2.2 L uư  đồ c uấ  trúc hóa

ngượ  hóa thủ t cụ

• Tác d ngụ  c aủ  l uư  đồ (flow chart) • Quy ph mạ  (discipline) • Tr uừ  t • L uư  đồ c uấ  trúc hóa

cướ  gi

iả  thu tậ

– C uấ  trúc đi uề  khi nể  cơ b nả – Chi ti tế  hóa t ngừ  b – Thể hi nệ  đ

cượ  trình tự đi uề  khi nể  th cự

hi nệ  HUT, Falt.  of  IT

ª  Dept. of SE, 2001 SE­IV.37

L uư  đồ Nassi­Shneiderman (NS chart by IBM) a­ N iố  (concatination)        b­ Ch nọ  (selection)

Xử lý 1

ĐIều kiện

Y N

Xử lý 2

Xử lý 1

Xử lý 2

c­ Đa nhánh (CASE)           d­ L pặ  (repetition)

TT1

ĐIều kiện

DO WHILE (Đkiện)

Xử lý

TT2

Xử lý 1

Xử lý

TT3 Xử  lý 3

REPEAT UNTIL (Đkiện)

Xử lý 2

ª  Dept. of SE, 2001 SE­IV.38

HUT, Falt.  of  IT

L uư  đồ Phân tích bài toán (PAD chart by Hitachi) a­ N iố  (concatination)        b­ Ch nọ  (selection)

Xử lý 1

Xử lý 1

Trục  chính

Điều kiện

Xử lý 2

Xử lý 2

c­ Đa nhánh (CASE)           d­ L pặ  (repetition)

TT1

TT2

Đ I ề u

Xử lý

Xử lý

WHILE  Đkiện

UNTIL   Đkiện

TT3

TT4

k i ệ n

Xử lý  1 Xử lý  2 Xử lý  3 Xử lý  4

ª  Dept. of SE, 2001 SE­IV.39

HUT, Falt.  of  IT

ngươ  pháp Gi cắ ­

7.2.3 Về Ph s nơ          (Jackson’s method) • JSP: Jackson Structured Programming • Các ký pháp:

– Cơ sở (elementary) – Tu nầ  tự (sequence) – L pặ – Rẽ nhánh

ª  Dept. of SE, 2001 SE­IV.40

HUT, Falt.  of  IT

Trình tự thi

tế  kế chung

• Thi • Thi

tế  kế c uấ  trúc dữ li uệ  (Data step) tế  kế c uấ  trúc ch

ngươ  trình

(Program step)

tế  kế thủ t cụ  (Operation step) tế  kế đ cặ  tả ch

ngươ  trình (Text

• Thi • Thi step)

ª  Dept. of SE, 2001 SE­IV.41

HUT, Falt.  of  IT

7.2.4 Về Ph

ngươ  pháp Wa­ny

(Warnier’s method)

• Khái ni mệ  chung • Trình tự thi tế  kế

ngươ  trình

– Thi – Thi – Thi – Thi – Thi – Thi

tế  kế dữ li uệ  ra tế  kế dữ li uệ  vào tế  kế c uấ  trúc ch tế  kế l uư  đồ tế  kế l nhệ  thủ t cụ tế  kế đ cặ  tả chi ti

tế

ª  Dept. of SE, 2001 SE­IV.42

HUT, Falt.  of  IT

Ch

ngươ  8:

Kỹ thu tậ  l pậ  trình

sử phát tri nể  c aủ  ngôn ngữ l pậ

8.1 L chị trình

8.2 C uấ  trúc ch

ngươ  trình

­ C uấ  trúc dữ li uệ  dễ hi uể ­ C uấ  trúc thu tậ  toán dễ hi uể

8.3 Các công cụ l pậ  trình

ª  Dept. of SE, 2001 SE­IV.43

HUT, Falt.  of  IT

8.1 L chị

sử ngôn ngữ l pậ

• Các ngôn ngữ thế hệ thứ nh tấ :

trình

– Ngôn ngữ l pậ  trình mã máy (machine code) – Ngôn ngữ l pậ  trình assembly • Các ngôn ngữ thế thế thứ hai:

• Các ngôn ngữ thế hệ thứ ba

– FOTRAN, COBOL, ALGOL, BASIC – Phát tri nể  1950­1970

ngượ

• Các ngôn ngữ thế hệ thứ tư

– Ngôn ngữ l pậ  trình c pấ  cao v nạ  năng (c uấ  trúc) – L pậ  trình h – L pậ  trình h ngướ  đ iố  t ngướ  suy di nễ  – logic

– Truy v nấ – Các ngôn ngữ hỗ trợ quy tế  đ nhị

ª  Dept. of SE, 2001 SE­IV.44

HUT, Falt.  of  IT

8.2 C uấ  trúc dữ li uệ  dễ hi uể

• Nên xác đ nhị

t

tấ  cả các c uấ  trúc dữ

li uệ  và các thao tác c nầ  th cự  hi nệ  trên  t ngừ  c uấ  trúc dữ li uệ

• Vi cệ  bi uể  di nễ /khai báo các c uấ  trúc

dữ li uệ  chỉ nên th cự  hi nệ  ở nh ngữ  mô  đun sử d ngụ  tr cự  ti pế  dữ li uệ

• Nên thi

tế  l pậ  và sử d ngụ  từ đi nể  dữ

li uệ  khi thi

tế  dữ li uệ

ª  Dept. of SE, 2001 SE­IV.45

HUT, Falt.  of  IT

C uấ  trúc thu tậ  toán dễ hi uể • Algorithm • Structured coding và 9 đi mể  l uư  ý:

ngươ  trình / môđun nên vi

tế  trên 1 trang

– Tuân theo quy cách l pậ  trình – M tộ  đ uầ  vào, m tộ  đ uầ  ra  – Tránh GOTO, trừ khi ph iả  ra kh iỏ  l pặ  và d ngừ – Dùng comments h pợ  lý – Dùng tên bi nế  có nghĩa, g iợ  nhớ  – C uấ  trúc l ngồ  rõ ràng – Tránh dùng CASE / switch nhi uề  ho cặ  l ngồ  nhau – Mã ngu nồ  1 ch – Tránh vi

tế  nhi uề  l nhệ  trên 1 dòng

ª  Dept. of SE, 2001 SE­IV.46

HUT, Falt.  of  IT

IF THEN / IF THEN ELSE

(cid:0) 0

Ngôn ngữ C

ĐK Công vi cệ 1

if (điều kiện)

{ công việc 1}

else

{công việc 2}

PASCAL if đi uề ki nệ then begin công vi cệ 1 end; else begin công vi cệ 2 end

=0 Công vi cệ 2

ª  Dept. of SE, 2001 SE­IV.47

HUT, Falt.  of  IT

CASE / switch

;

PASCAL CASE  OF     gtrị1: ;     gtrị2: ;      ...........   gtr Nị ELSE    ; END;

Ngôn ngữ C switch ()  {    case ; [break;]    case ;  [break;]    case ;  [break;]    [default : ; [break;]  ] }

SE­IV.48 ª  Dept. of SE, 2001

HUT, Falt.  of  IT

FOR  TO / DOWNTO

B tắ  đ uầ

Bi nế  đi uề  khi nể   >  Giá trị cu iố

KThúc

Bi nế  đi uề  khi nể  = Giá trị đ uầ

Bi nế  đi uề  khi nể  = giá trị ti pế  theo c aủ  bi nế  đi uề  khi nể )

Th cự  hi nệ  

ª  Dept. of SE, 2001 SE­IV.49

HUT, Falt.  of  IT

PASCAL

ể := GTđ uầ    TO GTCu iố

ế FOR bi nđkhi n DO

begin

ứ 2]

ể ứ 1] ; [bi uth cĐK

ể ]; [bi uth c

tệ : có các l nhệ thoát break; continue;

end; Ngôn ngữ C for ( [bi uth c ể ) { ; }

Đ cặ bi exit  HUT, Falt.  of  IT

ª  Dept. of SE, 2001 SE­IV.50

DO WHILE

B tắ  đ uầ

Bi uể  th cứ  Logic

Sai

Công vi cệ

KThúc

Đúng

ª  Dept. of SE, 2001 SE­IV.51

HUT, Falt.  of  IT

DO

PASCAL While Bi uth cBoolean ể begin end;

>)

Ngôn ngữ C ể while (; }

• Ki mể  tra đi uề  ki nệ  tr

cướ  khi th cự

hi nệ • L iỗ  th

ngườ  g pặ : L pặ  vô h nạ

ª  Dept. of SE, 2001 SE­IV.52

HUT, Falt.  of  IT

REPEAT UNTIL

B tắ  đ uầ

Công vi cệ

Bi uể  th cứ  Logic

Sai

Kthúc

Đúng

ª  Dept. of SE, 2001 SE­IV.53

HUT, Falt.  of  IT

PASCAL Repeat until Bi uể _th cứ _Boolean;

Ngôn ngữ C do {

;

>);

} while ứ ể (

• Có sự khác nhau gi aữ  hai ngôn ngữ?

ª  Dept. of SE, 2001 SE­IV.54

HUT, Falt.  of  IT

Chú thích trong ch • T iạ  sao c nầ  đ tặ  các chú thích trong ch

ngươ  trình ngươ

trình ?

• Vị trí đ tặ  các chú thích trong ch

ngươ  trình

– Thành ph nầ / Module – L pớ – Hàm/thủ t cụ – Các vị trí đ cặ  bi • M tộ  số quy đ nhị tệ  khác  khi đ tặ  chú thích:

– Ng nắ  g nọ – G iợ  nhớ

ª  Dept. of SE, 2001 SE­IV.55

HUT, Falt.  of  IT

8.3 Các công cụ l pậ  trình

• Environments: DOS, WINDOWS,

UNIX/LINUX

• Editors, Compilers, Linkers, Debuggers • TURBO C, PASCAL • MS C, Visual Basic, Visual C++, ASP • UNIX/LINUX: C/C++, gcc (Gnu C

Compiler)

• JAVA, CGI, perl • C#, .NET

ª  Dept. of SE, 2001 SE­IV.56

HUT, Falt.  of  IT