SOFTWARE CONSTRUCTION MUHAMMAD YUSUF Teknik Informatika Universitas Trunojoyo

  • Slides: 30
Download presentation
SOFTWARE CONSTRUCTION MUHAMMAD YUSUF Teknik Informatika – Universitas Trunojoyo Http: //yusufxyz. wordpres. com Email

SOFTWARE CONSTRUCTION MUHAMMAD YUSUF Teknik Informatika – Universitas Trunojoyo Http: //yusufxyz. wordpres. com Email : yusufxyz@gmail. com

SOFTWARE CONSTRUCTION Ø Istilah software construction didasarkan pada rincian pengerjaannya, yang berarti software melalui

SOFTWARE CONSTRUCTION Ø Istilah software construction didasarkan pada rincian pengerjaannya, yang berarti software melalui kombinasi dari koding, verifikasi, unit testing, testing terintregasi dan debugging. Ø Pengetahuan software construction terhubung dengan pengetahuan yang lain: - Software Design - Software Testing - Software Engineering - Software Project - Software Quality

Alasan SC terhubung dengan software lain Proses Software Construction melibatkan desain software yang signifikan

Alasan SC terhubung dengan software lain Proses Software Construction melibatkan desain software yang signifikan dan aktivitas testing software. Software Consntruction juga menggunakan output design dan menghasilkan salah satu input untuk testing, baik dalam aktivitas desain dan testing. batasan antara desain, konstruksi dan testing akan bervariasi tergantung dalam proses software life cycle yang di gunakan dalam proyek.

Software Construction Fundamentals 1. 1 Minimizing Complexity digunakan untuk mendesain seperti juga untuk construction

Software Construction Fundamentals 1. 1 Minimizing Complexity digunakan untuk mendesain seperti juga untuk construction 1. 2 Anticipating Change 1. 3 Constructing for Verification menjabarkan konsep dan mendeskripsikan bagaimana ketiganya digunakan dlm pembangunan. 1. 4 Standards in Construction

Minimizing Complexity Faktor kendala utama menggunakan komputer adalah kemampuan terbatas. Hal ini mendorong pembuatan

Minimizing Complexity Faktor kendala utama menggunakan komputer adalah kemampuan terbatas. Hal ini mendorong pembuatan ke sebuah driver yang paling handal dalam SC, yaitu: mengurangi kompleksitas. Dalam SC pengurangan kompleksitasnya pada proses verifikasi dan testing (pembuatan kode yang simple dan mudah dibaca) Akan dibahas lebih detail pada standart in construction, coding dan construction quality

Anticipating Change (Antisipasi terhadap perubahan) Software merupakan bagian yang tidak mungkin terhindar dari sebuah

Anticipating Change (Antisipasi terhadap perubahan) Software merupakan bagian yang tidak mungkin terhindar dari sebuah perubahan lingkungan luar. (4– 2 © IEEE 2004 Version) dan perubahan dari lingkungan luar akan mempengaruhi software dalam banyak hal. Mengantisipasi perubahan didukung oleh berbagai macam teknik yang diringkas dalam topic Coding.

Constructing for Verification Perancangan dalam rangka verifikasi berarti membangun software dengan mencari suatu kesalahan

Constructing for Verification Perancangan dalam rangka verifikasi berarti membangun software dengan mencari suatu kesalahan (error) yang dapat terbaca dengan mudah oleh Software Engineer yang menulis (kode) dari software TEknik 2 yang spesifik yang mendukung dalam perancangan untuk verifikasi, termasuk diantaranya yaitu : - standar pembuatan kode untuk mendukung referensi dari kode, unit testing, - pengaturan kode untuk mendukung testing secara otomatis, - menghindari penggunaan struktur bahasa yang kompleks dan sulit dimengerti orang lain.

Standards in Construction (Standar dalam perancangan) Standar 2 yang mempengaruhi perancangan meliputi : 1.

Standards in Construction (Standar dalam perancangan) Standar 2 yang mempengaruhi perancangan meliputi : 1. Bahasa Pemrogaman 2. Metode Komunikasi 3. Platform 4. Tool

Macam-macam Standart external (merancangan bahasa, perancangan tools, teknik antarmuka dan interaksi antara Software Construction

Macam-macam Standart external (merancangan bahasa, perancangan tools, teknik antarmuka dan interaksi antara Software Construction dan bidang pengetahuan lainnya ) di dapat dari berbagai sumber termasuk spesifikasi antar muka hardware and software. Standart internal(dari suatu organisasi dalam suatu level perusahaan/ badan atau untuk penggunaan proyek yang spesifik ), Standar ini mendukung koordinasi dari aktivitas suatu kelompok, mengurangi kompleksitas, mengantisipasi perubahan dan merancang untuk melakukan verifikasi.

2. Managing Construction: 2. 1 Construction Models 2. 2 Construktion Planning 2. 3 Construction

2. Managing Construction: 2. 1 Construction Models 2. 2 Construktion Planning 2. 3 Construction measurement

2. 1 Construction Models Berbagai macam model yang telah dibuat untuk membangun software, beberapa

2. 1 Construction Models Berbagai macam model yang telah dibuat untuk membangun software, beberapa diantaranya lebih menekankan pada perancangan daripada (model) yang lainnya

2. 2 Construction Planning Pemilihan dari metode construction adalah sebuah aspek terpenting (key aspect)

2. 2 Construction Planning Pemilihan dari metode construction adalah sebuah aspek terpenting (key aspect) dalam aktivitas construction planning. Pendekatan construction mempengaruhi kemampuan proyek untuk mengurangi kerumitan, mengantisipasi perubahan, dan untuk verifikasi. Construction planning juga menjelaskan susunan komponen yang dibuat dan digabungkan, kualitas manajemen proses dari software, alokasi dari pengerjaan tugas pada software teknik yang spesifik, dan tugas lainnya, termasuk pada metode yang dipilih.

2. 3. Construction measurement Banyak aktivitas construction dan buatan manusia (artifact) dapat ditentukan/dipilih, termasuk

2. 3. Construction measurement Banyak aktivitas construction dan buatan manusia (artifact) dapat ditentukan/dipilih, termasuk pengembangan code, pengubahan code, penggunaan kembali code (code reuse), penghapusan code, kerumitan code, statistika pemeriksaan code, perbandingan fault-fix dan fault -find, usaha, dan penjadwalan. Measurement dapat menjadi sangat berguna untuk tujuan pengontrolan construction, menjamin kualitas selama construction, memperbaiki proses construction

3. Practical considerations 3. 1 Construction Design 3. 2 Construction Languages 3. 3 Coding

3. Practical considerations 3. 1 Construction Design 3. 2 Construction Languages 3. 3 Coding 3. 4. Construction Testing 3. 5 Reuse

3. 1 Construction Design Beberapa proyek mengalokasikan lebih banyak pada aktivitas desain daripada construction;

3. 1 Construction Design Beberapa proyek mengalokasikan lebih banyak pada aktivitas desain daripada construction; Sebagai pekerja construction, membangun struktur fisik harus beradaptasi dengan membuat modifikasi small-scale sebagai laporan untuk rencana pembangunan (builder’s plan) , pekerja construction software harus membuat modifikasi dalam skala yang lebih besar atau skala yang lebih kecil untuk detail desain software selama construction.

3. 2. Construction Languages Linguistic notations dibedakan dalam hal penggunaan kata atau string dari

3. 2. Construction Languages Linguistic notations dibedakan dalam hal penggunaan kata atau string dari text untuk menjelaskan software construction yang komplek, dan gabungan kata / string ke dalam pola – pola yang mempunyai sintax kalimat Visual notation mengandalkan banyak kekurangan pada text oriented notation dari kedua bahasa dan penyusun formal, dan mengandalkan secara langsung interprestasi visual dan penempatan dari entitas visual yang merepresentasikan pokok software.

3. 2. Construction Languages Penyusunan secara visual cenderung agak terbatas karena hanya menggunakan pergerakan

3. 2. Construction Languages Penyusunan secara visual cenderung agak terbatas karena hanya menggunakan pergerakan dari entitas visual pada sebuah display.

3. 3 Coding Beberapa pertimbangan yang dipergunakan pada proses penyusunan pengkodingan software : Teknik

3. 3 Coding Beberapa pertimbangan yang dipergunakan pada proses penyusunan pengkodingan software : Teknik untuk pembuatan source code yang dapat dipahami, termasuk penamaan dan susunan source code. Mempergunakan pengkelasan, enumerated types, variable, penamaan konstanta dan yang lain entitas yang mirip. Mempergunakan struktur control. Penanganan kondisi error

Pencegahan pelanggaran sekuriti level kode (Sebagai contoh : buffer yang melebihi indek sebuah array).

Pencegahan pelanggaran sekuriti level kode (Sebagai contoh : buffer yang melebihi indek sebuah array). Penggunaan sebuah resource melalui penggunaan mekanisme pengeluaran dan tata cara pengaksesan penggunaan resourse yang dapat dipergunakan kembali (termasuk penglock-an thread atau database). Pengorganisasian source code ( menjadi statement-statement, fungsi-fungsi, kelasm paket-paket atau struktur yang lainnya). Dokumentasi kode. Perbaikan kode.

3. 4 Penyusunan Proses Percobaan Proses penyusunan memiliki dua bentuk untuk pengetesan, dimana sering

3. 4 Penyusunan Proses Percobaan Proses penyusunan memiliki dua bentuk untuk pengetesan, dimana sering dipergunakan oleh software engineer yang membuat kode tersebut : Unit testing, Integration testing.

Tujuan penyusunan proses pengetesan ini untuk mengurangi batasan diantara waktu adanya kesalahan pada code

Tujuan penyusunan proses pengetesan ini untuk mengurangi batasan diantara waktu adanya kesalahan pada code dan waktu kesalahan dideteksi. Dalam banyak kasus, proses pengetesan ini dicoba setelah proses penulisan kode selesai. Dalam kasus yang lain, pengetesan dibuat sebelum kode ditulis.

Sebagai contoh, penyusunan testing biasanya termasuk : pengetesan system, alpha testing, beta testing, stress

Sebagai contoh, penyusunan testing biasanya termasuk : pengetesan system, alpha testing, beta testing, stress testing, configuration testing, usability testing, atau yang lain, pengetesan yang lebih spesifik.

3. 5 Reuse Tugas-tugas yang terkait dalam penggunan kembali penyusunan konstruksi sebelum pengkodingan dan

3. 5 Reuse Tugas-tugas yang terkait dalam penggunan kembali penyusunan konstruksi sebelum pengkodingan dan pengetesan adalah: Seleksi unit, database, atau tes data reusability, Evaluasi kode atau tes reusability, Laporan informasi yang dipergunakan dalam kode baru, test prosedur atau test data.

3. 6 Construction Quality Beberapa Teknik yang ada untuk memastikan qualitas dari kode yang

3. 6 Construction Quality Beberapa Teknik yang ada untuk memastikan qualitas dari kode yang disusun adalah: Unit testing and Integration testing Test-first development Urutan code, Menggunakan pernyataan yang tegas, Debugging, Technical reviews

3. 7 Integration Sebuah kunci aktivitas sebelum penyusunan diintegrasikan dalam penyusunan fungsi-fungsi, kelas-kelas, component-componen

3. 7 Integration Sebuah kunci aktivitas sebelum penyusunan diintegrasikan dalam penyusunan fungsi-fungsi, kelas-kelas, component-componen dan subsitem yang terpisah. sebuah software system yang khusus mungkin membutuhkan untuk diintegerasikan dengan software yang lain atau hardware system.

Isi Buku Software Engineering Roger S Pressman 1 – The Product 2 – The

Isi Buku Software Engineering Roger S Pressman 1 – The Product 2 – The Process 3 - Project Management Concept 4 – Software Process and Project Metrics 5 – Software Project Planning

6 - Risk Management 7 - Project Scheduling & Tracking 8 - Software Quality

6 - Risk Management 7 - Project Scheduling & Tracking 8 - Software Quality Assurance 9 - Software Configuration Management 10 - System Engineering 11 - Analysis Concept and Principles

12 – Analysis Modelling 13 – Design Concept and Principles 14 – Design Methods

12 – Analysis Modelling 13 – Design Concept and Principles 14 – Design Methods 15 – Design for Real Time Systems 16 – Software Testing Methods 17 – Software Testing Strategies 18 – Technical Metrics for Software 19 – Object Oriented Concept and Principles

20 - Object-oriented Analysis 21 - Object Oriented Design 22 – Object Oriented Testing

20 - Object-oriented Analysis 21 - Object Oriented Design 22 – Object Oriented Testing 23 – Technical Metrics for Object Oriented System 24 – Formal Methods 25 – Cleanroom Software Engineering 26 – Software Reuse

27 - Reegineering 28 – Client/Server Software Engineering 29 – Computer Aided Software Engineering

27 - Reegineering 28 – Client/Server Software Engineering 29 – Computer Aided Software Engineering 30 – The Road Ahead