Tại sao phải lập lịch Dể triển khai một hệ thống phức tạp,nhiều tác vụ xảy ra song song và kết quả của công việc được thực thi trong 1 tác vụ có ảnh hưởng sâu sắc đến công việc được th
Trang 1Triển khai phần mềm
Triển khai phần mềm
Sinh viên thực hiện:
Lê Huy Bình Nguyễn Trung Dũng
Từ Văn Hiếu Lớp ĐT10-k49
Trang 3A Định nghĩa :Pha phát triển
phát triển hệ thống theo một vòng lặp và tăng dần để đạt tới toàn bộ sản phẩm đầy
đủ, sẵn sàng chuyển giao tới cộng đồng
người sử dụng
thành chương trình cụ thể thông qua một ngôn ngữ lập trình cụ thể
Trang 4B Điều kiện khởi điểm
Mô tả chi tiết yêu cầu của dự án
Cấu trúc của toàn bộ chương trình theo từng Module
Giao diện của từng Module chương trình
Nhiệm vụ và chức năng của từng Module
Đặc tả chi tiết theo các Module của ứng dụng
Trang 5C Nhiệm vụ
Giai đoạn này bao gồm việc mô tả các yêu cầu còn lại chưa được xác định, làm mịn thiết kế và chuyển đặc tả thiết kế thành mã nguồn (source code)
Cần viết mã, và các tài liệu trong giai đoạn này sao cho mã tuân theo đúng đặc tả, có thể dễ
dàng được kiểm chứng, và việc gỡ lỗi, kiểm thử,
và thay đổi có thể được thực hiện một cách dễ dàng
Trang 6D Xây dựng lịch trình
Yêu cầu:
Đây là bước rất quan trọng , đòi hỏi một người có kinh nghiệm
và khả năng tổ chức xây dựngn lên.
Dựa vào đặc tả chi tiết của hệ thống ta xác định thời gian cần thiết để xây dựng cụ thể từng Module nhỏ nhất , tích hợp các Module , kiểm tra từng Module.
Xây dựng tiến trình thời gian cho việc viết tài liệu hướng dẫn sử dụng , tài liệu nội dung hệ thống và các tài liệu liên quan khác.
Sau khi có tiến trình thời gian triển khai của hệ thống , phân công công việc cụ thể cho từng thành viên trong đội theo khả năng
Trang 7Tại sao phải lập lịch
Dể triển khai một hệ thống phức tạp,nhiều
tác vụ xảy ra song song và kết quả của công
việc được thực thi trong 1 tác vụ có ảnh hưởng sâu sắc đến công việc được thực thi trong 1 tác
vụ khác sự phụ thuộc lẫn nhau rất khó có thể
hiểu được nếu như không có lập lịch.Việc đánh giá sự triển khai phần mềm vừa và nhỏ là không thể thiếu nếu như không có 1 bảng lập lịch chi tiết
Trang 8Tại sao phải lập lịch
Nhằm phân công cụ thể công việc của từng
module cho từng thành viên trong đội lập trình
Quản lý được tiến độ triển khai dự án từ đó có biện pháp chỉnh sửa phù hợp trong quá trình triển khai để đảm bảo tiến độ công việc
Quản lý được Source Code , thuận tiện cho quá trình gỡ lỗi , triển khai , nâng cấp hệ thống
Trang 9Ai thực hiện?
phần mềm sử dụng thông tin thu được từ
những kỹ sư phần mềm.Để thực hiện điều phối một cách có hiệu quả thì người quản lí cần có kinh nghiệm
làm
Trang 10D Xây dựng lịch trình D.1/ Phân công và điều phối
D.2/ Kiểm soát tiến độ công việc
Trang 11Phân công và điều phối
Cả sản phẩm và các tiến trình đều được chia và
cần phải xác định rõ ràng mối quan hệ ràng buộc giữa các Module được chia
Mỗi tác vụ được lập lịch phải được cấp phát một
số đơn vị làm việc(ví dụ như ngày công).Ngoài ra,mỗi tác vụ phải được gán một ngày khởi công
và môt ngày hoàn thành
Trang 12 Trách nhiệm rõ ràng
Mỗi tác vụ được lâp lịch nên gán cho một thành viên cụ thể của đội dự án
Phân bố công việc hợp lý
Mỗi một dự án phải có số thành viên nhất định,và phải đảm bảo rằng không thể có nhiều người hơn so với lượng công việc được chia
Trang 13
Những lưu ý trong phân công v à
điều phối
Tất cả các nhiệm vụ đều ở trong hệ thông
Công sức và thời gian phải được cấp cho từng nhiệm vụ môt cách thông minh
Các tài nguyên câp pháp cho công việc phải được dùng một cách hiệu quả,như tài chính,nhấn lực
Quan hệ giữa con người và công sức
L=PxE^1/3xt^4/3
=> E=L^1/3/(P^3xt^4)
E:là công sức ,tình theo số người làm việc trong tháng
P:Thông số năng suất
T:thời gian của dự án tính theo tháng
Trang 14L=33000 dòng lệnh,Nếu 8 người được
phân công thi công việc được hoàn thành
trong 1.3 năm,Tuy nhiên,nếu chúng ta kéo dài thời hạn cuối nên 1.75 năm,thi khi đó số người cần thiết để đáp ứng công việc này
giảm đi chỉ còn 4
Trang 15Kiểm soát tiến độ công việc
phù hợp với từng nhóm thành viên báo cáo các tiến trình và vấn đề
bắt đầu trong kế hoạch cho mỗi danh sách nhiệm vụ của dự án trong bảng tài nguyên
Trang 16 Xác định các mốc quan trọng
Mỗi tác vụ hoặc nhóm tác vụ nên được
liên kết với một 1 cột mốc của dự án Một
cột mốc được hoàn thành khi môt hoăc
nhiều kết quả được xem lại để đảm bảo chất lượng và đẻ được chấp nhận
Mỗi tác vụ được lập lịch nên có một bản xác định kết quả,kết quả thường là một bản sản phẩm làm việc(như thiết kế của một module) hoặc một phần của sản phẩm
Trang 17Mối quan hệ giữa phân phối và kiểm soát tiến độ công việc
quả của phân phối,từ đó có những điều
chỉnh thích hợp
được điều chỉnh để từ đó thúc đẩy tiến độ
dự án hoặc tác vụ hoàn thành theo dự
kiến với sai lệnh trong mức độ cho phép
Trang 19Tiến trình A
Trang 20Chú ý trong việc xây dựng quy trình thời gian
trên kinh nghiệm thực tế và dự đoán nên trong quá trình thực hiện có thể phải có những chỉnh sửa cho phù hợp thực tế
>PERT:program evalation and review technoque
(ước lượng và thẩm định kỹ thuật)
critical path
Update progress
http://www.netmba.com/operations/project/
pert/
Trang 24Điều Phối
Và Kiểm soát
Trang 25Điều Phối
Và Kiểm soát
Trang 26E.1.1 Sơ lược về CSDL và
VD: MS Access, SQL server, Oracle…
Trang 27E.1.1.2/Kiến trúc của một hệ quản trị CSDL
(các thay đổi sơ đồ, các truy vấn,các thay đổi dữ liệu)
Bộ xử lý câu hỏi
Bộ quản lý lưu trữ Bộ quản lý giao dịch
Dữ liệu,Siêu dữ liệu
Trang 28E.1.1.2/ Các khả năng của một hệ quản trị CSDL:
* Quản lý dữ liệu tồn tại lâu dài
* Truy nhập các khối lượng dữ liệu lớn hiệu quả
* Có khả năng chia sẻ tài nguyên cho nhiều
người dùng trong cùng một hệ thống
E.1.1.3/ Các ngôn ngữ CSDL:
* DDL (Data Definition Language)
* DML (Data Manipulation Language)
* DCL (Data Control Language)
Trang 29E.1.1.4/ Các đối tượng sử dụng CSDL:
* Người lập trình ứng dụng
* Người phân tích dữ liệu
* Người dùng cuối
Trang 30E.1.1.5/ Phân loại Hệ CSDL (theo kiến trúc): E.1.1.5.1/ Hệ CSDL tập trung.
* Hệ CSDL cá nhân
* Hệ CSDL trung tâm
* Hệ CSDL chủ/khách ( Server/Client)
E.1.1.5.2/ Hệ CSDL phân tán
Trang 31E.1.2 Các chú ý khi xây dựng CSDL
E.1.2.1 An toàn dữ liệu:
Định nghĩa : bảo vệ dữ liệu trong CSDL
chống lại sự thay đổi, truy nhập,phá huỷ bất hợp pháp
+ Quyền đọc dữ liệu
+ Quyền cập nhật dữ liệu
+ Quyền bổ sung dữ liệu
+ Quyền xóa dữ liệu
Trang 32+ Quyền tạo chỉ dẫn: tạo ra các chỉ dẫn đối với các quan hệ trong CSDL.
+ Quyền quản lý tài nguyên.
+ Quyền loại bỏ.
E.1.2.2 Toàn vẹn dữ liệu:
phá huỷ không có căn cứ (khác với không hợp pháp)
+ Toàn vẹn thực thể.
+ Toàn vẹn quy chiếu.
Trang 33 E.1.2.3 Cấu trúc dữ liệu dễ hiểu
Nên xác định tất cả các cấu trúc dữ liệu và thao tác thực hiện trên từng cấu trúc dữ liệu
Việc biểu diễn/khai báo các cấu trúc dữ liệu chỉ nên thực hiện ở những Module sử dụng trực tiếp dữ liệu
Nên thiết lập và sử dụng từ điển dữ liệu khi thiết lập dữ liệu
Trang 34Điều Phối
Và Kiểm soát
Trang 35Lập trình
lạc giữa con người và máy tính Tiến trình lập trình - sự liên lạc thông qua ngôn ngữ lập trình - là một hoạt động con người
Lập trình là bước cốt lõi trong tiến trình kỹ nghệ phần mềm
Trang 36Lập trình Chọn ngôn ngữ
Giải thuật cho
Điều phối và kiểm soát tiến độ
Viết code
Liên kết CSDL
CSDL
Trang 38Môi trường lập trình
Môi trường phát triển tích hợp
IDE ( Integrated Development Environment)
Lập trình web
Visual Studio 6.0 Delphi 5.0
Developer 2000 (Oracle )
Có 2 cách tiếp cận để tạo ra việc lập trình trên Web:
+ làm cho chương trình hiện thực có thể chạy trên môi trường Web Ví dụ : VB-web
+ phát triển một môi trường mới với dự đinh cho nó chạy trong môi trường web Ví dụ: FrontPage
Trang 39Chọn ngôn ngữ
Môi trường
Các ngôn ngữ LT
Bộ xử lý ngôn ngữ
Trang 40Các ngôn ngữ lập trình
Trang 41Ngôn ngữ người dùng cuối Ngôn ngữ hướng vấn đề
Ngôn ngữ script
GPSS
Fortran Cobol Pascal C
RPG APL USP Prolog SmallTalk C++
Java
Ngôn ngữ máy Hợp ngữ
Trang 42Các đặc trưng của ngôn ngữ cấp thấp:
• Cung cấp năng suất phần mềm thấp do sử dụng các kí hiệu chữ để
mô tả chương trình
• Người lập trình yêu cầu phải có kiến thức về phần cứng
• Các chưong trình phải được viết lại khi phần cứng thay đổi
Do đó Chúng chỉ được sử dụng trong các xử lý điều khiển đòi hỏi tốc độ xử lý cao
Trang 43Ngôn ngữ
Lập trình
Ngôn ngữ thủ tục Ngôn ngữ phi thủ tục Ngôn ngữ thế hệ bốn (4GL)
Ngôn ngữ lập trình cấp cao
Fortran Cobol Pascal
APL USP Prolog SmallTalk C++
Java
Các đặc trưng của ngôn ngữ cấp cao:
• Cung cấp sự dễ dàng trong việc mô tả các thủ tục xử lý và thích hợp cho việc
giải quyết vấn đề.
• So với hợp ngữ, nó có cấu trúc gần với ngôn ngữ tự nhiên hơn.
• ít phụ thuộc vào phần cứng đặc biệt.
• Một lệnh có thể chứa nhiều lệnh máy Do đó, số các bước chương trình có thể ngắn hơn
Trang 44Ngôn ngữ
Lập trình
Ngôn ngữ thủ tục Ngôn ngữ phi thủ tục Ngôn ngữ thế hệ bốn (4GL)
Ngôn ngữ lập trình cấp cao
Fortran Cobol Pascal
APL USP Prolog SmallTalk C++
Java
Tuy nhiên ngôn ngữ cấp cao có một số hạn chế sau:
•cần phần mềm để vận hành trực tiếp các chức năng phần cứng, đôi khi dẫn tới giảm hiệu quả xử lý
Trang 45Các đặc trưng của ngôn ngữ thủ tục:
* để mô tả các thuật toán chỉ ra các thủ tục xử lý giải quyết một vấn đề
Trang 46Ngôn ngữ
Lập trình
Ngôn ngữ phi thủ tục Ngôn ngữ lập trình cấp cao
Các đặc trưng của ngôn ngữ phi thủ tục:
• Cho phép chương trình được sinh ra mà không phải mô tả thuật toán.
• Thường có năng suất cao do việc áp dụng các hình mẫu đã định trước vào thủ tục xử
lý, nhưng lại kém linh hoạt trong việc xây dựng chương trình.
• ngôn ngữ dạng kiểu bảng:
•Ngôn ngữ hàm
• Ngôn ngữ logic : ví dụ : Prolog một ngôn ngữ lập trình cho trí tuệ nhân tạo.
• Ngôn ngữ hướng sự vật : SmallTalk, C++, Java thích hợp cho ứng dụng mạng.
Trang 47Các đặc trưng của ngôn ngữ thế hệ bốn (4GL):
•Ưu điểm lớn nhất của ngôn ngữ này là cho phép người không có kinh nghiệm về Chương trình tạo ra chương trình một cách dễ dàng.
• việc xử lý các thao tác được thực hiện bằng các hướng dẫn có tham chiếu.
Trang 48Ngôn ngữ
Đặc trưng ngôn ngữ script:
• là ngôn ngữ do người dùng cuối sử dụng để tự phát triển các hệ thống đã có.
• bản chất hướng biến cố là đặc trưng quan trọng nhất của ngôn ngữ Script.
Trang 49Ngôn ngữ
GPSS FORMAC COGO
Đặc trưng ngôn ngữ :
• là ngôn ngữ thao tác trong các miền đặc biệt.
• cho phép những chương trình cần thiết được phát triển nhanh hơn và chính xác hơn trong những miền có giới hạn đó so với việc dùng các ngôn ngữ vạn năng.
• thông thường, ngôn ngữ này được cung cấp dưới dạng gói phần mềm do đó việc dùng chúng là một ưu thế cho người dùng về độ tin cậy và chi phí phát triển.
• tri thức đặc biệt trong các miền mà ngôn ngữ này đựợc dùng là cần thiết
• không dùng được cho miền bên ngoài miền nó được phát triển.
Trang 50Lập trình Chọn ngôn ngữ
Giải thuật cho
Điều phối và kiểm soát tiến độ
Viết code
Liên kết CSDL
CSDL
Trang 51Chọn ngôn ngữ
Môi trường
Các ngôn ngữ LT
Bộ xử lý ngôn ngữ
Trang 54D.3 Chọn ngôn ngữ lập trình
Đây là bước rất quan trọng vì nó liên quan
đến quá trình kiểm thử,bảo trì và phát triển phần mềm sau này
Dựa vào các yếu tố về ngôn ngữ, bộ xử lý
ngôn ngữ và môi trường lập trình chúng ta sẽ chọn được đúng công cụ lập trình
Trang 55 D.3.2 Việc chọn ngôn ngữ lập trình phụ
thuộc vào :
Môi trường triển khai dự án: Cục bộ hay phân tán
Hệ điều hành: Dos, window, Unix/Linux
ví dụ: Window: C/C++,C#, Net, Java…
Linux : C/C++,GCC (Gnu C Complier)…
Công cụ soạn thảo, trình biên dịch, liên kết,
Trang 56Lập trình Chọn ngôn ngữ
Giải thuật cho
Điều phối và kiểm soát tiến độ
Liên kết CSDL
CSDL
Trang 57Nhiệm vụ
module.
Trang 58E.2.1 Thuật toán
* Các kí hiệu sử dụng
trong lưu đồ thuật
giải
Trang 59 Thuật toán If…then…
else
Trang 60E.2.1 Thuật toán
Một hình thức khác
của lênh If…then…
else
Trang 61 Case…/Switch…
Trang 62E.2.1 Thuật toán
Do … Until…
Trang 63 Vòng lặp
+ while… until
+ for
Trang 64 Ngoài ra còn sử dụng thủ tục ,chương trình con, hàm có sẵn, hàm
do người dùng định
nghĩa…
Trang 65E.2.2 Ví dụ thuật toán
Ví dụ:
Trang 66Ví dụ
Trang 67Ví dụ
Trang 68E.2.3 Chú ý
Cấu trúc thuật toán rõ ràng
Một đầu vào một đầu ra
Trang 69Lập trình Chọn ngôn ngữ
Giải thuật cho Cho từng module
Điều phối và kiểm soát tiến độ
Liên kết CSDL
CSDL
Trang 70D.5 Coding
Là quá trình hiện thực hóa lưu đồ thuật giải bằng một ngôn ngữ lập trình cụ thể
Hiểu rõ môi trường triển khai ứng dụng
Nắm vững ngôn ngữ sử dụng
Hiểu chi tiết về Module được giao
Trang 71Phong cách lập trình
Tính rõ ràng: có khả năng hiểu được chương trình
Biện pháp : khi làm việc tuân thủ quy tắc như: đặt tên biến, thụt lề, chú thích…
Tính hiệu quả: nhằm tối ưu tốc độ thực hiện
Trang 72Các phong cách lập trình
Phong cách lập trình
Trang 73I Lập trình tránh lỗi
1.Các lỗi thường gặp trong lập trình bao gồm:
- Lỗi cấu trúc : Do chưa nghiên cứu phân tích
Trang 75Lập trình phòng thủ
mà các mâu thuẫn hoặc lỗi chưa được
phát hiện có thể tồn tại trong nó
đổi ,nếu phát hiện mâu thuẫn thì việc biến đổi trạng thái phải được rút lại và trạng
thái phải trở về trạng thái đúng đắn trước
đó
Trang 76Lập trình hướng hiệu quả thực hiện
Tính hiệu quả chương trình
Hiệu quả bộ nhớ :
Tối ưu hoá bộ nhớ chiếm dùng của chương trình
Biện pháp : Giảm sự phân trang trong hệ điều hành, sử dụng ngon ngữ lập trình và trình biên dịch hợp lý với êu cầu công việc
Hiệu quả vào ra:
Tối ưu vào ra nhằm tăng tôc độ thực hiên của chương trình
Biện pháp : tối thiểu hoá các yêu cầu vào ra,sử dụng các
Trang 77Tóm lại về quá trình viết code
Tuân theo quy cách lập trình.
Cấu trúc lồng nhau rõ ràng.
Dùng Comment hợp lý.
Dùng tên biến có nghĩa và gợi nhớ.
Tránh Goto, trừ khi ra khỏi lặp và dừng
Tránh dùng Case/Swithch nhiều hoặc lồng nhau.
Mã nguồn một chương trình/Module nên viết trên một trang.
Tránh viết nhiều lệnh trên một dòng.
Trang 78D.6 Chạy các Module
và Debugger để hoàn thiện từng Module.
kết quả xử lý so với yêu cầu đặt ra.
Trang 79Tổng quan về kiểm thử
trong quy trình phần mềm
Trang 82Kiểm thử đơn vị (Unit test)
Được tiến hành tại những giai đoạn sớm nhất trong pha kiểm thử
Trang 83Phương pháp kiểm thử
hành): chú ý chính được dồn vào giao
diện, yếu tố vào ra giữa các module.
hộp trong) chú ý chính được dồn vào cấu trúc bên trong
Trang 84Thiết kế trường hợp kiểm thử
số liệu, dữ liệu kiểm thử.
Trang 85E Tích hợp Hệ thống
Tùy thuộc từng ứng dụng cụ thể ,tích hợp các Module theo từng cấp
C1=(A1,B1)
C2=(A2,B2)
D=(C1,C2,…)
Tiến hành kiểm tra sau mỗi giai đoạn tích hợp
Nếu phát sinh lỗi trong quá trình kiểm tra thì test lại các liên kết giữa các Module
Trang 86Tài liệu hướng dẫn
Hướng dẫn cài đặt CSDL
Hướng dẫn cài đặt phần mềm
Trang 89F Kết thúc pha triển khai
Đáp ứng về giao diện của ứng dụng
Đáp ứng về yêu cầu xử lý của ứng dụng
Khả năng triển khai và nâng cấp của ứng dụng
Bước cuối cùng trong pha triển khai
Tích hợp phần mềm, tài liệu hướng dẫn