Low Level Design Report

12
Bilkent University Senior Design Project Customer Relationship Management System for Medicine Representatives Low Level Design Report Tuba Kesten, Berkay Aydın, Can Tuzla, Arkın Eroğlu Supervisor: H. Altay Güvenir Jury Members: Hakan Ferhatosmanoğlu, C. Aybar Acar Progress Report February 20, 2012 This report is submitted to the Department of Computer Engineering of Bilkent University in partial fulfillment of the requirements of the Senior Design Project course CS492 Department of Computer Engineering

description

Low Level Design Report of CRM for MR project

Transcript of Low Level Design Report

Page 1: Low Level Design Report

Bilkent University

Senior Design Project Customer Relationship Management System for Medicine Representatives

Low Level Design Report

Tuba Kesten, Berkay Aydın, Can Tuzla, Arkın Eroğlu

Supervisor: H. Altay Güvenir Jury Members: Hakan Ferhatosmanoğlu, C. Aybar Acar

Progress Report

February 20, 2012

This report is submitted to the Department of Computer Engineering of Bilkent University in

partial fulfillment of the requirements of the Senior Design Project course CS492

Department of Computer Engineering

Page 2: Low Level Design Report

2

Table of Contents 1. Introduction ............................................................................................................................ 3

1.1 Object design trade-offs .............................................................................................. 3

1.1.1 Performance vs. Memory Space .......................................................................... 3

1.1.2 Performance vs. Development Time .................................................................... 3

1.1.3 Functionality vs. Complexity ................................................................................ 4

1.1.4 Functionality vs. User Interface ............................................................................ 4

1.2 Interface documentation guidelines ................................................................................ 4

1.3 Engineering standards ...................................................................................................... 4

1.4 Definitions, acronyms, and abbreviations ........................................................................ 5

2. Packages ................................................................................................................................. 6

2.1 Main System ..................................................................................................................... 6

2.2 Target System ................................................................................................................... 6

3. Class Interfaces ....................................................................................................................... 8

3.1 Main System ..................................................................................................................... 8

3.1.1 Front End Package (crm4mr.main.frontend) ............................................................. 8

3.1.2 Middleware Package (crm4mr.main.middleware) .................................................... 8

3.1.3 Back End Package (crm4mr.main.backend) ............................................................. 10

3.2 Target System ................................................................................................................. 10

4. References ............................................................................................................................ 12

Page 3: Low Level Design Report

3

1. Introduction Customer relationship management (CRM) systems are the software products that

are designed for companies to find new customers, attract possible ones and also winning

them from rival companies. These operations are actualized by using relevant technology to

organize, automate and synchronize business processes such as sales activities, marketing,

customer services, and technical support. In this way, companies may learn more about their

customers and needs of them as well as behaviors in order to develop stronger relationship

with them. Briefly, all CRM systems are two-sided systems that serve as an advertisement to

customers and a large group of business processes for firms.

Our system will be designed and developed as a customer relationship management

(CRM) system for the use of medicine representatives. System is going to run on tablet PCs

that have Android operating system. The users of the system will be medical representatives

and the managers. Medical representatives will use this system while introducing the

products to the doctors. They can report the comments related to the meeting via this

system. On the other hand, the managers can access the comments came from a

representative and the statistical data about a representative. The system will provide an

instant messaging service and notification sender to establish communication between

representatives and managers. Moreover, the system will allow managers to learn current

location of a representative. This feature will enable to check each representative during the

work-time.

In this report, the low-level components of our project like packages and classes will

be analyzed in detail. Package and class definitions with their operations, descriptions will be

explained. Rest of this report is organized as follows: following parts of introduction will give

objective design trade-offs, engineering standards, interface documentation guidelines and

some definitions that will be used throughout the report; in section two, details of packages

of CRM4MR are presented; in section three class interfaces are provided.

1.1 Object design trade-offs

1.1.1 Performance vs. Memory Space

The memory space requirement of our target device against performance is quite

competitive. Since a tablet PC does not have memory space as much as a desktop or

laptop computer, the memory space requirement of our application outweighs the

performance requirement. In our circumstances, it is more appropriate to choose

memory space over performance. There is a certain limit of time which people can wait

for our tool to function. In order not to exceed that limit, this trade-off is determined

accordingly for the favor of memory space.

1.1.2 Performance vs. Development Time

In order to obtain the best performance from each functionality that we have

proposed, we need more time in addition to estimated development time. Considering

Page 4: Low Level Design Report

4

development time as a serious constraint against performance, we need significant

amount of time so as to test our project and optimize it for the best performance.

1.1.3 Functionality vs. Complexity

“CRM for Medicine Representatives” is a project such that it will be used under a

company structure. In other words, the number of people who will use this project is

quite limited with respect to a global or well-known application in Android Market. This

means that our project do not require so complex network programming. Therefore, we

can mainly focus on our functionalities instead of complexity issues.

1.1.4 Functionality vs. User Interface

With more functionality, the system needs more complex user interface. However, it

is quite controversial to provide simpler user interface with many functionalities. Thus,

we have to avoid the functionalities that require complex and not understandable user

interface for the users so as to establish a balance between our functions and the

simplicity of the user interface.

1.2 Interface documentation guidelines

Class Name Name of the class

Class Description Short description of the class

Package Name of the package that contains class

Operations Operation_Name(parameters):return - brief description of

1.3 Engineering standards

Using engineering standards is necessary to ensure the reliability and the

maintainability of the system. Applying software engineering standards are the responsible

practice of software engineering. Subjects of the standards include phrases such as

configuration management, quality assurance, verification and validation and so on.

ISO/IEC 12207 is a standard for software development life cycle that includes all tasks

and processes applied during the development of the system. The main purpose of the

standard is to provide common structure for stakeholders of the system. Modularity and

responsibility is the basic principles for this standard. The life cycle processes can be grouped

in 3 classes: primary, supported and organizational. While developing CRM4MR, primary

processes are used more than the others. These processes can be listed as follows:

Acquisition: This process contains the set of activities related to the initiation of

the project. Project specifications are documented. System requirements and

technical constraints are defined such as target environment.

Supply: Project management plan is developed during this phase.

Development: The software product designed, created and tested. Functional

requirements are defined. High-level design of the project is made during this

process. UML can be used during the design phase and TMap for software testing.

Page 5: Low Level Design Report

5

Operation: This process includes activities related the operation of the system

and operational support to users such as process implementation, user support.

Maintenance: This process contains tasks related to modifications due to faults,

errors or the necessity of improvement. The specific tasks related to this process

can be considered as modification implementation, maintenance review,

software retirement etc.

1.4 Definitions, acronyms, and abbreviations

ASP: Active Server Pages is Microsoft’s first server-side script engine for dynamically

created web pages.

HTML: HyperText Markup Language (HTML) is the main markup language for web

pages. HTML elements are the basic building-blocks of web pages.

PC: Personal Computer.

UML: Unified Modeling Language.

CRM4MR: Customer relationship manager for medicine representatives.

TMap: Test management approach (TMap) is a software testing methodology.

Page 6: Low Level Design Report

6

2. Packages

“CRM for Medicine Representatives” project is composed of 2 main packages. One of

them is “main” package including “front-end”, “middle-ware”, and “back-end” packages. The

other package is “target.application” which is mainly designed for our target system.

Figure 1 – Package Diagram

2.1 Main System

This package contains HTML pages with ASP forms. Notifications, IM logs, and other

related data that come from middle-ware package are transformed into ASP Forms and

presented to the manager.

2.2 Target System

This package stores 3 action controller classes for managers, representatives, and

admins in order to fulfill the tasks that are specific to their roles. There is also a

Page 7: Low Level Design Report

7

“DataManager” class so as to manage database transactions for the front-end and back-end

packages. “NotificationManager” and “IMManager” classes in this package provide

communication between target system and the front-end of main system while

“GUIManager” class provides user interface for both main system and target system.

Page 8: Low Level Design Report

8

3. Class Interfaces

3.1 Main System

3.1.1 Front End Package (crm4mr.main.frontend)

This package will contain HTML pages and ASP forms within these HTML pages. These

pages and forms will be constructed hierarchically and it will compose the graphical user

interface of CRM for Medicine Representatives project. This package will communicate with

middleware package only for data transmissions and will be using form operations such as

post, get etc.

3.1.2 Middleware Package (crm4mr.main.middleware)

Class Name GUIManager

Class Description Controller class that handles user interface operations

Package crm.main.middleware

Operations Show(object:Object):void – sends the given object to ASP forms GetAction(e:ActionEvent):void – gets the proposed action from ASP forms

Class Name NotificationManager

Class Description Controller class that handles notification sending

Package crm.main.middleware

Operations SendNotificationMessage(recipient, notification:Notification):boolean– sends notification to the specified recipient and returns if the send operation is successful.

Class Name IMManager

Class Description Controller class that handles instant message sending and receiving

Package crm.main.middleware

Operations SendMessage(recipient, message):boolean– sends message to the specified recipient and returns if the send operation is successful. ReceiveMessage():string – receives the messages that are sent to the user.

Class Name RepresentativeActionController

Class Description Controller class that handles the actions of representatives in main system

Package crm.main.middleware

Operations ViewPerformanceData():list<CRMData>– gets the required CRM data from system and sends it to target device. ViewDoctorInfo(dId:int):Doctor- gets the doctor object with specified doctor id and sends it to target device. ViewProductData(prId:int):Product- gets the product object with speicified product id and sends it to target device.

Page 9: Low Level Design Report

9

SendLocation(ldata:LocationData):void- gets the received data package which shows location information of representative and saves it database. CreateDoctorEvalForm(dEval:DoctorEvalFormData):void- creates a new record in database and saves the evaluation form data that is given as a parameter. SendInstantMessage(message:InstantMessage, recipient):boolean- sends an instant message to the specified recipient and returns true if message successfully sent or false if not.

Class Name ManagerActionController

Class Description Controller class that handles the actions of managers in main system

Package crm.main.middleware

Operations SendNotification(recipient, message):boolean– sends notification to the specified recipient and returns if the send operation is successful. SendInstantMessage(message:InstantMessage, recipient):boolean- sends an instant message to the specified recipient and returns true if message successfully sent or false if not. CreateEvalReport(evalReport:RepresentativeEvalReport):void- creates a record for representative evaluation report and send the specified RepresentativeEvalReport object to the database CreateTask(rId:int, task:TaskData):void – creates a record for the specified task for specified representative (with representative id), then sends a notification to representative. CreateEvalReport(evalForm:RepresentativeEvalForm):void- creates a record for representative evaluation form and send the specified RepresentativeEvalForm object to the database ViewProduct(pId:int):Product- gets the product object from database with specified id and returns the product object. RelateProducts(pId, rId):void- creates a relation in the database for relating a product with a representative.

Class Name AdminActionController

Class Description Controller class that handles the actions of admins in main system

Package crm.main.middleware

Operations AddEmployee(e:Employee):void DeleteEmployee(eId:int):void AddProduct(p:Product):void DeleteProduct(prId:int):void

Class Name DataManager

Class Description Controller class that handles the transmission of data and entity objects

Page 10: Low Level Design Report

10

Package crm.main.middleware

Operations createObject():Object – creates the desired object type and sends it to database management classes.

3.1.3 Back End Package (crm4mr.main.backend)

Class Name DBAccessManager

Class Description Backend class that handles the low level CRUD operations

Package crm.main.backend

Operations ConnectDB(username, password):boolean– authentication of the database user is performed by this operation. Note on CRUD operations: Low level create, read, update and delete operations are performed in this class.

3.2 Target System

Class Name NotificationActivity

Class Description Activity class that handles notifications screen and related controls

Package crm.target.application

Operations onCreate(Bundle):void- this operation is the overridden from Activity super class and composes the labels and elements when called in the context. fetchNotifications():void-fetches the notifications from main application. This method is invoked regularly as if it is an interrupt.

Class Name ContactActivity

Class Description Activity class that handles contacts screen and related controls

Package crm.target.application

Operations onCreate(Bundle):void- this operation is the overridden from Activity super class and composes the image buttons of the contacts (that are created by the data taken from employee objects) and other user interface elements when called in the context.

Class Name IMActivity

Class Description Activity class that handles IM screen and related controls

Package crm.target.application

Operations onCreate(Bundle):void- this operation is the overridden from Activity super class and composes the image buttons of contacts and other user interface elements when called in the context. fetchMessages():list<Message>- fetches the sent messages and shows them on the screen. sendMessage(string message, recipient):Boolean- sends the message to the recipient and returns true if message is successfully sent or vice versa. checkMessages():Boolean- works as an interrupt and returns true if

Page 11: Low Level Design Report

11

there are new messages that are sent to user or vice versa.

Class Name DoctorInfoActivity

Class Description Activity class that handles doctor information screen and related controls

Package crm.target.application

Operations onCreate(Bundle):void- this operation is the overridden from Activity super class and composes the image buttons that are created with the data taken from doctor objects and other user interface elements when called in the context.

Class Name ProductActivity

Class Description Activity class that handles products screen and related controls

Package crm.target.application

Operations onCreate(Bundle):void- this operation is the overridden from Activity super class and composes the image buttons and other user interface elements when called in the context.

Class Name ProfileActivity

Class Description Activity class that handles profile screen and related controls

Package crm.target.application

Operations onCreate(Bundle):void- this operation is the overridden from Activity super class and composes buttons and user interface elements when called in the context. getPerformanceData():PerformanceData- returns the PerformanceData object from main system and draws a new user interface element showing the performance data.

Class Name VisitInfoActivity

Class Description Activity class that handles visit information screen and related controls

Package crm.target.application

Operations onCreate(Bundle):void- this operation is the overridden from Activity super class and fetches the previous visits and shows them linearly. fillEvaluationForm(form:EvalFormObject):void- gets the text strings from text view objects then sends them to main system.

Page 12: Low Level Design Report

12

4. References

[1] Object-Oriented Software Engineering, Using UML, Patterns, and Java, 2nd Edition, by

Bernd Bruegge and Allen H. Dutoit, Prentice-Hall, 2004, ISBN: 0-13-047110-0.

[2] ISO/IEC 12207. http://en.wikipedia.org/wiki/ISO/IEC_12207

[3] INTERNATIONAL STANDARD ISO/IEC 12207 SOFTWARE LIFE CYCLE PROCESSES, by Raghu

Singh. http://www.abelia.com/docs/12207cpt.pdf