Đề tài Customer relation managerment software architecture and detailed design

TABLE OF CONTENTS

1 INTRODUCTION 7

1.1 How this document is organized 7

1.2 Purpose 7

1.3 Definitions, Acronyms and Abbreviations 7

1.4 Referenced Documents 8

2 ARCHITECTURE DESIGN 9

2.1 CRM Overview 9

2.1.1 External/Internal interfaces 9

2.1.2 Constraints and assumptions 9

2.1.3 Transaction management 10

2.1.4 Connection pooling 10

2.1.5 The .NET Framework 11

2.2 CRM System Architecture 12

2.3 Module Hierarchy 17

2.3.1 CRM Modules 17

2.4 Logical View 17

2.4.1 UI Package 18

2.4.2 BO Package 18

2.4.3 DAO Package 18

2.4.4 Common Package 19

2.4.5 Controls Package 19

2.4.6 System Package 19

2.5 Deployment 19

2.5.1 CRM Side 19

2.5.2 Other Sides 19

2.6 Hardware and Software requirement 19

2.6.1 Handheld Device 19

2.6.2 Software 20

3 DETAILED DESIGN 20

3.1 Detailed Design Methodology 20

3.2 Detailed Design Overview 20

3.3 Use Cases View 22

3.4 Packages 22

3.4.1 DAO Package 22

3.4.2 Business Object Package 24

3.4.3 UI Package 25

3.4.4 Common Package 26

3.4.5 Controls Package 27

3.4.6 System Package 28

3.5 Exception Handling and Logging 28

3.5.1 Exception Handling 28

3.5.2 Logger 29

3.6 Diagrams 30

3.6.1 Logon 30

3.6.2 Route Management 31

3.6.3 Download 33

3.6.4 Import Data 35

3.6.5 Totals 36

3.6.6 Setup 37

3.6.7 Beginning of Day 39

3.6.8 Loads 41

3.6.9 Sales 44

3.7 Database 47

3.7.1 Relationship Diagram 47

3.7.2 CommProfiles table 47

3.7.3 Routes table 47

3.7.4 AppSettings table 48

3.7.5 SecurityCodes table 49

3.7.6 Loads table 50

3.7.7 LoadDetails table 50

3.7.8 LiquorLicenses table 51

3.7.9 Messages table 51

3.7.10 Customers table 51

3.7.11 Surveys table 52

3.7.12 LookUp table 52

3.7.13 Vending table 52

3.7.14 DailyInfo table 52

3.7.15 Products table 53

3.7.16 Expenses table 53

3.7.17 RouteStop table 53

3.7.18 Orders table 54

 

 

doc54 trang | Chia sẻ: maiphuongdc | Lượt xem: 1645 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đề tài Customer relation managerment software architecture and detailed design, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Framework does not take the lowest-common denominator approach used by other device programming platforms. Developers can get broad portability and reusability by writing to the common programming model, but the .NET Framework is also designed to be extended with class libraries that expose features unique to a family of devices, or even unique to a particular device model. This approach allows developers to create the best possible application experience on each specific device, while reusing skills and code. Enterprise-Class Features for More Capable Devices The success of Microsoft Pocket PC devices is growing, in part, because they have the computing resources necessary to handle sophisticated business applications. The .NET Compact Framework takes advantage of the Pocket PC platform by providing enhanced frameworks that greatly simplify the process of developing enterprise applications on Pocket PC devices. Robust Code, Secure Execution The .NET Compact Framework offers a robust and secure environment for running client-side code. The managed code model supported by the .NET Compact Framework increases the reliability of code, thus reducing software defects. The managed code execution engine ensures that an ill-behaved application will not be able to "crash" the device. At the same time, the evidence-based security model built into the .NET Compact Framework ensures that malicious code will not be allowed to gain access to secure system resources. The security model also enables software updates to be delivered over the wireless network in a secure way, decreasing the possibility of a costly device recall. Great Offline Application Support With secure client-side code, the .NET Compact Framework enables responsive applications that can be used offline. This allows a smooth execution despite any intermittent connectivity problems that might occur when accessing the network. The developer can choose the right mix of client-side and server-side programming to deliver a rich and always interactive application. Reduced Cost of Development Creates New Opportunities This new ease of development provided by the .NET Compact Framework will lead to the creation of a broad new range of applications and services that will help manufacturers win greater market acceptance for their mobile devices and create new opportunities for developers. Many businesses that were unable to afford the cost or special developer training necessary for mobile development will be able to develop new mobile applications much more efficiently, which in turn can help lower their costs of doing business, and increase their market opportunities. CRM System Architecture The architecture of CRM system will be designed to illustrate: Transaction Data exchange between Insight host system and CRM machine Architecture in CRM machine From above information and flow constraints: CRM client program is built upon .NET Framework 1.1 The communication via network FTP Transaction management mechanism is ADO.NET We provide the architecture of CRM system as follow: CRM system architecture Presentation layer: Purpose of this layer is for user-interaction. In CRM system, Windows-based GUI application will be used for most business processes. Built upon System.Windows.Form package from .NET Framework, the interface is used for inputting complex data and displaying complex views. This layer will be containing some business actions that manual data in local database. Business layer: The Business layer manages all internal business logic. It will receive data\request from Presentation, process necessary business logic, access or update data from\to local DB on CRM Application. Data layer: This layer includes storage database, data access components and data conversion sub system Data access component: ADO.NET (CRUD Methods – Create – Read – Update – Delete and orther methods) – Data access logic components retrieve data from database and save entity data back to the database.Data Access Logic Components also contain any business logic needed to achieve data – related operations. Business Entities components: Data is used to represent real world business entities, such as products or order.there are numerous ways to represent these business entities in your application – for example , XML or DataSets or custom object – oriented classes – depending on the physical and logical design constraints of the application. CRM MVC model CRM System Logical Architeture The CRM System was built exactly to resolve problem dispersion of Business unit,However database Store require common managerment.For this reason,we have been combined CRM Architeture Application and XML Web Service base on .NET Framework follow Multi tier Architeture and MVC model is sensible. This Model is principle for CRM System.follow this Model: Application will resolve business functions,user methods with unique presentation,application cover work under structure with user. XML Web Service,supply Serviceses message- based that be called by Application through Business Layers tier of Application CRM System has been built combine of Application components : CRM Components Model CRM clients Application(Windows forms) : supply Customer Relation Managerment and Business managerment tools,WareHouse for Enterprise. CRM Admin Application(ASP.NET Forms):supply Administrator tools and synthetize data business Process of Enterprise. CRM XML Web Service :supply Services about synchronous data,manipulate so far with data center Module Hierarchy CRM Modules Below is the list of functions to be implemented in the application: My Informations My Customers My Quote My Order My Tasks My Products My WareHouse My Sales My Inventory Logical View This session provide an overview of the logical packages of ROUTEPAD-PDA system. Details are described in Detailed Design session. CRM Logical Package UI Package This package contains all business object classes which encapsulate business logic of the application. They will receive requests from Presentation layer, process business logic and call DAO layer to update/retrieve data to/from CRM Database. BO Package This package contains all business object classes which encapsulate business logic of the application. They will receive requests from Presentation layer, process business logic and call DAO layer to update/retrieve data to/from CRM Database. DAO Package This package contains classes which will be used for manipulating data on CMR Server. Common Package This package contains entity objects which are used for transferring data between internal modules in CRM program. Controls Package This package contains custom controls which are used for specific display purpose. These controls are consumed by UI components. System Package This package contains objects used for logging purpose and objects to download/upload files. We will use Log4Net to log necessary information for later tracking. This library is open source, run very fast and reliable. Deployment CRM Side Packages to be deployed on handheld device: Package Note PC CRM Application CRM application running on PC CRM Database SQL Server 2000 Service Pack 3 Other Sides N/A Hardware and Software requirement Handheld Device Configuration Recommended CPU Intel Pentium IV Memory RAM 128 MB and ROM 64 MB OS Windows Server 2003,WinXP… Software Name Purpose .NET Framework v1.1 Development Framework SQL Server 2000 Service Pack 3 Used for storing data on local CRM Detailed Design Detailed Design Methodology In this detailed design document, UML is used as main methodology to illustrate the structure of ROUTEPAD-PDA application. Diagrams in this document are created in Visual Studio.NET 2005, Microsoft Visio 2003, and Rational Rose. Detailed Design Overview ROUTEPAD-PDA Architecture Overview As described in Figure 4, PDA application will have three layers- Presentation Layer, Business Layer, Data Access Layer and Value Objects Common package. Presentation Layer contains User Graphical Components, UI Process Components (Form Package). User Graphical Components and UI Process Components build screens to interact with users. They show the information to the user or capture data or actions from the user to call business layer in order to update into database. Business Layers contains all Business Object classes that will encapsulate business logic of the application. They will receive requests from Presentation layer, process business logic and call DAO layer to update/retrieve data to/from PDA Database. Data Access layer contains classes which will be used for manipulating data on PDA machine and synchronize data between insight host and PDA Database Value Objects classes are used to contain data for transferring between internal Modules/Layers in PDA application. Use Cases View ROUTEPAD-PDA Use Cases View Packages DAO Package The base class of DAO package implements common methods to manipulate database. Derived classes can override those methods if necessary. Below is the specification of DAO base class: DAO Class Diagram No Member Name Require derived class to implement Description 1 Conn Connection used to connect to database No Method Name Description 1 AddNew If necessary Adds a new record 2 Connect No Opens connection to database 3 Close No Close connection 4 Delete If necessary Delete a record 5 ReadAll If necessary Returns all records 6 ReadOne If necessary Reads one record base on identity value 7 Update If necessary Updates a record Below is description of all classes in DAO package No Class Name Description 1 CommProfileDAO Encapsulates methods to interact with CommProfiles data table. 2 RoutesDAO Encapsulates methods to interact with Routes data table. 3 LoadDAO Encapsulates methods to interact with Loads data table. 4 AppSettingsDAO Encapsulates methods to interact with AppSettings data table. 5 LiquorLicenseDAO Encapsulates methods to interact with LiquorLicenses data table. 6 SecurityCodeDAO Encapsulates methods to interact with SecurityCodes data table. 7 MessageDAO Encapsulates methods to interact with Messages data table. 8 CustomerDAO Encapsulates methods to interact with Customers data table. 9 SurveyDAO Encapsulates methods to interact with Surveys data table. 10 LookupDAO Encapsulates methods to interact with Lookup data table. 11 VendingDAO Encapsulates methods to interact with Vending data table. 12 DailyInfoDAO Encapsulates methods to interact with DailyInfo data table. 13 ProductDAO Encapsulates methods to interact with Products data table. 14 ExpenseDAO Encapsulates methods to interact with Expenses data table. 15 RouteStopDAO Encapsulates methods to interact with RouteStop data table. 16 OrdersDAO Encapsulates methods to interact with Orders data table. Business Object Package The following figure describes the class diagram of Business Objects package Business Layer Class Diagram No Member Name Require derived class to implement Description No Method Name Description 1 AddNew If necessary Adds a new record 2 Delete If necessary Delete a record 3 DeleteAll If necessary Delete all records 4 ReadAll If necessary Returns all records base on condition 5 ReadOne If necessary Reads one record base on identity value 6 Update If necessary Updates a record 7 Validate Required Validate data base on business logic Below is description of Business Objects No Class Name Description 1 CommProfileBO Encapsulates business logic related to communication profile. 2 RoutesBO Encapsulates business logic related to routes. 3 LoadBO Encapsulates business logic related to load. 4 AppSettingsBO Encapsulates business logic related to application settings. 5 LiquorLicenseBO Encapsulates business logic related to liquor license. 6 SecurityCodeBO Encapsulates business logic related to security code. 7 MessageBO Encapsulates business logic related to message. 8 CustomerBO Encapsulates business logic relates to customer. 9 SurveyBO Encapsulates business logic relates to survey. 10 LookupBO Encapsulates business logic relates to look up. 11 VendingBO Encapsulates business logic relates to vending. 12 DailyInfoBO Encapsulates business logic relates to daily information. 13 ProductBO Encapsulates business logic relates to product. 14 ExpenseBO Encapsulates business logic relates to expense. 15 RouteStopBO Encapsulates business logic relates to route stop. 16 OrdersBO Encapsulates business logic relates to order. UI Package The following figure describes the class diagram of UI package Presentation Class Diagram No Member Name Require derived class to implement Description 1 previousForm Stores the form which calls this form 2 PreviousForm Property which encapsulates previousForm No Method Name Description 1 ShowNextForm If necessary Shows a new form 2 ShowPreviousForm If necessary Returns to caller form Common Package Each class in this package, except base class, contains appropriate properties to represent the corresponding data table. Below is the specification of common base class: Common Class Diagram No Member Name Require derived class to implement Description No Method Name Description 1 GetIdentityName Required Returns identity column name 2 GetTableName Required Returns name of data table 3 Populate Required Maps values in a data row to properties 4 SetIdentityValue Required Sets value for identity property Here is the list of classes derived from base class: No Class Name Description 1 CommProfileVO Represents a record of CommProfiles data table 2 RoutesVO Represents a record of Routes data table 3 LoadVO Represents a record of Load data table 4 AppSettingsVO Represents a record of AppSettings data table 5 LiquorLicenseVO Represents a record of LiquorLicense data table 6 SecurityCodeVO Represents a record of SecurityCodes data table. 7 MessageVO Represents a record of Messages data table. 8 CustomerVO Represents a record of Customers data table. 9 SurveyVO Represents a record of Surveys data table. 10 LookupVO Represents a record of Lookup data table. 11 VendingVO Represents a record of Vending data table. 12 DailyInfoVO Represents a record of DailyInfo data table. 13 ProductVO Represents a record of Product data table. 14 ExpenseVO Represents a record of Expense data table. 15 RouteStopVO Represents a record of RouteStop data table. 16 OrdersVO Represents a record of Orders data table. Controls Package Controls Class Diagram Below is the list of custom controls using in this application: No Class Name Description 1 RPADSignatureCapture Captures the signature of user on Pocket PC screen as a bitmap 2 RPADLabel Can draw background with gradient color 3 RPADButton Can display text on the left, right and center position 4 RPADImageButton Can display image 5 RPADBorderPanel Can display a 3D border around the panel 6 RPADTextBox Can display a currency symbol at the beginning of the text System Package Refer to Error Handling and Logging Exception Handling and Logging Exception Handling Data Access Layer Exception handling flow for DAO objects Business Logic Layer Exception handling flow for BO objects Presentation Layer Exception handling flow for UI objects Logger Class Diagram Logger Diagram In the ROUTEPAD-PDA system, a third party component called Log4NET is used to trace business flows and log errors into a text file. All exceptions of the system will be logged. Usage mechanism The log messages of the system will be divided to five levels: Info: Log a message with stack trace of Exception at INFO level. This log level is used to trace business flows of the system and help administrator/users to know track the flows and data during the PDA running. Debug: Log a message with stack trace of Exception at DEBUG level. This messages are used for developers to debug the application during development phases Warning: Log a message with stack trace of Exception at WARNING level. Error: Log a message with stack trace of Exception at ERROR level. Fatal: Log a message with stack trace of Exception at FATAL level. Diagrams Logon Functional Overview Security Codes may be established on the Insight host for each route for certain functions on the handheld. Before accessing a protected function, the user must enter security code for that function. Activity Diagram Logon Activity Diagram Class Diagram Logon Class Diagram Route Management Functional Overview This function allows user to select, delete or add a route. Activity Diagram Route Management Activity Diagram Class Diagram Route Management Class Diagram Download Functional Overview This function downloads text files from FTP server to handheld device. Then it calls Import Data function to import data in those files to database. Activity Diagram Download Data Activity Diagram Class Diagram Download Data Class Diagram Import Data Functional Overview This function imports data contained in text files to database. Activity Diagram Import Data Activity Diagram Class Diagram Import Data Class Diagram Totals Functional Overview This function displays product inventory base on orders recorded during the course of the day. Activity Diagram Totals Activity Diagram Class Diagram Totals Class Diagram Setup Functional Overview Set Clock: Set the system date and time on the handheld device. Route Info: Identify the handheld to the Insight system by entering the company, route, and salesman numbers. App Settings: Control the way certain functions work in Pocket Routepad. Comm. Config: Make entries to establish communications between the handheld and the Insight host system. Activity Diagram Setup Activity Diagram Class Diagram Setup Class Diagram Beginning of Day Functional Overview This function allows user to change Activity date, view BOD messages, and set Starting Load. Activity Diagram BOD Activity Diagram Class Diagram BOD Class Diagram Loads Functional Overview This function allows user to enter Load Adjustment or to view load reports. Activity Diagram Load Adjustment Activity Diagram Load reports Activity Diagram Class Diagram Loads Class Diagram Sales New Customer Functional Overview This function allows user to add new customer. Activity Diagram New Customer Activity Diagram Class Diagram New Customer Class Diagram Database Relationship Diagram Entity Relationship Diagram CommProfiles table This table contains communication profiles. No Column Name Data Type PK Allow Null Description 1 ProfileID Int Yes No Auto Increase 2 ProfileName Nvarchar(255) No No 3 Username Nvarchar(255) No No 4 Password Nvarchar(255) No No 5 IPAddress Nvarchar(255) No No 6 Port Int No No 7 UploadDir Nvarchar(255) No No 8 DownloadDir Nvarchar(255) No No Routes table This table contains route information. No Column Name Data Type PK Allow Null Description 1 RouteNo Int Yes No Present an unique route number 2 CompanyNo Int No No Present an unique company number 3 RouteType Int No No Presale / Driver-Sale / None 4 SalemanNo Nvarchar(255) No No Present an unique salesman 5 AssistantNo Nvarchar(255) No No The employee to be credited with assisting the salesman in making the sale. 6 VehicleNo Nvarchar(255) No No The number of the truck from which the sale was made. 7 StartingOdometerNo Nvarchar(255) No No The odometer reading at the beginning of the day. 8 StartingInvoiceNo Int No No The identification number of the day’s first invoice. Each subsequent invoice will be incremented by one from this number. AppSettings table This table contains application settings. No Column Name Data Type PK Allow Null Description 1 CompanyNo Int No No Company associated with this route configuration 1 - 9 2 RouteNo Int Yes No Route # 1 - 999 3 AllowFreeProduct Int No No User may award free product manually to customers 0 = No; 1 = Yes 4 AllowPostVoid Int No No Allow user to void orders 0 = disallow; 1 = allow 5 DiscountGroupOverride Int No No The user can change the discount group associated with an order/ticket or detail item 0 = No; 1 = Yes 6 AllowNewCustomer Int No No User may create orders/tickets for customers not on the handheld 0 = disallow; 1 = allow; 2 = allow with added promos 7 DisplayBuildUpOnHand Int No No Allow or disallow the Build Up and On Hand fields to display in sales entry 0 = disallow; 1 = allow 8 DisplayScanField Int No No Allow or disallow the Scan field to display in sales entry 0 = disallow; 1 = allow 9 AlcoholicSales Int No No Allow or disallow the sale of any alcoholic products 0 = disallow; 1 = allow 10 IncludeCRVInPrice Int No No Include CRV amount in the product price 0 = CRV is separate; 1 = CRV is included in price 11 SignatureCapture Int No No Allow or disallow customers to enter their signatures confirming entries in the Sales function. 0 = disallow; 1 = allow 12 AllowDamagedReturn Int No No User may enter damaged returns for products. 0 = disallow; 1 = allow 13 ARBalanceOnInvoice Int No No Allow or disallow each customer’s accounts receivable balance to print on the invoice. 0 = No; 1 = Yes 14 NumberOfInvoicePrints Int No No Number of invoices you want to print (from 1 to 9) each time you record a sale. 15 BackupToStorageCard Int No No Allow or disallow sending a backup to a storage card. 0 = disallow; 1 = allow 16 BackupFolderPath Nvarchar(255) No No Defaults to the location on your handheld for the backup device. 17 ManualPrice Int No No Allow the user to change prices 0 = No changes; 1 = All Changes Allowed; 2 = Changes For Returns Only 18 LoadRequest Int No No Load request input option 0 = not allowed; 1 = enter total request; 2 = enter add on quantities 19 Log Int No No Number of days you want the log file to hold. 20 Level Nvarchar(255) No No This field is for future use. 21 BTPort Nvarchar(255) No No This is the port used for Bluetooth printing. 22 PrintDelay Int No No Number of seconds delay when switching from text to graphics mode to print the signature. SecurityCodes table This table contains security codes. No Column Name Data Type PK Allow Null Description 1 RouteNo Int Yes No Route number 2 AppSetting Nvarchar(6) No No Setup -> App. Setting 3 CommConfig Nvarchar(6) No No Setup -> Communication Configuration 4 StartingLoad Nvarchar(6) No No BOD -> Starting Load 5 LoadAdjustment Nvarchar(6) No No Load -> Load Adjustment 6 DiscountGroup Nvarchar(6) No No Sales -> Change discount group 7 OversellConfirm Nvarchar(6) No No Sales -> Oversell confirmation 8 RetailPrice Nvarchar(6) No No Sales -> Retail Price 9 ClearAllOrders Nvarchar(6) No No Order Management -> Clear All Orders 10 Settlement Nvarchar(6) No No Settlement 11 EndingInventory Nvarchar(6) No No Settlement -> Ending Inventory 12 LoadRequest Nvarchar(6) No No Settlement -> Ending Inventory -> Load Request Loads table This table is the load master table. No Column Name Data Type PK Allow Null Description 1 LoadID Int Yes No An unique Load number 2 LoadType Int No No StartingLoad / Load Adjustment/ Ending Load 3 LoadDate DateTime No No Created date LoadDetails table This table is the load detail table, which contains detailed information of Starting Load, Load Add/Off, and Ending Load. No Column Name Data Type PK Allow Null Description 1 LoadDetailID Int Yes No 2 LoadID Int No No 3 ProductNo Int No No 4 QtyCase Int No No Qty of cases of product loaded 5 QtyUnit Int No No Qty of units of product loaded 6 AddOnCase Int No No Qty of cases of product added 7 AddOnUnit Int No No Qty of units of product added 8 OffCase Int No No Qty of cases of product returned 9 OffUnit Int No No Qty of units of product returned 10 OffIDCase Int No No Qty of cases of product damaged 11 OffIDUnit Int No No Qty of units of product damaged 12 EndCase Int No No Qty of cases of product ending load 13 EndUnit Int No No Qty of units of product ending load 14 VarCase Int No No Var = blank: the ending inventory equals the beginning inventory plus add-ons minus sales and off-loads. Var > 0: number of units you are short Var < 0: Current qty is more units than the qty supposed to have. 15 VarUnit Int No No Qty of units of product variance 16 LoadRequestCase

Các file đính kèm theo tài liệu này:

  • doccrm_architecture_and_detailed_design_v2_0_6059.doc