Thiet Ke Lap Trinh

Màu nền
Font chữ
Font size
Chiều cao dòng

Phần 4: Thiết kế và lập trình

1. Q: Các phương pháp thiết kế hệ thống: Thiết kế hệ thống là gì; Các phương pháp

cơ bản thiết kế hệ thống

A: Thiết kế hệ thống là nhằm chuyển các đặc tả logic của hệ thống (chức năng ,dữ liệu ,động thái ) thành mô tả thiết kế

Thiết kế nhằm trả lời cho câu hỏi hệ thống sẽ làm như thế nào?

Đầu vào : Đặc tả logic về hệ thống + Các yêu cầu và rằng buộc về điều kiện vật lý(tài nguyên,thời gian ,...)

Đầu ra:

• Kiến trúc tổng thể về hệ thống

• Các hình thức trao đổi trên biên của hệ thống (mẫu thu thập ,tài liệu in,giao diện người máy)

• Các kiểm soát

• Tổ chức dữ liệu vật lý

• Tổ chức chương trình theo các module

Các phương pháp cơ bản thiết kế hệ thống :

• Thiết kế có cấu trúc (SD)

• Thiết kế hướng đối tượng

• Thiết kế tổng hợp,...

2. Phương pháp thiết kế hệ thống - Thiết kế cấu trúc hóa ?

Mục đích :

 Chuyển các tiến trình trong biểu đồ luồng dữ liệu (DFD) được sinh ra bởi phân tích có cấu trúc thành các module chương trình ,

 tiến hành phân chia thành các module bằng cách tiếp cận từ trên xuống.

 Phương pháp phân chia STS(Source Transform Sink) ,hay phương pháp phân chia giao tác được dùng để phân chia thành các module

Đặc trưng :

• Dễ thích ứng với mô hình vòng đời thác nước do tính thân thiện cao

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

• Dùng phân chia - kết hợp để giải quyết 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ả

Quy trình 6 bướ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ương trình

(4) xác định 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

3. Phương pháp thiết kế chương trình: Thiết kế chương trình là gì; Các phương

pháp cơ bản thiết kế chương trình

Thiết kế chương trình là thiết kế chi tiết cấu trúc bên trong của phần mềm ,thiết kế tính năng từng module và giao diện tương ứng

Phương pháp thiết kế chương trình :

• Không có trạng thái mờ (fuzzy), để đảm bảo thiết kế cấu trúc trong đúng đắ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ương trìn nhờ phương pháp luận thiết kế chi tiết

• Dùng quy trình thiết kế dễ chuẩn hóa từng bước

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ượng (object): Kỹ thuật thiết kế hướng đối tượng

4. Lập trình cấu trúc hóa: bản chất, đặc điểm, các nguyên lí cơ bản.

Về bản chất : Chương trình chia nhỏ thành các chương trình con riêng rẽ (còn gọi là hàm hay thủ tục) thực hiện các công việc rời rạc trong quá trình lớn hơn, phức tạp hơn.

Các hàm này được giữ càng độc lập với nhau càng nhiều càng tốt, mỗi hàm có dữ liệu và logic riêng.

Đặc điểm :

Một chương trình có cấu trúc được hình thành bằng cách bẻ gãy các chức năng cơ bản của chương trình thành các mảnh nhỏ mà sau đó trở thành các hàm. Bằng cách cô lập các công việc vào trong các hàm, chương trình có cấu trúc có thể làm giảm khả năng của một hàm này ảnh hưởng đến một hàm khác. Việc này cũng làm cho việc tách các vấn đề trở nên dễ dàng hơn. Sự gói gọn này cho phép chúng ta có thể viết các chương trình sáng sủa hơn và giữ được điều khiển trên từng hàm.

Các biến toàn cục không còn nữa và được thay thế bằng các tham số và biến cục bộ có phạm vi nhỏ hơn và dễ kiểm soát hơn. Cách tổ chức tốt hơn này nói lên rằng chúng ta có khả năng quản lý logic của cấu trúc chương trình, làm cho việc triển khai và bảo dưỡng chương trình nhanh hơn và hữu hiện hơn và hiệu quả hơn.

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

- Làm cho chương trình dễ hiểu

- Dễ theo dõi chương trình thực hiện

- Hệ phức tạp sẽ dễ hiểu nhờ tiếp cận phân cấp

5. Sơ đồ cấu trúc hóa: bản chất, đặc điểm, các nguyên lí cơ bản

Sơ đồ cấu trúc được dùng để biểu diễn cho các chức năng của từng chương trình ,các giao diện giữa các chương trình theo một cách thức dễ hiểu.

Việc dùng một sơ đồ có cấu trúc ,các quan hệ cha - con giữa các chương trình có thể được diễn tả như một cấu trúc phân cấp.

Ví dụ :

6. Phương pháp Giắc-sơn (Jackson): bản chất, đặc điểm, các nguyên lí cơ bản.

• JSP: Jackson Structured Programming

Với phương pháp này các module được phân hoặch bằng việc lập mối quan hệ giữa cấu trúc chương trình với cấu trúc dữ liệu vào và ra.

Đặc trưng:

Thiết kế dựa trên dữ liệu đầu ra.

• Các ký pháp:

- Cơ sở (elementary)

- Tuần tự (sequence)

- Lặp

- Rẽ nhánh

Trình tự thiết kế :

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

• Thiết kế cấu trúc chương trình (Program step)

• Thiết kế thủ tục (Operation step)

• Thiết kế đặc tả chương trình (Text step)

7. Phương pháp Wa-ny (Warnier): bản chất, đặc điểm, các nguyên lí cơ bản.

• Khái niệm ,bản chất : Phương pháp Wany là kĩ thuật thiết kế module có cấu trúc dựa trên lý thuyết tập hợp.Nó được sử dụng rộng rãi để phân hoạch các module cho việc xử lý tệp & các ứng dụng nghiệp vụ khác

Đặc trưng :

 Phân tích dữ liệu là cơ sở của phương pháp này

 Phương pháp này dựa trên câu hỏi "khi nào ,ở đâu ,bao nhiêu lần". Việc phân tích được thực hiện theo cách trên xuống

 Thiết kế dựa trên dữ liệu đầu vào.

• Trình tự thiết kế

- Thiết kế dữ liệu ra

- Thiết kế dữ liệu vào

- Thiết kế cấu trúc chương trình

- Thiết kế lưu đồ

- Thiết kế lệnh thủ tục

- Thiết kế đặc tả chi tiết

8. Các công cụ thiết kế (UML,...): bản chất, đặc điểm, một số công cụ (tool) tiêu

biểu

Các công cụ mô hình hóa hiện tại đã cung cấp phần lớn các chức năng sau:

Vẽ biểu đồ: cần phải tạo điều kiện dễ dàng vẽ ra các biểu đồ trong ngôn ngữ mô hình hóa. Công cụ cần phải đủ khả năng thông minh để hiểu mục đích của các biểu đồ và biết được những ngữ nghĩa cũng như các quy tắc đơn giản, đủ để nó có thể cảnh báo hoặc ngăn chặn việc sử dụng không thích hợp các phần tử mô hình.

Hoạt động như một nhà kho (Repository): công cụ cần phải hỗ trợ một nhà kho trung tâm để tất cả các thông tin về mô hình được lưu trữ trong cùng một chỗ. Nếu ví dụ tên của một lớp bị thay đổi trong một biểu đồ, thì sự thay đổi này cần phải xảy ra trong tất cả các biểu đồ khác có sử dụng lớp này.

Hỗ trợ định hướng (Navigation): công cụ cần phải tạo điều kiện dễ dàng cho người sử dụng định hướng và chuyển dịch trong mô hình để theo dõi một phần tử từ biểu đồ này sang biểu đồ khác, hoặc để mở rộng lời miêu tả của một phần tử.

Hỗ trợ nhiều người sử dụng (multiuser support): Công cụ cần hỗ trợ cho nhiều người sử dụng, và tạo điều kiện cho họ cùng làm việc với một mô hình mà không ngăn chặn hoặc quấy phá lẫn nhau.

Tự động tạo code (code generate): một công cụ cao cấp cần phải có khả năng tạo ra code, nơi tất cả các thông tin trong mô hình được chuyển tải thành các khung code (code skeletons), được sử dụng làm nền tảng cho giai đoạn xây dựng chương trình.

Tái tạo mô hình (Reserve engineer): Một công cụ cao cấp cần phải có khả năng đọc những thành phần code đang tồn tại và từ đó sản xuất ra mô hình. Từ đó suy ra, một mô hình có thể được làm từ những dòng code đã tồn tại; hoặc một nhà phát triển có thể dễ dàng chuyển đi chuyển về giữa công việc mô hình hóa và công việc lập trình.

Tích hợp với các công cụ khác: một công cụ cần phải có khả năng tích hợp với những công cụ khác, với cả việc phát triển môi trường, ví dụ như các trình soạn thảo (editor), chương trình dịch (compiler), chương trình tìm lỗi (debugger) cũng như các công cụ của doanh nghiệp khác như công cụ quản trị cấu hình, hệ thống theo dõi các phiên bản.

Bao quát mô hình ở tất cả các mức độ trừu tượng hóa khác nhau: công cụ cần phải dễ chuyển tải từ lời miêu tả ở cấp trừu tượng hóa cao nhất của hệ thống (tức là ở dạng một lượng các gói khác nhau) đi xuống cho tới cấp của những dòng code thật sự. Sau đó, để truy xuất những dòng lệnh code cho một thủ tục cụ thể nào đó trong một lớp nào đó, bạn có thể chỉ cần nhấp chuột vào tên của thủ tục đó trong một biểu đồ.

Trao đổi mô hình: Một mô hình hay một biểu đồ của một mô hình nào đó cần phải có khả năng được xuất ra từ một công cụ này rồi nhập vào một công cụ khác, giống như những dòng lệnh code được sản sinh trong một công cụ này có thể được sử dụng trong một công cụ khác. Nguyên tắc trao đổi đó cần phải được áp dụng cho các mô hình trong một ngôn ngữ mô hình hóa được định nghĩa chính xác.

Một số công cụ tiêu biểu :

• Enterprise Architect (Sparx System)

• Rational Software Modeler/Architect (IBM)

• Magic Draw (No Magic)

• Umodel (Altova)

9. Lịch sử phát triển của ngôn ngữ lập trình

• 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:

- FOTRAN, COBOL, ALGOL, BASIC

- Phát triển 1950-1970

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

- 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

- Lập trình hướng suy diễn - logic

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

- Truy vấn

- Các ngôn ngữ hỗ trợ quyết định

10. Các công cụ lập trình thông dụng hiện nay đang sử dụng tại các công ty phần

mềm.

• 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 (Exclipse,Netbean)

• PHP,MySQL

• C#, .NET (Visual Studio)

Bạn đang đọc truyện trên: Truyen2U.Pro

#cnpm#thi