Tải bản đầy đủ (.pptx) (15 trang)

Giới thiệu phát triển phần mềm

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 (226.35 KB, 15 trang )

Chương 1
Giới thiệu về phát triển phần mềm
Software development




Định nghĩa “Phát triển phần mềm”: Softwear Development là quá trình lấy một tập hợp các yêu cầu từ người
dùng (một vấn đề tuyên bố), phân tích chúng, thiết kế một giải pháp cho vấn đề này, và sau đó thực hiện các giải
pháp trên máy tính.



Phát triển phần mềm không phải là lập trình. lập trình thực sự là 1 phần thực hiện, hoặc có thể thiết kế và thực
hiện trong phát triển phần mềm. Lập trình là cốt lõi của việc phát triển phần mềm, nhưng nó không phải tất cả
mọi thứ trong phát triển phần mềm.



Tương tự, PTPM cũng chẳng phải công nghệ phần mềm. Công nghệ phần mềm bao gồm cả các mặt quản lý của
việc tạo ra toàn bộ 1 chương trình máy tính mà mọi người sẽ sử dụng : quản lý dự án, cấu hình, lập kế hoạch và
dự toán, xây dựng cơ bản và lập kế hoạch, quản lý con người và 1 vài điều khác.



Phát triển phần mềm là một phần thú vị của công nghệ phần mềm.


Chúng ta đang làm gì?
Lịch sử PTPM : >= 60 năm
PTPM : không đơn giản, kể cả với những người đã và đang học về công nghệ TT, thậm chí đang làm việc trong


lĩnh vực CNTT.

PTPM : là một kỹ năng cần phải học và thực hành rất nhiều. Bạn không học lập trình và PTPM bởi đọc sách =>
Hãy tìm hiểu bằng cách làm nó.

Tuy nhiên, được làm việc về các vấn đề hóc búa luôn tạo ra 1 sức hút thú vị . Làm việc trên một cái gì đó chưa từng
làm trước đây, một cái gì đó mà ta thậm chí không biết là có thể giải quyết luon là 1 thách thức. Và điều đó thúc đẩy
chúng ta tiếp tục tạo ra các chương trình mới lần nữa, lần nữa.


Chúng ta đang làm gì?
Các cách để tìm hiểu về phát triển phần mềm :






Đọc các thiết kế tuyệt vời,
Đọc rất nhiều code,
Viết rất nhiều code,
Suy nghĩ sâu sắc về cách bạn tiếp cận một vấn đề và thiết kế một giải pháp cho nó.

Đọc rất nhiều code, những code hiệu quả, mang lại cho bạn rất nhiều ví dụ tốt về cách suy nghĩ về các vấn đề và cách
tiếp cận của họ hay giải pháp trong một phong cách đặc biệt. Viết rất nhiều code cho phép bạn thử nghiệm với
phong cách và các ví dụ.


Làm thế nào để phát triển phần mềm?
Điều đầu tiên bạn nên làm là đọc cuốn sách “Software development and professional practice” của John Dooley” .

Nó không hẳn sẽ cho bạn biết tất cả mọi thứ, nhưng sẽ cung cấp cho bạn một mở đầu tốt đẹp khi bước đầu tiếp cận
phát triển phần mềm ví dụ như tất cả những gì bạn cần phải làm để viết code tốt. John Dooley là người có trên 20 năm
viết code chuyên nghiệp và 16 năm khác cố gắng tìm hiểu làm thế nào để dạy cho những người khác viết code.

Trong thực tế ,phát triển phần mềm chỉ là một phần của công nghệ phần mềm, phát triển phần mềm là trung tâm

của mọi dự án phần mềm. Code thường được tạo ra bởi một nhóm các nhà phát triển. Vì vậy, để bắt đầu,có lẽ chúng
ta nên xem xét một dự án phần mềm từ bên ngoài và yêu cầu những gì và nhóm cần phải làm gì để thực hiện thành
công dự án đó ?


Làm thế nào để phát triển phần mềm?
Để có thể phát triển phần mềm tốt bạn nên thực hiện các điều sau :

1.

Có một đội nhỏ nhưng liên kết với nhau tốt: Nhóm nhỏ có ít dòng giao tiếp hơn những nhóm lớn. Dễ dàng
hiểu biết về các đồng đội của mình hơn. Dễ dàng biết điểm mạnh, điểm yếu của từng thành viên : ai biết được
những gì, và ai là người chuyên tâm đến những vấn đề cụ thể hoặc các trường hợp đặc biệt gì. Các đội kiểu này
thường đã làm việc trên một số dự án với nhau. Giữ liên kết với nhau qua một số dự án là một công việc quan
trọng của người quản lý nhóm . Nhóm nhỏ có liên kết tốt thường làm việc với năng suất cao hơn, luôn theo
đúng lịch trình, sản xuất code với ít lỗi hơn. Chìa khóa để giữ một nhóm với nhau là cung cấp cho họ công việc
thú vị để làm và sau đó để họ tự làm 1 mình.


Làm thế nào để phát triển phần mềm?
2.

Giữ thông tin liên lạc tốt giữa các thành viên trong nhóm: Thông tin liên lạc liên tục giữa thành viên trong
nhóm là rất quan trọng đối với tiến độ thực hiện và hoàn thành dự án . Các đội được cùng làm việc chung 1

phòng tốt hơn khi giao tiếp và giao tiếp nhiều hơn đội được phân phối theo địa lý (thậm chí nếu chúng chỉ khác
nhau về tầng hoặc cánh của một tòa nhà). Đây là một vấn đề lớn với các công ty lớn và đặc biệt các công ty
phát triển phần mềm phân tán trên toàn cầu.


Làm thế nào để phát triển phần mềm?
3.

Liên lạc chặt chẽ với khách hàng là điều rất cần thiết để kiểm soát các yêu cầu trong một dự án: Tiếp cận
khách hàng bằng cách tương tác thường xuyên . Khách hàng có thể cung cấp cho thông tin phản hồi ngay lập
tức về phiên bản mới và được tham gia vào việc tạo ra hệ thống kiểm tra và chấp nhận cho các sản phẩm.
PTPM theo phương pháp linh hoạt đòi hỏi khách hàng là một phần của nhóm phát triển và được liên lạc hàng
ngày.


Làm thế nào để phát triển phần mềm?
4.

Xác định rõ quy mô ,quy trình và chu kỳ vòng đời phần mềm: Mỗi dự án, bất kể lớn hay nhỏ như thế nào
đều trải qua quá trình hình thành và phát triển. Các dự án lớn và các đội lớn hơn thường lên kế hoạch và thực
hiện theo các quá trình với nhiều quy định và giấy tờ cần thiết. Dự án lớn hơn yêu cầu phối hợp nhiều hơn và
kiểm soát chặt chẽ hơn về thông tin liên lạc và cấu hình quản lý. Dự án nhỏ hơn và các đội nhỏ hơn có xu
hướng theo quá trình phát triển nhanh hơn, linh hoạt hơn và ít tài liệu yêu cầu. Điều này chắc chắn không có
nghĩa là không có quá trình trong một dự án linh hoạt, nó chỉ có nghĩa là bạn làm những gì có ý nghĩa cho các
dự án bạn đang viết để bạn có thể đáp ứng tất cả các yêu cầu, đáp ứng tiến độ, và sản xuất ra một sản phẩm chất
lượng. Phần sau sẽ trình bày chi tiết về quy trình và chu kỳ vòng đời phần mềm.


Làm thế nào để phát triển phần mềm?
5.


Xác định khả năng rủi ro và xử lý linh hoạt các yêu cầu: Không có dự án nào được thực hiện như bạn đã
nghĩ vào ngày đầu tiên. Yêu cầu thay đổi, nhân sự thay đổi, công cụ đang dùng không phù hợp .... Tất cả là việc
xử lý rủi ro trong dự án của bạn. Nếu bạn xác định rủi ro, lập kế hoạch để giảm thiểu chúng, và sau đó có một
kế hoạch dự phòng để giải quyết các nguy cơ thực sự xảy ra, như vậy bạn sẽ ở trong trạng thái tốt hơn nhiều.
Phần 4 nói về yêu cầu và rủi ro.


Làm thế nào để phát triển phần mềm?
6.

Lập kế hoạch cho dự án: Bạn sẽ không phải viết một chương trình phân loại mà không có một thuật toán, do
đó bạn không nên khởi động một dự án phát triển phần mềm mà không có một kế hoạch. Kế hoạch dự án gói
gọn những thứ bạn sẽ làm để thực hiện dự án . Nó nói về quá trình, rủi ro, tài nguyên, công cụ, yêu cầu quản lý,
ước tính, lịch trình, cấu hình, và giao hàng. Nó phải lâu dài và cần chứa tất cả những chi tiết nhỏ nhất trong
công việc hàng ngày của dự án, vì vậy mọi người trong nhóm cần phải có đầu tư nghiêm túc vào nó, họ cần
phải hiểu nó, và họ cần phải đồng ý với nó. Phần 3 sẽ trình bày thêm chi tiết về kế hoạch dự án.


Làm thế nào để phát triển phần mềm?
7.

Biết mình đang ở đâu trong mọi thời điểm:

.

Một lần nữa đó là điều của truyền thông. Các dự án thường phải tiến hành họp thường xuyên để các nhà phát triển có thể
"đồng bộ" với tình trạng hiện tại của họ và có được một cảm giác về tình trạng của toàn bộ dự án.

.


Quy trình Agile( tạm dịch là quá trình phát triển linh hoạt : nhanh nhạy đòi hỏi tốc độ) thường đòi hỏi các cuộc họp hàng
ngày để cải thiện thông tin liên lạc giữa các thành viên trong nhóm và tạo ra một cảm giác về tình bạn trong đội. Và rồi
bạn nhận ra rằng phía sau sẽ thêm nhiều lựa chọn bao gồm việc kéo dài tiến độ, gửi một số yêu cầu cho một tương lai
phát hành, nhận được sự giúp đỡ thêm, vv và quan trọng nhất là để giữ liên lạc và thông tin với quản lý của bạn.


Làm thế nào để phát triển phần mềm?
8.

Cần biết rằng các công cụ và quy trình thực hiện đúng đắn cho dự án này chưa chắc đã đúng cho dự án
khác:

.

Một trong những điều rất quan trọng về phát triển phần mềm là mỗi dự án lại khác nhau. Ngay cả khi bạn đang làm phiên bản mới
nhất của một sản phẩm hiện có, mọi thứ vẫn có thể thay đổi. Ý nghĩa của việc này là cho mỗi một dự án cần phải xem xét và lựa chọn
các công cụ và quy trình phát triển cụ thể.

.

Ba yếu tố quan trọng nhất trong việc lựa chọn công cụ là các loại ứng dụng mà bạn đang viết, mục tiêu và các nền tảng phát triển. Bạn
thường không biết hay không áp dụng điều gì trong 3 điều trên, vì vậy nếu giờ bạn đã biết hãy dùng nó để cải thiện hiệu năng công
việc. Một yếu tố thứ tư cực kì quan trọng nữa là thành phần và kinh nghiệm của đội ngũ phát triển. Nếu nhóm của bạn là tất cả nhà
phát triển có kinh nghiệm thì mọi việc đơn giản. Nhưng nếu bạn có một loạt các thành viên mới và mục tiêu, nền tảng mới , bạn sẽ
cần phải cẩn thận về việc lựa chọn công cụ và gấp rút đào tạo , thực hành với các công cụ mới.


Làm thế nào để phát triển phần mềm?
9.


Nhận ra rằng bạn không biết tất cả mọi thứ bạn cần biết khi bắt đầu dự án: Bạn sẽ luôn luôn phát hiện ra
yêu cầu mới; các yêu cầu khác sẽ được phát hiện cũng quan trọng như những suy nghĩ của khách hàng.
Quản lý yêu cầu là một trong những kỹ năng quan trọng nhất một nhà phát triển phần mềm cần có. Nếu bạn đang
sử dụng các công cụ phát triển mới (phát triển web trên 1 framework mới), bạn sẽ phát hiện ra giới hạn mà bạn
chưa từng biết tới và tác dụng phụ làm cho bạn phải học hỏi tiếp.


Kết Luận


Phát triển phần mềm là trái tim của mỗi dự án phần mềm, và nó là trung tâm của công nghệ phần mềm. Mục tiêu của nó là để cung cấp
thật nhiều code hoàn hảo cho người dùng trong khuôn khổ quỹ thời gian và ngân sách, đối mặt liên tục với sự thay đổi các yêu cầu. Điều
đó làm cho phát triển phần mềm là một công việc đặc biệt khó khăn. Nhưng việc tìm kiếm một giải pháp cho một vấn đề khó khăn và
nhận tự viết lên những dòng code một cách chính xác là 1 cảm giác vô cùng thú
"[Lập trình] là công việc duy nhất tôi có thể nghĩ về nơi mà tôi được công nhận vừa là một kỹ sư vừa là một nghệ sĩ. Nghiêm ngặt, đáng
kinh ngạc với yếu tố kỹ thuật , mà tôi thích vì làm bạn phải suy nghĩ rất chính xác. Mặt khác, nó lại cực kỳ sáng tạo nơi mà ranh giới của trí
tưởng tượng không có giới hạn. Cuộc hôn nhân của hai yếu tố là những gì làm cho chương trình độc đáo. Bạn được công nhận vừa là một
nghệ sĩ vừa là một nhà khoa học. Tôi thích điều đó. Tôi thích tạo ra các ma trận tại trung tâm đó là nền tảng để viết chương trình. Thấy ma
trận, mà bản chất là chương trình của bạn, do bạn làm, làm việc một cách chính xác ngay lần đầu tiên, là một phần ly kỳ nhất của việc viết
một chương trình.”
— Andy Hertzfeld (designer of the first Mac OS)



×