Sunteți pe pagina 1din 58

Software Estimation

By

Ashiqul Islam Akhand Project Manager & Metrics Coordinator, SEPG

Software Developer & Consultant 73-D, New Airport Road, Manipuri Para, Dhaka-1215 Phone: 9110136, 9110169 Fax: 9114747 E-mail: datasoft@datasoft-bd.com URL: www.datasoft-bd.com

Introduction & Overview


A well crafted estimate creates many benefits:
alignment between business objectives and technical estimates more informed business decision making reliable project delivery dates improved communication between management and the project team controlled project costs, and satisfied customers

66% of the Software project taken projects arent delivered on time, on budget or to expected quality

02/24/11

DataSoft Systems Bagladesh Limited

Definition of Estimation
An estimate is a prediction which is equally likely to be above or below the actual value. (Tom Demarco) Provide insight into program risks & status Provide early visibility into program risks and of deviations from program planned cost, schedule and performance goals. Software engineers often misconceive the concept of estimate: as the shortest time in which a project can be completed. as a target. Humphrey suggests that a good method: should allow tracking so the estimation process can be improved. should be usable throughout the software life cycle. should allow data to be used in subsequent projects. should allow you to judge the accuracy of the results.

02/24/11

DataSoft Systems Bagladesh Limited

Measurement in Project Context

02/24/11

DataSoft Systems Bagladesh Limited

Cone of Uncertainty
At the beginning, lots of uncertainty At the end, little In between, we know more and can use that knowledge to better manage projects

02/24/11

DataSoft Systems Bagladesh Limited

Project Estimation Process

02/24/11

DataSoft Systems Bagladesh Limited

Function Point Counting


[Based

on IFPUG CPM V4.2]

02/24/11

DataSoft Systems Bagladesh Limited

Procedure Diagram

02/24/11

DataSoft Systems Bagladesh Limited

FPA for Files

02/24/11

DataSoft Systems Bagladesh Limited

FPA for Transactions

02/24/11

DataSoft Systems Bagladesh Limited

10

Count Unadjusted Data Function Points Data function points represent the functionality provided to the users to meet internal and external data requirements. Data function points are contributed either by
Internal Logical Files (ILFs) OR
User identifiable group of logically related data or control information maintained within the application boundary Primary Intent is to hold data maintained through one or more elementary processes of the application.

External Interface Files (EIFs)


User identifiable group of logically related data or control information maintained outside the application boundary Primary intent is to hold data referenced through one or more elementary processes within the boundary of the application counted.

02/24/11

DataSoft Systems Bagladesh Limited

11

Complexity & Contribution Rules DET Rules


Count a DET for
each unique user recognizable, non-repeated field maintained in or; each unique user recognizable, non-repeated field retrieved from the ILF or EIF through the execution of an elementary process.

When two applications maintain and/or reference the same ILF/EIF, but each maintains /references separate DETs, count only the DETs being used by each application to size the ILF/EIF. Count a DET for each piece of data required by the user to establish a relationship with another ILF or EIF.

RET Rules
Count a RET for each optional or mandatory subgroup of the ILF or EIF. Or If there are no subgroups, count the ILF or EIF as one RET.

02/24/11

DataSoft Systems Bagladesh Limited

12

Count Unadjusted Data Function Points ILF/EIF Unadjusted Function Points for ILF/ EIF determined by tables below
1 TO 19 DETs 1 RET 2 TO 5 RETs 6+ RETs Low Low Average 20 TO 50 DETs Low Average High 51+ DETs Average High High

COMPLEXITY Low Average High

ILF- UFP 7 10 15

EIF-UFP 5 7 10

02/24/11

DataSoft Systems Bagladesh Limited

13

Transaction Function Points


Represent the functionality provided to the users to process data by the application. Transaction function points are contributed either by External Inputs (EIs) or
An elementary process that processes data or control information that comes from outside the application boundary. Primary intent of an EI is to maintain one or more ILFs and/or to alter the behavior of the system .

External Outputs (EOs) or


Elementary process that sends data or control information outside the application boundary. The primary intent of an external output is to present information to a user through processing logic other than, or in addition to, the retrieval of data or control information . processing logic must contain at least one mathematical formula or calculation, create derived data, maintain one or more ILFs or alter the behavior of the system.

External Inquiries (EQs)


Elementary process that sends data or control information outside the application boundary. Primary intent is to present information to a user through the retrieval of data from an ILF of EIF. The processing logic contains no mathematical formulas or calculations, and creates no derived data. No ILF is maintained during the processing, nor is the behavior of the system altered.

02/24/11

DataSoft Systems Bagladesh Limited

14

Counting Unadjusted Transaction Function Points - EI


UFPs contributed by an EI depend on the
Data Element Types (DETs) and File Types Referenced (FTRs)

EI Counting Rules
Data or control information is received from outside the application boundary. At least one ILF is maintained if the data entering the boundary is not control information that alters the behavior of the system. For the identified process, one of the following three statements must apply:
Processing logic is unique from the processing logic performed by other external inputs for the application. The set of data elements identified is different from the sets identified for other external inputs for the application. The ILFs or EIFs referenced are different from the files referenced by other external inputs in the application.

02/24/11

DataSoft Systems Bagladesh Limited

15

FTR / DET Counting Rules


EI - FTR
A file type referenced is
An internal logical file read or maintained by a transactional function or An external interface file read by a transactional function

FTR Counting Rules


Count an FTR for each ILF maintained. Count an FTR for each ILF or EIF read during the processing of the external input. Count only one FTR for each ILF that is both maintained and read.

EI - DET
A data element type is a unique user recognizable, non-repeated field. DET Counting Rules
Count one DET for each user recognizable, non-repeated field that enters or exits the application boundary and is required to complete the external input. Do not count fields that are retrieved or derived by the system and stored on an ILF during the elementary process if the fields did not cross the application boundary. Count one DET for the capability to send a system response message outside the application boundary to indicate an error occurred during processing, confirm that processing is complete or verify that processing should continue Count one DET for the ability to specify an action to be taken even if there are multiple methods for invoking the same logical process.

02/24/11

DataSoft Systems Bagladesh Limited

16

Unadjusted Transaction Function Points - EI


Unadjusted Function Points for EI are determined by tables below

1 TO 4 DETs 1 FTR 2 FTRs 3+ FTRs Low Low Average

5 TO 15 DETs Low Average High

16+ DETs Average High High

COMPLEXITY Low Average High

EI- UFP 3 4 6

02/24/11

DataSoft Systems Bagladesh Limited

17

Example
EIs can be business data, control data and rules based data. Business Data: Customer Name, Address, Phone, and so on and so forth. Control Data: The data elements are those that invoke the transaction or change the behavior of the application. Each check box represents a data element. Additionally, the sort employee list radio buttons represents one data element as well as the time format radio buttons. Control information changes or alters the state (or behavior) of the application. Control information specifies how, what, and when data will be processed.

02/24/11

DataSoft Systems Bagladesh Limited

18

Example. Data Elements:


Unique sets of data elements help distinguish external input from other external input. It is the set of DETs combined that create the elementary process called an EI. The following are examples of DETs.
Data Input Fields Calculated Values that are stored Error Messages Confirmation Messages Recursive fields are only counted as one DET. Action keys (command buttons such as OK, Next, so on and so forth) Multiple Action Keys that perform the same function are counted only as one DET.

02/24/11

DataSoft Systems Bagladesh Limited

19

Typical Vocabulary:
The following words are associated with external input or inputs. While reading textual document or application description look for these type of words, they may indicate an add, change or delete aspect of an external input.
Add Activate Amend (change and delete) Cancel Change Convert (change) Create (add) Delete Deassign Disable Disconnect (change or delete) Enable Edit (change) Insert ( add and change) Maintain (add, change, or delete) Memorize (add) Modify (change) Override (change) Post (add, change and delete) Remove (delete) Reactivate (change) Remit Replace (change) Revise (change and delete) Save (add, change or delete) Store (add) Suspend (change or delete) Submit (add, change or delete) Update (add, change or delete) Voids (change and delete)

02/24/11

DataSoft Systems Bagladesh Limited

20

Do yourself

02/24/11

DataSoft Systems Bagladesh Limited

21

Unadjusted Transaction Function Points EO


EOs are typically available as hard copy outputs or computer files which are taken out of the system (downloaded or sent to another application) UFPs contributed by an EO depend on
Data Element Types (DETs) and File Types Referenced (FTRs)

EO Counting Rules [Shared Rules]


The function sends data or control information external to the application boundary. For the identified process, one of the following three statements must apply:
Processing logic is unique from the processing logic performed by other external outputs or external inquiries for the application. The set of data elements identified is different from the sets identified for other external outputs and external inquiries in the application. The ILFs or EIFs referenced are different from the files referenced by other external outputs and external inquiries in the application.

EO Counting Rules [Specific] All or any three must apply

The processing logic of the elementary process contains at least one mathematical formula or calculation. The processing logic of the elementary process creates derived data. The processing logic of the elementary process maintains at least one ILF. The processing logic of the elementary process alters the behavior of the system.

02/24/11

DataSoft Systems Bagladesh Limited

22

FTR / DET Counting Rules


EO FTR Counting Rules
Count one FTR for each ILF or EIF read during the processing of the elementary process. Count one FTR for each ILF maintained during the processing of the elementary process. Count only one FTR for each ILF that is both maintained and read during elementary process.

EO DET Counting Rules


Count one DET for each user recognizable, non-repeated field that enters the application boundary and is required to specify when, what and/or how the data is to be retrieved or generated by the elementary process. Count one DET for each user recognizable, non-repeated field that exits the boundary. If a DET both enters and exits the boundary, count it only once for the elementary process. Count one DET for the capability to send a system response message outside the application boundary to indicate an error occurred during processing, confirm that processing is complete or verify that processing should continue. Count one DET for the ability to specify an action to be taken even if there are multiple methods for invoking the same logical process. Do not count fields that are retrieved or derived by the system and stored on an ILF during the elementary process if the fields did not cross the application boundary. Do not count literals as DETs. Do not count paging variables or system-generated stamps.

02/24/11

DataSoft Systems Bagladesh Limited

23

Unadjusted Transaction Function Points - EO


Unadjusted Function Points for EO are determined by tables below

1 TO 5 DETs 0-1 FTR 2 to 3 FTRs 4+ FTRs Low Low Average

6 TO 19 DETs Low Average High

20+ DETs Average High High

COMPLEXITY Low Average High

EO- UFP 4 5 7

02/24/11

DataSoft Systems Bagladesh Limited

24

Typical Vocabulary:
The following words are associated with an external outputs. While reading textual documents or application descriptions look for these types of words. They may indicate an external output. Notice these words are very similar to those words used for an External Inquiry (discussed in the next slides).
Browse Display Get On-lines Output Print Query Reports Request Retrieve Seek Select View

02/24/11

DataSoft Systems Bagladesh Limited

25

Example

02/24/11

DataSoft Systems Bagladesh Limited

26

Unadjusted Transaction Function Points - EQ


UFPs contributed by an EQ depend on
Data Element Types (DETs) and File Types Referenced (FTRs)

EQ Counting Rules
The function sends data or control information external to the application boundary. For the identified process, one of the following three statements must apply:
Processing logic is unique from the processing logic performed by other external outputs or external inquiries for the application. The set of data elements identified is different from the sets identified for other external outputs and external inquiries in the application. The ILFs or EIFs referenced are different from the files referenced by other external outputs and external inquiries in the application.

The processing logic of the elementary process retrieves data or control information from an ILF or EIF. The processing logic of the elementary process does not contain a mathematical formula or calculation. The processing logic of the elementary process does not create derived data. The processing logic of the elementary process does not maintain an ILF. The processing logic of the elementary process does not alter the behavior of the system.

02/24/11

DataSoft Systems Bagladesh Limited

27

EQ : FTR / DET Counting Rules


EQ FTR Counting Rules
Count one FTR for each ILF or EIF read during the processing of the elementary process.

EQ DET Counting Rules


DETs are the number of data elements that appear in the External Inquiry Count one DET for each user recognizable, non-repeated field that enters the application boundary and is required to specify when, what and/or how the data is to be retrieved or generated by the elementary process. Count one DET for each user recognizable, non-repeated field that exits the boundary. If a DET both enters and exits the boundary, count it only once for the elementary process. Count one DET for the capability to send a system response message outside the application boundary to indicate an error occurred during processing, confirm that processing is complete or verify that processing should continue. Count one DET for the ability to specify an action to be taken even if there are multiple methods for invoking the same logical process. Do not count fields that are retrieved or derived by the system and stored on an ILF during the elementary process if the fields did not cross the application boundary. Do not count literals as DETs. Do not count paging variables or system-generated stamps.

02/24/11

DataSoft Systems Bagladesh Limited

28

Unadjusted Transaction Function Points - EQ


Unadjusted Function Points for EQ are determined by tables below

1 TO 5 DETs 0-1 FTR 2 to 3 FTRs 4+ FTRs Low Low Average

6 TO 19 DETs Low Average High

19+ DETs Average High High

COMPLEXITY Low Average High

EIQ- UFP
3 4 6

02/24/11

DataSoft Systems Bagladesh Limited

29

Examples:
EQs can contain business data, control data and rules based data. Business Applications: An example of Business data is customer names, addresses, phone number, so on and so forth. An example of Rules Data is a table entry that tells how many days a customer can be late before they are turned over for collection. Drop Down List (a listing of customers by name) would be an example of an EQ. A screen full of customer address information would be an example of an EQ.

02/24/11

DataSoft Systems Bagladesh Limited

30

Typical Vocabulary:
The following words are associated with an external inquiry. While reading textual document or application description look for these type of words. They may indicate an external inquiry. Notice the words are very similar to those related to external outputs.
Browse Display Extract Fetch Find Get Drop Down Lists Look Ups On-lines Output Pick Lists Print Query Scan Seek Select Show View Reports

02/24/11

DataSoft Systems Bagladesh Limited

31

Unadjusted Function Point Count At this stage, we have two numbers


Data UFPC =
+ILF-UFPs +EIF-UFPs

Transaction UFPC =
+ EI-UFPs, + EO-UFPs + EQ-UFPs

02/24/11

DataSoft Systems Bagladesh Limited

32

General System Characteristics


To calibrate the Unadjusted in Function Point Counting 14 General System Characteristics [GSC] which change the UFPC for factors which are not directly application functionality but are related to system architecture Each of the 14 factors are to be scaled on 0-5 point scale to determine the Degree of Influence (DI) for each GSC [Detailed Guidelines provided in Appendix] Maximum value of Total DI is 14 * 5 = 70 Minimum value of Total DI is 14 * 0 = 0 VAF = (Total DI * 0.01) + 0.65 VAF therefore varies between 0.65 and 1.35 Final Data FPC = Final Transaction FPC = Data UFPC * VAF Transaction UFPC * VAF

02/24/11

DataSoft Systems Bagladesh Limited

33

FPA Form - GSC

GSC

DI 0-5

Remarks

1 . D a t a C o m m u n ic a t io n s 2 . D is t r ib u t e d P r o c e s s in g 3.Performance 4 . H e a v i ly U s e d C o n f ig u r a t io n 5 . T r a n s a c t io n R a t e s 6 . O n l in e D a t a E n t r y 7 . E n d U s e r E f f ic ie n c y 8 . O n l in e U p d a t e 9 . C o m p le x P r o c e s s in g 10.Reusability 1 1 . I n s t a l la t io n E a s e 1 2 . O p e r a t io n a l E a s e 1 3 . M u l t ip le S i t e s 14.FacilitateChange

T o t a l D e g r e e o f I n f lu e n c e ( T D I ) VAF=0.65+(TDI*0.01)

02/24/11

DataSoft Systems Bagladesh Limited

34

Quick Function Point Counting

Motivation, Basis & Procedure Motivation


Lack of time Lack of fine tuned information Need a estimate for budgetary purposes Need to to take a go-ahead/ drop project decision

Basis
Difference in function point count between high complexity functions and low complexity functions is not high - can therefore use average Can use judgement for overall complexity of system for VAF

Procedure
Identify and count ILFs, EIFs, EIs, EOs and EQs. Do not count RETs, DETs and FTRs Classify the functions as Average

02/24/11

DataSoft Systems Bagladesh Limited

36

Quick FPA Calculation Sheet


Function Type Data Function type Internal Logical Files External Logical Files Total Data UFP: *10 = *7 = # of Functions Weight UFP

Transaction Function Type External Inputs External Outputs External Inquiries Total Transaction UFP: *4 = *5 = *4 =

Value Adjustment Factor:

VAF =

(0.65-> 1.35 )

Data FPC (adjusted) : Transaction FPC (adjusted):

Data UFP * VAF = Trans UFP * VAF =

02/24/11

DataSoft Systems Bagladesh Limited

37

Quick FPA Accuracy Issues With all information available,


Quick FPA typically gives a result which is +/- :0% of IFPUG 4.1 Detailed FP count Quick FPA is ineffective if used by person who do not have expertise in Detailed FPA If Quick FPA is used, at least two persons should
Independently calculate Match results and Resolve differences

02/24/11

DataSoft Systems Bagladesh Limited

38

Constructive Cost Model 2.0


Objectives:
a. Understand the structure for the CoCoMo 2.0 b. Elaborate on the cost drivers and the impact on the effort / schedule c. Understand the application of CoCoMo 2.0

COCOMO 2.0 - The Basic Equation Equation 1 PM nominal = A * (Size)B Where,


PM nominal = Person months effort of the project A = Constant representing the nominal productivity derived from historical project data (currently A = 2.94 in COCOMOII.2000) B = accounts for the relative economies/ diseconomies of scale

is an exponent for the diseconomy of scale dependent on five additive scale drivers according to b = .91 + .01* SFi, where SFi is a weighting factor for ith scale driver
Size = Size of the project

02/24/11

DataSoft Systems Bagladesh Limited

40

Size & Nominal Productivity Size may be calculated in terms of


Lines of code IFPUG function points Full Function Points Use Case Points Any other method

A - Nominal productivity will depend on


the size measure selected data from past projects

02/24/11

DataSoft Systems Bagladesh Limited

41

Economies and Diseconomies of Scale Usually as the project size increases the effort increases at a much faster rate, i.e.,the productivity decreases with size In some teams the increase in size does not reduce the productivity The drop in productivity depends on following Scale Drivers
Precedentness (PREC)
Degree to which system is new and past experience applies

Development Flexibility (FLEX)


Need to conform with specified requirements

Architecture/ Risk Resolution (RESL)


Degree of design thoroughness and risk elimination

Team Cohesion (TEAM)


Need to synchronize stakeholders and minimize conflict

Process Maturity (PMAT)


SEI CMMI process maturity rating

On each factor, we need to score on a 0-5 scale. 0 - the factor will not hinder productivity. 5 - the factor will severely hinder productivity 02/24/11 DataSoft Systems Bagladesh Limited 42

Scaling Factors
PREC : Precedentness. Sub-factors to be considered are
Organization's understanding of the product objectives Experience in working with related software systems Concurrent development of associated hardware Need for innovative algorithms If PREC is Extra high score is 0; If PREC is Very low score is 5

FLEX : Development Flexibility. Sub-factors to be considered are


Need for software conformance with pre-established requirements Need for for conformance with external interface specifications Premium on early completion If FLEX is Extra high score is 0; If FLEX is Very low score is 5

RESL : Architectural/ Risk Resolution. Sub-factors to be considered are


Risk management identifies critical items, and establishes milestones to resolve them Schedules, budgets are compatible with risk management Considerable time given to establish product architecture Considerable architectural expertise available to project Level of uncertainty in architecture Number & criticality of risk factors If RESL is Extra high score is 0; If RESL is Very low score is 5

02/24/11

DataSoft Systems Bagladesh Limited

43

Scaling Factors
TEAM : Team Cohesion. Sub-factors to be considered are
Consistency of stakeholder objectives and culture Ability to accommodate each others' objectives Experience in operating as a team Team building with a shared vision If TEAM is Extra high score is 0; If TEAM is Very low score is 5

PMAT : Process Maturity. Sub-factors to be considered are


SEI / CMM Level If PMAT is Extra high(CMM Level 5) score is 0 If PMAT is Very low (CMM Level 1) score is 5

02/24/11

DataSoft Systems Bagladesh Limited

44

Composite Scaling Factor B


The composite scaling factor B in Equation 1 is calculated as follows:
B = 1.01 + 0.01 ( PREC + FLEX + RESL + TEAM + PMAT) Best value of B is 1.01 i.e., productivity remains almost constant with size increase Worst value of B is 1.26 i.e., productivity decreases at a fast rate as size increases

02/24/11

DataSoft Systems Bagladesh Limited

45

Adjusting for Cost Drivers


Equation 2 PM adjusted = PM nominal * (CDM), Where:
PMnominal = Person months effort of the project based on Equation No. 1 PMadjusted = Person months effort adjusted for cost drivers CDM = Cost Driver Multiplier based multiplication of 18 factors = M1 * M2 * M3 *.............................* M18

02/24/11

DataSoft Systems Bagladesh Limited

46

Cost Drivers
PRODUCT FACTORS
RELY DATA CPLX RUSE DOCU RequiredSoftwareReliability DataBaseSize SoftwareProductComplexity Required Reusability DocumentationMatchtoLife-cycleNeeds

PLATFORM FACTORS
T IM E STOR PVOL E x e c u t i o n T im e C o n s t r a i n t MainStorageConstraint PlatformVolatility

PERSONNEL FACTORS
ACAP PCAP PCON AEXP PEXP LTEX Analyst Capability ProgrammerCapability PersonnelContinuity ApplicationExperience PlatformExperience LanguageandToolExperience

PROJECT FACTORS
TOOL SITE/Collocation SITE/Communication UseofSoftwareTools Multi-site/Single-site CommunicationTechnologyUsed

02/24/11

DataSoft Systems Bagladesh Limited

47

Example Cost Driver - Required Software Reliability (RELY)

Measures the extent to which the software must perform its intended function over a period of time. Ask: what is the effect of a software failure?
Very Low RELY Low Nominal moderate, easily recoverable losses High high financial loss Very High risk to human life Extra High slight low, easily inconvenience recoverable losses

02/24/11

DataSoft Systems Bagladesh Limited

48

Cost Driver - Multiplication Factors


VeryLow RELY DATA CPLX RUSE DOCU 0.90 0.95 0.70 0.75 Low 0.88 0.94 0.85 Nominal 1 . 00 1.00 1.00 1.00 1.00 High 1.15 1.08 1.15 1.10 1.05 VeryHigh 1.40 1.16 1.30 1.30 1.10 1.65 1.50 ExtraHigh

T IM E STOR PVOL 0.86

1.00 1.00 1.00

1.11 1.06 1.16

1.30 1.21 1.30

1.66 1.56

ACAP PCAP PCON AEXP PEXP LTEX

1.46 1.42 1.30 1.29 1.21 1.14

1.19 1.17 1.21 1.13 1.10 1.07

1.00 1.00 1.00 1.00 1.00 1.00

0.86 0.86 0.89 0.91 0.90 0.95

0.71 0.70 0.70 0.82

TOOL SITE/Collocation SITE/Communication

1.24 1.18 1.18

1.10 1.10 1.10

1.00 1.00 1.00

0.91 0.95 0.95

0.83 0.90 0.90

0.73 0.87 0.87

02/24/11

DataSoft Systems Bagladesh Limited

49

Calculating Schedule Equation 3


Calculates Development time in calendar months from the end of the requirements stage to the completion of acceptance activity and certification TDEV nominal = [ 3.0 * (PMAdjusted )(0.33 + 0.2* (B-1.01)], where: TDEVnominal = Calendar time in months without constraint PM = Person months effort (after adjustment) B = Scaling factor in Equation 1

02/24/11

DataSoft Systems Bagladesh Limited

50

Considering Schedule Constraint


The schedule may be dictated externally; and may be different from the TDEV calculated above
Required Development Schedule (SCED) = Expected duration / Nominal duration Recomputed PM (schedule adjusted) 1.23 * (PM) if SCED = 75% 1.08 * (PM) if SCED = 85% 1 * (PM) if SCED = 100% 1.04 * (PM) if SCED = 130% 1.10 * (PM) if SCED = 160%

02/24/11

DataSoft Systems Bagladesh Limited

51

Sample Calculation -Nominal Effort

02/24/11

DataSoft Systems Bagladesh Limited

52

Sample Calculation - Adjusting for Cost Drivers

02/24/11

DataSoft Systems Bagladesh Limited

53

Sample Calculation - Adjusting for Imposed Schedule

02/24/11

DataSoft Systems Bagladesh Limited

54

Waterfall Phase Distribution

Phase Plans & rqts Product Design Programming 17 58

Effort % 7

Schedule % 20 26 48 26 12 100 12.5

Integration & Test25 Transition COCOMO Total 100 Project Total


02/24/11

119

125
55

DataSoft Systems Bagladesh Limited

Hands on Experience

02/24/11

DataSoft Systems Bagladesh Limited

56

Q&A

02/24/11

DataSoft Systems Bagladesh Limited

57

THANKS

02/24/11

DataSoft Systems Bagladesh Limited

58

S-ar putea să vă placă și