Phương pháp hướng dữ liệuPhương pháp hướng đối tượngPhương pháp tổ chức quản lýXây dựng phương ánTổ chức nhân sựƯớc lượng rủi ro, chi phíLập và theo dõi kế hoạch triển khai.Trong phần tiếp theo của giáo trình này, chúng ta chỉ quan tâm đến các phương phápxây dựng. Về phương pháp tổ chức quản lý chúng ta có thể tham khảo trong giáo trình Quảnlý dự án xây dựng các hệ thống thông tin.3.2. Các phương pháp xây dựng phần mềm3.2.1. Cách tiếp cậna) Từ trên xuốngĐây là cách giải quyết vấn đề theo hướng phân tích. Khi tiến hành xây dựng phần mềmtheo cách này, chúng ta bắt đầu với những thành phần chính của hệ thống. Sau đó, các thànhphần này sẽ được phân tích thành các thành phần chi tiết và cụ thể hơn. Quá trình phân tíchnày sẽ kết thúc khi các kết quả thu được có mức độ phức đạp đúng với ý muốn của nhà xâydựng phần mềm.b) Từ dưới lênNgược lại với phương pháp từ trên xuống, phương pháp từ dưới lên là cách giải quyếtvấn đề theo hướng tổng hợp. Với phương pháp này, chúng ta tiến hành xây dựng những thànhphần chi tiết, cụ thể mà mà chúng ta dự tính là sẽ có trong hệ thống. Sau đó, các nhà pháttriển phần mềm sẽ tiến hành kết hợp các thành phần chi tiết này lại với nhau để tạo nên cácthành phần chính mà hệ thống cần phải có.203.2.2. Cách tiến hànha) Phương pháp hướng chức năngVới phương pháp này công việc xây dựng phần mềm được thực hiện dựa trên các chứcnăng mà hệ thống cần thực hiện. Hay nói cách khác chúng ta chú trọng đến thành phần xử lýcủa hệ thống:Các thao tác tính toánCác thao tác phát sinhCác thao tác biến đổi.Phương pháp chung để giải quyết vấn đề là áp dụng nguyên lý chia để trị. Khi tiếnhành xây dựng phần mềm theo phương pháp này, chúng ta sẽ chia các công việc lớn mà hệthống cần thực hiện hành các công việc nhỏ hơn độc lập nhau. Việc phân chia các công việcđược tiến hành cho đến khi các công việc thu được đủ nhỏ để chúng ta có thể tiến hành xâydựng hoàn chỉnh. Hình dưới: Minh họa cách tiếp cận theo hướng chức năng.Phương pháp hướng chức năng chú trọng đến cách để giải quyết vấn đề nhưng khôngcó khả năng che dấu các thông tin trạng thái của hệ thống. Điều này dẫn đến việc các chứcnăng trong hệ thống không tương thích với nhau trong việc thực hiện thay đổi các thông tintrong hệ thống. Chính vì vậy mà cách tiếp cận này chỉ thích hợp khi trong hệ thống có rất ítthông tin cần phải quản lý và chia sẻ giữa các chức năng với nhau. Để mô hình hóa cách xửlý thông tin trong hệ thống dùng lược đồ dòng dữ liệu (Data Flow Diagrams).DFD là một công cụ đơn giản và hữu ích để miêu tả cách thức hoạt động của hệ thống.DFD sử dụng các ký hiệu sau để mô tả hệ thống:Ô vuông có góc tròn được dùng để biểu diễn các chức năng của hệ thống.21Ô vuông dùng để biểu diễn thành phần dữ liệu trong hệ thống.Hình tròn dùng để biểu diễn các thành phần bên ngoài có giao tiếp với hệ thống.Dấu mũi tên dùng để biểu diễn hướng di chuyển của dữ liệu.Các từ khóa and và or dùng để liên kết các dòng dữ liệu khi cần thiết.b) Phương pháp hướng dữ liệuNgược lại với phương pháp hướng chức năng, phương pháp hướng dữ liệu chú trọngnhiều đến thành phần dữ liệu cần phải xử lý trong hệ thống:Tổ chức dữ liệuKhối lượng lưu trữTốc độ truy xuấtKhi tiến hành thiết kế theo phương pháp hướng dữ liệu chúng ta bắt đầu với việc thiếtkế các cấu trúc dữ liệu cần thiết có trong bài toán, sau đó mới tiến hành thiết kết các thao tácđể vận hành trên các cấu trúc dữ liệu đã thiết kế.22Phương pháp này đặc biệt chỉ thích hợp trong các loại phần mềm chỉ có chức năngchính là lưu trữ và thao tác trên các loại dữ liệu. Hạn chế của nó là không quan tâm đến cácchức năng mà hệ thống cần phải đáp ứng. Điều này dẫn đến việc có khả năng hệ thống saukhi thiết kế không có đầy đủ các chức năng cần thiết.Kết quả thu được sau khi thiết kế theo phương pháp hướng dữ liệu là mô hình thực thểkết hợp (Entity Relationship Diagram). Một mô hình thực thể kết hợp điển hình gồm có 2thành phần cơ bản: các thực thể và các mối kết hợp.Một thực thể là một đối tượng trong thế giới thực mà hệ thống có quan hệ, hoặctương tác qua lại. Các thực thể được biểu diễn trong sơ đồ bằng các hình vuôngcùng với tên và có thể có thêm các thuộc tính của thực thể.Mối kết hợp biểu diễn sự kết hợp giữa hai hay nhiều thực thể. Mỗi mối kết hợpgồm có ba thành phần cơ bản:Mối kết hợp giữa các thực thể được biểu diễn băng một đường thẳng nốigiữa hai thực thể.Tên của môi liên hệ dùng để miêu tả ý nghĩa của mối liên hệ.Bản số ở hai đầu của mối kết hợp dùng để xác định con số tối đa và tốithiểu các thực thể liên quan đến mối kết hợp.c) Phương pháp hướng đối tượngPhương pháp thiết kế hướng đối tượng là sự kết hợp của phương pháp hướng dữ liệu vàphương pháp hướng chức năng. Phương pháp này chú trọng đến cả thành phần dữ liệu vàchức năng của hệ thống.Theo phương pháp hướng đối tượng thì một hệ thống phần mềm là một tập hợp các đốitượng có khả năng tương tác với nhau. Các đối tượng chính là các sự vật và hiện tượng vật lýcũng như trừu tượng mà chúng ta có trong thế giới thực. Mỗi đối tượng có dữ liệu riêng đượcche dấu với thế giới bên ngoài và các thao tác mà đối tượng có thể thực hiện trên các thànhphần dữ liệu của đối tượng.23Các đối tượng liên lạc, trao đổi thông tin với nhau bằng cách gửi các thông điệp chonhau. Các thông điệp mà mỗi đối tượng có thể xử lý được gọi là giao diện của đối tượng. Khiđó mọi thao tác liên quan đến các đối tượng được phải thực hiện thông qua giao diện của đốitượng. Điều này giúp chúng ta đảm bảo rằng các thông tin bên trong các đối tượng đưọc bảovệ một cách chắc chắn.Chúng ta có thể sử dụng nhiều hệ thống ký hiệu khác nhau để mô tả các đối tượng củahệ thống cũng như mối liên hệ giữa chúng. Một trong số các hệ thống ký hiệu phổ biến hiệnnay là hệ thốnng ký hiệu UML.4. CÔNG CỤ VÀ MÔI TRƯỜNG PHÁT TRIỂN PHẦN MỀM4.1. Mở đầu4.1.1. Khái niệmCác công cụ và môi trường phát triển phần mềm là các phần mềm hỗ trợ chính ngườiphát triển trong quá trình xây dựng phần mềm. Các phần mềm này có tên gọi chung là CASE(Computer Aided Software Engineering) tools.Trong quá trình phát triển phần mềm theo các quy trình trên, các CASE tools có thể hỗtrợ cụ thể cho một giai đoạn nào đó hay cũng có thể hỗ trợ một số giai đoạn, trong trường hợpnày tên gọi chung thường là môi trường phát triển phần mềm-SDE (Software DevelopmentEnvironment).Việc hỗ trợ của các CASE tools trong một giai đoạn bao gồm 2 hình thức chính:- Cho phép lưu trữ, cập nhật trên kết quả chuyển giao với một phương pháp nào đó.- Cho phép phát sinh ra kết quả chuyển giao cho giao đoạn kế tiếp.4.2. Phần mềm hỗ trợ thực hiện các giai đoạn4.2.1. Phần mềm hỗ trợ phân tích- Công việc hỗ trợ chínho Soạn thảo các mô hình thế giới thựco Ánh xạ vào mô hình logic- Các phần mềm: WinA&D, Analyst Pro,4.2.2. Phần mềm hỗ trợ thiết kế- Công việc hỗ trợ chínho Soạn thảo các mô hình logic24o Ánh xạ vào mô hình vật lý- Các phần mềm: QuickUML, Power Designer, Oracle Designer4.2.3. Phần mềm hỗ trợ lập trình- Công việc hỗ trợ chínho Quản lý các phiên bản (Dữ liệu, chương trình nguồn, giao diện)o Biên dịch- Các phần mềm: Visual Studio, Visual Basic, Visual C++4.2.4. Phần mềm hỗ trợ kiểm chứng- Công việc hỗ trợ chínho Phát sinh tự động các bộ dữ liệu thử nghiệmo Phát hiện lỗi- Các phần mềm: WinRuner4.3. Phần mềm hỗ trợ tổ chức, quản lý việc triễn khai4.3.1. Xây dựng phương án- Công việc hỗ trợ chínho Tạo lập phương áno Dự đoán rủi roo Tính chi phí- Các phần mềm: MS Project, Visio4.3.2. Lập kế hoạch- Công việc hỗ trợ chínho Xác định các công việco Phân côngo Lập lịch biểuo Theo dõi thực hiện- Các phần mềm: MS Project, Visio25