PENGEMBANGAN APLIKASI MANAJEMEN PROYEK PERANGKAT LUNAK BERBASIS SPRING : MODUL KOMUNIKASI DAN BUG TRACKER Anggik L. Y. Prita1, Febriliyan Samopa2, Radityo Prasetianto Wibowo3 1,2,3 Jurusan Sistem Informasi, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember (ITS) Surabaya, 60111, Indonesia Telp: (031)5939214, Fax : (031) 5964965 Email :
[email protected],
[email protected],
[email protected] Abstrak Pada era globalisasi seperti saat ini manajeman proyek merupakan hal yang berperan dalam keberhasilan suatu proyek. Faktor-faktor yang mempengaruhi dalam keberhasilan proyek tersebut antara lain adalah ketepatan analisa, pembuatan laporan, pengelolaan resiko dan komunikasi antar tim proyek. Pada umumnya dalam manajemen proyek yang komunikasinya tidak berjalan dengan lancar dan up to date memiliki resiko kegagalan proyek yang tinggi. Selain itu didalam aplikasi terdapat bug yang tidak tertangani dengan cepat, sehingga menyebabkan terhambatnya pengerjaan suatu proyek. Mengacu dari permasalahan diatas diajukan solusi berupa modul komunikasi dan bug tracker pada aplikasi manajemen proyek perangkat lunak berbasis Spring. Modul komunikasi dan bug tracker yang terdapat dalam aplikasi manajemen proyek ini terdiri dari beberapa komponen seperti bug tracker, recent activity, file sharing, news dan chatting. Komponen-komponen ini dibangun dengan menggunakan teknologi atau framework Spring dan diintegrasikan dengan menggunakan OSGi. Dengan adanya komponen-komponen yang terintegrasi dalam modul komunikasi ini, komunikasi antar tim proyek serta penanganan bug dapat dilakukan dengan lebih mudah dan cepat sehingga manajemen proyek dapat berjalan dengan efektif. Hasil dari pengembangan aplikasi ini adalah terpenuhinya sebuah aplikasi perangkat lunak yang dapat mempermudah proses komunikasi dan bug tracking dalam manajemen proyek. Komponen-komponen yang dapat membantu hal tersebut antara lain adalah komponen bug tracker, recent activity, file sharing, news dan chatting yang dapat menampilkan informasi dari suatu proyek yang dikerjakan sehingga pimpinan proyek dapat
dengan mudah memantau kinerja anggota serta progress dari proyek yang dikerjakan. Key Words: Manajemen proyek, Spring, Modul Komunikasi dan Bug Tracker 1. Pendahuluan Penerapan Teknologi Informasi (TI) dalam proses bisnis merupakan solusi yang dapat meningkatkan kompetensi dan efisiensi organisasi untuk menjawab persaingan pasar. Seiring berkembangnya teknologi ini menyebabkan organisasi dan perusahaan sadar akan nilai dari suatu usaha untuk bersaing agar dapat memenuhi permintaan pasar. Hal tersebut berdampak pada banyaknya proyek pengembangan TI khususnya pengembangan perangkat lunak, Akan tetapi, banyak proyek pengembangan perangkat lunak yang mengalami kegagalan. Beberapa faktor yang menyebabkan kegagalan antara lain buruknya manajemen proyek, komunikasi yang buruk antara pengguna, pembangun dan customer, Pelaporan status proyek yang kurang baik, dan sebagainya [1]. Karena adanya kemungkinan kegagalan proyek, diperlukan manajemen proyek yang tepat agar dapat mengelola jalannya proyek dengan baik. Permasalahan tersebut dapat diselesaikan dengan menyediakan perangkat lunak yang dikhususkan untuk manajemen proyek yang dapat diakses secara online dan multiuser dengan real time sehingga pimpinan proyek dapat melakukan kolaborasi kerja dengan anggota tim dimanapun mereka berada. Dari permasalahan diatas diajukan solusi berupa modul komunikasi dan bug tracker pada aplikasi manajemen proyek perangkat lunak berbasis Spring. Aplikasi manajemen proyek perangkat lunak berbasis Spring pada modul komunikasi dan bug tracker yang menekankan pada
beberapa komponen seperti bug tracker, recent activity, file sharing, news dan chatting. Komponen-komponen ini dapat menampilkan informasi dari suatu proyek yang dikerjakan sehingga pimpinan proyek dapat dengan mudah memantau kinerja anggota serta progress dari proyek yang dikerjakan. Modul ini dibangun dengan menggunakan teknologi Spring dengan dependency injection Hibernate sebagai ORM (Object Relational Mapping) dan diintegrasikan dengan menggunakan OSGi. Komponen-komponen yang dapat membantu menampilkan informasi dari suatu proyek yang dikerjakan sehingga pimpinan proyek dapat dengan mudah memantau kinerja anggota serta progress dari proyek yang dikerjakan. Aplikasi manajemen proyek ini menjadi solusi untuk mengelola proyek sehingga dapat meningkatkan efisiensi waktu dan biaya pengerjaannya serta memudahkan komunikasi antar tim proyek maupun stakeholder. 2. Tinjauan Pustaka Dalam pembangunan aplikasi, digunakan beberapa dasar dari beberapa sumber bacaan tentang konsep dan teknologi apa saja yang akan digunakan atau di terapkan. 2.1. Manajemen Proyek Manajemen Proyek adalah merencanakan, menyusun organisasi, memimpin dan mengendalikan sumber daya perusahaan untuk mencapai sasaran jangka pendek yang telah ditentukan. Lebih jauh lagi manajemen proyek menggunakan pendekatan hirarki vertical dan horizontal. (H. Kurzner, 1982) Salah satu panduan dalam menjalankan manajemen proyek yaitu PMBOK (Project Management Body Of Knowledge) terbagi dari 39 proses manajemen kedalam sembilan knowledge area, sebagaimana terlihat pada Gambar 2.1.
Gambar 2.1 Project Management Body Of Knowledge [2] Di dalam hubungannya dengan Manajemen Proyek yang mengacu pada PMBOK, modul komunikasi dan bug tracker ini merupakan proses yang berada di salah satu Knowledge Areas, yaitu Project Communications Management dan Project Quality Management yang terlihat pada Gambar 2.2
Gambar 2.2 Project Communications Management dan Project Quality Management [2] Hal ini dikarenakan modul komunikasi dan bug tracker berkaitan dengan proses-proses pada pengelolaan komunikasi serta pengelolaan kualitas proyek itu sendiri. 2.2. Spring Spring (termasuk Spring MVC) merupakan framework handal yang sudah digunakan secara luas. Spring dianggap sebagai standard stack development untuk pembuatan aplikasi berbasis Java EE. Dasar arsitektur dari Spring adalah container Inversion of Control (IoC) berdasar dari kegunaan JavaBean [4]. Hal ini memungkinkan Spring dapat melakukan Dependency Injection pada suatu object. Dependency Injection salah satu implementasi dari IoC yang dikhususkan pada kemampuan suatu container untuk meng-inject dependency dari suatu
object melalui object lain. Spring menyediakan berbagai abstraksi untuk mengakses data. Spring dapat dengan mudah diintegrasikan dengan berbagai macam ORM dan library untuk mengakses data seperti Hibernate, Ibatis, maupun menggunakan JDBC biasa. Gambar 2.3 menunjukkan 17 modul yang terbagi menjadi beberapa kategori pada Spring Framework
Gambar 2.3 Project Management Body Of Knowledge [2] 2.3. Hibernate Hibernate berfungsi untuk memetakan data dari suatu model object (dalam kasus ini adalah Java Class) ke tabel database relasional. Selain itu Hibernate juga menyediakan data query dengan menggunakan HQL maupun SQL. Hibernate juga dapat dengan sangat mudah diintegrasikan dengan Spring. Gambar 2.4 memperlihatkan arsitektur dari Hibernate.
Secara umum, fungsi utama dari Hibernate terletak pada dua obyek di layer ini, yaitu XML Mapping yang berisi pemetaan class-class Java ke tabel-tabel pada database dan file hibernate.properties yang berisi keterangan mengenai database yang dipakai, driver yang digunakan, dan berbagai variable lainnya yang digunakan oleh XML mapping. Sedangkan Persistence Object merepresentasikan object dari Java Application (dalam kasus ini berupa Java Class) yang dipetakan ke tabel-tabel database relasional. 2.4. OSGi dan Spring DM OSGi merupakan suatu konsep baru dalam pola pengembangan perangkat lunak berbasis Java. Secara umum, OSGi memecah aplikasi menjadi modul-modul kecil (dalam OSGi dikenal dengan nama Bundle) yang secara terpisah melakukan proses tersendiri di dalamnya. Bundle-bundle tersebut kemudian saling berinteraksi dalam pertukaran data melalui service-service yang telah didaftarkan ke OSGi container. Gambar 2.5 menjelaskan proses interaksi antar bundle yang terjadi di dalam container OSGi.
Gambar 2.5 Interaksi OSGi (OSGi Service) Spring DM sendiri merupakan library yang dapat dijadikan solusi dalam mengembangkan aplikasi berbasis Spring yang dapat di deploy di container OSGi. Gambar 2.9 memperlihatkan konsep dasar dari Spring DM.
Gambar 2.4 Hibernate (Hibernate) Layer terbawah adalah database. Hibernate menyediakan abstraksi akses data ke berbagai macam database seperti Oracle, MySQL, PostgreSQL, dan DBMS lainnya. Layer diatas database merupakan layer dimana Hibernate bekerja.
aplikasi utama menggunakan Spring framework dan implementasi OSGi Container meliputi konfigurasi serta pembuatan OSGi Container.
Gambar 2.6 Konsep Spring DM (OSGi Container, Spring) Spring DM tersusun dari kumpulan OSGi bundles yang memungkinkan Spring DM mengatur konfigurasi dari aplikasi berbasis Spring yang di deploy di OSGi container, Spring DM bahkan bisa menjalankan aplikasi web melalui OSGi container. 3. Pembahasan Aplikasi manajemen perangkat lunak ini, dikembangkan dengan framework Spring yang berbasis Java. Untuk mendukung pengintegrasian antara core system dan berbagai komponen maka aplikasi ini menggunakan container OSGi. OSGi berisi bundles Tomcat, Hibernate, Srping Library, dan berbagai bundle lain dari komponen yang akan menempel diatas nantinya. Dibawah OSGi tetap membutuhkan JVM (Java Virtual Machine). Pada 3.1 dibawah ini merupakan arsitektur sistem yang akan dibuat.
3.1.1. Konfigurasi Environment Konfigurasi Environment dibutuhkan untuk pengaturan aplikasi agar dapat berjalan dengan baik. Langkah pertama adalah konfigurasi JDK yang harus dipastikan telah terinstall dengan benar. Sedangkan untuk ANT harus terinstall terlebih dahulu ke suatu lokasi path dimana JDK dan ANT terinstall seperti yang terlihat pada Gambar 3.2 dibawah ini.
Gambar 3.2 Konfigurasi 3.1.2. Struktur Directory Project Pada tahapan ini, dilakukan pembuatan struktur direktory untuk penempatan source files yang akan dibuat. Pada awalnya membuat nama project terlebih dahulu, kemudian membuat subdirektori src’ sebagai tempat file source Java yang akan dibuat nantinya serta sub-direktori ‘war’ untuk menyimpan apapun yang seharusnya menjadi file WAR yang akan digunakan dalam package dan untuk mendeploy aplikasi. Semua file source selain source Java juga diletakkan dalam direktori ‘war’. Dalam direktori ‘war’ dibuat sub-direktori ‘WEBINF’ yang berfungsi untuk direktori pelengkap dalam pembuatan aplikasi berbasis web. Direktori struktur yang dibuat seperti pada Gambar 3.3
Gambar 3.1 Arsitektur Sistem 3.1. Pembuatan Aplikasi Sistem berbasis web ini dikembangakan dengan menggunakan bahasa pemrograman berbasis Java menggunakan framework Spring. Piranti lunak (editor) utama yang digunakan adalah editor opensource Eclipse Helios. Tahapannya meliputi membuat struktur direktori project, setting environment dan Ant build script, dan pembuatan
Gambar 3.3 Struktur Direktori
3.1.3. Konfigurasi File untuk Pembuatan Aplikasi Pada pengembangan aplikasi berbasis Spring ini dibutuhkan beberapa file yang memiliki kegunaan masing-masing. File-file konfigurasi tersebut pada umumnya berupa file XML dan file yang berekstensi ‘.properties’.
@RequestMapping(value="new_post", method=RequestMethod.GET) public ModelAndView newPost() { ModelAndView mav = new ModelAndView("news/newPost"); Post post = new Post(); //post.setPriority(news.getPriority())
3.1.3.1. Package ‘model’ Package model ini berisi beberapa file Java yang digunakan untuk menyimpan atribut yang dimiliki oleh tabel-tabel yang ada pada basis data termasuk nama kolom. Gambar 3.4 memperlihatkan potongan kode program dari salah satu file Java dalam package model yaitu News.java. File ini menyimpan atribut yang dimiliki tabel News pada basis data Comment. @Entity @Table(name="Comment") public class Comment { @Id @GeneratedValue(strategy=GenerationType.AUTO ) private int commentId; @Column @NotEmpty(message="Comment can not be emptied !") private String note; @Column private int postId; @Column private String created_by; @Column private String created_date; @Column private String modified_by; @Column private String modified_date; /** * @param id the id to set
*/
Gambar 3.4 Package Model 3.1.3.2. Package ‘controller’ Package Controller ini berisi beberapa file Java yang dalam Spring Web MVC file Controller ini memiliki fungsi menangani request dan ,dalam hal ini, mengembalikan sebuah ModelAndView sebuah halaman *.jsp. File Java dalam package controller berisi beberapa method yang menangani proses membuat, membaca, menghapus, memperbarui. Gambar 3.5 memperlihatkan salah satu method untuk proses membuat dari salah satu file Java dalam package controller yaitu PostCommentController.java.
; mav.getModelMap().put("newPost", post); return mav; }
Gambar 3.5 Package Controller 3.1.3.3. Package ‘service’ Package service berisi beberapa file Java yang berisi interface yang nantinya digunakan untuk proses pengambilan data. File ini merupakan interface yang mendefinisikan fungsionalitas yang akan disediakan oleh class DAO (Data Access Object) implemetation. Gambar 3.6 merupakan salah satu file Java yang ada dalam package service. @Service("postDaoImpl") @Transactional(readOnly=true) public class PostDaoImpl implements PostDao { @Autowired SessionFactory sessionFactory; Session session; @Override @Transactional(readOnly=false) public void addPost(Post post) { // TODO Auto-generated method stub session = sessionFactory.getCurrentSession(); session.save(post); }
Gambar 3.6 Package Service 3.1.3.4. View Aplikasi ini menggunakan Java Server Pages (JSP) dalam pembuatan user interface nya. Untuk memperkuat user interface, digunakan JQuery. Berikut merupakan beberapa contoh user interface untuk sebuah komponen yang masingmasing mewakili proses retrieve, create, update, dan detail. 3.1.3.5. List (Retrieve) Halaman List digunakan untuk menampilkan daftar suatu data ke dalam bentuk table yang mudah dibaca.
3.1.3.6 New (Create) Halaman New merupakan halaman untuk melakukan penambahan data pada aplikasi yang dibuat. Pada halaman ini pengguna dapat membuat data baru sesuai kebutuhan. Setiap komponen memiliki halaman new berbeda-beda sesuai dengan kebutuhan masing-masing komponen. 3.1.3.7. Detail Halaman Detail merupakan laporan atau halaman untuk menampilkan hasil pengisian data secara lengkap. Pada halaman ini pengguna dapat melihat data yang telah diisikan secara lengkap. Setiap komponen memiliki halaman detail berbedabeda sesuai dengan kebutuhan masing-masing komponen. 3.2. Integrasi Aplikasi Masing-masing modul merupakan suatu bundle yang terpisah. Sehingga diperlukan sebuah metode dalam hubungan data antar modul. Salah satu metode yang digunakan ialah dengan OSGi container.
function yang dimiliki komponen penjadwalan. Gambar 3.8 merupakan potongan kode file MANIFEST.MF.
Gambar 3.8 MANIFEST.MF 4. Analisis Uji Coba Pada tahapan implementasi dan uji coba, terjadi beberapa permasalahan pada saat proses pengintegrasian komponen pada modul komunikasi dan bug tracker yang dibuat dengan modul core system sebagai penyedia OSGi sebagai service integrasi. Adapun permasalahan yang didapat antara lain : •
3.3. Koneksi ke OSGi Komponen yang diintegrasikan dengan komponen lain menggunakan OSGi harus memiliki konfigurasi pada source folder projectnya berupa folder META-INF yang berisi file MANIFEST.MF yang didalamnya berisi konfigurasi untuk koneksi dengan core system. Gambar 3.7 memperlihatkan struktur folder META-INF.
•
5.
Gambar 3.7 Struktur Folder META-INF Dalam file MANIFEST.MF berisi konfigurasi agar komponen lain dapat mengakses
Hibernate yang merupakan library dari Spring sebagai ORM untuk database tidak dapat berjalan dengan baik ketika melakukan mapping dengan modul core system yang menggunakan jdbc untuk installasi ke OSGi service. Sehingga, beberapa data tidak dapat terbaca dengan sempurna ketika aplikasi dijalankan. Pada penggunaan Apache Tomcat sering terjadi kendala ketika melakukan perubahan core. Apache Tomcat tidak dapat melakukan compile dengan sempurna pada file JSP. Sehingga, tidak jarang pula melakukan restart Apache Tomcat setiap kali melakukan perubahan file.
Kesimpulan
Setelah dilakukan uji coba dan analisis terhadap sistem yang dibuat, maka dapat diambil kesimpulan sebagai berikut: 1. Pembuatan modul komunikasi dan bug tracker pada aplikasi manajemen proyek dapat dilakukan dengan mengimplementasikan teknologi Spring MVC, Hibernate dan JSP. 2. Dengan menggunakan OSGi, komponen Recent Activity, News, File Sharing, Bug Tracker dan Chatting dapat diintegrasikan dan dapat diimplementasikan untuk membentuk modul komunikasi dan bug tracker pada aplikasi manajemen proyek.
6.
Saran
Beberapa saran yang diharapkan dapat dipertimbangkan untuk penelitian mendatang antara lain: 1. Pada penelitian tugas akhir ini, pembangunan komponen File Sharing dan Chatting dilakukan dengan menggunakan Spring dan Hibernate sebagai ORMnya yang menyebabkan komponen tersebut belum dapat diintegrasikan dengan baik. Untuk pengembangan penelitian berikutnya, perlu dipertimbangkan penggunaan teknologi yang digunakan seperti framework, ORM sebagai dependency injection, dan lain-lain, agar memiliki konfigurasi yang sama. 2. Fitur-fitur yang terdapat pada aplikasi ini dibuat tanpa melakukan survey terlebih dahulu kepada calon pengguna. Dalam pengembangan selanjutnya, tahapan survey pengguna perlu dilaksanakan untuk memperoleh hasil yang lebih baik. Daftar Pustaka Brampton, M. (2008). PHP5 CMS Framework Development. Birmingham: PACK Publishing. [1] Charette, R. N. (2005). Why Software Fails IEEE Spectrum. IEEE Spectrum. [2] Institute, P. M. (2008). A Guide to the Project Management Body of Knowledge fourth Ed. Pennsylvania: Project Management Institute. Jira, T. (2011). Introduction. Retrieved Februari 24, 2011, from http://www.atlassian.com: http://www.atlassian.com/software/jira/ Johnson, R. (2005, May 1). Introduction to Spring Framework. Dipetik March 1, 2011, dari TheServerSide.com: http://www.theserverside.com/news/1364527/Int roduction-to-the-Spring-Framework Perks, M. (2006). Best Prectices for Software Development Projects. Developer Works - IBM. Peter Saint-Andre, K. S. (2009). Building RealTime Applications with Jabber. XMPP: The Definitive Guide . Phillips, J. (2004). IT Project Management On Track from Start to Finish. California: McGrawHill/Osborne.
Yellugani, S. (2007, May 16). Facts - Project Failure. Retrieved February 24, 2011, from EzineArticles: http://ezinearticles.com/?Facts--Project-Failure&id=566937