Tải bản đầy đủ (.pdf) (25 trang)

Báo cáo thực tập hệ thống quản lý tài sản

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 (1.61 MB, 25 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP

HỆ THỐNG QUẢN LÝ TÀI SẢN

Công ty thực tập : NashTech Part of Harvey Nash Group
Người phụ trách : Nguyễn Xuân Tú
Thực tập sinh

: Đỗ Ngọc Thành - 18520358

TP. Hồ Chí Minh, tháng 5 năm 2022


Đỗ Ngọc Thành

Báo cáo thực tập

LỜI MỞ ĐẦU

Ngày nay, ngành công nghiệp phát triển ứng dụng và công nghệ web là một phần
không thể thiếu của ngành công nghiệp phần mềm. với tốc độ phát triển vô cùng mạnh
mẽ, phát triển web đã và đang là nhân tố kích thích sự phát triển của công nghệ thông
tin thế giới, cả về vần cứng và phần mềm.
Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ.
Ngành công nghiệp phát triển web non trẻ Việt Nam đã và đang phát triển mạnh mẽ,
để hòa nhập với những công ty hàng đầu về xây dựng web trên thế giới. Bên cạnh sự
phát triển của web thì những ngành nghề được tiếp cận người dùng một cách nhanh


chóng như những gì ta có thể thấy là các trang web mạng xã hội, hay những web bán
hàng trực tuyến cũng đang rất thịnh hành trên cả thế giới lẫn Việt Nam.
Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế,
cũng như muốn được tham gia làm web trong một môi trường chuyên nghiệp, em có
dự định là sẽ thực tập sau hè. Vì vậy, em quyết định chọn Công ty TNHH NashTech –
một môi trường lý tưởng, hiện đại, chuyên nghiệp – là nơi sẽ giúp em thực hiện được
dự định này.


Đỗ Ngọc Thành

Báo cáo thực tập

LỜI CẢM ƠN

Trân trọng gửi lời cảm ơn Công Ty TNHH NashTech đã tạo điều kiện cho em có
cơ hội được thực tập tại một mơi trường chun nghiệp tại cơng ty.
Trong vịng ba tháng, em đã hoàn thành được một trang web thương mại điện tử
gồm các chức năng đáp ứng nhu cầu của người dùng hiện nay, tham gia mơ hình
scrum để phát triển một trang web quản lý tài sản cho người dùng. Các kiến thức cơ
bản về code, git và các kiến trúc phần mềm .NET, cùng với đó là các khóa học kỹ
năng mềm vơ cùng hữu ích của cơng ty. Hiểu được vị trí của một full stack developer
trong thời kỳ công nghệ hiện đại. Chân thành cảm ơn lịng nhiệt tình giúp đỡ của các
anh chị Leader, Mentor và trưởng HR đã dìu dắt hỗ trợ, hướng dẫn từ những ngày đầu
em vào cơng ty.
Vì kiến thức cịn hạn chế cũng như là lần đầu tiên được tiếp xúc với các kiến thức
thực tế, áp dụng lý thuyết vào cơng việc nên bản thân cịn bỡ ngỡ và lúng túng, khơng
tránh khỏi những thiếu sót, mong q Thầy (Cơ) có thể đóng góp ý kiến để em có thể
hồn thiện hơn.
Cuối cùng em xin cảm ơn thầy cơ trong khoa Công Nghệ Phần Mềm đã hỗ trợ, tạo

điều kiện cho em có thể hồn thành bài báo cáo này.

Đỗ Ngọc Thành
TP. Hồ Chí Minh, ngày 28 tháng 5 năm 2022


Đỗ Ngọc Thành

Báo cáo thực tập

NHẬN XÉT CỦA KHOA
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………

……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………


Đỗ Ngọc Thành

Báo cáo thực tập

MỤC LỤC
Chương 1 : Giới thiệu công ty thực tập .......................................................................1
Chương 2: Nội dung thực tập ....................................................................................... 2
1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty ....................................... 2
2. Nghiên cứu kỹ thuật ..............................................................................................2
2.1. Tìm hiểu Git ................................................................................................ 2
2.2. Tìm hiểu .NET ............................................................................................ 4
2.3. Tìm hiểu RESTful API ............................................................................... 6
2.4. Tìm hiểu về ReactJS ................................................................................... 7
2.5. Tìm hiểu về Agile - Scrum ..........................................................................9

3. Lịch làm việc .......................................................................................................14
Chương 3: Dự án Website quản lý tài sản ................................................................ 16
1. Bối cảnh ra đời của web ......................................................................................16
2. Các chức năng ..................................................................................................... 16
3. Kế hoạch ..............................................................................................................18
Chương 4: Kết quả đạt được ...................................................................................... 19
1. Kết quả thu được ................................................................................................. 19
2. Điểm yếu của bản thân ........................................................................................19
TÀI LIỆU THAM KHẢO ...........................................................................................20


Đỗ Ngọc Thành

Báo cáo thực tập

Chương 1 : Giới thiệu cơng ty thực tập

NashTech là cơng ty thuộc tập đồn Harvey Nash, có trụ sở chính tại Anh.
NashTech là một trong những công ty công nghệ hàng đầu tại Việt Nam với bề dày
kinh nghiệm trong việc tư vấn, cung ứng giải pháp cơng nghệ có quy mơ tồn cầu cho
nhiều khách hàng là những tập đoàn lớn như Ford, Google, Nestle, Honda,
Prudential,…
Với lịch sử hơn 21 năm phát triển tại Việt Nam cùng đội ngũ nhân lực hơn 1.600
kỹ sư tài năng ở TP. Hồ Chí Minh, Hà Nội, Đà Nẵng, NashTech là một trong những
doanh nghiệp góp phần thúc đẩy vị thế của Việt Nam trên bản đồ công nghệ thế giới.

1


Đỗ Ngọc Thành


Báo cáo thực tập

Chương 2: Nội dung thực tập
Đợt thực tập vừa rồi với chủ đề “Hệ thống quản lý tài sản” nhằm mục đích giúp
sinh viên thực tập được đào tạo tồn diện về lập trình web, đồng thời rèn luyện những
kỹ năng mềm như làm việc nhóm, thuyết trình, giao tiếp. Tại cơng ty, sinh viên có cơ
hội được học tập, khám phá và làm việc trong mơi trường phát triển phần mềm chun
nghiệp.

1. Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
Thời gian: 01 ngày
Nội dung: Giới thiệu về công ty, cách tổ chức của công ty
Được nghe người phụ trách giới thiệu về cơng ty, q trình thành lập và
phát triển, quy trình làm việc và cách thức tổ chức của cơng ty.
Ngồi ra, thực tập sinh cịn được giới thiệu cách thức làm việc trong
công ty như thời gian đi làm, các quy định cần phải tuân thủ…
Kết quả: Hiểu thêm về cơng ty NashTech, q trình thành lập và phát triển. Có
thêm các kỹ năng trong cơng việc, làm việc có kế hoạch, có kỷ luật, có trách
nhiệm hơn.

2. Nghiên cứu kỹ thuật
2.1. Tìm hiểu Git

Hình 2.1: Mơ hình cơng cụ Git.
Git là tên gọi của một Hệ thống quản lý phiên bản phân tán (Distributed
Version Control System – DVCS) là một trong những hệ thống quản lý phiên
bản phân tán phổ biến nhất hiện nay. DVCS nghĩa là hệ thống giúp mỗi máy
tính có thể lưu trữ nhiều phiên bản khác nhau của một mã nguồn được nhân


2


Đỗ Ngọc Thành

Báo cáo thực tập

bản (clone) từ một kho chứa mã nguồn (repository), mỗi thay đổi vào mã
nguồn trên máy tính sẽ có thể ủy thác (commit) rồi đưa lên máy chủ nơi đặt
kho chứa chính. Và một máy tính khác (nếu họ có quyền truy cập) cũng có thể
clone lại mã nguồn từ kho chứa hoặc clone lại một tập hợp các thay đổi mới
nhất trên máy tính kia. Trong Git, thư mục làm việc trên máy tính gọi là
Working Tree.

Hình 2.2: Sơ đồ liên hệ giữa các máy tính.
Ngồi ra, có một cách hiểu khác về Git đơn giản hơn đó là nó sẽ giúp bạn
lưu lại các phiên bản của những lần thay đổi vào mã nguồn và có thể dễ dàng
khơi phục lại dễ dàng mà không cần copy lại mã nguồn rồi cất vào đâu đó. Và
một người khác có thể xem các thay đổi của bạn ở từng phiên bản, họ cũng có
thể đối chiếu các thay đổi của bạn rồi gộp phiên bản của bạn vào phiên bản của
họ. Cuối cùng là tất cả có thể đưa các thay đổi vào mã nguồn của mình lên một
kho chứa mã nguồn.
Cơ chế lưu trữ phiên bản của Git là nó sẽ tạo ra một “ảnh chụp” (snapshot)
trên mỗi tập tin và thư mục sau khi commit, từ đó nó có thể cho phép bạn tái sử
dụng lại một ảnh chụp nào đó mà bạn có thể hiểu đó là một phiên bản. Đây
cũng chính là lợi thế của Git so với các DVCS khác khi nó khơng “lưu cứng”
dữ liệu mà sẽ lưu với dạng snapshot.

3



Đỗ Ngọc Thành

Báo cáo thực tập

Hình 2.3: Sơ đồ cơ cấu của Git.

2.2. Tìm hiểu .NET

.NET Framework là một khn khổ phần mềm chạy chủ yếu trên Microsoft
Windows được phát triển bởi Microsoft. Nó có khả năng tương tác ngơn ngữ
qua nhiều ngơn ngữ lập trình và bao gồm một thư viện lớp lớn có tên là
Framework Class Library – viết tắt là FCL. .NET Framework thực thi các
chương trình trong mơi trường phần mềm có tên là Common Language
Runtime – viết tắt là CLR. Đây là một máy ảo ứng dụng cung cấp các dịch vụ
như: quản lý bộ nhớ, bảo mật và xử lý các ngoại lệ. Như vậy, .NET Framework
được tạo ra từ 2 môi trường FCL và CLR.
FCL cung cấp giao diện cho người dùng, kết nối cơ sở dữ liệu, truy cập dữ
liệu, mật mã, truyền thơng tin mạng, các thuật tốn số và phát triển ứng dụng
web và thiết kế web. Các lập trình viên tạo ra các phần mềm bằng các kết hợp

4


Đỗ Ngọc Thành

Báo cáo thực tập

các thư viện và mã nguồn .NET. Ngoài ra, Microsoft cũng đã tạo ra một mơi
trường phát triển tích hợp của .NET đó chính là Visual Studio.

.NET Framework được tạo ra nhằm hoàn thành các mục tiêu sau:
• Nhằm cung cấp cho người dùng một ngơn ngữ lập trình hướng đối
tượng, tương thích hầu hết với các mã lưu trữ và thực hiện của đối tượng.
• Nhằm giảm thiểu việc triển khai phần mềm và xung đột, thúc đẩy việc
thực hiện mã an toàn, cũng như loại bỏ các vấn đề về hiệu suất của các môi
trường kịch bản hoặc diễn giải bằng cách cung cấp mơi trường thực thi mã.
• Nhằm làm cho trải nghiệm của nhà phát triển nhất quán trên nhiều ứng
dụng như: các ứng dụng dựa trên web, các ứng dụng dựa trên Windows.
• .NET Framework có khả năng tích hợp với bất kỳ mã khác nên có thể
xây dựng được tất cả thông tin liên lạc về các tiêu chuẩn ngành công
nghiệp.
.NET Framework bao gồm: thư viện lớp và thời gian chạy ngôn ngữ phổ
biến. Thời gian chạy phổ biến chính là nền tảng của .NET Framework, nó cung
cấp các dịch vụ cốt lõi như: quản lý luồng và remoting, quản lý bộ nhớ, thúc
đẩy tính mạnh mẽ và tính bảo mật. Nguyên tắc cơ bản của thời gian chạy đó
chính là khái niệm về quản lý mã. Mã quản lý nhắm vào mục tiêu thời gian
chạy, mã không quản lý không nhắm vào mục tiêu thời gian chạy.
.NET Framework bắt đầu thời gian chạy bằng mã được quản lý và có khả
năng lưu trữ bằng những mã khơng được quản lý nhằm tạo ra một một trường
phần mềm có cả 2 tính năng được quản lý và khơng được quản lý. .NET
Framework ngoài chức năng cung cấp thời gian chạy cho máy chủ còn hỗ trợ
phát triển thời gian chạy.
Thư viện lớp NET Framework là tập hợp tất cả các loại tái sử dụng được tích
hợp một cách chặt chẽ với thời gian chạy thơng dụng. Đây chính là cơng cụ
hướng đối tượng cung cấp các loại tính năng mà từ đó mã được quản lý được
thực hiện. Điều này không chỉ làm cho .NET Framework dễ dàng sử dụng mà
cịn làm giảm thời gian kết hợp các tính năng.
Từ một thư viện hướng đối tượng của .NET Framework cho phép bạn hoàn
thành các tác vụ như: Thu thập dữ liệu, quản lý chuỗi, kết hợp cơ sở dữ liệu và
truy cập tệp.

Web app là một mảng được .NET thực hiện rất nhiều. Đây là mảng mà các
ngôn ngữ khác khó có thể làm được hồn hảo và bảo mật bằng .NET.

5


Đỗ Ngọc Thành

Báo cáo thực tập

2.3. Tìm hiểu RESTful API
API (Application Programming Interface) là một tập các quy tắc và cơ chế
mà theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng
hay thành phần khác. API có thể trả về dữ liệu mà bạn cần cho ứng dụng của
mình ở những kiểu dữ liệu phổ biến như JSON hay XML.
REST (REpresentational State Transfer) là một dạng chuyển đổi cấu trúc
dữ liệu, một kiểu kiến trúc để viết API. Nó sử dụng phương thức HTTP đơn
giản để tạo cho giao tiếp giữa các máy. Vì vậy, thay vì sử dụng một URL cho
việc xử lý một số thông tin người dùng, REST gửi một yêu cầu HTTP như GET,
POST, DELETE, vv đến một URL để xử lý dữ liệu.
RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các
ứng dụng web để quản lý các resource. RESTful là một trong những kiểu thiết
kế API được sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…)
khác nhau giao tiếp với nhau. REST hoạt động chủ yếu dựa vào giao thức
HTTP. Các hoạt động cơ bản nêu trên sẽ sử dụng những phương thức HTTP
riêng.
● GET (SELECT): Trả về một Resource hoặc một danh sách Resource.
● POST (CREATE): Tạo mới một Resource.
● PUT (UPDATE): Cập nhật thông tin cho Resource.
● DELETE (DELETE): Xóa một Resource.

Những phương thức hay hoạt động này thường được gọi là CRUD tương
ứng với Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa.

6


Đỗ Ngọc Thành

Báo cáo thực tập

2.4. Tìm hiểu về ReactJS

React.js là một thư viện Javascript đang nổi lên trong những năm gần đây
với xu hướng Single Page Application. Trong khi những framework khác cố
gắng hướng đến một mơ hình MVC hồn thiện thì React nổi bật với sự đơn
giản và dễ dàng phối hợp với những thư viện JavaScript khác. Nếu như
AngularJS là một Framework cho phép nhúng code JavaScript trong code html
thơng qua các attribute như ng-model, ng-repeat...thì với React là một library
cho phép nhúng code html trong code javascript nhờ vào JSX, bạn có thể dễ
dàng lồng các đoạn HTML vào trong JS.Tích hợp giữa javascript và HTML
vào trong JSX làm cho các component dễ hiểu hơn.

Hình 2.4: Vịng đời ReactJS
Một vịng đời sẽ có trạng thái như sau:
● Initialization
Tương tự hàm khởi tạo (constructor) được gọi đến khi một thể hiện của
component được tạo ra.

7



Đỗ Ngọc Thành

Báo cáo thực tập

● Mounting
Là các hàm gắn kết, kết nối các component với nhau.
componentWillMount()
▪ Được gọi đến trước khi hiển thị component ra ngồi trình duyệt. Q trình
này diễn ra hết sức nhanh chóng, vì vậy khơng nên làm quá nhiều điều tại
đây và hàm này được thực hiện một lần duy nhất (từ phiên bản 16.3 thì
hàm này khơng được khuyến khích dùng và sẽ bị loại bỏ ở bản 17).
Render()
▪ Được gọi khi hiển thị component ra ngồi trình duyệt.
▪ Sẽ return về nội dung mà bạn đã viết, có thể là một component hoặc null
hoặc là false (trong trường hợp khơng muốn render gì cả).
componentDidMount()
▪ Được gọi sau khi đã hiển thị component ra ngồi trình duyệt, và hàm này
được thực hiện một lần duy nhất.
▪ Hàm này được gọi để thông báo component đã tồn tại trên DOM, từ đó
các thao tác trên DOM có thể thực hiện bình thường với component này.
Đầu tiên khi component được gọi thì hàm hàm constructor() được gọi, sau
đó đến componentWillMount(), tiếp theo là render() ra ngồi và cuối cùng hàm
componentDidMount được gọi khi đã render() xong.
● Updation
Là các vấn đề khi mình update component về props, state.
componentWillReceiveProps(nextProps)
▪ Hàm này được chạy khi mà props của component đã được sinh ra có sự
thay đổi.
▪ Phải gọi setState() nếu muốn render lại.

shouldComponentUpdate(nextProps, nextState)
▪ Được thực hiện ngay sau khi state và props thay đổi.
▪ Sẽ trả về kết quả true or false. Phương thức này sẽ xác định 1 component
có được update hay khơng. Mặc định giá trị này là true. Nếu bạn không
muốn component render lại sau khi update state hay props thì return giá trị
thành false.

8


Đỗ Ngọc Thành

Báo cáo thực tập

componentWillUpdate(nextProps, nextState)
▪ Được gọi khi chúng ta update state của component trước khi nó render lại.
▪ Bạn không thể gọi this.setState trong componentWillUpdate.
▪ Hàm render sẽ được gọi ngay sau hàm này.
▪ (từ phiên bản 16.3 thì hàm này khơng được khuyến khích dùng và sẽ bị
loại bỏ ở bản 17).
componentDidUpdate(prevProps, prevState)
▪ Được gọi khi một component instance update, componentDidUpdate sẽ
được gọi sau khi render HTML được loading xong.
● Unmounting
componentWillUnmount()
▪ Được gọi trước khi một component bị remove khỏi một DOM.

2.5. Tìm hiểu về Agile - Scrum
2.5.1. Agile
Sự khác nhau giữa phương pháp làm việc truyền thống-Waterfall và Agile

có thể tổng kết trong 2 từ: cứng nhắc và linh hoạt. Trong khi Waterfall là 1
process khá cứng nhắc và nguyên tắc, thì Agile lại rất linh hoạt và không ngừng
thay đổi sao cho phù hợp với thời đại và ý kiến của khách hàng . Chi tiết hơn về
sự khác nhau như sau:
- Waterfall là quy trình có cấu trúc, bạn khơng thể bắt đầu công đoạn mới
cho đến khi công đoạn trước đấy được hồn thành. Agile là quy trình
linh hoạt, cho phép bạn chạy dự án theo cách mà bạn muốn. Waterfall
là tuần tự, và Agile thì khơng ép buộc vào 1 quy trình tuần tự nào.
- Các dự án theo quy trình Waterfall thường cần define cụ thể yêu cầu của
dự án, trong khi các yêu cầu trong các dự án Agile có thể thay đổi và
phát triển.
- Trong các dự án Waterfall, bạn không thể thay đổi những thứ bạn đã
làm trong những công đoạn trước, tuy nhiên Agile rất phù hợp và có thể
đáp ứng được các thay đổi

9


Đỗ Ngọc Thành

Báo cáo thực tập

Hình 2.5: Mơ hình Agile và Waterfall.
Một cách tổng quát, khi một sản phẩm được xây dựng theo mơ hình
Waterfall, thì các cơng việc trong dự án được xác định theo nguyên tắc lúc ban
đầu, và không tiếp thu được ý kiến của người sử dụng trong quá trình hình
thành sản phẩm. Việc giành quá nhiều thời gian cho một sản phẩm mà không
biết được rằng mức độ khả thi cũng như những điều mà người sử dụng quan
tâm sẽ gây ảnh hưởng rất nhiều đến chất lượng sản phẩm.
Trong khi đó, Agile giúp các nhà phát triển có thể nhận dạng, điều chỉnh các

vấn đề và khiếm khuyết một cách nhanh chóng. Các điểm mạnh của Agile là:
- Thực hiện thay đổi dễ dàng: Bởi vì dự án được chia thành các phần nhỏ,
riêng biệt, không phụ thuộc lẫn nhau, nên những thay đổi được thực hiện
rất dễ dàng, ở bất kỳ giai đoạn nào của dự án.
- Không cần phải nắm mọi thông tin ngay từ đầu: Phù hợp với những dự
án chưa xác định được mục tiêu cuối cùng rõ ràng, vì việc này không quá
cần thiết trong giai đoạn đầu.
- Bàn giao nhanh hơn: Việc chia nhỏ dự án cho phép đội ngũ có thể tiến
hành kiểm tra theo từng phần, xác định và sửa chữa vấn đề nhanh hơn, nhờ
đó việc bàn giao công việc sẽ nhất quán và thành công hơn.
- Chú ý đến phản hồi của khách hàng và người dùng: Cả khách hàng và
người dùng cuối đều có cơ hội để đóng góp các ý kiến và phản hồi, từ đó
họ sẽ có ảnh hưởng một cách mạnh mẽ và tích cực tới sản phẩm cuối cùng.
- Cải tiến liên tục: Agile khuyến khích thành viên trong đội ngũ làm việc và
khách hàng cung cấp phản hồi của mình, khi đó các giai đoạn khác nhau
của sản phẩm cuối có thể được kiểm tra và cải thiện lại nhiều lần nếu cần.

10


Đỗ Ngọc Thành

Báo cáo thực tập

Trong ngành công nghiệp phần mềm, phương thức sản xuất phần mềm có
một vai trị vơ cùng quan trọng, nó quyết định cấu trúc tổ chức, quy trình phát
triển, khả năng thành cơng của các dự án. Trong những năm gần đây AgileScrum nổi lên và thay thế mơ hình thác nước (Waterfall) truyền thống như
một phương thức tổ chức sản xuất ưu việt được nhiều công ty phần mềm áp
dụng và thành công. Quản lý dự án theo nguyên tắc Agile nổi lên như một sự
thay thế tối ưu cho bất kỳ dự án nào.


Hình 2.6: Quy trình Agile.
Khái niệm Agile (viết tắt của Agile Software Development) có nghĩa là
phương thức phát triển phần mềm linh hoạt, được ứng dụng trong quy trình
phát triển phần mềm với mục tiêu là đưa sản phẩm đến tay người dùng càng
nhanh càng tốt. Nguyên tắc phát triển mơ hình là phân đoạn lặp (iterative)
và tăng trưởng (incremental), theo đó nhu cầu và giải pháp tiến hóa thơng
qua sự hợp tác giữa các nhóm tự quản và liên chức năng.
Rất nhiều nơi định nghĩa Agile như một phương pháp. Thực chất, Agile
giống như một phương pháp luận, một triết lý dựa trên hơn nguyên tắc phân
đoạn vòng lặp (iterative) và tăng trưởng (incremental).
Ngày nay, triết lí Agile đã vượt xa khỏi khu vực truyền thống của mình là
phát triển phần mềm để đóng góp sự thay đổi trong cách thức làm việc, quản lý,
sản xuất ở các ngành khác như sản xuất, dịch vụ, sales, marketing, giáo dục...
và trở thành một phương thức quản lý dự án phổ biến nhất hiện nay với nhiều
đại diện được gọi là các phương pháp “họ Agile”.

11


Đỗ Ngọc Thành

Báo cáo thực tập

● 4 tôn chỉ trong Agile
- Cá nhân và sự tương hỗ quan trọng hơn quy trình và cơng cụ: Trọng tâm
đặt lên con người, xây dựng tương tác và hỗ trợ giữa các thành viên trong
nhóm. Những thành viên có năng lực, chịu tương trợ nhau trong công việc
sẽ mang đến thành công cho dự án.
- Sản phẩm dùng được tốt hơn tài liệu đầy đủ: Tập trung thời gian để làm ra

phần mềm hoàn chỉnh đáp ứng hoàn hảo yêu cầu khách hàng.
- Cộng tác với khách hàng quan trọng hơn đàm phán hợp đồng: Hiểu được
khách hàng cần gì để tư vấn và điều chỉnh sản phẩm thay vì chỉ dựa vào
các điều khoản trong hợp đồng.
- Phản hồi thay đổi hơn là bám sát kế hoạch: Agile khuyến khích thích nghi
với sự thay đổi, đó có thể là thay đổi về công nghệ, nhân sự, deadline,...
● 12 Nguyên tắc
- Đáp ứng tồn diện nhu cầu khách hàng thơng qua việc giao hàng sớm và
sản phẩm có giá trị
- Thay đổi yêu cầu được chào đón, thậm chí là rất muộn trong quá trình phát
triển
- Giao phần mềm chạy được cho khách hàng một cách thường xuyên
- Nhà kinh doanh và các kỹ sư phần mềm cần làm việc cùng nhau trong suốt
dự án.
- Xây dựng dự án xung quanh các cá nhân có động lực. Cung cấp sự hỗ trợ
cần thiết, mơi trường làm việc và niềm tin để hồn thành công việc.
- Trao đổi trực tiếp là cách truyền đạt thơng tin hiệu quả nhất.
- Thước đo chính của tiến độ là phần mềm chạy tốt.
- Phát triển liên tục và bền vững.
- Cải tiến sự linh hoạt bằng cách quan tâm đến kỹ thuật và thiết kế.
- Nghệ thuật tối đa hóa lượng cơng việc chưa xong - Sự đơn giản là cần thiết.
- Nhóm tự tổ chức.
- Thích ứng thường xuyên với những thay đổi.
2.5.2. Scrum
Scrum định nghĩa quy tắc cho bốn sự kiện chủ chốt nhằm tạo môi trường và
quy cách hoạt động và cộng tác cho các thành viên trong dự án. Các sự kiện
này diễn ra trước khi Sprint bắt đầu (là sự kiện lập kế hoạch – Sprint Planning),
trong khi Sprint diễn ra (sự kiện Daily Scrum) và sau khi Sprint kết thúc (sự
kiện Sprint Review và Sprint Retrospective).
- Sprint Planning (Họp Kế hoạch Sprint- Iteration): Nhóm phát triển

gặp gỡ với Product Owner để lên kế hoạch làm việc cho một Sprint.

12


Đỗ Ngọc Thành

-

-

-

Báo cáo thực tập

Công việc lập kế hoạch bao gồm việc chọn lựa các yêu cầu cần phải
phát triển, phân tích và nhận biết các cơng việc phải làm kèm theo các
ước lượng thời gian cần thiết để hồn tất các tác vụ. Chia nhỏ cơng việc
thành các backlog (task) để có thể theo dõi tiến độ dự án dễ dàng hơn.
Scrum sử dụng cách thức lập kế hoạch từng phần và tăng dần theo thời
gian, theo đó, việc lập kế hoạch không diễn ra duy nhất một lần trong
vòng đời của dự án mà được lặp đi lặp lại, có sự thích nghi với các tình
hình thực tiễn trong tiến trình đi đến sản phẩm.
Daily Scrum (Họp Scrum hằng ngày): Scrum Master tổ chức cho Đội
sản xuất họp hằng ngày trong khoảng 15 phút để Nhóm Phát triển chia
sẻ tiến độ công việc cũng như chia sẻ các khó khăn gặp phải trong q
trình phát triển phần mềm suốt một Sprint.
Sprint Review (Họp Sơ kết Sprint): Cuối Sprint, nhóm phát triển cùng
với Product Owner sẽ rà sốt lại các cơng việc đã hồn tất (DONE)
trong Sprint vừa qua và đề xuất các chỉnh sửa hoặc thay đổi cần thiết

cho sản phẩm
Sprint Retrospective (Họp Cải tiến Sprint): Dưới sự trợ giúp của Scrum
Master, nhóm phát triển sẽ rà sốt lại tồn diện Sprint vừa kết thúc và
tìm cách cải tiến quy trình làm việc cũng như bản thân sản phẩm.

Hình 2.7: Quy trình Scrum.

13


Đỗ Ngọc Thành

Báo cáo thực tập

3. Lịch làm việc

14


Đỗ Ngọc Thành

Báo cáo thực tập

15


Đỗ Ngọc Thành

Báo cáo thực tập


Chương 3: Dự án Website quản lý tài sản
1. Bối cảnh ra đời của web
Trong các cơng ty hoặc các tổ chức lớn đều có các vật phẩm hoặc các thiết
bị điện tử ( điện thoại, máy tính, đồng hồ, …) với số lượng rất lớn và cần phải
đưa cho rất nhiều người.
Vì vậy cần phải có một ứng dụng để người dùng có thể yêu cầu mượn và trả
các vật phẩm đó.
Web app hiện tại cơng ty đưa ra mục đích để đáp ứng nhu cầu vay mượn và
trả các sản phẩm liên quan của tổ chức và có thể kiểm sốt các hành vi đó liên
tục và nhanh chóng khơng phải qua các bên trung gian thứ 3.
Ở NashTech với số lượng các vật phẩm như máy tính, điện thoại được cung
cấp cho nhân viên thì việc cần có một ứng dụng để quản lý các sản phẩm này là
việc hết sức cần thiết nên công ty đã đưa ra ứng dụng quản lý tài sản này cho
các sinh viên thực tập có cơ hội được thử sức mình.
2. Các chức năng
Chức năng thêm tài sản quản lý: Admin (người được giao quản lý web) sẽ
thêm các tài sản của công ty vào web một cách thủ công.

16


Đỗ Ngọc Thành

Báo cáo thực tập

Chức năng thêm người dùng: Admin sẽ có thể thêm một người dùng vào
trang để quản lý người dùng đó và có thể nhận các sản phẩm được giao với một
số điều kiện như: người dùng mới phải trên 18 tuổi, Joined day phải là ngày từ
thứ 2 đến thứ 6,,....


17


Đỗ Ngọc Thành

Báo cáo thực tập

Chức năng cho mượn tài sản: Người Admin có thể giao tài sản cho một
nhân viên khác sử dụng.

Chức năng yêu cầu hoàn trả tài sản: Người admin có thể yêu cầu người
mượn tài sản hoàn trả tài sản.

3. Kế hoạch
Dự án được hoàn thành trong vòng 4 sprint với thời gian mỗi sprint sẽ được
tiến hành trong vòng 1 tuần.
- Sprint 1: Setup Database và các môi trường cho dự án
- Sprint 2: Chức năng thêm người dùng, người dùng có thể login vào hệ
thống, người dùng mới login vào hệ thống lần đầu sẽ phải đổi mật khẩu.
- Sprint 3: Chức năng thêm tài sản quản lý và chức năng cho mượn tài sản.
- Sprint 4: Chức năng yêu cầu hoàn trả tài sản, đưa ra bản release và demo
sản phẩm.

18


Đỗ Ngọc Thành

Báo cáo thực tập


Chương 4: Kết quả đạt được
1. Kết quả thu được

- Trải nghiệm quy trình làm việc từ đầu đến cuối của một dự án thực tế theo mơ
-

-

-

hình làm việc SCRUM.
Xây dựng thành cơng một Web thực tế.
Trau dồi nhiều hơn về kiến thức Web App và mơ hình MVC.
Thao tác lập trình, tư duy, ý tưởng xử lý luồng dữ liệu ở tầng dưới tăng hiệu
quả hơn.
Nâng cao về kỹ năng lập trình JavaScript .NET và các framework khác.
Nâng cao kỹ năng làm việc nhóm, "teamwork" khơng chỉ là hồn thành cơng
việc của mình mà cịn phải để tâm đến đồng đội của mình, nhìn nhận được
quan điểm chung, mục tiêu chung để có thể hoàn thành dự án một cách tối ưu
nhất.
Kỹ năng giao tiếp, tư duy phản biện, giải quyết vấn đề được nâng cao.

2. Điểm yếu của bản thân
Giao tiếp với đồng đội cịn ít, nhưng có trao đổi với nhóm về các lỗi, các vấn
đề mà cả team đang gặp phải.

19


Đỗ Ngọc Thành


Báo cáo thực tập

TÀI LIỆU THAM KHẢO
[1] />[2] />[3] />[4] />[5] />
20


×