55
LOGO Accounting Module In ERP Supervisor: Mr. Nguyễn Hồng Kỳ Students: Hoàng Phương Thảo Tạ Trung Kiên Nguyễn Tấn Trí Lưu Hằng My Nguyễn Văn Tiệp

Accounting Module In ERP

  • Upload
    charis

  • View
    47

  • Download
    0

Embed Size (px)

DESCRIPTION

Accounting Module In ERP. Students: Hoàng Phương Thảo Tạ Trung Kiên Nguyễn Tấn Trí Lưu Hằng My Nguyễn Văn Tiệp. Supervisor: Mr . Nguyễn Hồng Kỳ. Contents. Introduction . Project Management Plan. Requirement Specifications . Design Description . Implementation . - PowerPoint PPT Presentation

Citation preview

Page 1: Accounting Module In ERP

LOGO

Accounting Module In ERP

Supervisor: Mr. Nguyễn Hồng Kỳ

Students: Hoàng Phương Thảo Tạ Trung Kiên Nguyễn Tấn Trí Lưu Hằng My Nguyễn Văn Tiệp

Page 2: Accounting Module In ERP

Contents

Introduction

Project Management Plan

Requirement Specifications

Design Description

Implementation

Test Documentation

Demo & Q&A

Page 3: Accounting Module In ERP

Part 1: Introduction

Background

Literature Review

Our Proposal

Products

Page 4: Accounting Module In ERP

Background

The management of goods, statistics, accounting…in paper have many disadvantages

Having many popular software which are used to management business through by machine and database.

Development of ERP system In Vietnam, they still have many limitations.

=> We developed an accounting module in ERP

Page 5: Accounting Module In ERP

Literature review

Having high price

Incompatibility with the Vietnamese accounting system

Wasting time for training, human resources

Complexity of warranty and repair

Page 6: Accounting Module In ERP

Literature review

Design is untight and simple

General ledger system has not satisfied requirement of user

Security is low

Page 7: Accounting Module In ERP

Our proposal Developing accounting module for the service companies

that use ERP system Building on web-based with advanced technology Database is managed by SQL server platform Building on N-tier architecture

Page 8: Accounting Module In ERP

Part 2: Project Management Plan

The proposed system

Development Environment

Process

Project organization

Project Planning

Page 9: Accounting Module In ERP

The proposed system

User Functions System feature Boundaries

Page 10: Accounting Module In ERP

Development EnvironmentHardware

Operating system: Windows 7Personal computers for developing with the minimum

configuration: 3 Gb of RAM, 100Gb of hard disk, Core 2 Duo 2.0 Ghz

SoftwareVisual Studio 2010SQL Server 2008Web Server: IIS 7Framework: .NET Framework 4.0

Page 11: Accounting Module In ERP

Project’s process model

Waterfall model

Page 12: Accounting Module In ERP

Project organization

Page 13: Accounting Module In ERP

Project Management Plan Work breakdown structure Responsibility Assignment Matrix Risk management plan

Page 14: Accounting Module In ERP

Part 3: System Requirement Specifications

User Requirements

System Requirements

Non-functional requirements*

Page 15: Accounting Module In ERP

User requirements

UsersVouchersPortfolioGeneral AccountingReports

Page 16: Accounting Module In ERP

Users

User can add new fiscal year, fiscal period. User can add new one of portfolios, edit or delete it User can add new a voucher such as: “Phiếu kế toán, hóa đơn bán

hàng, phiếu nhập mua hàng…” edit, or delete them User can access general ledger as “bút toán khóa sổ”, “tính hàng tồn

kho”… User can see all another user activity by accessing diary. User can see all report in the AMIE system and print it if he/she

needs. …

Page 17: Accounting Module In ERP

Vouchers AMIE have some vouchers: Phiếu kế toán, hóa đơn bán hàng, phiếu

nhập mua hàng… To edit a voucher, user clicks on the “Chi Tiết” hyperlink in the left of

row which contains some voucher’s summary. If RecordToLedgerDate is not null, user click on the “Sửa” button to edit.

To delete a voucher or more voucher, user ticks on the check box in the left of row thich contains some voucher’s summary, and then click on the “Xóa” button to delete

To view list of voucher which has order by user want. You can use filler by filling some word on the top of column.

Page 18: Accounting Module In ERP

Portfolio Danh mục sổ kế toán Danh mục đối tác Danh mục tài khoản Danh mục hàng hóa Danh mục kho Danh mục mã giao dịch Danh mục tiền tệ Danh mục loại nguồn vốn Danh mục loại tài sản cố định …

Page 19: Accounting Module In ERP

General Accounting

General business operations of the accounting system. Add new fiscal year, fiscal period Posting balance Works was normally conducted at the beginning of fiscal

period, year or ending of fiscal period, year. Calculate total inventory in the end of fiscal period

Page 20: Accounting Module In ERP

Reports

Sổ nhật ký chung Bảng cân đối kế toán Báo cáo kết quả hoạt động kinh doanh Reports have printing function

Page 21: Accounting Module In ERP

System Requirement

Document requirements as use-cases Each use case include:

Use case diagram Actor Summary Goals Triggers Preconditions Post conditions

Page 22: Accounting Module In ERP

System Requirement

Each use case include: Main success scenarios Alternative scenarios Exceptions Relationship Business rules Description Screen Data field definitions

Page 23: Accounting Module In ERP

System Requirement

Screen: Before implementation: created using Balsamiq

Mockups software.

After implementation: screenshot from real system

Page 24: Accounting Module In ERP

System Requirement

After

Before

Page 25: Accounting Module In ERP

System Requirement

Data Fields Definition: Field name Description Read-only Mandatory Control type Data type Length

Page 26: Accounting Module In ERP

Non-functional requirements

Usability Reliability Availability Security Maintainability Performance

Page 27: Accounting Module In ERP

Non-functional requirements

Usability:

All most text, image text in front-end should be in Vietnamese The interface should be elegant, simple and out-standing Searching tool should be easy to use Check validation in all form and easy to see, understand. …

Page 28: Accounting Module In ERP

Non-functional requirements

Reliability:

Not conflict with other software Log any actions of user in system. Mean Time Between Failures (MTBF): 1 month Mean Time To Repair (MTTR): immediately when admin

finds out problem. Average 1 day. Maximum Bugs or Defect Rate: 3 bugs / KLOC

Page 29: Accounting Module In ERP

Non-functional requirementsAvailability:

Systems have to run 24 hours 7 days Can be turned off when upgrading and must display an

alternative maintenance page in such occasions

Page 30: Accounting Module In ERP

Non-functional requirements

Security:

User have to login to system. Auto logout user when website not work about 30 minutes. User password must be invisible for the system administrator Log any actions of user in system.

Page 31: Accounting Module In ERP

Non-functional requirementsMaintainability:

Follow coding standard and naming conventions Loosely coupled design Logging functionality

Performance:

Frequently accessed data must be cached Reference data must be cached

Page 32: Accounting Module In ERP

Part 4: Software Design Description

Architectural design

Detailed design

Database design

Page 33: Accounting Module In ERP

Architectural design

Page 34: Accounting Module In ERP

Architectural design

Main components

Page 35: Accounting Module In ERP

Architectural design

Sub component diagram

Common component

Page 36: Accounting Module In ERP

Detailed design: Class DiagramPReceiptMng

«interface»

Attributes+ _receiptVoucherMngBal+ _transactionVouchers+ _writeLogOperations+ bDelete_OnClick(object sender, EventArgs e)+ HideExpandColumnRecursive(GridTableView tableView)+ Page_Load(object sender, EventArgs e)+ RadAjaxManager1_Requested(object sender, AjaxRequestEventArgs e)+ rgPurchaseReceipt_Init(object sender, EventArgs e)+ rgPurchaseReceipt_ItemCreated(object sender, GridItemEventArgs e)+ rgPurchaseReceipt_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)+ rgPurchaseReceipt_PreRender(object sender, EventArgs e)

PReceiptVoucherMng BAL

Attributes+ _receiptVoucherMngDalOperations+ Deleted(TransactionVouchers tv, WriteLog wl)+ LoadSourceOfPurchaseReceiptGv()+ PReceiptVoucherMngBAL()

PReceiptVoucherMng DAL

Attributes+ ConnectionString+ _connOperations+ Deleted(TransactionVouchers tv, WriteLog wl)+ GetSourceOfPurchaseReceiptGridview()+ PReceiptVoucherMngDAL()

PEReceiptVoucher«interface»

Attributes+ _caching+ _loadTableInfoBal+ _pBal+ _transactionVoucher+ _writeLogOperations+ AccountNotGridIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ bAccept_Clicked(object sender, EventArgs e)+ bEdit_Clicked(object sender, EventArgs e)+ CbAccountItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CbBookNo_IndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbBookNo_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ cbDiscountAccount_IndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ cbGoods_ItemIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ cbGoods_ItemRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ cbInventory_IndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ cbInventory_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ cbTaxAccount_IndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbTaxCodeIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbTaxCodeItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CheckCostValue()+ dpPaymentDate_DateChanged(object sender, SelectedDateChangedEventArgs e)+ HideExpandColumnRecursive(GridTableView tableView)+ OnItemDataBoundHandler(object sender, GridItemEventArgs e)+ Page_Load(object sender, EventArgs e)+ RadGrid_Init(object sender, System.EventArgs e)+ RadGrid_ItemDeleted(object source, GridCommandEventArgs e)+ RadGrid_ItemInserted(object source, GridCommandEventArgs e)+ RadGrid_ItemUpdated(object source, GridCommandEventArgs e)+ RadGrid_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)+ RadGrid_PreRender(object sender, EventArgs e)+ txtDiscountRate_TextChanged(object sender, EventArgs e)+ txtPrice_TextChanged(object sender, EventArgs e)+ txtPSupplier_IndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ txtPSupplier_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ txtQuantity_TextChanged(object sender, EventArgs e)

PEReceiptVoucher BAL

Attributes+ _pDalOperations+ CostCalculation(DataTable table, double rate)+ Insert(string tablename, DataTable GADtable, TransactionVouchers tv, WriteLog wl)+ LoadEmptyTable()+ LoadSupplierInfo(DataTable tb, int id)+ TotalCalculation(double GoodsPayment, double Taxpayment, double rate)

PEReceiptVoucher DAL

Attributes+ _adapter+ _conn+ _connStrOperations+ GetEmptyTable(int id)+ Insert(string tablename, DataTable GADtable, TransactionVouchers tv, WriteLog wl)+ PAReceiptVoucherDAL()

PAReceiptVoucher«interface»

Attributes+ _caching+ _loadTableInfoBal+ _pBal+ _transactionVoucher+ _writeLogOperations+ AccountNotGridIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ bAccept_Clicked(object sender, EventArgs e)+ CbAccountItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CbBookNo_IndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbBookNo_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ cbDiscountAccount_IndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ cbGoods_ItemIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ cbGoods_ItemRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ cbInventory_IndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ cbInventory_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ cbTaxAccount_IndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbTaxCodeIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbTaxCodeItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CheckCostValue()+ dpPaymentDate_DateChanged(object sender, SelectedDateChangedEventArgs e)+ OnItemDataBoundHandler(object sender, GridItemEventArgs e)+ Page_Load(object sender, EventArgs e)+ RadGrid_Init(object sender, System.EventArgs e)+ RadGrid_ItemDeleted(object source, GridCommandEventArgs e)+ RadGrid_ItemInserted(object source, GridCommandEventArgs e)+ RadGrid_ItemUpdated(object source, GridCommandEventArgs e)+ RadGrid_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)+ RadGrid_PreRender(object sender, EventArgs e)+ txtDiscountRate_TextChanged(object sender, EventArgs e)+ txtPrice_TextChanged(object sender, EventArgs e)+ txtPSupplier_IndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ txtPSupplier_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ txtQuantity_TextChanged(object sender, EventArgs e)

PAReceiptVoucher BAL

Attributes+ _pDalOperations+ CostCalculation(DataTable table, double rate)+ LoadEmptyTable()+ LoadSupplierInfo(DataTable tb, int id)+ TotalCalculation(double GoodsPayment, double Taxpayment, double rate)

PAReceiptVoucher DAL

Attributes+ _adapter+ _conn+ _connStrOperations+ GetEmptyTable(int id)+ Insert(string tablename, DataTable GADtable, TransactionVouchers tv, WriteLog wl)+ PAReceiptVoucherDAL()

Page 37: Accounting Module In ERP

Detailed design: Class DiagramSSaleInvoiceMng

«interface»

Attributes+ _saleInvoiceBAL+ _tv+ _wlOperations+ bDelete_Click(object sender, EventArgs e)+ Page_Load(object sender, EventArgs e)+ RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e)+ RadGrid_ItemCreated(object sender, GridItemEventArgs e)+ SSaleInvoiceMng_Init(object sender, System.EventArgs e)+ SSaleInvoiceMng_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)+ SSaleInvoiceMng_PreRender(object sender, EventArgs e)

SSaleInvoiceMng BAL

Attributes+ _saleInvoiceDALOperations+ Delete(TransactionVouchers tv, WriteLog wl)+ LoadDataTable()

SSaleInvoiceMng DAL

Attributes+ _adapter+ _conn+ _connStr+ _dtOperations+ Delete(TransactionVouchers tv, WriteLog wl)+ LoadDataTable()+ SSaleInvoiceMngDAL()

SESaleInvoice«interface»

Attributes+ _caching+ _intResult+ _saleBAL+ _tableInfoBAL+ _tv+ _wlOperations+ bEdit_Click(object sender, EventArgs e)+ bSave_Click(object sender, EventArgs e)+ CalculateMoney(DataTable dt)+ CbAccountIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbAccountItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CbBookNoIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbBookNo_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CbDiscountAccountIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbDiscountAccountItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CbGoodsIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbGoodsItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CbInventoryIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbInventoryItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CbPartnerIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbPartnerItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CbTaxAccountIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbTaxAccountItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CbTaxCodeIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbTaxCodeItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CbVoucherIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbVoucher_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ DpPaymentChanged(object sender, EventArgs e)+ GetAccountName(int id)+ GetTranName(int id)+ OnItemDataBoundHandler(object sender, GridItemEventArgs e)+ Page_Load(object sender, EventArgs e)+ pClose_Click(object sender, EventArgs e)+ RadGrid_Init(object sender, System.EventArgs e)+ RadGrid_ItemDeleted(object source, GridCommandEventArgs e)+ RadGrid_ItemInserted(object source, GridCommandEventArgs e)+ RadGrid_ItemUpdated(object source, GridCommandEventArgs e)+ RadGrid_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)+ RadGrid_PreRender(object sender, EventArgs e)+ TxtDiscountChanged(object sender, EventArgs e)+ TxtQuantityChanged(object sender, EventArgs e)+ TxtSeDiscountAfterChanged(object sender, EventArgs e)

SESaleInvoice BAL

Attributes+ _saleDALOperations+ EmptyTable()+ GetCostOfGoodsSold(DateTime voucherDate, int id)+ GetSaleInvoice(int id)+ GetSaleInvoiceDetail(int id)+ GetTotalInventory(int id, int inventoryId, DateTime voucherDate)+ LoadListPrice(DateTime voucherDate, int id)+ Update(string tablename, DataTable GADtable, TransactionVouchers tv, WriteLog wl)

SESaleInvoice DAL

Attributes+ _adapter+ _conn+ _connStr+ _dtOperations+ EmptyTable()+ GetCostOfGoodsSold(DateTime voucherDate, int id)+ GetSaleInvoice(int id)+ GetSaleInvoiceDetail(int id)+ GetTotalInventory(int id, int inventoryId, DateTime voucherDate)+ LoadListPrice(DateTime voucherDate, int id)+ SESaleInvoiceDAL()+ Update(string tablename, DataTable GADtable, TransactionVouchers tv, WriteLog wl)

SASaleInvoice«interface»

Attributes+ _caching+ _intResult+ _saleBAL+ _tableInfoBAL+ _tv+ _wlOperations+ bSave_Click(object sender, EventArgs e)+ CalculateMoney(DataTable dt)+ CbAccountIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbAccountItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CbBookNoIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbBookNo_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CbDiscountAccountIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbDiscountAccountItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CbGoodsIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbGoodsItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CbInventoryIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbInventoryItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CbPartnerIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbPartnerItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CbTaxAccountIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbTaxAccountItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CbTaxCodeIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbTaxCodeItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ CbVoucherIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)+ CbVoucher_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)+ DpPaymentChanged(object sender, EventArgs e)+ GetAccountName(int id)+ GetTranName(int id)+ OnItemDataBoundHandler(object sender, GridItemEventArgs e)+ Page_Load(object sender, EventArgs e)+ pClose_Click(object sender, EventArgs e)+ RadGrid_Init(object sender, System.EventArgs e)+ RadGrid_ItemDeleted(object source, GridCommandEventArgs e)+ RadGrid_ItemInserted(object source, GridCommandEventArgs e)+ RadGrid_ItemUpdated(object source, GridCommandEventArgs e)+ RadGrid_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)+ RadGrid_PreRender(object sender, EventArgs e)+ TxtDiscountChanged(object sender, EventArgs e)+ TxtQuantityChanged(object sender, EventArgs e)+ TxtSeDiscountAfterChanged(object sender, EventArgs e)

SASaleInvoice BAL

Attributes+ _saleDALOperations+ EmptyTable()+ GetCostOfGoodsSold(DateTime voucherDate, int id)+ GetTotalInventory(int id, int inventoryId, DateTime voucherDate)+ Insert(string tablename, DataTable GADtable, TransactionVouchers tv, WriteLog wl)+ LoadListPrice(DateTime voucherDate, int id)

SASaleInvoice DAL

Attributes+ _adapter+ _conn+ _connStr+ _dtOperations+ EmptyTable()+ GetCostOfGoodsSold(DateTime voucherDate, int id)+ GetTotalInventory(int id, int inventoryId, DateTime voucherDate)+ Insert(string tablename, DataTable GADtable, TransactionVouchers tv, WriteLog wl)+ LoadListPrice(DateTime voucherDate, int id)+ SASaleInvoiceDAL()

Page 38: Accounting Module In ERP

Detailed design: Sequence Diagram

Page 39: Accounting Module In ERP

Database design

Business tables Support tables: Temp table, virtual table… Every table has a primary key named Id which is of type: int not null

identity(1, 1) Max length and null ability strictly follow field definitions UpdateCount column has default data is 0 Every business table will have the trigger to save all the table

changing

Page 40: Accounting Module In ERP

Database design We have 6 common columns:

IsActive Recording status of record

RegistedDate Recording date in the first time record is added

RegisterID Recording UserID in the first time record is added

UpdateDate Recording date for the second time update or later

UpdateUserID Recording UserID for the second time update or later

UpdateCount Recording times for updating

Page 41: Accounting Module In ERP

Database design

Page 42: Accounting Module In ERP

Part 5:Implementation

Technologies

Tools

Coding convention

Code review

Unit test

Security considerations

Page 43: Accounting Module In ERP

Technologies

.NET Framework 4SQL Server 2008RadControls for ASP.NET AJAX jQuery

Page 44: Accounting Module In ERP

Tools

Visual Studio 2010ResharperSQL PromptTortoiseSVN…..

Page 45: Accounting Module In ERP

Coding conventions

Follow general .NET coding conventionse.g. Pascal Casing, Camel Casing…Create specific conventions for the project

Page 46: Accounting Module In ERP

Code Review

By technical leadPeer review

Page 47: Accounting Module In ERP

Unit Test

Mainly for business access tier & data access tierUsing NUnit

Not done:Create NUnit report

Page 48: Accounting Module In ERP

Security considerations

Client side and server side validationNo SQL injectionEncrypt sensitive data:

Password Cookies

Page 49: Accounting Module In ERP

Part 6: Testing

Include: Test plan Bug control Test report

Page 50: Accounting Module In ERP

Testing phase

Page 51: Accounting Module In ERP

Part 6: How to test

Page 52: Accounting Module In ERP

Part 6: Bug list template

Page 53: Accounting Module In ERP

Test Report

Page 54: Accounting Module In ERP

Part 7: Demo & Q&A

Demo - Q&A

Page 55: Accounting Module In ERP

LOGO