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: [email protected] 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