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
 




