Internship at Code Jawa
Agenda
MTC: Meeting, Thinking, Coding
Looking Ahead
< Company Profile < Project Description < Conclusion
A Sasmito Adibowo 1299000029
Faculty of Computer Science University of Indonesia Kampus Baru UI Depok Jawa Barat
Code Jawa 1/F Tower E Jl TB Simatupang Kav 88 Jakarta 12520
1
2
Code Jawa Profile
Code Jawa Profile
Founders
Mission Statement
Iwan Tantra
Craig Owensby
“To provide a value-optimized software development outsourcing option, recognized for excellence throughout the world.”
Infoskape
Spotcast
3
4
Code Jawa Profile
Code Jawa Profile
Core Strategies: The Five Ts
Development Methodology
5
6
Code Jawa Profile
Code Jawa MTC
Core Competencies
Product Overview
< Mobile Applications < Online Payment and Banking Solution < Custom Server-side Component Development
< MTC: Meeting, Thinking, Coding < Activity-monitoring software < Primarily for computer-intensive employees
< Monitor project resources < On-the fly activity reporting
< Personal Edition prototype < Enterprise Edition is planned
7
8
Code Jawa MTC
Code Jawa MTC
Use Cases
Scope for Personal Edition Project Subdirectories
initialized by Initial Project Subdirectories 0..*
0..*
Query Application Usage
Log current activity
<> works in
Create Project Query Idle Time
MTC System
1..*
1 1
0..*
has
view
generate
1 User Preferences
<>
Report
Activities
1..1
1
initialized by
1
An application may be used in more than one project.
0..*
Initial Activity Types
1
0..1
1..1
Edit Project
External Activities
Computer Activities utilized in 1
initialized by 1..*
Activity Types
Code Jawa MTC
Code Jawa MTC
System Architecture
System Architecture
Agent
Windows System mtcagent.dll
method calls
process boundary
Business Logic
method calls
mtcclient.exe
11
DataAccess Objects
SQL queries
Local Database
BDE Engine
1..1
1..n
10
Main Window
1 Profile Template
0..* Project Applications
9
window messages
1..1
Specifies
Categorizes
hook notifications
1 Project Profile 1..*
consists of
(from Business Use-Case Model)
Project Profile
1
1
1
MTC User
MTC User
has
Project
< Layered two-tier model < Two main tiers: Agent and Client < Agent implements the low-level functions for data collection < Client functions as the user interface and data storage/processing < Communication through window messages
12
Code Jawa MTC
Code Jawa MTC
Working Tables
Activity Monitor States
project project_id: AUTOINC
project_status status_id: AUTOINC status_name: VARCHAR(40) dt_lastchanged: Timestamp
status_id: AUTOINC (FK) project_name: VARCHAR(40) description: BLOB(1,1) project_start: Timestamp project_finish: Timestamp root_folder: Alpha(18) dt_lastchanged: Timestamp
project_application application_id: AUTOINC (FK) project_id: AUTOINC (FK)
folder_exists: BOOLEAN dt_lastchanged: Timestamp
activity_name: VARCHAR(40) description: BLOB(1,1) dt_lastchanged: Timestamp
executable_file: VARCHAR(255) application_name: VARCHAR(255) description: BLOB(1,1) file_exists: BOOLEAN dt_lastchanged: Timestamp
dt_lastchanged: Alpha(18)
project_folder project_id: AUTOINC (FK) folder_name: VARCHAR(255)
project_activity_type project_id: AUTOINC (FK) activity_type_id: AUTOINC
application application_id: AUTOINC
application_project_file application_id: AUTOINC (FK) project_id: AUTOINC (FK) folder_name: VARCHAR(255) (FK) file_name: VARCHAR(255) (FK) dt_lastchanged: Alpha(18)
project_activity project_id: AUTOINC (FK) activity_id: AUTOINC activity_type_id: AUTOINC (FK) application_id: AUTOINC (FK) folder_name: VARCHAR(255) (FK) file_name: VARCHAR(255) (FK) description: BLOB(1,1) activity_start: Timestamp activity_finish: Timestamp dt_lastchanged: Timestamp
The last known currentApplication is automatically recorded as an activity
MTC Startup
application switch
Monitoring 1
application switch
(A) Record currentApplication
The popup dialog displays the last known currentApplication application switch no application switch for tpLongApp Monitoring (C) display seconds 2 application popup
no application switch for tpShortApp seconds
(B) note currentApplication
file_exists: BOOLEAN dt_lastchanged: Timestamp
(F) record idle time
tpPeriodicPopup elapsed
(E) Record last activity before going idle
Monitoring 3
Monitoring Idle time (popup displayed)
popup dialog answered
user is idle
13
14
Code Jawa MTC
Code Jawa MTC
Activity Monitor States
Activity Monitor Implementation
< States are modeled after the work cycles of the CTO < Implemented using the State design pattern (Gamma, et al)
answer popup dialog
user is idle
user is idle
project_file project_id: AUTOINC (FK) folder_name: VARCHAR(255) (FK) file_name: VARCHAR(255)
(D) record application usage activity
1..1
1..1
ActivityContext
ActivityMonitor
TFrmMain 1
1
1
MonitoringState
State_A
State_C
ActivityState 1
State_E
< To simplify further modifications
< Further research needed to improve the monitor states < Primarily psychological research
State_B MonitoringState1
State_D
State_F
MonitoringState3
MonitoringState2
MonitoringStateIdle
15
16
Code Jawa MTC
Concluding Remarks
Tools Used < Borland C++ Builder 5 < Computer Associates ERwin 4.0 < Rational Rose 2000 < Doxygen 1.2.17 < UltraEdit 7.10a < Visio Professional 5 < Microsoft Word 2000 < Microsoft Paint
17
< Three credits for an internship period is not enough. < More research to improve activity monitor states.
18
Thank You Any questions?
19