Professional Documents
Culture Documents
Version: X.Y
Document Id: project id (sn-yy-pt) - sc-028
<Month Year>
Software Design Description for <Project> 2
No part of this publication may be reproduced in any form, in an electronic retrieval system or
otherwise, without the prior written permission of the publisher.
Note:
Make sure this is the latest version while using this template
User is strongly advised to read the SDD Recommended Practice before using this
document
TABLE OF CONTENTS
EXECUTIVE SUMMARY........................................................................................................................................ 7
1 INTRODUCTION.......................................................................................................................................... 8
1.1 PURPOSE....................................................................................................................................................... 8
1.2 SCOPE...........................................................................................................................................................8
1.3 DEFINITIONS AND ACRONYMS............................................................................................................................8
1.4 REFERENCE MATERIAL......................................................................................................................................8
2 SYSTEM OVERVIEW..................................................................................................................................... 9
3 SYSTEM ARCHITECTURE............................................................................................................................ 10
4 DECOMPOSITION DESCRIPTION................................................................................................................ 11
5 DEPENDENCY DESCRIPTION...................................................................................................................... 13
6 INTERFACE DESCRIPTION.......................................................................................................................... 14
7 DETAILED DESIGN..................................................................................................................................... 15
8 DESIGN SECURITY..................................................................................................................................... 17
APPENDICES...................................................................................................................................................... 17
List of Tables
List of Figures
Executive Summary
[Write a summary of the entire document – not more than two paragraphs.]
1 Introduction
1.1 Purpose
The design description defined in this document serves multiple purposes:
To describe the functional structure, data and algorithms to be implemented.
To identify required system resources.
To be used to assess the impact of requirement changes.
To assist in producing test cases.
To be used to verify compliance with requirements.
To aid in maintenance activities.
1.2 Scope
This Software Design Description (SDD) describes the detailed structure of the components of
the Anti-Money Laundering and Combating the Financing of Terrorism System / AMLCFT/ and
the precise implementation details required to satisfy the requirements as specified in the
Requirement Analysis document (RAD). It is assumed that the reader has read the RAD, since
this document also defines the implementation details of the desired behavior given the
requirements within it. This document will build heavily on the SDD and so knowledge of the
general system architecture is recommended prior to commencing this document.
2 System Overview
Financial Intelligence Center (FIC)is governmental organization established in 2002 E.C. as per Council
of Ministers Regulation No.171/2009 to fight against Money laundering and Terrorist Financing activities
that could be carried out within the country. FIC collects report from different source and performs in-
depth and complex analysis on financial transactions conducted within the country. Currently, these
financial transactions are being collected from different Banks (private and governmental banks) as
primary source of data and it could expand its information source and will collect data from other
reporting entities like Insurance companies, NGO’s, Real state owners, Attorney’s, Brokers, etc. In
addition to this, FIC might communicate with other governmental organizations and similar foreign
countries’ organizations for information exchange.
After analyzing reports collected from reporting entities and performing different investigation, FIC
might create court case if law violation detected and passes it to court for accusation; or communicate
other legal bodies for further investigations if it found that an individual or entity is participating in
money laundering or terrorist financing activities.
Currently FIC is functioning through its Head Office in Addis Ababa and has not established branches
yet.
The following diagram shows the organizational structure of FIC and the directorate for which this
proposal is prepared is indicated in bold.
The current organizational structure of the IT department is not sufficient to accommodate the proposed
solution. So INSA strongly believe that a well-designed and equipped structure is required to run the
proposed solution more effectively.
3 System Architecture
3.1 Architectural Design
To show the overall PRMS architecture, the software design is organized in to layered system
Architecture. The following layers are identified in the software architecture. These are:
Presentation tier - This tier, which is built with HTML5, cascading style sheets (CSS) and
JavaScript, is deployed to a computing device through a web browser or a web-based
application. The presentation tier communicates with the other tiers through application program
interface (API) calls.
Application tier - The application tier, which may also be referred to as the logic tier, is written
in a programming language .NET and C# and contains the business logic that supports the
application’s core functions. The underlying application tier can either be hosted on distributed
servers in the cloud or on a dedicated in-house server, depending on how much processing power
the application requires.
Data tier - The data tier consists of a database and a program for managing read and write access
to a database. This tier may also be referred to as the storage tier and can be hosted on-premises
or in the cloud. Microsoft SQL Server is the database system we used for managing read/write
access.
1. It gives you the ability to update the technology stack of one tier, without impacting other
areas of the application.
2. It allows for different development teams to each work on their own areas of expertise.
3. You are able to scale the application up and out. A separate back-end tier, for example,
allows you to deploy to a variety of databases instead of being locked into one particular
technology. It also allows you to scale up by adding multiple web servers.
4. It adds reliability and more independence of the underlying servers or services.
5. It provides an ease of maintenance of the code base, managing presentation code and
business logic separately, so that a change to business logic, for example, does not impact
the presentation layer.
4 Decomposition Description
As Described in the above section there are three subsystems in AMLCFT. These subsystems are
STR, CTR and CBTR Collection portal, Analysis and Visualization which are decomposed
according to their functionality they contribute to the whole system.
Use Case Name Use Case Description Responsible Class Responsible Method/s
Maintain STR, To maintain STR|CTR|CBTR ReportUI submitReport
CTR and CBTR Report into the system by filling
ReportBLogic submitTransaction
predesigned form (online) Report submitAccount
Transaction submitBeneficiary
Account submitInvolver
Beneficiary submitAddress
Upload STR| To maintain STR|CTR|CBTR ReportUI submitReport
CTR|CBTR Report into the system using file ReportBLogic submitTransaction
upload method Report submitAccount
Transaction submitBeneficiary
Account submitInvolver
Beneficiary submitAddress
Maintain User To maintain their Representatives UserUI saveUser
Account information into the system (online) UserBLogic saveRole
and To create Encoder Account and User saveRepresentative
Roles Role updateRepresentative
viewRepresentativ
Maintain To maintain New Reporting BranchUI saveBranch
Reporting Entities, branches BranchBLogic updateBranch
Entities, Branch deleteBranch
Branches viewBranch
DataAccess
-connectio nString:object 1
-connectio n:object 1 1
-command:object getdata * 1
-reader:object 1
-dataAdapter:object
Representative
-flag:object
1
+DBC onnectionS tring():bool -representativeId:int
+GetData():void 1 -idCardNumber:string
1 1
1 -firstName:string
-middleName:st ring
1
GetData -lastName:string
-oth erName:string
* 1 +Insert():void
getdata
+Update():void
Branch +GetData():object
1 1
1 -branchId:int
-branchName:string
has 1 send
+Insert():void
+Update():void getdata
* 1
+GetData():object
* 1
Report
getdata
-ReportId:byte
1 1 -reportType:string
1 -reportDate:date
has reportS tatus:string
1 1 ReportingEntity *
reason:string
-reportingEntityId:byte +Insert():void
Adress +Update():void
1 -reportingEntityName:string
-businessType:string +Delete():void
AdreeId:byte 1
-registrationNumber:string +GetData():object
-country:string
-state:string +Insert():void 1 1
-subcity/zone:string +Update():void
-woreda:string +GetData():object
has
1 1 -town:string
-kebele:st ring 1
-houseNo:string has
1
-postalAddres:string
-businessM obileNo:string
-businessCon tactNo:string
-businessFaxNo:string
-residentialContactNo:string 1 1
-emailAddress:string
+Insert():void Transaction
+Update():void
Account
+GetData():object -TransactionId:byte
-AccountId:byte -transactionDate:datetime
1 1 -transactionCurrency:string
-accountNumber:string 1 *
-firstName:string -fundAmountInBirr:string
-middleName:string 1 -transactionType:string 1
* 1
-lastName:string as soci ationType:string
has
1 -accountType:string 1 remark:st ring
-dateOpened:daate +Insert():void
-dateClosed:date +Update():void
dateOfBalance:date +GetData():object
+Insert():void
+Update():void
+GetData():object
has 1 *
* 1
ownby
ownby
Business
1 *
Busi nessId:byte
-businessName:string
1
Person has -registrationNumber:string
1 -taxIdentificationNo:string
PersonId:byte -issui ngCountry:string
-firstName:string +Insert():void
middleName:string +Update():void
-lastName:string +GetData():object
-oth erName:string
1
-rin:string 1
-oin:string
* -birthDate:date 1
-sec:string
-passportNo:string
-countryResidence:string
-contryOrigin:string
occupationOfPerson:string
+Insert():void
+Update():void
+GetData():object
4.1.2 Analysis
Use Case Name Use Case Description Responsible Class Responsible Method/s
Assign STR To manage and Grantee a STR ReportUI assignReport
Report To team Reports to Specific Team Leader ReportBLogic sendRemark
Leader According to Crime Type Report updateStatus
Analysis
Report Search
Data Access
ReportId: int SearchWord:string
Connectionstring: Object M1 M2 *
1 * ReportType: string 1 ParameterSearch:string
Connection : Object Get data TotalFillSearch:int
1 ReportDate:DateTime 1
Command: Object 1 1 * TotalFillFound:int
Status:String
1 Reader : Object -Display():string
StatusReason:
DataAdapter: Object -SortData():void
Flag: bool *
Generate() :void -BindData():void
-DBConnection string (): bool 1
Get data(): void Uses 1 1
* 1
Get data 1 1 Get Data
! * 1 1
Get data
1 1
Link TimeLine
Proximity
LInkId : int
* startingTime :Dateatime
* LinkType: string SearchQuery:string
EndingTime: DateTime 1
LinkSource: string 1 StartDatetime:DateTime
1 DevisionScale:int EndDateTime:DateTime
LinkWeight: double *
DivisionType: string DocumentRelevance:double
LinkLevel: byte
Destination: string -InitializeProximity():void
GenerateLink(): DrowTimeLine(): -CalculateProximity():void
4.1.3 Visualization
Visualization subsystem is responsible for the process of representing Intelligence or
Knowledge or analysis output in different visualization techniques
Time series View: - comprises methods for analyzing time series Accounts in
order to extract meaningful statistics and other characteristics of the Account. Time
series forecasting is the use of a model to predict future values based on previously
observed values.
Search/ Queries and matching: - The queries and matching component allows
users to enter requests for matches on a wide variety of criteria such as name,
address, country, account number, identification document number or type, etc.
There are a number of search options. Some are specific to the preferred search
criteria and full details or parts thereof can be entered. There is also a quick finder
option which essentially allows the user to Google© the entire database. After the
query is submitted the system returns a list of all entities matching the requested
criteria and links them, where links exist.
Report: - This component allows statistical and general reports to be automatically
generated or ad hoc statistics to be obtained from the system to prepare reports on
all activities carried out within the System. Many different types of reports can be
produced.
Use Case Name Use Case Description Responsible Class Responsible Method/s
Generate Report To generate different kinds of report ReportUI generateReport
about Reporting entities, accounts , ReportBLogic
accountholder and STR|CTR|CBTR Report
reports
Search To search Report information by ReportUI searchReport
giving different parameters (E.g. ReportBLogic
Account Owner name, Account Report
Visualization
Report
Data Access
ReportId: int
Connectionstring: Object
ReportType: string
Connection : Object 1 * ReportDate:DateTime 1
Command: Object Get data Status:String
Reader : Object 1 1 *
StatusReason:
DataAdapter: Object
Flag: bool
Generate() :void
-DBConnection string (): bool
Get data(): void
* 1 * 1
! *
1 1
1 *
Link
TimeLine
LInkId : int Search
LinkType: string
LinkSource: string startingTime :Dateatime SearchWord:string
LinkWeight: double EndingTime: DateTime ParameterSearch:string
LinkLevel: byte DevisionScale:int TotalFillSearch:int
Destination: string DivisionType: string TotalFillFound:int
-Display():string
DrowTimeLine():
GenerateLink():
Figure 5: The class diagram of Visualization sub-system
5 Dependency Description
AMLCFT has ten entities these are: Reporting entity, Reporting entity branch, reporting entity
representative, Report Information, Transaction, Account, Beneficiary, Business, Person, and
Address. All these entities are related with each other’s. Report information is related with
Reporting entity, Reporting entity branch, reporting entity representative, Transaction
information is related with Report information, Account information is related with Transaction
information, Beneficiary information is related with Transaction information and address
information, Business information is related with Transaction information and Address
Information
6 Interface Description
7 Detailed Design
<The detailed design section contains the internal details of each design entity. This description
contains the details needed by programmers prior to implementation. The detailed design
description can also be used to aid in producing unit test plans.
Describe in detail the attributes and methods needed by each class (the
second and third "compartments" of the representation for each class in a class
diagram.)
In describing the detail class design, show or identify also their corresponding
packages and the package’s corresponding sub system.
For each method you must include the following information where
applicable:
Method Name
Parameters, each documented with its intended use
Return Value, suitably documented
Informal description of what the procedure does
Data structure and tables it accesses
Pre-conditions: Assumptions the method can make about the state of
the global data structures and database when it starts
Validity Checks, Errors, and other Anomalous Situations: Validity
checks the method must make about the state of the global data
structures, the database, and its parameters, including the actions
that must be taken when such a check fails.
Post-conditions: The changes the method is supposed to make to the
global data structures and database.
Called by: The methods or events that call it
Calls: The methods it calls and any events it causes.
One general note: Make sure that you provide references back to your
Requirements specification document wherever possible.>
For each global data structure and database you should include the following information where
applicable:
Identify specific data elements and logical data groupings that are stored and processed
by the design entities.
Outline data dependencies, relationships, and integrity rules.
Here any detail data design that is not mentioned under dependency description section and
crucial to the implementer should be specified.>
8 Design Security
APPENDICES
This section is optional.
Appendices may be included, either directly or by reference, to provide supporting details that
could aid in the understanding of the Software Design Document.