Bạn có thể hiểu đơn giản, Software Phần mềm là tập hợp của nhiều câu lệnh hoặc chỉ thị được thể hiện bằng một hay nhiều ngôn ngữ lập trình theo trật tự nhất định, nhằm tự động tiến hành
Trang 1
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO TL, BTL, ĐA/DA THUỘC HỌC PHẦN: NHẬP
MÔN VỀ KỸ THUẬT
TÊN CHỦ ĐỀ NGHIÊN CỨU: Tìm hiểu về phần mềm
GVHD: HÀ MẠNH ĐÀO
Sinh viên: TRẦN HOÀNG VŨ (T)
NGUYỄN MINH QUANG TRẦN QUỐC ANH
Lớp: CNTTTA01 KHÓA: 17
HÀ NỘI- NĂM 2023
Trang 2Mục lục
Trang 3Xuất phát từ những lí do trên, chúng tôi chọn tìm hiểu về phần mềm làm đề tài tìm hiểu của nhóm mình.
Trang 4Phần 2: Kết quả nghiên cứu
I Khái niệm và vai trò của phần mềm
1.Khái niệm
- Phần mềm (tên gọi tiếng Anh: Software, viết tắt: SW hoặc S/W) là một khái niệm khá trừu tượng Bạn có thể hiểu đơn giản, Software (Phần mềm) là tập hợp của nhiều câu lệnh hoặc chỉ thị được thể hiện bằng một hay nhiều ngôn ngữ lập trình theo trật tự nhất định, nhằm tự động tiến hành các nhiệm vụ và chức năng cụ thể nào đó
- Các phần mềm trên một thiết bị sẽ có sự kết nối với nhau để cùng cung cấp thông tin và phục vụ các chương trình được yêu cầu Đối với phần mềm máy tính, chúng sẽ thực hiện các chức năng bằng cách gửi trực tiếp chỉ thị đến Phần cứng - Bộ phận bắt buộc phải có thì máy tính mới thực thi được
2 Vai trò
- Phần mềm máy tính là một tập hợp các hướng dẫn cho phép người dùngtương tác với máy tính, phần cứng hoặc thực hiện các tác vụ
Trang 5- Không có các chương trình phần mềm, phần lớn hoạt động của máy tính
sẽ trở nên vô nghĩa
Ví dụ, không có phần mềm trình duyệt Internet, bạn sẽ không thể lướt web
3 Đặc điểm của phần mềm nói chung
Trang 6- Phần mềm được tạo ra bằng 02 cách: Một là được tạo ra bởi con người (hay còn gọi là lập trình viên); Hai là được sinh ra bởi những chương trình khác.
- Phần mềm sẽ không bị “hỏng” đi giống như các sản phẩm hữu hình Trên thực tế nó sẽ xuất hiện lỗi và chỉ trải qua sự bảo trì, nâng cấp để khắc phục
- Phần mềm đa số được xây dựng và lập trình dựa theo nhu cầu (đơn đặt hàng) chứ không phải lắp ráp dựa trên những bộ phận có sẵn
4 Phân loại
- Phần mềm sẽ được chia ra thành nhiều loại nhằm đảm bảo mục đích và nhu cầu sử dụng khác nhau cho từng thiết bị và người dùng Có 02 loại phần mềm chính như sau:
+ Phần mềm ứng dụng: Có thể dễ dàng cài đặt hoặc gỡ bỏ khi đã hết nhu cầu sử dụng
+ Phần mềm hệ thống: Được thiết kế để quản lý hành vi của phần cứng máy tính nhằm phục vụ những chức năng cơ bản cho người dùng Bởi vậy loại phần mềm này rất đa dạng, bao gồm: Hệ điều hành, Trình điều khiển, Tiện ích,
Trang 7Còn một loại phần mềm nữa mà chúng tôi muốn liệt kê vào để bạn có cái nhìn tổng quan hơn về lĩnh vực này Đó là Phần mềm độc hại
Có thể xếp loại này vào danh mục phần mềm “đen” chuyên được các đối tượng xấu sử dụng để tấn công vào hệ thống của bạn nhằm làm “tê liệt” các hoạt động của máy chủ
5 Ưu và nhược điểm của phần mềm
Ưu điểm của phần mềm:
- Giúp cuộc sống của con người trở nên thông minh và khoa học hơn
- Thay vì phải làm mọi việc một cách thủ công, thuật toán của phần mềm
sẽ giúp bạn giải quyết nhanh chóng nhiều vấn đề trong cuộc sống
- Tính tiện dụng cao và hạn chế được nhiều rủi ro trong công việc
- Bạn có thể trả tiền để nhà cung ứng lập trình một phần mềm theo đúng nhu cầu của mình
- Cùng nhiều ưu điểm khác theo từng loại phần mềm khác nhau Ví dụ như phần mềm quản lý công việc sẽ giúp bạn nâng cao hiệu quả hơn khi làm việc và giao diện của loại phần mềm này cũng dễ sử dụng
Nhược điểm của phần mềm:
Trang 8- Có thể xảy ra lỗi và cần có đội Dev can thiệp khi cần Chẳng hạn như một phần mềm ứng dụng về giải trí, sẽ không ít lần bạn gặp phải tình trạng như bị giật, lag hay phần mềm quản lý bán hàng bỗng nhiên bị treo server
- Mỗi loại phần mềm riêng sẽ có những nhược điểm riêng Chẳng hạn như một số phần mềm quản lý doanh nghiệp đi kèm với yêu cầu mức phí khá cao thì mới có thể sử dụng,
+ Loại phần mềm này sẽ được cải tiến qua các phiên bản nâng cao bởi nhà cung cấp và nó được đảm bảo về mức độ uy tín và tính chuyên
nghiệp
- Phần mềm mã nguồn mở
+ Phần mềm mã nguồn mở (tên tiếng Anh: Open Source Software): Là dạng phần mềm được công bố rộng rãi, cho phép tất cả mọi người đều có quyền truy cập, sử dụng hay tiếp tục phát triển nó
Trang 9+ Đa số các phần mềm mã nguồn mở đều không phải trả phí để sử dụng
và phục vụ chính cho mục đích phi lợi nhuận Chẳng hạn như nhu cầu giải trí, học tập, của con người
Quá trình để thiết kế ra một phần mềm
- Ở phần này chúng tôi sẽ giúp bạn có cái nhìn khái quát về các bước để phát triển một phần mềm hoàn chỉnh Toàn bộ quy trình sẽ được diễn ra theo 07 bước sau:
Bước 1: Tìm hiểu, phân tích và lên kế hoạch chi tiết (bao gồm thời gian thực hiện, chi phí phát sinh, nguồnnhân lực và lường trước một số rủi ro có thể xảy ra)
Bước 2: Xác định rõ đối tượng và mục tiêu mà dự án đang hướng tới
Bước 3: Thiết kế khung sườn (khung giao diện, kiến trúc hệ thống)
Bước 4: Tập trung vào việc phát triển phần mềm theo như mục tiêu đề ra ban đầu
Bước 5: Test - Kiểm tra phần mềm xem có chức năng
bị lỗi hay không và fix lại nó
Bước 6: Sau khi đã hoàn thiện sản phẩm, việc tiếp theo chắc chắn sẽ là “bày bán” Tiến hành triển khai lên server cho khách hàng hoặc công bố trên App
Bước 7: Bảo trì, sửa chữa và nâng cấp phần mềm
- Gói gọn về mặt lý thuyết, bạn sẽ cảm thấy quy trình này diễn ra có vẻ đơn giản và nhanh chóng Tuy nhiên trên thực tế có những phần mềm
Trang 10phải mất đến hàng chục năm mới có thể hoàn thiện để đưa đến cho người
Là một loại phần mềm được lậptrình nhằm thực thi một nghiệp
vụ nhất định nào đó.Khả năng thực
Có thể hoạt động không cầnđến sự tương tác của con
người
Ứng dụng sẽ hoạt động dựa trên
hệ thống
Hoạt động dựa trên sự tương tác
của con người
Phần mềm có thể không phải
là ứng dụng
Tất cả ứng dụng đều là phần
mềm
II Thực trạng về phần mềm ở Việt Nam
1 Xu hướng việc làm Phát triển phần mềm
Hiện nay, nhu cầu ứng dụng công nghệ thông tin vào mọi mặt của cuộc
sống để tối ưu hóa công việc đã được ưu tiên lên hàng đầu Vì vậy, sử
dụng các phần mềm đã được “set up” chính là lựa chọn của nhiều cá
nhân, doanh nghiệp mong muốn quản lý công việc hiệu quả, tiết kiệm
thời gian
Trang 11Trên thế giới, mang phần mềm vào các thiết bị đã trở nên quen thuộc TạiViệt Nam, việc này lại càng trở thành xu hướng ở nhiều công ty, doanhnghiệp Hơn nữa, nhiều start-up công nghệ cũng tập trung vào triển khaiphần mềm như một ứng dụng hiệu quả để giải quyết nhiều đầu việc.
Development) tại Việt Nam trở thành chuyên ngành chính, được đưa vàogiảng dạy với mục đích nâng cao nhân lực công nghệ phần mềm
2.Thành tựu
Visual Studio Code
Visual Studio Code là một phần mềm lập trình C/C++ khá là tuyệtvời Visual Studio Code là mã nguồn có một cộng đồng hỗ trợ rộng lớn
Sử dụng IntelliSense giúp bạn giải quyết tất cả các vấn đề khó Với cáclệnh Git được tích hợp sẵn, debug code chưa bao giờ dễ dàng hơnvới Visual Studio Code và còn nhiều tính năng khác khiến việc lập trìnhcủa bạn trở nên thuận tiện hơn rất nhiều Visual Studio Code xứng đángđứng top trong tất cả các phần mềm lập trình C/C++ khác
Ứng dụng hỗ trợ nền tảng Windows, MacOs và cả Linux Ngoài ra ứngdụng còn hỗ trợ đa dạng ngôn ngữ như Java, JavaScript, … Đây là mộtứng dụng gọn nhẹ và hỗ trợ lập trình mạnh mẽ nên các lập trình viên hãyyên tâm sử dụng ứng dụng này nhé
Trang 12III Giải pháp phát triển phần mềm
Phát triển phần mềm được tạo ra với đa dạng các mô hình, mỗi mô hình có những đặc trưng riêng Dưới đây là các giải pháp phát triển phần mềm được ứng dụng rộng rãi nhất:
1.Mô hình thác nước (Waterfall).
Trang 13Mô hình Waterfall hay còn gọi là mô hình thác nước Mô hình này được thiết kế theo tầng với quá trình phát triển giống như dòng chảy thác nước Áp dụng quy trình tuần tự từ phân tích, dự báo đến hiện thực, thử nghiệm, thực hiện, hỗ trợ Cả quá trình được thiết lập, theo dõi nghiêm ngặt Được xác định trước với những tính năng được mongđợi.
Ưu điểm của mô hình phát triển phần mềm Waterfall là dễ dàng phát triển, quản lý Thích hợp cho các dự án có thời gian ngắn Đây là mô hình phần mềm đầu tiên được ứng dụng Tuy nhiên nhược điểm là ít linh hoạt, khó để đo lường phát triển qua từng giai đoạn
2 Mô hình phát triển và kiểm thử phần mềm Agile
Agile là mô hình phát triển và kiểm thử phần mềm khá hiệu quả Ưu điểm mô hình là khách hàng có thể nhìn được kết quả sau mỗi lẫn lặp lại phát triển Từ đó có thể đưa ra nhận xét trực quan Tuy nhiên mô hình không có yêu cầu xác định nên khó khăn khi ước tính nguồn lực Khó xác định chính xác chi phí để phát triển Cơ sở của Agile chính là
Trang 14các cuộc họp ngắn hàng tuần Và Sprint là một phần trong phương pháp tiếp cận scrum.
3.Mô hình phát triển tiếp cận lặp (Iterative)
Mô hình phần mềm Iterative hay còn được gọi là mô hình tiếp cận lặp.Với Iterative, không cần phải xác định đầy đủ mọi yêu cầu khi bắt đầu
dự án Chỉ cần xác định trọng tâm yêu cầu chính là được Quá trình phát triển phần mềm này bắt đầu tùy vào chức năng, yêu cầu riêng biệt Cũng có thể được mở rộng sau đó Quá trình lặp lại cho phép tạo
ra được những phiên bản mới cho mọi chu kỳ của sản phẩm Thời gianlặp lại kéo dài từ 2 đến 6 tuần Bao gồm phát triển thành phần riêng biệt trong hệ thống Sau đó được thêm vào chức năng mà trước đó đã phát triẻn
Ưu điểm của Iterative chính là sự linh hoạt Thời gian làm tài liệu cũng ít hơn so với khoảng thời gian thiết kế Dễ dàng hơn trong việc quản lý các rủi ro Nhược điểm của mô hình là yêu cầu tài nguyên phức tạp trong việc quản lý
4.Mô hình phát triển phần mềm Scrum
Trang 15Scrum là thuộc họ agile khá linh hoạt Nguyên tắc chủ đạo trong mô hình này là chia nhỏ module cần phát triển Lấy ý kiến của khách hàng, thay đổi cho phù hợp với quá trình phát triển Đảm bảo sản phẩm release có thể đáp ứng mọi vấn đề khách hàng mong muốn Mô hìn chia dự án thành các vòng lặp có tên là các sprint Mỗi sprint sẽ phải mất khoảng 30 ngày để hoàn thành Scrum thực sự rất phù hợp với những dự án cần nhiếu thay đổi Cũng là lựa chọn tốt cho những
dự án yêu cầu tốc độ cao
Ưu điểm của quy trình phát triển phần mềm Scrum là có thể làm rất nhiều việc Phát hiện được lỗi sớm hơn so với các phương pháp truyềnthống Giúp khách hàng thấy được sản phẩm nhanh chóng và đưa ra phản hồi sớm hơn Nhược điểm của Scrum là trình độ của nhóm phải
có kỹ năng nhất định Phải trang bị hiểu biết về mô hình agile Hơn nữa khó khăn hơn trong việc xác định thời gian và ngân sách
5.Mô hình xoắn ốc (Spiral)
Trang 16Mô hình Spiral hay còn gọi là mô hình xoắn ốc Spiral là sự kết hpwj giữa hai mô hình prototyping và mô hình thác nước Mô hình với điểmnhấn quan trọng là có thể phân tích rủi ro Bao gồm các bước thiết lập mục tiêu, đánh giá, giảm thiểu rủi ro Phát triển sản phẩm và lập kế hoạch phát triển.
Ưu điểm của Spiral là xác định được thời điểm thích hợp để thực hiện giai đoạn tiếp theo Công đoạn này vẫn được thực hiện theo đúng kế hoạch dù công việc giai đoạn trước chưa hoàn thành Kế hoạch được giới thiệu dựa vào dữ liệu được thống kê trong dự án trước Hoặc dựa vào kinh nghiệm của các nhà lập trình phần mềm
6.Mô hình phát triển phần mềm chữ V
Trang 17V-shaped hay còn được gọi là mô hình chữ V Mô hình phát triển phầnmềm này chính là bản nâng cấp của mô hình thác nước Dựa trên giai đoạn thử nghiệm liên quan đến các giai đoạn phát triển Mô hình này yêu cầu tính kỷ luật cao Giai đoạn tiếp theo chỉ bắt đầu sau giai đoạn trước Mọi giai đoạn đều được kiểm soát với quy trình hiện tại Đảm bảo cho việc chuyển đổi sang giai đoạn tiếp theo có thể thực hiện được Nhược điểm của mô hình này là khó trong việc quản lý mọi rủi
ro Không thích hợp áp dụng cho các dự án thay đổi liên tục
1 Thực tế ảo (VR) và Thực tế tăng cường (AR)
Trang 18Thực tế tăng cường (AR) và Thực tế ảo (VR) đã phát triển từ năm
2019 – 2020 Những công nghệ to lớn này hiện là một phần của cuộc sống: từ ngành công nghiệp trò chơi / giải trí đến kinh doanh cho đến cuộc sống hàng ngày như hình đại diện AR, điều hướng trong nhà AR,
hỗ trợ từ xa, tích hợp AI với AR và VR, AR di động, đám mây AR, các sự kiện thể thao ảo và nhận dạng nét mặt
2.Thương mại điện tử
Chúng ta đang sống trong kỷ nguyên với sự lên ngôi của smartphone
và các trang thương mại điện tử Website thương mại điện tử là trang thông tin điện tử được xây dựng để phục vụ một phần hoặc toàn bộ quá trình trao đổi mua bán hàng hóa, cung ứng dịch vụ, từ việc trưng bày, giới thiệu hàng hóa cho đến thanh toán trực tuyến Hiểu đơn giản,đây là một dạng website bán hàng
Trang 19Tại Việt Nam hiện có đến khoảng 60 triệu người sử dụng Internet, mạng xã hội Sự phát triển của mạng Internet đã hình thành thói quen mua sắm trực tuyến ở người dùng, họ đang dần có xu hướng chuyển sang mua sắm trên mạng thay vì đến trực tiếp cửa hàng.
Chính vì thế, thiết kế website thương mại điện tử, kinh doanh trực tuyến hay phát triển phần mềm thương mại điện tử hiện đang là một trong những xu hướng phát triển phần mềm rất được ưa chuộng hiện nay
3.Trí tuệ nhân tạo
Trí tuệ nhân tạo AI (Artificial Intelligence) là công nghệ mô phỏng quá trình suy nghĩ và học tập của con người cho máy móc, đặc biệt là
Trang 20các hệ thống máy tính Những ứng dụng đặc sắc của AI gồm có: hệ thống chuyên gia, nhận dạng giọng nói, thị giác máy tính (nhận dạng khuôn mặt, vật thể hoặc chữ viết).
Công nghệ này được lập trình với mục đích giúp các thiết bị công nghệ thông minh có thể tự động hóa các hành vi thông minh như con người, đồng thời cũng làm thay đổi cách thức chúng ta tương tác với những ứng dụng di động
Bên cạnh việc giúp ứng dụng trở nên trực quan hơn, công nghệ AI còn
có khả năng đem đến trải nghiệm tốt hơn cho người dùng Với trí tuệ nhân tạo, mọi thông tin của người dùng đều được chuyển qua các thuậttoán, từ đó có thể đưa ra những đề xuất thích hợp với sở thích và vị trí của họ AI sẽ hỗ trợ con người dễ dàng hơn trong việc thu thập thông tin, đặt lịch hẹn, sắp xếp lịch trình, đồng thời tối ưu hóa năng suất trong công việc
Trang 214.Ứng dụng Chatbot
Dựa theo thống kê, có đến 52% khách hàng muốn tương tác mua sắm hoặc sử dụng dịch vụ qua các ứng dụng tin nhắn hơn là thông qua cuộc gọi hay gặp mặt trực tiếp Chính vì thế, dịch vụ chatbot đã ra đời nhằm đáp ứng tối đa nhu cầu của người dùng Chatbot hiện đang là một công cụ không thể thiếu ở dịch vụ chăm sóc khách hàng tại các ứng dụng thương mại điện tử lớn trên thị trường
Bên cạnh đó, với sự hỗ trợ của AI, chức năng trả lời tự động ngay cả khi không có yêu cầu cũng góp phần giúp nâng cao chất lượng tư vấn, chăm sóc khách hàng cho các doanh nghiệp Một số ứng dụng phổ biến hiện đang sử dụng chatbot như một công cụ giao tiếp hiệu quả vớingười dùng có thể kể đến như: Facebook Messenger, Slack, Telegram,Wechat,…
Trang 22Song song đó, các cơ quan chính phủ cũng đang dần ứng dụng
blockchain cho các hoạt động của mình, thay đổi từ tâm lý hoài nghi sang chấp nhận công nghệ này Chính vì thế, những quy định liên quanđến blockchain dự kiến sẽ được xây dựng rõ ràng hơn Giới quan sát
kỳ vọng trong tương lai gần, việc sử dụng blockchain có thể cũng dễ dàngnhư việc tạo một tài khoảnn ngân hàng truyền thống vậy
6.Phần mềm tư vấn chăm sóc sức khỏe từ xa
Đại dịch COVID-19 diễn biến phức tạp đã buộc các quốc gia trên thế giới phải thực hiện những đợt giãn cách xã hội kéo dài Thế nhưng, một số bệnh nhân lại không thể chờ đợi đến khi kết thúc phong tỏa Sự
ra đời của các hoạt động tư vấn, khám chữa bệnh từ xa thông qua các phương tiện công nghệ đã giúp giải quyết vấn đề này