Internship at Code Jawa MTC: Meeting, Thinking, Coding 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
Agenda Looking Ahead
< Company Profile < Project Description < Conclusion
Code Jawa Profile Founders
Craig Owensby
Spotcast
Iwan Tantra
Infoskape
Code Jawa Profile Mission Statement
“To provide a value-optimized software development outsourcing option, recognized for excellence throughout the world.”
Code Jawa Profile Core Strategies: The Five Ts
Code Jawa Profile Development Methodology
Code Jawa Profile Core Competencies
< Mobile Applications < Online Payment and Banking Solution < Custom Server-side Component Development
Code Jawa MTC Product Overview
< 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
Code Jawa MTC Use Cases
Query Application Usage
Log current activity
<>
Create Project MTC System
Query Idle Time
view
generate
Report
MTC User
Project Profile
<>
Edit Project
Code Jawa MTC Scope for Personal Edition Project Subdirectories
initialized by Initial Project Subdirectories 0..*
0..*
works in
1..*
1 MTC User
1
1
1
1
has
Project
1 Project Profile 1..*
0..*
has
1 User Preferences
Activities
1
initialized by
1..1
1 Profile Template 1
Specifies
0..*
consists of
(from Business Use-Case Model)
1..1
An application may be used in more than one project.
0..*
Initial Activity Types
Project Applications 1
0..1
1..1
External Activities
Categorizes
Computer Activities utilized in 1
initialized by 1..*
Activity Types 1..n
1..1
Code Jawa MTC System Architecture
hook notifications
Agent
window messages
Windows System mtcagent.dll
process boundary
Main Window
method calls
Business Logic
method calls
mtcclient.exe
DataAccess Objects
SQL queries
Local Database
BDE Engine
Code Jawa MTC System Architecture
< 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
Code Jawa MTC Working Tables project_status status_id: AUTOINC status_name: VARCHAR(40) dt_lastchanged: Timestamp
project project_id: AUTOINC 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) dt_lastchanged: Alpha(18)
project_folder project_id: AUTOINC (FK) folder_name: VARCHAR(255) folder_exists: BOOLEAN dt_lastchanged: Timestamp project_activity_type project_id: AUTOINC (FK) activity_type_id: AUTOINC activity_name: VARCHAR(40) description: BLOB(1,1) dt_lastchanged: Timestamp
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
application application_id: AUTOINC executable_file: VARCHAR(255) application_name: VARCHAR(255) description: BLOB(1,1) file_exists: BOOLEAN dt_lastchanged: Timestamp
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_file project_id: AUTOINC (FK) folder_name: VARCHAR(255) (FK) file_name: VARCHAR(255) file_exists: BOOLEAN dt_lastchanged: Timestamp
Code Jawa MTC Activity Monitor States The last known currentApplication is automatically recorded as an activity
MTC Startup
application switch
Monitoring 1 no application switch for tpShortApp seconds
(B) note currentApplication
The popup dialog displays the last known currentApplication application switch no application switch for tpLongApp Monitoring (C) display seconds 2 application popup user is idle
(F) record idle time
popup dialog answered
application switch
(A) Record currentApplication
(D) record application usage activity answer popup dialog
user is idle
(E) Record last activity before going idle
tpPeriodicPopup elapsed
Monitoring Idle time (popup displayed) user is idle
Monitoring 3
Code Jawa MTC Activity Monitor States
< States are modeled after the work cycles of the CTO < Implemented using the State design pattern (Gamma, et al) < To simplify further modifications
< Further research needed to improve the monitor states < Primarily psychological research
Code Jawa MTC Activity Monitor Implementation 1..1
1..1
ActivityContext
ActivityMonitor
TFrmMain 1
1
1
MonitoringState
State_A
State_C
State_B MonitoringState1
MonitoringState3
MonitoringState2
MonitoringStateIdle
ActivityState 1
State_E
State_D
State_F
Code Jawa MTC 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
Concluding Remarks < Three credits for an internship period is not enough. < More research to improve activity monitor states.
Thank You Any questions?