Câu lạc bộ Hỗ Trợ Học Tập
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.



 
Trang ChínhTrang Chính  Latest imagesLatest images  Tìm kiếmTìm kiếm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  
  • Top posters
 Mr.Pakapun (256)
 ddtan90 (178)
 tvduong (147)
 dthnam90 (137)
 minhquankq (101)
 arianbo (70)
 DoanhNhan (54)
 chicken (53)
 stormit (52)
 gentle_storm (47)

 

 Tổng quan về Thiết kế phần mềm [Phần 1]

Go down 
3 posters
Tác giảThông điệp
anonymous_two
Mod
Mod
anonymous_two


Tổng số bài gửi : 29
Join date : 29/12/2010

Tổng quan về Thiết kế phần mềm [Phần 1] Empty
Bài gửiTiêu đề: Tổng quan về Thiết kế phần mềm [Phần 1]   Tổng quan về Thiết kế phần mềm [Phần 1] EmptySat Jan 01, 2011 12:53 pm

Chào các bạn, mình đã từng học Thiết kế phần mềm và cũng từng rất mơ hồ, chẳng hiểu thiết kế phần mềm là gì? Vì sao phải thiết kế? Và thiết kế như thế nào? Với kiến thức nhỏ nhoi của một người đã từng học môn này, mình xin chia sẽ với các bạn những gì mình đã từng nghiên cứu, hi vọng sẻ giúp các bạn có một cái nhìn tổng quan về Thiết kế phần mềm và có thể học tốt hơn môn này!
Bất kể khi chúng ta làm và học một vấn đề gì, chúng ta cũng nên biết nó là cái gì? Vì sao phải biết nó?.... Như vậy chúng ta mới có thể làm tốt được nó. Ở đây, thiết kế phần mềm cũng cần được biết như vậy. Chúng ta sẽ cũng tìm hiểu nhé!
1. Thiết kế phần mềm là gì?
Thiết kế phần mềm có tên tiếng anh là "Design Pattern". Từ "Pattern" có từ ngành kiến trúc, nó có nghĩa là cách giải quyết vần đề trong một ngữ cảnh, hoàn cảnh cụ thể. Vậy "Design Pattern" là gì?
Design Pattern là bài toán thông dụng cần giải quyết và cách giải quyết bài toán đó trong từng hoàn cảnh cụ thể. Nó không đơn thuần là một bước trong nào đó trong giai đoạn phát triển phần mềm, mà nó mang tính sáng tạo. Một phần mềm có thể hoàn thành mà không có sự góp mặt của Design Pattern nhưng sự có mặt của Design Pattern sẽ giúp xác định bài toán nhanh hơn và giải quyết một cách hiệu quả hơn. Design Pattern sẽ cô lập tất cả các mã nguồn, từ đó tăng khả năng tái sử dụng cao.
Nói cách khác: Design Pattern như như giai đoạn phát thảo bản vẽ của một kiến trúc sư.
2. Vì sao phải biết Design Pattern?
Nói đến công nghệ phần mềm, không ai không biết chu kì phát triển của nó: Thu thập phân tích yêu cầu - Thiết kế phần mềm - Coding - Kiểm thử bảo trì - Triển khai hệ thống. Qua chu kì trên đã cho thấy Thiết kế phần mềm mang một tầm ảnh hưởng như thể nào đến sự thành bại của một phần mềm. Các bạn thử tưởng tượng, Thiết kế phần mềm như một kiến trúc sư phát thảo bản vẽ cho một ngôi nhà. Người thợ(lập trình viên) chỉ có thể làm theo những gì bản vẽ nêu ra. Nếu bản vẽ đây đủ, chính xác thì chúng ta có một ngôi nhà hoàn hảo và ngược lại. Kiến trúc phần mềm cũng thế, người lập trình(programmer) sẽ tuân thủ những quy tắc trong giai đoạn Thiết kế và làm đúng như vậy!
3. Các thành phần trong Thiết kế phần mềm:
Dựa vào kiến thức đã học và các nguồn tài liệu, mình xin trình bày một số thành phần chủ yếu của Thiết kế phần mềm một cách khái quát:
a) Thiết kế kiến trúc:
Trình bày các thành phần kiến trúc của một hệ thống phần mềm, nó bao gồm kiến trúc về phần cứng và phần mềm nhằm giúp cho người lập trình dễ dàng nhận biết và áp dụng phù hợp.
==>Mô hình kiến trúc hệ thống: Có 3 loại kiến trúc cơ bản: Server-based Architecture, Client-based Architecture và Client-server based Architecture.
-->Server-based Architecture: Gồm một client đóng vai trò là một thiết bị đầu cuối(termial) và một server host(mainframe computer) có chức năng lưu trữ dữ liệu, thực thi và truy cập dữ liệu logic.
-->Client-based Architecture: Gồm 2 microcomputer, trong đó 1 đóng vai trò là server(lưu trữ dữ liệu) và một đóng vai trò là client chứa các thành phần xử lý và truy cập logic.
-->Client-Server based Architecture: với loại kiến trúc này, client sẽ chứa các thành phần trình bày và thực thi logic, còn server sẽ chứa chức năng truy cập và lưu trữ dữ liệu.
==>Kiến trúc phần mềm: Trình bày cách thức mà phần mềm sẽ hoạt động, nó như một đường đi bên trong của hệ thống. Mình xin lấy một ví dụ: Từ client, users gửi yêu cầu thông qua window form(web browser). Bên trong bắt đầu xử lý, xác định các control điều khiển, phân chia từng component. Sau đó thông qua phần xử lý data access để truy xuất và xử lý dữ liệu....
//Để xác định kiến trúc phần mềm, chúng ta có thể dựa vào các yêu cầu phi chức năng như tính bảo mật, hiệu suất... và điều kiện về vật chất của chúng ta.
b. Thiết kế giao diện:
Phần này trình bày các giao diện mà sẽ được coding trong tương lai, nó có thể là webform hay windowform. Với mỗi giao diện trình bày cho một chức năng chính. Các thành phần xử lý trên giao diện được đánh số và viết đặc tả. Ví dụ ta đánh dấu 1 textbox trên winform là 1; đặc tả:1,Textbox,txtHoten,Họ tên sinh viên. Tương ứng: stt,loại control, name, diễn giải.
Mình chỉ trình bày mang tính khái quát, tùy vào trường hợp cụ thể và sự tỉ mỉ của bạn mà có thể đặc tả chi tiết hơn.
Ôi, đau đầu quá, bữa nào rảnh tiếp nhé mấy bạn. Với kiến thức nhỏ nhoi của mình, sự sai sót là điều không tránh khỏi. Mong rằng được các bạn đóng góp ý kiến để phần sau mình viết tốt hơn!
Về Đầu Trang Go down
namlun_12
Admin
Admin
namlun_12


Tổng số bài gửi : 9
Join date : 30/10/2010
Age : 34

Tổng quan về Thiết kế phần mềm [Phần 1] Empty
Bài gửiTiêu đề: Bạn post thêm đi!   Tổng quan về Thiết kế phần mềm [Phần 1] EmptyMon Jan 03, 2011 5:28 pm

Đang đọc mà nghỉ ngang kì lắm!Mình thấy cũng hay đó!thanks
Về Đầu Trang Go down
saomai
Thành viên mới
Thành viên mới
saomai


Tổng số bài gửi : 1
Join date : 26/01/2012

Tổng quan về Thiết kế phần mềm [Phần 1] Empty
Bài gửiTiêu đề: Re: Tổng quan về Thiết kế phần mềm [Phần 1]   Tổng quan về Thiết kế phần mềm [Phần 1] EmptyThu Jan 26, 2012 12:42 am

anonymous_two đã viết:
Chào các bạn, mình đã từng học Thiết kế phần mềm và cũng từng rất mơ hồ, chẳng hiểu thiết kế phần mềm là gì? Vì sao phải thiết kế? Và thiết kế như thế nào? Với kiến thức nhỏ nhoi của một người đã từng học môn này, mình xin chia sẽ với các bạn những gì mình đã từng nghiên cứu, hi vọng sẻ giúp các bạn có một cái nhìn tổng quan về Thiết kế phần mềm và có thể học tốt hơn môn này!
Bất kể khi chúng ta làm và học một vấn đề gì, chúng ta cũng nên biết nó là cái gì? Vì sao phải biết nó?.... Như vậy chúng ta mới có thể làm tốt được nó. Ở đây, thiết kế phần mềm cũng cần được biết như vậy. Chúng ta sẽ cũng tìm hiểu nhé!
1. Thiết kế phần mềm là gì?
Thiết kế phần mềm có tên tiếng anh là "Design Pattern". Từ "Pattern" có từ ngành kiến trúc, nó có nghĩa là cách giải quyết vần đề trong một ngữ cảnh, hoàn cảnh cụ thể. Vậy "Design Pattern" là gì?
Design Pattern là bài toán thông dụng cần giải quyết và cách giải quyết bài toán đó trong từng hoàn cảnh cụ thể. Nó không đơn thuần là một bước trong nào đó trong giai đoạn phát triển phần mềm, mà nó mang tính sáng tạo. Một phần mềm có thể hoàn thành mà không có sự góp mặt của Design Pattern nhưng sự có mặt của Design Pattern sẽ giúp xác định bài toán nhanh hơn và giải quyết một cách hiệu quả hơn. Design Pattern sẽ cô lập tất cả các mã nguồn, từ đó tăng khả năng tái sử dụng cao.
Nói cách khác: Design Pattern như như giai đoạn phát thảo bản vẽ của một kiến trúc sư.
2. Vì sao phải biết Design Pattern?
Nói đến công nghệ phần mềm, không ai không biết chu kì phát triển của nó: Thu thập phân tích yêu cầu - Thiết kế phần mềm - Coding - Kiểm thử bảo trì - Triển khai hệ thống. Qua chu kì trên đã cho thấy Thiết kế phần mềm mang một tầm ảnh hưởng như thể nào đến sự thành bại của một phần mềm. Các bạn thử tưởng tượng, Thiết kế phần mềm như một kiến trúc sư phát thảo bản vẽ cho một ngôi nhà. Người thợ(lập trình viên) chỉ có thể làm theo những gì bản vẽ nêu ra. Nếu bản vẽ đây đủ, chính xác thì chúng ta có một ngôi nhà hoàn hảo và ngược lại. Kiến trúc phần mềm cũng thế, người lập trình(programmer) sẽ tuân thủ những quy tắc trong giai đoạn Thiết kế và làm đúng như vậy!
3. Các thành phần trong Thiết kế phần mềm:
Dựa vào kiến thức đã học và các nguồn tài liệu, mình xin trình bày một số thành phần chủ yếu của thiết kế phần mềm một cách khái quát:
a) Thiết kế kiến trúc:
Trình bày các thành phần kiến trúc của một hệ thống phần mềm, nó bao gồm kiến trúc về phần cứng và phần mềm nhằm giúp cho người lập trình dễ dàng nhận biết và áp dụng phù hợp.
==>Mô hình kiến trúc hệ thống: Có 3 loại kiến trúc cơ bản: Server-based Architecture, Client-based Architecture và Client-server based Architecture.
-->Server-based Architecture: Gồm một client đóng vai trò là một thiết bị đầu cuối(termial) và một server host(mainframe computer) có chức năng lưu trữ dữ liệu, thực thi và truy cập dữ liệu logic.
-->Client-based Architecture: Gồm 2 microcomputer, trong đó 1 đóng vai trò là server(lưu trữ dữ liệu) và một đóng vai trò là client chứa các thành phần xử lý và truy cập logic.
-->Client-Server based Architecture: với loại kiến trúc này, client sẽ chứa các thành phần trình bày và thực thi logic, còn server sẽ chứa chức năng truy cập và lưu trữ dữ liệu.
==>Kiến trúc phần mềm: Trình bày cách thức mà phần mềm sẽ hoạt động, nó như một đường đi bên trong của hệ thống. Mình xin lấy một ví dụ: Từ client, users gửi yêu cầu thông qua window form(web browser). Bên trong bắt đầu xử lý, xác định các control điều khiển, phân chia từng component. Sau đó thông qua phần xử lý data access để truy xuất và xử lý dữ liệu....
//Để xác định kiến trúc phần mềm, chúng ta có thể dựa vào các yêu cầu phi chức năng như tính bảo mật, hiệu suất... và điều kiện về vật chất của chúng ta.
b. Thiết kế giao diện:
Phần này trình bày các giao diện mà sẽ được coding trong tương lai, nó có thể là webform hay windowform. Với mỗi giao diện trình bày cho một chức năng chính. Các thành phần xử lý trên giao diện được đánh số và viết đặc tả. Ví dụ ta đánh dấu 1 textbox trên winform là 1; đặc tả:1,Textbox,txtHoten,Họ tên sinh viên. Tương ứng: stt,loại control, name, diễn giải.
Mình chỉ trình bày mang tính khái quát, tùy vào trường hợp cụ thể và sự tỉ mỉ của bạn mà có thể đặc tả chi tiết hơn.
Ôi, đau đầu quá, bữa nào rảnh tiếp nhé mấy bạn. Với kiến thức nhỏ nhoi của mình, sự sai sót là điều không tránh khỏi. Mong rằng được các bạn đóng góp ý kiến để phần sau mình viết tốt hơn!

Bạn đang nhầm lẫn giữa các khái niệm rồi. Thiết kế phần mềm và Design Pattern là hai khái niệm khác nhau.
Thiết kế phần mềm có thể sử dụng Design Pattern như 1 trong các công cụ để đạt được mục đích. Tuy nhiên Design Pattern chủ yếu nhằm vào lập trình hướng đối tượng và chỉ tập trung vào các bài toán thường gặp hay còn gọi là mẫu. Thông thường thiết kế phần mềm có thể áp dụng 1 hoặc 1 vài Pattern được mà thôi.
Về Đầu Trang Go down
http://www.bitware.vn
Sponsored content





Tổng quan về Thiết kế phần mềm [Phần 1] Empty
Bài gửiTiêu đề: Re: Tổng quan về Thiết kế phần mềm [Phần 1]   Tổng quan về Thiết kế phần mềm [Phần 1] Empty

Về Đầu Trang Go down
 
Tổng quan về Thiết kế phần mềm [Phần 1]
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
»  xin de thi Phan tich thiet ke thuat toan
» Phần mềm miễn phí cần thiết dành cho Windows
» các bạn nào có câu hỏi bài tập phân tích và thiết kế thuật toán cho tui đi!!!
» TOPIC: Quản lí dự án phần mềm.
» TOPIC: Lời khuyên học kĩ thuật phần mềm - Kỹ nghệ phần mềm

Permissions in this forum:Bạn không có quyền trả lời bài viết
Câu lạc bộ Hỗ Trợ Học Tập :: CÔNG NGHỆ PHẦN MỀM :: .::THIẾT KẾ PHẦN MỀM-
Chuyển đến