Phân tích thiết kế hệ thống thông tin quản lý khách hàng tại công ty Ánh Dương
Trang 1LỜI NÓI ĐẦU
Thế kỷ 21- thế kỷ của sự bùng nổ công nghệ thông tin, sự phát triển của các công nghệ tiên tiến như vũ bão, mang lại một luồng gió mới thổi vào nhận thức của mỗi người Song song đó, thế giới đang trong xu thế toàn cầu hóa, tất cả đều mang ý nghĩa hội nhập Lúc này, các doanh nghiệp và chính phủ không chỉ cạnh tranh với các doanh nghiệp trong một quốc gia mà còn cạnh tranh với các doanh nghiệp, chính phủ ở khắp thế giới Vì thế để tồn tại và phát triển, mục tiêu mà các doanh nghiệp hướng đến đầu tiên là nâng cao chất lượng phục vụ khách hàng Khách hàng là yếu tố sống còn của bất kỳ doanh nghiệp nào trong thế kỷ 21 Để có khách hàng đã khó nhưng để giữ khách hàng càng khó hơn nhiều Doanh nghiệp nào làm cho khách hàng thỏa mãn, doanh nghiệp đó sẽ phát triển tốt Chính phủ nào làm nhân dân hài lòng, chính phủ đó sẽ vững mạnh.
Trong bối cảnh hiện này, việc ứng dụng công nghệ thông tin vào lĩnh vực quản trị quan hệ khách hàng không là mới trên thế giới nhưng là mới
ở Việt Nam Nhiều vấn đề đặt ra làm thế nào đem đến cho khách hàng sự phục vụ tốt nhất, tiện lợi và hiệu quả nhất Do vậy, em quyết định chọn đề
tài ”Phân tích thiết kế hệ thống thông tin quản lý khách hàng tại công
ty Ánh Dương” để giúp công ty duy trì và phát triển mối quan hệ tốt đẹp
với khách hàng
Trang 2MỤC LỤC
LỜI NÓI ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ CƠ SỞ THỰC TẬP VÀ ĐỂ TÀI NGHIÊN CỨU 6
1 GIỚI THIỆU VỀ CƠ SỞ THỰC TẬP 6
1.1 Giới thiệu chung 6
1.2 Hệ thống tổ chức, chức năng, nhiệm vụ của bộ máy quản lý tại cơ sở thực tập 7
1.3 Thực trạng, kết quả hoạt động đã đạt được trong thời gian qua và phương hướng, nhiệm vụ trong thời gian tới của cơ sở thực tập 8
1.3.1 Kết quả hoạt động đã đạt được trong những năm qua 8
1.3.2 Phương hướng, nhiệm vụ trong thời gian tới 10
1.4 Thực trạng ứng dụng tin học hỗ trợ hoạt động quản lý và nghiệp vụ tại cơ sở thực tập 11
1.4.1 Tình hình trang thiết bị tin học tại công ty 11
1.4.2 Ứng dụng các phần mềm quản lý hiện thời tại công ty 11
2 SỰ CẦN THIẾT CỦA ĐỀ TÀI 12
3 LÝ DO CHỌN ĐỀ TÀI 12
3.1 Giảm chi phí hoạt động cho doanh nghiệp 13
3.2 Hỗ trợ cho quy trình bán hàng 13
3.3 Tính đơn giản 13
3.4 Nâng cao năng suất và hiệu quả công việc 14
3.5 Phục vụ lãnh đạo ra quyết định 14
CHƯƠNG 2: PHƯƠNG PHÁP LUẬN VỀ QUY TRÌNH XÂY DỰNG PHẦN MỀM 15
1 ĐẶC TRƯNG VÀ CHU KỲ SỐNG CỦA MỘT PHẦN MỀM 15
Trang 31.1 Đặc trưng của phần mềm quản lý khách hàng 15
1.2 Vòng dời phát triển của một phần mềm 16
2 QUY TRÌNH XÂY DỰNG MỘT PHẦN MỀM 18
2.1 Khảo sát hiện trạng và đặc tả yêu cầu 18
2.2 Thiết kế hệ thống 22
2.2.1 Quá trình thiết kế 22
2.2.2 Phương pháp thiết kế có cấu trúc 24
2.2.3 Thiết kế cấu trúc 25
2.2.4 Thiết kế giao diện 26
2.3 Lập trình và lựa chọn ngôn ngữ lập trình sử dụng 29
2.3.1 Kiểu dữ liệu 29
2.3.2 Cấu trúc ngôn ngữ 30
2.3.3 Module hoá và quản lý bộ nhớ 30
2.3.4 Quản lý lỗi 31
2.3.5 Hỗ trợ đa người dùng 31
2.3.6 Đặc trưng phi kỹ thuật khác 31
2.4 Phong cách lập trình 32
2.4.1 Tài liệu chương trình 33
2.4.2 Khai báo dữ liệu 34
2.4.3 Xây dựng câu lệnh 34
2.4.4 Vào/ ra 35
2.5 Kiểm tra và đảm bảp chất lượng phần mềm 35
2.5.1 Quá trình kiểm tra 36
2.5.2 Quá trình kiểm thử 37
2.6 Triển khai và đào tạo sử dụng 38
2.7 Bảo trì phần mềm 39
2.8 Quản lý thay đổi phần mềm 40
Trang 4CHƯƠNG III: PHÂN TÍCH THIẾT KẾ PHẦN MỀM QUẢN LÝ
KHÁCH HÀNG 42
1 XÁC ĐỊNH YÊU CẦU CỦA PHẦN MỀM 42
1.1 Khảo sát hệ thống 42
1.1.1 Giám đốc trung tâm công nghệ 42
1.1.2 Giám đốc phòng kỹ thuật 43
1.1.3 Nhân viên phòng kinh doanh 43
1.2 Phân tích nghiệp vụ 44
1.3 Phân tích chức năng của hệ thống mới 45
1.4 Sơ đồ luồng thông tin (IFD) 48
1.5 Sơ đồ luồng dữ liệu 53
1.6 Thiết kế kiên trúc hệ thống mới 57
2 THIẾT KẾ VÀ GIẢI THUẬT DỮ LIỆU 58
2.1 Chuẩn hoá dữ liệu 58
2.2 Thiết kế cơ sở dữ liệu 63
2.2.1.Thuế (frmTax, lstTax) 64
2.2.2 Tỉnh thành 64
2.2.4 Tình trạng hợp đồng 64
2.2.5 Nhân viên 65
2.2.6 Vị trí làm việc 65
2.2.7 Khách hàng 66
2.2.8 Người liên hệ 67
2.2.9.Lĩnh vực kinh doanh 67
2.2.10 Loại hình KD 67
2.2.11 Loại KH 68
2.2.12 Hợp đồng 68
2.2.13 Chi tiết hợp đồng 69
Trang 52.2.14 Nhật ký giao dịch 69
2.3 Sơ đồ liên kết dữ liệu 70
3 THIẾT KẾ CÁC GIẢI THUẬT 71
3.1 Thuật toán đăng nhập 71
3.2 Thuật toán cập nhật dữ liệu 72
3.3 Thuật toán sửa dữ liệu 73
3.4 Thuật toán lên báo cáo 74
4 CÁC FORM GIAO DIỆN 74
4.1 FORM đăng nhập 74
4.2 Giao diện chính của chương trình 75
4.2.1 Menu Hệ thống 76
4.2.2 Menu Thông tin khách hàng 79
4.2.3 Menu Thông tin hợp đồng 84
4.2.4 Menu thông tin giao dịch 87
4.2.5 Tra cứu tìm kiếm 88
4.2.6 Báo cáo 91
KẾT LUẬN VÀ PHƯƠNG HƯỚNG PHÁT TRIỂN CỦA CHƯƠNG TRÌNH .96
DANH MỤC TÀI LIỆU THAM KHẢO 97
PHỤ LỤC CODE CHƯƠNG TRÌNH 98
Trang 61 CHƯƠNG 1
TỔNG QUAN VỀ CƠ SỞ THỰC TẬP VÀ ĐỂ TÀI
NGHIÊN CỨU
1 GIỚI THIỆU VỀ CƠ SỞ THỰC TẬP
1.1 Giới thiệu chung
Tên giao dịch Ánh Dương JSC
Trang 7VI-TECH AMI Co.,ltdGia Long
1.2 Hệ thống tổ chức, chức năng, nhiệm vụ của bộ máy quản lý tại cơ sở thực tập.
Do mới thành lập nên điều kiện về cơ sở vật chất còn hạn chế, công tythuê trụ sở ở Số 10 Ngõ 308-Đường Minh Khai-Quận Hai Bà Trưng Công tyhiện tại có 14 người
Sơ đồ tổ chức
Chức năng của các phòng ban như sau:
- Phòng Giám đốc: là nơi làm việc của giám đốc công ty, quản lýchung tất cả các vấn đề của công ty
- Phòng kinh doanh: gồm 5 nhân viên kinh doanh về thiết bị vănphòng
- Phòng kĩ thuật: gồm 5 nhân viên chuyên sửa chữa,lắp đặt và bảohành các thiết bị văn phòng
- Phòng kho: gồm 1 nhân viên
- Phòng kế toán: 2 nhân viên
Sơ đồ tổ chức bộ máy quản lý của công ty được thể hiện trong sơ đồ sau:
Trang 8+ Giám đốc: quản lý chung tất cả các vấn đề của công ty, cả về hoạtđộng và tài chính, tìm kiếm khách hàng.
+ Trưởng phòng kinh doanh: điều hành các dự án trong công ty, quản
lý kinh doanh của công ty,quản lí các hạng mục kinh doanh của công ty,mởrộng và tìm kiếm khách hàng
+ Trưởng phòng kỹ thuật: quản lý các vấn đề kỹ thuật
+ Kế toán: Quản lí thu chi công nợ hàng ngày của công ty
1.3 Thực trạng, kết quả hoạt động đã đạt được trong thời gian qua và phương hướng, nhiệm vụ trong thời gian tới của cơ sở thực tập.
1.3.1 Kết quả hoạt động đã đạt được trong những năm qua.
Trải qua gần 1 năm thành lập và phát triển, công ty Ánh Dương đãđạt những kết quả như sau:
- Về đối tác: thiết lập quan hệ đối tác với nhiều công ty, cửa hàng,đại lý
- Ngoài ra còn có nhiều khách hàng trong nước tiêu biểu là: MaiHoang Informatics Co., Ltd; Ngoc Ha Service Informatics Co., Ltd; GIALONG,VI-TECH AMI Co.,ltd…
- Về dịch vụ:
Công ty Ánh Dưong tự tin đem đến cho khách hàng các sản phẩm và sựphục vụ với chất lượng cao, giá cả cạnh tranh và đảm bảo về thời hạn; Cácsản phẩm tiên tiến của thế giới; Dịch vụ hỗ trợ khách hàng hoàn hảo
Trang 9Các sản phẩm và dịch vụ do Ánh Dương phát triển đều chú trọng đếnđối tượng sử dụng để tạo ra giá trị gia tăng cho khách hàng và được phát triểntrên những công nghệ hiện đại nhất, đáp ứng chuẩn mực quốc tế.
Các dịch vụ chính của công ty là:
+ Cung cấp các loại mực cho máy in,máy photocopy với chấtlượng tốt nhất cho các khách hàng như HP, anpha…
+ Cung cấp các loại máy tính đồng bộ ,linh kiện máy tính,thiết
bị mạng, laptop của các hãng nổi tiếng như: IBM,HP,Sony vaio, Lenovo,
Compaq ,Samsung ,Foxcom,LG…
+ Cung cấp các loại máy in ,photocopy của các hãng Canon ,Hp,Epson, ricod , toshiba …
+ Bảo dưỡng các loại máy móc ,thiết bị văn phòng của các công
ty ,cửa hàng ,khách lẻ…
+ Thiết kế Website : Sắp tới công ty sẽ mở thêm mảng dịch vụthiết kế Website cho các công ty, cơ quan…
+ Phát triển ứng dụng trên nền web
Internet đã trở thành một yếu tố quan trọng trong đời sống của chúng ta
và nó làm thay đổi các hình thức trao đổi, kinh doanh truyền thống Để hỗ trợcác doanh nghiệp ứng dụng thành công các ưu thế nổi bật của Internet, như:
Giảm thiểu tối đa chi phí
Tránh mọi thất thoát tài sản
Nâng cao chất lượng trao đổi thông tin giữa nhà cung cấp vớingười tiêu dùng, giữa mọi người với nhau…
+ Tư vấn, thiết kế Mạng LAN/WAN/INTRANET: ISOFTCO cókhả năng tư vấn, thiết kế, triển khai các hệ thống LAN/WAN/Intranet chonhiều đối tượng khách hàng
Trang 10- Để nâng cao hiệu quả hoạt động kinh doanh của công ty cổ phầnđầu tư thương mại và sản xuất Ánh Dưong đã, đang và sẽ thực hiện các giảipháp sau :
+ Thương mại điện tử: công ty thực hiện việc kinh doanh quamạng nhằm tối ưu hoá các Tính năng sau:
Nhanh chóng tiết kiệm thời gian cho khách hàng và của cả công ty
Giảm thiểu chi phí tối đa
Đặt hàng mọi nơi
Tính tiền trực tuyến
Xác nhận đơn đặt hàng tự động qua mail
Hỗ trợ nhiều hình thức thanh toán
+ Nghiên cứu thị trường trực tuyến (Online Survey):
+ Phát triển thị trường của công ty ở các tỉnh miền Bắc và miền Trung + Nâng cao chất lượng phục vụ khách hàng
1.3.2 Phương hướng, nhiệm vụ trong thời gian tới.
Phương hướng, nhiệm vụ của công ty được thể hiện qua mục tiêu vàtầm nhìn trong thời gian tới Cụ thể là:
- Mục tiêu:
Mục tiêu của công ty TNHH phần mềm trí tuệ là trở thành nhà cungcấp mực in và thiết bị văn phòng hàng đầu cho các doanh nghiệp, tổ chức, cánhân ở Hà Nội và ngoại tỉnh mien Bắc
- Tầm nhìn trong tương lai:
+ Sáng tạo những giá trị vì khách hàng:
Luôn luôn cập nhật và phát triển công nghệ, thiết lập hệ thống kinhdoanh nhằm mục đích mang đến cho khách hàng những sản phẩm và dịch vụtốt nhất, mang lại hiệu quả đích thực cho khách hàng
+ Kinh doanh tôn trọng con người:
Trang 11Chúng tôi từng bước xây dựng Ánh Dương thành một công ty ngàycàng lớn mạnh và uy tín.
1.4.1 Tình hình trang thiết bị tin học tại công ty.
Là một công ty kinh doanh về mực in và các thiết bị văn phòng nênmọi vị trí làm việc trong công ty đều được trang bị máy tính, được kết nốimạng nội bộ và kết nối Internet tạo sự thuận lợi trong việc chia sẻ và quản lýthông tin.Mọi người làm viêc đều nghiêm túc và mọi người cùng nỗ lực hếtmình với công ty
1.4.2 Ứng dụng các phần mềm quản lý hiện thời tại công ty.
Là một công ty kinh doanh về mực in và các thiết bị văn phòng nhưngÁnh Dưong vẫn chưa chú trọng đến việc ứng dụng tin tác quản lý và nghiệp
vụ của mình
Tất cả các dự án của công ty đều học trong công quản lý thủ công vàthực hiện báo cáo công việc của nhân viên làm được hay chưa làm được trongngày bằng công cụ chủ yếu là Exel
2 SỰ CẦN THIẾT CỦA ĐỀ TÀI
Không thể phủ nhận rằng thành công của một doanh nghiệp phụ thuộc rấtnhiều vào mối quan hệ của doanh nghiệp với khách hàng Khi cạnh tranh trênthị trường diễn ra ngày càng găy gắt, việc thu hút và giữ chân khách hàng làrất khó khăn, thì quản lý khách hàng là việc rất quan trọng mà doanh nghiệpcần làm để có được khách hàng trung thành
Trang 12Ở hầu hết các doanh nghiệp, nhiệm vụ tập trung chăm sóc khách hàng vàcung ứng chính xác những gì khách hàng muốn luôn được nêu lên hàng đầu.Nếu không am hiểu khách hàng, doanh nghiệp có thể bị khách hàng từ bỏ đểtìm đến các nhà cung cấp khác Bản thân công ty cổ phần giải pháp phần mềmHoà Bình cũng luôn đặt khách hàng lên hàng đầu Nhưng chi phí tiếp thị lớnkhông nhất thiết sẽ mang lại thành công cho công ty Để sử dụng hiệu quả chiphí đó công ty cần phải đi đầu trong việc am hiểu, gặp gỡ khách hàng cũ cũngnhư nắm bắt thông tin về khách hàng mới Điều này giúp các nhân viên đi đúnghướng trong trao đổi với khách hàng, nhờ vậy không chỉ đem về hợp đồng chocông ty mà còn tạo ra mối quan hệ tốt đẹp làm cơ sở cho các giao dịch lâu dài
về sau
Để quản lý và khai thác hiệu quả một khối lượng thông tin lớn và phứctạp đó, cách phù hợp nhất là áp dụng công nghệ thông tin Ứng dụng côngnghệ thông tin giúp doanh nghiệp nâng cao giá trị khách hàng cũng như lợinhuận thu được từ họ
3 LÝ DO CHỌN ĐỀ TÀI
Từ nhu cầu thực tiễn của công ty cổ phần thương mại và sản xuất ÁnhDương, em đã tiến hành nghiên cứu xây dựng phần mềm giúp doanh nghiệpquản lý các thông tin khách hàng để nhân viên công ty sử dụng hiệu quả thờigian trao đổi và tiếp xúc với khách hàng Những lợi ích mà phần mềm hướngtới như sau:
3.1 Giảm chi phí hoạt động cho doanh nghiệp
- Bộ phận bán hàng có thể rút ngắn chu kỳ bán hàng và nâng cao cácđịnh mức quan trọng như doanh thu trung bình theo nhân viên, giá trịtrung bình đơn hàng và doanh thu trung bình theo khách hàng
- Bộ phận chăm sóc khách hàng có thể nâng cao năng suất phục vụ kháchhàng của từng nhân viên, nâng cao hệ số thỏa mãn đồng thời giảm thờigian phản hồi và thời gian giải quyết mỗi yêu cầu từ khách hàng
Trang 133.2 Hỗ trợ cho quy trình bán hàng
Hỗ trợ hoạt động bán hàng
- Quản lý và phân biệt khách hàng tiềm năng, khách hàng chính thức
- Quản lý và phân biệt khách hàng là cá nhân hay tổ chức
- Quản lý danh sách khách hàng (tên, số điện thoại, địa chỉ …), ngườiliên hệ Hệ thống báo cáo bán hàng theo các nguồn khác nhau
đi qua những kênh nội bộ phức tạp mới đến đúng bộ phận phụ trách về sảnphẩm, dịch vụ đó, nhưng thông qua hệ thống quản lý khách hàng, khách hàng
sẽ có cảm giác đang giao tiếp với một thực thể duy nhất và nhận được sựchăm sóc mang tính cá nhân
3.4 Nâng cao năng suất và hiệu quả công việc
Nhân viên thực hiện công việc một cách dễ dàng hơn tạo ra năng suấtcao trong công việc
Khách hàng tin tưởng vào chất lượng phục vụ, uy tín của công ty do vậycông ty có nhiều dự án được thực hiện tạo ra lợi nhuận cao
3.5 Phục vụ lãnh đạo ra quyết định
Phần mềm sẽ cung cấp cho nhà quản trị báo cáo thống kê về khách hàng,
số lượng hợp đồng được ký kết, kết quả kinh doanh của nhân viên, kết quả
Trang 14thực hiện các giao dịch với khách hàng để từ đó xác định được tình trạng pháttriển của công ty từ đó đưa ra các chiến lược kinh doanh cho phù hợp đồngthời có chế độ khen thưởng thích hợp với nhân viên của mình.
Trang 15CHƯƠNG 2
PHƯƠNG PHÁP LUẬN VỀ QUY TRÌNH XÂY DỰNG
PHẦN MỀM
1 ĐẶC TRƯNG VÀ CHU KỲ SỐNG CỦA MỘT PHẦN MỀM
1.1 Đặc trưng của phần mềm quản lý khách hàng
Phần mềm quản lý khách hàng ngoài những đặc tính của phần mềmthông thường nó còn có những điểm riêng như sau:
Mục tiêu: phần mềm giúp tạo lập một môi trường làm việc tích hợp,
phục vụ có hiệu quả các nhu cầu nhập liệu, hoạt động tác nghiệp, tra cứu, báocáo, tổng hợp, thống kê các thông tin khách hàng, giao dịch và hợp đồng vớikhách hàng
Môi trường hệ thống: số lượng người dùng khá lớn (bao gồm cả ban
lãnh đạo và các nhân viên phòng kinh doanh) Người dùng chủ yếu truy vấn
dữ liệu trực tiếp từ kho dữ liệu tổng hợp, đòi hỏi khả năng bảo mật cao, khôngcho phép thông tin bị thay đổi từ bên ngoài…
Giao diện người dùng: dễ hiểu, tuân thủ và tương thích với nghiệp vụ
bằng tay đang được thực hiện
Yêu cầu về chức năng: quản lý và phân loại được khách hàng, theo dõi
quá trình giao dịch với khách hàng và các hợp đồng mang lại cho công ty Từ
đó xác định được hiệu quả công việc của từng nhân viên kinh doanh trongcông ty
Các đặc tính của ứng dụng
- Dữ liệu đầu vào được nhập bằng bàn phím, công việc này thường đượcgiao cho từng nhân viên kinh doanh phụ trách đảm nhận
Trang 16- Dữ liệu đầu ra chủ yếu dưới dạng báo cáo, màn hình hiển thị khi truyvấn thông tin.
- Các thuật toán xử lý dữ liệu khá đơn giản
- Các yêu cầu khác: hệ thống phải đáng tin cậy, đưa ra các báo cáo,thông tin chính xác, kịp thời và được thiết kế mở giúp nâng cấp chươngtrình trong tương lai để có thế phát triển xứng tầm với hệ thống quản lýkhách hàng đúng tiêu chuẩn
1.2 Vòng dời phát triển của một phần mềm
Vòng đời của phần mềm là cấu trúc các hoạt động trong quá trình pháttriển của hệ thống phần mềm và đưa phần mềm vào sử dụng bao gồm: đặc tảyêu cầu, thiết kế, đánh giá và nâng cấp Theo Ian Sommerville, có thể phânchia quá trình thiết kế làm một số mô hình khác nhau như: mô hình tuần tự(thác nước), mô hình tương tác và mô hình xoáy ốc Hai mô hình tương tác và
mô hình xoáy ốc thường áp dụng cho các dự án phần mềm tương đối phức tạp,
có nhiều rủi ro trong qúa trình thực hiện Nhưng với các phần mềm quản trịquan hệ khách hàng số các nghiệp vụ cần xử lý không nhiều, quy trình tươngđối đơn giản và dễ hiểu do vậy chúng ta có thể ứng dụng mô hình thác nướcnhư được biểu diễn trong hình 2.1
Các giai đoạn của mô hình như trên được gọi là mô hình thác nước vìđầu ra của một giai đoạn lại là đầu vào của giai đoạn tiếp theo Điểm yếu cơbản của mô hình này là gặp phải khó khăn trong quá trình điều chỉnh để phùhợp với sự thay đổi yêu cầu của khách hàng khi đang trong quá trình thựchiện Do vậy, mô hình này chỉ phù hợp khi yêu cầu của phần mềm và hệthống được xác định rõ ràng và đầy đủ trong quá trình thiết kế Các giai đoạncủa mô hình thác nước bao gồm:
(1) Xác định và phân tích yêu cầu: Nhu cầu về ứng dụng, sự cần thiết và
mục tiêu của hệ thống được tập hợp thông qua trao đổi với những người dùng
Trang 17hệ thống Những thông tin này được xác định rõ dựa trên ý kiến của cả nhữngngười dùng và các phân tích viên
(2) Thiết kế phần mềm và hệ thống: Quá trình thiết kế hệ thống có thể
được phân thành thiết kế phần cứng và phần mềm Thiết kế phần mềm là cáchthể hiện các chức năng của phần mềm để có thể dịch thành ngôn ngữ máy màmáy tính có thể đọc và hiểu được
Hình 2.1 Mô hình thác nước
(3) Triển khai và kiểm thử từng phần: Trong suốt giai đoạn này, các thiết
kế phần mềm được mã hoá thành một hoặc nhiều chương trình máy tính Kiểmthử từng phần đảm bảo từng phân hệ đáp ứng các chức năng cần có
(4) Tích hợp và kiểm thử hệ thống: Các phân hệ chương trình được tích
hợp và thực hiện kiểm thử toàn bộ hệ thống để đánh giá các yêu cầu phân tích
có được thoả mãn hay không Sau quá trình kiểm thử, hệ thống phần mềm sẽđược bàn giao cho khách hàng
(5) Vận hành và bảo trì: Tuy không nhất thiết nhưng đây thường là giai
đoạn dài nhất trong vòng đời phát triển của phần mềm Hệ thống được cài đặt
và đưa vào ứng dụng trong thực tế Hoạt động bảo trì sẽ sửa các lỗi phát sinhtrong quá trình sử dụng chưa được phát hiện trong các giai đoạn trước, nângcấp hệ thống để đáp ứng yêu cầu mới phát sinh
Trang 182 QUY TRÌNH XÂY DỰNG MỘT PHẦN MỀM
2.1 Khảo sát hiện trạng và đặc tả yêu cầu
Đây là quá trình xác định các dịch vụ hệ thống cần cung cấp và các ràngbuộc đối với hệ thống, là giai đoạn nền tảng để thiết kế một phần mềm
Quá trình thu thập này được định nghĩa là một tập hợp các hoạt động nhằmxác định các yêu cầu của phần mềm quản trị quan hệ khách hàng và đặc tả các yêucầu đó Trong đó, yêu cầu là các mô tả trừu tượng đến chi tiết về dịch vụ mà hệphần mềm cung cấp cũng như các ràng buộc đối với sự phát triển và hoạt độngcủa nó Các yêu cầu này sẽ giúp người dùng phần mềm nêu rõ các dịch vụ hệthống cung cấp cùng các ràng buộc trong hoạt động của nó Với các kỹ sư phầnmềm, làm rõ các yêu cầu sẽ là cơ sở quan trọng để xây dựng phần mềm mới Cácyêu cầu của phần mềm có thể được chia làm 3 loại sau :
Các yêu cầu chức năng: mô tả các chức năng hay các dịch vụ mà hệthống phần mềm cần cung cấp
Hình 2.2 Quá trình thu thập yêu cầu
Các yêu cầu phi chức năng: mô tả các ràng buộc tới dịch vụ và quá trình
Trang 19phát triển hệ thống (về chất lượng, về môi trường, chuẩn sử dụng, quy trìnhphát triển…)
Các yêu cầu miền/ lĩnh vực: những yêu cầu đặt ra từ miền ứng dụng,phản ứng những đặc trưng của miền đó
Một số thông tin khác, như báo cáo về tính khả thi của hệ thống cũng nhưđặc tả phần mềm cũng như đưa ra trong giai đoạn này Kết quả của giai đoạn này
là Dự án khả thi, Mô hình hệ thống Các đặc tả yêu cầu và tài liệu yêu cầu baogồm các định nghĩa yêu cầu và đặc tả các yêu cầu đó, kết luận về tính khả thi,…
Có bốn bước cơ bản trong quá trình thu thập yêu cầu được mô tả trênhình 2.2 bao gồm:
Nghiên cứu tính khả thi: nhằm đi đến kết luận "Có nên xây dựng phần
mềm hay không? " Đánh giá xem phần mềm xây dựng có thoả mãn các yêucầu của người dùng không và có đem lại hiệu quả kinh tế cho đơn vị cũngnhư nằm trong ngân sách có thể chi không
Phân tích yêu cầu: đây là quá trình tìm ra các yêu cầu của phần mềm
thông qua quan sát hệ thống hiện tại, tại công ty cổ phần giải pháp phần mềmHoà Bình, thảo luận với người sử dụng, phân tích công việc Những hoạtđộng trong giai đoạn này được mô tả trong hình 2.3 bao gồm :
Hiểu biết lĩnh vực ứng dụng: phân tích viên hệ thống trước khi đi sâu phân
tích chi tiết cần có một cái nhìn tổng quát về lĩnh vực ứng dụng Để phân tíchcác yêu cầu của phần mềm quản trị quan hệ khách hàng, phân tích viên cần tìmhiểu thông tin về hoạt động trong lĩnh vực tìm kiếm, phục vụ chăm sóc kháchhàng càng nhiều càng tốt
Thu thập yêu cầu: trao đổi với người dùng để tìm hiểu yêu cầu của phần
mềm mới thông qua các phương pháp phỏng vấn, quan sát, điều tra bằng bảngcâu hỏi, nghiên cứu tài liệu…
Phân loại yêu cầu: từ các yêu cầu không có cấu trúc thu thập được, phân
tích viên sẽ phân loại các yêu cầu này
Trang 20Giải quyết mâu thuẫn: giữa những người dùng luôn có những mâu thuẫn,
do vậy phân tích viên cần xác định và giải quyết mâu thuẫn này
Xếp loại ưu tiên các yêu cầu: trong số các yêu cầu sẽ có những yêu cầu
quan trọng hơn những yêu cầu khác Giai đoạn này liên quan đến công tác tìm
và sắp xếp theo mức độ ưu tiên của yêu cầu
Thẩm định yêu cầu: kiểm tra lại các yêu cầu có đủ và đáp ứng đúng mô
tả của người dùng không? Thẩm định yêu cầu liên quan đến việc kiểm tra tínhđúng đắn, tính nhất quán, tính hiện thực và kiểm tra được của yêu cầu cụ thểlà: có thoả mãn được nhu cầu của người dùng? Yêu cầu không mâu thuẫnnhau? Yêu cầu phải đầy đủ chức năng và ràng buộc? Yêu cầu phải là hiệnthực? Yêu cầu có thể kiểm tra được?
Hình 2.3 Ví dụ về khảo sát yêu cầu của lĩnh vực quản trị quan hệ
khách hàng
Trong quá trình phân tích thường gặp những khó khăn sau :
Dễ hiểu lầm do khách hàng sử dụng các thuật ngữ riêng
Các khách hàng thường mơ hồ về yêu cầu không biết mình muốn cụ thểđiều gì, dễ lẫn lộn giữa yêu cầu và mong muốn
Trang 21Nhiều nhóm người dùng có những yêu cầu mâu thuẫn nhau.
Những yếu tố tổ chức và chính sách có thể làm ảnh hưởng đến yêu cầu.Yêu cầu thường mang tính đặc thù, khó hiểu, khó có chuẩn chung
Các yêu cầu thường thay đổi trong quá trình phân tích : môi trườngnghiệp vụ thay đổi, có nhóm người đối tượng liên quan mới
Một trong số các đầu ra của quá trình phân tích yêu cầu là tập hợp các
mô hình biểu diễn các mô tả tổng quát hệ thống Có nhiều kiểu mô hình khácnhau và chúng cung cấp các cách hiểu biết hệ thống khác nhau Đây là cầunối giữa các phân tích viên và thiết kế viên Tuỳ thuộc vào bản chất của hệthống cần phân tích mà phân tích viên sẽ lựa chọn một hoặc một số mô hình
hệ thống phù hợp theo đối tượng, luồng dữ liệu, lớp đối tượng và thừa kế,phân rã chức năng,…
Mục tiêu cuối cùng của bước này là cán bộ phân tích phải xác định đúng, đầy
đủ và chính xác tất cả các yêu cầu của hệ thống làm căn cứ cho các bước sau
Xác định yêu cầu: hoạt động chuyển các thông tin được thu thập trong
hoạt động phân tích thành những tài liệu phản ánh chính xác các nhu cầu củangười dùng
Đặc tả yêu cầu: mô tả chi tiết và chính xác các yêu cầu hệ thống, cụ thể hoá
các yêu cầu đó Đây cũng đồng thời là căn cứ để nghiệm thu phần mềm sau này.Ngoài ra, nếu khách hàng chưa xác định được cụ thể các yếu tố đầu vào,quy trình xử lý và các yếu tố đầu ra hoặc người kỹ sư phần mềm cũng còn chưachắc chắn về tính hiệu quả của một giải thuật thì sẽ cần làm bản mẫu phần mềm.Điều này thường gặp với các hệ thống lớn và phức tạp Đây là một tiến trình mà
kỹ sư phần mềm tạo ra một mô hình cho phần mềm cần phải xây dựng Bản mẫunày sẽ là cơ sở để kỹ sư phần mềm cùng khách hàng đánh giá để tiếp tục pháttriển đi đến sản phẩm cuối cùng
Trang 222.2 Thiết kế hệ thống
Một thiết kế tối ưu là chìa khoá dẫn đến thành công của dự án Nhưngkhông thể chuẩn hoá quá trình thiết kế theo bất kỳ một quy tắc nhất định nào.Thiết kế là một quá trình đòi hỏi tính sáng tạo, tinh tế và hiểu biết sâu sắc của kỹ
sư thiết kế Quá trình thiết kế phần mềm đòi hỏi cán bộ phân tích thiết kế hệthống hiểu rõ quy trình, cách thức truyền dữ liệu trong tổ chức, mối quan hệ giữaquy trình đó với công tác ra quyết định và quy trình đó giúp thực hiện các mụctiêu của hệ thống như thế nào Đó là lý do giải thích mối quan hệ chặt chẽ giữaquá trình phân tích và thiết kế hệ thống Thiết kế phần mềm cung cấp cách biểudiễn phần mềm có thể được xác nhận về chất lượng, là cách duy nhất mà chúng
ta có thể chuyển hoá một cách chính xác các yêu cầu của khách hàng thành sảnphẩm hay hệ thống phần mềm cuối cùng Không có thiết kế có nguy cơ đưa ramột hệ thống không ổn định - một hệ thống sẽ thất bại Thiết kế tốt là bước quantrọng đầu tiên để đảm bảo chất lượng phần mềm
2.2.1 Quá trình thiết kế
Mục tiêu của quá trình thiết kế là xây dựng một bản sơ đồ thiết kếchương trình Các đầu mối trong bản thiết kế thể hiện các thực thể như quátrình xử lý, các chức năng chương trình… Các đường nối kết thể hiện quan hệgiữa các thực thể như gọi đến chức năng, sử dụng chương trình con… Quátrình thiết kế là một dây chuyền các chuyển đổi Các kỹ sư thiết kế không đưatới kết quả cuối cùng ngay mà phát triển thông qua nhiều phiên bản khácnhau Quá trình thiết kế là sự hoàn thiện và chi tiết hoá các thiết kế trước Quátrình đó có thể được minh hoạ trong hình 2.4
Quá trình thiết kế còn là sự phát triển một số mô hình của hệ thống theonhiều mức độ trừu tượng khác nhau Khi một hệ thống được phân tích, các lỗi
và những chỗ bị bỏ sót trong các giai đoạn trước sẽ được phát hiện và làmhoàn thiện dần qua các bản thiết kế Hình 2.5 minh hoạ mô hình chung của
Trang 23quá trình thiết kế và các mô tả thiết kế được viết trong các giai đoạn khácnhau của quá trình thiết kế
Hình 2.4 Quá trình hoàn thiện bản thiết kế
Hình 2.5 Mô hình chung của quá trình thiết kế
Tài liệu đặc tả là kết quả đầu ra của các hoạt động thiết kế Những đặc tảnày có thể là những mô tả khái quát để làm rõ yêu cầu người dùng hoặc là nhữngdiễn giải cách thức thực hiện một yêu cầu nào đó Trong các giai đoạn sau củaquá trình thiết kế, các đặc tả sẽ càng chi tiết hơn Kết quả cuối cùng của quá trìnhnày là các đặc tả chi tiết về thuật toán và cấu trúc dữ liệu sẽ được cài đặt Hình2.6 mô tả các quá trình thiết kế cho thấy các giai đoạn của quá trình thiết kế đượcsắp xếp có thứ tự Những thực tế, các hoạt động thiết kế được thực hiện songsong với nhau Tuy vậy, các hoạt động này cũng là những công việc cần thựchiện trong quá trình thiết kế một phần mềm, bao gồm:
Thiết kế kiến trúc: phân tích các chương trình con của phần mềm và xác
định các mối quan hệ giữa các phân hệ
Đặc tả khái quát: các chương trình con sẽ được mô tả chung về yêu cầu
chức năng cũng như các ràng buộc
Trang 24Thiết kế giao diện: thiết kế giao diện giữa các chương trình con với nhau,
mô tả cần rõ ràng, giúp người đọc hiểu cách dùng các chương trình con
Thiết kế các phân hệ: thiết kế việc phân chia dịch vụ của các chương
trình con và giao diện các dịch vụ đó
Thiết kế cấu trúc dữ liệu: thiết kế và mô tả cấu trúc dữ liệu của hệ thống Thiết kế thuật toán: thiết kế và mô tả các thuật toán được sử dụng trong
2.2.2 Phương pháp thiết kế có cấu trúc
Phương pháp thiết kế có cấu trúc đã được sử dụng phổ biến và rộng rãitrong phân tích và thiết kế hệ thống từ những năm 1970 Mặc dù, hiện nay,phương pháp thiết kế hướng đối tượng đã dần thay thế cho phương pháp thiết
kế có cấu trúc, song phương pháp này vẫn có một chỗ đứng nhất định và vẫn
là phương pháp được sử dụng nhiều nhất trong thực tế Gần 40 năm phát triểnphương pháp thiết kế có cấu trúc đã được rất nhiều người cải tiến và ngàycàng hoàn thiện Phương pháp này là sự đúc kết kinh nghiệm phát triển vàtriển khai của nhiều phần mềm trên khắp thế giới Phương pháp có cấu trúc làphương pháp dễ áp dụng, nhưng lại rất hiệu quả và có thể sử dụng trong các
hệ thống quản trị quan hệ khách hàng
Trang 25Phương pháp thiết kế có cấu trúc tập trung vào phân tích các dòng dữliệu và quá trình xử lý Chính vì vậy, các công cụ hỗ trợ thiết kế chủ yếu làcác sơ đồ dòng dữ liệu, sơ đồ quan hệ thực thể, sơ đồ cấu trúc… Phương phápthiết kế có cấu trúc bao gồm tập hợp các hoạt động, ký hiệu, mẫu biểu báocáo, các nguyên tắc và những hướng dẫn thiết kế Phương pháp có cấu trúcthường hỗ trợ một vài hoặc tất cả các công cụ sau:
Sơ đồ luồng dữ liệu thể hiện sự phân rã chức năng chương trình, tậptrung vào luồng dữ liệu vào ra, trao đỗi giữa các phân hệ
Sơ đồ quan hệ thực thể biểu diễn cấu trúc kết hợp các dữ liệu
Sơ đồ chức năng trong hệ thống cùng các mối quan hệ tương tác giữa chúng.Không thể so sánh để xác định công cụ nào là tốt nhất, việc thành côngcủa một công cụ là phụ thuộc vào mức độ phù hợp với lĩnh vực ứng dụng.Trong những trường hợp tương đối phức tạp như với một hệ thống quản lý cổđông, cổ tức, chúng ta phải kết hợp sử dụng một số công cụ này với nhau để
có hình dung rõ nét về hệ thống
2.2.3 Thiết kế cấu trúc
Quá trình thiết kế để xác định các phân hệ trong một hệ thống, cấu trúccủa từng phân hệ và quan hệ giữa chúng được gọi là thiết kế cấu trúc hay còngọi là thiết kế chức năng Kết quả của quá trình này mô tả cấu trúc của phầnmềm Đây là giai đoạn đầu của quá trình thiết kế phần mềm, nối kết giữa quátrình đặc tả yêu cầu và giai đoạn thiết kế Giai đoạn thiết kế cấu trúc thườngđược tiến hành song song với một số hoạt động đặc tả yêu cầu Các bước côngviệc không thể thiếu trong quá trình thiết kế cấu trúc bao gồm :
Cấu trúc hệ thống: hệ thống sẽ được cấu trúc thành một số phân hệ
chính và thiết lập quan hệ giữa chúng
Mô hình hoá điều khiển: tạo lập mô hình chung để quản lý các mối
quan hệ giữa các phân hệ trong hệ thống
Trang 26Phân chia các module: mỗi phân hệ trong chương trình lại được chia
thành các module nhỏ
2.2.4 Thiết kế giao diện
Thiết kế giao diện tương tác giữa người dùng với máy tính là một bướcquan trọng trong thiết kế ứng dụng phần mềm Giao diện cần phù hợp vớitrình độ, kinh nghiệm và mong đợi của người dùng Người dùng hệ thốngthường đánh giá một hệ thống thông qua giao diện hơn là qua các chức năngchương trình Những chương trình có giao diện không đáp ứng yêu cầu ngườidùng thì sẽ không được chấp nhận Mặc dù, giao diện văn bản (text - based)vẫn được sử dụng trong một số chương trình, nhưng công nghệ ngày nay vàcùng với phạm vi người dùng phổ cập của một phần mềm quản trị quan hệkhách hàng đang được xem xét, chúng ta sẽ tập trung vào loại giao diện đồhoạ (Graphical User Interfaces - GUI) Đây là loại giao diện thân thiện ngườidùng với một số đặc điểm sau:
Các nguyên tắc thiết kế: khi thiết kế giao diện cần chú ý đến nhu cầu,
kinh nghiệm và khả năng của người sử dụng Kỹ sư thiết kế cần lưu ý đếnnhững yếu tố con người trong thiết kế (hạn chế ghi nhớ trong thời gian ngắn,hay mắc lỗi…) Dưới đây là một số nguyên tắc khi thiết kế:
Thân thiện người dùng: màn hình giao diện nên sử dụng các thuật ngữ
và khái niệm quen thuộc với người dùng và được thiết kế theo những giấy tờ
họ đang làm việc
Thống nhất: giao diện nên được thống nhất trong thiết kế, cách bố trí các
thông tin trên các cửa sổ chương trình
Giảm sự bất ngờ: người dùng không bị bất ngờ với những phản ứng của
hệ thống
Khôi phục: giao diện cho phép người dùng khôi phục lại khi có lỗi
Trang 27Các đặc điểm của giao diện đồ hoạ
- Các cửa sổ: Nhiều cửa sổ chương trình cho phép các thông tin khácnhau được hiển thị cùng lúc trên màn hình máy tính
- Biểu tượng: Các biểu tượng thể hiện các tính chất thông tin, chươngtrình khác nhau
- Menu: Các lệnh chương trình được lựa chọn từ menu và không cầnnhập qua cửa sổ lệnh
- Trỏ chuột: Cho phép lựa chọn các đối tượng trên màn hình trực quanbằng con chuột máy tính
- Đồ hoạ: Các đồ hoạ được hiển thị trên màn hình cùng dòng văn bản
Các loại giao diện chương trình
Màn hình trực quan
+ ưu điểm
- Dễ học
- Người dùng có thể thấy ngay kết quả của tác vụ
- Các lỗi được phát hiện và sửa chữa dễ dàng
Trang 28- Thao tác chậm.
- Có thể rất phức tạp nếu thông tin nhiều
+ Phạm vi ứng dụng
- Nhiều chương trình khác nhau
Điền trên mẫu biểu
+ ưu điểm
- Dữ liệu đầu vào đơn giản
- Dễ học và dễ kiểm tra tính chính xác
+ Nhược điểm
- Chiếm nhiều diện tích màn hình
- Phát sinh vấn đề khi lựa chọn của người dùng không phù hợp với thôngtin được chọn
Hướng dẫn sử dụng: giao diện nên có phần trợ giúp người dùng theo ngữ cảnh.
Trình bày thông tin: đây là cách thể hiện kết quả của chương trình cho
người dùng Thông tin có thể được thể hiện trực tiếp bằng bảng biểu hoặc
Trang 29được chuyển sang một dạng khác như các loại biểu đồ Trong đó, cách dùngmàu sắc của giao diện cũng giúp người dùng dễ hiểu chương trình hơn Một
số nguyên tắc khi sử dụng màu sắc để thiết kế giao diện là:
Chỉ nên sử dụng từ 4-5 màu trong một cửa sổ màn hình, các màu nàycũng không nên quá gay gắt
Đổi màu khi trạng thái của dữ liệu thay đổi giúp người sử dụng dễ nhận ra
Hướng dẫn người dùng: chương trình cần có chức năng trợ giúp người dùng
thông qua các thông báo lỗi, trợ giúp ngữ cảnh và tài liệu hướng dẫn sử dụng
2.3 Lập trình và lựa chọn ngôn ngữ lập trình sử dụng
Bước lập trình là một tiến trình dịch thiết kế chi tiết thành chương trình baogồm các tập hợp các dòng mã lệnh máy tính có thể hiểu được Mỗi ngôn ngữ lậptrình có những giới hạn nhất định do vậy dựa trên các đặc trưng của ngôn ngữ,chúng ta sẽ chọn ngôn ngữ lập trình phù hợp với chương trình ứng dụng tránh lựachọn sai dẫn đến phải hay đổi ngôn ngữ hoặc sửa đổi thiết kế hệ thống
Trang 30Hình 2.6 Vị trí của lập trình trong quá trình phát triển phần mềm
2.3.2 Cấu trúc ngôn ngữ
Cấu trúc của ngôn ngữ là yếu tố quyết định thao tác gì và thao tác nhưthế nào trên dữ liệu Chúng cung cấp các khả năng xử lý tuần tự, lặp, cáchthức lựa chọn các cấu trúc dữ liệu Nói chung, ngôn ngữ càng phong phú thì
nó càng có nhiều cấu trúc
2.3.3 Module hoá và quản lý bộ nhớ
Module hoá là cách thức tạo ra chương trình con và hàm Các ngôn ngữkhác nhau ở cách hỗ trợ chương trình con và dữ liệu của nó Trước hết, khảnăng định nghĩa chương trình con, hàm là rất quan trọng để có được các đặctrưng chương trình mong muốn Thứ hai, dữ liệu trong các module được quản
lý như thế nào là điều rất quan trọng Dữ liệu có thể là cục bộ hoặc tổng thể.Khả năng có được dữ liệu cục bộ rất quan trọng trong việc che giấu thông tin
Trang 31và giảm thiểu việc liên kết Ngoài ra, quản lý bộ nhớ còn giúp chương trìnhphân bổ bộ nhớ máy tính khi cần Với những ngôn ngữ không cung cấp khảnăng này, chương trình có thể bị treo do không có khả năng cung cấp, phát bộnhớ lúc cần thiết.
2.3.4 Quản lý lỗi
Quản lý lỗi là mức chương trình được cài đặt để phát hiện và quản lý lỗi
mà không phải dừng chương trình Khả năng này sẽ làm tăng độ phức tạp và
mở rộng phạm vi hữu ích của ngôn ngữ
2.3.5 Hỗ trợ đa người dùng
Phạm vi cấu trúc ngôn ngữ trong quản lý bộ nhớ, biến cục bộ/ tổng thể, quản
lý chương trình con là sẵn dùng, nó quyết định tính hỗ trợ đa người dùng
2.3.6 Đặc trưng phi kỹ thuật khác
Các đặc trưng này cũng quan trọng như các đặc trưng kỹ thuật khi lựachọn ngôn ngữ và bao gồm:
1 Tính đồng nhất: là cách sử dụng ký hiệu nhất quán trong cả ngôn ngữ.
2 Tính sáng sủa: đề cập đến mâu thuẫn giữa ý nghĩ của con người và
chương trình dịch Lý tưởng nhất là ý nghĩ của con người tương tự với sựbiên dịch của chương trình dịch và chương trình dịch ra giống sự nhận thứccủa con người
3 Tính cô đọng: tính cô đọng của ngôn ngữ nằm ở sự ngắn gọn Các đặc
trưng của chương trình bao gồm sự kết cấu có cấu trúc, từ khoá và viết tắt,hàm có sẵn đã đơn giản hoá việc lập trình
4 Tính địa phương - cục bộ: là sự cung cấp sự phân đoạn tự nhiên của
mã lệnh, làm đơn giản hoá việc học, trực quan hoá từng phần của vấn đề và
có thể mô phỏng các giải pháp
Trang 325 Tính tuyến tính: đề cập tới mức độ có thể đọc mã một cách liên tiếp
(tuần tự) Ngôn ngữ càng tuyến tính thì càng dễ phân đoạn và hiểu đoạn mã
6 Dễ lập trình
7 Tính khả chuyển: là khả năng đáp ứng của mã trên các cơ sở thực
hiện khác nhau Các cơ sở thực hiện bao gồm cả phần cứng, hệ điều hành, haymôi trường thực hiện phần mềm Ví dụ như chương trình gốc có thể đượcchuyển từ bộ xử lý này sang bộ xử lý khác và từ chương trình biên dịch nàysang chương trình biên dịch khác với rất ít hoặc không cần sửa đổi gì, chươngtrình gốc vẫn không thay đổi ngay cả khi môi trường của nó thay đổi như việccài đặt mới hệ điều hành,…
Ngoài ra, công nghệ phần mềm ngày nay còn được trợ giúp bởi mộtcông cụ mới CASE - phần mềm kỹ sư trợ giúp máy tính Công cụ này khôngnhững hỗ trợ trọng quá trình thiết kế mà còn hỗ trợ lập trình, sinh mã và nhiềucông đoạn của quá trình sản xuất phần mềm
Tóm lại, như chúng ta đã biết đặc thù của phần mềm quản lý cổ đông, cổtức là kiểu ứng dụng thời gian thực và tập trung vào luồng dữ liệu vào ra Dovậy những yêu cầu quan trọng của một ngôn ngữ trong chương trình quảntrị quan hệ khách hàng là phải hỗ trợ đa người dùng, quản lý được các kiểu
dữ liệu như dữ liệu số, văn bản, memo, ngày, logic… và hỗ trợ nhiều cấutrúc ngôn ngữ
2.4 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
dễ hiểu của chương trình nguồn Các yếu tố của phong cách bao gồm: tài liệubên trong chương trình, phương pháp khai báo dữ liệu, cách xây dựng câulệnh và các kỹ thuật vào/ ra
Trang 332.4.1 Tài liệu chương trình
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 têngọi định danh (biến và nhãn), tiếp tục với vị trí và thành phần của việc chúthích, và kết luận với cách tổ chức trực quan của chương trình Việc lựa chọncác tên gọi định danh có nghĩa là điều chủ chốt cho việc hiểu chương trình.Những ngôn ngữ giới hạn độ dài tên biến hay nhãn làm các tên mang nghĩa
mơ hồ Cho dù một chương trình nhỏ thì một tên có ý nghĩa làm “ đơn giảnhoá việc chuyển đổi từ cú pháp chương trình sang cấu trúc ngữ nghĩa bêntrong” Một điều 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 ý nghĩa 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ệt
để hiểu trong bước cuối cùng của kỹ nghệ phần mềm - bảo trì, nhất là nhữngphần mềm quản lý như quản lý cổ đông, cổ tức cần được nâng cấp bảo trìthường xuyên để đáp ứng sự thay đổi của thực tế 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íchchức năng là hai phạm trù đòi hỏi cách tiếp cận có hơi khác
Lời chú thích mở đầu nên xuất hiện ở ngay đầu của mọi module Địnhdạng cho lời chú thích như thế là:
1 Một phát biểu về mục đích chỉ rõ chức năng module
2 Mô tả giao diện bao gồm:
Một mẫu cách gọi
Mô tả về dữ liệu
Danh sách tất cả các module thuộc cấp
3 Thảo luận về dữ liệu thích hợp (như các biến quan trọng và những hạnchế, giới hạn 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 module bao gồm:
- Tên người thiết kế module (tác giả)
Trang 34- Tên người xét duyệt và ngày tháng.
- 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ươngtrình gốc và được dùng để mô tả cho các khối chương trình
2.4.2 Khai báo dữ liệu
Thứ tự khai báo dữ liệu nên được chuẩn hoá cho dù ngôn ngữ lập trìnhkhông có yêu cầu bắt buộc nào về điều đó Các tên biến ngoài việc có nghĩacòn nên mang thông tin về kiểu của chúng Ví dụ nên thống nhất các tên biếncho kiểu số nguyên, kiểu số thực… Cần phải chú giải về mục đích đối với cácbiến quan trọng, đặc biệt là các biến tổng thể Các cấu trúc dữ liệu nên đượcchú giải đầy đủ về cấu trúc và chức năng, và các đặc thù về sử dụng
2.4.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 quy tắc quan trọng hơn cả: mỗi câulệnh nên đơn giản và trực tiếp Cách xây dựng câu lệnh đơn và việc lùi trong
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ệnhchương trình gốc riêng lẻ có thể được đơn giản hoá bởi:
Tránh dùng các phép kiểm tra điều kiện phức tạp
Khử bỏ các phép kiểm tra điều kiện phủ định
Tránh lồng nhau nhiều giữa các điều kiện hay chu trình
Dùng dấu ngoặc để làm sáng tỏ các biểu thức logic hay số học
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.Chỉ dng các tính năng chuẩn của ngôn ngữ
Để hướng tới chương trình dễ hiểu luôn nên đặt ra câu hỏi: liệu 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?
Trang 352.4.4 Vào/ ra
Vào ra của các module nên tuân thủ theo một số hướng dẫn sau:
Làm hợp lệ mọi thông tin vào
Giữ cho định dạng thông tin vào đơn giản
Giữ cho định dạng thông tin 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
2.5 Kiểm tra và đảm bảp chất lượng phần mềm
Kiểm tra và đảm bảo chất lượng phần mềm là quá trình đánh giá xemchương trình có phù hợp với những đặc tả yêu cầu và đáp ứng mong đợi củakhách hàng không Công việc này được tiến hành ở mọi công đoạn phát triểnphần mềm : giai đoạn phân tích - xét duyệt đặc tả yêu cầu, giai đoạn thiết kế -xét duyệt đặc tả thiết kế, giai đoạn mã hoá - kiểm thử chương trình Qúa trìnhnày phải được tiến hành thường xuyên sau mỗi giai đoạn sản xuất phần mềm.Kiểm tra và đảm bảo chất lượng phần mềm bắt đầu từ khi đánh giá khảo sátyêu cầu người dùng đến khi thiết kế và lập trình và kết thúc khi kiểm thử phầnmềm Quá trình này liên quan đến hai mục đích khác nhau, đó là phần mềmđáp ứng nhu cầu khách hàng và quá trình sản xuất không có sai sót Theo đó,giai đoạn này cũng được chia thành hai hoạt động riêng lẻ là kiểm thử phầnmềm (software testing) nhằm tìm các sai sót trong khi vận hành chương trình.Trong một số tài liệu khác, quá trình này được chia thành hai công việc là xácđịnh (verification) đảm bảo phần mềm theo đúng đặc tả, thiết kế và tìm các lỗilập trình và thẩm định (validation) để đảm bảo phần mềm đáp ứng nhu cầungười dùng, hoạt động hiệu quả và phát hiện các lỗi phân tích, lỗi thiết kế (lỗimức cao)
Trang 36Hình 2.7 Công tác kiểm tra và kiểm thử phần mềm
2.5.1 Quá trình kiểm tra
Quá trình kiểm tra được tiến hành ở mọi công đoạn phát triển của phầnmềm và không thực hiện trên chương trình
Quá trình này được thực hiện theo các mức khác nhau bao gồm:
Kiểm tra đơn vị (Unit test): được tiến hành cho mỗi đơn vị mã nhỏ nhất
đảm bảo chúng hoạt động tốt
Kiểm tra tích hợp (Subsystem integration test): kiểm tra mặt logic và xử
lý phù hợp của các khối, kiểm tra việc truyền tin giữa chúng
Kiểm tra hệ thống (System test): đánh giá xem các đặc tả chức năng có
được đáp ứng không, các thao tác giao diện có giống thiết kế không…
Kiểm tra chấp thuận (Acceptance testing): đây là bước kiểm tra cuối cùng
trước khi phần mềm được đưa vào sử dụng và thường được tiến hành trên dữ liệuthực của khách hàng Kiểm tra chấp thuận có thể phát hiện ra các lỗi bị bỏ quatrong các giai đoạn trước do sự khác nhau giữa dữ liệu thực và dữ liệu kiểm tra
Có hai kiểu chiến lược kiểm tra được áp dụng bao gồm:
Kiểu thứ nhất: liên quan đến logic được kiểm tra như thế nào trong ứng
dụng Chiến lược kiểm tra logic có thể là black - box hoặc white - box Chiếnlược kiểm tra black - box cho rằng module liên quan đến đầu vào và đầu racác chi tiết logic chi tiết được che dấu và không cần phân tích Chiến lược
Trang 37black - box có tính hướng dữ liệu White - box hướng tới việc cho rằng logicđặc trưng là quan trọng và cần phải kiểm tra White - box đánh giá một vàihoặc tất cả mặt logic để kiểm tra được tính đúng đắn của chức năng White -box hướng về logic (giải thuật).
Kiểu thứ hai: liên quan tới việc kiểm tra được tiến hành thế nào, không
quan tâm chiến lược kiểm tra logic Nó là top down hoặc bottom up Top down coi chương trình chính là quan trọng nhất nên cần phải phát triển vàkiểm tra trước và tiếp tục trong quá trình phát triển Bottom - up cho rằng cácmodule và chương trình riêng rẽ cần được kiểm tra trước và sau đó được kếthợp lại để kiểm tra tổ hợp
-Các chiến lược kiểm tra kể trên không loại trừ lẫn nhau, chúng có thểđược sử dụng độc lập đồng thời nhằm phát hiện hết các lỗi tiềm ẩn
2.5.2 Quá trình kiểm thử
Quá trình kiểm thử này được thực hiện ngay trên chương trình, cần có
mã nguồn từ đó sẽ xác định được các lỗi lập trình, đánh giá được tính hiệuquả của phần mềm và đây cũng là cách duy nhất để kiểm tra các yêu cầu phichức năng Công việc này thường do bộ phận kiểm thử (test) thực hiện baogồm các công việc sau :
Tham gia phân tích yêu cầu của khách hàng
Lập kế hoạch test
Xây dựng tiêu chuẩn nghiệm thu
Xây dựng hướng dẫn test (bản thiết kế test, kịch bản test)
Thực hiện test
Hỗ trợ các vấn đề liên quan đến test
Báo cáo và tổng hợp kết quả test
Lập và lưu các hồ sơ liên quan đến test
Trang 38Thu thập, kiểm soát các dữ liệu liên quan đến các hoạt động test
Tính toán, phân tích các chi tiêu liên quan đến các hoạt động test
Các bước công việc của bộ phận Test được thực hiện song song với cácbước trong quá trình phát triển phần mềm
2.6 Triển khai và đào tạo sử dụng
Quá trình triển khai được xem như một giai đoạn quan trọng tiếp sau cácgiai đoạn khảo sát, phân tích và thiết kế phát triển hệ thống đã được đề cậptrên đây Nhiều người dùng vẫn coi triển khai là một phần việc tất yếu đi kèmkhi chuyển giao phần mềm, nên khi đánh giá thường chỉ quan tâm đến cácchức năng và tính năng của hệ thống mà quên một điều quan trọng rằng đó lànhững tiềm năng sẵn có trong hệ thống Để đưa hệ thống cùng toàn bộ tínhnăng ưu việt của nó vào ứng dụng trong thực tế thì chỉ có quá trình triển khaitốt mới có thể biến các tiềm năng đó thành hiện thực Nói cách khác, các tínhnăng có sẵn trong phần mềm chỉ là điều kiện "cần", còn quy trình triển khaihợp lý, khoa học mới là điều kiện "đủ" để ứng dụng thành công hệ thống Tỷ
lệ thất bại của các phần mềm do quá trình triển khai vẫn đang chiếm một tỷ lệrất cao mà nguyên nhân chủ yếu là do :
Năng lực của người sử dụng còn hạn chế
Truyền đạt và thông tin không tốt
Phương pháp triển khai thiếu tính khoa học và không rõ ràng
Đào tạo người sử dụng là một hoạt động không thể thiếu trong quá trìnhtriển khai bất kỳ một phần mềm nào Mục tiêu của công tác này là người dùngđược cổ đông, cổ tức để điều hành trôi chảy hệ thống mới, thông báo một sốtình huống có thể gặp lỗi khi vận hành sản phẩm để người dùng biết cách xửtrí Đào tạo không chỉ bao gồm các hoạt động nhập dữ liệu, lập báo cáo mà
Trang 39còn phải giúp người dùng hiểu được cách thức vận hành của phần mềm Đốivới công tác tin học hoá các nghiệp vụ quản trị quan hệ khách hàng, đâykhông chỉ là chuyển đổi phần mềm quản lý trong các phòng ban liên quan từcác tài liệu thiếu hệ thống, phân tán sang một hệ CSDL trong máy tính màcòn là sự thay đổi tư duy của người sử dụng Những người sử dụng cần đượcđào tạo về những cách thức cụ thể trong công việc, giải thích các quy trìnhnghiệp vụ thủ công thay đổi như thế nào khi được thực hiện bằng phần mềm.Tuy vậy, đào tạo cũng là một yếu tố mang tính chủ quan cao nên đòi hỏi phải
có một phương pháp luận khoa học và dễ hiểu
2.7 Bảo trì phần mềm
Không thể thiết lập một hệ thống đáp ứng mọi thay đổi về yêu cầu Theothời gian, các yêu cầu người dùng trước đây đã trở nên lỗi thời và cần phảithay đổi chương trình để đáp ứng những yêu cầu mới Môi trường hệ thốngcũng có thể thay đổi khi phần cứng mới được lắp đặt, phát sinh các lỗi mớitrong quá trình sử dụng Quá trình thay đổi hệ thống sau khi chuyển giao và
sử dụng được gọi là bảo trì phần mềm Sự thay đổi có thể chỉ là sửa lỗi lậptrình, nhưng cũng có thể cần phải thay đổi lại thiết kế hệ thống Có 4 hoạtđộng trong giai đoạn bảo trì
Bảo trì hiệu chỉnh: từ các thông báo lỗi trong quá trình vận hành
chương trình, kỹ sư phần mềm sẽ phân tích và hiệu chỉnh các lỗi này
Bảo trì tiếp hợp: phát sinh khi có sự thay đổi thường xuyên của mỗi trường
như phần cứng, hệ điều hành hay các thiết bị ngoại vi được nâng cấp và thay đổi.Đây là hoạt động sửa đổi phần mềm để thích ứng được với những thay đổi củamôi trường
Bảo trì hoàn thiện: khi một phần mềm đã hoàn thiện được đưa vào sử
dụng, các yêu cầu về những khả năng mới, các thay đổi những chức năng đãcó… được người dùng gửi đến Để thoả mãn các yêu cầu kiểu đó cần tiến
Trang 40hành bảo trì hoàn thiện Hoạt động này chiếm hầu hết các công sức tiêu tốncho việc bảo trì phần mềm.
Bảo trì phòng ngừa: phần mềm cần được thay đổi để cải thiện tính năng
bảo trì hay độ tin cậy trong tương lai hoặc để cung cấp một nền tảng tốt hơncho những mở rộng sau này
Quá trình bảo trì thường xuất phát từ một tập hợp các yêu cầu thay đổi củangười dùng hệ thống Chi phí và ảnh hưởng của sự thay đổi này được đánh giá.Khi những thay đổi này được chấp nhận, kế hoạch phát triển hệ thống sẽ đượcxây dựng Quá trình bảo trì sẽ bao gồm các bước sau như hình 2.11
Hình 2.8 Tổng quan về quá trình bảo trì
Công nghệ bảo trì đưa ra chìa khoá để cải tiến năng suất bảo trì Vớinhững thiết kế cẩn thận, sự cung cấp tài liệu kỹ lưỡng và một loạt các phươngpháp kiểm tra hoàn thiện, các lỗi sẽ dễ dàng được chuẩn đoán và hiệu chỉnhkhi chúng xảy ra, phần mềm sẽ dễ sửa Thời gian chi phí cho mỗi yêu cầu bảotrì sẽ ít hơn
2.8 Quản lý thay đổi phần mềm
Trong việc phát triển các phần mềm, rất hiếm khi gặp một ứng dụngkhông có thay đổi Sự thay đổi xảy ra trong tất cả các giai đoạn của quá trìnhphát triển ứng dụng Do đó, các thủ tục để quản lý sự thay đổi là rất cần thiết
để duy trì tính đúng đắn và trật tự trong nhóm dự án Có 3 loại thay đổi chủyếu trong vòng đời phát triển của một phần mềm bao gồm:
Quản lý thay đổi ứng dụng: ứng dụng thường xuyên phải thiết kế lại vì
các lý do sau dự án vượt quá ngân sách, ứng dụng chậm hoặc có nhiều lỗi