Selasa, 21 Juni 2016

SOFTWARE ENGINEERING




 1. DEFINISI SOFTWARE ENGINEERING
 

IEEE (Institute of Electrical and Electronics Engineers) Computing Curricula 2005 :

 
Gambar 1. IEEE Curricula 2005 (Sumber : http://romisatriawahono.net/)

 


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

  1. Computer Programming Skills
  2. Information Systems Skills
  3. Information Management (Database) Skills
  4. Software Requirements Skills
  5. Software Design Skills
  6. Software Construction Skills
  7. Software Process Model and Life Cycle Model Skills
  8. Software Quality Skills
  9. Human-Computer Interaction Skills
  10. Project Management Skills 















 

Popular Posts