Tải bản đầy đủ (.docx) (56 trang)

Baocaotieuluan_Cnpm_Cntt_K19C-New.docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.82 MB, 56 trang )

TRƯỜNG: CNTT &TT
KHOA: CNTT
----------

BÁO CÁO TIỂU LUẬN
Môn học: Công nghệ phần mềm
Chủ đề: Xây dựng chương trình quản lý bán hàng

Giáo viên hướng dẫn: Hoàng Thị Cành
Sinh viên thực hiện:
1 Nguyễn Công Tuấn Anh
2 Hứa Văn Dương
3 Dương Ngô Hưởng
4 Hoàng Ngọc Lan
5 Lý Việt Hoàng
Lớp:
CNTT K19C
Thái Nguyên 2022


MỤC LỤC
LỜI NĨI ĐẦU................................................................................................................... 1
Chương 1. Tổng quan về cơng nghệ phần mềm.................................................................2
1.1 Cơng nghệ phần mềm nhìn từ góc lịch sử....................................................................2
1.2 Các khái niệm cơ bản...................................................................................................2
1.3 Các trách nhiệm đạo đức và nghề nghiệp.....................................................................3
1.4 Các xu hướng công nghệ phần mềm hiện đại...............................................................4
1.5 Vòng đời của phần mềm...............................................................................................6
1.6 Quy trình phát triển phần mềm.....................................................................................6
1.7 Mơ hình phần mềm......................................................................................................7
1.8 CMM/CMMI................................................................................................................ 8


Chương 2. Lập kế hoạch dự án.........................................................................................12
2.1 Chọn mơ hình làm việc, ngôn ngữ và công cụ thực hiện của dự án............................12
2.2 Bảng phân công nhiệm vụ..........................................................................................13
2.3 Buổi thảo luận 1.........................................................................................................14
2.4 Buổi thảo luận 2.........................................................................................................14
2.5 Buổi thảo luận 3.........................................................................................................15
Chương 3. Đặc tả phần mềm............................................................................................15
3.1 Giới thiệu...................................................................................................................15
3.2 Mô tả chung................................................................................................................ 15
3.3 Danh mục các chức năng của hệ thống.......................................................................16
3.4 Đặc tả phần mềm........................................................................................................16
Chương 4 Phân tích thiết kế hệ thống...............................................................................36
4.1 Giới thiệu...................................................................................................................36
4.2 Thiết kế kiến trúc........................................................................................................36
4.3 Thiết kế giao diện.......................................................................................................36
4.4 Thiết kế cấu trúc dữ liệu.............................................................................................45
Chương 5 Giao diện chương trình quản lý bán hàng........................................................48
5.1 Giới thiệu...................................................................................................................48
5.2 Giao diện hệ thống.....................................................................................................48
Tổng kết........................................................................................................................... 53


LỜI NĨI ĐẦU
Hiện nay, cơng nghệ ngày càng phát triển nhu cầu mua sắm của con người tang cao, nếu
tiếp tục làm theo phương pháp thủ cơng thì sẽ khơng đáp ứng được mong muốn của khách
hàng, khi tính tốn thống kê sản phẩm, doanh thu, giá bán sẽ gặp nhiều khó khăn với thời
đại con cần phải hoạt động năng suất cao. Như hiện nay thì việc đào tạo một nhân viên
phải nhớ giá cả từng mặt hàng là một điều khó khăn, cho nên chúng em đã đưa ra giải
pháp để giải quyết vấn đề nhức nhối đó bằng việc tạo ra một phần mềm chuyên dụng để
quản lý bán hàng. Đặc trưng của phần mềm quản lý bán hàng mà chúng em tạo ra là có

thể giải quyết được những nhược điểm của cách làm thủ công, mang lại một sự tối ưu
hóa, tiết kiệm thời gian của con người trong quá trình làm việc, giúp nâng cao hiệu suất
làm việc của con người từ đó góp một phần nhỏ đẩy nhanh sự phát triển của kinh tế nói
riêng và sự phát triển của lồi ng nói chung. Phần mềm này giúp quản lý các sản phẩm
cũng như các nhà cung cấp với số lượng đầu vào và đầu ra một cách thuận tiện hơn. Tuy
nhiên phần mềm này chưa được sự tối ưu hóa đến mức tối đa do một phần là thời gian
cũng khơng có nhiều, ngân sách cũng khá tốn kém, kinh nghiệm của từng thành viên cịn
ít.

1


Chương 1 Tổng quan về công nghệ phần mềm
1.1 Công nghệ phần mềm nhìn từ góc nhìn lịch sử
Q trình phát triển phần mềm chia thành 3 giai đoạn:
● Giai đoạn 1955-1970: Tính tốn và quản lý rời rạc, quản lý nhỏ. Đặc tả yêu cầu của
khách hàng lúc đó cịn dùng ngơn ngữ tự nhiên thơng thường.
● Giai đoạn 1971-1985: Có nhu cầu xây dựng các phần mềm thời gian thực.
● Giai đoạn 1986 – đến nay: Là thời kỳ của máy vi tính PC, thời nối mạng tầm rộng,
mạng toàn cầu Internet.
Những thách thức đối với phần mềm:
● Phần mềm làm ra nhỏ hơn rất nhiều so với nhu cầu
● Việc khai thác phần mềm nhỏ hơn rất nhiều so với tiềm lực phần cứng
● Bảo trì những hệ thống phần mềm cũ, lạc hậu để sử dụng là cực kỳ khó khăn
● Về cơng nghệ: cần có các công nghệ, công cụ hiện đại để phát triển phần mềm
● Về mặt quản lý: Cần có phương pháp thích hợp
1.2 Các khái niệm cơ bản
1.2.1 Phần cứng (Hardware)
Phần cứng là các thiết bị cấu kiện mang tính vật lý có thể tiếp xúc được như máy in, ổ đĩa,
máy quét….

1.2.2 Phần mềm (Software)
Phần mềm là các chương trình chứa các dịng lệnh chỉ thị cho máy tính thực hiện một
cơng việc nào đó. Trong cơng nghệ phần mềm thì phần mềm khơng chỉ là các chương
trình, dữ, liệu, mà còn gồm các tài liệu liên quan như các bản đặc tả, thiết kế, hướng dẫn
sử dụng, các thông tin cấu hình cần thiết để làm cho các chương trình này có thể vận dụng
đúng đắn.
Các sản phẩm phần mềm có thể được chia thành hai dạng:
● Sản phẩm đại trà (Generic Product): Được phát triển để bán ra ngoài thị trường, đối
tượng người sử dụng tương đối đa dạng và phong phú. Những sản phẩm phần mềm thuộc
loại này là những phần mềm dành cho máy tính PC.
● Sản phần theo đơn đặt hàng (Bespoke Product hoặc Custom Product): Được phát triển
theo một khách hàng riêng lẻ yêu cầu.
1.2.3 Công nghệ (Engineering)

2


Công nghệ là cách sử dụng các công cụ, các kỹ thuật trong tiến trình giải quyết một vấn
đề nào đó. Mọi cơng nghệ đều có đề cập đến sản xuất sản phẩm theo tiến trình. Tổng quát
thì tiến trình xác định ai làm gì, khi nào và làm như thế nào để đạt tới mục đích mong
muốn.
1.2.4 Cơng nghệ phần mềm (Software Engineering)
Công nghệ phần mềm là quy tắc cơng nghệ có liên quan đến tất cả các khía cạnh của tiến
trình phát triển phần mềm như: sản xuất như thế nào? Đánh giá, đảm bảo chất lượng, quản
lý ra sao….
Định nghĩa công nghệ phần mềm:
Định nghĩa cổ điển: Công nghệ phần mềm là sự thiết lập và sử dụng các nguyên tắc khoa
học nhằm mục đích tạo ra các sản phẩm một cách kinh tế mà các sản phẩm phần mềm lại
hoạt động một cách hiệu quả và tin cậy trên máy tính.
Định nghĩa khác:

● Cơng nghệ phần mềm là các quy trình đúng kỷ luật và có định lượng được áp dụng cho
sự phát triển, thực thi và bảo trì các hệ thống thiên về phần mềm.
● Cơng nghệ phần mềm tập trung vào quy trình, sự đo lường, sản phẩm, tính đúng đắn
thời gian và chất lượng.
Kỹ sư phần mềm (Software Engineer): Là một người biết cách áp dụng rộng rãi những
kiến thức về công nghệ phần mềm, mục tiêu của kỹ sư phần mềm là sản xuất ra các sản
phẩm có chất lượng cao và phù hợp với các quy trình phát triển chuẩn mực. Cơng việc
chính của kỹ sư phần mềm là đánh giá, lựa chọn, sử dụng những cách tiếp cận có tính hệ
thống, chuyên nghiệp, rõ ràng trong việc phát triển, đưa vào ứng dụng, bảo trì và thay thế
phần mềm.
1.2.5 Sự khác biệt giữa công nghệ phần mềm và khoa học máy tính?
Khoa học máy tính đề cập tới lý thuyết và những vấn đề cơ bản liên quan đến máy tính
cịn cơng nghệ phần mềm đề cập tới các hoạt động xây dựng và đưa ra một phần mềm
hữu ích. Khi phát triển của phần mềm trở nên mạnh mẽ thì các lý thuyết của khoa học
máy tính khơng đủ để đóng vai trị là nền tảng hồn thiện cho cơng nghệ phần mềm
1.2.6 Tiến trình phần mềm là gì?
Là một tập hợp các hoạt động có cấu trúc mà mục đích của nó là xây dựng, phát triển và
tiến hóa phần mềm. Một tiến trình cụ thể phải trả lời được câu hỏi: Làm gì? Khi nào làm?
Ai làm? Làm như thế nào? Bằng gì? Ở đâu? Kết quả? Tiêu chí đánh giá?
1.2.7 Mơ hình quy trình phát triển phần mềm là gì?
Mơ hình quy trình phát triển phần mềm là một thể hiện đơn giản của một quy trình phần
mềm, và nó được biểu diễn từ một góc độ cụ thể.
1.2.8 Các phương pháp công nghệ phần mềm là gì?
Các phương pháp cơng nghệ phần mềm là các cách tiếp cận có cấu trúc chỉ ra cách thức
để phát triển phần mềm.
3


1.3 Các trách nhiệm đạo đức và nghề nghiệp
1.3.1 Các vấn đề về trách nhiệm nghề nghiệp

- Cẩn mật: Tôn trọng các thơng tin bí mật và sự cần mật của người lao động và các
khách hàng bất chấp có hay không bán hợp đồng về sự cần mật được ký kết.
- Năng lực: Không được xuyên tạc năng lực của mình, phải biết chấp nhận những cơng
việc nào là vượt quá khả năng của mình.
- Các quyền sở hữu trí tuệ: Cần nắm vững các luật hiện thời về sở hữu trí tuệ như bằng
sáng chế, bản quyền. Họ cần đảm bảo rằng các quyền sở hữu trí tuệ của khách hàng và
của người lao động được bảo vệ.
- Khơng được lạm dụng máy tính của người khác: Các kỹ sư phần mềm không được sử
dụng các kỹ thuật nghề nghiệp của mình để sử dụng sai máy tính của người khác. Việc
lạm dụng máy tính giới hạn từ những hành động đáng kể như chơi game trên máy tính
người dùng đến những hành động nghiêm trọng như reo rắc virus trên máy tính của người
khác.
1.3.2 Các chuẩn mực đạo đức
✔ Xã hội (Public): Kỹ sư phần mềm luôn làm việc vì lợi ích của xã hội.
✔ Khách hàng và chủ doanh nghiệp (Client and employer): Kỹ sư phần mềm có thái độ
và làm việc đảm bảo tối đa lợi ích của khách hàng và chủ doanh nghiệp, bên cạnh việc
đảm bảo lợi ích xã hội.
✔ Sản phẩm (Product): Kỹ sư phần mềm đảm bảo phần mềm của họ cũng sửa đổi phần
mềm có liên quan đạt chuẩn chuyên mơn cao nhất có thể.
✔ Phán xét (Judgment): Kỹ sư phần mềm đảm bảo giá trị đạo đức của bản thân và tính
độc lập trong các phán xét chun mơn của mình.
✔ Quản lý (Management): Các nhà quản lý và lãnh đạo công nghệ phần mềm cần cam kết
công khai ủng hộ và đẩy mạnh việc quản lý có đạo đức trong phát triển và quản lý chất
lượng phần mềm.
✔ Nghề nghiệp (Profession): Kỹ sư phần mềm luôn công bằng và ln hỗ trợ đồng
nghiệp của mình.
✔ Bản thân (Self): Kỹ sư phần mềm không ngừng học tập những kiến thức liên quan đến
ngành nghề của mình, sẽ ln quảng bá và đẩy mạnh yếu tố đạo đức trong nghề nghiệp
của họ.
1.4 Các xu hướng công nghệ phần mềm hiện đại

1.4.1 Mạng 5G
5G được biết đến là thế hệ mạng di động không dây thứ 5. Đây là sự kế thừa cho công
nghệ không dây nhanh nhất hiện tại 4G. Theo thơng tin tìm hiểu từ các chun gia nghiên
cứu, mạng 5G sẽ sử dụng dải băng tần 28, 38 và 60GHz và dự đoán thế hệ mạng 5G sẽ
nhanh hơn so với mạng 4G đến 100 lần. Điều này mang đến nhiều lợi ích hấp dẫn cho các
4


cơng ty kỹ thuật số. 5G có thể là chìa khóa để biến những chiếc xe tự lái trở nên phổ biến
hơn chúng có khả năng nhập dữ liệu đến và đi từ những chiếc xe khác, chỉ dẫn đường
quanh co, nhưng điều này đòi hỏi tốc độ mạng nhanh, độ trễ thấp, nhiều băng thông và độ
tin cậy cao.
1.4.2 Internet of Thinh (IoT)
Nói đến xu hướng cơng nghệ phần mềm phải kể đến Internet of Things. Số lượng thiết bị
IoT được dự đốn có thể chạm mốc 21 tỷ. IoT được biết đến là những thiết bị được kết
nối với nhau thông qua mạng wi-Fi nên đối với mảng này một lệnh thoại cũng trở nên
hữu ích đồng thời có thể tăng âm thanh thơng minh, bật tắt thiết bị. Internet vạn vật tích
hợp với Internet mỗi ngày, những vật dụng thơng minh. Nó là tập hợp các dịch vụ và
phần mềm có chức năng tích hợp dữ liệu nhận từ các thiết bị khác nhau. Ứng dụng này sử
dụng cơng nghệ máy học hoặc trí tuệ nhân tạo AI để tích dữ liệu và đưa ra các quyết định
sáng suốt. Những quyết định này được truyền trở lại thiết bị IoT và sau đó sẽ phản hồi
vào một cách thơng minh. Ví dụ như nhà thơng minh (các thiết bị gia đình tập trung vào
hoạt động cải thiển và độ an tồn của ngơi nhà….)
1.4.3 Cơng nghệ trí tuệ nhân tạo AI (Artificial Intelligence)
Công nghệ AI cũng là xu hướng công nghệ phần mềm trong hiện tại và tương lai. Nhiều
năm gần đây công nghệ AI dần nổi trội hơn và nổi tiếng trên toàn cầu.
Sức chứa dữ liệu của công nghệ AI cực lớn với tên gọi Big Data, cùng với khả năng xử lý
khối lượng thông tin một cách nhanh nhất, công nghệ AI đã và đang được áp dụng trong
nhiều doanh nghiệp, mang lại nhiều lợi ích vượt trội. Với khả năng xử lý Big Data đã
mang đến cho công nghệ AI một vị thế mới, đặc biệt với dữ liệu của các doanh nghiệp,

công ty và góp phần lớn vào cơng việc củng cố công nghệ phần cứng.
Công nghệ này được con người 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, nó sẽ làm thay đổi tồn
bộ cách chúng ta tương tác với các ứng dụng di động. AI mang lại cho chúng ta những
trải nghiệm tốt hơn.
1.4.4 Công nghệ không cần mật khẩu
Xu hướng công nghệ xác thực không cần mật khẩu là một trong những xu hướng công
nghệ phần mềm hiện nay. Một trong những điều bạn dễ dàng thấy chính là những chiếc
Smartphone đang ngày càng có những thiết kế giao diện khác với trước kia. Thay vì phải
nhập mật khẩu trên màn hình thì bạn có thể sử dụng vân tây hay nhận diện khuôn mặt …
Công nghệ không cần mật khẩu làm giảm thiểu diện tích bề mặt tấn cơng, các thơng tin
đặng nhập bị mất và thiết bị đánh cắp đột nhiên khơng cịn là một vấn đề lớn nữa. Cơng
nghệ khơng cần mật khẩu có thể xác thực thơng tin bằng vân tay hay khuôn mặt sẽ bảo
mật thông tin hơn, đăng nhập dễ dàng cho người dùng với độ tin cậy cao
1.4.5 Ứng dụng công nghệ Blockchain
Blockchain là công nghệ lưu trữ và truyền tải thông tin dữ liệu bằng các khối được liên
kết với nhau và mở rộng theo thời gian. Blockchain được coi như cuốn sổ kế tốn hoạt
động trong lĩnh vực kỹ thuật số, có khả năng xác thực thông tin trong truyền tải dữ liệu
5


mà khơng địi hỏi bên trung gian. Blockchain được thiết kế chống lại sự thay đổi dữ liệu
khi chuỗi Blockchain được quản lý bởi mạng lưới phi tập trung.
Trong những năm 2022 dưới sự tỏa sáng của Blockchain việc chia sẻ và bảo mật dữ liệu
cho cả hoạt động quản lý, cải thiện chuỗi cung ứng nâng cao chất lượng dịch vụ chăm sóc
sức khỏe. Xu hướng số hóa gia tăng và sự thâm nhập sâu hơn của công nghệ tài chính sẽ
tạo mơi trường thuận lợi hơn blockchain được áp dụng trong các chuỗi cung ứng đơn
giản. Đại dịch Covid-19 đã để lại những vết sẹo khó lành cho thế giới, đồng thời buộc con
người phải dựa vào công nghệ để có thể duy trì kết nối, làm việc, giải trí và giữ gìn sức
khỏe.

1.4.6 Ứng dụng Chatbot
Chatbot là một chương trình kết hợp với trí tuệ nhân tạo để tương tác với con người. Cụ
thể như thay thế cho nhân viên để tư vấn trả lời những gì cho khách hàng thắc mắc.
Thường được trao đổi với người dùng qua hình thức tin nhắn hoặc âm thanh.
Người tiêu dùng muốn tương tác mua sắm hay sử dụng dịch vụ qua các ứng dụng tin nhắn
hơn là bằng cuộc gặp gỡ hay cuộc gọi. Ứng dụng chatbot giúp việc chăm sóc khách hàng
có thể 24/7. Là một giải pháp khơng thể thiếu trong các dịch vụ chăm sóc khách hàng như
Facebook, Messenger, Telegram….
1.5 Vòng đời của một phần mềm
Vòng đời phần mềm là thời kỳ tính từ khi phần mềm được sinh ra và cho đến khi chết đi
(từ lúc hình thành đáp ứng yêu cầu, vận hành, bảo trì loại bỏ khơng dùng đến nữa).
Quy trình phần mềm được phân chia thành các pha chính: phân tích, thiết kế, chế tạo,
kiểm thử, bảo trì. Biểu diễn các pha có thể khác nhau theo từng mơ hình.
Vịng đời phần mềm thường khá dài- một số sản phẩm phần mềm đã “tồn tại” được 30
năm.
Vịng đời có thể được rút ngắn do tiến bộ công nghệ.
Một cách rõ ràng, tất cả các sản phẩm phần mềm đều phải trải qua ít nhất các giai đoạn
sau:
● Yêu cầu— xác định nhu cầu của khách hàng và các ràng buộc của sản phẩm
● Thiết kế — xác định cấu trúc tổ chức của hệ thống phần mềm
● Mã hóa — viết phần mềm
● Kiểm thử — vận hành hệ thống để tìm và loại bỏ các khiếm khuyết
● Bảo trì — sửa chữa và nâng cao sản phẩm sau khi khách hàng khai thác
Quá trình là một tập hợp các hoạt động, với các đầu vào và đầu ra được xác định rõ ràng,
để hồn thành một số nhiệm vụ.
1.6 Quy trình phát triển của một phần mềm
Gồm 4 hoạt động cơ bản
6



1.6.1 Đặc tả phần mềm
Đặc tả phần mềm là quy trình tìm hiểu và định nghĩa nhưng dịch vụ nào được khách hàng
yêu cầu và các ràng buộc trong quá trình vận hành và xây dựng hệ thống.
Quy trình này gồm 4 pha chính:
✔ Nghiên cứu tính khả thi: Nghiên cứu tính khả thi giúp xác định những yêu cầu
✔ của người sử dụng có thoả mãn những cơng nghệ hiện tại hay khơng.
✔ Phân tích và rút ra các yêu cầu: Đây là quy trình đưa ra các yêu cầu của hệ thống thông
qua nhiều phương pháp
✔ Đặc tả u cầu: Thu thập thơng tin và phân tích ra.
✔ Đánh giá yêu cầu: Pha này sẽ kiểm tra lại tính đúng đắn.
1.6.2 Thiết kế phần mềm và cài đặt
Là quá trình thiết kế cấu trúc phần mềm dựa trên những tài liệu đặc tả.
Hoạt động của thiết kế gồm:
✔ Thiết kế kiến trúc: Thiết kế các hệ thống con cấu thành lên hệ thống cần xây dựng và
mối quan hệ giữa chúng.
✔ Đặc tả trừu tượng: với mối hệ thống con, phải có một bản đặc tả về các dịch vụ của nó
và những ràng buộc khi nó vận hành.
✔ Thiết kế giao diện: với mỗi hệ thống con, các giao diện của nó với những hệ thống con
khác phải được thiết kế và tư liệu hóa
✔ Thiết kế thành phần: Các dịch vụ cung cấp cho các thành phần khác với giao diện
tương tác với chúng phải được thiết kế.
✔ Thiết kế cấu trúc dữ liệu: Cấu trúc dữ liệu được sử dụng để cài đặt hệ thống phải được
thiết kế với một cách chi tiết và cụ thể.
✔ Thiết kế thuật toán: Các thuật toán được sử dụng để cung cấp dịch vụ phải được thiết
kế chi tiết và chính xác.
Cài đặt: Là quy trình chuyển đổi từ tài liệu đặc tả hệ thống thành một hệ thống thực, có
thể vận hành được và phải loại bỏ các lỗi của chương trình.
1.6.3 Đánh giá phần mềm
Đánh giá phần mềm hay còn gọi là thẩm tra và đánh giá được sử dụng để chỉ ra rằng hệ
thống đã được thực hiện theo đúng đặc tả và thỏa mãn mọi yêu cầu của khách hàng.

Quá trình này gồm các pha sau:
✔ Kiểm thử thành phần: Các thành phần được kiểm thử một cách độc lập, thành phần có
thể là một chức năng hoặc một đối tượng của một nhóm các thực thể gắn kết với nhau.
✔ Kiểm thử hệ thống: Kiểm thử toàn bộ hệ thống
7


✔ Kiểm thử chấp thuận: Kiểm thử trên dữ liệu của khách hàng để kiểm tra hệ thống có
đáp ứng các yêu cầu của khách hàng hay không.
1.6.4 Cải tiến phần mềm
Khi các yêu cầu hệ thống thay đổi của các yêu cầu nghiệp vụ thì phần mềm phải cải tiến
và thay đổi để hỗ trợ khách hàng. Thông thường chi phí để bảo trì và cải tiến thường đắt
hơn nhiều so với chi phí xây dựng phần mềm.
1.7 Mơ hình xoắn ốc
Mơ hình này được Boehm đưa ra nên đơi lúc cịn được gọi là mơ hình Boehm’s. Nó có
thể xem là sự kết hợp giữa mơ hình thác nước và mơ hình mẫu và đồng thời thêm một
thành phần mới, phân tích rủi ro. Trong mơ hình này quy trình phát triển phần mềm được
biểu diễn như một vịng xoắn ốc.
Các pha trong quy trình phát triển xoắn ốc bao gồm:
❖ Planning: Xác định mục tiêu, tương tác và ràng buộc
❖ Risk analysis: Phân tích các lựa chọn và các chỉ định giải quyết rủi ro.
❖ Engineering: Phát triển sản phẩm
❖ Customer evaluation: Đánh giá kết quả xây dựng
Ưu điểm:
✔ Sau mỗi lần tăng vịng thì có thể chuyển giao kết quả thực hiện được cho khách hàng
nên các chức năng của hệ thống có thể nhìn thấy sớm hơn.
✔ Các vịng trước đóng vai trị là mẫu thử để giúp tìm hiểu thêm các yêu cầu ở những
vịng tiếp theo
✔ Những chức năng của hệ thống có thứ tự ưu tiên càng cao thì sẽ được kiểm thử càng
kỹ.

✔ Mơ hình xoắn ốc là một cách tiếp cận hiện thực để phát triển các phần mềm và các hệ
thống lớn
Nhược điểm:
✔ Mơ hình này chưa thật sự quen thuộc với các nhà phát triển như trong mô hình tuyến
tính
✔ Hạn chế lớn nhất của mơ hình này là khả năng thuyết phục khách hàng về giảm thiểu
tính rủi ro trong quá trình phát triển
1.8 CMM/CMMI
1.8.1 CMMI
Khái niệm: CMMI viết tắt cho Capability Maturity Model Integration là mô hình trưởng
thành năng lượng tích hợp và là khn khổ cho cải tiến quy trình phần mềm. Nó dựa trên
khái niệm về các thực hành tốt nhất về kỹ thuật phần mềm và giải thích kỷ luật mà các
cơng ty có thể dùng để cải tiến quy trình của họ.
8


CMM là kết quả của một nghiên cứu được không quân nước Mỹ tài trợ, nghiên cứu này
được coi là một phương pháp đánh giá khách quan công việc của các nhà thầu phụ về
phần mềm. Bộ quốc phòng Mỹ cũng quan tâm đến việc chi phí phát triển phần mềm đang
leo thang và các vấn đề liên quan đến chất lượng của các phần mềm nên đã thành lập viện
SEI vào những năm 80 và bắt đầu nghiên cứu các mơ hình của CMM. CMM được sử
dụng như một công cụ đánh giá khả năng của các nhà thầu chính phủ khi họ tiến hành một
dự án phần mềm theo hợp đồng.
CMMI ra đời khơng phải hồn tồn mới. CMMI là sự kết hợp và phù hợp với nhiều biến
thể của CMM đã phát triển cùng với những yêu cầu của ngành công nghiệp. CMMI mang
lại sự khôn ngoan của nhiều doanh nghiệp khác nhau.
CMMI bắt nguồn từ đâu?
CMMI là phiên bản kế tiếp của CMM. Cả CMM và CMMI đều được Viện kỹ nghệ phần
mềm Mĩ SEI tại trường Đại học Carnegie Mellon ở Pittsburgh PA phát triển.
CMMI dùng để làm gì?

CMMI dùng để hỗ trợ việc cải tiến quy trình xây dựng hệ thống, xây dựng phần mềm và
phát triển quy trình sản phẩm tích hợp.
Lợi ích của CMMI: Được gọn gói bằng 4 từ Attract, Develop, Motivated và Organize.
Các level của CMM/CMMI gồm 5 level và 18 KPAs: Mỗi level đều tuân theo một chuẩn
mực nhất định
Level 1: Là bước khởi đầu của CMMI, mọi doanh nghiệp, cơng ty phần mềm, các nhân
đều có thể đạt được mức độ này. Sự thành công của doanh nghiệp ở mức độ 1 phụ thuộc
vào năng lực vận hành của ban lãnh đạo và nhân viên chứ không phụ thuộc vào việc sử
dụng quy trình.
Đặc điểm của mức 1:
✔ Hành chính: Các hoạt động của lực lượng lao động được quan tâm hàng đầu nhưng
được thực hiện một cách vội vã và hấp tấp
✔ Không thống nhất: Đào tạo quản lý nhân lực nhỏ lẻ chủ yếu dựa vào kinh nghiệm của
cá nhân.
✔ Quy trách nhiệm: Người quản lý mong bộ phận nhân sự điều hành và kiểm soát các
hành động của lực lượng lao động
✔ Quan liêu: Các hoạt động của lực lượng lao động được áp dụng ngay mà khơng cần
phân tích ảnh hưởng.
✔ Doanh số thường xuyên thay đổi: Nhân viên không trung thành với tổ chức
Level 2: Có 6 KPAs, để đạt mức độ này doanh nghiệp phải đạt các chuẩn mực chung và
cụ thể là các vùng quy trình được yêu cầu tại mức độ này. Các dự án phải được đảm bảo
tất cả yêu cầu, lên kế hoạch từ trước, được thực hiện, đo lường và kiểm soát một cách chặt
chẽ
9


● Lấy yêu cầu khách hàng, quản lý các yêu cầu đó (Requirement Management)
● Lập kế hoạch cho dự án (Software Project Planning)
● Theo dõi kiểm tra tiến độ dự án (Software Project Tracking)
● Quản trị hợp đồng phụ phần mềm (Software Subcontract Management)

● Đảm bảo chất lượng sản phẩm (Software Quality Assurance)
● Quản trị cấu hình sản phẩm đúng yêu cầu khách hàng (Software Configuration
Management).
Những đặc điểm cơ bản:
✔ Mục tiêu: Các hoạt động và những vấn đề của một dự án phần mềm phải được lên kế
hoạch và viết tài liệu đầy đủ.
✔ Đề xuất/xem xét: Dự án phải tuân thủ theo các quy tắc của tổ chức khi hoạch định
✔ Khả năng: Việc lập kế hoạch cho dự án phần mềm phải là bước thực hiện từ rất sớm
khi dự án được bắt đầu
✔ Đo lường: Sự đo lường luôn được thực thi và sử dụng chúng ta ln có thể xác định và
kiểm sốt được tình trạng các hoạt động tiến trình thực hiện dự án
✔ Kiểm chứng: Các hoạt động lập kế hoạch dự án phải được Reviewed của cấp Senior
Manager
Level 3: 7 KPAs chú trọng tới các yếu tố như quy trình phải thật sự đặc trưng, dễ hiểu và
được mô tả rõ ràng trong các tiêu chuẩn, thủ tục, công cụ và phương pháp làm việc của
doanh nghiệp.
● Tập trung tiến trình tổ chức (Organization Process Focus)
● Phân định tiến trình tổ chức (Organization Process Definition)
● Chương trình đào tạo (Training Program)
● Quản trị phần mềm tích hợp (Integrated Software Management)
● Sản xuất sản phẩm phần mềm (Software Product Engineering)
● Phối hợp nhóm (Intergroup Coordination)
● Xét duyệt ngang hàng (Peer Reviews)
Từ level 2 lên level 3 các KAPS cần thực hiện
+ Văn hóa cả thể
+ Công việc dựa vào kỹ năng
+ Phát triển sự nghiệp
+ Hoạch định nhân sự
+ Phân tích kiến thức và kĩ năng
10



Level 4: Gồm 2 KPAs là quá trình định lượng và Quản lý chất lượng phần mềm
Gồm:
● Quản lý quá trình định lượng (Quantitative Management)
● Quản lý chất lượng phần mềm (Software Quality Management)
Các KPAS chú trọng tới:
+ Chuẩn hóa thành tích trong tổ chức
+ Quản lý năng lực tổ chức
+ Cơng việc dựa vào cách làm việc theo nhóm
+ Xây dựng đội ngũ chuyên nghiệp
+ Cố vấn
Level 5: Gồm 3 KPAs
● Phòng ngừa lỗi (Defect Prevention)
● Quản trị thay đổi công nghệ (Technology Change Management)
● Quản trị thay đổi quá trình (Process Chang Management)
Để đạt level 5 thì doanh nghiệp liên tục cải tiến hoạt động tổ chức, tìm kiếm các phương
pháp đổi mới để nâng năng lực làm việc của lực lượng lao động trong tổ chức, hỗ trợ cá
nhân phát triển. Việc tối ưu hoá các quy trình nhanh gọn, sáng tạo phù hợp vào đội ngũ
nhân viên có thẩm quyền và phải phù hợp với giá trị, mục tiêu.
Ai có thể sử dụng CMMI?
Tất cả mọi người đều có thể sử dụng tất cả các điểm mạnh của CMMI đều phù hợp với tất
cả các tổ chức. Với bất cứ phương pháp nào thì CMMI thường thất bại khơng chỉ do
những thiếu sót trong các khái niệm mà còn cho việc tiến hành của các tổ chức khác.

11


Chương 2 Lập kế hoạch dự án
2.1 Chọn mơ hình làm việc, ngôn ngữ và công cụ thực hiện của dự án

Mơ hình:
-Theo kế hoạch sau khi nhận được u cầu của khách hàng về thiết kế phần mềm quản lý
bán hàng sẽ xác định mơ hình làm cùng với các thành viên là sẽ làm theo mơ hình xoắn
ốc
Mơ hình xoắn ốc: Là mơ hình có sự kết hợp giữa mơ hình thác nước và mơ hình tiếp cận
lặp và có nhiều điểm giống nhau với mơ hình gia tăng
-Mơ hình này chú trọng vào phân tích rủi ro của dự án. mỗi giai đoạn trong mơ hình được
bắt đầu với yêu cầu, mục tiêu thiết kế và kết thúc với việc khách hàng kiểm tra thiết kế
từng giai đoạn
Ngôn ngữ:
- Phần mềm này sử dụng ngôn ngữ C# làm ngơn ngữ lập trình
Cơng cụ:
- Phần mềm được thiết kế bằng các ứng dụng:
+ Visual studio (windows form app(.NET framework))
+ SQL server
+ StarUML
2.2 Bảng phân công nhiệm vụ
Công việc

Người phục trách

Thời Gian

1. Tổng quan về công nghệ Hứa Văn Dương
phần mềm

15/09/2022 -> 30/10/2022

2. Lập kế hoạch dự án


20/09/2022 -> 01/10/2022

Tất cả thành viên

3. Tài liệu đặc tả phần mềm Nguyễn Công Tuấn Anh, 01/10/2022 -> 10/10/2022
Hứa Văn Dương
4. Phân tích thiết kế hệ Nguyễn Cơng Tuấn Anh, 10/10/2022 -> 20/10/2022
thống
Dương Ngơ Hưởng
5. Cài đặt chương trình

Hồng Ngọc Lan

12

20/10/2022 -> 30/10/22


6. Hướng dẫn Demo bằng Dương Ngô Hưởng, Lý 30/10/2022 -> 2/11/2022
hình ảnh
Việt Hồng
7. Lập kế hoạch bảo trì và Tất cả thành viên
nâng cấp

5/11/2022 -> 30/11/2022

8. Xem và đóng góp ý kiến Tất cả thành viên
về tài liệu, chương trình

30/10/2022 -> 3/11/2022


2.3 Buổi thảo luận 1
2.3.1 Buổi 1: Lấy yêu cầu chức năng của Khách hàng (Người đặt phần mềm)
Khách hàng đưa ra các chức năng của phần mềm:
+ Yêu cầu 1: Quản lý Khách hàng: Có thể Thêm, Sửa, Xóa thơng tin khách
hàng
+ u cầu 2: Quản lý về thống kê: Thống kê Doanh Thu, Thống kê khách hàng
+ u cầu 3: Quản lý Hố đơn: Có thể Thêm, Sửa, Xóa, Tìm Kiếm hố đơn
+ u cầu 4: Có Chức năng Quản lý Nhà Cung Cấp: Thêm, Sửa, Xóa, Tìm kiếm nhà cung
cấp.
+ u cầu 5: Có Chức năng Quản lý Nhân viên: có thể Thêm, Sửa, Xóa, Tìm kiếm nhân
Viên
+ u cầu 6: Có chức năng Đăng Nhập
+ Yêu cầu 7: Giao diện dễ nhìn, Sử dụng mượt
2.3.2 Dựa trên yêu cầu của khách hàng đưa ra ý tưởng cho đặc tả và lên kế hoạch
làm phần mềm gồm:
+ Tạo CSDL trong SQL SERVER giả dụ khách hàng, mặt hàng và các yếu tố khác để
bước đầu có ý tưởng làm demo rồi dần hồn thiện
+ Tạo từng giao diện bước đầu đăng nhập vào hệ thống
+ Chỉnh sửa, thêm vào các yếu tố phụ như là Background cho phù hợp với phần mềm
2.3.3 Đưa ra mức dự trù kinh phí sẽ phải thanh tốn của Khách hàng đến khách
hàng
2.3.4 Bắt đầu đi vào lập trình bước đầu
2.4 Buổi thảo luận 2
2.4.1 Tất cả thành viên đưa ra những ý kiến bản thân nhận thấy còn thiếu sót của
phần mềm để cùng nhau thống nhất lại và khắc phục ví dụ như:
13


- Phần mềm thiếu sự liên kết giữa các giao diện, đưa ra thông tin rời rạc, không đủ ý

- Trong CSDL bảng khách hàng bị thiếu địa chỉ, số điện thoại của khách hàng
- Trong CSDL bảng hóa đơn cịn thiếu ngày bán hàng
2.4.2 khách hàng có ý kiến muốn thêm chức năng
- Thêm chức năng thống kê số lượng hàng cịn trong cửa hàng
- Trong hóa đơn bán phải có thêm tổng tiền hàng khách hàng đã mua
2.4.3 tính tốn thêm chi phí phát sinh của việc bổ sung chức năng và thông báo đến
khách hàng
2.5 Buổi thảo luận 3
2.5.1 Đưa ra phần mềm Demo cho khách hàng
- Tiếp nhận ý kiến từ khách hàng để hoàn thiện dần sản phẩm
- Chỉnh sửa trau chuốt hơn về phần giao diện hiển thị tránh rối mắt khi khách hàng sử
dụng
- Xóa bỏ những dịng lệnh thừa, những dịng code thừa khơng cần thiết trong q trình
viết code mắc phải
- Thêm những chức năng cần thiết và xóa bớt các chức năng khơng cần thiết đã tạo ra
trong q trình dần hoàn thiện
2.5.2 Đưa ra những phương án tối ưu có thể sử dụng trong tương lai mà khách hàng
có thể sử dụng đến
- Nếu khách hàng đồng ý thì tiếp tục thêm chức năng vào phần mềm và đưa ra có số kinh
phí sẽ phát sinh
- Nếu khách hàng khơng đồng ý thì kết thúc dự án, hồn thiện và đưa ra thành phẩm đến
khách hàng.

14


Chương 3 Đặc tả phần mềm
3.1 Giới thiệu
Mục đích và đối tượng
Thay đổi cách thức quản lý bán hàng, làm cho việc quản lý bán hàng trở nên hiệu quả

hơn, quản lý việc thống kê hàng hóa, quản lý nhân viên, quản lý khách hàng một cách
thuận tiện, kiểm soát tình hình sản phẩm thuận tiện hơn
3.2 Mơ tả chung
USE CASE Nhân viên: Được phép thực hiện một số chức năng trong hệ thống sau:

15


USE CASE ADMIN: Đặc phép thực tất cả các chức năng trong hệ thống:

3.3 Danh mục các chức năng của hệ thống
Chức năng đăng ký
Chức năng đăng nhập
Chức năng quên mật khẩu
Chức năng quản lý chất liệu gồm: Thêm, sửa, xóa, tìm kiếm
Chức năng quản lý sản phẩm gồm: Thêm, sửa, xóa, tìm kiếm
Chức năng quản lý khách hàng gồm: Thêm, sửa, xóa, tìm kiếm
Chức năng thống kê gồm: Doanh thu
Chức năng quản lý hố đơn gồm: Thêm, sửa, xóa, tìm kiếm
Chức năng quản lý nhân viên gồm: Thêm, sửa, xóa, tìm kiếm
Chức năng quản lý nhà cung cấp gồm: Thêm, sửa, xóa, tìm kiếm
3.4 Đặc tả phần mềm
3.4.1 Chức năng đăng ký
*Giới thiệu
Chức năng này giúp người dùng có thể đăng ký tài khoản để truy cập sử dụng ứng dụng
*Dữ liệu vào
- Tên đăng nhập
- Mật khẩu
- Nhập lại mật khẩu
- Nhập email

16


*Xử lý
Hệ thống kiểm tra thông tin người dùng điền vào form:
- TH1: Người dùng huỷ tạo tài khoản
- TH2: Người dùng chưa nhập hết thông tin
- TH3: Người dùng nhập mật khẩu và nhập lại mật khẩu không trùng khớp
- TH4: Người dùng đúng thông tin
- TH5: Người dùng nhập đúng thông tin nhưng tên tài khoản đã được sử dụng
- TH6: Mật khẩu quá đơn giản
*Kết quả
- TH1: Hệ thống quay về giao diện trang chủ
- TH2: Thông báo “Bạn chưa nhập hết thông tin” hệ thống yêu cầu nhập lại
- TH3: Thông báo “đăng ký không thành công” hệ thống yêu cầu nhập lại
- TH4: Thông báo “Đăng ký thành công” hệ thống cập nhật lại CSDL và hiển thị lại giao
diện trang chủ
-TH5: Thông báo “Tài khoản đã được đăng ký” hệ thống yêu cầu nhập lại
-TH6: Thơng báo “Mật khẩu q đơn giản vui lịng nhập lại mật khẩu gồm chữ in hoa,
chữ thường và kí tự đặc biệt” hệ thống yêu cầu nhập lại
3.4.2 Chức năng đăng nhập
*Giới thiệu
Chức năng này giúp người dùng có thể đăng nhập tài khoản đã được tạo để truy cập sử
dụng ứng dụng
*Dữ liệu vào
- Tên đăng nhập
- Mật khẩu
*Xử lý
Hệ thống kiểm tra thông tin người dùng điền vào form:
- TH1: Người dùng huỷ đăng nhập

- TH2: Người chưa nhập hết thông tin
- TH3: Người dùng nhập mật khẩu và tài khoản không đúng
- TH4: Người dùng đúng thông tin
*Kết quả
- TH1: Hệ thống quay về giao diện trang chủ
17


- TH2: Thông báo “Bạn chưa nhập hết thông tin” hệ thống yêu cầu nhập lại
- TH3: Thông báo “đăng nhập không thành công” hệ thống yêu cầu nhập lại
- TH4: Thông báo “Đăng nhập thành công” hệ thống cập nhật lại CSDL và hiển thị lại
giao diện trang chủ
3.4.3 Chức năng quên mật khẩu
*Giới thiệu
Chức năng này giúp người dùng có thể đăng nhập vào tài khoản của bản thân khi vơ tình
qn mật khẩu
*Dữ liệu vào
- Tên đăng nhập
- Email
*Xử lý
Hệ thống kiểm tra thông tin người dùng điền vào form:
- TH1: Người dùng huỷ chức năng quên mật khẩu
- TH2: Người dùng chưa nhập hết thông tin
- TH3: Người dùng nhập email và tài khoản không đúng
- TH4: Người dùng đúng thông tin
*Kết quả
- TH1: Hệ thống quay về giao diện trang chủ
- TH2: Thông báo “Bạn chưa nhập hết thông tin” hệ thống yêu cầu nhập lại
- TH3: Thông báo “lấy lại tài khoản không thành công” hệ thống yêu cầu nhập lại
- TH4: Thông báo “Lấy lại tài khoản thành công” hệ thống cập nhật lại CSDL và hiển thị

lại giao diện trang chủ đăng nhập
3.4.4 Chức năng Thêm sản phẩm
*Giới thiệu
Chức năng này nhằm cho người dùng tìm thêm sản phẩm mà mình mong muốn dễ dàng
hơn
*Dữ liệu vào
Hệ thống hiển thị form Thêm hàng gồm:
- Mã hàng
- Mã nhân viên
- Tên hàng
- Số lượng
18



×