II. Kỹ nghệ phần mềm
3. Mụi trường cụng trỡnh phần mềm: Nú trợ giỳp sản sinh ra cỏc hệ thống lớn, thọ mà chi phớ cho
chi phớ cho việc bảo trỡ cũn vượt quỏ chi phớ phỏt triền và được sản sinh ra bởi một đội chứ khụng phải là một người lập trỡnh riờng rẽ. Nú trợ giỳp cho tất cả mọi hoạt động phỏt triển và bảo trỡ.
Thực tế biờn giới giữa cỏc loại đú khụng rừ ràng.
b.Cỏc mụi trường lập trỡnh
Cỏc mụi trường lập trỡnh cú thể được nhúm lại thành cỏc lớp sau: i) Cỏc mụi trường mục đớnh khỏi quỏt
ii) Cỏc mụi truờng hướng ngụn ngữ. Mụi trường lập trỡnh cú thể cú cỏc cụng cụ sau:
i) Phần mềm giao tiếp mỏy chủ - mỏy khỏch.ii) Phần mềm bắt chước mỏy khỏch. ii) Phần mềm bắt chước mỏy khỏch.
iii) Cỏc bộ biờn dịch chộo.
iv) Cỏc cụng cụ thử nghiệm và gỡ lỗi. v) Cỏc cụng cụ quản lý cấu hỡnh. vi) Cỏc cụng cụ giao tiếp.
c.Bàn thợ CASE
Cỏc thành phần điển hỡnh của bàn thợ CASE là: i) Tỷ lệ soạn thảo biểu đồ.
ii) Cỏc tiện ớch phõn tớch thiết kế và kiểm tra. iii) Cỏc tiện ớch ngụn ngữ hỏi.
iv) Cỏc tiờn ớch từ điển dữ liệu. v) Cỏc tiện ớch sinh ra bỏo cỏo.
vi) Cỏc cụng cụ tạo dạng cho phộp việc định dạng màn hỡnh và tư liệu là được đặc tả. vii) Cỏc tiện ớch xuất nhập khẩu.
viii) Trợ giỳp cỏc bộ sinh mó cốt tự động từ thiết kế cú trong kho trung tõm.
Cỏc hệ bàn thợ CASE thường chủ yếu dựng dể phỏt triển cỏc hệ thống lý dữ liệu. Cú người đó minh định một số cỏc khiếm của bàn thợ CASE như sau:
i) Nú khụng thớch hợp được với cỏc cụng cụ chuẩn bị tư liệu khỏc. Tiện ớch xuất nhập thường là gắn với văn bản ASCII thường là gắn với văn bản ASCII
ii) Thiếu chuẩn hoỏ, trao đổi thụng tin giữa cỏc bàn thợ khỏc là khú khăn hoặc khụng thể iii)Thiếu tiện ớch cho phộp một kết nối vào một ứng dụng hoặc lớp ứng dụng.
iv) Tiện ớch để tạo ra tài liệu chất lượng cao thiếu tổng quỏt v) Tiện ớch lập biểu đồ là chậm chạp
3 Phong cỏch lập trỡnh
Phong cỏch lập trỡnh bao hàm một triết lớ về lập trỡnh, nhấn mạnh tới tớnh đơn giản và rừ ràng. Cỏc yếu tố của phong cỏch lập trỡnh bao gồm tài liệu (mức chương trỡnh gốc) bờn trong, phương phỏp khai bỏo dữ liệu, xõy dựng cõu lệnh, vào/ra.
Tài liệu bờn trong của chương trỡnh gốc bắt đầu với việc chọn lựa cỏc cỏc tờn gọi định danh (biến và nhón), vị trớ và thành phần của việc chỳ thớch, và cỏch tổ chức trực quan của chương trỡnh.
Việc lựa chọn cỏc tờn gọi định danh/tờn chớnh là điều kiện chủ chốt cho việc hiểu chương trỡnh. Những ngụn ngữ gịới hạn tờn biến hay nhón chỉ trong vài kớ tự tự nú đó mang ý nghĩa mơ hồ. Cho dự một chương trỡnh nhỏ thỡ một tờn gọi cú nghĩa cũng làm tăng tớnh dễ hiểu. Theo ngụn từ của mụ hỡnh cỳ phỏp/ngữ nghió, tờn cú ý nghĩa làm "đơn giản việc chuyển đổi từ cỳ phỏp chương trỡnh sang cấu trỳc ngữ nghĩa bờn trong".
Rừ ràng là: phần mềm phải chứa tài liệu bờn trong. Lời chỳ thớch cung cấp cho người phỏt triển một phương tiện truyền thụng với cỏc độc giả khỏc về chương trỡnh gốc. Lời chỳ thớch cú thể cung cấp một hướng dẫn rừ ràng dễ hiểu trong pha cuối cựng của kỹ nghệ phần mềm là bảo trỡ.
Cú nhiều hướng dẫn đó được đề nghị cho việc viết lời chỳ thớch. Cỏc chỳ thớch mở đầu và chỳ thớch chức năng là hai thành phần đũi hỏi cỏch tiếp cận khỏc nhau:
Lời chỳ thớch mở đầu nờn xuất hiện ở ngay đầu của mọi modul. Định dạng cho lời chỳ thớch như sau:
1. Một phỏt biểu về mục đớch chỉ rừ chức năng modul2. Mụ tả giao diện bao gồm: 2. Mụ tả giao diện bao gồm:
a) Một mẫu "dóy lời gọi" b) Mụ tả về mọi đối tượng b) Mụ tả về mọi đối tượng
c) Danh sỏch tất cả cỏc modul thuộc cấp.
3. Thảo luận về dữ liệu tương ứng (như cỏc biến quan trọng và những hạn chế giới hạn về cỏch dựng chỳng) và cỏc thụng tin quan trọng khỏc về cỏch dựng chỳng) và cỏc thụng tin quan trọng khỏc
4. Lịch sử phỏt triển bao gồm: a) Tờn người thiết kế modul (tỏc giả) a) Tờn người thiết kế modul (tỏc giả)
b) Tờn người xột duyệt (kiểm toỏn) và ngày thỏng.c) Ngày thỏng sửa đổi và mụ tả sửa đổi. c) Ngày thỏng sửa đổi và mụ tả sửa đổi.
Cỏc chỳ thớch chức năng được nhỳng vào bờn trong thõn của chương trỡnh gốc và được dựng để mụ tả cho cỏc hàm xử lý. Bờn cạnh đú lời chỳ thớch mụ tả nờn:
• Mụ tả cỏc khối chương trỡnh thay vỡ chỳ thớch cho từng dũng.
• Dựng dũng trống hay tụt lề để cho lời chỳ thớch cú thể được thuận tiện với chương trỡnh.
• Phải đỳng đắn: một lời chỳ thớch khụng đỳng hay gõy ra hiểu sai thỡ cũn tồi tệ hơn là khụng cú chỳ thớch nào cả.
Với những tờn gọi tượng trưng đỳng đắn và việc chỳ thớch tốt, việc làm tài liệu bờn trong thớch hợp sẽ được bảo đảm.
Khi một thiết kế thủ tục chi tiết được biểu diễn bằng cỏch dựng một ngụn ngữ thiết kế chương trỡnh thỡ tài liệu thiết kế cú thể được nhỳng trực tiếp vào trong văn bản chương trỡnh gốc như những cõu chỳ thớch. Kỹ thuật này đặc biệt cú ớch khi việc làm tài liệu được thực hiện trong hợp ngữ và giỳp đảm bảo rằng cả chương trỡnh thiết kế sẽ được bảo trỡ khi những thay đổi được thực hiện cho cả hai.
Tổ chức trực quan của chương trỡnh gốc như trong bản in là một đúng gúp quan trọng cho tớnh dễ đọc. Việc tụt lề chương trỡnh gốc chỉ ra kết cấu và khối logic của chương trỡnh sao cho những thuộc tớnh này là thấy được so với lề trỏi. Giống như việc chỳ thớch, cỏch tiếp cận tốt nhất là nờn để mở cho tranh luận. Việc tụt lề thủ cụng cú thể trở nờn phức tạp khi cú sự sửa đổi chương trỡnh và kinh nghiệm chỉ ra rằng khi đó tớch luỹ đủ hiểu biết thỡ sẽ tăng cuờng được việc để lề cho khớp. Cú lẽ cỏch tiếp cận tốt nhất là dựng bộ định dạng chương trỡnh tự động (như cụng cụ CASE: Visual Basic, Visual Studio, Edit Plus …) sẽ đặt đỳng việc tụt lề cho chương tỡnh gốc. Bằng cỏch xoỏ bỏ đi gỏnh nặng của việc làm tụt lề cho người lập trỡnh, cú thể cải thiện khuụn dạng chương trỡnh với tương đối ớt cụng sức.
3.2 Khai bỏo dữ liệu
Độ phức tạp và việc tổ chức cấu trỳc dữ liệu được xỏc định trong bước thiết kế. Phong cỏch khai bỏo dữ liệu được thiết lập khi chương trỡnh được sinh ra. Một số hướng dẫn tương đối đơn giản cú thể được lập ra để làm cho dữ liệu được dễ hiểu hơn và đơn giản hơn khi bảo trỡ.
Thứ tự khai bỏo dữ liệu nờn được chuẩn hoỏ cho dự ngụn ngữ lập trỡnh khụng cú yờu cầu bắt buộc nào về diều đú. Chẳng hạn, thứ tự khai bỏo cho một modul FOTRAN cú thể là:
1. Mọi khai bỏo tường minh (để cú chất lượng cao, mọi biến đều nờn khai bỏo):INTEGER, REAL, DOUBLE, PRECISION,... INTEGER, REAL, DOUBLE, PRECISION,...
2. Mọi khối dữ liệu toàn cục: COMMON/tờn khối/... 3. Mọi mảng cục bộ: DIMENSION tờn mảng và chiều 3. Mọi mảng cục bộ: DIMENSION tờn mảng và chiều 4. Mọi khai bỏo tệp: DEFINE, OPEN, CLOSE
Thứ tự tạo ra cỏc thuộc tớnh để dễ tỡm, cho phộp xỳc tiến kiểm thử, gỡ lỗi và bảo trỡ.
Khi cú nhiều tờn biến được khai bỏo trong một cõu lệnh thỡ việc sắp xếp theo trật tự chữ cỏi cho cỏc tờn gọi cú cựng cú giỏ trị. Tương tự, dữ liệu toàn cục cú nhón (như khối chung trong FOTRAN) cũng nờn được lập thứ tự theo bảng chữ.
Nếu thiết kế cú mụ tả trước cấu trỳc dữ liệu phức tạp thỡ nờn chỳ thớch những điểm đặc thự cố hữu trong việc cài đặt ngụn ngữ lập trỡnh. Chẳng hạn, cấu trỳc dữ liệu danh sỏch múc nối trong C hay kiểu dữ liệu người dựng xỏc định trong PASCAL cú thể yờu cầu tài liệu bổ sung cú chứa trong lời chỳ thớch của nú.
3.3 Xõy dựng cõu lệnh
Việc xõy dựng luồng logic phần mềm được thiết lập trong khi thiết kế việc xõy dựng từng cõu lệnh tuy nhiờn lại là một phần của bước lập trỡnh. Việc xõy dựng cõu lệnh nờn tuõn theo một qui tắc quan trọng: mỗi cõu lệnh nờn đơn giản và trực tiếp chương trỡnh khụng nờn bị xoắn tớt để đạt tớnh hiệu quả.
Nhiều ngụn ngữ lập trỡnh cho phộp nhiều cõu lệnh trờn một dũng. Khớa cạnh tiết kiệm khụng gian của tớnh năng này khú mà biện minh bởi tớnh khú đọc nảy sinh.
Cấu trỳc chương trỡnh và cỏc phộp toỏn điều kiện được chứa trong đoạn trờn đều bị che lấp bởi cỏch xõy dựng nhiều cõu lệnh trờn một dũng.
Cỏch xõy dựng cõu lệnh đơn và việc tụt lề minh hoạ cho cỏc đặc trưng logic và chức năng của đoạn này. Cỏc cõu lệnh chương trỡnh gốc riờng lẻ cú thể được đơn giản hoỏ:
• Việc trỏnh dựng cỏc phộp kiểm tra dữ liệu phức tạp
• Khử bỏ cỏc phộp kiểm tra điều kiện phủ định
• Dựng dấu ngoặc để làm sỏng tỏ cỏc biểu thức số học hay logic
• Dựng dấu cỏch và/hoặc cỏc ký hiệu dễ đọc để làm sỏng tỏ nội dung cõu lệnh.
• Suy nghĩ: Liệu ta cú thể hiểu được điều này nếu ta khụng là người lập trỡnh cho nú khụng?
• Từng hướng dẫn trờn đều cố gắng "giữ cho đơn giản"
3.4 Vào/ra
Phong cỏch vào và ra được thiết lập trong khi phõn tớch thiết kế yờu cầu phần mềm, khụng phải khi lập trỡnh. Tuy cỏch thức vào và ra được cài đặt cú thể là đặc trưng xỏc định việc cộng đồng người sử dụng chấp nhận hệ thống. Phong cỏch vào ra sẽ thay đổi theo mức độ tương tỏc con người. Với vào ra theo lụ thỡ cỏch tổ chức cỏi vào logic, kiểm tra lỗi vào/ra cú nghĩa, phục hồi lỗi vào/ra tốt và định dạng bỏo cỏo ra hợp lý là đặc trưng mong muốn. Với cỏi vào/ra tương ứng, một sơ đồ đưa vào cú hướng dẫn, đơn giản, viờc kiểm tra lỗi kỹ lưỡng và phục hồi chỳng, cỏi ra và sự nhất quỏn của định dạng vào ra trở thành mối quan tõm chủ yếu.
Bất kể tới bản chất theo lụ hay tương tỏc của phần mềm, một số hướng dẫn phong cỏch vào/ra nờn được xột tới trong khi thiết kế và lập trỡnh:
• Làm hợp lệ mọi cỏi vào
• Kiểm tra sự tin cậy của cỏc tổ hợp khoản mục vào quan trọng.
• Giữ cho định dạng cỏi vào đơn giản.
• Dựng cỏc chỉ bỏo cuối dữ liệu thay vỡ yờu cầu người dựng xỏc định số cỏc khoản mục
• Đặt nhón cho yờu cầu cỏi vào tương tỏc, xỏc định chọn lựa cú sẵn hay gắn cỏc giỏ trị
• Giữ cho định dạng cỏi vào thống nhất khi một ngụn ngữ lập trỡnh cú cỏc yờu cầu định dạng nghiờm ngặt
Phong cỏch của vào/ra bị ảnh hưởng bởi nhiều đặc trưng khỏc như thiết bị vào/ra (như kiểu thiết bị cuối hay trạm làm việc, thiết bị đồ hoạ mỏy tớnh, chuột v.v...), độ phức tạp của người dựng là mụi trường truyền thống.
4 Tớnh hiệu quả
Trong hệ thống kỹ nghệ tốt, cú một khuynh hướng tự nhiờn là dựng cỏc tài nguyờn chủ chốt một cỏch hiệu quả. Cỏc chu trỡnnh bộ xử lớ và vị trớ bộ nhớ thường được coi như cỏc tài nguyờn chủ chốt. Thứ nhất, tớnh hiệu quả là một yờu cầu hoàn thiện và do đú nờn được thiết lập trong phõn tớch yờu cầu phần mềm. Thứ hai là tớnh hiệu quả được cải thiện với thiết kế tốt. Thứ ba là tớnh hiệu quả của chương trỡnh và tớnh đơn giản của chương trỡnh đi đụi với nhau. Núi chung, khụng nờn gạt bỏ tớnh rừ ràng, dễ đọc hay tớnh đỳng đắn chỉ để cú được sự cải thiện nho nhỏ về tớnh hiệu quả.
4.1 Kỹ thuật lập trỡnh hướng hiệu qủa
Lập trỡnh là một nghề thủ cụng. Nú phụ thuộc vào kỹ xảo cỏ nhõn người lập trỡnh, sự chỳ ý đến cỏc chi tiết và kiến thức về việc sử dụng cỏc cụng cụ sẵn cú theo cỏch thức tốt nhất. Trong phần này chỉ tập trung vào một vài kỹ thuật chuyờn biệt được dựng nhằm đạt được một hệ thống tin cậy, khả chuyển và dựng lại được cỏc thành phần.
Nhu cầu cỏc hệ thống đỏng tin đang tăng lờn, hiển nhiờn là vỡ cỏc hệ thống mỏy tớnh đó lan khắp nơi. Hiện thời cú hai kỹ thuật để viết cỏc chương trỡnh đỏng tin: trỏnh lỗi và thứ lỗi
Tất cả cỏc kỹ sư phần mềm hẳn đều muốn làm ra cỏc phần mềm khụng cú lỗi. Một quỏ trỡnh phỏt triển chỉ dựa vào việc phỏt hiện lỗi và khử lỗi chứ khụng để ý đến trỏnh lỗi là một quỏ trỡnh chưa thật tốt.
Phần mềm khụng cú lỗi núi ở đõy là phần mềm tuõn theo đỳng đặc tả. Núi chung, cú thể cú lỗi trong đặc tả hoặc cú thể khụng phản ỏnh đỳng cỏc nhu cầu của người sử dụng. Vậy là phần mềm khụng cú lỗi khụng nhất thiết là cỏc phần mềm luụn luụn hành xử như người dựng dự đoỏn.
Việc phỏt triển phần mềm khụng cú lỗi đũi hỏi chi phớ nhiều. Khi mà một số lỗi đó được thỏo khỏi chương trỡnh thỡ giỏ cả cho việc tỡm và thỏo cỏc lỗi cũn lại cú xu hướng tăng theo hàm số mũ. Do dú một tổ chức cú thể quyết định chấp nhận một vài lỗi cũn lưu lại. Tớnh về mặt giỏ cả thỡ thà rằng chịu tiền chi trả cho cỏc phớ tổn của hệ thống do cỏc lỗi đú gõy ra cũn hơn là đi điều tra và thỏo gỡ cỏc lỗi đú truớc khi phõn phối.
Trỏnh lỗi và phỏt triển phần mềm vụ lỗi dựa trờn: i) Sản phẩm của một đặc tả hệ thống chớnh xỏc.
ii) Chấp nhận một cỏch tiếp cận thiết kế phần mềm lựa chọn việc che dấu thụng tin và bao gúi thụng tin.
iii) Tăng cuờng duyệt lại trong quỏ trỡnh phỏt triển và thẩm định hệ thống phần mềm. iv) Chấp nhận triết lý chất lượng tổ chức: chất lượng là bỏnh lỏi của quy trỡnh xõy dựng phần mềm.
v) Việc lập kế hoạch cẩn thận cho việc thử nghiệm hệ thống để trưng ra cỏc lỗi mà cỏc lỗi này chưa được phỏt hiện trong quỏ trỡnh duyệt lại và để định lượng độ tin cậy của hệ thống. này chưa được phỏt hiện trong quỏ trỡnh duyệt lại và để định lượng độ tin cậy của hệ thống. Cú hai cỏch chớnh để hỗ trợ trỏnh lỗi:
• Lập trỡnh cú cấu trỳc
Thuật ngữ này được đặt ra từ cuối những năm 60 và cú nghĩa là lập trỡnh mà khụng dựng
goto, lập trỡnh chỉ dựng cỏc vũng lặp while và cỏc phỏt biểu if để xõy dựng điều khiển và trong thiết kế thỡ dựng cỏch liếp cận từ trờn xuống (top down). Việc thừa nhận lập trỡnh cú cấu trỳc là quan trọng bởi vỡ nú là bước đầu tiờn bước từ cỏch tiếp cận khụng khuụn phộp tới phỏt triển phần mềm.
Lập trỡnh cú cấu trỳc buộc người lập trỡnh phải nghĩ cẩn thận về chương trỡnh của họ, và vỡ vậy nú ớt tạo ra sai lầm trong khi phỏt triển
Lập trỡnh cú cấu trỳc làm cho chương trỡnh cú thể được đọc một cỏch tuần tự và do đú dễ hiểu và dễ thanh tra. Tuy nhiờn nú chỉ là bước đầu tiờn trong viờc lập trỡnh nhằm đạt độ tin cậy tốt. Cú một số cấu trỳc cú ớch nhưng hay dẫn tới cỏc lỗi trong hệ thống như: cỏc số thực dấu phảy động, con trỏ, song song, đệ quy, cỏc ngắt, vỡ vậy người lập trỡnh nờn dựng chỳng một cỏch cẩn thận.
• Phõn quyền truy cập dữ liệu
Nguyờn lý an ninh được thừa nhận bởi cỏc tổ chức vũ trang là một nguyờn lý nhu cầu để biết. Mỗi thành phần chương trỡnh chỉ được phộp truy cập đến dữ liệu nào cần thiết để thực hiện chức năng của nú.
Ưu điểm của việc che dấu thụng tin là cỏc thụng tin bị che dấu khụng thể bị sụp đổ bởi cỏc thành phần chương trỡnh mà được xem rằng khụng dựng thụng tin đú. Biểu diễn dữ liệu cú