Chương 1: Những vấn đề cơ bản về phát triển thị trường phần mềm Chương 2: Thực trạng phát triển thị trường phần mềm của Công ty c ổ phần MISA Chương 3: Giải pháp phát triển thị trường phần mềm của Công ty c ổ phần M ISA 5 C H Ư Ơ N G 1: N H Ữ N G V Á N ĐÈ c o BẢN V È P H Á T TR IỂ N TH Ị T R Ư Ờ N G PH Ầ N M È M 1. Đ ặ c điểm sản p h ẩ m và thị t r ư ờ n g sản p h ẩ m p h ầ n m ềm 1. Đ ặc đ iểm sản p h ẩ m p h ầ n m ề m 1.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 giúp ích cho nghiệp vụ của các doanh nghiệp, công ty hoặc giải quyết một bài toán nào đó. Một phần mềm đi kèm nó rất nhiều các tài liệu đó là các tài liệu để mô tả thao tác, cách sử dụng và bảo trì phần mềm (hướng dẫn sử dụng, tài liệu kỳ thuật, tài liệu phân tích, thiết kế, kiểm thử .) Phần mềm và phần cứng (hardware) bắt buộc phải kết hợp với nhau nhưng chúng là hai khái niệm tương đối.
Vai trò của phần mềm ngày càng thể hiện nối trội. Xét trên lĩnh vực ứng dụng của các doanh nghiệp thì phần mềm quyết định chất lượng của một hệ thống máy tính, là chủ đề cốt lõi, trung tâm của hệ thống máy tính.2 Phân loại phần m ềm * Theo vai trò và chức năng của phần mềm Phần mềm hệ thống (system software): Phần mềm hệ thống thực hiện chức năng quản lý và điều khiển các nguồn lực của máy tính và các chương trình khác nhau chạy trên các máy. Chúng bao gồm các hệ điều hành, các hệ tiện ích hệ thống. Tức là các phần mềm ứng dụng khác muốn chạy được trên máy tính thì phải thông qua phần mềm hệ thong.
6 Phần mềm công cụ (tools): Phần mềm công cụ là các phần mềm trợ giúp quá trình tạo ra các phần mềm. Chúng bao gồm các ngôn ngữ lập trình (trình soạn thảo, trình soát lỗi, chương trình dịch, thư viện chương trình, chương trình liên kết,. Nhờ các phần mềm công cụ này mà quá trình phát triển phần mềm ngày càng dễ dàng hơn, đơn giản hơn và nhanh chóng hơn nhờ những trợ giúp hiệu quả, nhiều hoạt động phát triển được tự động hóa một phần hay toàn bộ. Phần mềm ứng dụng (application software): Phần mềm ứng dụng là các phần mềm trợ giúp thực hiện những nhiệm vụ trong các hoạt động nghiệp vụ khác nhau.
Các phần mềm này được chia làm hai loại: phần mềm ứng dụng đa năng (xử lý văn bản, bảng tính, hệ quản trị cơ sở dũ liệu,. ) và các phần mềm ứng dụng chuyên biệt (kế toán, marketing, nghe nhạc. Trong số này nhiều phần mềm được các nhà phát triển thương mại hóa ở dạng “phần mềm đóng gói” (packaged softwares) làm sẵn cho người dùng. * Theo phư ơng thức hoạt độ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òn gọi là thư viện liên kết động; tiếng Anh: dynamic linked library - DLL) của hệ điều hành, các trình điều khiển (driver), phần sụ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 ứ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, hay các loại phần mềm ác tính. Các phần mềm chuyển dịch mã bao gồm trình biên dịch và trình thông dịch: các loại chương trình này sẽ đọc các câu lệnh từ các mã nguồn được viết bởi các lập trình viên bằng một ngôn ngữ lập trình và dịch nó sang dạng ngôn ngữ máy mà máy tính có thể hiểu được, hay dịch nó sang một dạng khác như là tập tin 7 đối tượng (object file) và các tập tin thư viện (library file) mà các phần mềm khác (như hệ điều hành chẳng hạn) có thể hiểu để vận hành máy tính thực thi các lệnh. * Theo khả năng ứng dụng Những phần mềm không phụ thuộc, nó có thể được bán cho bất kỳ khách hàng nào trên thị trường tự do.
Ví dụ: phần mềm về cơ sở dữ liệu như Oracle, đồ họa như Photoshop, Corel Draw, soạn thảo và xử lý văn bản, bảng tính. Đây thường là những phần mềm có khả năng ứng dụng rộng rãi cho nhiều nhóm người sử dụng nhưng thiếu tính uyển chuyển, tùy biến. Những phần mềm được viết theo đơn đặt hàng hay hợp đồng của một khách hàng cụ the nào đó (một công ty, bệnh viện, trường học. Ví dụ: phần mềm điều khiển, phần mềm hỗ trợ bán hàng.
Phần mềm dạnh này có tính uyển chuyển, tùy biến cao để đáp ứng được nhu cầu của một nhóm người sử dụng nào đó. Tuy nhiên nó thường là những phần mềm ứng dụng cho chuyên ngành hẹp. * Theo mức độ hoàn thiện Phần mềm đơn lẻ: Là loại phần mềm chỉ thực hiện một vài nhiệm vụ nhất định như các trình soạn thảo văn bản, các phần mềm đồ họa. Phần mềm mang tính hệ thống: Là loại phần mềm thường được truy cập và sử dụng bởi rất nhiều người trong cùng một công ty, loại phần mềm này thường phải đi đôi với mạng máy tính.
* Theo lĩnh vực được ứng dụng Phần mềm nghiệp vụ: Các phần mềm thường được ứng dụng cho nghiệp vụ của từng doanh nghiệp nhất định. Phần mềm nhúng: Phần mềm được gắn vào chip của ti vi, tủ lạnh,. Phần mềm máy tính cá nhân: Phần mềm dùng trong lĩnh vực tính toán 8 Phần mềm trên nền web: Phần mềm được gắn lên các website, mọi người có thê truy cập và sử dụng thông qua internet. Phần mềm trí tuệ nhân tạo: Phần mềm thông minh giúp ích lớn cho con người trong việc lập lịch , tính toán ví dụ như phần mềm lập lịch thi, phần mềm sắp thời khóa biểu.2 Đ ặc điếm th ị trư ờ n g sản p h ẩ m p h ầ n m ề m 1.1 Đặc điểm của phần mềm * Phần m ềm được phát triển, nó không được chế tạo theo nghĩa cổ điển Trong quá trình làm việc, khi con người thấy cần một nhu cầu nào đó hay một sự hồ trợ nào đó thì những nhà lập trình tin học sẽ phân tích yêu cầu đó để tạo ra phần mềm.
Và phần mềm có thể được nâng cấp, cơi nới tùy theo nhu cầu phát sinh của các doanh nghiệp và xã hội. Cũng giống như phần cứng, phần mềm cũng được thiết kế, chế tạo nhưng nó không được định hình trước. Chỉ khi phát triển xong người ta mới có sản phẩm cụ thể và biết được nó hoạt động có hiệu quả hay không. Người ta không thể nói trước được giá thành của phần mềm và hiệu quả của nó.
Chính quá trình phát triển phần mềm quyết định giá thành và chất lượng của nó. Quá trình thiết kế và sản xuất phần mềm phụ thuộc vào con người, vào điều kiện môi trường cụ thể mà tại đó nó được phát triển. * Phần m ềm không “hỏng đi” nhưng thoái hóa theo thời gian Đây là một đặc điểm khác biệt giữa phần mềm và phần cứng. Phần mềm không bị hỏng do tác động của môi trường, do mòn cũ.
về mặt lý thuyết, tỷ lệ lỗi của phần mềm là không đổi khi đã đưa vào sử dụng. Nhưng trên thực tế nó lại thoái hóa qua thời gian do lỗi mới sinh ra mỗi khi tiến hành bảo trì trong quá trình sử dụng. 9 Việc sửa đổi (bảo trì) phần mềm có thế tạo ra một số khiếm khuyết mới làm cho phần mềm bị thoái hóa, xuất hiện các lỗi mới phát sinh. Dần dần, mức lỗi tối thiểu tăng lên - phần mềm bị thoái hóa do tỷ lệ sai hỏng tăng lên đến mức gây ra những thiệt hại không thể chấp nhận đuợc hoặc nguời dùng không muốn sử dụng nữa vì có những phần mềm khác tốt hơn.
Phần mềm còn lạc hậu do các công nghệ mới ra đời, người dùng không còn thích dùng phần mềm cũ nữa. Công nghệ mới ra đời mang đến các giải pháp hiệu quả hơn hay khi các công nghệ mới (Hệ điều hành, các hệ quản trị cơ sở dữ liệu, phiên bản dịch mới, .) được đưa vào tổ chức làm cho các phần mềm cũ không the tiếp tục vận hành trên máy với chúng. * Phần lớn được xây dựng theo đơn đặt hàng Một đặc điểm khác với phần cứng đó là phần mềm không có danh mục các thành phần cố định. Nó thường được đặt hàng theo một đơn vị hoàn chỉnh, theo yêu cầu riêng của mồi tổ chức, mỗi khách hàng, ít khi có thể lắp ráp theo một khuôn mẫu có sẵn.
Yêu cầu đối với phần mềm của khách hàng tùy thuộc vào môi trường cụ thể mà ở đó nó được phát triển và sử dụng. Nó phụ thuộc vào đặc thù của mỗi doanh nghiệp, mỗi tổ chức.Môi trường này không thể định dạng từ trước và luôn thay đổi theo không gian và thời gian. Chính vì vậy, khi bắt đầu thiết kế, xây dựng một phần mềm thì công ty sản xuất phần mềm thường phải tìm hiểu thực tế hoạt động tại doanh nghiệp có nhu cầu sử dụng phần mềm để từ đó đưa ra những mô tả về nghiệp vụ chính xác nhất và đảm bảo phần mềm xây dựng nên đạt hiệu quả cao nhất khi đưa vào sử dụng. * Phức tạp và có tính thay đổi luôn.
Cốt lõi của phần mềm (mã nguồn) là những khái niệm được thể hiện bằng một hệ thống logicđược lưu trên giấy hay vật mang. Phải là những người am hiểu về tin học và có khả năng lập trình mới đọc được các tài liệu này. Phần mềm là 10 “không nhìn thấy được’' ,cái mà chúng ta hay sử dụng và gọi là phần mềm thực ra là giao diện tương tác giữa con người và máy của phần mềm. Môi trường xã hội luôn thay đổi do vậy phần mềm cũng phải phải thay đổi một cách tương ứng cùng thời gian.
Thay đổi trở thành yêu cầu và thuộc tính tất yếu của phần mềm.