320 likes | 592 Views
ƯỚC LƯỢNG DỰ ÁN. GVHD : Ngô Huy Biên Thực hiện : Nhóm 18. Phương pháp Funtion Point Analaysis (FPA). FPA là một phương pháp được ISO chấp nhận , dùng để xác định kích thước về mặt chức năng (functional size) của một hệ thống thông tin.
E N D
ƯỚC LƯỢNG DỰ ÁN GVHD : NgôHuyBiên Thựchiện : Nhóm 18
PhươngphápFuntion Point Analaysis (FPA) • FPA làmộtphươngphápđượcISOchấpnhận, dùngđểxácđịnhkíchthướcvềmặtchứcnăng (functional size) củamộthệthốngthông tin. • Functional size phảnánhsốlượngchứcnăngliênquantớivàđượcchấpnhậnbởingườidùng. • Đơnvịdùngđểđolường , biểudiễnđộlớncủahệthốngthông tin trongphươngpháp FPA đượcgọilà function points (FPs).
Qui trìnhướclượngvớiphươngphápFuntion Point Analaysis (FPA) • B1 : Xácđịnhkiểuđolườngchodựán . • B2 : Xácđịnhđườngbiên (boundary) củadựán . • B3 : Xácđịnhsốlượng Function Points thô (Unadjusted Function Points) • B4 : Xácđịnhhệsốcânđối (Value Adjusted Factors). • B5 : Xácđịnhsốlượng Function Points cânđối
1.Xác địnhkiểuđolườngchodựán • Xácđịnhsốlượng FPs củamộtdựánhoàntoànmới. • Xácđịnhsốlượng FPs củaviệcnângcấp 1 dựán. • Xácđịnhsốlượng FPs củamộtdựánhoànthành.
2 .Xácđịnhđườngbiên(boundary) củadựán • Chínhlàxácđịnhứngdụngmàbạnđangxâydựnglàứngdụngđộclập (standalone) hay chỉlàmộtphầntrongmộtgói (suite) ứngdụng. Nghĩalànguồncungcấpdữliệuđểứngdụngcủabạnhoạtđộnglà “nguồntựcungtựcấp” hay làtừmộtứngdụngnàođó. • Việcxácđịnhđườngbiêncủaứngdụnglàrấtquantrọng, nóảnhhưởngtrựctiếplênđộphứctạpcủaứngdụng, bởivìviệcpháttriểnmộtứngdụng standalone baogiờcũngđơngiảnhơncácứngdụngtrongcác “gói” ứngdụng .
3 .Xácđịnhsốlượng Function Points thô Baogồm : • Xácđịnhcácchứcnăngdữliệu (Data Function). • Xácđịnhcácchứcnăngxửlý (Transactional Function). • Xácđịnhđộphứctạp ILF/EIF. • Xácđịnhđộphứctạpcủa EIs/ EOs/ Eqs .
Xácđịnhcácchứcnăngdữliệu(Data Functions). Data Function thểhiệnkhíacạnhdữliệutrongcácchứcnăngcungcấpchokháchhàng. Nóđặctrưngbởihaiyếutố ILF (Internal Logical File) và EIF (External Interface File). Việcxácđịnh ILF hay EIF cầnđượcthựchiệntrướckhitiếnhànhchuẩnhóa (normalize) dữliệu.
Xácđịnhcácchứcnăngdữliệu(Data Functions). • Một Internal Logical File(ILF) làmộtnhómcácdữliệuđượclưutrữvàbảotrìtrongphạm vi hệthống (bêntrong boundary). Thôngthườngnólàmộtbảng (table) trongcơsởdữliệucủaứngdụng. • Một External Interface File (EIF) cũnglàmộtnhómdữliệunhưngđượclưutrữvàbảotrìbởimộtứngdụngkhác (bênngoài boundary) , vàmột EIF nàycóthểlàmột ILF củamộtứngdụngkhác. Thôngthường EIF đượccungcấpthông qua các services. Chẳnghạnnhưcác services chứngkhoán, bảngngoạitệ, thờitiết…
Xácđịnhcácchứcnăngxửlý.(Transactional Function) Transaction Function thểhiệnkhíacạnhxửlýcủaứngdụngtrongcácchứcnăngcungcấpchokháchhàng. Nóđặctrưngbởibayếutố EI (External Inputs), EO (External Outputs), External Inquiries (EQ).
Xácđịnhcácchứcnăngxửlý.(Transactional Function) • Một External Input (EI) làmộttiếntrìnhcănbản (element process) trongđódữliệuđượctruyềntừbênngoàivàobêntrongcủa boundary. Thôngthường EI làcácthaotácthêm, xóa, cậpnhậpdữliệutrongcơsởdữliệu • Một External Output (EO)làmộttiếntrìnhcănbản (element process) trongđódữliệuphátsinh (derived data) đượctruyềntừbêntrongrabênngoài boundary. Dữliệuphátsinhđóthườnglàcácdữliệuđượckếthợpvớinhaubằngcáccôngthứctínhtoánnhư SUM, AVERAGE… vàcácdữliệuphátsinhnàykhôngxuấthiệntrongcác ILF hay IEF. Thôngthườngcác EO làbảngbáocáo (reports), cácthôngbáo hay dữliệugửitớicácứngdụngkhác. • MộtExternal Inquirie (EQ)làmộttiếntrìnhcănbản (element process) cóhaichiềunhậpdữliệu (input) vàxuấtdữliệu (output) nhằmtruyxuấtdữliệutừmột hay nhiều ILF/EIF. Trongđódữliệunhập (input) khônglàmthayđổidữliệucủa ILF/EIF vàdữliệuxuấtkhôngchứacácdòngdữliệuphátsinh (derived data). Thôngthường, EQ làcácthaotáctìmkiếm, truyvấndữliệutừcác ILF/EIF.
Xácđịnhđộphứctạp ILF/EIF • Kiểuthànhphầndữliệu(DETs): nhữngtrườnghoặcthuộctínhduynhất, cóthểđượcnhậnbiếtbởingườidùngvàkhônglặplại, baogồmthuộctínhkhóangoại (foreign key) màthâmnhậpvàoranhgiớicủahệthống con hoặcứngdụng (trường). • Kiểuthànhphần record(RETs): nhữngnhóm con logic dựatrênquanđiểmcủangườidùngvềdữliệu (0 RET = 1 RET)
Xácđịnhđộphứctạpcủa EIs/ EOs/ EQs • Kiểuthànhphầndữliệu(DETs): nhữngthànhphầndữliệucóthểđượcnhậndạngbởingườidùngmàđượcduytrìnhư ILFs bởi EIs, xuấthiệntrong EOs, EQs (trườngdữliệu, nút, tìmkiếm). • Kiểu file thamkhảo(FTRs): tấtcả ILFs và EIFs đượcthamkhảohoặcduytrìtrongsuốtquátrìnhxửlýcủa EIs/EOs/EQs (bảng, flat file)
3 .Xácđịnhsốlượng Function Points thô Cuốicùngtatínhđược UFP dựavàobảngsau : (UPFs) = tổngcủa EI FP, EO FP, EQ FP, ILF
4.Xác địnhhệsốcânđối(Value Adjusted Factors). Đặctrưngcủahệthốngtổngquát. • Value Adjusted Factors(VAF) = 0.65 + 0.01 *Sum(F1,F14)
5. Xácđịnhsốlượng Function Points cânđối(Adjusted Function Point) Adjusted Function Point (AFP) = UFPs * VAF
Kếtquảướclượng: • Albret – Gaffney : effort = 13.39 + 0.0545*FP • Kemerer: effort = 60.62 + 7.728*(10^-8)*FP^3 • Masson – Barret – Meltichamp: effort = 585.7 + 15.12*FP • Benchmart: effort = FP / tỉlệphânphối. • Tỉlệphânphối – dựavào 600 dựángầnđâynhất. • COCOMO II – môhìnhthiếtkếtrướcđó. • Biếnđổi FPs thành KLOC sauđódùng • Effort = 2.45*KLOC*AEF • COCOMO II – Môhìnhkiếntrúc Post. • Biếnđổi FPs thành KLOC sauđódùng • Effort = 2.55*KLOC^B*EAF.
Nhữngkhuyếtđiểmcủa FPA • FPA khôngphụthuộcvàongônngữsửdụng, nềnpháttriển. • FPA cóthểdượcthựcthi tai phầncuốicủamỗigiaiđoạncủadựán. • Tiêuchuẩn ISO. • Giaiđoạntậptrungnhiềunhânlực. • Đòihỏi training vàkinhnghiệmđểthànhtạo. • Tỉtrọngphứctạpvềchứcnăngvàmứcđộảnhhưởngđượcxácđịnhbởithửnghiệmvàtranhluận.
Phươngpháp Use-case points • Tínhtoánvàphânloạicác use case • Tínhtoánvàphânloạicácactor • Tácđộngcủayếutốkỹthuật • Tínhusecase points
Tínhtoánvàphânloạicác use case • Sựphứctạptrongtươngtácvídụnhưsựchuyểntáclàmộtyếutố. Nhữngkịchbảnkháccũngđượcchú ý. Sựchuyểntáclàcáchoạtđộngđượcthựchiệnmộtcáchđầyđủhoặckhôngđầyđủ. Sốlầnchuyểntácđượctínhtoánbằngviệctínhcácbướccủatrườnghợpsửdụng. • Sựphânloạicủacáctrườnghợpsửdụngnhưsau: • Trườnghợpđơngiản – baogồmtốiđa 3 chuyểntác • Trườnghợpđộkhó ở mứctrungbình: tốiđa 7 chuyểntác. • Trườnghợpsưdụngphứctạp: từ 7 chuyểntáctrởlên.
Tínhtoánvàphânloạicác use case(tt) • Trọnglượngđượcgánchocáctrườnghợpsửdụngtrongcácphươngpháp Use – Case Points • Cuốicùng, Unadjusted use-case weightphảiđượctínhtoánbởitổngcộngcácuse- case đượcnhânlênbởicáchệsốthíchhợp
Tínhtoánvàphânloạicác actor • Các actor đượcphântheomứcđộđơngiản, trungbình, đếnphứctạp • Những actor đơngiảnđạidiệnhệthốngngoại vi, hệthốngnàyliênlạcvớihệthốngcủachúng ta thông qua giaodiện, thườnglàApi – Giaodiệnứngdụngchươngtrình. • Những actor trungbìnhlàhệthốngngoại vi, thôngthườngtừ TCP/IP, HTTP hoặctươngtự,… cơsởdữliệucũngđượcbaogồmtrongloạinày. • Những actor phứctạplàngườisửdụngcuốicùngliênlạcvớihệthốngthông qua giaodiện
Tínhtoánvàphânloạicácactor(tt) • Nhữngtrọnglượngđượcgánchocác actor trongphươngpháp • Cuốicùng, Unadjusted actor weightphảiđượctínhtoánbởitổngcộngcác actor đượcnhânlênbởicáchệsốthíchhợp
Tính Use case points • Adjusted Use Case Point AUCPs = UUCP * TCP *ECP • UUCP = UUCW + UUCA • Kếtquả (sốngười/ giờ) = AUCPs*PF • Trongđónhântốnăngsuất (PF)làtỉlệcủasố man-hours trêntừng use case dựavàonhữngdựántrướcđó. Nếukhôngcódữliệuquákhứ, hình 15-30 đượcđềnghịbởicácchuyêngia. Giátrịchuẩnlà20