Tài liệu tham khảo kỹ thuật công nghệ, chuyên ngành tin học Xây dựng phần mềm quản trị quan hệ khách hàng tại công ty cổ phần giải pháp phần mềm Hoà Bình
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ểncủ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ổivà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 doanhnghiệp và chính phủ không chỉ cạnh tranh với các doanh nghiệp trongmột quốc gia mà còn cạnh tranh với các doanh nghiệp, chính phủ ở khắpthế giới Vì thế để tồn tại và phát triển, mục tiêu mà các doanh nghiệphướng đến đầu tiên là nâng cao chất lượng phục vụ khách hàng Kháchhà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àolĩ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áchhà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 ”Xây dựng phần mềm quản trị quan hệ khách hàng tạicông ty cổ phần giải pháp phần mềm Hoà Bình” để 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
Sinh viên
Trang 2CHƯƠNG 1 TỔNG QUAN VỀ CƠ SỞ THỰC TẬPVÀ ĐỂ 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 đầy đủ: Công ty Cổ phần Giải pháp phần mềm Hoà Bình.
Tên giao dịch: PeaceSoft Solutions Corporation / PeaceSoft.
Loại hình: Liên doanh với nước ngoài theo hình thức Cổ phần.
Ngày thành lập: 16 tháng 4 năm 2001.
Vốn điều lệ: 11.000.000.000 VNĐ (Mười một tỷ đồng).
Trụ sở chính: Tòa nhà 17T10, khu đô thị Trung Hòa - Nhân Chính,quận Thanh Xuân, Hà Nội.
Điện thoại & Fax: 04-251-2484
Văn phòng đại diện: Tầng 2, tòa nhà văn phòng Thủy Tiên, 128 Phan Đăng
Lưu, Quận Phú Nhuận, Thành phố Hồ Chí Minh ĐT & Fax: 08-292-0210.
Hỗ trợ khách hàng: Đường dây nóng 1900-585-888.
GPKD / MS thuế: 0103007937 / 0101148316, đăng ký tại Hà Nội.
Website / Email: www.peacesoft.net / peace@peacesoft.net
Ý nghĩa Logo: Logo của công ty ngoài 4 cánh màu xanh hòa bìnhxung quanh thể hiện mong muốn toàn cầu hóa, bêntrong là chữ PSS đại diện cho "PeaceSoft Solutions",trong đó chữ S ở giữa được cách điệu thể hiện bờ biểnnước Việt Nam và cũng là ngọn lửa đỏ của sức trẻ luônkhao khát ý chí phấn đấu vươn lên.
Trang 3- Dịch vụ tư vấn trọn gói tin học hóa tổng thể;
- Phát triển & vận hành dịch vụ Thương mại điện tử (ChợĐiệnTử) &Thương mại di động.
1.3 GÓI SẢN PHẨM VÀ DỊCH VỤ CUNG CẤP
1.3.1 Gói sản phẩm
Cổng thương mại điện tử
Mua bán - Đấu giá dễ dàng & hiệu quả với ChợĐiệnTử : sàn đấu giátrực tuyến trên trang web ChợĐiệnTử của Công ty cổ phần giải phápphần mềm Hoà Bình là sàn mua bán trực tuyến thu hút nhiều nhất cácdoanh nghiệp và cá nhân tham gia Một sợi dây chuyền, một cái túi xáchhay thậm chí là một cái ấm đun nước Tất cả đều được đưa lên đấu giátrên website này.
Website Gian hàng trực tuyến: con đường ngắn nhất đếnTMĐT
Thay vì bỏ chi phí đầu tư cho mặt bằng, cửa hàng, nhân viên bán hàng tạiquầy Lần đầu tiên tại Việt Nam, thông qua ChợĐiệnTử, người dùng cóthể nhanh chóng trở thành chủ cửa hàng trực tuyến chỉ sau 3 bước trong10 phút Quan trọng hơn là cửa hàng đó được đặt tại một khu chợ đôngđúc hàng đầu Việt Nam!
ChợĐiệnTử: môi trường giao dịch trực tuyến hàng đầu ViệtNam
ChợĐiệnTử - sản phẩm hợp tác với Tập đoàn dữ liệu quốc tế IDG - là sàngiao dịch TMĐT theo mô hình C2C (Rao vặt, Đấu giá) và B2C (Doanhnghiệp bán hàng trực tiếp) được nhắc đến như eBay của Việt Nam.
Dòng sản phẩm E4Portal
Trang 4E4Mart: giải pháp Siêu thị trực tuyến tổng thể: E4Mart là giảipháp công nghệ xây dựng các hệ thống siêu thị trực tuyến quy mô lớntrên nền Internet, có hệ thống chức năng hoàn hảo đáp ứng mọi yêu cầunghiệp vụ siêu thị với tính bảo mật cao; giao diện đa ngôn ngữ đẹp &chuyên nghiệp cùng các công cụ Online Marketing giúp doanh nghỉệpbán hàng hiệu quả tới khách hàng toàn quốc mọi nơi mọi lúc thông quakênh truyền thông Internet hiện đại.
E4News: công nghệ báo điện tử chuyên nghiệp : E4News làmột biến thể của E4Portal, tập hợp nhiều Module chức năng chuyên biệtvề quản trị nội dung, xử lý ảnh & các tài liệu multimedia, phân quyền &biên tập tin tức và xuất bản lên Internet dưới hình thức báo điện tử trựctuyến.
E4Web: công nghệ xây dựng website Doanh nghiệp vừa &nhỏ: Là một phiên bản giản lược của giải pháp Cổng thông tin điện tửtích hợp trên Internet (Internet E4Portal) - 1 trong 3 phần mềm ưu việtNhất Việt Nam do Hiệp hội phần mềm Việt Nam (VINASA) bình chọn -E4Web là nền tảng công nghệ vượt trội và bền vững cho các doanhnghiệp vừa và nhỏ ứng dụng CNTT và TMĐT trong kinh doanh.
E4Portal: giải pháp Cổng thông tin điện tử tích hợp dành choTổ chức - Đơn vị quy mô vừa & lớn: E4Portal là một bộ công cụ vớinền tảng công nghệ ưu việt để xây dựng các cổng thông tin điện tử đachức năng trên Internet và trong Intranet nội bộ doanh nghiệp, tổ chức.
Các sản phẩm khác
E4GIS: công nghệ bản đồ trực tuyến trên nền tảng nguồnmở- Cùng với sự nở rộ của trào lưu phần mềm mã nguồn mở (MNM),các hệ thống thông tin địa lý (GIS) MNM đã xuất hiện góp phần đạichúng hóa, đưa khái niệm Location-based Computing (tin học địa điểm)phát triển vượt bậc, đến với đông đảo người dùng toàn thế giới dướinhiều hình thức khác nhau như dịch vụ tìm đường, tìm địa điểm (nhà
Trang 5hàng, khách sạn, điểm du lịch…) trực tuyến, hay đơn giản chỉ là dungoạn vòng quanh thế giới qua màn hình máy tính với Google Maps,Microsoft Virtual Earth, NASA World Wind…
E4Meeting: phần mềm Hội nghị truyền hình qua Internet- Hộinghị truyền hình (HNTH) qua Internet là một công nghệ truyền thôngcộng tác đa phương tiện cho phép hai hay nhiều người ở các vị trí khácnhau có thể nhìn và nghe thấy nhau qua kết nối Internet sử dụng máy tínhvà thiết bị Webcam Âm thanh và hình ảnh được truyền đi với chất lượngcao tuỳ chất lượng đường truyền và thiết bị, giúp tiết kiệm chi phí đi lại,tăng cường sự tiếp xúc thường xuyên với đồng nghiệp, đối tác và kháchhàng cũng như các mối quan hệ cá nhân.
1.3.2 Dịch vụ
Tư vấn tin học hóa
Tư vấn TMĐT & e-Marketing: qua kinh nghiệm xây dựng và vậnhành thành công ChợĐiệnTử, đội ngũ chuyên gia TMĐT lâu năm ởPeaceSoft nắm được với đặc thù kinh doanh, quy mô và thị trường củakhách hàng thì áp dụng hình thức TMĐT nào là hiệu quả và tiết kiệmnhất; làm thế nào để sản phẩm của của doanh nghiệp dễ tiếp cận thịtrường và khách hàng tiềm năng nhất với chi phí thấp nhất PeaceSoft làmột trong những người đi tiên phong và thấu hiểu TMĐT và Marketingtrực tuyến nhất Việt Nam!
Tư vấn trọn gói tin học hóa tổng thể: với bề dày kinh nghiệm tưvấn tin học hóa trong các dự án lớn cho các Bộ - Ban - Ngành, TrườngĐại học, Tổng công ty Đội ngũ chuyên gia tư vấn CNTT của PeaceSoftvới chuyên môn là một sự lựa chọn tốt cho các đơn vị - tổ chức và doanhnghiệp lớn có nhu cầu ứng dụng CNTT sâu rộng một cách hiệu quả nhằmnâng cao năng lực sản xuất kinh doanh và phục vụ xã hội, đáp ứng tốt cácyêu cầu hội nhập.
Trang 6Phần mềm và Website
Xây dựng & duy trì trọn gói website tổ chức, doanh nghiệp:với dịch vụ website trọn gói, khách hàng hoàn toàn yên tâm khi tin tưởnggửi gắm bộ mặt trực tuyến của doanh nghiệp mình cho sản phẩm ưu việtvà đội ngũ chuyên nghiệp, giàu kinh nghiệm của công ty.
Phát triển & gia công phần mềm theo nhu cầu: khởi nguồn từnghiệp vụ phát triển & gia công phần mềm cho các đối tác & khách hàngtrong & ngoài nước bao gồm Nhật Bản & Singapore; với đội ngũ cán bộphân tích, thiết kế, lập trình và kiểm soát chất lượng đông đảo và giàukinh nghiệm; PeaceSoft xứng đáng là một địa chỉ tin cậy và chất lượng đểkhách hàng gửi gắm các nhu cầu phát triển ứng dụng của mình.
Tích hợp hệ thống
Tích hợp các hệ thống nghiệp vụ: tích hợp hệ thống là một thuậtngữ CNTT chỉ hành động ghép nối các thành phần phần cứng - phầnmềm - mạng với nhau thành một hệ thống hoàn chỉnh phục vụ một nhucầu tính toán hoặc truyền dẫn dữ liệu cụ thể nào đó PeaceSoft từng cókinh nghiệm thiết kế và triển khai thi công dự án tích hợp quy mô vừa cógiá trị tới 5 tỷ VNĐ phục vụ việc tính toán tập trung và truy vấn thông tintừ hơn 2.000 thiết bị trạm phân tán trên toàn quốc tại cùng một thời điểm.Cung ứng, triển khai & lắp đặt thiết bị công nghệ thông tin:PeaceSoft triển khai cung ứng thiết bị phần cứng (máy chủ, máy trạm,thiết bị mạng & các thiết bị nghiệp vụ khác ), triển khai lắp đặt & tíchhợp hệ thống cho khách hàng trong các dự án tin học hóa Sản phẩm củachúng tôi đến từ các nhà cung cấp hàng đầu thế giới với các dịch vụ hậumãi và bảo hành tại chỗ chuyên nghiệp & chu đáo.
1.4 THÀNH TÍCH & GIẢI THƯỞNG
- Giải thưởng “Sao Vàng Đất Việt 2006”: 1 trong 149 thương hiệu tiêubiểu toàn quốc do Hội Doanh nghiệp trẻ VN xét chọn;
Trang 7- 1 trong 4 “Giải pháp CNTT hay NHẤT 2006” do cộng đồng Ngườitiêu dùng, Doanh nghiệp & Tạp chí PC-World Việt Nam bình chọn;- 1 trong 3 “Phần mềm ưu việt NHẤT Việt Nam” và được gắn biểu
tượng 5 sao đẳng cấp quốc tế do Hiệp hội phần mềm Việt Nam(VINASA) và Bộ Bưu chính Viễn thông đánh giá và xét tặng;
- Cúp “Sao Khuê 2006” dành cho giải pháp TMĐT xuất sắc nhất doVINASA và Bộ Thương Mại trao tặng;
- Giải thưởng “Quả cầu vàng CNTT 2003” và danh hiệu “Gương mặt tiêubiểu CNTT Việt Nam 2003” do Thủ tướng Phan Văn Khải trao tặng;- Giải A “Tuổi trẻ sáng tạo hướng tới tương lai 2002” do TW Đoàn và
- Và nhiều thành tích nổi bật khác…
1.5 CƠ CẤU TỔ CHỨC CỦA CÔNG TY
Tổng số nhân sự của công ty cổ phần giải pháp phần mềm Hoà Bìnhhiện là 70 người, với tuổi đời trung bình là 25 - độ tuổi vừa chín tới và tâmlý làm việc ổn định cho công việc trong ngành công nghiệp công nghệ thôngtin Ở công ty cổ phần giải pháp phần mềm Hoà Bình không có khái niệmphân biệt tuổi tác mà chỉ có sự phân chia thứ bậc dựa trên năng lực làm việcvà khả năng đóng góp lợi ích cho tập thể.
Trang 8Mọi vị trí - kể cả cao nhất - luôn chờ đón những người có năng lực vàphù hợp nhất thử sức phát triển công ty Một cán bộ mới trở thành nhà quảnlý với hàng chục nhân viên, có tổng thu nhập hấp dẫn chỉ sau 6 tháng nỗ lựccống hiến là một kịch bản được đón chào tại PeaceSoft.
1.5.1 Cơ cấu tổ chức của công ty
Hình 1.1 Sơ đồ cơ cấu tổ chức
1.5.2 Chức năng của các bộ phận
Hội đồng quản trị: Là những người sáng lập ra công ty cổ phần giải
pháp phần mềm Hoà Bình Chức năng chính của hội đồng quản trị là đưa raphương hướng, mục tiêu hoạt động của công ty.
Ban giám đốc: Là những người trực tiếp điều hành hoạt động của
Peacesoft Ban giám đốc bao gồm: Tổng giám đốc, phó tổng giám đốc, giámđốc kinh doanh, giám đốc Marketing, giám đốc kỹ thuật Ban giám đốc có
Trang 9nhiệm vụ quản lý nhân viên, đưa ra chiến lược kinh doanh, mục tiêu cần đạtđược cho từng thời kỳ, đồng thời thực hiện các chức năng quản lý chuyênmôn nghiệp vụ của từng bộ phận.
Ban cố vấn: Là những người tài năng, có những đóng góp quý báu cho sự
phát triển của công ty về các lĩnh vực như: kỹ thuật, kinh tế, tìm kiếm đối tác,…
Phòng hành chính – tổng hợp: Bao gồm các bộ phận nhỏ là Tài chính
kế toán, Marketing, Hành chính nhân sự, Truyền thông đối ngoại.
Trung tâm kỹ thuật: Có các bộ phận trực thuộc là Thương mại điện
tử, Kỹ thuật dự án, Thiết kế, Mạng máy chủ & tích hợp hệ thống
Phòng giải pháp doanh nghiệp: Hỗ trợ khách hàng xây dựng các giải
pháp doanh nghiệp
Phòng dự án: Chịu trách nhiệm tìm kiếm khách hàng cho công ty.
Khách hàng đưa chia ra làm 2 loại dựa trên giá trị của dự án với khách hàng đólà Dự án vừa và nhỏ và Dự án lớn Xác định rõ yêu cầu của khách hàng đểcung cấp cho khách hàng những trang Web thương mại điện tử, dịch vụ tốtnhất.
Phòng đấu giá: Cung cấp cho ChoDienTu những mặt hàng sẽ đem giá
đấu giá trong chương trình “Đấu giá giờ vàng” đồng thời sẽ xác định ngườichơi giành chiến thắng trong chương trình Ngoài ra, phòng còn có tráchnhiệm liên hệ với người chiến thắng để thực hiện thanh toán mặt hàng màngười chơi đã mua.
1.6 ĐỊNH HƯỚNG TẦM NHÌN
Hội đồng cổ đông, các nhà đầu tư và ban lãnh đạo công ty cổ phần giảipháp phần mềm Hoà Bình thấu hiểu rằng: Công nghệ thông tin - một ngànhcông nghiệp trẻ nhất - và Internet - công cụ liên kết xã hội lớn nhất trong lịchsử - đang ngày càng len sâu và đóng vai trò quan trọng hơn trong từng ngócngách của đời sống xã hội; đã và sẽ đem lại những lợi ích to lớn cho conngười hơn bất kỳ nền công nghiệp truyền thống nào khác.
Chúng tôi nhìn nhận rằng: hiện tuy chỉ là giai đoạn phát triển đầu tiênnhưng các dịch vụ trực tuyến Internet đã cho thấy rõ sức mạnh xã hội cũng
Trang 10như nguồn lợi khổng lồ mà nó có thể mang lại cho các nhà đầu tư Vì vậy,trở thành một nhà cung cấp dịch vụ GTGT trên nền Internet hàng đầu ở ViệtNam là chiến lược phát triển của PeaceSoft.
Phát triển các sản phẩm phần mềm với chất lượng hoàn hảo theo địnhhướng ứng dụng Web 2.0 cho phép hoạt động như một dịch vụ trực tuyến,đồng thời duy trì một bộ máy nhân lực tư vấn - sản xuất - kinh doanh giỏitheo một cơ cấu tổ chức đặc biệt cho phép không ngừng mở rộng quy mônhằm đáp ứng nhu cầu của thị trường lớn trên toàn quốc là con đường đểPeaceSoft thực hiện thành công chiến lược đó.
2 ĐỊNH HƯỚNG ĐỀ TÀI NGHIÊN CỨU
2.1 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ộcrất nhiều vào mối quan hệ của doanh nghiệp với khách hàng Khi cạnh tranhtrên thị trường diễn ra ngày càng găy gắt, việc thu hút và giữ chân kháchhàng là rất khó khăn, thì quản lý khách hàng là việc rất quan trọng mà doanhnghiệp cần làm để có được khách hàng trung thành.
Ở 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đúng hướng trong trao đổi với khách hàng, nhờ vậy không chỉ đem về hợpđồng cho công ty mà còn tạo ra mối quan hệ tốt đẹp làm cơ sở cho các giaodị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ông
Trang 11nghệ 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ọ
2.2 LÝ DO CHỌN ĐỀ TÀI
Từ nhu cầu thực tiễn của công ty cổ phần giải pháp phần mềm HoàBình, 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 xoay quanh khách hàng cũng như sử dụng hiệu quảthời gian của nhân viên trong việc trao đổi, tiếp xúc khách hàng Những lợiích mà phần mềm hướng tới có thể mang lại như là:
2.2.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 122.2.3 Tính đơn giản
Khách hàng có thể trao đổi thông tin với công ty theo bất cứ cách nàomà khách hàng thích, vào bất cứ thời điểm nào, thông qua bất cứ kênh liênlạc nào, bằng bất cứ ngôn ngữ nào Dù các yêu cầu của khách hàng có thểphải đ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ản phẩm, dịch vụ đó, nhưng thông qua hệ thống quản lý khách hàng, kháchhàng sẽ có cảm giác đang giao tiếp với một thực thể duy nhất và nhận đượcsự chăm sóc mang tính cá nhân.
2.2.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 dovậy công ty có nhiều dự án được thực hiện tạo ra lợi nhuận cao.
2.2.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áchhàng, số lượng hợp đồng được ký kết, kết quả kinh doanh của nhân viên, kếtquả thực hiện các giao dịch với khách hàng để từ đó xác định được tìnhtrạng phát triển của công ty từ đó đưa ra các chiến lược kinh doanh cho phùhợp đồng thời có chế độ khen thưởng thích hợp với nhân viên của mình.
Trang 13CHƯƠNG 2 PHƯƠNG PHÁP LUẬN VỀ QUY TRÌNHXÂ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ềm
thô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áo cáo, tổng hợp, thống kê các thông tin khách hàng, giao dịch và hợp đồngvới khá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ấndữ 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ông cho 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 doanhtrong công ty
Trang 14- 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ấpchương trì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 ĐỜ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ứctạ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ảntrị quan hệ khách hàng số các nghiệp vụ cần xử lý không nhiều, quy trìnhtương đối đơn giản và dễ hiểu do vậy chúng ta có thể ứng dụng mô hình thácnước như đượ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ườidùng hệ thống Những thông tin này được xác định rõ dựa trên ý kiến của cảnhững ngườ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ể
Trang 15đượ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ách thể 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ểm thử 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ântích có được thoả mãn hay không Sau quá trình kiểm thử, hệ thống phầnmề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átsinh trong quá trình sử dụng chưa được phát hiện trong các giai đoạn trước,nâng cấp hệ thống để đáp ứng yêu cầu mới phát sinh.
2 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ácràng buộc đối với hệ thống, là giai đoạn nền tảng để thiết kế một phần mềm.
Trang 16Quá 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ácyêu cầ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động củ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ần mềm, làm rõ các yêu cầu sẽ là cơ sở quan trọng để xây dựng phần mềmmới Các yê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 phát triển hệ thống (về chất lượng, về môi trường, chuẩn sử dụng, quytrình phá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
Trang 17là 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ầnmềm Hoà Bình, thảo luận với người sử dụng, phân tích công việc Nhữnghoạ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ântích cá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ầntìm hiểu thông tin về hoạt động trong lĩnh vực tìm kiếm, phục vụ chăm sóckhách hà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 trabằng bảng câ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
Giả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áctì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ô
Trang 18tả của người dùng không? Thẩm định yêu cầu liên quan đến việc kiểm tratí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ầucụ thể là: có thoả mãn được nhu cầu của người dùng? Yêu cầu không mâuthuẫn nhau? Yêu cầu phải đầy đủ chức năng và ràng buộc? Yêu cầu phải làhiện thự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àngTrong 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.
Nhiề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
Trang 19mô 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ìnhhệ 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ầnmề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ếntrì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âydựng Bản mẫu này sẽ là cơ sở để kỹ sư phần mềm cùng khách hàng đánh giáđể tiếp tục phát triển đi đến sản phẩm cuối cùng.
2.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ủakỹ 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ữa quy trình đó với công tác ra quyết định và quy trình đó giúp thực hiện cácmục tiêu của hệ thống như thế nào Đó là lý do giải thích mối quan hệ chặt chẽ
Trang 20giữa quá trình phân tích và thiết kế hệ thống Thiết kế phần mềm cung cấp cáchbiểu diễ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àngthành sản phẩm hay hệ thống phần mềm cuối cùng Không có thiết kế có nguycơ đưa ra mộ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 quan trọ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 quanhệ 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 đưa tới kết quả cuối cùng ngay mà phát triển thông qua nhiều phiênbản khác nhau 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áclỗ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àm hoàn thiện dần qua các bản thiết kế Hình 2.5 minh hoạ mô hình chungcủa quá trình thiết kế và các mô tả thiết kế được viết trong các giai đoạnkhác nhau của quá trình thiết kế
Hình 2.4 Quá trình hoàn thiện bản thiết kế
Trang 21Hì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ững diễn giải cách thức thực hiện một yêu cầu nào đó Trong các giai đoạnsau của quá 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ủaquá trình nà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ình 2.6 mô tả các quá trình thiết kế cho thấy các giai đoạn của quá trìnhthiết kế được sắp xếp có thứ tự Những thực tế, các hoạt động thiết kế đượcthực hiện song song với nhau Tuy vậy, các hoạt động này cũng là những côngviệc cần thực hiệ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.
Thiế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 phần mềm.
Trang 22Quá trình này được lặp đi lặp lại với mỗi chương trình con đến khi cácphân hệ chương trình được thiết kế chi tiết đến từng module lập trình.
Phương pháp Top - down là cách thức tối ưu để thực hiện các bước này.Phương pháp thiết kế này giúp khắc phục hầu hết các vấn đề xảy ra trongquá trình thiết kế Các chương trình con được thiết kế theo các lớp thứ tự từcao đến thấp Phương pháp Top - down là phương pháp thiết kế khoa học, cóhệ thống, đặc biệt phù hợp với các bài toán xây dựng từ đầu như phần mềmquản trị quan hệ khách hàng đang được đề cập
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ápthiết kế có cấu trúc, song phương pháp này vẫn có một chỗ đứng nhất địnhvà vẫn là phương pháp được sử dụng nhiều nhất trong thực tế Gần 40 nămphát triển phương pháp thiết kế có cấu trúc đã được rất nhiều người cải tiếnvà ngày càng hoàn thiện Phương pháp này là sự đúc kết kinh nghiệm pháttriể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ụngtrong các hệ thống quản trị quan hệ khách hàng.
Phươ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ươngpháp thiế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ểubáo cáo, các nguyên tắc và những hướng dẫn thiết kế Phương pháp có cấutrúc thườ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.
Trang 23Sơ đồ chức năng trong hệ thống cùng các mối quan hệ tương tácgiữ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
Phâ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
Trang 24người dù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àynay 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 giaodiện đồ hoạ (Graphical User Interfaces - GUI) Đây là loại giao diện thânthiện người dù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
Cá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.
Trang 25Cá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.
+ Nhược điểm
- Phạm vi ứng dụng hạn chế- Khó lập trình
- Chiếm nhiều diện tích màn hình
Trang 26- Phát sinh vấn đề khi lựa chọn của người dùng không phù hợp vớithông tin đượ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đượ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ộtsố 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ập
Trang 27trì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ánhlựa chọn sai dẫn đến phải hay đổi ngôn ngữ hoặc sửa đổi thiết kế hệ thống.
2.3.1 Kiểu dữ liệu
Mỗi ngôn ngữ hỗ trợ một số kiểu dữ liệu Tất cả những ngôn ngữ đềuhỗ trợ biến, hằng số dùng trong dữ liệu số và dữ liệu ký tự Một số ít ngônngữ hỗ trợ các kiểu dữ liệu logical, boolean, pointer, object, bit, ngày hoặckiểu dữ liệu tự định nghĩa Có bốn mức kiểm tra dữ liệu để đảm bảo sự phùhợp của dữ liệu được nhập vào với kiểu dữ liệu được định nghĩa trong cácphép toán học và toán tử logic, từ không kiểm tra đến kiểm tra chặt Mức độchặt chẽ của kiểm tra kiểu dữ liệu phụ thuộc vào dạng ứng dụng Nói chung,các tiến trình càng cần sự chính xác, nhất quán và ổn định thì càng đòi hỏimức độ kiểm tra chặt chẽ hơn.
Hình 2.6 Vị trí của lập trình trong quá trình phát triển phần mềm
Trang 282.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 đượcquản lý như thế nào là điều rất quan trọng Dữ liệu có thể là cục bộ hoặctổng thể Khả năng có được dữ liệu cục bộ rất quan trọng trong việc che giấuthông tin và giảm thiểu việc liên kết Ngoài ra, quản lý bộ nhớ còn giúpchương trình phân bổ bộ nhớ máy tính khi cần Với những ngôn ngữ khôngcung cấp khả năng này, chương trình có thể bị treo do không có khả năngcung 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ạpvà 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:
Trang 291 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ớisự biên dịch của chương trình dịch và chương trình dịch ra giống sự nhậnthức củ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ếttắ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.
5 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,hay môi trường thực hiện phần mềm Ví dụ như chương trình gốc có thểđược chuyển từ bộ xử lý này sang bộ xử lý khác và từ chương trình biên dịchnày sang 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ương trình gốc vẫn không thay đổi ngay cả khi môi trường của nó thay đổinhư việc cà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ều cô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.Do vậy những yêu cầu quan trọng của một ngôn ngữ trong chương trình
Trang 30quản trị quan hệ khách hàng là phải hỗ trợ đa người dùng, quản lý đượccá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ấu trú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ớití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ệu bên trong chương trình, phương pháp khai báo dữ liệu, cách xâydựng câu lệnh và các kỹ thuật vào/ ra.
2.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áctên gọi định danh (biến và nhãn), tiếp tục với vị trí và thành phần của việcchú 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ựachọn các tên gọi định danh có nghĩa là điều chủ chốt cho việc hiểu chươngtrì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 mangnghĩa mơ hồ Cho dù một chương trình nhỏ thì một tên có ý nghĩa làm “ đơngiản hoá việc chuyển đổi từ cú pháp chương trình sang cấu trúc ngữ nghĩabên trong” Một điều rõ ràng là: phần mềm phải chứa tài liệu bên trong Lờichú 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ướngdẫ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ững phần mềm quản lý như quản lý cổ đông, cổ tức cần được nângcấp bảo trì thường xuyên để đáp ứng sự thay đổi của thực tế Có nhiềuhướng dẫn đã được đề nghị cho việc viết lời chú thích Các chú thích mở đầuvà chú thích chứ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.
Trang 312 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ữnghạn chế, 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ả)- 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ênbiến cho kiểu số nguyên, kiểu số thực… Cần phải chú giải về mục đích đốivới các biến quan trọng, đặc biệt là các biến tổng thể Các cấu trúc dữ liệunên được chú 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ỗicâu lệ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ùitrong lề minh hoạ cho các đặc trưng logic và chức năng của đoạn này Cáccâu lệnh chương trình gốc riêng lẻ có thể được đơn giản hoá bởi:
Trang 32Trá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 dungcâ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?
2.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ậptrình có các yêu cầu định dạng nghiêm ngặt.
2.5 KIỂM TRA VÀ ĐẢM BẢO 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úatrình này phải được tiến hành thường xuyên sau mỗi giai đoạn sản xuất phầnmề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át yêu cầu người dùng đến khi thiết kế và lập trình và kết thúc khikiểm thử phần mề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
Trang 33só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ần mềm (software testing) nhằm tìm các sai sót trong khi vậnhành chương trình Trong một số tài liệu khác, quá trình này được chia thànhhai 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ỗi lập trình và thẩm định (validation) để đảm bảo phầnmềm đáp ứng nhu cầu người dùng, hoạt động hiệu quả và phát hiện các lỗiphân tích, lỗi thiết kế (lỗi mức cao).
Hì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ệu thực
Trang 34củ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ỏ qua trongcá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ến lược kiểm tra black - box cho rằng module liên quan đến đầu vào vàđầu ra các chi tiết logic chi tiết được che dấu và không cần phân tích Chiếnlược black - box có tính hướng dữ liệu White - box hướng tới việc cho rằnglogic đặc trưng là quan trọng và cần phải kiểm tra White - box đánh giá mộtvài hoặ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ằngcác module và chương trình riêng rẽ cần được kiểm tra trước và sau đó đượckết hợ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àngLập kế hoạch test
Trang 35Xâ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 testBá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
Thu thập, kiểm soát các dữ liệu liên quan đến các hoạt động testTí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 saucác giai đoạn khảo sát, phân tích và thiết kế phát triển hệ thống đã được đềcập trê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 đikèm khi chuyển giao phần mềm, nên khi đánh giá thường chỉ quan tâm đếncác chứ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ính năng ưu việt của nó vào ứng dụng trong thực tế thì chỉ có quá trình triểnkhai tố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ính năng có sẵn trong phần mềm chỉ là điều kiện "cần", còn quy trìnhtriển khai hợ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 đangchiế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ình
Trang 36triể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ườidùng được cổ đông, cổ tức để điều hành trôi chảy hệ thống mới, thông báomộ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ếtcá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áocáo mà còn phải giúp người dùng hiểu được cách thức vận hành của phầnmềm Đối với công tác tin học hoá các nghiệp vụ quản trị quan hệ kháchhàng, đây không chỉ là chuyển đổi phần mềm quản lý trong các phòng banliên quan từ các tài liệu thiếu hệ thống, phân tán sang một hệ CSDL trongmá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íchcác quy trình nghiệp vụ thủ công thay đổi như thế nào khi được thực hiệnbằng phần mềm Tuy vậy, đào tạo cũng là một yếu tố mang tính chủ quancao 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.Theo thời gian, các yêu cầu người dùng trước đây đã trở nên lỗi thời và cầnphải thay đổi chương trình để đáp ứng những yêu cầu mới Môi trường hệthống cũng có thể thay đổi khi phần cứng mới được lắp đặt, phát sinh các lỗimới trong quá trình sử dụng Quá trình thay đổi hệ thống sau khi chuyểngiao và sử dụng được gọi là bảo trì phần mềm Sự thay đổi có thể chỉ là sửalỗi lập trình, nhưng cũng có thể cần phải thay đổi lại thiết kế hệ thống Có 4hoạ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ữngthay đổi của môi trường.
Trang 37Bả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ếnhà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ốthơn cho 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ácphương phá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ỉnh khi chúng xảy ra, phần mềm sẽ dễ sửa Thời gian chi phí cho mỗiyêu cầu bảo trì 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:
Trang 38Quả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.
Quản lý cấu hình: là sự định danh, sự tổ chức và kiểm soát các sự thay
đổi phần mềm bằng nhóm lập trình viên do có nhiều phiên bản chương trình.
Quản lý tài liệu: do sự thay đổi chương trình nên các tài liệu đi kèm
cũng cần được sửa đổi và quản lý.
Quản lý thay đổi góp phần quan trọng làm tăng hiệu suất trong vòng đời củamột phần mềm, giảm thời gian tìm kiếm lỗi, bảo hành và kiểm tra.
Trang 39CHƯƠNG III: PHÂN TÍCH THIẾT KẾ PHẦN MỀMQUẢN LÝ KHÁCH HÀNG
1 XÁC ĐỊNH YÊU CẦU CỦA PHẦN MỀM
1.1 KHẢO SÁT HỆ THỐNG
Sau khi khảo sát hệ thống quản lý khách hàng tại công ty cổ phần giảipháp phần mềm Hoà Bình nhận thấy rằng số lượng khách hàng của công tyngày càng được mở rộng, các hồ sơ khách hàng ngày càng nhiều Hiện tạidoanh nghiệp đã có phần mềm CRM dành cho nội bộ công ty Tuy nhiênphần mềm này chưa đáp ứng được thực sự nhu cầu của nhân viên, nó đượcdùng đơn thuần chỉ để lưu trữ thông tin về nhân viên, hồ sơ của khách hàngnhưng không ghi lại được thông tin hợp đồng với khách hàng và các giaodịch diễn ra trong quá trình triển khai hợp đồng, Trước thực tế trên chothấy một phần mềm quản lý khách hàng mới được đưa ra là cần thiết.
- Công cụ thu thập thông tin: phỏng vấn, quan sát, nghiên cứu tài liệu,nghiên cứu các phần mềm đã có sẵn như Vtiger, Crmzoho, Misa.Net
- Những người đã gặp và làm việc: giám đốc trung tâm công nghệ,giám đốc kĩ thuật, nhân viên phòng dự án.
1.1.1 Giám đốc trung tâm công nghệ
- Trao đổi thông tin về cơ cấu tổ chức của công ty cổ phần giải phápphần mềm Hoà Bình, chức năng của từng phòng ban, bộ phận làmviệc trong công ty.
Trang 40- Đưa ra định hướng nghiên cứu các phần mềm sẵn có về lĩnh vực quảnlý khách hàng.
- Trao đổi về nghiệp vụ của phòng kinh doanh trong việc chăm sóc vàtìm kiếm khách hàng của công ty.
- Xác định những yêu cầu cho phần mềm quản lý khách hàng đangnghiên cứu.
- Giúp đỡ giải đáp thắc mắc về các nghiệp vụ chuyên môn đặc biệt:Quy trình tìm ra khách hàng, các tạo hợp đồng với khách hàng vàthông tin mà nhà quản lý thực sự cần đến phần mềm.
- Cấu trúc cơ sở dữ liệu mới, các trường thông tin phù hợp với thực tếvà nhu cầu của công ty.
1.1.3 Nhân viên phòng kinh doanh
Là những người trực tiếp giao dịch với khách hàng, tìm kiếm nguồnkhách hàng tiềm năng cho công ty Những khách hàng mới của công tychính là do công sức của những nhân viên này Vì vậy, phần mềm ra đờimục đích chính là phục vụ cho họ tốt hơn trong việc tìm kiếm và chăm sóckhách hàng Những thông tin trao đổi với nhân viên kinh doanh đó là:
- Công việc hàng ngày của nhân viên kinh doanh.