Low Level Design Report
-
Upload
berkay-aydin -
Category
Documents
-
view
225 -
download
2
description
Transcript of 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
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
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
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.
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.
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
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.
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.
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
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
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.
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