Tài liệu tham khảo chuyên ngành tin học Phân tích, thiết kế phần mềm tính lương
Trang 1Với lòng biết ơn chân thành, tôi xin gửi lời cám ơn sâu sắc tới:
PGS TS Hàn Viết Thuận, Chủ nhiệm Khoa Tin học Kinh tế, trường Đại học Kinh tế Quốc dân, là người thầy đã trực tiếp hướng dẫn, dành nhiều công sức giúp đỡ, truyền đạt những kiến thức quý báu và tạo điều kiên thuận lợi trong suốt quá trình tôi học tập, làm việc, và hoàn thành chuyên đề thực tập tốt nghiệp này.
Tôi xin trân trọng cảm ơn:
Anh Shinichi Nakada - Trưởng bộ phận tích hợp hệ thống (SI Business - System Intergration Business), anh Phan Ngọc Bình - Trưởng phòng Giải pháp phần mềm nhân sự và các anh chị trong nhóm EZManage , Công ty TNHH Fujitsu Việt Nam đã hướng dẫn và giúp đỡ tôi trong quá trình thực tập tại công ty
Những thầy cô đã hết sức tạo điều kiện giúp đỡ, cho tôi nhiều kiến thức quý báu để hoàn thành chuyên đề tốt nghiệp:
Thầy giáo Trần Công Uẩn, thầy giáo Trịnh Hoài Sơn và các thầy cô giáo, cán bộ trong khoa Tin học Kinh tế , trường Đại học Kinh tế Quốc dân đã tạo điều kiện thuận lợi và giúp đỡ tận tình trong quá trình tôi thực tập cũng như hoàn thành chuyên để tốt nghiệp.
Đinh Thị Thanh Phượng
Trang 2MỤC LỤC
DANH MỤC BẢNG BIỂU
DANH MỤC HÌNH VẼ
Trang 3PHẦN MỞ ĐẦU
1 Lý do chọn đề tài
Hiện nay, trong quá trình hội nhập kinh tế thế giới, Việt Nam tiếp nhận nhiều nguồn vốn đầu tư từ nước ngoài, đặc biệt là sự có mặt của các nhà đầu tư đến từ Nhật Bản Công ty TNHH Fujitsu Việt Nam cũng là một trong số những doanh nghiệp điển hình như thế, với vốn đầu tư 100% của Nhật Bản, công ty tập trung đặc biệt vào các công ty sản xuất của Nhật Bản mới chuyển địa điểm đầu tư từ Thái Lan, Trung Quốc sang Việt Nam Công ty cung cấp dịch vụ công nghệ thông tin đầy đủ cho các công ty này bao gồm cả xây dựng cơ sở công nghệ thông tin và giải pháp ứng dụng doanh nghiệp.
Bên cạnh đó, các đối tác của công ty TNHH Fujitsu Việt Nam hầu hết là những công ty có số lượng nhân viên lên tới 2000-3000 người Vì vậy, việc quản lý và tính lương cho công nhân là vô cùng khó khăn Việc này ảnh hưởng tới quyền lợi của người lao động đồng thời tạo sự bất tiện trong quản lý Chính vì vậy, công ty đã tập trung phát triển gói phần mềm EZManage nhằm hỗ trợ nghiệp vụ quản lý nhân sự, tính giờ làm, tính lương
Trong quá trình thực tập tại phòng giải pháp phần mềm nhân sự, em đã nghiên cứu và tìm hiểu về các nghiệp vụ quản lý nhân sự, đi sâu vào nghiệp
vụ tính lương cho nhân viên Vì thế, em xin chọn đề tài “ Phân tích, thiết kế
phần mềm tính lương” làm đề tài thực tập tốt nghiệp Đề tài sẽ được gắn và
phát triển cụ thể với một công ty sản xuất kinh doanh vốn đầu tư 100% của Nhật Bản là công ty trách nhiệm hữu hạn Nissei Electric Hanoi.
Trang 42 Mục tiêu nghiên cứu
Báo cáo chuyên đề thực tâp này được nghiên cứu với 3 mục đích:
Tìm hiểu yêu cầu tin học hóa công tác quản lý nhân sự nói chung, công tác tính lương cho nhân viên nói riêng của công ty trách nhiệm hữu hạn Nissei Electric Hà Nội
Nghiên cứu lý thuyết tổng quan về các bước phân tích thiết kế một phần mềm tính lương, bắt đầu từ quá trình khảo sát hiện trạng, xác định yêu cầu hệ thống, phân tích chức năng và dữ liệu hệ thống, thiết kế, lập trình, cài đặt, triển khai phần mềm
Phân tích, thiết kế phần mềm tính lương cho công ty trách nhiệm hữu hạn Nissei Electric Hà Nội
3 Cấu trúc của báo cáo chuyên đề thực tập tốt nghiệp
Báo cáo bao gồm phần mở đầu, ba chương, kết luận và các phụ lục
Phần mở đầu nêu các nhận định về tính cấp thiết của đề tài, mục tiêu,phương pháp và các kết quả đạt được
Chương 1 trình bày tổng quan về công ty TNHH Fujitsu Việt Nam và phòng giải pháp phần mềm nhân sự
Chương 2 đưa ra các cơ sở phương pháp luận của quy trình thiết kế một phần mềm tính lương
Chương 3 là phần quan trọng nhất của báo cáo đề cập đến các kết quả phân tích thiết kế phần mềm tính lương tại công ty trách nhiệm hữu hạn Nissei Electric Hà Nội bao gồm các bước khảo sát hiện trạng, thiết kế cấu trúc dữ liệu, giao diện, giải thuật, lập trình
Kết luận đánh giá, tổng kết đề tài
Phụ lục thể hiện một số đoạn lệnh và một số mẫu báo cáo đầu ra tiêu biểu
Trang 51.1 Tập đoàn Fujitsu Việt Nam
Ngày 20/6/1935, công ty Fuji Tsushinki Manufacturing Corporation- sau này trở thành công ty TNHH Fujitsu (Fujitsu Limited) đuợc thành lập tại Nhật Bản với số vốn ban đầu là 3 triệu yên Sau hơn 70 năm hoạt động hiện nay công ty TNHH Fujitsu trở thành một trong những công ty đứng đầu thế giới trong lĩnh vực công nghệ thông tin và viễn thông với tổng doanh thu toàn cầu trong năm 2004 là 44,971 tỷ USD (tương đương với 4766,888 tỷ Yên)
Năm 1993, công ty TNHH Fujitsu toàn cầu chính thức bắt đầu hoạt động tại Việt Nam Và từ đó cho đến nay, Việt Nam luôn là một trong những địa điểm quan trọng trong chiến lược đầu tư phát triển của tập đoàn Fujitsu toàn cầu.
Hiện nay, tập đoàn Fujitsu Việt Nam bao gồm 3 thành viên là: Công ty TNHH Fujitsu Việt Nam (Fujitsu Vietnam Limited - FVL); Công ty các sản phẩm máy tính Fujitsu Việt Nam (Fujitsu Computer Products of Vietnam- FCV) và Công ty các hệ thống viễn thông VNPT-Fujitsu (VNPT-Fujitsu Telecomunication Systems Limited-VFT) Cơ cấu của tập đoàn Fujitsu Việt Nam được thể hiện trong hình vẽ sau:
Trang 6Hình 1.1 – Tập đoàn Fujitsu tại Việt Nam
Công ty các sản phẩm máy tính Fujitsu Việt Nam (FCV) bắt đầu hoạt động từ năm 1996 chuyên sản xuất bản mạch in điện tử thô và lắp ráp cho nghành công nghiệp máy tính với tổng số vốn đầu tư là 198.8 triệu USD
Được thành lập vào ngày 5/4/1997, Công ty các hệ thống viễn thông VNPT- Fujitsu (VFT) là kết quả của việc liên doanh giữa Tổng công ty bưu chính viễn thông Việt Nam (VNPT) và công ty Fujitsu Công ty tiến hành cung cấp các dịch vụ thiết kế, sản xuất, lắp đặt và bảo hành những hệ thống truyền dẫn quang và vô tuyến SDH với hai dòng sản phẩm chính là FLX và FRX.
1.2 Công ty TNHH Fujitsu Việt Nam
1.2.1 Các thông tin chung
Công ty TNHH Fujitsu Việt Nam – thành lập vào ngày 6/2/1999 là thành viên mới nhất trong tập đoàn Fujitsu tại Việt Nam Cho đến nay, sau
Trang 7chín năm hoạt động, công ty FVL là một trong những nhà tiên phong trong lĩnh vực công nghệ thông tin và viễn thông tại Việt Nam
Tên tiếng việt: Công ty trách nhiệm hữu hạn Fujitsu Việt namTên tiếng anh: Fujitsu Vietnam Limited - FVL
Năm thành lập: 06/02/1999
Vốn đầu tư ban đầu : 1.000.000 USD
Trụ sở chính: Tầng 8, Tháp DMC , 535 Kim Mã, Ba Đình, Hà NộiĐiện thoại: (84.4) 2203113
Fax: (84.4) 2203114
Văn phòng chi nhánh tại Thành phố Hồ Chí Minh : Tầng 5, tòa nhà Sở công nghiệp 163, Hai Bà Trưng, Quận 3, Thành phố Hồ Chí Minh
Điện thoại: (84.8) 823 6300Fax: (84.8) 823 6303
Website: www.vn.fujitsu.com
Năm 1994, Công ty Fujitsu Nhật Bản khai trương văn phòng đại diện tại Hà Nội và một văn phòng đại diện thứ hai ở thành phố Hồ Chí Minh vào năm 1997 Hai văn phòng đại diện hoạt động song song trong hai năm, sau đó công ty Trách nhiệm hữu hạn Fujitsu Việt Nam chính thức được thành lập với số vốn đầu tư ban đầu là 1.000.000 USD Trụ sở chính của FVL được đặt tại Hà nội và văn phòng chi nhánh đặt tại Thành phố Hồ Chí Minh cùng với hai văn phòng hỗ trợ kỹ thuật tại khu Công nghiệp Thăng Long, Đông Anh, Hà nội và khu Công nghiệp Biên Hoà, Đồng Nai
Sau 9 năm hoạt động, công ty TNHH Fujitsu Việt Nam đã phát triển đội ngũ nhân viên lên đến 100 người tại Văn phòng Hà Nội và 28 người tại Văn phòng chi nhánh Thành phố Hồ Chí Minh
Hiện nay, công ty có nhiều khách hàng lớn trong đó chủ yếu là các công ty Nhật Bản tại Việt Nam như : Nissan Techno Vietnam, Canon
Trang 8Vietnam, Toyota Vietnam, Sumimoto Bakelite Vietnam, Five Star Solution… với doanh thu năm 2004 là 4.73 triệu USD tương đương với 68 tỷ Việt Nam đồng và doanh thu cho năm 2006 là 125,638 tỷ Việt Nam đồng-gần gấp đôi năm 2004.
1.2.2 Cơ cấu tổ chức của công ty
Trang 9Ngày nay, rất nhiều các doanh nghiệp sử dụng các hệ thống máy tính để điều hành toàn bộ các công việc Nhưng thật không may là có rất nhiều các vấn đề về máy tính xảy ra mà không được dự báo trước Không ai có thể ước lượng được chi phí cho việc bảo trì và sửa chữa những sự cố đó Những sự cố như vậy không chỉ làm đau đầu các nhà quản lý mà còn là nguyên nhân gây nên sự mất ổn định trong công việc kinh doanh của doanh nghiệp
Với mục tiêu chính là giải quyết các vấn đề của khách hàng, dựa trên các chính sách tổng thể của tập đoàn Fujitsu, Fujitsu Việt nam giới thiệu một dịch vụ mới với tên gọi: "Chăm sóc và quản lý cơ sở hạ tầng CNTT - InfraCare" cho các cá nhân, doanh nghiệp tư nhân, liên doanh và nhà nước đang hoạt động trên địa bàn của nước Việt nam
Dịch vụ được cung cấp thông qua hệ thống InfraCare của Fujitsu khẳng định rằng việc đầu tư của khách hàng dành cho cơ sở hạ tầng CNTT được bảo đảm bởi chất lượng của dịch vụ do các kỹ sư có nhiều năm kinh nghiệm và được đào tạo tại các cơ sở có uy tín
Hiệu quả của hệ thống CNTT được khẳng định qua việc cung cấp các dịch vụ hỗ trợ, khách hàng luôn luôn được hưởng lợi từ hệ thống máy tính đó c SI Business ( System Integration Business – Bộ phận tích hợp hệ thống)
Trưởng bộ phận này là Mr Shinichi Nakada
Trang 10Phòng SDC ( Software Development Center - Trung tâm phát triển phần mềm)
Phòng SCM ( Supplied Chain Management - Giải pháp phần mềm dành cho doanh nghiệp)
Phòng SCM gồm 2 bộ phận:
ERP (Glovia): là bộ phận phụ trách sản phẩm Glovia (giải pháp quản lý tài nguyên doanh nghiệp như quản lý sản xuất, tài chính kế toán, phân phối…) dành cho các nhà máy sản xuất - manufacturer (chủ yếu của Nhật) Ví dụ khách hàng: Canon, Inax, Meiko…
HRS( Human Resource Solution): là bộ phận phát triển và phụ trách sản phẩm Ez - Manage Đây là giải pháp quản lý nhân sự, giờ làm, tính lương.
d Sale Business ( Bộ phận kinh doanh)
Bộ phận này có 3 người điều hành chính là Mr Akashi Yuguchi, Mr Hironobu Haruta và Mr Yoshitaka Kurihara
Bộ phận kinh doanh có các chức năng và nhiệm vụ chính như sau:
Thu thập, nghiên cứu và phân tích các thông tin về khách hàng và thị trường
Lập kế hoạch, chiến lược marketing, phát triển thị trường
Thiết lập các mối quan hệ với khách hàng, đối tác, nhà cung cấp, thiết lập các đại lý, văn phòng đại diện, phòng trưng bày
Phân phối sản phẩm tới khách hàng
Quản lí hệ thống hỗ trợ khách hàng, đào tạo, hỗ trợ khách hàng Bộ phận kinh doanh cũng được chia làm 2 mảng chính:
JOC Sale Business (Japanese Oriented Companies Sale Business - Mảng kinh doanh với các công ty Nhật)
Trang 11 Non JOC Business (Non Japanese Oriented Companies Business - Mảng kinh doanh với các công ty không phải của Nhật) Mảng này chủ yếu làm với các cơ quan của Việt Nam, chính phủ và phụ trách kênh phân phối sản phẩm
e Finance & ADM (Bộ phận tài chính và quản trị)Điều hành bộ phận này là Mr Yoshitaka KuriharaBộ phận này có nhiệm vụ chính:
Thực hiện các chức năng kế toán, lập và theo dõi sổ sách kết toán, hỗ trợ các phòng ban về các thủ tục hành chính
Quản lí các công văn và các tài liệu đi và đến, hồ sơ công ty
Giúp đỡ ban giám đốc lập và thực hiện lịch làm việc, tổ chức các cuộc họp, hội thảo
Quản lí dấu, chữ kí và các giao dịch của công ty Tuyển chọn và quản lí nhân sự
f Telecom
Điều hành bộ phận này là Mr Nonoda
Thu thập và nghiên cứu các thông tin về thị trường như thông tin về giá cả, khách hàng, đối thủ cạnh tranh, về xu thế thị trường.
Theo dõi, điều hành, hướng dẫn các hoạt động giao dịch kinh doanh, xuất nhập khẩu của công ty
Đưa ra các thông tin chiến lược về Marketing, nhận và gửi hàng theo yêu cầu, tổ chức hội trợ, triển lãm
Quản lí các thông tin về nguồn vốn ODA
1.2.3 Các sản phẩm và dịch vụ
1.2.3.1 Các sản phẩm
Trang 12a Sản phẩm máy tính
Dòng sản phẩm PCBA Dòng sản phẩm PWB Máy chủ
Máy quét Máy điện toán
Thiết bị lưu trữ ngoài – ETERNUS Thiết bị lưu trữ quang từ - DyNaMOb Sản phẩm phần mềm
Phần mềm FAMS
Phần mềm kế toán EZ – Accounting Phần mềm tính giờ làm EZ – Manage Phần mềm trợ giúp tác nghiệp EZ - Procurec Viễn thông
Dây chuyền sản xuất Dòng sản phẩm FRX Sản phẩm FLX150/600 Sản phẩm FLX 2500A Sản phẩm FLX 600Ad Thiết kế website
Để thu hút đúng đối tượng trên thị trường, trang không chỉ trông bắt mắt, mà còn phải có tính chức năng và đáp ứng được nhu cầu của khách hàng Bạn cần một trang web tải nhanh, thân thiện với người sử dụng và tương thích với các trình duyệt phổ biến Trang web cần phải gây được ấn tượng đầu tiên mạnh mẽ cho người xem, thu hút mỗi quan tâm của họ và khiến họ lựa chọn bạn Với các kỹ sư phát triển tài năng, chuyên nghiệp, Fujitsu Việt Nam sẽ
Trang 13thiết kế website với tất cả mọi thứ bạn cần để khai thác thế mạnh của Internet, khiến cho người đọc hứng thú tìm hiểu sâu hơn về:
Nhiệm vụ của công ty bạn Giúp bạn xác định đối tượng
Tạo ra hình thức và sự cảm nhận theo nhu cầu cụ thể của bạn Khiến cho trang web luôn sinh động và bắt mắt người truy cập
Các Website công ty đã xây dựng có thể kể đến như là: Website của Viện Hán Nôm
Website mua bán trực tuyến của siêu thị Seiyu Website Hà Nội Golf
Cài đặt hoàn toàn trên Internet, hệ thống truy cập thư điện tử với máy chủ proxy (Dễ kiểm soát, mức độ bảo mật toàn cao, chia sẻ modem và đường điện thoại để giảm chi phí Internet)
Hỗ trợ nghiệp vụ kiếm tính hệ thống, cải thiện chức năng điều hành với giải pháp hiệu quả như: hệ thống làm việc cộng tác sử dụng công nghệ TeamWare và Microsoft Back Office.
Tích hợp hệ thống thư điện tử văn phòng, quản lý tài liệu và hệ thống cơ sở tri thức.
Trang 14Hệ thống tích hợp MRP quản lý sản phẩm với chức năng dự báo tình hình vật liệu, lên kế hoạch sản xuất (Mô hình client - server, n - tiers hoặc thin client)
Phát triển các ứng dụng B2C và B2B và tích hợp chúng với hệ thống của khách hàng như: hỗ trợ bán hàng, bàn trợ giúp, hệ thống quản lý mua bán, phục vụ và đặt phòng khách sạn, hệ thống đặt vé máy bay
Chuyển đối dữ liệu từ tất cả các nguồn dữ liệu khác nhau sang dữ liệu phương tiện Internet để thuận tiện trong việc thiết lập chỉ mục văn bản
Nghiên cứu và phát triển giải pháp thin client cho tất cả các ứng dụng đang tồn tại dưới mô hình existing client - server.
b Dịch vụ quản lý cơ sở hạ tầng công nghệ thông tin - Infra Care
Ngày nay, rất nhiều các doanh nghiệp sử dụng các hệ thống máy tính để điều hành toàn bộ các công việc Nhưng thật không may là có rất nhiều các vấn đề về máy tính xảy ra mà không được dự báo trước Không ai có thể ước lượng được chi phí cho việc bảo trì và sửa chữa những sự cố đó Những sự cố như vậy không chỉ làm đau đầu các nhà quản lý mà còn là nguyên nhân gây nên sự mất ổn định trong công việc kinh doanh của doanh nghiệp
Với mục tiêu chính là giải quyết các vấn đề của khách hàng, dựa trên các chính sách tổng thể của tập đoàn Fujitsu, Fujitsu Việt nam giới thiệu một dịch vụ mới với tên gọi: "Chăm sóc và quản lý cơ sở hạ tầng CNTT - InfraCare" cho các cá nhân, doanh nghiệp tư nhân, liên doanh và nhà nước đang hoạt động trên địa bàn của nước Việt nam
Dịch vụ được cung cấp thông qua hệ thống InfraCare của Fujitsu khẳng định rằng việc đầu tư của khách hàng dành cho cơ sở hạ tầng CNTT được bảo đảm bởi chất lượng của dịch vụ do các kỹ sư có nhiều năm kinh nghiệm và được đào tạo tại các cơ sở có uy tín
Trang 15Hiệu quả của hệ thống CNTT được khẳng định qua việc cung cấp các dịch vụ hỗ trợ, khách hàng luôn luôn được hưởng lợi từ hệ thống máy tính đó
Khi đăng ký sử dụng dịch vụ, chắc chắn khách hàng sẽ hài lòng với dịch vụ chất lượng cao, hiệu quả trong chi phí, phục vụ nhanh gọn và thân thiện đảm bảo giải quyết hiệu quả các vấn đề về máy tính
c Các giải pháp về tài chính và ngân hàng
Cung cấp dịch vụ cho các nhu cầu công nghệ thông tin của một số lượng lớn các thể chế tài chính bao gồm ngân hàng bán lẻ, đoàn thể và ngần hàng đầu tư, công ty đầu tư tín thác, các công ty quỹ chung và sở giao dịch chứng khoán
Cung cấp dịch vụ tư vấn và giải pháp Các chuyên gia tư vấn của công ty sẽ làm việc cùng đội ngũ nhân viên của khách hàng trong chu kỳ dự án để đánh giá, lên kế hoạch, phát triển và khai thác các sản phẩm, dịch vụ và các quy trình công việc
Hỗ trợ hàng loạt các sản phẩm thích hợp với nhu cầu của môi trường Ngân hàng: Ngân hàng Tại nhà, Ngân hàng Internet, Ngân hàng di động v.v
d Dịch vụ đa phương tiện
Mang đến cho khách hàng các giải pháp sáng tạo hoàn chỉnh, từ in ấn tới trang web tới các CD-ROM năng động Với một đội ngũ các nhà thiết kế đồ hoạ tài năng và dày dạn kinh nghiệm, luôn tận tâm theo kịp sự phát triển nhanh chóng của công nghệ, Nhóm Thiết kế Multimedia của Fujitsu mang đến cho khách hàng sự sáng tạo những vật liệu chất lượng hàng đầu
Cùng với việc cung cấp cho khách hàng những sản phẩm chất lượng cao nhất trong lĩnh vực phát triển trang web, nhóm thiết kế Multimedia của Fujitsu mang đến kinh nghiệm và kiến thức về một studio thiết kế đồ hoạ thành công
Trang 16e Dịch vụ đào tạo
Cung cấp các dịch vụ đào tạo phạm vi rộng từ seminar, công nghệ truyền dẫn trong hệ thống đào tạo trực tuyến Hàng năm FCSV trực tiếp đào tạo các khoá học về công nghệ thông tin cho các nhân viên IT văn phòng của Việt nam thông qua các khoá đào tạo AOTS Trong đó bao gồm cả chương trình đào tạo bao gồm các mục sau:
Hệ thống thông tin thanh toán hiện đại Đào tạo sản phẩm phần mềm Fujitsu
Các chương trình theo mô hình Client Server và n-tiers Thiết kế và phát triển các ứng dụng Internet
1.2.4 Các hoạt động xã hội của công ty TNHH Fujitsu Việt Nam
Chương trình học bổng châu Á Thái Bình Dương (FAPSP)
Hỗ trợ thành lập Trung tâm đào tạo CNPM cho Bộ Khoa học Công nghệ và Môi trường (đổi tên thành MOST) năm 1994
Hỗ trợ cải thiện xoá mù chữ thông qua khẩu hiệu “Terakoya Movement” trong việc hợp tác với đoàn thanh niên của tỉnh Thừa Thiên Huế và hội liên hiệp phụ nữ của Nam Đàn, Tỉnh Nghệ An năm 1996
Tài trợ xây dựng trường trung học cơ sở Phụng Châu thuộc xã Phụng Châu, huyện Chương Mỹ, tỉnh Hà Tây năm 1998.
Tài trợ xây dựng trường trung học cơ sở Hoà Lợi thuộc xã Hoà Lợi, huyện Châu Thành, tỉnh Trà Vinh năm 1998
Trồng rừng tại tỉnh Đồng Nai năm 1999
Tài trợ thiết bị làm việc bao gồm máy tính cá nhân, màn hình Plasma cho văn phòng chính phủ Việt nam vào năm 1997 và năm 1999
Học bổng Fujitsu dành cho sinh viên các trường đại học tại Hà nội và Thành phố Hồ Chí Minh từ năm 2003.
Trang 176 trường được nhận tài trợ học bổng của Fujitsu bao gồm: Đại học Bách khoa Hà nội
Khoa CNTT và khoa Điện tử Viễn thông Đại học Quốc gia Hà nội
Khoa Công nghệ
Đại học kinh tế quốc dân
Khoa Tin học kinh tế
Đại học Bách khoa Thành phố Hồ Chí Minh
Khoa CNTT và Khoa Điện tử Viễn thông
Đại học Khoa học tự nhiên Thành phố Hồ Chí Minh
đang thiếu trầm trọng nguồn nhân lực cho phát triển phần mềm và phải chịu chi phí nhân công cao Chính vì vậy, rất nhiều công ty có kế hoạch xây dựng các trung tâm phát triển phần mềm ở nước ngoài trong tương lai gần Từ quan điểm này, công ty TNHH Fujitsu Việt Nam sẽ mở
Trang 18rộng hoạt động kinh doanh gia công phần mềm, đánh giá cao sự cần cù, thông minh trong lĩnh vực khoa học tự nhiên của người Việt Nam Để có thể phát triển hoạt động kinh doanh này, công ty sẽ đào tạo các “kỹ sư cầu nối” vừa giỏi chuyên ngành công nghệ thông tin, vừa thông thạo tiếng Nhật làm cầu nối giữa các khách hàng Nhật Bản và với kỹ sư của công ty tại Việt Nam.
Hợp tác với các trường Đại học của Việt Nam trong việc đào tạo nguồn nhân lực Công nghệ thông tin.
Trang 19II.PHÒNG GIẢI PHÁP PHẦN MỀM NHÂN SỰ (HUMAN RESOURCE SOLUTION DEPARTMENT)
1 Chức năng, nhiệm vụ chính của phòng giải pháp phần mềm nhân sự
Khảo sát, nghiên cứu hoạt động của các doanh nghiệp có yêu cầu sử dụng sản phẩm EZ Manage – Sản phẩm phần mềm quản lý nhân sự, tính giờ làm, tính lương
Phân tích nghiệp vụ, phân tích thiết kế, xác định các chuẩn lập trình, xây dựng các module mẫu, tiến hành tích hợp thiết lập hệ thống
Tiến hành thử nghiệm hệ thống, viết các tài liệu liên quan, triển khai hệ thống tại doanh nghiệp
Hỗ trợ, hướng dẫn và đào tạo khách hàng
Tiếp nhận giải đáp các thắc mắc từ phía khách hàng, đưa ra các giải pháp khắc phục lỗi trong quá trình vận hành hệ thống
Phân công cán bộ chuyên trách theo từng dự án đảm bảo quá trình theo dõi, kiểm soát thường xuyên sản phẩm tại doanh nghiệp…
2 Sản phẩm đặc trưng
Hệ thống EZ - Manage là một giải pháp quản lý thời gian hoàn chỉnh, ứng dụng trên nền Intranet với các chức năng: quản lý nguồn nhân lực, quản lý lương, quản lý thời gian làm việc Hệ thống có thể kiểm toán, giám sát giờ làm thực cũng như tất cả các hoạt động bên trong và bên ngoài của một tổ chức Các thông tin này sẽ được cung cấp cho một hệ thống tính tiền lương Các thông tin về nghỉ phép, làm thêm giờ, ngày lễ, có thể được điều chỉnh bằng tay hoặc được cài đặt trước đó
EZ - Manage loại bỏ những khâu xử lý thừa của người lao động thay vào đó hệ thống tăng cường việc quản lý bằng chức năng quản lý nguồn lực Với các thông tin phổ biến được áp dụng cho tất cả các chức năng quản lý Tất cả các thông tin về nhân viên được lưu trong dữ liệu Master và được sử
Trang 20dụng cho chức năng quản lý nguồn nhân lực Tiền lương và thời gian làm việc của nhân viên được tình toán tự động thông qua các báo cáo được phát sinh hàng tháng Với các chức năng quản lý trực tuyến, nhà quản lý sẽ không cần phải thuê nhân viên giám sát quá trình làm việc của công nhân, kiểm tra thời gian làm việc và tính lương cho công nhân
Nhiệm vụ của Công ty trách nhiệm hữu hạn Fujitsu Việt nam là đảm bảo khả năng tăng cường tác nghiệp tối đa EZ - Manage là một dịch vụ ứng dụng thương mại và công nghiệp cung cấp các chức năng dễ sử dụng, tích hợp trên nền webbased sử dụng cơ sở dữ liệu Microsoft SQL phiên bản chuẩn với độ tin cậy, chức năng và bảo mật toàn diện Thông qua EZ - Manage, các kỹ năng nghiệp vụ được tích hợp hoàn toàn và dễ sử dụng bằng cách tạo ra chức năng quản lý nguồn nhân lực hoạt động không ngừng nghỉ
Hệ thống quản lý nguồn lực trong EZ - Manage là gì?
Ứng dụng EZ - Manage quản lý tất cả các khía cạnh liên quan đến bài toán quản lý nguồn lực bao gồm: các thông tin về nhân viên, thời gian làm việc của nhân viên, tình trạng công việc của nhân viên, tính lương cho nhân viên và tính mức thuế thu nhập của từng nhân viên
Hệ thống tính lương trong EZ - Manage là gì?
Hệ thống tính lương trong EZ - Manage cho phép hợp lý hoá quy trình tính lương, có thể nhanh chóng tính lương hàng tháng, thuế và những đóng góp của công ty Hệ thống tính lương trong EZ - Manage có thể thiết lập, cập nhật mức thuế cho từng nhân viên của công ty một cách hiệu quả và hài hoà
Những công cụ nào được sử dụng để phát triển EZ - Manage ?
EZ - Manage được phát triển bởi các kỹ sư giàu kinh nghiệm và có kỹ năng nghiệp vụ của Fujitsu Việt nam, việc sử dụng các công cụ sắc bén
Trang 21như Microsoft SQL Server 2005, Crystal Report 9.0, ngôn ngữ lập trình C# NET và Microsoft IIS
Cơ sở hạ tầng cần thiết để vận hành EZ - Manage?
Một máy tính để bàn cấu hình trung bình: Pentium II, 500 Mhz, 256 MB RAM và hệ điều hành Microsoft Windows 2000 Professional
Cơ chế bảo mật của EZ - Manage?
Tại Fujitsu Việt nam, chúng tôi kết chuyển nhằm cung cấp các dịch vụ với mức độ an toàn và độ tin cậy tuyệt đối để vận hành các chức năng tác nghiệp Với mật khẩu bảo mật, chỉ có các nhân viên, những người được phép truy cập vào hệ thống mới có thể sử dụng các chức năng mức thấp của EZ - Manage Và chỉ có người quản trị mới có thể cấp phép và thay đổi quyền truy cập
Trang 221.1 Khái niệm phần mềm
Phần mềm (tiếng Việt còn được gọi là nhu liệu; tiếng Anh: software)
là một tập hợp những câu lệnh được viết bằng một hoặc nhiều ngôn ngữ lập trình theo một trật tự xác định nhằm tự động thực hiện một số chức năng hoặc giải quyết một bài toán nào đó.
Có thể nói phần mềm là linh hồn của máy tính Chức năng của nó là chuyển đổi dữ liệu thô thành những thông tin hữu ích Nó cho chúng ta khả năng sử dụng máy tính trong nhiều lĩnh vực.
Phần mềm được định nghĩa là một tập hợp các chỉ thị điều khiển máy tính xử lý dữ liệu và kết xuất thông tin Những chỉ thị này được gọi là “chương trình” (program) Bản chất của chương trình là một lịch trình thực hiện một công việc nào đó Một chương trình máy tính là một tập hợp các chỉ thị điều khiển máy tính thực hiện một tác vụ một cách tuần tự từng bước một.
Phần mềm được chia thành 2 loại: phần mềm hệ thống và phần mềm ứng dụng.
Phần mềm hệ thống dùng để vận hành máy tính và các phần cứng máy
tính, ví dụ như các hệ điều hành máy tính Windows XP, Linux, Unix,
các thư viện động của hệ điều hành, các trình điều khiển (driver), phần
Trang 23sụn (firmware) và BIOS Đây là các loại phần mềm mà hệ điều hành
liên lạc với chúng để điều khiển và quản lý các thiết bị phần cứng Phần mềm hệ thống gồm 4 loại:
Hệ điều hành là tập hợp các chương trình có chức năng điều khiển,
quản lý và giám sát sự hoạt động của các thiết bị phần cứng đồng thời tạo ra môi trường thích hợp cho các phần mềm hoạt động và đảm bảo khai thác tối ưu các tác nghiệp của hệ thống
Các chương trình tiện ích là các phần mềm mở rộng, bổ sung thêm
các chức năng cho hệ điều hành để giúp tạo sự thuận tiện cho người dùng cũng như nâng cao tình tối ưu cho việc khai thác tài nguyên hệ thống
Chương trình điều khiển thiết bị là các phần mềm giúp hệ điều hành
có thể nhận biết và điều khiển hoạt động của các thiết bị phần cứngChương trình dịch là chương trình có chức năng dịch các chương
trình viết bằng ngôn ngữ thuật toán sang ngôn ngữ máy đề máy tính có thể hiểu, xử lý được và ngược lại: dịch lại kết quả xử lý của máy tính sang ngôn ngữ bậc cao và chuyển tới người dùng.
Phần mềm ứng dụng để người sử dụng có thể hoàn thành một hay
nhiều công việc nào đó, ví dụ như các phần mềm văn phòng (Microsoft Offices, Lotus 1-2-3, FoxPro), phần mềm doanh nghiệp, phần mềm giáo dục, cơ sở dữ liệu, phần mềm trò chơi, chương trình tiện ích.
Phần mềm năng suất giúp nâng cao năng suất và hiệu quả làm việc
của người dùng
Trang 24 Phần mềm kinh doanh là phần mềm có chức năng quản lý các hoạt
động, các giao dịch phát sinh trong quá trình hoạt động của các phân xưởng sản xuất hàng hoá dịch vụ
Phần mềm giáo dục, tham khảo là phần mềm giúp cung cấp những
kiến thức, thông tin cho người dùng về 1 lĩnh vực nào đó.Phần mềm giải trí là phần mềm người dùng thư giãn giải trí.
Theo Tiến sỹ Roger Pressman, một chuyên gia về công nghệ phần mềm của Mỹ thì: “Phần mềm là tổng hợp các yếu tố sau: các chương trình máy tính, các cấu trúc dữ liệu cho phép các chương trình xử lý các thông tin thích hợp, các tài liệu mô tả phương thức sử dụng các chương trình ấy”.
Khái niệm về phần mềm của Tiến sỹ Roger Pressman đã được nhiều nhà khoa học đánh giá là một khái niệm chính xác và đầy đủ cả về hình thức cũng như những nội dung cần phản ánh về phần mềm.
1.2 Công nghệ phần mềm
Công nghệ phần mềm hay kỹ nghệ phần mềm (tiếng Anh: software
engineering) là sự áp dụng một cách tiếp cận có hệ thống, có kỷ luật, và định
lượng được cho việc phát triển, hoạt động và bảo trì phần mềm
Ngành học kỹ nghệ phần mềm bao trùm kiến thức, các công cụ, và các phương pháp cho việc định nghĩa yêu cầu phần mềm, và thực hiện các tác vụ
thiết kế phần mềm, xây dựng phần mềm, kiểm thử phần mềm (software
Trang 25Trích dẫn một câu nói của Edsger Dijkstra về công nghệ phần mềm:
“Khi máy tính chưa xuất hiện, thì việc lập trình chưa có khó khăn gì cả
Khi mới xuất hiện một vài chiếc máy tính chức năng kém thì việc lập trình bắt đầu gặp một vài khó khăn nho nhỏ Giờ đây khi chúng ta có những chiếc máy tính khổng lồ thì những khó khăn ấy trở nên vô cùng lớn Như vậy ngành công nghiệp điện tử không giải quyết khó khăn nào cả mà họ chỉ tạo thêm ra những khó khăn mới Khó khăn mà họ tạo nên chính là việc sử dụng sản phẩm của họ”.
1.3 Sản phẩm phần mềm
Đối tượng chính của công nghệ phần mềm là sản xuất ra các sản phẩm
phần mềm Sản phẩm phần mềm là các phần mềm được phân phối cho
khách hàng cùng với các tài liệu mô tả phương thức cài đặt và cách thức sử dụng chúng.
Sản phẩm phần mềm được chia thành 2 loại sản phẩm:
Sản phẩm tổng quát: Đây là các phần mềm đứng riêng, được sản xuất bởi một tổ chức phát triển và bán vào thị trường cho bất kỳ khách hàng nào có khả năng tiêu thụ
Sản phẩm chuyên ngành: là phần mềm được hỗ trợ tài chính bởi khách hàng trong chuyên nghành Phần mềm được phát triển một cách đặc biệt cho khách hàng qua các hợp đồng
Cho đến thập niên 1980 hầu hết sản phẩm phần mềm đều làm theo đơn đặt hàng riêng (đặc biệt hóa) Nhưng kể từ khi có PC tình hình hoàn toàn thay đổi Các phần mềm được phát triển và bán cho hàng trăm ngàn khách hàng là chủ các PC và do đó giá bán các sản phẩm này cũng rẻ hơn nhiều Microsoft là nhà sản xuất phần mềm lớn nhất hiện nay.
Trang 262 Tầm quan trọng của phần mềm
Phần cứng và phần mềm là hai yếu tố căn bản đối với máy tính điện tử Phần cứng thường được ví như cơ thể còn phần mềm là bộ não điều khiển hoạt động của cơ thể đó Các nhà sản xuất máy tính luôn tập trung nghiên cứu để thiết kế và sản xuất ra những máy tính có tốc độ xử lý nhanh hơn, có dung lượng bộ nhớ lớn hơn Máy tính hiện nay đã đạt được dung lượng nhớ hàng nghìn mega byte, tốc độ xử lý hàng nghìn tỷ phép tính một giây Gần đây lý thuyết về máy tính lượng tử đã làm chấn động thế giới vì nếu thành công trên thực tế, các máy tính sẽ có tốc độ xử lý và dung lượng nhớ cao hơn hiện tại rất nhiều, có thể đây sẽ là thế hệ thứ năm của máy tính điện tử.
Trong cơn lốc thay đổi về cấu hình phần cứng, xã hội đánh giá vai trò của phần mềm như thế nào? Phần mềm vẫn là linh hồn cho máy tính điện tử và vai trò đó không bao giờ thay đổi Máy tính mà không có phần mềm điều khiển thì chỉ là một tập hợp linh kiện điện tử, lợi ích mang lại cho người chủ không khác gì một đống sắt vụn Giá tiền cho một phần mềm hệ điều hành WINDOWS của hãng MICROSOFT gần bằng giá tiền để mua một máy tính cấu hình khá cao là một minh chứng rõ ràng Trong xã hội thông tin ngày nay, khả năng xử lý dữ liệu nhanh chóng, chính xác là yêu cầu số một và khả năng này của máy tính lại do phần mềm quyết định Phần mềm chính là nhân tố tạo nên sự khác biệt trong việc xử lý thông tin giữa các tổ chức Chức năng, tính thân thiện và quy trình xử lý thông minh chính là “chìa khóa” tạo nên sự thành công cho mỗi tổ chức.
Trang 273 Sự phát triển của phần mềm
Thời kỳ thứ nhất1950-1960
Thời kỳ thứ hai1960-1970
Thời kỳ thứ ba1970-1990
Thời kỳ thứ tư1990-2000
•Xử lý theo lô•Phần mềm đơn
chiếc làm theo đơn đặt hàng
•Nhiều người dùng
•Thời gian thực
•Cơ sở dữ liệu
•Phần mềm thương mại
•Hệ thống phân tán
•Phần mềm thông minh
•Phần cứng rẻ
•Hiệu quả tiêu thụ
•Hệ thống để bàn
•Hướng đối tượng
•Hệ chuyên gia
•Mạng nơtơron
•Xử lý song song
Bảng 2.1 – Các thời kỳ phát triển của phần mềm
Trong những năm đầu phần cứng vạn năng đã trở thành thông dụng Phần mềm lại được thiết kế theo đặt hàng cho từng ứng dụng và được phân phối khá hạn chế Phần mềm sản phẩm mới còn trong thời kỳ ấu trĩ Phần lớn các phần mềm đều được phát triển và cuối cùng được một hay một tổ chức sử dụng Cũng bởi môi trường có tính cá nhân như vậy nên việc thiết kế là một tiến trình không tường minh được thực hiện trong đầu người lập trình và thường là không có tài liệu.
Thời đại thứ hai của sự tiến hóa máy tính trải rộng giữa những năm 1960 cho đến cuối những năm 1970 Các hệ thống đa lập trình và đa người sử dụng đã đưa ra những khái niệm mới về thao tác người – máy Các kỹ thuật tương tác mở ra một thế giới mới cho các ứng dụng và các mức độ mới về độ tinh vi cho cả phần cứng lẫn phần mềm Các hệ thống thời gian thực có thể
Trang 28thu thập, phân tích và biến đổi dữ liệu từ nhiều nguồn khác nhau Do đó kiểm soát được các tiến trình và sản xuất ra cái trong phần nghìn giây thay cho nhiều phút Những tiến bộ trong lưu trữ trực tuyến dẫn tới thế hệ đầu tiên các hệ quản trị cơ sở dữ liệu.
Thời đại thứ ba của tiến hóa hệ thống máy tính bắt đầu từ giữa những năm 1970 và tiếp tục cho tới nay Hệ thống phân bố nhiều máy tính, mỗi máy thực hiện một chức năng và có sự tương tác, liên lạc với các máy khác và làm tăng độ phức tạp của các hệ thống dựa trên máy tính Các mạng toàn cục và cục bộ, các liên lạc số giải thông cao và nhu cầu ngày một tăng về việc thâm nhập dữ liệu lập tức đã đặt ra những yêu cầu rất lớn cho người phát triển phần mềm Thời đại thứ ba cũng còn được đặc trưng bởi tiến bộ và sự phổ cập sử dụng các bộ vi xử lý, máy tính cá nhân và các máy trạm để bàn mạnh Bộ vi xử lý đã thúc đẩy một phạm vi rộng các sản phẩm thông minh – từ ô tô tới lò vi song, từ robot công nghiệp đến thiết bị chẩn đoán máu Đến giữa những năm 1980, khi tỷ lệ tăng trưởng bán máy tính được san bằng thì số bán sản phẩm phần mềm vẫn tiếp tục tăng trưởng Các doanh nghiệp thường tiêu nhiều tiền cho việc mua phần mềm chạy trên máy tính hơn là tiêu để mua chính máy tính
Thời đại thứ tư trong phần mềm máy tính mới chỉ bắt đầu Kỹ nghệ hướng đối tượng đang nhanh chóng thay thế nhiều cách tiếp cận phát triển phần mềm quy ước trong nhiều lĩnh vực ứng dụng Các tác giả như Feigenbaum và McCoduck và Allman tiên đoán rằng máy tính “thế hệ thứ năm”, với kiến thức tính toán khác về cơ bản, và các phần mềm có liên quan của chúng sẽ cõ một ảnh hưởng sâu sắc tới sự cân bằng quyền lực chính trị và công nghiệp trên toàn thế giới Chúng ta đã chứng kiến những kỹ thuật “thế hệ thứ tư” cho việc phát triển phần mềm đang làm thay đổi cách thức và trong đó một phần của cộng đồng phần mềm xây dựng lên chương trình máy tính
Trang 29Hệ chuyên gia và phần mềm trí tuệ nhân tạo cuối cùng đã chuyển từ phòng thí nghiệm vào ứng dụng thực tế cho các bài toán trong phạm vi rộng trong thế giới thực Phần mềm mạng nơtơron nhân tạo đã mở ra những khả năng lý thú để nhận dạng và thực hiện những khả năng xử lý thông tin kiểu con người.
4 Ngôn ngữ thiết kế phần mềm
Các thành phần của phần mềm được xây dựng bằng cách dùng một ngôn ngữ lập trình với vốn từ vựng hạn chế và một văn phạm hoàn toàn xác định Do đó trước khi đi xây dựng phần mềm chúng ta phải nghiên cứu về ngôn ngữ thiết kế phần mềm Ngôn ngữ thiết kế phần mềm được phát triển qua các loại sau :
Ngôn ngữ máy: Ngôn ngữ máy là ngôn ngữ lập trình viết các lệnh dưới dạng sử dụng mã nhị phân, can thiệp trực tiếp vào trong các mạch điện tử Chương trình viết bằng ngôn ngữ máy, máy sẽ hiểu và thực hiện được ngay không cần phải qua quá trình dịch
Ngôn ngữ thời kỳ thứ nhất: Tiêu biểu nhất của ngôn ngữ thời kỳ thứ nhất là hợp ngữ Các ngôn ngữ thời kỳ thứ nhất có đặc điểm là phụ thuộc rất mạnh vào từng máy tính điện tử cụ thể và mức độ trừu tượng của các chương trình thường rất thấp
Ngôn ngữ thời kỳ thứ hai: Ngôn ngữ thời kỳ thứ hai được phát triển từ cuối những năm 1950 và đầu những năm 1960 Các ngôn ngữ thời kỳ thứ hai được đặc trưng bởi việc sử dụng bởi việc sử dụng một thư viện các chương trình phần mềm rất lớn được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau.
Ngôn ngữ thời kỳ thứ ba: Ngôn ngữ lập trình thời kỳ thứ ba còn được gọi là ngôn ngữ lập trình hiện đại Nét đặc trưng của các ngôn ngữ này là khả năng cấu trúc rất phong phú và các thủ tục mạnh Các ngôn ngữ thời kỳ thứ ba có thể chia thành các nhóm:
Trang 30 Ngôn ngữ cấp cao vạn năng mà ví dụ điển hình là ALGOL (Algorithmic Language)
Đó là một ngôn ngữ lập trình rất phát triển, dùng để mô tả một cách hình thức các thuật toán Ngôn ngữ này được phát triển với việc đưa ra các kết cấu thủ tục và định kiểu dữ liệu ALGOL rất thông dụng ở Châu Âu nhưng lại không được phổ biến rộng rãi lắm ở Mỹ Phiên bản được sử dụng rộng rãi nhất của ALGOL được gọi là ALGOL-60 và sau đó được phát triển với một sự cài đặt mạnh hơn trong ALGOL-68 Đặc trưng của hai phiên bản này là đưa vào khái niệm cấu trúc khối và cấp phát bộ nhớ động, giải thuật đệ quy Trên cơ sở của ALGOL người ta đã sáng tạo ra các ngôn ngữ lập trình vạn năng khác như PL/1, PASCAL, MODULA-2, C và ADA có rất nhiều ứng dụng trong khoa học cũng như trong kinh tế và thương mại.
PASCAL được phát triển từ những năm 1970 là ngôn ngữ lập trình có cấu trúc tiền định rất phong phú PASCAL kế thừa từ ALGOL nhiều đặc trưng như cấu trúc khối, định kiểu dữ liệu, hỗ trợ đệ quy.
MUDULA-2 là sự phát triển của PASCAL với việc phát huy các tính năng thông dụng của ngôn ngữ này.
Ngôn ngữ lập trình C, lúc đầu được phát triển như một ngôn ngữ cho người cài đặt hệ điều hành Hệ điều hành UNIX được cài đặt trong C Đến nay, C là ngôn ngữ lập trình rất phát triển Một số lượng lớn các sản phẩm phần mềm đã được thiết kế trong C như các ứng dụng nhúng, các phần mềm hệ thống, các kỹ nghệ phần mềm phức tạp chứa các tính năng mạnh làm cho nó trở nên mềm dẻo đáng kể.
ADA là ngôn ngữ lập trình do Bộ Quốc Phòng Mỹ phát triển Đây là ngôn ngữ chuẩn dùng cho các máy tính thời gian thực.
Phần lớn các ngôn ngữ lập trình hiện đại sau này đều dựa trên các tư tưởng nền tảng của các ngôn ngữ này.
Trang 31 Ngôn ngữ cấp cao hướng đối tượng – OLL (Object Oriented Language)
Đây là các ngôn ngữ lập trình được xây dựng dựa trên các khái niệm sự vật hiện tượng và các thuộc tính, lớp và thành phần, toàn thể và bộ phận Đó là các ngôn ngữ lập trình hướng đối tượng tiêu biểu như: C++, Object Pascal, Eiffel, JAVA, Visual Basic, Visual Foxpro…
5 Các đặc trưng của phần mềm
Phần mềm là phần tử hệ thống logic chứ không phải là hệ thống vật lí do đó nó có các đặc trưng khác với hệ thống phần cứng Phần mềm có các đặc trưng sau đây:
Phần mềm được phát triển hay được kỹ nghệ hóa, nó không được chế tạo theo nghĩa cổ điển Trong mỗi sản phẩm phần mềm đều chứa một hàm lượng lao động quan trọng nhất là chất xám Đó chính là trí tuệ và lao động trí óc của tất cả những thành viên trong dự án phần mềm từ nhà quản trị dự án, cán bộ phân tích thiết kế cho đến những người lập trình trực tiếp Phần mềm tiêu thụ rất ít năng lượng và nguyên liệu thô. Phần mềm không bi khấu hao đi trong quá trình sử dụng Phần mềm
không bị ảnh hưởng bởi các yếu tố môi trường Phần mềm chỉ bị trục trặc do những khiếm khuyết do thiết kế hoặc lập trình mà phần leons trong số này được phát hiện và sửa chữa ngay trong giai đoạn đầu khi phần mềm được đưa vào sử dụng.
Phần mềm được xây dựng theo đơn đặt hàng, ít khi được lắp ráp từ những thành phần có sẵn Phần mềm được xây dựng theo yêu cầu của các đơn vị khác nhau phải đáp ứng được những đặc điểm riêng về quy trình nghiệp vụ nên phải được thực hiện riêng rẽ Tuy nhiên hiện nay trong nhiều lĩnh vực hoạt động xã hội các quy trình nghiệp vụ đã được chuẩn hóa, thống nhất theo mẫu chung nên thực tế hiện nay các nhà sản
Trang 32xuất phần mềm có thể xây dựng những bộ phận phần mềm theo chuẩn mực chung và khi cần sẽ điều chỉnh cho phù hợp với đặc điểm riêng theo yêu cầu của khách hàng.
6 Vòng đời phát triển của phần mềm
Để nghiên cứu về vòng đời phát triển của phần mềm, trước hết phải đi nghiên cứu cấu hình của phần mềm Cấu hình của phần mềm không chỉ bao gồm các công đoạn từ khi lập kế hoạch đến đặc tả yêu cầu và thiết kế phần mềm để có chương trình làm việc và còn bao gồm cả cấu trúc dữ liệu và văn bản chương trình.
Với cấu hình như vậy thì một phần mềm sẽ có vòng đời phát triển bắt đầu từ công nghệ hệ thống đến phân tích, thiết kế, mã hóa, kiểm thử và cuối cùng là bảo trì phần mềm Ta có thể biểu diễn vòng đời phát triển của phần mềm bằng mô hình thác nước dưới đây:
Công nghệ hệ
Bảo trì
Hình 2.1 - Mô hình thác nước
Trang 33Công nghệ hệ thống: Phần mềm là một bộ phận của một hệ thống quản lý nói chung Do đó công việc nghiên cứu phần mềm từ đầu phải được thiết lập yêu cầu cho mọi phần tử hệ thống và được đặt trong mối liên kết chặt chẽ với các thành phần khác của hệ thống như phần cứng, nhân tố con người, cơ sở dữ liệu…Công nghệ hệ thống và phân tích bao gồm việc thu thập yêu cầu ở mức hệ thống với một lượng nhỏ thiết kế và phân tích mức đỉnh
Phân tích yêu cầu phần mềm: Tiến trình thu thập yêu cầu được tập trung và làm mạnh đặc biệt vào phần mềm Để hiểu được bản chất của các chương trình phải xây dựng, kỹ sư phần mềm phải hiểu về lĩnh vực thông tin đối với phần mềm cũng như các chức năng cần có, hiệu năng và giao diện của phần mềm
Thiết kế: Thiết kế phần mềm là một tiến trình nhiều bước tập trung vào bốn thuộc tính phân biệt của chương trình là:
Cấu trúc dữ liệu Kiến trúc phần mềm Các thủ tục
Các đặc trưng giao diện
Tiến trình thiết kế dịch các yêu cầu thành một biểu diễn của phần mềm có thể được khẳng định về chất lượng trước khi giai đoạn mã hóa bắt đầu Giống như các yêu cầu, việc thiết kế phải được lập tư liệu và trở thành một bộ phận của cấu hình phần mềm.
Mã hóa: Thiết kế phải được dịch thành ngôn ngữ máy mà máy tính có thể đọc và hiểu được Bước mã hóa thực hiện công việc này Nếu thiết
Trang 34kế được thực hiện theo một cách chi tiết thì việc mã hóa có thể được thực hiện một cách máy móc Khái niệm mã hóa ở đây khác với khái niệm mã hóa thông tin thành các ký hiệu để phân biệt các đối tượng Kiểm thử: Tiến trình kiểm thử tập trung vào phần logic bên trong của
phần mềm, đảm bảo rằng tất cả các câu lệnh đều được kiểm tra nhằm phát hiện ra các lỗi và cho kết quả phù hợp với dữ liệu kiểm thử đưa vào
Bảo trì: Sau khi bàn giao phần mềm cho khách hàng, chắc chắn nó sẽ phải có những thay đổi để hoàn toàn tương thích với các điều kiện quản lý của cơ sở thực tế (Sự thay đổi của hệ điều hành, hay thiết bị ngoại vi) Quá trình bảo trì còn xảy ra khi khách hàng yêu cầu nâng cao chức năng hay hiệu năng Việc bảo trì phần mềm phải áp dụng lại các bước của dòng đời phát triển nói trên cho chương trình hiện tại chứ không phải là chương trình mới
7 Vai trò của thiết kế phần mềm
Thiết kế là cách biểu diễn phần mềm mà chất lượng đã được đã được xác nhận Thiết kế là cách duy nhất để những người xây dựng phần mềm diễn dịch chính xác các yêu cầu cụ thể của khách hàng thành hệ thống phần mềm cuối cùng Khi không có thiết kế, hệ thống được xây dựng sẽ không ổn định, ẩn chứa nhiều khả năng đổ vỡ, chất lượng của hệ thống cũng không được xác nhận cho đến khi kết thúc quá trình kiểm thử, lúc đó đã tốn rất nhiều công sức và chi phí mà thời gian còn lại của dự án rất ngắn, không đủ để điều chỉnh tất cả những khiếm khuyết
Trang 358 Quy trình thiết kế phần mềm
8.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à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 nói chung, phần mềm tính lương nói riêng Giai đoạn này đòi hỏi sự phối hợp của kỹ thuật viên và khách hàng
Quá trình thu thập này được định nghĩa là một tập hợp các hoạt động nhằm xác định các yêu cầu và đặc tả các yê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ệ thống 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 hệ thống nên 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ư hệ thống, làm rõ các yêu cầu sẽ là cơ sở quan trọng để xây dựng và thiết kế hệ thống mới
Có 4 bước cơ bản trong quá trình thu thập yêu cầu, bao gồm:
Nghiên cứu tính khả thi: Nhằm đi đến kết luận “Có nên phát triển hệ thống hay không?”, đánh giá xem yêu cầu của người dùng có được thỏa mãn bởi công nghệ về phần cứng cũng như phần mềm không Nghiên cứu cũng sẽ xác định liệu hệ thống tương lai 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 hệ thống thôngqua quan sát hệ thống hiện tại, thảo luận với người dùng, phân tích công việc Những hoạt động trong giai đoạn này bao gồm:
Hiểu biết lĩnh vực ứng dụng Thu thập yêu cầu
Phân loại yêu cầu
Xếp loại ưu tiên các yêu cầu
Trang 36 Thẩm định yêu cầu
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 yêu cầu ngườ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ể hóa các yêu cầu đó Đây cũng 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ý van các yếu tố đầu ra hoặc người kỹ sư phần mềm cũng còn chưa chắc chắn về tính hiệu quả của một giải thuật thì sẽ cần làm bản mẫu phần mềm Điều này thường gặp đối với các hệ thống lớn và phức tạp Đây là một tiến trình mà kỹ sư phần mềm tạo ra một mô hình cho phần mềm cần phải xây dựng Bản mẫ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
8.2 Thiết kế hệ thống
Một thiết kế tối ưu là chìa khóa dẫn đến thành công của dự án Nhưng không thể chuẩn hóa quá trình thiết kế theo bất kỳ một quy tắc nhất định nào Thiết kế là một quá trình đòi hỏi tính sáng tạo, tinh tế và hiểu biết sâu sắc của kỹ sư thiết kế Qúa trình thiết kế đòi hỏi cán bộ phân tích 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ác mụ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ấp cá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
Trang 37có thể chuyển hóa một cách chính xác các yêu cầu của khách hà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.
Mục tiêu của quá trình thiết kế là xây dựng một bản sơ đồ thiết kế chương trình.Các đầu mối trong bản thiết kế thể hiện các thực thể như quá trình xử lý, các chức năng chương trình, các đường nối kết thể hiện quan hệ giữa các thực thể như gọi đến chức năng, sử dụng chương trình con Qúa 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ải phát triển thông qua nhiều phiên bản khác nhau.Qúa trình thiết kế là sự hoàn thiện và chi tiết hóa các chi tiết trước
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 theo nhiề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 van làm hoàn thiện dần qua các bản 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õ các 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ạn sau của quá trình thiết kế, các đặc tả sẽ càng chi tiết hơn Kết qủa cuối cùng củ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ẽ được cài đặt Các hoạt động thiết kế được thực hiện song song với nhau, gồm các công việc:
Thiết kế kiến trúc: Phân tích các chương trình con của phần mềm và xác định các mối quan hệ giữa các phân hệ
Đặc tả khái quát: Các chương trình con sẽ được mô tả chung về yêu cầu chức năng cũng như các ràng buộc
Trang 38Thiế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 mà không cần hiểu cách thực hiện các chức năng trong đó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 van giao diện của 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
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
8.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 bao gồ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 trưng của ngôn ngữ , chúng ta sẽ chọn ngôn ngữ lập trình phù hợp với chương trình ứng dụng tránh lựa chọn sai dẫn đến phải thay đổi ngôn ngữ hoặc sửa đổi thiết kế hệ thống
Mỗi ngôn ngữ hỗ trợ một kiểu dữ liệu Tất cả những ngôn ngữ đều hỗ trợ hằng, biến, hằng số dùng trong dữ liệu số van dữ liệu kí tự Một số ít ngôn ngữ hỗ trợ các dữ liệu logical, boolean, pointer, object, bit, date/ time hoặc kiểu dữ liệu tự định nghĩa.Có bốn mức kiểm tra kiểu 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
Cấu trúc 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ứ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.
Trang 39Module hóa 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 van 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 trưng chương trình mong muốn Thứ hai, dữ liệu trong các module được quản lý như thế nào là điều rất quan trọng Dữ liệu có thể là cục bộ hoặc tổng thể Khả năng có được dữ liệu cục bộ rất quan trọng trong việc che giấu thông tin van giảm thiểu việc liên kết Ngoài ra, quản lý bộ nhớ còn giúp chương trì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 cấp, phát bộ nhớ lúc cần thiết.
Ngoài ra, công nghệ phần mềm ngày nay còn được trợ giúp bởi 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ợ trong quá trình thiết kế mà còn hỗ trợ lập trình, sinh mã van nhiều công đoạn của quá trình sản xuất phần mềm
8.4 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ủa khá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ển phầ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ã hóa-kiểm thử chương trình Quá trì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ầ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êu cầu người dùng đến khi thiết kế, lập trình và kết thúc khi kiể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 sót Theo đó, giai đoạn này cũng được chia thành hai hoạt động riêng rẽ là kiểm tra phần mềm (software inspections) nhằm phát hiện các lỗi khi sản xuất chương trình
Trang 40và kiểm thử phần mềm (software testing) nhằm tìm các sai sót trong khi vận hành chương trình
Quá trình kiểm tra được tiến hành ở mọi công đoạn phát triển của phần mềm và không thực hiện trên chương trình
Quá trình kiểm thử đượ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ủa phần mềm và đây cũng là cách duy nhất để kiểm tra các yêu cầu phi chức năng Công việc này do bộ phận Kiểm thử (Test) thực hiện bao gồm các công việc:
Tham gia phân tích yêu cầu khách hàng Lập kế hoạch test
Xây dựng tiêu chuẩn nghiệm thu
Xây dựng hướng dẫn test (bản thiết kế test, kịch bản test) Thực hiện test
Hỗ trợ các vấn đề liên quan đến test Báo cáo và tổng hợp kết quả test
Lập và lưu các hồ sơ liên quan đến test
Thu thập và kiểm soát các dữ liệu liên quan đến các hoạt động test Tính toán và phân tích các chi tiêu liên quan đến các hoạt động test
8.5 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á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 đi kèm khi chuyển giao phần mềm , nên khi đánh giá thường chỉ quan tâm tới cá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ển