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

Chuong1_GT_Tongquan_CNPM

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 (4.65 MB, 76 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1></div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

1. Các khái niệm cơ bản



2. Quy trình cơng nghệ phần mềm



3. Các phương pháp xây dựng phần mềm



4. Công cụ & môi trường phát triển phần mềm


5. Yêu cầu đối với kỹ sư phần mềm



</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

<sub>Phần mềm </sub>



<sub>Chất lượng phần mềm </sub>


<sub>Công nghệ Phần mềm </sub>



</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

<b><sub>Các khái niệm </sub></b>



<i><sub>Chương trình máy tính</sub><sub>: </sub></i><sub>Các chỉ thị để máy tính làm việc. </sub>


<i><sub>Phần mềm: </sub></i> <sub>Các chương trình hỗ trợ thực hiện công iệc theo lĩnh vực </sub>


chuyên ngành.


<i><sub>Nhiệm vụ chính yếu của phần mềm: Thực hiện các công việc dễ dàng và </sub></i>


nhanh chóng.


<i><sub>Hoạt động của phần mềm: Mơ phỏng lại các họat động của thế giới thực. </sub></i>


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

<i><sub>Mục tiêu của ngành công nghệ phần mềm</sub></i><sub>: Xây dựng được các phần mềm có chất </sub>


lượng, dễ dàng tích hợp



</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

<b><sub>Phân loại: </sub></b>



<b><sub>Nhóm 1: Phần mềm hệ thống. </sub></b>


– Đảm nhận cơng việc tích hợp và điều khiển các thiết bị phần cứng,


– Tạo ra môi trường thuận lợi để các phần mềm khác và người sử dụng
thao tác trên đó


<b><sub>Nhóm 2: Phần mềm ứng dụng</sub></b><sub>: </sub>


– Được dùng để thực hiện công việc xác định,


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

<b><sub>Phân loại: </sub></b>



Ngồi ra, phần mềm cịn được chia làm

<b>2 loại</b>

:



<i><b><sub>Sản phẩm đại trà</sub></b></i>

<sub>: Phát triển để bán ra ngoài thị trường. </sub>



<i><b><sub>Sản phẩm theo đơn đặt hàng: </sub></b></i>

<sub>Phát triển theo yêu cầu cho </sub>


khách hàng riêng lẻ. Ví dụ: Phần mềm chuyên dụng cho doanh


nghiệp



</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

<b><sub>Kiến trúc phần mềm: gồm 3 thành phần</sub></b>



</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

<b><sub>Kiến trúc phần mềm: gồm 3 thành phần</sub></b>



<b><sub>Thành phần Giao tiếp (giao diện) </sub></b>



– Các phương thức nhập/xuất dữ liệu và hình thức trình bày, tổ chức lưu trữ
dữ liệu


– Mục tiêu đưa dữ liệu từ thế giới bên ngoài vào phần mềm và ngược lại.
– Tiếp nhận yêu cầu, cung cấp nguồn dữ liệu liên quan đến việc thực hiện


yêu cầu.


– Trình bày các kết quả thực hiện các yêu cầu cho người dùng


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

<b><sub>Kiến trúc phần mềm: gồm 3 thành phần</sub></b>



<b><sub>Thành phần dữ liệu </sub></b>


– Các chức năng đọc ghi dữ liệu và mơ hình tổ chức dữ liệu tương ứng.


– Mục tiêu chính là chuyển đổi dữ liệu giữa bộ nhớ chính và bộ nhớ phụ,
bao gồm:


<sub>Lưu trữ các kết quả đã xử lý. </sub>


<sub>Truy xuất lại các dữ liệu đã lưu trữ phục vụ cho các hàm xử lý tương </sub>


</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

<b><sub>Kiến trúc phần mềm: gồm 3 thành phần</sub></b>



<b><sub>Thành phần xử lý: </sub></b>


– Các chức năng về xử lý tính tốn, biến đổi dữ liệu.


– Kiểm tra tính hợp lệ của dữ liệu nguồn theo ràng buộc


– Xử lý tạo kết quả mong đợi theo quy định


– Xuất kết quả qua giao diện hay lưu trữ lại


</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

<i><sub>«Phần mềm chất lượng là phần mềm phải đáp ứng các chức năng </sub></i>



<i>theo yêu cầu, có hiệu năng tốt, có khả năng bảo trì, đáng tin cậy, </i>


<i>và được người sử dụng chấp nhận». </i>



</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

<b>1.1.2. CHẤT LƢỢNG PHẦN MỀM </b>



<b>Chất lượng phần mềm</b>



</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

<b><sub>Tính đúng đắn: </sub></b>



<sub>Thực hiện đầy đủ và chính xác các yêu cầu. </sub>
<sub>Tính đúng đắn được xác định trên cơ sở: </sub>


– Tính đúng đắn của giải pháp xử lý / thuật tốn,


– Tính đúng đắn của tập mã lệnh hoặc nội dung của chương trình,


– Tính đúng đắn qua kiểm thử, việc áp dụng chương trình trong một khoảng
thời gian dài, trên diện rộng và với tần suất sử dụng cao.


</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

<b><sub>Tính tiến hóa</sub></b>



<sub>Sản phẩm có thể mở rộng, cập nhật thêm chức năng mới dễ dàng.</sub>
<sub>Dễ dàng cập nhật các quy trình nghiệp vụ.</sub>



<b><sub>Tính hiệu quả</sub></b>



<sub>Hiệu quả kinh tế, ý nghĩa, giá trị thu được. </sub>


<sub>Hiệu quả sử dụng (tốc độ xử lý của phần mềm …) </sub>


<sub>Hiệu quả kỹ thuật (tối ưu tài ngun của máy tính: CPU, bộ nhớ, khơng gian </sub>


xử lý )


</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

<b><sub>Tính tiện dụng và thân thiện</sub></b>



<sub>Tính cơ động và linh hoạt của sản phẩm </sub>



<sub>Cảm nhận (về mặt tâm lý) của người dùng về: </sub>


– Dễ học, có giao diện trực quan tự nhiên.



– Các chức năng của sản phẩm dễ thao tác.



</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

<b><sub>Tính tương thích: </sub></b>



<sub>Khả năng trao đổi dữ liệu với các phần mềm khác (như: nhận danh sách </sub>


nhân viên từ tập tin Excel …)


<sub>Gồm Giao tiếp nội bộ và giao tiếp bên ngồi.</sub>


<b><sub>Tính tái sử dụng: </sub></b>



<sub>Có thể áp dụng cho nhiều lĩnh vực theo nhiều chế độ làm việc khác nhau, </sub>


<sub>Áp dụng về mặt kỹ thuật hay phối hợp về mặt sử dụng với các phần mềm </sub>


khác.


</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

<b><sub>Sự ra đời của cơng nghệ phần mềm</sub></b>



<sub>Từ 1950, máy tính điện tử ra đời, các phần mềm được tạo với số lượng rất </sub>


ít, chủ yếu cho quốc phịng.


<sub>Đến 1960, phần mềm được ứng dụng rộng rãi trong nhiều lĩnh vực</sub>
<sub>Năm 1968 “khủng hoảng phần mềm” do:</sub>


– Nhu cầu số lượng phần mềm tăng nhanh do sự phát triển của phần cứng


– Các phần mềm dùng mắc nhiều khuyết điểm như: Thiếu chính xác, khơng ổn
định, bảo trì nâng cấp khó khăn, khó chuyển đổi dữ


</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

<b><sub>Sự ra đời của công nghệ phần mềm</sub></b>



<b><sub>Hội nghị được triệu tập và đưa ra kết luận</sub></b><sub>:</sub>


– Tăng số lượng phần mềm trong tương lai.


– Khắc phục các khuyết điểm của phương pháp xây dựng phần mềm hiện
tại:


 <sub>Xây dựng phần mềm theo cảm tính, thơ sơ đơn giản</sub>


 <sub>Chỉ tập trung vào việc lập trình khơng quan tâm các giai đoạn trước khi lập trình (khảo </sub>



sát hiện trạng, phân tích yêu cầu, thiết kế …)


 <sub>Phương pháp thủ cơng: Cơng cụ hỗ trợ chính khi xây dựng phần mềm là trình biên </sub>


dịch (compiler)


</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

<sub>CNPM là một lĩnh vực nghiên cứu của tin học nhằm đề xuất các </sub>


nguyên lý, phương pháp, công cụ, cách tiếp cận phục vụ cho việc


thiết kế, hiện thực các phần mềm đạt được đầy đủ các yêu cầu về


chất lượng phần mềm” Hay:



<sub>CNPM là một ngành khoa học nghiên cứu về việc xây dựng các </sub>


phần mềm có chất lượng trong khoảng thời gian và chi phí hợp lý



</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21>

<b><sub>Định nghĩa 1: Công nghệ phần mềm </sub></b>

<sub>là là một lĩnh vực nghiên </sub>



cứu của tin học nhằm đề xuất các

<i><b>nguyên lý</b></i>

,

<i><b>phương pháp, </b></i>


<i><b>công cụ, cách tiếp cận</b></i>

phục vụ cho việc

<i><b>thiết kế, hiện thực </b></i>

các


phần mềm đạt được đầy đủ các yêu cầu về chất lượng phần mềm.



<b>Định nghĩa </b>



</div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>

<b><sub>Quy trình CNPM: Hệ thống các giai đoạn phát triển phần mềm, </sub></b>



xác định rõ mục tiêu, kết quả chuyển giao cho giai đoạn kết tiếp.



<b><sub>Phươnng pháp phát triển phần mềm: Hệ thống các hướng dẫn </sub></b>



cho phép từng bước thực hiện các giai đoạn trong quy trình



CNPM.



<b><sub>Cơng cụ và môi trƣờng phát triển phần mềm: Hệ thống các </sub></b>



phần mềm trợ giúp



</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>

<sub>Khi phần mềm càng được phát triển mạnh </sub>

<sub>thì các lý thuyết của </sub>


<b>khoa học máy tính vẫn khơng đủ để đóng vai trị là nền tảng hồn </b>


thiện cho CNPM



</div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>

<b><sub>Bước xác định</sub></b>

<sub>:</sub>



<sub>Đây là bước hình thành dự án </sub>


<sub>Xác định được </sub> <i><b><sub>vai trò của phần mềm</sub></b></i><sub>, </sub> <i><b><sub>ước lượng công việc, lập lịch </sub></b></i>


<i><b>biểu và phân chia công việc.</b></i>


<sub>Xác định được </sub><i><b><sub>yêu cầu của khách hàng. </sub></b></i><sub>Các yêu cầu được thu thập đầy </sub>


đủ, phân tích rộng và sâu.


<sub>Công cụ sử dụng: Là các sơ đồ phản ánh các thành phần của hệ thống và </sub>


mối liên quan giữa chúng.


</div>
<span class='text_page_counter'>(25)</span><div class='page_container' data-page=25>

<b><sub>Bước phát triển</sub></b>



<b><sub>Đặc tả: </sub></b>

<sub>Dùng ngôn ngữ đặc tả mô tả những yếu tố của chương trình: </sub>




Giá trị nhập/ xuất/biến đổi. Chỉ quan tâm giá trị vào/ra không quan tâm


đến cấu trúc và nội dung các thao tác cần thực hiện.



<b><sub>Xây dựng:</sub></b>

<i><b><sub>Chuyển các đặc tả</sub></b></i>

<sub> chương trình </sub>

<i><b><sub>thành sản phẩm phần </sub></b></i>



<i><b>mềm</b></i>

dựa trên NNLT cụ thể.



<b><sub>Kiểm thử: </sub></b>

<sub>Chứng minh tính đúng đắn của chương trình với các tập </sub>



dữ liệu thử nghiệm khác nhau dựa vào kết



</div>
<span class='text_page_counter'>(26)</span><div class='page_container' data-page=26>

<b><sub>Bước bảo trì (Vận hành)</sub></b>



<sub>Cơng tác quản lý việc triển khai và sử dụng phần mềm. </sub>


<sub>Tất cả kết quả phân tích, thiết kế, hiện thực và hồ sơ liên quan phải được </sub>


lưu trữ và quản lý phục vụ cho cơng việc bảo trì phần mềm, trong suốt q
trình sống.


</div>
<span class='text_page_counter'>(27)</span><div class='page_container' data-page=27>

<sub>Có nhiều dạng mơ hình khác nhau để triển khai các bước trong </sub>


q trình phát triển phần mềm.



<sub>Mỗi mơ hình sẽ chia vịng đời của phần mềm khác nhau, để đảm </sub>


bảo quy trình phát triển thành cơng.



<sub>Mơ hình Thác nước </sub>


<sub>Mơ hình Bản mẫu Phần mềm </sub>
<sub>Mơ hình Xoắn ốc </sub>



</div>
<span class='text_page_counter'>(28)</span><div class='page_container' data-page=28>

<sub>Chia q trình phát triển PM thành những giai đoạn tuần tự nối </sub>


tiếp. Kết quả của giai đoạn trước là đầu vào cho giai đoạn kế tiếp



<b><sub>Mơ hình thác nước có 5 giai đoạn</sub></b>



</div>
<span class='text_page_counter'>(29)</span><div class='page_container' data-page=29>

<b><sub>Xác định yêu cầu: Tiến hành khi có nhu cầu xây dựng PM</sub></b>


<i><sub>Mục tiêu</sub></i>

<sub>: Xác định chính xác các yêu cầu của P.Mềm. </sub>


<i><sub>Kết quả nhận</sub></i>

<sub>: Thông tin về hoạt động của thế giới thực. </sub>



<i><sub>Kết quả chuyển giao</sub></i>

<sub>: Các yêu cầu (công việc sẽ thực hiện trên </sub>



máy tính) cùng với các thơng tin mô tả chi tiết về các yêu cầu


(cách thức thực hiện)



</div>
<span class='text_page_counter'>(30)</span><div class='page_container' data-page=30>

<b><sub>Phân tích: Tiến hành ngay sau việc xác định yêu cầu.</sub></b>



<i><sub>Mục tiêu: Mô tả yêu cầu bằng mơ hình </sub></i>


<i><sub>Kết quả nhận: Các u cầu cùng thông tin liên quan. </sub></i>
<i><sub>Kết quả chuyển giao: </sub></i>


– Mơ hình xử lý (các cơng việc và Quan hệ)


– Mơ hình dữ liệu (các thơng tin được sử dụng và QH)
– Mơ hình khác (khơng gian, thời gian, con người…)


</div>
<span class='text_page_counter'>(31)</span><div class='page_container' data-page=31>

<b><sub>Thiết kế: Tiến hành sau khi kết thúc việc phân tích. </sub></b>


<i><sub>Mục tiêu:</sub></i>

<sub> Mơ tả các thành phần của phần mềm. </sub>


<i><sub>Kết quả nhận:</sub></i>

<sub> Mô hình thế giới thực</sub>




<i><sub>Kết quả chuyển giao: </sub></i>



– Mơ tả thành phần giao diện: Các hàm/CTDL



– Mô tả thành phần xử lý: Các hàm kiểm tra xử lý


– Mô tả thành phần dữ liệu: Các hàm đọc/ghi...



</div>
<span class='text_page_counter'>(32)</span><div class='page_container' data-page=32>

<b><sub>Hiện thực:</sub></b>

<sub>Tiến hành ngay sau kết thúc việc thiết kế. </sub>


<i><sub>Mục tiêu: </sub></i>

<sub>Tạo lập phần mềm theo yêu cầu. </sub>



<i><sub>Kết quả nhận: </sub></i>

<sub>Mơ hình phần mềm. </sub>



<i><sub>Kết quả chuyển giao: </sub></i>

<sub>Chương trình nguồn của phần mềm với </sub>



CTDL tương ứng và chương trình thực hiện.



</div>
<span class='text_page_counter'>(33)</span><div class='page_container' data-page=33>

<b><sub>Kiểm thử: Tiến hành sau kết quả hiện thực (lập trình). </sub></b>


<i><sub>Mục tiêu: </sub></i>

<sub>Tăng độ tin cậy của phần mềm</sub>



<i><sub>Kết quả nhận: </sub></i>

<sub>các u cầu, mơ hình phần mềm,… </sub>


<i><sub>Kết quả chuyển giao: </sub></i>

<sub>Phần mềm có độ tin cậy cao.</sub>



</div>
<span class='text_page_counter'>(34)</span><div class='page_container' data-page=34>

<b><sub>Bảo trì: </sub></b>

<sub>Cơng việc của giai đoạn bao gồm việc cài đặt và vận </sub>



hành phần mềm trong thực tế.



<i><sub>Mục tiêu: </sub></i>

<sub>Đảm bảo phần mềm vận hành tốt </sub>


<i><sub>Kết quả nhận: </sub></i>

<sub>Phần mềm đã hoàn thành </sub>




<i><sub>Kết quả chuyển giao</sub></i>

<sub>: Các phản ánh của khách hàng trong quá </sub>



trình sử dụng.



</div>
<span class='text_page_counter'>(35)</span><div class='page_container' data-page=35>

<b><sub>Nhận xét:</sub></b>



<sub>Dễ phân chia quá trình xây dựng PM thành những giai đoạn độc lập. </sub>


<sub>Các dự án lớn ít khi tn theo dịng chảy tuần tự của mơ hình (cần lặp lại </sub>


các bước để nâng chất lượng, khách hàng ít tuyên bố hết các yêu cầu trong
giai đoạn phân tích).


<sub>Rất khó thay đổi khi đã thực hiện xong một giai đoạn, khó thay đổi các yêu </sub>


cầu theo ý khách hàng.


<sub>Phương pháp này chỉ thích hợp đã hiểu rất rõ các yêu cầu của khách hàng, </sub>


những thay đổi sẽ được giới hạn


</div>
<span class='text_page_counter'>(36)</span><div class='page_container' data-page=36>

<b><sub>Mơ hình thác nước cải tiến: </sub></b>

<sub>Mơ hình thác nước có thể được cải </sub>



tiến bằng cách cho phép quay lui khi phát hiện lỗi trong giai đoạn


phía trước.



</div>
<span class='text_page_counter'>(37)</span><div class='page_container' data-page=37>

<sub>Tương tự như mơ hình thác nước nhưng </sub>

<i><b><sub>bổ sung thêm giai </sub></b></i>



<i><b>đoạn thực hiện phần mềm mẫu</b></i>

.




<sub>Có thể tiến hành lặp lại mà khơng nhất thiết theo trình tự nhất </sub>


định.



</div>
<span class='text_page_counter'>(38)</span><div class='page_container' data-page=38>

<sub>Sau giai đoạn Xác định yêu cầu phân tích, đưa ra một bản thiết </sub>


kế sơ bộ



<sub>Tiếp theo, tiến hành hiện thực bản mẫu đầu tiên và chuyển cho </sub>


người sử dụng.



<sub>Bản mẫu này chỉ nhằm để mô tả cách thức phần mềm hoạt </sub>


<b>động và tương tác với người dùng </b>



</div>
<span class='text_page_counter'>(39)</span><div class='page_container' data-page=39>

<sub>Người dùng sau khi xem xét bản mẫu sẽ phản hồi thông tin cần </sub>


thiết lại cho nhóm phát triển.



<sub>Nếu người dùng đồng ý với bản mẫu, nhóm phát triển sẽ tiến </sub>


hành hiện thực. Ngược lại, phải quay lại giai đoạn xác định yêu


cầu.



<sub>Lặp lại liên tục cho đến khi người sử dụng đồng ý với bản mẫu do </sub>


nhà phát triển đưa ra.



</div>
<span class='text_page_counter'>(40)</span><div class='page_container' data-page=40>

<sub>Nhận xét</sub>



<sub>Là một hướng tiếp cận tốt khi các yêu cầu chưa rõ ràng. </sub>


<sub>Tính cấu trúc khơng cao dễ mất tin tưởng của khách hàng, và thiếu tầm </sub>


nhìn của cả quy trình;



<sub>Chỉ nên áp dụng với những hệ thống có tương tác ở mức độ nhỏ/vừa; một </sub>


phần của hệ thống lớn; hoặc có thời gian chu kỳ tồn tại ngắn


</div>
<span class='text_page_counter'>(41)</span><div class='page_container' data-page=41>

<sub>Là sự </sub>

<b><sub>kết hợp </sub></b>

<sub>của </sub>

<b><sub>mơ hình bản mẫu </sub></b>

<sub>thiết kế và </sub>

<b><sub>mơ hình thác </sub></b>


<b>nước được lặp lại nhiều lần.</b>



</div>
<span class='text_page_counter'>(42)</span><div class='page_container' data-page=42>

<sub>Ở lần lặp tiếp theo, hệ thống sẽ được tìm hiểu và xây dựng hoàn </sub>


thiện hơn ở lần lặp trước đó



<sub>Yêu cầu của người dùng ngày càng rõ ràng hơn, và các bản mẫu </sub>


phần mềm ngày một hoàn thiện hơn.



<sub>Ngoài ra, ở cuối mỗi lần lặp sẽ có thêm cơng đoạn phân tích mức </sub>


độ rủi ro để quyết định xem có nên đi tiếp theo hướng này hay


không.



</div>
<span class='text_page_counter'>(43)</span><div class='page_container' data-page=43>

<b><sub>Khái niệm</sub></b>



<sub>Có thể áp dụng </sub><b><sub>nhiều phương pháp xây dựng phần mềm</sub></b><sub>. Mỗi phương </sub>


pháp có


– Ưu khuyết điểm riêng, phù hợp riêng từng loại phần mềm.


– Các hướng dẫn cụ thể những công việc cần thực hiện trong từng giai
đoạn của quá trình phát triển phần mềm.


– Quy định những cách thức khác nhau để trình bày các kết quả thu được;
để các thành viên tham gia có thể trao đổi thơng tin trong việc xây dựng


PM.


</div>
<span class='text_page_counter'>(44)</span><div class='page_container' data-page=44>

<b><sub>Phân loại</sub></b>



Có thể chia phương pháp xây dựng P.Mềm

<b>thành 2 nhóm </b>

:


<b><sub>Theo cấu trúc của chương trình</sub></b>

<sub>: Phương pháp </sub>

<i><b><sub>hướng chức </sub></b></i>



<i><b>năng; hướng dữ liệu; hướng đối tượng</b></i>



<b><sub>Theo cách thức tổ chức quản lý</sub></b>

<sub>: Xây dựng phương án, Tổ </sub>


chức nhân sự, Ước lượng rủi ro, chi phí, lập kế hoạch và theo


dõi quá trình triển khai.



</div>
<span class='text_page_counter'>(45)</span><div class='page_container' data-page=45>

<b><sub>Cách tiếp cận từ trên xuống (top-down)</sub></b>



<sub>Cách giải quyết vấn đề theo hướng phân tích.</sub>


<sub>Bắt đầu với những </sub><b><sub>thành phần chính của hệ thống</sub></b><sub>. </sub>


<sub>Sau đó, được </sub><i><b><sub>phân tích thành các thành phần chi tiết và cụ thể hơn</sub></b></i><sub>. </sub>


<sub>Quá trình phân tích sẽ kết thúc khi kết quả thu được có mức độ phức tạp </sub>


đúng với ý muốn.


</div>
<span class='text_page_counter'>(46)</span><div class='page_container' data-page=46>

<b><sub>Cách tiếp cận từ dưới lên (bottom-up) </sub></b>



<sub>Cách giải quyết vấn đề theo </sub><i><b><sub>hướng tổng hợp </sub></b></i><sub>(ngược lại với phương pháp </sub>



từ trên xuống).


<sub>Tiến hành xây dựng những thành phần chi tiết dự tính là sẽ có trong hệ </sub>


thống.


<sub>Sau đó, sẽ kết hợp các thành phần chi tiết này lại với nhau để tạo nên các </sub>


thành phần chính.


</div>
<span class='text_page_counter'>(47)</span><div class='page_container' data-page=47>

<b><sub>Phương pháp hướng chức năng</sub></b>



<sub>Thực hiện dựa trên các chức năng mà hệ thống cần thực hiện, chú trọng </sub>


đến thành phần xử lý với các thao tác tính tốn, phát sinh, biến đổi …


<sub>Phương pháp chung để giải quyết vấn đề là áp dụng nguyên lý “chia để trị”. </sub>
<sub>Chia các công việc lớn thành các công việc nhỏ hơn để ta có thể tiến hành </sub>


xây dựng hồn chỉnh.


</div>
<span class='text_page_counter'>(48)</span><div class='page_container' data-page=48>

<b><sub>Phương pháp hướng chức năng</sub></b>



<sub>Chú trọng cách giải quyết vấn đề nhưng khơng có khả năng che dấu các </sub>


thông tin trạng thái.


<sub>Dẫn đến các chức năng trong hệ thống sẽ không tương thích khi thực hiện </sub>


thay đổi các thơng tin.



<i><sub>Cách tiếp cận này chỉ thích hợp khi trong hệ thống có rất ít thơng tin cần </sub></i>


<i>phải quản lý và chia sẻ giữa các chức năng với nhau.</i>


</div>
<span class='text_page_counter'>(49)</span><div class='page_container' data-page=49>

<b><sub>Phương pháp hướng chức năng</sub></b>



<sub>Để mơ hình hóa cách xử lý thơng tin, ta dùng lược đồ dòng dữ liệu </sub>


(DFD, Data Flow Diagrams)



</div>
<span class='text_page_counter'>(50)</span><div class='page_container' data-page=50>

<b><sub>Phương pháp hướng dữ liệu</sub></b>



<sub>Phương pháp Hướng DL chú trọng nhiều đến thành phần DL cần phải xử lý </sub>


là tổ chức dữ liệu, khối lượng lưu trữ, tốc độ truy xuất …


<sub>Bắt đầu với việc thiết kế các CTDL, sau đó mới tiến hành thiết kết các thao </sub>


tác để vận hành.


<sub>Chỉ thích hợp cho loại phần mềm có chức năng chính là lưu trữ và thao tác </sub>


trên các loại dữ liệu.


<sub>Hạn chế là không quan tâm đến các chức năng mà hệ thống cần phải đáp </sub>


</div>
<span class='text_page_counter'>(51)</span><div class='page_container' data-page=51>

<b><sub>Phương pháp hướng dữ liệu</sub></b>



<sub>Kết quả thu được sau khi thiết kế theo phương pháp hướng dữ liệu là mơ </sub>



hình thực thể kết hợp (Entity Relationship Diagram, ERD)


</div>
<span class='text_page_counter'>(52)</span><div class='page_container' data-page=52>

<b><sub>Phương pháp hướng đối tượng</sub></b>



<sub>Là </sub><b><sub>sự kết hợp </sub></b><sub>của </sub><i><b><sub>PP Hướng Dữ liệu </sub></b></i><sub>và </sub><i><b><sub>PP Hướng Chức năng</sub></b></i><sub>. </sub>
<sub>Chú trọng đến cả </sub><i><b><sub>thành phần dữ liệu </sub></b></i><sub>và </sub><i><b><sub>chức năng của hệ thống</sub></b></i><sub>.</sub>


<sub>Một hệ thống phần mềm là tập hợp các đối tượng có khả năng tương tác </sub>


với nhau. Các đối tượng chính là những sự vật và hiện tượng vật lý.


<sub>Mỗi </sub><b><sub>đối tượng </sub></b><sub>có </sub><b><sub>dữ liệu riêng </sub></b> <sub>và </sub><b><sub>các thao tác mà đối tượng có thể </sub></b>


<b>thực hiện</b>


</div>
<span class='text_page_counter'>(53)</span><div class='page_container' data-page=53>

<sub>Các đối tượng giao tiếp nhau bằng cách gửi các thông điệp. </sub>


các thông điệp xử lý được gọi là giao diện của đối tượng.



<sub>Khi đó mọi thao tác liên quan đến các đối tượng được phải thực </sub>


hiện thông qua giao diện của đối tượng.



<sub>Điều này giúp ta đảm bảo rằng các thông tin bên trong các đối </sub>


tượng đưọc bảo vệ một cách chắc chắn



</div>
<span class='text_page_counter'>(54)</span><div class='page_container' data-page=54></div>
<span class='text_page_counter'>(55)</span><div class='page_container' data-page=55>

<b><sub>Mở đầu</sub></b>



<sub>Là các phần mềm hỗ trợ trong quá trình xây dựng PM (</sub><b><sub>CASE - Computer </sub></b>


<b>Aided Software Engineering)</b>.



<sub>Hỗ trợ cho một/một số giai đoạn gọi là môi trường phát triển phần mềm </sub>


(<b>SDE, Software Development Environment</b>), gồm 2 hình thức chính:
– Cho phép lưu / cập nhật kết quả chuyển giao với phương pháp nào đó.
– Phát sinh ra kết quả chuyển giao cho giao đoạn sau.


</div>
<span class='text_page_counter'>(56)</span><div class='page_container' data-page=56>

<b><sub>Phần mềm hỗ trợ phân tích</sub></b>



<sub>Soạn thảo các mơ hình khái niệm, Ánh xạ vào mơ hình luận lý , các phần </sub>


mềm thông dụng: WinA&D, Analyst Pro, Rational Rose, Enterprise
Architect…


<b><sub>Phần mềm hỗ trợ thiết kế</sub></b>



<sub>Soạn thảo các mơ hình luận lý, Ánh xạ vào mơ hình vật lý, các phần mềm </sub>


</div>
<span class='text_page_counter'>(57)</span><div class='page_container' data-page=57>

<b><sub>Phần mềm hỗ trợ lập trình</sub></b>



<sub>Quản lý các phiên bản (dữ liệu, chương trình nguồn, giao diện), </sub>


biên dịch : Visual Studio Net (Basic, C#, C++), Borland …



<b><sub>Phần mềm hỗ trợ kiểm chứng:</sub></b>



<sub>Phát sinh tự động các bộ dữ liệu thử nghiệm, phát hiện lỗi: </sub>


WinRuner, QuickTestPro …



</div>
<span class='text_page_counter'>(58)</span><div class='page_container' data-page=58>

<b><sub>Phần mềm hỗ trợ tổ chức, quản lý việc triển khai</sub></b>



<b><sub>Phần mềm xây dựng phương án: </sub></b>



– Lập kế hoạch dự án, dự đoán rủi ro, tính chi phí: MS Project, Visio,
Rational Rose …


– Phần mềm lập kế hoạch, xác định các công việc, phân công, lập lịch biểu,
theo dõi thực hiện: MS Project, Visio


</div>
<span class='text_page_counter'>(59)</span><div class='page_container' data-page=59>

<sub>Quy trình xây dựng phần mềm được thực hiện trong một mơi </sub>


trường chun nghiệp và địi hỏi

tn thủ các nguyên tắc một cách


chính xác.



<sub>Những kỹ sư phần mềm phải xem công việc là trách nhiệm to lớn, </sub>


chứ không đơn thuần chỉ là việc ứng dụng kỹ thuật

.



<sub>Kỹ sư phần mềm phải </sub>

<sub>ứng xử trung thực và chuyên nghiệp và </sub>


đúng quy tắc.



</div>
<span class='text_page_counter'>(60)</span><div class='page_container' data-page=60>

<b><sub>Các nguyên tắc mà kỹ sư PM phải thực hiện: </sub></b>



<i><sub>Lòng tin: Tạo được sự tin cẩn từ phía nhân viên và khách hàng.</sub></i>


<i><sub>Năng lực: Khơng nên trình bày sai khả năng của mình, khơng nên nhận </sub></i>


những công việc vượt quá khả năng.


<i><sub>Các quyền về tài sản trí tuệ: Nên quan tâm về tài sản trí tuệ, bằng sáng chế, </sub></i>


quyền tác giả ….


<i><sub>Khơng lạm dụng máy tính: Không nên sử dụng các kỹ năng của mình để </sub></i>



gây ảnh hưởng tới người khác như: phát tán virus, chơi Game...


</div>
<span class='text_page_counter'>(61)</span><div class='page_container' data-page=61>

<i><b>1. Những khái niệm: </b></i>



<i><sub>Phần mềm (khái niệm, phân loại, kiến trúc) </sub></i>


<i><sub>Chất lượng phần mềm (tính đúng đắn, tính tiến hóa, tính hiệu quả, tính tiện </sub></i>


<i>dụng, tính tương thích, tính tái sử dụng) </i>


<i><sub>CN phần mềm (nguồn gốc, định nghĩa …) </sub></i>


<i><b>2. Quy trình CNPM</b></i>

<i>: Bước xác định; Bước phát triển; Bước bảo trì </i>



<i><b>3. Một số mơ hình triển khai </b></i>

<i>xây dựng phần mềm (Thác nước, </i>


<i>Bản mẫu Phần mềm, Xoắn ốc)</i>



</div>
<span class='text_page_counter'>(62)</span><div class='page_container' data-page=62>

<b>4. Các phương pháp xây dựng phần mềm: </b>



<sub>Tổng quan (Khái niệm, Phân loại), </sub>


<sub>Phương pháp xây dựng phần mềm (Cách tiếp cận, tiến hành) </sub>


<b>5. Công cụ & môi trường phát triển phần mềm </b>



<sub>Phần mềm hỗ trợ thực hiện các giai đoạn (phân tích, thiết kế, lập trình, kiểm </sub>


chứng)



<sub>Phần mềm hỗ trợ tổ chức, quản lý việc triển khai (Xây dựng phương án, </sub>


</div>
<span class='text_page_counter'>(63)</span><div class='page_container' data-page=63>

<b>6. Yêu cầu đối với kỹ sư phần mềm: Sự tin cẩn, năng lực, quyền </b>


tài sản trí tuệ.



</div>
<span class='text_page_counter'>(64)</span><div class='page_container' data-page=64>

1. Phụ lục A trang 170


2. Phụ lục B trang 179



</div>
<span class='text_page_counter'>(65)</span><div class='page_container' data-page=65>

<b>1/. Công nghệ phần mềm có từ tiếng Anh là</b>



A/. software engineering


B/. engineering software


C/. software testing



D/. software developer



</div>
<span class='text_page_counter'>(66)</span><div class='page_container' data-page=66>

<b>2/. Mục tiêu của công nghệ phần mềm là để: </b>



A/. Thực thi phần cứng tốt hơn


B/. Chỉnh sửa lỗi phần mềm



C/. Có thể sử dụng lại phần mềm



D/. Tạo sản phẩm phần mềm chất lượng hơn



</div>
<span class='text_page_counter'>(67)</span><div class='page_container' data-page=67>

<b>3/. Theo thống kê từ những thách thức đối với CNPM thì lỗi </b>


<b>nhiều nhất là do: </b>



A/. Kiểm tra và bảo trì


B/. Thiết kế




C/. Lập trình



D/. Phân tích u cầu



</div>
<span class='text_page_counter'>(68)</span><div class='page_container' data-page=68>

<b>4/. Kỹ sư phần mềm không cần </b>



A/. Kiến thức về phân tích thiết kế hệ thống.


B/. Kiến thức về cơ sở dữ liệu.



C/. Lập trình thành thạo bằng một ngơn ngữ lập trình.


D/. Kinh nghiệm quản lý dự án phần mềm.



</div>
<span class='text_page_counter'>(69)</span><div class='page_container' data-page=69>

<b>5/. SDLC là viết tắt của: </b>



A. Spiral Development Linear Cycle


B. Software Development Life Cycle


C. Software Development Line Cycle



D. Sequential Development Linear Cycle



</div>
<span class='text_page_counter'>(70)</span><div class='page_container' data-page=70>

<b>6/. Nếu yêu cầu là dễ hiểu và xác định được thì mơ hình nào là </b>


<b>thích hợp nhất để phát triển hệ thống: </b>



A. Mơ hình thác nước (waterfall model)


B. Mơ hình bản mẫu (prototyping)



C. Mơ hình xoắn ốc (spiral model)


D. Mơ hình phát triển nhanh (RAD)




</div>
<span class='text_page_counter'>(71)</span><div class='page_container' data-page=71>

<b>7/. Hình ảnh minh họa sau thể hiện các hoạt động của mô hình </b>


<b>phát triển phần mềm nào?</b>



A. Mơ hình bản mẫu(prototyping)


B. Mơ hình thác nước (waterfall model)
C. Mơ hình xoắn ốc (spiral model)


D. Mơ hình phát triển nhanh (RAD)


</div>
<span class='text_page_counter'>(72)</span><div class='page_container' data-page=72>

<b><sub>8/. Mơ hình prototyping là: </sub></b>



A. Mơ hình rất thích hợp khi các u cẩu hệ thống được xác định rõ ràng


B. Mơ hình thường dùng khi khách hàng không thể xác định được yêu cầu rõ
ràng


C. Mô hỉnh tốt nhất cho những dự án có nhiều đội phát triển cùng tham gia
D. Mơ hình nhiều rủi ro nên ít khi tạo ra sản phẩm có giá trị


</div>
<span class='text_page_counter'>(73)</span><div class='page_container' data-page=73>

<b>9/. Hình ảnh minh họa sau thể hiện các hoạt động của mơ hình </b>


<b>phát triển phần mềm nào?</b>



A. Mơ hình bản mẫu(prototyping)


B. Mơ hình thác nước (waterfall model)
C. Mơ hình xoắn ốc (spiral model)


D. Mơ hình phát triển nhanh (RAD)



</div>
<span class='text_page_counter'>(74)</span><div class='page_container' data-page=74>

<b>10/. Hình ảnh minh họa sau thể hiện các hoạt động của mơ hình </b>


<b>phát triển phần mềm nào?</b>



A. Mơ hình bản mẫu(prototyping)


B. Mơ hình thác nước (waterfall model)
C. Mơ hình xoắn ốc (spiral model)


D. Mơ hình phát triển nhanh (RAD)


</div>
<span class='text_page_counter'>(75)</span><div class='page_container' data-page=75>

<i>11/. Mơ hình </i>

<i>phát triển phần mềm </i>

<i>mà tiến trình tiến hố vốn cặp đơi </i>


<i>bản chất lặp của làm bản mẫu với các khía cạnh hệ thống và có </i>


<i>kiểm sốt của mơ hình trình tự tuyến tính. Là mơ hình phát triển </i>


<i>phần mềm nào sau đây?</i>



A. Mơ hình tăng trưởng (incremental model)


B. Mơ hình kĩ thuật thế hệ thứ tư (Fourth generation techniques - 4GT)
C. Mô hình xoắn ốc (spiral model)


D. Mơ hình RAD (Rapid application development)


</div>
<span class='text_page_counter'>(76)</span><div class='page_container' data-page=76>

12/. Phương pháp xây dựng phần mềm mà cách giải quyết vấn đề


theo hướng phân tích, Bắt đầu với những thành phần chính của hệ


thống., Sau đó, được phân tích thành các thành phần chi tiết và cụ


thể hơn.



A. Cách tiếp cận từ dưới lên
B. Cách tiếp cận từ trên xuống



C. Phướng pháp hướng đối tượng


</div>

<!--links-->

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×