Xây dựng phần mềm hỗ trợ bầu cử và quản lý cổ đông-cổ tức
Trang 11 Tớnh cấp thiết của đề tài
Trong những năm qua chớnh phủ đó đưa ra nhiều cơ chế, chớnh sỏchthớch hợp, kịp thời nhằm đẩy mạnh hơn nữa quỏ trỡnh cổ phần húa tại cỏcdoanh nghiệp nhà nước với mục tiờu là đổi mới doanh nghiệp nõng cao hiệuquả sử dụng vốn của nhà nước tại doanh nghiệp
Tuy nhiờn, quỏ trỡnh cổ phần húa cũng đặt ra nhiều thỏch thức như việcchuyển từ doanh nghiệp nhà nước sang cụng ty cổ phần đồng nghĩa với việcchuyển đổi hỡnh thức phỏp lý và mụi trường kinh doanh của doanh nghiệp.Một số vấn đề nảy sinh là quản lý danh sỏch cổ đụng sao cho chặt chẽ, chi trả
cổ tức thật chớnh xỏc, phải tiến hành bầu cử Hội đồng quản trị theo định kỳ Ởnhiều doanh nghiệp việc quản lý chưa khoa học sẽ dẫn đến hiện tượng chồngchộo, thụng tin đưa ra khụng nhất quỏn và chớnh xỏc
Ngày nay, Công nghệ thông tin phát triển hết sức mạnh mẽ, các công tácquản lý ngày càng đợc tin học hoá nhiều để phù hợp với yêu cầu của công việc
đặt ra
Xuất phỏt từ thực tiễn trờn, tỏc giả tiến hành nghiờn cứu và xõy dựngphần mềm hỗ trợ bầu cử và quản lý cổ đụng, cổ tức Phần mềm này đượcchia làm hai mảng chớnh là:
+ Quản lý cổ đụng, chi trả cổ tức
+ Hỗ trợ bầu cử
2 Mục tiờu của đề tài:
Đề tài: “Xõy dựng phần mềm hỗ trợ bầu cử và quản lý cổ đụng, cổ tức
cho cụng ty cổ phần Naphaco” được chọn và nghiờn cứu nhằm mục đớch :
Hỗ trợ cho việc tập hợp số liệu bầu cử một cỏch nhanh chúng và chớnh
Trang 2xỏc, đảm bảo tớnh minh bạch và khoa học của số liệu trong biờn bản bầu cử.Theo dừi danh sỏch cỏc cổ đụng của cụng ty, cỏc quỏ trỡnh chia, tỏch,điều chuyển, tăng giảm cổ phần và chi trả cổ tức hàng năm của cụng ty
Lập báo cáo, tổng hợp các thông tin một cách nhanh chóng chính xác,dữ liệu đợc lu dữ qua nhiều năm, dễ dàng truy cập, tìm kiếm
3 Đối tượng và phạm vi nghiờn cứu của đề tài
Đối tượng nghiờn cứu:
+ Cỏc thành phần của hệ thống thụng tin hỗ trợ bầu cử và quản lý cổđụng, cổ tức;
+ Luật chứng khoỏn và thị trường chứng khoỏn;
+ Lý thuyết xõy dựng và phỏt triển phần mềm gồm cỏc vấn đề về vũngđời phỏt triển phần mềm , thiết kế phần mềm, tổ chức đào tạo người sử dụng Phạm vi nghiờn cứu của đề tài: Phõn tớch hiện trạng của Cụng tyNaphaco, căn cứ vào cơ sở lý thuyết để tập trung xõy dựng phần mềm hỗ trợbầu cử và quản lý cổ đụng, cổ tức
4 Phương phỏp nghiờn cứu
- Sử dụng phương phỏp duy vật- biện chứng trong phõn tớch thiết kế, t ừphõn tớch chức năng đến mụ hỡnh hoỏ, xem xột vấn đề trong tổng hoà cỏc mốiquan hệ, đảm bảo tớnh toàn vẹn trong quan hệ kết hợp với cỏc yếu tố lịch sử.Đồng thời ỏp dụng phương phỏp điều tra, khảo sỏt thực tế
- Đề tài sử dụng phương phỏp thiết kế Top – Down
- Sử dụng ngụn ngữ lập trỡnh Visualbasic 6.0 kết nối CSDL Access
5 Đúng gúp khoa học của đề tài
Khắc phục các nhợc điểm của Hệ thống thông tin cũ, phần trung tâm của đềtài là xây dựng phần mềm hỗ trợ bầu cử (đối với công tác bầu cử ) và quản lý cổ
đông, cổ tức nhằm tin học hoá các khâu của quá trình quản lý ban đầu
Trang 3Đóng góp vào việc giảm sai sót trong quá trình chi trả cổ tức (một quátrình rất nhạy cảm với các cổ đông), luôn có thông tin cập nhật thờng xuyên
và đầy đủ về các cổ đông, hỗ trợ đắc lực cho các cán bộ lãnh đạo với nguồnthông tin nhanh chóng, chính xác
Trang 4CHƯƠNG 1 TỔNG QUAN VỀ CÔNG TY CỔ PHẦN DƯỢC PHẨM NAM HÀ
VÀ HIỆN TRẠNG QUẢN LÝ CỔ ĐÔNG, CỔ TỨC, B ẦU C Ử
1.1.Tổng quan về công ty cổ phần dược phẩm Nam Hà (Naphaco)
* Năm 1966 Sát nhập lấy tên là Xí nghiệp dược phẩm Nam Hà
Do xu thế phát triển kinh tế của cả nước là cổ phần hoá các doanhnghiệp quốc doanh nên Ngày 1/1/2000 Công ty được chuyển đổi thành công
Trang 5đăng ký lưu hành trờn toàn quốc hết sức đa dạng và phong phỳ: Thuốc nước,
thuốc viờn nộn, viờn nộn ộp vỉ, viờn nang (capsule), viờn mềm (Soft-Gelatine),viờn thuốc sủi bọt và cao đơn hoàn tỏn
Chất lượng hàng húa luụn ổn định và được kiểm soỏt chặt chẽ, nhiều sảnphẩm của cụng ty sản xuất được tặng Huõn chương vàng, bạc tại nhiều hội chợtriển lóm thành tựu kinh tế kỹ thuật: năm 2000 và 2001 được người tiờu dựngbỡnh chọn "Hàng Việt Nam chất lượng cao" do bỏo Sài gũn tiếp thị tổ chức Mục tiờu của Cụng ty: Chất lượng luụn hướng tới người tiờu dựng, sảnphẩm cú sức cạnh tranh cao tiến tới hội nhập khu vực và thế giới Cụng ty đóđầu tư gần 30 tỷ đồng xõy dựng, lắp đặt thiết bị 2 dõy truyền thuốc tõn dược
và Soft-Gelatine đạt tiờu chuẩn GMP-ASEAN, phũng kiểm tra chất lượng đạttiờu chuẩn GLP cựng cảnh quan,mụi sinh, mụi trường toàn bộ khu vực sảnxuất và trụ sở hành chớnh Tiến tới cụng ty sẽ đạt được tiờu chuẩn thực hànhtốt bảo quản thuốc GSP và Tiờu chuẩn quản lý chất lượng hàng húa ISO-
9002 Cụng ty luụn nỗ lực phấn đấu để xứng đỏng là nơi tin cậy của ngườitiờu dựng, cỏc bạn hàng trong và ngoài nước trờn cả 3 lĩnh vực: Sản xuất -Lưu thụng trong nước - Xuất nhập khẩu
1.1.2 Sơ đồ tổ chức
Naphaco với hệ thống phòng ban, các chi nhánh phối hợp chặt chẽ tạonên hệ thống quản lý khá tốt Mỗi phòng ban có một chức năng riêng nh:+ Phòng tổ chức hành chính có chức năng quản lý cán bộ công nhânviên, quản lý bảo hiểm, Quản lý danh sách cổ đông, hệ số lơng, thực hiện cácchính sách từ ban giám đốc và hội đồng quản trị
+ Phòng kế hoạch với chức năng chủ yếu là lập kế hoạch dài hạn và ngắnhạn phù hợp với tình hình phát triển của công ty Kiểm tra tiến độ thực hiện,hoàn thành của các kế hoạch đang thực hiện
Trang 6Hình 1.1: Sơ đồ tổ chức Công ty cổ phần dợc phẩm Nam Hà
NA PHA CO
Phũng Nghiờn cứu phỏt triển
Phũng
Kế toỏnTài vụ
Phũng
Kế hoạch
PhũngMarketing
Phũng Kiểm tra Chất lượng
Cỏc Hiệu thuốcCỏc Chi
nhỏnh
Trang 7+ Phòng Marketing: Nghiên cứu và tìm hiểu thị trờng trong và ngoài nớc,giới thiệu các sản phẩm do công ty mình sản xuất cũng nh những mặt hàng màcông ty nhập khẩu.
+ Phòng kiểm tra chất lợng: Trớc khi tung sản phẩm ra thị trờng các sảnphẩm đợc kiểm tra chất lợng theo tiêu chuẩn nhất định
+ Các chi nhánh và hiệu thuốc là mạng lới phân phối sản phẩm của côngty
Naphaco có các chi nhánh tại Đà nẵng, Hà nội, Thành phố Hồ Chí Minh,Lạng Sơn
Mạng lới hiệu thuốc phân bố khá rộng rãi trong cả nớc
+ Phòng kế toán tài vụ:có nhiều chức năng trong đó có chức năng tính cổtức cho các cổ đông, phát cổ tức đó bằng tiền mặt hoặc chuyển khoản vào tàikhoản của cổ đông
+ Phòng kinh doanh
+ Phòng nghiên cứu và phát triển
1.2 Cỏc thuật ngữ kinh tế được sử dụng
Trong luận văn này, tỏc giả cú đề cập đến một số khỏi niệm của thịtrường chứng khoỏn như cổ đụng, cổ tức, cổ phần, cổ phiếu và một số khỏiniệm khỏc Vậy cổ đụng, cổ tức, cổ phần, cổ phiếu là gỡ ?
Cổ đụng (tiếng Anh: Shareholder) là người hay tổ chức nắm giữ quyền
sở hữu một phần hay toàn bộ phần vốn gúp (cổ phần) của một cụng ty cổphần.Cổ đụng cú thể là một cỏ nhõn cũng cú thể là một tổ chức.Cổ đụng đượchiểu là một nhà đầu tư về cổ phiếu
Cổ tức là một phần lợi nhuận sau thuế được chia cho cỏc cổ đụng của
một cụng ty cổ phần Cổ tức cú thể được trả bằng tiền hoặc bằng cổ phiếu Cổtức mà cổ đụng được hưởng nhiều hay ớt phụ thuộc vào số cổ phần và loại cổphần mà cổ đụng đú nắm giữ
Cổ phiếu là giấy chứng nhận số tiền nhà đầu tư đúng gúp vào cụng ty
phỏt hành Cổ phiếu là chứng chỉ do cụng ty cổ phần phỏt hành hoặc bỳt toỏn
Trang 8ghi sổ xác nhận quyền sở hữu một hoặc một số cổ phần của công ty đó.Cổphiếu là loại giấy có giá trị có thể mua, bán, cho, tặng…Có một số loại cổphiếu như:
+ Cổ phiếu đang lưu hành
Cổ phiếu phổ thông: là loại cổ phiếu có thu nhập phụ̀ thuộc vào hoạt
động kinh doanh của công ty Người sở hữu cổ phiếu phổ thông được thamgia họp Đại hội đồng cổ đông và được bỏ phiếu quyết định những vấn đềquan trọng nhất của công ty, được quyền bầu cử và ứng cử vào Hội đồngquản trị của công ty
Cổ phiếu ưu đãi: tương tự như cổ phiếu phổ thông nhưng cổ đông sở
hữu nó không được tham gia bầu cử và ứng cử vào Hội đồng quản trị, nhưnglại có quyền được hưởng thu nhập cố định hàng năm theo một tỷ lệ lãi suất cốđịnh không phụ thuộc vào lợi nhuận của công ty, được ưu tiên chia lãi cổphần trước cổ đông phổ thông và được ưu tiên chia tài sản còn lại của công tykhi công ty thanh lý, giải thể
Cổ phiếu quỹ: là cổ phiếu đã được giao dịch trên thị trường và được
chính tổ chức phát hành mua lại bằng nguồn vốn của mình
Cổ phiếu chưa phát hành: là loại cổ phiếu mà công ty chưa bao giờ bán
ra cho các nhà đầu tư trên thị trường
Cổ phiếu đã phát hành: là cổ phiếu mà công ty được bán ra cho các nhà
đầu tư trên thị trường và công ty đã thu về được toàn bộ tiền bán số cổ phiếu đó
Trang 9Cổ phiếu đang lưu hành: là cổ phiếu hiện đang lưu hành trên thị trường
và do các cổ đông đang nắm giữ
1.3 Hiện trạng quản lý cổ đông, cổ tức và bầu cử tại công ty cổ phần dược phẩm Nam Hà
1.3.1.Quản lý cổ đông, cổ tức
Naphaco có hơn 300 cổ đông Các cổ đông này nắm giữ số cổ phần kháphong phú, dao động từ 4 cho tới 13833 cổ phần Số cổ phần ít nhất là 4 cổphần do cá nhân nắm giữ, số cổ phần lớn nhất là 13833 cổ phần do Sở Tàichính nắm giữ
Các cổ đông là những nhà đầu tư quyền lợi họ được hưởng là:
+ Lợi nhuận thu được chính là cổ tức hay còn gọi là lãi suất của cổ phần +Lựa chọn người lãnh đạo của công ty mà họ tin tưởng rằng đó là người
sẽ đem lại lợi nhuận cao cho nguồn vốn mà mình đóng góp Quyền lựa chọnngười lãnh đạo được thể hiện ở việc bỏ phiếu bầu cử tại đại hội cổ đông.+Quyền chuyển nhượng, mua, bán, cho, tặng số cổ phần mà mình nắm giữ.Mỗi cổ đông được cấp một sổ cổ đông chứng nhận số cổ phần cổ đông
sở hữu Khi cổ đông tiến hành các hình thức làm biến động số cổ phần nhưmua, bán… thì cổ đông đó sẽ được cấp một sổ cổ đông mới ứng với số cổphần cổ đông đó nắm giữ
Hiện nay, việc quản lý danh sách cổ đông của công ty cổ phần Naphacođược phòng Tổ chức hành chính và phòng Kế toán tài vụ quản lý
Phßng tæ chøc hµnh chÝnh qu¶n lý danh sách cổ đông gồm các thôngtin sau:
+ Họ tên
Trang 10+ Ngày, tháng, năm sinh
+ Giới tính
+ CMND
+ Địa chỉ
+ Điện thoại
+ Người đại diện
+ Năm công tác (do cổ phần của công ty trước mắt chỉ do nội bộ các cán bộ công nhân viên nắm giữ)
cứ vào lợi nhuận thu được kể từ thời điểm đó trở về trước để tạm tính
Lợi tức Lợi tức đó được gọi là lợi tức kế hoạch, khi kết thúc một nămbiết được lợi nhuận thực tế sẽ tính lại cổ tức (lợi tức), cổ tức đó được gọi là cổtức thực tế
Lợi nhuận có thể tính theo % hoặc theo số tiền từ đó quy đổi ra lợi tức
mà mỗi cổ đông được hưởng
+Tính theo %
Lợi tức = Tổng số cổ phiếu x Mệnh giá cổ phiếu x Phần trăm lãi
+ Tính theo tiền
Lợi tức = Tổng số tiền lãi/ Tổng số cổ phiếu x Mệnh giá cổ phiếu
Một số công ty cổ phần mà tình hình chuyển nhượng cổ phần sôi động,
Trang 11để tránh việc không công bằng khi chi trả cổ tức theo năm (tính tại thời điểmchia người nắm giữ bao nhiêu cổ phần thì được hưởng toàn bộ lợi tức của cổphần trong năm đó) họ sẽ chia lợi tức theo ngày Đây là hình thức chia màcông ty cổ phần Naphaco đang hướng tới.
Công ty cổ phần dược phẩm Nam Hà hiện chưa niêm yết giá tại sàn giaodịch chứng khoán nên tình trạng mua bán, chuyển nhượng, cho tặng, hay phaloãng cổ phần bằng cách trả lương, thưởng…bằng cổ phần khá phổ biến.Trong quá trình quản lý cổ đông, cổ tức thường xuyên hội đồng quản trị,ban giám đốc yêu cầu báo cáo như:
+ Thống kê số cổ đông theo lượng cổ phiếu nắm giữ
+ Báo cáo về cổ tức kế hoạch
+ Báo cáo về cổ tức thực tế
+ Báo cáo thanh toán đợt cuối của cổ tức
Các báo cáo liên quan đến cổ phần như:
+ Tăng giảm cổ phần
+ Tổng hợp cổ phần
+ Cổ phần ưu đãi
+ Cổ phần phổ thông, cổ phần khác
+ Báo cáo về tình hình biến động vốn, biến động cổ phiếu
Từ những báo cáo này hội đồng quản trị, ban giám đốc có phương hướng
cụ thể đến quá trình quản lý cổ đông, cổ tức
Hiện tại việc quản lý cổ đông, cổ tức được thực hiện bởi MicrosoftExcel, một số hàm được dùng như:
+ Sum: tính tổng cổ phần của công ty để tính cổ tức
Trang 12+ Filter : Lọc dữ liệu cần thiết
+ Sort: Sắp xếp cổ đụng theo tiờu thức nào đú (tờn, số cổ phần)
…
Danh sỏch được lưu giữ trong Excel, và bỏo cỏo được thực hiện bởiWord Vậy việc quản lý cổ đụng cổ tức bằng microsoft office cú thuận lợi vàhạn chế sau:
+ Thuận lợi: Việc theo dừi cổ đụng cổ tức vẫn thực hiện được bởi Excel
và word Đõy là chương trỡnh rất nhiều người biết sử dụng, khụng tốn chi phớ + Hạn chế: Ta thử hỡnh dung cú hơn 300 cổ đụng liờn tục mua bỏn cổphần Một cỏ nhõn cú thể chuyển nhượng cho hàng trăm cỏ nhõn, hoặc cú thểthu gom mua lại của cỏc cổ đụng khỏc.Các giao dịch chuyển nhợng sẽ tăng lêncấp số nhân Vì vậy việc quản lý bằng Excel sẽ gặp một số hạn chế nh sau:
+ Tính kịp thời: khụng theo đáp ứng đợc trong việc đưa ra bỏo cỏo tạithời điểm tức thời nh cú bao nhiờu cổ đụng, bao nhiờu chuyển nhượng đó xảy
ra, nhất là sự theo dừi chuyển nhượng trong khoảng một thời gian dài
+ Tính chính xác: điều tất yếu gặp phải khi không theo kịp việc chuyển ợng đó là tớnh toỏn cổ tức sẽ khụng chớnh xỏc dễ gõy tranh cói khụng đỏng cú.+ Tính hiệu quả: Công ty phải cử một số cán bộ để tiến hành quản lý cổ
nh-đông, cổ tức Tuy nhiên, hiệu quả mang lại không cao, mất nhiều thời giancông sức mà việc theo dõi không đợc chính xác
1.3.2 Bầu cử
Hiện nay, tồn tại khỏ nhiều hỡnh thức bầu cử trong cỏc cụng ty cổ phần như:
- Biểu quyết: mỗi cổ đụng được phỏt cho một số lượng nhất định phiếunào đú mà trờn phiếu cú ghi số cổ phần họ nắm giữ Khi ủng hộ ai thỡ cổ đụng
đú sẽ giơ lỏ phiếu mà mỡnh giữ lờn, Ban kiểm soỏt sẽ thu lại để kiểm phiếu
- Gạch tờn: Tương tự như bầu cử quốc hội hay hội đồng nhõn dõn Trên
Trang 13mỗi lá phiếu có ghi tên các ứng viên, cổ đông tiến hành gạch tên những ứngviên mà mình cho là không xứng đáng
- Dồn tớch: Mỗi cổ đụng cầm lỏ phiếu cú ghi số cổ phần của mỡnh và tiểnhành bỏ cổ phần cho cỏc ứng viờn Giả sử cú ứng viờn ứng cử vào Hội ĐồngQuản Trị Cổ đông cú thể chia cổ phần của mình cho những ứng viên mà họhài lòng với điều kiện số cổ phần bỏ cho cỏc ứng viờn phải nhỏ hơn hoặcbằng số cổ phần mà họ nắm giữ thỡ lỏ phiếu đú mới được coi là hợp lệ
Tại một số cụng ty cổ phần khụng phải cổ đụng nào cũng được tham giavào đại hội cổ đụng, muốn được tham gia thỡ số cổ phần phải lớn hơn một sốlợng cổ phần quy định nào đú Nếu cỏc cổ đụng khụng đủ số cổ phần quy địnhthỡ phải gom cỏc cổ đụng đú lại sao cho đủ số cổ phần và cử đại diện là mộttrong số cổ đụng đú đi bầu cử
Cụng ty cổ phần dược phẩm Nam Hà cỏch hai năm tiến hành đại hội cổđụng một lần Toàn bộ cổ đụng đều được tham gia bầu hội đồng quản trị vàban kiểm soỏt Phương phỏp bầu cử được tiến hành là phương phỏp dồn tớch
Vỡ vậy việc thực hiện kiểm phiếu bằng Excel gặp một số hạn chế sau:+ Mất nhiều thời gian
+ Khú trỏnh được cỏc sai sút
+ Các báo cáo trong quá trình bầu cử nh kết quả trúng tuyển, báo cáo luphiếu bầu, báo cáo chi tiết phiếu đã nhập hiện đều phải lấy kết quả từ Excel vàlập báo cáo bằng Word
1.3.3 Giải pháp khắc phục những hạn chế của hệ thống thông tin hiện tại.
Với số cổ đông hiện tại của công ty cổ phần Naphaco việc quản lý cổ
đông, cổ tức, bầu cử đã gặp rất nhiều hạn chế Cùng với xu thế phát triển củathị trờng chứng khoán, trong tơng lai công ty cổ phần Naphaco sẽ tiến hànhniêm yết giá tại sàn giao dịch chứng khoán Cách thức quản lý nh đã trình bày
ở trên sẽ không đáp ứng yêu cầu của cổ đông, hội đồng quản trị, những nhà
đầu t muốn đầu t vào Naphaco Để giải quyết hạn chế trên việc sử dụng phầnmềm hỗ trợ là giải pháp rất hữu hiệu
Trang 14Song song với việc sử dụng phần mềm, Công ty cần tiến hành đào tạomột đội ngũ trẻ có khả năng nắm bắt tốt để sử dụng phần mềm cũng nh nângcao trình độ tin học hoá cho nhân viên
Trang 15
Chơng 2 Phơng pháp luận về quy trình xây dựng
phần mềm quản lý cổ đông, cổ tức
Sau khi phân tích hiện trạng quản lý cổ đông, cổ tức và tiến trình bầu cửcủa công ty cổ phần Naphaco, giải pháp xây dựng một phần mềm nhằm khắc phục những nhợc điểm trên đợc đa ra trong chơng này tác giả sẽ trình bày ph-
ơng pháp luận để xây dựng một phần mềm Nội dung chính của chơng gồm hai mục lớn đó là:
Mục tiêu: Hỗ trợ đắc lực cho những cán bộ làm công tác quản lý
trong công ty cổ phần Phần mềm giúp tạo lập một môi trờng làm việc tíchhợ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 cổ đông, cổ tức của mọi đối tợngtrong đơn vị từ cấp lãnh đạo đến các cổ đô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 cổ đông) Ngời dùng chủ yếu truy vấn dữ liệu trực tiếp từ khodữ 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ý cổ đông theo cổ phần sở hữu hoặc
theo các phòng ban, theo dõi chuyển nhợng cổ phần, cổ tức Hỗ trợ bầu cử nh
in phiếu bầu, nhập phiếu bầu, báo cáo kết quả bầu
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 một số cán bộ chuyên 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 truy vấnthô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ôngtin chính xác, kịp thời và đợc thiết kế mở giúp nâng cấp chơng trình trong t-
ơng lai để có thế đáp ứng sự thay đổi về yêu cầu của quản lý cổ đông, cổ tức
2.1.2 Chu kỳ sống của phần mềm quản lý cổ đông, cổ tức
Chu kỳ sống 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ân chiaquá 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ìnhxoá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 Nhng với các phần mềm quản lý cổ đông, cổ tức 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 dovậy chúng ta có thể ứng dụng mô hình thác nớc nh đợc biểu diễn trong hình2.1.[10],[17], [26]
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 racủ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ủamô 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ực hiện Dovậ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ạn của mô hìnhthác nớc bao gồm:[22], [18], [26], [10]
(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 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ờidù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
Xác định và phân
tích yêu cầu
Thiết kế phần mềm và hệ thống
Triển khai và kiểm thử từng phần
Tích hợp và kiểm thử hệ thống
Vận hành và Bảo trì
Hình 2.1: Mô hình thác n ớc của vòng đời phát triển phần mềm
Trang 17(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ẽ đợcbàn giao cho khách hàng
(5) Vận hành và bảo trì: Tuy không nhất thiết nhng đâ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 cha đợ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.2 Quy trình xây dựng một phần mềm quản lý cổ đông, cổ tức
2.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 nóichung, phần mềm quản lý cổ đông, cổ tức nói riêng [14], [5], [12]
Quá trình thu thập này đợc định nghĩa là một tập hợp các hoạt độngnhằm xác định các yêu cầu của phần mềm hỗ trợ bầu cử và quản lý cổ đông,
cổ tức và đặc tả các yêu cầu đó Trong đó, yêu cầu là các mô tả trừu tợng đếnchi 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
Trang 18mề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ở quantrọng để xây dựng phần mềm mới Các yêu cầu của phần mềm có thể đợc chialàm 3 loại sau [18] :
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
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, 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,
Nghiên cứu tính khả thi
Phân tích yêu cầu
Xác định yêu cầu
Đặc tả
yêu cầu
Các mô hình hệ thống
Báo cáo khả thi
Định nghĩa các yêu cầu
Tài liệu yêu cầu
Đặc tả các yêu cầu
Hình 2.2: Quá trình thu thập yêu cầu
Trang 19phản ứng những đặc trng 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ên hình2.2 bao gồm [18], [26], [19] :
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ácyêu cầu của ngời dùng không và có đem lại hiệu quả kinh tế cho đơn vị cũng
nh 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 Naphaco, thảo luậnvớ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ântích các yêu cầu của phần mềm quản lý cổ đông, cổ tức, phân tích viên cầntìm hiểu thông tin về hoạt động trong đơn vị cổ đông, cổ tức càng nhiều càngtố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ằngbả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
Trang 20Thẩ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 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ầ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 ?
Trong quá trình phân tích thờng gặp những khó khăn sau [21], [18]:
Dễ hiểu lầm do khách hàng sử dụng các thuật ngữ riêng
Xác định
và
đặc tả yêu cầu
6.Thẩm định yêu cầu
1 Hiểu biết lĩnh vực quản lý cổ
đông, cổ tức
2 Thu thập yêu cầu của ng ời sử dụng
5 Xếp hạng u tiên các yêu cầu
4 Giải quyết
3 Phân loại yêu cầu
Hình 2.3: Quy trình phân tích các yêu cầu
Trang 21Cá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ờng nghiệ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ácmô 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…
Các mô hình sẽ giúp làm rõ các dịch vụ hệ thống cần cung cấp và các ràngbuộc trong hoạt động của nó Nh ta đã biết, sơ đồ luồng dữ liệu là mô hình khá
đơn giản và trực quan Chúng ta có thể sử dụng loại sơ đồ này kết hợp với cáccông cụ khác nh sơ đồ chức năng, sơ đồ quan hệ thực tế, từ điển dữ liệu,… đểmô tả các quá trình xử lý dữ liệu trong phần mềm quản lý cổ đông, cổ tức.Minh hoạ ở hình 2.4 thể hiện các bớc nhập thông tin về cổ đông mới mớitrong công ty cổ phần Hình vẽ cho thấy dữ liệu cổ đông đợc hoàn thiện dần
Dữ liệu chi tiết
Hình 2.4: Ví dụ về sơ đồ luồng dữ liệu
thông tin
Trang 22qua các bớc nh thế nào cho đến khi đợc đa vào kho dữ liệu Trong sơ đồ luồngdữ liệu, quá trình xử lý, kho dữ liệu… Để mô tả rõ dữ liệu mà hệ thống xử lý,cán bộ phân tích thờng dùng đến từ điển dữ liệu Nó bao gồm các ký pháp đểmô tả các dữ liệu điều khiển và miền giá trị của chúng, thông tin về nơi(module) và cách thức xử lý dữ liệu, cụ thể bao gồm [18] :
Format : Kiểu dữ liệu, giá trị mặc định…
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ầnmềm sau này
Ngoài ra, nếu khách hàng cha 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 chachắ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.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 Nhngkhô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
Trang 23kỹ 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ẽgiữa quá trình phân tích và thiết kế hệ thống Thiết kế phần mềm cung cấpcách biể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áchhàng thành sản phẩm hay hệ thống phần mềm cuối cùng Không có thiết kế cónguy cơ đ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
[3]
2.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ơngtrì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ựcthể nh gọi đến chức năng, sử dụng chơng trình con… Quá trình thiết kế là mộtdâ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ùngngay mà phát triển thông qua nhiều phiên bả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 minhhoạ trong hình 2.5
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àm hoànthiện dần qua các bản thiết kế Hình 2.6 minh hoạ mô hình chung của quátrình thiết kế và các mô tả thiết kế đợc viết trong các giai đoạn khác nhau củaquá trình thiết kế.[26]
Thiết kế sơ
bộ Dự thảo thiết kế Thiết kế chi tiết Bản thiết kế cuối cùng
Hình 2.5: Quá trình hoàn thiện bản thiết kế
Đặc tả
giao diện
Thiết kế các phân hệ
Đặc tả các phân hệ
Thiết kế cấu trúc DL
Đặc tả cấu trúc DL
Thiết kế thuật toán
Đặc tả thuật toán
Các hoạt động thiết kế
Các sản phẩm thiết kế
Hình 2.6: Mô hình chung của quá trình thiết kế
Trang 24Tà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ùngcủa quá 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ẽ đ ợccà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ình thiế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ệ
Trang 25 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
Quá trình này đợc lặp đi lặp lại với mỗi chơng trình con đến khi các phân
hệ chơng trình đợc thiết kế chi tiết đến từng module lập trình
Trang 26Phơ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 trong quá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 lý cổ đông, cổ tức đang đợc đề cập Sơ đồ HIPO (Hierarchy PlusInput, Process, and Output) là một trong những công cụ áp dụng ph ơngpháp Top - down, đợc sử dụng để mô tả PHầN MềM Khởi nguồn từ nhữngnăm 1970, công cụ này đợc hãng IBM phát triển dùng làm tài liệu mô tảchức năng chơng trình Ngày nay, biểu đồ HIPO là một công cụ thiết kế đ-
ợc sử dụng phổ biến trong quá trình xây dựng các PHầN MềM Sơ đồ th ờng
do phân tích viên lập nên thể hiện các chức năng của hệ thống bắt đầu từnhững các biểu đồ tổng quát, dần dần đợc chi tiết hoá đến từng chức năng.Dựa trên sơ đồ hình cây thể hiện các chức năng cơ bản của hệ thống, phântích viên sẽ tiếp tục phân rã các chức năng đó thành các chức năng nhỏ hơnnằm trong các chức năng cơ bản [28] (Hình 2.8)
Tìm kiếm trong danh sách cổ
đông
Xoá bản ghi trong danh sách cổ đông
Sửa bản ghi trong trong danh sách cổ
đông
Hình 2.7: Ví dụ về sơ đồ HIPO
Trang 27Để hình thành sơ đồ HIPO, phân tích viên cần thực hiện nhiềucuộc nói chuyện với ngời sử dụng hệ thống về những chức năng mong đợitrong hệ thống mới, các yêu cầu về thông tin đầu ra, các xử lý cần có trongmỗi trờng hợp, các dữ liệu đợc xử lý và phân phối, mối quan hệ giữa các chứcnăng Khi sơ đồ hình cây HIPO đợc lập, phân tích viên sẽ soát xét hệ thốngtheo hớng từ trên xuống Từ chức năng cơ bản của hệ thống, phân tích viênxác định tính đúng đắn khi phân rã các chức năng khác ở cấp dới, cấu trúc củaquá trình phân rã có đáp ứng yêu cầu ngời dùng Một điểm mạnh của sơ đồHIPO là tính đơn giản, một công cụ thông tin hiệu quả, dễ hiểu, dễ sử dụngcác ký hiệu trong sơ đồ Sơ đồ mô tả trực quan đầu vào, các chức năng trong
hệ thống và đầu ra cho phép ngời xem dễ dàng hình dung đợc cấu trúc của hệthống Mặc dù vậy, khó có thể dùng sơ đồ HIPO để mô tả một hệ thống quáphức tạp [29]
2.2.2.2.Phơng pháp thiết kế có cấu trúc [2]
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ơngpháp đợc sử dụng nhiều nhất trong thực tế Gần 40 năm phát triển phơng phápthiết kế có cấu trúc đã đợc rất nhiều ngời cải tiến và ngày cà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ềuphầ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ễ ápdụng, nhng lại rất hiệu quả và có thể sử dụng trong các hệ thống quản lý cổ
đông, cổ tức
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ơng phá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ểu báo cáo, cácnguyên tắc và những hớng dẫn thiết kế Phơng pháp có cấu trúc thờng hỗ trợmột vài hoặc tất cả các công cụ sau [26]:
Sơ đồ luồng dữ liệu thể hiện sự phân rã chức năng chơng trình, tập trungvà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 28Sơ đồ chức năng trong hệ thống cùng các mối quan hệ t ơng tác giữachú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.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 [18] :
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.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ớc quantrọng trong thiết kế ứng dụng phần mềm Giao diện cần phù hợp với trình độ,kinh nghiệm và mong đợi của ngời dùng Ngời dùng hệ thống thờng đánh giámột hệ thống thông qua giao diện hơn là qua các chức năng chơng trình.Những chơng trình có giao diện không đáp ứng yêu cầu ngờ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, nhng công nghệ ngày nay và cùng với phạm vingời dùng phổ cập của một phần mềm quản lý cổ đông, cổ tức đang đợc xemxé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ời dùng với một số đặc điểm sau
Trang 29 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 lu ý đế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ác nhau đợ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ơng trình khác nhau
- Menu: Các lệnh chơng trình đợc lựa chọn từ menu và không cần nhậ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 quan bằ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
+ Nhợc điểm
Phạm vi ứng dụng hạn chế
Trang 30 Khó lập trình+ Phạm vi ứng dụng
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ông tin đợc chọn+ Phạm vi ứng dụng
Chơng trình hệ thống
Trang 31 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ùng màusắ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ậnra
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.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 trình có những giới hạn nhất định do vậy dựa trên các đặc trng của ngônngữ, chúng ta sẽ chọn ngôn ngữ lập trình phù hợp với chơng trình ứng dụngtránh lự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.2.3.1.Kiểu dữ liệu [14], [5]:
Mỗi ngôn ngữ hỗ trợ một số kiểu dữ liệu Tất cả những ngôn ngữ đều hỗtrợ biến, hằng số dùng trong dữ liệu số và dữ liệu ký tự Một số ít ngôn ngữ hỗtrợ các kiểu dữ liệu logical, boolean, pointer, object, bit, ngày hoặc kiể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ác phé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ểmtra 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àngcần sự chính xác, nhất quán và ổn định thì càng đòi hỏi mức độ kiểm tra chặtchẽ hơn
Trang 322.2.3.2.Cấu trúc ngôn ngữ [14]:
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ách thứclự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.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 đặc trng
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 và giảm
Chuẩn mã hóa Cấu trúc
dữ liệu
Module
ch ơng trình
Mô hình thông tin Mô hình chức năng
Trang 33thiểu việc liên kết Ngoài ra, quản lý bộ nhớ còn giúp chơng trình phâ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ầnthiết
2.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ữ
Tính đồng nhất: là cách sử dụng ký hiệu nhất quán trong cả ngôn ngữ.
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êndịch của chơng trình dịch và chơng trình dịch ra giống sự nhận thức của conngời
Tính cô đọng: tính cô đọng của ngôn ngữ nằm ở sự ngắn gọn Các đặc
trng 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
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
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ã
Dễ lập trình
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ôitrờ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ộ
Trang 34xử lý này sang bộ xử lý khác và từ chơng trình biên dịch này sang chơng trìnhbiê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ôngthay đổi ngay cả khi môi trờng của nó thay đổi nh việc cài đặt mới hệ điềuhành…
Ngoài ra, công nghệ phần mềm ngày nay còn đợc trợ giúp bởi một công
cụ mới CASE - phần mềm kỹ s trợ giúp máy tính Công cụ này không nhữ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 Dovậy những yêu cầu quan trọng của một ngôn ngữ trong chơng trình quản lý
cổ đông, cổ tức 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ấu trúc ngônngữ
2.2.4 Phong cách lập trình [3]
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âu lệnh
và các kỹ thuật vào/ ra
2.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á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ĩamơ hồ Cho dù một chơng trình nhỏ thì một tên có ý nghĩa làm “ đơn giản hoáviệc chuyển đổi từ cú pháp chơng trình sang cấu trúc ngữ nghĩa bê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ời chú thíchcung 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ểutrong 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ềmquả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 để
Trang 35đáp ứng sự thay đổi của thực tế Có nhiều hớng dẫn đã đợc đề nghị cho việcviết lời chú thích Các chú thích mở đầu và chú thích chức năng là hai phạmtrù đòi hỏi cách tiếp cận có hơi khác [14].
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ả)
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ơng trìnhgốc và đợc dùng để mô tả cho các khối chơng trình
2.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.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ệcxâ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âu lệnhnê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 trng logic và chức năng của đoạn này Các câu lệnh ch-
ơng trình gốc riêng lẻ có thể đợc đơn giản hoá bởi:
Trang 36Trá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ỉ dùng 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.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ập trình có các yêu cầu định dạng nghiêm ngặt
2.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á xem
ch-ơ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át yêucầ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ầu ng-
Trang 37ờ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) [18].
2.2.5.1 Quá trình kiểm tra[26]
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 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ỏqua trong các giai đoạn trớc do sự khác nhau giữa dữ liệu thực và dữ liệu kiểmtra
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
Kiểm tra phần mềm (software inspections)
Đặc tả
yêu cầu
Thiết kế mức cao
Hình 2.9: Công tác kiểm tra và kiểm thử phần mềm.
Trang 38chi tiết logic chi tiết đợc che dấu và không cần phân tích Chiến lợc black box có tính hớng dữ liệu White - box hớng tới việc cho rằng logic đặc trng làquan trọng và cần phải kiểm tra White - box đánh giá một vài hoặc tất cả mặtlogic để 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ểmtra trớc và tiếp tục trong quá trình phát triển Bottom - up cho rằng các module
-và chơng trình riêng rẽ cần đợc kiểm tra trớc -và sau đó đợc kết hợp lại để kiểmtra 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.2.5.2 Quá trình kiểm thử [18]
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ệu quả củaphần mềm và đây cũng là cách duy nhất để kiểm tra các yêu cầu phi chứcnăng Công việc này thờng do bộ phận kiểm thử (test) thực hiện bao gồm cáccô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à lu 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 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ác bớctrong quá trình phát triển phần mềm (hình 2.10)
Trang 392.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ậ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 đi kèm khichuyển giao phần mềm, nên khi đánh giá thờng chỉ quan tâm đến các chứcnă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
Trang 40Đà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à cònphải giúp ngời dùng hiểu đợc cách thức vận hành của phần mềm Đối với côngtác tin học hoá các nghiệp vụ quản lý cổ đông, cổ tức, đây khô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ệuthiế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ữngcách thức cụ thể trong công việc, giải thích các quy trình nghiệp vụ thủ côngthay đổ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
Phân tích kết quả
Tổng hợp, báo cáo
Kết thúc