Bài giảng Nhập môn công nghệ phần mềm (Introduction to software engineering): Chương 8 - Nguyễn Nhất Hải
lượt xem 3
download
Chương 8 - Xây dựng phần mềm. Chương này cung cấp cho người học những kiến thức cơ bản về: Khái niệm, lịch sử ngôn ngữ lập trình, các công cụ lập trình, quy trình lập trình, quy ước viết mã.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Nhập môn công nghệ phần mềm (Introduction to software engineering): Chương 8 - Nguyễn Nhất Hải
- Chương 8: Xây dựng phần mềm NHẬP MÔN • 1. Khái niệm CÔNG NGHỆ PHẦN MỀM (INTRODUCTION TO SOFTWARE om ENGINEERING) .c ng co 1 2 an 1 2 th 1. Khái niệm o ng Mục tiêu của lập trình du • Mã hóa là quá trình chuyển đổi thiết kế của một hệ thống • 1. Để chuyển thiết kế của hệ thống sang ngôn ngữ máy, sang một ngôn ngữ máy. thực hiện các tác vụ theo chỉ định của thiết kế. • Giai đoạn viết mã này liên quan đến việc chuyển đặc tả • 2. Để giảm chi phí của các giai đoạn sau: Chi phí kiểm u thiết kế thành mã nguồn. tra và bảo trì có thể giảm đáng kể với việc mã hóa hiệu cu • Việc biên soạn tài liệu đi kèm với mã nguồn là cần thiết để có thể dễ dàng xác minh sự phù hợp giữa mã với bản đặc tả quả. của nó. • 3. Làm cho chương trình dễ đọc hơn: Chương trình • Công việc mã hóa được thực hiện bởi lập trình viên là phải dễ đọc và dễ hiểu. Việc mã hóa cần đảm bảo mục người độc lập với người thiết kế. Mục tiêu không phải là tiêu làm tăng khả năng hiểu mã và đọc mã trong quá giảm nỗ lực và chi phí của giai đoạn mã hóa, mà là để cắt giảm chi phí của các giai đoạn sau. trình tạo ra phần mềm dễ bảo trì. • Chi phí kiểm thử và bảo trì có thể được giảm đáng kể với Để tiến hành việc cài đặt thiết kế, cần phải sử dụng ngôn việc mã hóa hiệu quả. ngữ lập trình bậc cao. 3 4 3 4 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Translating from High-level Language 2. Lịch sử ngôn ngữ lập trình to Binary • Các ngôn ngữ thế hệ thứ nhất: – 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: Total = 0 10111000 – FOTRAN, COBOL, ALGOL, BASIC om Current = 100 101110001 00000000 do while current 0 Translation 01100100 Total = Total + Current Current = Current - 1 Program 00000001 11001000 01001001 – Phát triển 1950-1970 Loop 01110101 11111011 • Các ngôn ngữ thế hệ thứ ba .c – Ngôn ngữ lập trình cấp cao vạn năng (cấu trúc) – Lập trình hướng đối tượng High level Machine language – Lập trình hướng suy diễn – logic ng language program progam • Các ngôn ngữ thế hệ thứ tư co 5 6 an 5 6 th Các loại ngôn ngữ lập trình o ng Các đặc điểm của ngôn ngữ lập trình Procedural: Các chương trình nguyên khối chạy từ đầu đến du cuối và không có sự can thiệp của người dùng ngoài đầu vào Basic, QBasic, QuickBasic COBOL u FORTRAN cu C Object Oriented/Event Driven (OOED): Các chương trình sử dụng các objects để đáp ứng các sự kiện (events); sử dụng các đoạn mã cho mỗi object JAVA Visual Basic Visual Basic for Applications (VBA) Visual C++ 7 8 7 8 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- 3. Các công cụ lập trình Các công cụ lập trình • Công cụ lập trình C/C++: • Môi trường: DOS, WINDOWS, UNIX/LINUX – Turbo C • Editors, Compilers, Linkers, Debuggers – Visual Studio – Eclipse • TURBO C, PASCAL • Công cụ lập trình Java om – Eclipse • MS C, Visual Basic, Visual C++, ASP – Netbean • UNIX/LINUX: C/C++, gcc (Gnu C Compiler) • Công cụ lập trình C#, .NET .c – Visual Studio.NET • JAVA, CGI, perl – MSDN Library • Công cụ lập trình web ng • C#, .NET – Visual Studio và SQL Server co 9 10 an 9 10 th 4. Quy trình lập trình o ng Các bước trong lập trình du • Xác định bài toán • Lập trình – Đầu vào • Kiểm tra thuật toán đã được cài đặt u – Đầu ra • Thực hiện chương trình trên máy tính cu • Các bước xử lý để tạo kết quả – Compile – Correct syntax errors Input Processing Output Num-1 Read 3 numbers Total – Run program with test data Num-2 Add numbers together – Correct logic errors Num-3 Print Total number • Viết tài liệu 11 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Phương pháp lập trình có cấu trúc Phương pháp lập trình có cấu trúc • Chia toàn bộ chương trình thành các mô-đun nhỏ để chương trình • Outline Solution trở nên dễ hiểu. Mục đích của lập trình cấu trúc là tuyến tính hóa luồng điều khiển thông qua một chương trình máy tính sao cho – Nhiệm vụ chính trình tự thực thi tuân theo trình tự mà mã được viết. – Các bước xử lý chính • Cấu trúc động của chương trình giống với cấu trúc tĩnh của chương trình. Điều này nâng cao khả năng đọc, khả năng kiểm tra và khả om – Các cấu trúc điều khiển chính (vòng lặp, rẽ nhánh, năng sửa đổi của chương trình. Luồng kiểm soát tuyến tính này có thể được quản lý bằng cách hạn chế tập hợp các cấu trúc ứng dụng v.v.) được phép thành một mục nhập duy nhất, các định dạng lối ra duy nhất. – Các biến chính .c • Chúng tôi sử dụng lập trình có cấu trúc vì nó cho phép người lập trình hiểu chương trình một cách dễ dàng. Nếu một chương trình bao gồm hàng nghìn lệnh và một lỗi xảy ra thì rất phức tạp để tìm ra ng lỗi đó trong toàn bộ chương trình, nhưng trong lập trình có cấu trúc, chúng ta có thể dễ dàng phát hiện lỗi và sau đó đến vị trí đó và sửa nó. Điều này giúp tiết kiệm rất nhiều thời gian. co 14 an 13 14 th Lập trình có cấu trúc o ng Rule 1: Code Block du • Nếu điều kiện đầu vào đúng, nhưng điều • Cho phép người lập trình hiểu chương trình kiện thoát sai thì lỗi đó phải nằm trong một cách dễ dàng. khối. Điều này không đúng nếu việc thực thi được phép nhảy vào một khối (do đó lỗi u có thể ở bất kỳ đâu trong chương trình, gỡ • Trong lập trình có cấu trúc, chúng ta có thể dễ cu lỗi trong những trường hợp này khó hơn dàng phát hiện lỗi và tìm đến vị trí để sửa nó. nhiều). • Rule 1 of Structured Programming: Một • Điều này giúp tiết kiệm rất nhiều thời gian. khối mã được cấu trúc, như thể hiện trong hình. Trong điều kiện biểu đồ luồng, một hộp có một điểm vào và một điểm thoát được cấu trúc. Lập trình có cấu trúc là một phương pháp làm rõ ràng rằng chương trình là đúng. 15 16 15 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Rule 2: Sequence Rule Three: Alternation • Một chuỗi khối là đúng • Rule 3 of Structured nếu điều kiện thoát của mỗi khối khớp với điều Programming: Tùy kiện vào của khối sau. chọn If-then-else, • Toàn bộ chuỗi có thể được mỗi lựa chọn là một om coi là một khối duy nhất, khối mã. Cấu trúc rẽ có điểm vào và điểm ra. nhánh được sử .c • Rule 2 of Structured Programming: Hai hoặc dụng để đáp ứng nhiều khối được kết nối điều kiện thoát. ng liền nhau co 17 18 an 17 18 th Rule 4: Iteration o ng Rule 5: Nested Structures du • Rule 4 of Structured • Rule 5 of Structured Programming: Một cấu Programming: Vòng lặp (trong khi) gồm một điểm trúc có một điểm vào và ra duy nhất u vào và một điểm ra. Điểm cu vào có điều kiện phải được thỏa mãn và điểm ra có các yêu cầu sẽ được đáp ứng. Không có bước nhảy vào biểu mẫu từ các điểm bên ngoài của mã. 19 20 19 20 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Object-Oriented Event-driven Programming (OOED) OOED Programming Process OOED sử dụng các đối tượng objects, hoặc các modules độc Quy trình sáu bước để viết một chương trình máy tính lập kết hợp dữ liệu và mã chương trình để chuyển các OOED: message cho nhau. 1. Xác định vấn đề. OOED dễ làm việc hơn vì nó trực quan hơn các phương pháp 2. Tạo giao diện lập trình truyền thống. 3. Phát triển logic cho các đối tượng hành động om Ví dụ: Visual Basic 4. Viết và kiểm tra mã cho các đối tượng hành động Người dùng có thể kết hợp các đối tượng một cách tương đối dễ dàng để tạo ra các hệ thống mới hoặc mở rộng các hệ thống 5. Kiểm tra dự án tổng thể hiện có. 6. Làm tài liệu .c Thuộc tính của đối tượng là thuộc tính liên kết với một đối tượng. Bất kể một chương trình được viết tốt như thế nào, mục Phương thức của đối tượng là những hoạt động mà đối tượng có tiêu sẽ không đạt được nếu chương trình không giải thể thực hiện. quyết được vấn đề (sai). ng Đối tượng phản hồi các sự kiện. co 21 22 an 21 22 th Step One: Define Problem o ng Ví dụ. Giao diện tính toán doanh thu du • Trước khi tạo ứng dụng máy tính để giải quyết một vấn đề, trước tiên cần phải xác định rõ nó. u • Cần xác định đầu vào và đầu ra. • Phải xác định dữ liệu được đưa vào chương trình và kết quả cu được xuất ra từ nó. • Phác thảo giao diện (giao tiếp) ứng dụng. • Xác định các hành động của các đối tượng cần mã hóa. 23 24 23 24 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Calculate Revenue Interface - Input Step Two: Create Interface • Ví dụ: tạo giao diện tính toán doanh thu. – button for action – inputBox for input (Selling Price) – inputBox for input (Units Sold) om – MessageBox for output .c ng co 25 26 an 25 26 th Calculate Revenue Interface - Output o ng Step Three: Develop Logic for Action Objects du • Xác định mỗi đối tượng hành động làm gì u để phản ứng với các sự kiện. Đây là logic cu cho từng đối tượng. • Sử dụng Bảng Nhập / Xử lý / Đầu ra (IPO) và Mã giả để phát triển logic • Bảng IPO hiển thị các đầu vào, đầu ra và quá trình xử lý để chuyển đầu vào thành đầu ra 27 28 27 28 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Pseudocode for Count High Values Button IPO Table for Calculate Revnue Button Begin procedure Input Selling Price Input Quantity Sold Input Processing Output Revenue = Selling Price x Quantity Sold Unit Price revenue = unitPrice X quantitySold Revenue Output Revenue Quantity Sold End procedure om .c ng co 29 30 an 29 30 th VBA Code for Calculate Revenue Button Step Four: Write and Test Code of Action Objects o ng Sub CalculateRevenue() Dim unitPrice As Currency du Dim quantitySold As Integer • Chuyển đổi logic được thể hiện trong mã giả sang ngôn Dim revenue As Currency ngữ lập trình (sử dụng bộ từ vựng và cú pháp của một ngôn ngữ). ' Get the user's inputs, then calculate revenue. u unitPrice = InputBox("Enter the unit selling price.", "Selling price") • Kiểm tra và sửa mã đối tượng được viết, giai đoạn này cu quantitySold = InputBox("Enter the number of units sold.", "Units sold") được gọi là gỡ lỗi. revenue = unitPrice * quantitySold ' Report the results. MsgBox "The revenue from this product was " & Format(revenue, "$#,##0") _ & ".", vbInformation, "Revenue" End Sub 31 32 31 32 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Step Five: Test Overall Project Step Six: Document Project in Writing • Tài liệu bao gồm các mô tả bằng hình ảnh và văn • Kiểm tra toàn bộ project cần đảm bảo mỗi câu lệnh bản của phần mềm trong đó chứa các mô tả phần phải hoàn toàn chính xác nếu không thì chương lập trình và các mô tả hoặc hướng dẫn bên ngoài. trình có thể sẽ có lỗi. • Tài liệu là cần thiết vì dù sớm hay muộn, chương • Cần đảm bảo chương trình được kiểm tra trên môi trình sẽ cần được bảo trì (sửa lỗi, thêm tính năng om trường và dữ liệu thực thi thực tế mà chương trình mới, xử lý các vấn đề chưa từng nghĩ tới, v.v.) Điều sẽ được sử dụng. này KHÔNG thể thực hiện được nếu không có tài liệu. .c • Tài liệu có thể bao gồm sách, hướng dẫn sử dụng và các mục tiêu của phần mềm. ng co 33 34 an 33 34 th 5. Quy ước viết mã o ng Hướng dẫn viết mã du • Nguyên tắc viết mã cung cấp cho lập trình viên một tập hợp các phương pháp u • làm cho các chương trình đễ đọc và bảo trì. cu 35 36 35 36 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Hướng dẫn viết mã Hướng dẫn viết mã 1. Line Length: It is considered a good practice to keep the length of source code lines at or below 80 characters. Lines longer than this may not be visible properly on some terminals and tools. Some printers will truncate lines longer than 80 columns. 2. Spacing: The appropriate use of spaces within a line of code om can improve readability. Example: Bad: cost=price+(price*sales_tax) fprintf(stdout ,"The total cost is %5.2f\n",cost); .c Better: cost = price + ( price * sales_tax ) fprintf (stdout,"The total cost is %5.2f\n",cost); 3. The code should be well-documented: As a rule of thumb, ng there must be at least one comment line on the average for every three-source line. co 37 38 an 37 38 th Hướng dẫn viết mã o ng Phong cách lập trình du 4. The length of any function should not exceed 10 source • Các kỹ thuật được sử dụng để viết mã nguồn cho một lines: A very lengthy function is generally very difficult to chương trình. Hầu hết các phong cách lập trình được thiết understand as it possibly carries out many various functions. kế để giúp lập trình viên nhanh chóng đọc và hiểu chương u For the same reason, lengthy functions are possible to have a trình cũng như tránh mắc lỗi. disproportionately larger number of bugs. cu • Một phong cách viết mã tốt có thể khắc phục nhiều khiếm 5. Do not use goto statements: Use of goto statements makes khuyết của ngôn ngữ lập trình. a program unstructured and very tough to understand. • Mục tiêu của phong cách lập trình tốt là cung cấp mã đơn 6. Inline Comments: Inline comments promote readability. giản và dễ hiểu. 7. Error Messages: Error handling is an essential aspect of • Phong cách lập trình được sử dụng trong một chương trình computer programming. This does not only include adding the khác nhau có thể bắt nguồn từ các tiêu chuẩn mã hóa hoặc necessary logic to test for and handle errors but also involves quy ước mã của một công ty hoặc tổ chức máy tính khác, making error messages meaningful. cũng như sở thích của lập trình viên thực tế. 39 40 39 40 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Phong cách lập trình Phong cách lập trình • 1. Clarity and simplicity of Expression: The programs should be designed in such a manner so that the objectives of the program is clear. • 2. Naming: In a program, you are required to name the module, processes, and variable, and so on. Care should be taken that the naming style should not be cryptic and non-representative. om • For Example: a = 3.14 * r * r area of circle = 3.14 * radius * radius; • 3. Control Constructs: It is desirable that as much as a possible .c single entry and single exit constructs used. • 4. Information hiding: The information secure in the data structures should be hidden from the rest of the system where possible. Information hiding can decrease the coupling between ng modules and make the system more maintainable. co 41 42 an 41 42 th Phong cách lập trình o ng du • 5. Nesting: Deep nesting of loops and conditions greatly harm the static and dynamic behavior of a program. It also becomes difficult to understand the program logic, so it is desirable to avoid deep nesting. • 6. User-defined types: Make heavy use of user-defined data types like u enum, class, structure, and union. These data types make your program cu code easy to write and easy to understand. • 7. Module size: The module size should be uniform. The size of the module should not be too big or too small. If the module size is too large, it is not generally functionally cohesive. If the module size is too small, it leads to unnecessary overheads. • 8. Module Interface: A module with a complex interface should be carefully examined. • 9. Side-effects: When a module is invoked, it sometimes has a side effect of modifying the program state. Such side-effect should be avoided where as possible. 43 43 CuuDuongThanCong.com https://fb.com/tailieudientucntt
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Nhập môn Công nghệ thông tin: Lab 1 - Th.S Dương Thành Phết
13 p | 225 | 44
-
Bài giảng Nhập môn Công nghệ thông tin: Hướng dẫn bài tập 3 - Th.S Dương Thành Phết
59 p | 170 | 21
-
Bài giảng Nhập môn Công nghệ thông tin: Hướng dẫn bài tập 1 - Th.S Dương Thành Phết
17 p | 156 | 20
-
Bài giảng Nhập môn Công nghệ phần mềm: Chương 3 - Nguyễn Thị Minh Tuyền
77 p | 146 | 18
-
Bài giảng Nhập môn công nghệ phần mềm - Chương 1: Tổng quan về công nghệ phần mềm (2011)
49 p | 102 | 14
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 9 - Ngô Chánh Đức
32 p | 122 | 13
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 2 - Ngô Chánh Đức
60 p | 123 | 11
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 3 - Ngô Chánh Đức
35 p | 89 | 11
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 4 - Ngô Chánh Đức
45 p | 111 | 10
-
Bài giảng Nhập môn công nghệ phần mềm - Chương 1: Tổng quan về công nghệ phần mềm
35 p | 29 | 9
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 1 - Ngô Chánh Đức
13 p | 101 | 8
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 5 - Ngô Chánh Đức
51 p | 76 | 8
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 7 - Ngô Chánh Đức
26 p | 112 | 8
-
Bài giảng Nhập môn Công nghệ phần mềm: Giới thiệu tổng quan về nội dung học phần - TS. Trần Ngọc Bảo
32 p | 126 | 7
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 6 - Ngô Chánh Đức
36 p | 91 | 6
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 8 - Ngô Chánh Đức
29 p | 75 | 6
-
Bài giảng Nhập môn Công nghệ thông tin 1: Giới thiệu môn học - Ngô Chánh Đức
4 p | 107 | 5
-
Bài giảng Nhập môn công nghệ phần mềm - Chương 1: Nguyễn Văn Danh
9 p | 78 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn