Introduction to Software Engineering
Evaluasi Software
Tentang Software
Karakteristik Software
Komponen Software
Aplikasi Software
Sejarah Software
Mengapa Software engineering?
Apa yang dimaksud software engineering?
Siapa yang melakukan software engineering?
Evolution of Software
-beberapa tahun lalu:
- Batch orientation
- Limited distribution
- Custom software
-era tahun ke -2:
- Multiuser
- Real-time
- Database
- Product software
-era tahun ke - 3:
- Distributed systems
- Embedded “intelligence”
- Low cost hardware
- Consumer impact
-era tahun ke - 4:
- Powerful desk-top systems
- Object-oriented technologies
- Expert systems
- Artificial neural networks
- Parallel computing
- Network computers
Karakteristik Software
Software memiliki fungsi ganda. Software dapat disebut sebagai produk, tetapi juga dapat disebut sebagai sarana yang dapat mengantarkan produk itu sendiri
Software bersifat logical dibanding elemen fisik dari sistem
Software memiliki beberapa karakteristik yang dapat membedakan dari hardware
Software dikembangkan atau dibangun, tetapi tidak menghasilkan classical sense
Banyak software yang sudah bisa digunakan secara langsung atau bersifat custom built, tetapi ada pula yang masih menggabungkan antar beberapa komponen.
Aplikasi Software
System Software - Kumpulan dari beberapa program yang dibuat untuk memberikan servis terhadap program lainnya pada setiap level. Contohnya : compiler, operating sistem
Real-time Software - Program yang dapat memonitor/menganalisa/mengontrol kejadian nyata yang terjadi di dunia ini
Business Software - Program yang dapat mengakses, menganalisa dan memproses informasi bisnis.
Engineering and Scientific Software - Software yang menggunakan algoritma “number crunching” untuk membedakan science dan applications. Sistem simulation, computer-aided design.
Embedded Software - Software terletak pada read only memory dan digunakan untuk mengontrol produk dan sistem yang akan dikirimkan untuk konsumen dan industrial markets.
Artificial Intelligence (AI) Software - program yang digunakan untuk teknik AI dan metodenya digunakan untuk memecahkan masalah yang kompleks. Contohnya : expert sistem, pengenalan pola, games.
Internet Software - program yang mensupport pengaksesan internet. Contohnya : search engine, browser, e-commerce software,authoring tools.
Software Tools and CASE environment - tools dan program yang dapat membantu pembuatan aplikasi software dan sistem.contohnya : test tools dan version control tools.
Software Crisis
Dalam dunia industri, ada istilah “crisis”
Arti : “Crisis”
Waktu yang menentukan atau krusial.
Software crisis
Sekumpulan masalah yang ditemui dalam membuat sofware
Masalah pengembangan software
Masalah dalam perawatan yang semakin banyak untuk software yang ada
Contoh ciri-ciri software “crisis” :
- Build a wrong product.
- Project schedule problems
- Cost estimation problems
Software Myths (I)
Banyak penyebab pada kegagalan software disebabkan oleh mitos yang timbul pada sejarah awal pengembangan software.
-- mitos software disebarkan dengan penjelasan yang salah dan membingungkan.
-- Manager software dibawah tekanan untuk menentukan anggaran, menyusun jadwal dan meningkatkan kualitas
Myths --> Pendirian yang menyesatkan orang ---> masalah serius dalam produksi software
Management Myths:
“Kita cukup memiliki buku yang menyediakan standar dan prosedur untuk mengembangkan software. Tanpa perlu menyediakan orang untuk mempelajarinya.”
“Jika kita tidak menepati jadwal, kita dapat menambah programmer”
Software Myths (II)
Customers dari software mungkin berasal dari :
- di luar perusahaan yang telah merequest software dibawah kontrak
- seseorang yang berasal dari dalam (in house group)
- marketing atau sales group.
Customer Myths:
“pernyataan umum adalah memulai dengan menulis program secukupnya kemudian kita dapat memberikan penjelasan dengan detail”
“project requirement secara langsung berubah, tetapi perubahan dengan mudah dapat ditampung karena software bersifat fleksibel”
Software Myths (III)
Pelaksana Software:
Planing group - System analysts, system architects
Development group - Software engineers
Verification group - Test engineers, quality assurance group
Support group - Customer supporters, technical supports
Marketing/sales - Marketing people and product sales
Practitioner’s Myths:
“pertama kali kita menulis program dan kemudian mendapatkan pekerjaan, sehingga pekerjaan kita selesai”
“sampai pada akhirnya program dapat di running, sampai benar-benar yakin bahwa program tidak ada cara untuk meningkatkan quality”
“software dapat diserahkan apabila telah berhasil (telah sukses)”
Major task dari pembuatan software adalah teknik penulisan program.
“Schedule dan requirement merupakan hal yang penting ketika kita menulis program”
What is Software Engineering?
Walaupun ratusan pengarang telah mengembangkan definisi tersendiri tentang software engineering, definisi ini diusulkan oleh Fritz Bauer[NAU 69] yang menyediakan basis :
“[Software engineering adalah] prinsip yang digunakan pada sound engineering yang digunakan untuk mendapatkan software yang bersifat ekonomis dan dapat bekerja secara efisien pada real machines”
The IEEE [IEE93] telah mengembangkan definisi yang lebih lengkap dengan pernyataan :
“Software Engineering : (1) aplikasi yang bersifat sistematik, disipilin dengan mendekati metode pengembangan, operasi, dan maintemaintenance dari software; (2) studi dengan pendekatan pada definisi nomor (1)”
Pressman’s view:
“Software engineering is a layered technology (Figure 2.1)”
Software methods:
Metode Software engineering menyediakan teknik “how to” untuk membangun software. Metode --> meliputi bagaimana menyelesaikan task :
- requirement analisis, design, coding, testing dan maintenance
Software process:
Proses Software engineering mendekatkan dengan :
- teknologi bersama
- memungkinkan secara rational dan pengenbangan secara bertahap
dari software komputer
Proses Software engineering merupakan set framework dari area key process.
Yang dibentuk dari basis untuk :
- project management, budget, dan schedule control
- teknik metode aplikasi
- kualitas produk control
Software tools:
Program menyediakan sistem otomatis atau semi otomatis untuk proses dan metode.
Program yang memberikan dukungan pada engineers untuk menyelesaikan
masing-masing task.
What is Software Engineering?
- A Generic View
Engineering --> analysis, design, construction, verification, and management
of technical (or social) entities.
Tiga phase dalam production software
- phase definition
- phase development
- phase maintenance
Phase definition : (dilakukan dalam tahap pendefinisian dan perencenaan dari software sistem)
Phase definition terfokus pada apa yang terjadi dalam software sistem.
- informasi apa yang harus diproses pada sistem?
- fungsi apa saja yang harus disediakan oleh sistem?
- performance sistem dan kriteria yang diperlukan oleh sistem?
- apa yang diperlukan pada sistem behavior?
- dengan cara apa requirement akan direpresentasikan?
Tiga tugas utama pada phase definisi :
- sistem atau informasi engineering]
- software project planning
- requirement analisis
Phase Development : (terjadi selama proses pengembangan dari software sistem)
Phase development terfokus pada bagaimana.
- bagaimana sistem menjadi terstruktur?
- bagaimana data-data yang ada menjadi terstruktur?
- bagaiman informasi dapat diproses?
- bagaimana fungsi dapat diimplementasikan?
- bagaiamana karakteristik dari interface?
- bagaimana design dapat menjadi lebih spesifik?
- bagaimana testing dapat ditunjukkan?
Terdapat tiga tipe task dari phase development :
- software design
- code generation, dan
- software testing
Phase maintenance : -> evaluasi dari produk software setelah sistem testing.
Phase maintenance mengulang kembali langkah-langkah pada phase definisi dan pengembangan
Phase development terfokus pada perubahan software sistem.
Error correction – apabila ini terjadi maka dilakukan perubahan software sehingga software menjadi benar.
Adaptation – memodifikasi software untuk mengakomodasi perubahan yang terjadi terhadap lingkungan.
Enhancement – mengembangkan software dengan melakukan penambahan fungsi-fungsi yang baru untuk customer/user.
-Prevention - preventive maintenance, called software reengineering.
dengan membuat perubahan pada software sehingga dapat lebih mudah dikoreksi, ditangani.
Why Software Engineering?
Objectives:
Mengidentifikasi masalah baru dan solusi dari produk software
Mempelajari sistematik metode terbaru, prinsip, pendekatan untuk sistem analisis, design, implementasi, testing, maintenance.
Menyediakan teknik kontrol terbaru, manage, dan monitor proses software
Membangun tools software terbaru dan environment untuk mendukung software engineering.
Major Goals:
Untuk meningkatkan produktivitas dan kualitas
Untuk meningkatkan efektivitas dari kontrol schedule software dan planning. --- Untuk mengurangi cost dari development proses
-Untuk memenuhi keinginan dan requirements dari customer.
-Untuk menangani konduksi dari proses software engineering.
-Untuk meningkatkan practice software engineering.
-Untuk memberikan dukungan pada engineers terhadap aktivitas yang sistematik dan lebih efisien.
Terimakasih.. tulisannya sangat bermanfaat..
BalasHapusMy blog
Terimakasih.. sangat bermanfaat..
BalasHapusKunjungi my blog
Terimakasih.. sangat bermanfaat..
BalasHapusKunjungi