SOFTWARE ENGINEERING
1. DEFINISI SOFTWARE ENGINEERING
IEEE (Institute
of Electrical and Electronics Engineers) Computing Curricula 2005 :
Berdasarkan IEEE Curricula pada Gambar 1 dapat dijelaskan bahwa fokus Software Engineering ke arah
pengembangan software dan pengelolaan
tahapan SDLC (System Development Life
Cycle). Pada Curricula tersebut
dijelaskan pula lebih dalam bahwa software engineering memiliki definisi
sebagai berikut :
“Software engineering is the discipline of developing
and maintaining software systems that behave reliably and efficiently, are
affordable to develop and maintain, and satisfy all the requirements that
customers have defined for them”
Berdasarkan definisi tersebut dapat
dijelaskan bahwa software engineering
merupakan Suatu disiplin ilmu yang membahas semua aspek produksi perangkat
lunak, mulai dari tahap awal requirement
capturing (analisa kebutuhan pengguna), specification
(menentukan spesifikasi dari kebutuhan pengguna), desain, coding, testing sampai pemeliharaan sistem setelah digunakan.
Gambar 2. Tahap Pengembangan Software
|
Ilustrasi mengenai disiplin ilmu dan
karakteristik software engineering menurut
IEEE Curricula, dijelaskan pada
Gambar 3.
Gambar 3. Karakteristik Disiplin ilmu
Software Engineering
|
2. KURIKULUM KONSENTRASI SOFTWARE ENGINEERING
Pada konsentrasi ini
mahasiswa mempelajari keseluruhan aspek produksi software dalam kerangka Software
Development Life Cycle, mulai dari tahap analisis kebutuhan, desain,
pengkodean, pengujian, hingga perawatan perangkat lunak. Mahasiswa yang
mengambil konsentrasi ini diharapkan mampu memahami proses pengembangan software secara komprehensif, termasuk
di dalamnya standar, notasi, dan pengukuran kualitas software. Materi perkuliahan dalam konsentrasi ini juga
mengkombinasikan faktor non teknis sehingga dapat membentuk mahasiswa menjadi Technopreneur dalam bidang pengembangan software.
Konsentrasi software engineering memiliki 3 matakuliah,
yaitu Rekayasa Perangkat Lunak (Semester 5), Manajemen Proyek (Semester 6),
serta Perancangan dan Pengembangan Aplikasi Terdistribusi (Semester 7).
Rekayasa Perangkat Lunak
Tujuan
Pembelajaran
|
Mahasiswa mampu memahami tahapan dan
metodologi pembangunan perangkat lunak secara benar, baik secara mandiri
maupun kerjasama tim.
|
Kompetensi
|
· Mahasiswa
mampu menjelaskan model pengembangan perangkat lunak.
· Mahasiswa
mampu merumuskan dengan teliti berbagai macam metodologi pengembangan
perangkat lunak.
· Mahasiswa
mampu menganalisis dan melakukan perancangan model perangkat lunak.
· Mahasiswa
mampu bekerjasama dan berfikir kreatif dalam membuat perangkat lunak, serta
mempresentasikan hasil karya rancangan dan implementasi perangkat lunak.
|
Pokok
Bahasan
|
Pengantar model perangkat lunak,
Aktivitas terintegrasi, Pemodelan Analisis, Pemodelan Desain Perangkat Lunak,
Implementasi sistem, Software Testing
Strategies, Software Testing
Techniques, Quality Assurance,
Evaluasi dan pengukuran produk perangkat lunak, Software Performance, Pembiayaan dan Estimasi Perangkat Lunak
|
Manajemen
Proyek
Tujuan
Pembelajaran
|
Mata kuliah bertujuan untuk menumbuhkan
pengetahuan mengenai fungsi manajemen proyek sistem informasi, dari sudut pandang
penggunaan mulai dari persiapan, perencanaan, pelaksanaan, pengendalian dan
pengakhiran suatu proyek. Diharapkan mahasiswa dapat memanfaatkan dan mengembangkan
teknik-teknik manajemen proyek sistem informasi sehingga pemahaman yang
dimiliki dapat menjadi landasan dalam perancangan dan pengembangan sistem
informasi.
|
Kompetensi
|
· Mahasiswa
mampu menguasai konsep dan kerangka kerja manajemen proyek teknologi
informasi
· Mahasiswa
mampu merencanakan dan mengeksekusi rencana proyek teknologi informasi
· Mahasiswa
mampu mengendalikan dan menutup proyek teknologi informasi
|
Pokok
Bahasan
|
Konsep proyek TI dan manajemen proyek
TI, Pengantar manajemen proyek, Kerangka kerja manajemen proyek, Area
pengetahuan proyek, dan Kasus-kasus proyek TI
|
Perancangan
dan Pengembangan Aplikasi Terdistribusi
Tujuan
Pembelajaran
|
Mahasiswa memahami arsitektur, desain,
dan implementasi aplikasi terdistribusi. Selain itu, mahasiswa mampu memahami
konsep Service Oriented Computing,
dan framework untuk pengembangan aplikasi terdistribusi.
|
Kompetensi
|
· Mahasiswa
mampu merancang dan membangun perangkat lunak menggunakan konsep konkurensi
dan sinkronisasi.
· Mahasiswa
mampu merancang dan membangun aplikasi terdistribusi
· Mahasiswa
mampu merancang, membangun, dan mempublikasikan aplikasi berbasis layanan
· Mahasiswa
memiliki skill dalam menggunakan teknologi terbaru untuk membangun aplikasi
sistem terdistribusi
|
Pokok
Bahasan
|
Konsep dan arsitektur sistem
terdistribusi, paradigma service
oriented architecture, pemrograman menggunakan konsep konkurensi dan multithreading, perancangan dan
pembangunan service oriented software,
teknologi middleware, XML dan JSON,
interoperabilitas aplikasi web – desktop – mobile, Windows
Communication Foundation, dan keamanan aplikasi terdistribusi.
|
3. TOPIK PENELITIAN BIDANG SOFTWARE ENGINEERING
Topik Penelitian yang
berkaitan dengan bidang Software
Enginnering, yaitu :
· Component-Based
Software Engineering
· Computer-Supported
Cooperative Work
· Object-Oriented
Technology
· Patterns
and Frameworks
· Process
and Workflow Management
· Programming
Languages and Software Engineering
· Requirements
Engineering
· Software
Architecture
· Software
Design Methods
· Software
Engineering Decision Support
· Software
Maintenance and Evolution
· Software
Process Modeling
· Software
Quality
· Software
Reuse
· Software
Testing
· Software
project management
· Software
maintenance, reverse engineering and re-engineering
· Methods
of software analysis and design
· Software
metrics
· Agent-based
software development
· Aspect-oriented
software development
· Modelling
and enactment of software processes, rigorous and agile
|
· Innovative
computational strategies and numerical algorithms for large-scale engineering
problems
· Analysis
and simulation techniques and systems
· Model
and mesh generation
· Control
of the accuracy, stability and efficiency of computational process
· Exploitation
of new computing environments
· Applications
of AI, knowledge-based systems, computational intelligence, including fuzzy
logic, neural networks and evolutionary computations
· Application
of object-oriented technology to engineering problems
· Intelligent
human computer interfaces
· Design
automation, multidisciplinary design and optimization
· CAD,
CAE and integrated process and product development systems
· Architecture,
design and frameworks
· Software
engineering supported by multi and hypermedia
· Experimental
software engineering
· Tools
and software engineering environments
· Software
engineering ontologies
· Software
safety, security, privacy and risks
· Software
verification, validation and inspection
|
Beberapa Journal Penelitian Bidang Software Engineering
Beberapa Jurnal Penelitian
bidang Software Engineering :
4. KOMPETENSI LULUSAN BIDANG SOFTWARE ENGINEERING
- Computer Programming Skills
- Information Systems Skills
- Information Management (Database) Skills
- Software Requirements Skills
- Software Design Skills
- Software Construction Skills
- Software Process Model and Life Cycle Model Skills
- Software Quality Skills
- Human-Computer Interaction Skills
- Project Management Skills