Selasa, 17 Februari 2009
Kuliah Software Engineering pada pertemuan ini mengajarkan banyak hal yang belum pernah saya ketahui sebelumnya. Kuliah kali ini banyak mengajarkan apa itu Software Engineering dan process model apa saja yang bisa digunakan selama kita mengerjakan sebuah project.
Hal pertama yang dipelajari adalah Software evolution. Software evolution adalah istilah yang digunakan oleh Software Engineering dalam mengembangkan sebuah software sebagai proses awal dalam mengembangkan produk. Software evolution itu terdiri dari :
- system
- application
- engineering/scientific
- embedded
- product-line
- web
- AI
Ada sebuah pernyantaan, "Software is engineered". Apa maksud pernyataan tersebut?
Software harus direkayasa karena software biasanya akan dicustom untuk memenuhi kebutuhan dan permintaan konsumen.
Kemudian ada pertanyaan, "Why do IT solution company exist?"
Perusahaan IT tetap exist karena pasar IT ada sehingga tetap dibutuhkan oleh konsumen.
Selanjutnya ada pernyataan "Consistent but flexible software", apa maksud dari pernyataan itu?
Konsisten supaya hasilnya senantiasa tetap sampai kapanpun. Jika tampilannya bagus tapi tidak konsisten, maka konsumen akan bingung. Flexible untuk memenuhi kebutuhan custom tadi sehingga dapat memenuhi kebutuhan konsumen dalam modifikasi.
Ada juga pernyataan "Software Engineering is project", lalu apa maksudnya? Mengapa disebut sebagai project?
Supaya sistematis karena project memiliki planning, tujuan, role, determination of ending jelas. Ending harus ada agar terlihat tujuan akhir dari project itu.
Lalu siapakah yang termasuk dalam software engineering?
Bisa project manager dan stakeholders.
Dalam project membuat software pasti akan ada event - event yang bisa terjadi saat mengerjakan project tersebut di antaranya :
- Account manager is having dinner with the client
- Kick-off-meeting
- Project's duration is estimated on 140 man/day
- Billing statement will be sent to customer's email in PDF file, max size 512KB each, secured by customer's birthdate (ddMMyyyy) as user level password
- The system must be able to handles 200 online user concurrently, the respond time not more than 4 seconds each.
- SRS document approved by client
- Business users review the UAT scenario document
- Solution architect decides to use Java platform
- Technical architect meets third parties to consolidate the interface spesification
- Every transaction record will be submitted to EAI asynchronously. Call-back mechanism will be provided for the party to inform the process result status.
- In order to support the estimated business growth at 100 new customers/month and 250 transactions/day, HDD 120 GB
- FDD is getting reviewed
- An application framework has been chosen. Function implementation are now being made
- Passing value "29-02-2008" into due date field
- A front-liner reported that she was unable to see the invoice record she just entered
- Deploy the new application to production environment
- Run the regression test scripts
- A clinet's customer called, she received monthly usage repot that was not hers
- MIS manager contacts PM to have an enhancement on user administration module
- Project manager meets the client to sign hand-over document
Di Software Engineering ada istilah SDLC. Apakah SDLC itu? SDLC bisa berupa :
- Software Development Life Cycle
- System Development Life Cycle
- System Design Life Cycle
Dalam mengerjakan sebuah project pembuatan software dibutuhkan Process Model. Apakah itu process model dan mengapa kita membutuuhkan Process Model itu?
Process Model itu dibutuhkan karena yang akan dibuat unique sehingga membutuhkan langkah - langkah kerja dalam project yang didesain sesuai pengguna.
Selain itu ada Generic process framework:
- communication
- planning
- modeling
- construction
- deployment
Beberapa jenis Process Model adalah :
1. waterfall : model klasik yang bersifat sistematis, berurutan dalam membuat software. Jadi fase sebelumnya harus lengkap dan selesai sebelum mengerjakan fase berikutnya. Jika tidak, maka bisa mengalami kesulitan dalam mengakomodasi perubahan setelah proses dijalani.
2. incremental RAD (Rapid Application Development) : menekankan pada siklus pembangunan yang pendek atau singkat yang mengadopsi model waterfall dan pembangunan dalam waktu singkat dapat dicapai. Waktu yang singkat adalah batasan yang penting untuk model ini.
3. evolutionary prototyping : Kadang-kadang klien hanya memberikan beberapa kebutuhan umum software tanpa detil input, proses atau detil output. Di lain waktu mungkin dimana tim pembangun (developer) tidak yakin terhadap efisiensi dari algoritma yang digunakan, tingkat adaptasi terhadap sistem operasi atau rancangan form user interface. Ketika situasi seperti ini terjadi model prototyping sangat membantu proses pembangunan software.
4. evolutionary spiral : Proses digambarkan sebagai spiral. Setiap loop mewakili satu fase dari software process. Loop paling dalam berfokus pada kelayakan dari sistem, loop selanjutnya tentang definisi dari kebutuhan, loop berikutnya berkaitan dengan desain sistem dan seterusnya.
5. evolutionary concurrent development : proses pembuatan software dilakukan secara bersama - sama berbarengan dengan semua departemen yang bekerja pada proyek sama dan dalam waktu yang sama sehingga proyek dapat selesai dengan cepat
6. unified (inception-inisialisasi, elaboration, construction, transition, product) : metode yang digunakan untuk menentukan, memvisualisasikan, membuat sebuah dokument bagan software dengan object oriented.
7. agile XP : model proses yang terbaru dalam dunia rekayasa perangkat lunak dan mencoba menjawab kesulitan dalam pengembangan software yang rumit dan sulit dalam implementasi. Suatu model yang menekankan pada keterlibatan user secara langsung dan pengujian.
8. agile ASD (adaptive software development) : proses membuat software yang menggantikan waterfall dengan menambahkan proses spekulasi, kolaborasi antar semua pihak, dan team cycle. Karakteristik dari ASD ini adalah fokus pada misi yang ingin dicapai, feature based, iteartive, risk driven.
9. agile scrum : sekelompok orang kerja keras untuk menyelesaikan projek
10. agile FDD (Feature Driver Development) : feature based yang digunakan untuk mengukur kemajuan yang telah dicapai pada setiap fitur yang telah ditetapkan. Sehingga ini juga membutuhkan kerja keras yang tinggi.
Kemudian ada juga AGILE PROCESS. Apakah itu AGILE PROCESS?
Agile Process berasal dari kata Agility yang berarti dapat merespon keinginan pasar dengan cepat.
Bagaimanakah perubahan yang terjadi dari cara Konvensional ke Agile?
- processes & tools --> individuals & interactions
- comprehensive documentation --> working software
- contract negotiation --> customer collaboration
- following a plan --> responding to change
Dari pertemuan kuliah Software Engineering kali ini, saya menarik kesimpulan. Bahwa membuat sebuah project, sebelumnya kita harus menetapkan bagaimanakah proses yang akan dijalani sehingga kita dapat menjalankan pekerjaan dengan baik dan dapat meminimalisasi hambatan - hambatan.
Resources : lecturer.ukdw.ac.id/othie/softwareprocess.pdf
Kuliah Software Engineering pada pertemuan ini mengajarkan banyak hal yang belum pernah saya ketahui sebelumnya. Kuliah kali ini banyak mengajarkan apa itu Software Engineering dan process model apa saja yang bisa digunakan selama kita mengerjakan sebuah project.
Hal pertama yang dipelajari adalah Software evolution. Software evolution adalah istilah yang digunakan oleh Software Engineering dalam mengembangkan sebuah software sebagai proses awal dalam mengembangkan produk. Software evolution itu terdiri dari :
- system
- application
- engineering/scientific
- embedded
- product-line
- web
- AI
Ada sebuah pernyantaan, "Software is engineered". Apa maksud pernyataan tersebut?
Software harus direkayasa karena software biasanya akan dicustom untuk memenuhi kebutuhan dan permintaan konsumen.
Kemudian ada pertanyaan, "Why do IT solution company exist?"
Perusahaan IT tetap exist karena pasar IT ada sehingga tetap dibutuhkan oleh konsumen.
Selanjutnya ada pernyataan "Consistent but flexible software", apa maksud dari pernyataan itu?
Konsisten supaya hasilnya senantiasa tetap sampai kapanpun. Jika tampilannya bagus tapi tidak konsisten, maka konsumen akan bingung. Flexible untuk memenuhi kebutuhan custom tadi sehingga dapat memenuhi kebutuhan konsumen dalam modifikasi.
Ada juga pernyataan "Software Engineering is project", lalu apa maksudnya? Mengapa disebut sebagai project?
Supaya sistematis karena project memiliki planning, tujuan, role, determination of ending jelas. Ending harus ada agar terlihat tujuan akhir dari project itu.
Lalu siapakah yang termasuk dalam software engineering?
Bisa project manager dan stakeholders.
Dalam project membuat software pasti akan ada event - event yang bisa terjadi saat mengerjakan project tersebut di antaranya :
- Account manager is having dinner with the client
- Kick-off-meeting
- Project's duration is estimated on 140 man/day
- Billing statement will be sent to customer's email in PDF file, max size 512KB each, secured by customer's birthdate (ddMMyyyy) as user level password
- The system must be able to handles 200 online user concurrently, the respond time not more than 4 seconds each.
- SRS document approved by client
- Business users review the UAT scenario document
- Solution architect decides to use Java platform
- Technical architect meets third parties to consolidate the interface spesification
- Every transaction record will be submitted to EAI asynchronously. Call-back mechanism will be provided for the party to inform the process result status.
- In order to support the estimated business growth at 100 new customers/month and 250 transactions/day, HDD 120 GB
- FDD is getting reviewed
- An application framework has been chosen. Function implementation are now being made
- Passing value "29-02-2008" into due date field
- A front-liner reported that she was unable to see the invoice record she just entered
- Deploy the new application to production environment
- Run the regression test scripts
- A clinet's customer called, she received monthly usage repot that was not hers
- MIS manager contacts PM to have an enhancement on user administration module
- Project manager meets the client to sign hand-over document
Di Software Engineering ada istilah SDLC. Apakah SDLC itu? SDLC bisa berupa :
- Software Development Life Cycle
- System Development Life Cycle
- System Design Life Cycle
Dalam mengerjakan sebuah project pembuatan software dibutuhkan Process Model. Apakah itu process model dan mengapa kita membutuuhkan Process Model itu?
Process Model itu dibutuhkan karena yang akan dibuat unique sehingga membutuhkan langkah - langkah kerja dalam project yang didesain sesuai pengguna.
Selain itu ada Generic process framework:
- communication
- planning
- modeling
- construction
- deployment
Beberapa jenis Process Model adalah :
1. waterfall : model klasik yang bersifat sistematis, berurutan dalam membuat software. Jadi fase sebelumnya harus lengkap dan selesai sebelum mengerjakan fase berikutnya. Jika tidak, maka bisa mengalami kesulitan dalam mengakomodasi perubahan setelah proses dijalani.
2. incremental RAD (Rapid Application Development) : menekankan pada siklus pembangunan yang pendek atau singkat yang mengadopsi model waterfall dan pembangunan dalam waktu singkat dapat dicapai. Waktu yang singkat adalah batasan yang penting untuk model ini.
3. evolutionary prototyping : Kadang-kadang klien hanya memberikan beberapa kebutuhan umum software tanpa detil input, proses atau detil output. Di lain waktu mungkin dimana tim pembangun (developer) tidak yakin terhadap efisiensi dari algoritma yang digunakan, tingkat adaptasi terhadap sistem operasi atau rancangan form user interface. Ketika situasi seperti ini terjadi model prototyping sangat membantu proses pembangunan software.
4. evolutionary spiral : Proses digambarkan sebagai spiral. Setiap loop mewakili satu fase dari software process. Loop paling dalam berfokus pada kelayakan dari sistem, loop selanjutnya tentang definisi dari kebutuhan, loop berikutnya berkaitan dengan desain sistem dan seterusnya.
5. evolutionary concurrent development : proses pembuatan software dilakukan secara bersama - sama berbarengan dengan semua departemen yang bekerja pada proyek sama dan dalam waktu yang sama sehingga proyek dapat selesai dengan cepat
6. unified (inception-inisialisasi, elaboration, construction, transition, product) : metode yang digunakan untuk menentukan, memvisualisasikan, membuat sebuah dokument bagan software dengan object oriented.
7. agile XP : model proses yang terbaru dalam dunia rekayasa perangkat lunak dan mencoba menjawab kesulitan dalam pengembangan software yang rumit dan sulit dalam implementasi. Suatu model yang menekankan pada keterlibatan user secara langsung dan pengujian.
8. agile ASD (adaptive software development) : proses membuat software yang menggantikan waterfall dengan menambahkan proses spekulasi, kolaborasi antar semua pihak, dan team cycle. Karakteristik dari ASD ini adalah fokus pada misi yang ingin dicapai, feature based, iteartive, risk driven.
9. agile scrum : sekelompok orang kerja keras untuk menyelesaikan projek
10. agile FDD (Feature Driver Development) : feature based yang digunakan untuk mengukur kemajuan yang telah dicapai pada setiap fitur yang telah ditetapkan. Sehingga ini juga membutuhkan kerja keras yang tinggi.
Kemudian ada juga AGILE PROCESS. Apakah itu AGILE PROCESS?
Agile Process berasal dari kata Agility yang berarti dapat merespon keinginan pasar dengan cepat.
Bagaimanakah perubahan yang terjadi dari cara Konvensional ke Agile?
- processes & tools --> individuals & interactions
- comprehensive documentation --> working software
- contract negotiation --> customer collaboration
- following a plan --> responding to change
Dari pertemuan kuliah Software Engineering kali ini, saya menarik kesimpulan. Bahwa membuat sebuah project, sebelumnya kita harus menetapkan bagaimanakah proses yang akan dijalani sehingga kita dapat menjalankan pekerjaan dengan baik dan dapat meminimalisasi hambatan - hambatan.
Resources : lecturer.ukdw.ac.id/othie/softwareprocess.pdf
1 comment:
Kerja yang bagus!
Untuk mempertajam dan mendukung kesimpulan Anda, mungkin bisa ditambahkan referensi/link ke resources yang terpercaya.
Post a Comment