Anda di halaman 1dari 38

TUGAS REKAYASA PERANGKAT LUNAK

Disusun oleh : Nama: Shinta Nurdwita Kartikasari NIM : 10/297585/PA/13022

MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA YOGYAKARTA 2011

CHAPTER 5 5.1. Explain why it is important to model the context of a system that is being developed. Give two examples of possible errors that could arise if software engineers do not understand the system context. Karena dalam membangun system, kita perlu tahu batasan-batasan yang jelas dalam sebuah system pada saat proses pengembangan. Sehingga dengan membuat konteks model dengan cepat dan lebih jelas kita mengetahui fungsi mana yang harus dibuat dan diperlukan didalam sebuah system. Dengan begitu pada saat proses pengembangan akan lebih focus terhadap permasalahan yang akan diselesaikan.Sehingga akan menghindari biaya yang tidak perlu dikeluarkan dan waktu yang terbuang pada saat kita mengimplementasikan fungsi ke dalam system yang harusnya tidak perlu. Sehingga membangun system konteks pada saat requirement sangatlah penting. Misalkan seorang developer tidak paham konteks system yang akan dikembangkan, kemungkinan kesalahan yang timbul adalah tidak terciptanya suatu fungsi tertentu yang penting yang dapat mempengaruhi system lain / system itu sendiri yang akan membuat sustu perusahaan mengalami kerugian akibat tidak tersedianya fungsi tersebut / informasi yang dibutuhkan. Contoh lain, seorang developer memasukkan/membuat suatu fungsi yang baru atau tambahan padahal fungsi tersebut tidak diperlukan dalam system tersebut, tentu hal ini juga merugikan suatu perusahaan. Data Nasabah dan Data Rekening Nasabah Bank Misalkan pada saat requirement step kita membuat system konteks data nasabah dan data rekening nasabah menjadi satu kesatuan system. Pada system konteks ini akan timbul duplikasi data karena setiap nasabah melakukan transaksi dibank, data nasabah akan terduplikasi sebanyak nasabah melakukan transaksi, tentu hal ini akan sangat merepotkan. Ada solusi untuk mengatasi hal ini yaitu dengan memisah system data nasabah dengan system data rekening nasabah. Sehingga masalah terduplikasi terselesaikan. Namun system konteks yang baru ini tidak lepas dari kelemahan, yaitu kecepatan akses yang berkurang, karena tidak dalam satu database, dan apabila database yang satu sedang unavailable, database yang lain bisa jadi tidak bisa digunakan. Namun permasalahan ini tidak sebesar permasalahan sebelumnya, sehingga system ini lebih baik.

Semua permasalahan diatas kita diskusikan/dibahas pada saat requirement dengan cara membuat system konteksnya, sehingga pada saat implementasi kita tidak kerepotan dengan timbulnya biaya yang seharusnya tidak dikeluarkan ataupun waktu terbuang karena membuat suatu fungsi yang seharusnya tidak dilakukan. 5.2. How might you use a model of a system that already exists? Explain why it is not always necessary for such a system model to be complete and correct. Would the same be true if you were developing a model of a new system? Model dari sistem yang sudah ada digunakan selama requirements engineering yang akan dianalisis melalui dokumentasi dari sistem tersebut. Ini membantu mengklarifikasi apa yang dilakukan oleh sistem yang sudah ada dan dapat digunakan sebagai dasar kelemahan dan kelebihan sistem baru, ini membantu membuat spesifikasi untuk sistem yang baru. Tujuan digunakan model dari sistem yang sudah ada hanyalah sebagai bahan diskusi untuk membuat sistem yang baru, karena itu model tidak dibutuhkan untuk lengkap maupun benar asalkan model tersebut mencukupi sebagai bahan diskusi. Selain itu selama model digunakan sebagai dokumentasi, model tersebut tidak harus lengkap karena model hanya diharapkan untuk mengembangkan bagian tertentu suatu sistem.Tentu lebih mudah untuk mengembangkan sistem yang sudah ada daripada kita memulai sebuah system yang baru. Karena system yang sudah ada hanya diperlukan pengembangan jika terdapat kekurangannya, sedangkan system baru benar-benar harus memulai semuanya dari awal.

5.3. You have been asked to develop a system that will help with planning large-scale events and parties such as weddings, graduation celebrations, birthday parties, etc. Using an activity diagram, model the process context for such a system that shows the activities involved in planning a party (booking a venue, organizing invitations, etc.) and the system elements that may be used at each stage.

5.4. For the MHC-PMS, propose a set of use cases that illustrates the interactions between a doctor, who sees patients and prescribes medicine and treatments, and the MHC-PMS.

5.5. Develop a sequence diagram showing the interactions involved when a student registers for a course in a university. Courses may have limited enrollment, so the registration process must include checks

that places are available. Assume that the student accesses an electronic course catalog to find out about available courses. 5.6. Look carefully at how messages and mailboxes are represented in the e-mail system that you use. Model the object classes that might be used in the system implementation to represent a mailbox and an email message. Model Class Diagram dalam sistem e-mail yang direpresantifkan dengan adanya message dan mail box, Alur e-mail yang terdiri dari proses pengiriman e-mail dan proses penerimaan e-mail dapat dibuat

dengan menggunakan konsep Object Oriented Program (OOP), dengan class diagram sbb :

5.7. Based on your experience with a bank ATM, draw an activity diagram

that models the data processing involved when a customer withdraws cash from the machine.

5.8. Draw a sequence diagram for the same system. Explain why you might want to develop both activity and sequence diagrams when modeling the behavior of a system. Ada 3 proses yaitu proses start up, proses shut down, proses transaksi. Berikut sequence dari setiap proses yang ada.
1. Proses start up

2. Proses shut down

3. Proses transaksi

Mengapa menggunakan sequence diagram : Sequence diagram memiliki kesamaan arti dengan flowchart pada pemrograman struktural tetapi pada sequence diagram lebih menitikberatkan pada pembentukan object dan metode-metode apa yang digunakan untuk menggambarkan fungsi utama object-object tersebut. Keunggulan sequence diagram adalah dapat memebrikan gambaran yang lebih mudah dipahamai untuk mendeskripsikan proses pembentukan object dalam aplikasi yang kompleks. 5.1. Draw state diagrams of the control software for: _ An automatic washing machine that has different programs for different types of clothes. _ The software for a DVD player. _ A telephone answering system that records incoming messages and displays the number of accepted messages on an LED. The system should allow the telephone customer to dial in from any

location, type a sequence of numbers (identified as tones), and play any recorded messages. 5.1. You are a software engineering manager and your team proposes that model-driven engineering should be used to develop a new system. What factors should you take into account when deciding whether or not to introduce this new approach to software development? Faktor yang harus dipertimbangkan adalah ketika pengembangan software tidak memperdulikan detail dari bagian implementasinya, pengembang hanya perlu memikirkan sistem pada tingkat abstraksi yang tinggi. Hal tersebut bisa mengurangi kemungkinan kesalahan, mempercepat proses desain dan implementasi, dan memungkinakan penciptaan model aplikasi yang platform-independent yang dapat digunakan kembali. Dengan menggunakan peralatan yang memadai, implementasi sistem bisa dihasilkan untuk platform yang berbedabeda dari modelyang sama. Ketika ada teknologi platform baru, hanya diperlukan untuk membuat translator untuk platform tersebut. Model platform independent merupakan salah satu pertimbangan, dimana ketika translator suatu platform tersedia maka dengan cepat software bisa dibuat untuk platform tersebut.

CHAPTER 6
6.1.

When describing a system, explain why you may have to design the system architecture before the requirements specification is complete. Desain arsitektur merupakan tahapan pertama dalam proses desain perangkat lunak. Hal ini sangat berkaitan dengan spesifikasi persyaratan, seperti mengidentifikasi komponen struktu utama dalam sebuah system dan interaksi antarkomponen. Output daro proses desain arsitektur adalah menggmabarkan bagaimana sistem diatur sebagai satu set komponen komunikasi dalam sebuah system..

6.2.

You have been asked to prepare and deliver a presentation to a nontechnical manager to justify the hiring of a system architect for a new project. Write a list of bullet points setting out the key points in your presentation. Naturally, you have to explain what is meant by system architecture. Explain why design conflicts might arise when designing an architecture for which both availability and security requirements are the most important non-functional requirements. Karena hubungan erat antara kebutuhan non-fungsional dan peranti lunak arsitektur, gaya arsitektur tertentu dan struktur yang Anda pilih untuk sistem harus bergantung pada kebutuhan non-fungsional sistem:ketersediaan adalah persyaratan penting, arsitektur harus dirancang untuk memasukkan komponen berlebihan sehingga dimungkinkan untuk mengganti dan memperbarui komponen tanpa henti sistem.keamanan adalah persyaratan penting, struktur berlapis untuk arsitektur-mendatang harus digunakan, dengan aset yang paling penting yang dilindungi dengan tingkat keamanan validasi yang tinggi diterapkan pada lapisan ini.

6.3.

6.4.

Draw diagrams showing a conceptual view and a process view of the architectures of the following systems: An automated ticket-issuing system used by passengers at a railway station. A computer-controlled video conferencing system that allows video, audio, and computer data to be visible to several participants at the same time.

A robot floor cleaner that is intended to clean relatively clear spaces such as corridors. The cleaner must be able to sense walls and other obstructions.

6.1.

Explain why you normally use several architectural patterns when designing the architecture of a large system. Apart from the

information about patterns that I have discussed in this chapter, what additional information might be useful when designing large systems?
6.2.

Suggest an architecture for a system (such as iTunes) that is used to sell and distribute music on the Internet. What architectural patterns are the basis for this architecture? Untuk sistem penjualan dan distribusi music seperti iTunes via internet disarankan menggunakan arsitektur sistem berbasis layanan (Service-oriented architecture). Gagasan dasar dari arsitektur ini adalah bahwa layanan harus mendukung proses bisnis, karena sebuah organisasi memiliki berbagai macam proses serta layanan yang dapat dijalankan. Oleh karena itu identifikasi sebuah layanan misal penjualan dan distribusi produk harus melibatkan pemahaman dan analisa proses bisnis untuk memutuskan layanan yang dapat digunakan serta diterapkan kembali untuk mendukung proses ini, misal layanan untuk diskon produk. Selain itu arsitektur ini memungkinkan penggunaan protokol standar yang mendukung interoperabilitas seluruh platform. Pola dasar yang dapat mendukung arsitektur ini adalah kontrol terpusat (centralized control). Dalam model kontrol terpusat, salah satu komponen yang ditunjuk sebagai controller dan bertanggung jawab untuk mengelola pelaksanaan komponen lainnya. Proses pengendali sistem proses memutuskan kapan harus dimulai atau dihentikan, tergantung pada variabel keadaan sistem. Ini memeriksa apakah proses lain telah menghasilkan informasi yang akan diproses atau untuk menyampaikan informasi kepada mereka untuk diproses.Sehingga pola ini cocok dalam sistem penjualan dan distribusi produk.

6.3.

Explain how you would use the reference model of CASE environments (available on the books web pages) to compare the IDEs offered by different vendors of a programming language such as Java. Komparasi IDE dapat dilakukan per level of service dari CASE reference model: Data repository services - Fasilitas untuk penyimpanan, manajemen data dan relasinya.

Data integration services - yaitu fasilitas untuk mengelola grup atau pembentukan relasi diantaranya. Data repository dan services ini adalah basis dari integrasi data di lingkungan pengembangan. Task management services - bagaimana sebuah IDE mendefiniskan dan mengundang model dari proses. Message services - Fasilitas untuk tool ke tool, lingkungan ke tool, dan lingkungan ke lingkungan. User interface services - Sebuah IDE yang baik harus mempunyai UI yang friendly. Misal: auto code-completion, platform, project dan library management. 6.1. Using the generic model of a language processing system presented here, design the architecture of a system that accepts natural language commands and translates these into database queries in a

language such as SQL. Natural Language Input: adalah input berupa natural language. pada bagian ini termasuk didalamnya sebuah speech-to-text machine. Sentence Analysis: adalah sebuah machine yang akan mencari makna dari Input dan memberikan keluaran berupa tree yang menunjukkan urutan pengerjaan query. Action Translator: adalah sebuah mesin yang menerjemahkan kata kerja pada natural language menjadi perintah SQL (mis: masukkan = insert, ambilkan = select, ubah = update, dlsb.). Object Translator: adalah sebuah mesin yang menerjemahkan kata benda pada natural language menjadi nama tabel atau kolom tabel (mis: mahasiswa = tabel mahasiswa, nilai mahasiswa = kolom nilai pada tabel mahasiswa, dlsb.). SQL Generator: adalah mesin yang menghasilkan query SQL. 6.2. Using the basic model of an information system, as presented in Figure 6.16, suggest the components that might be part of an

information system that allows users to view information about flights arriving and departing from a particular airport. I suggest there's a component named "Flight Schedule" in third layer, the "Information Retrieval and Modification" layer. It provides informations about all flights started from a spesific airport to another airport. 6.3. Should there be a separate profession of software architect whose role is to work independently with a customer to design the software system architecture? A separate software company would then implement the system. What might be the difficulties of establishing such a profession?

CHAPTER 7 7.1. Using the structured notation shown in Figure 7.3, specify the weather station use cases for Report status and Reconfigure. You should make reasonable assumptions about the functionality that is required here. Sistem : Stasiun Cuaca Use case : Report status Aktor : Sistem Informasi Cuaca, Stasiun Cuaca Dat : Stasiun Cuaca mengirimkan data berupa status keadaan komponen-komponen yang terdapat pada stasiun cuaca kepada sistem informasi cuaca untuk setiap jangka waktu tertentu. Hal ini bertujuan untuk mempermudah pengawasan apabila terjadi error mendadak pada suatu komponen pada stasiun cuaca. Stimulus : Menggunakan komunikasi satelit yang sejalur dengan report weather Respon : Kumpulan data tentang status komponen dapat ditampilkan pada Sistem Informasi Cuaca Sistem : Stasiun Cuaca Use case : Reconfigure Aktor : Sistem Informasi Cuaca, Stasiun Cuaca, Sistem Kontrol Dat : Sistem kontrol memberikan perintah berupa data rekonfigurasi terhadap komponen-komponen yang terdapat pada stasiun cuaca melalui opsi rekonfigurasi pada Sistem Informasi Cuaca. Stimulus : Menggunakan komunikasi satelit Respon : Terjadi perubahan konfigurasi pada stasiun cuaca dan hasil konfigurasi yang baru dapat dilihat pada Sistem Informasi Cuaca 7.2. Assume that the MHC-PMS is being developed using an objectoriented approach. Draw a use case diagram showing at least six possible use cases for this system.

7.3.

Using the UML graphical notation for object classes, design the following object classes, identifying attributes and operations. Use your own experience to decide on the attributes and operations that should be associated with these objects. _ a telephone _ a printer for a personal computer _ a personal stereo system _ a bank account _ a library catalog

7.1.

Using the weather station objects identified in Figure 7.6 as a starting point, identify further objects that may be used in this system.

Design an inheritance hierarchy for the objects that you have identified.

7.2.

Develop the design of the weather station to show the interaction between the data collection subsystem and the instruments that collect weather data. Use sequence diagrams to show this interaction. Sistem penggunaan ATM.. Sesi dimulai ketika seorang pelanggan memasukkan kartu ATM ke dalam slot card reader mesin. ATM menarik kartu ke dalam mesin dan membacanya. (Jika pembaca tidak bisa membaca kartu karena penyisipan yang tidak benar atau garis yang rusak, kartu dikeluarkan, layar kesalahan ditampilkan, dan sesi dibatalkan.) Pelanggan diminta untuk memasukkan / nya PIN nya, dan kemudian dibiarkan untuk melakukan satu atau lebih transaksi, memilih dari menu kemungkinan jenis transaksi dalam setiap kasus. Setelah setiap transaksi, pelanggan ditanya apakah ia / dia ingin melakukan yang lain. Ketika pelanggan adalah melalui melakukan transaksi, kartu dikeluarkan dari mesin dan berakhir sesi. Jika transaksi ini dibatalkan karena terlalu banyak entri PIN valid, sesi ini juga dibatalkan, dengan kartu yang sedang dipertahankan dalam mesin.

Pelanggan dapat membatalkan sesi dengan menekan tombol Batal saat memasukkan PIN atau memilih jenis transaksi. Sebuah use case dimulai dalam transaksi sesi ketika pelanggan memilih jenis transaksi dari menu pilihan. Pelanggan akan diminta untuk memberikan rincian yang sesuai (misalnya rekening (s) yang terlibat, jumlah). Transaksi ini kemudian akan dikirim ke bank, bersama dengan informasi dari kartu pelanggan dan PIN pelanggan masuk. Jika bank menyetujui transaksi, setiap langkah yang diperlukan untuk menyelesaikan transaksi (misalnya pengeluaran uang atau menerima amplop) akan dilakukan, dan kemudian tanda terima akan dicetak. Maka pelanggan akan diminta apakah dia / ia ingin melakukan transaksi lain. Jika bank melaporkan bahwa PIN pelanggan tidak valid, ekstensi tidak valid PIN akan dilakukan dan kemudian upaya akan dilakukan untuk melanjutkan transaksi. Jika kartu pelanggan dipertahankan karena PIN tidak valid terlalu banyak, transaksi akan dibatalkan, dan pelanggan tidak akan ditawarkan pilihan untuk melakukan yang lain. Jika transaksi ini dibatalkan oleh pelanggan, atau gagal untuk alasan lain selain catatan berulang dari sebuah PIN yang tidak valid, layar akan ditampilkan menginformasikan pelanggan dari alasan atas kegagalan transaksi, dan maka pelanggan akan ditawarkan kesempatan untuk melakukan yang lain. Pelanggan dapat membatalkan transaksi dengan menekan tombol Batal seperti yang dijelaskan untuk setiap jenis transaksi individu di bawah ini. Semua pesan ke bank dan tanggapan kembali dicatat dalam log ATM.

7.3.

Identify possible objects in the following systems and develop an object-oriented design for them. You may make any reasonable assumptions about the systems when deriving the design. A group diary and time management system is intended to support the timetabling of meetings and appointments across a group of co-workers. When an appointment is to be made that involves a number of people, the system finds a common slot in each of their diaries and arranges the appointment for that time. If no common slots are available, it interacts with the user to rearrange his or her personal diary to make room for the appointment. A filling station (gas station) is to be set up for fully automated operation. Drivers swipe their credit card through a reader connected to the pump; the card is verified by communication with a credit company computer, and a fuel limit is established. The driver may then take the fuel required. When fuel delivery is complete and the pump hose is returned to its holster, the drivers credit card account is debited with the cost of the fuel taken. The

credit card is returned after debiting. If the card is invalid, the pump returns it before fuel is dispensed. 7.1. Draw a sequence diagram showing the interactions of objects in a group diary system when a group of people are arranging a meeting.

7.2.

Draw a UML state diagram showing the possible state changes in either the group diary or the filling station system. Karena traceability matrices berhubungan satu sama lain, dimungkinkan akan terjadi kesulitan dalam mengelola many system requirements. Karena dalam traceability matrices persyaratanpersyaratan masing-masing dimasukkan dalam satu baris dan dalam kolom dalam matriks. Dimana ketergantungan antara kebutuhan yang berbeda ada, ini dicatat dalam sel pada baris / persimpangan kolom. Untuk membantu mengurangi skala masalah ini ketertelusuran matriks dapat digunakan ketika sejumlah kecil persyaratan harus dikelola, tetapi mereka menjadi berat dan mahal untuk mempertahankan system yang besar dengan banyak persyaratan. Untuk system ini, diharuskan untuk menangkap jejak kemampuan informasi dalam database di mana setiap persyaratan secara eksplisit terkait dengan persyaratn yang terkait kemudian dapat menilai

dampak dari perubahan dengan menggunakan dasilitas database browsing. Traceability matrices dapat dihasilkan secara otomatis dari database. Desain traceability matrices

7.3.

Using examples, explain why configuration management is important when a team of people are developing a software product. Manajemen konfigurasi sangat penting dalam pembuatan perangkat lunak. sebagai contoh, tim sedang membuat perangkat lunak. jika tidak ada manajemen konfigurasi, maka seorang programmer bisa mengubah dan mengganti hasil kerja dari programmer yang lain. Jadi, manajemen konfigurasi mengatur semua hal saat akan mengubah sistem perangkat lunak. A small company has developed a specialized product that it configures specially for each customer. New customers usually have specific requirements to be incorporated into their system, and they pay for these to be developed. The company has an opportunity to bid for a new contract, which would more than double its customer base. The new customer also wishes to have some involvement in the configuration of the system. Explain why, in these circumstances, it might be a good idea for the company owning the software to make it open source.

7.4.

1. kualitas Pada umumnya, software open source bisa menjadi seperti yang diinginkan oleh pengguna karena penggunanya bisa ikut membuat software tersebut. Hal ini sulit dicapai dengan software yang tidak open source. Pengguna dan developerlah yang membuat software open source menjadi apa yang mereka inginkan sehingga mereka akan membuat software tersebut menjadi lebih baik, seperti yang diinginkan pengguna. Software open source juga mempunyai banyak fitur yang biasanya dibuat oleh para developer yang biasanya membentuk suatu komunitas untuk membuat software tersebut menjadi lebih baik lagi kualitasnya. 2. bisa dikustomisasi (customizability) Pengguna software open source akan lebih mudah untuk melakukan kustomisasi dengan cara memodifikasi code software (yang disebarkan secara bebas) tersebut untuk menambahkan fungsionalitas dari software tersebut seperti yang mereka inginkan. Sehingga hasil software open source bisa lebih fleksibel, setiap pengguna bisa memiliki software yang fungsionalitas tambahannya berbeda-beda, sesuai dengan yang masing-masing pengguna inginkan. 3. security Ada banyak developer dan pengguna yang biasanya ikut membantu melakukan perbaikan di sisi keamanan software open source. Bug dari software open source biasanya juga lebih cepat untuk diperbaiki dengan adanya banyak developer yang bisa melihat source code dari software tersebut.

CHAPTER 8
8.1.

Explain why it is not necessary for a program to be completely free of defects before it is delivered to its customers. Program tidak harus bebas dari cacat/ kekurangan jika : - Kekurangan / bug kecil (kurang berarti) dimana tidak akan mengganggu performa dan fungsionalitas sistem - Kekurangan / bug dapat diperbaiki, dan fungsi perbaikan tersedia untuk tingkat gangguan minimum - manfaat dari program melebihi biaya cacat yang mungkin terjadi Pengujian dapat digunakan untuk mengetahui apakah perangkat lunak telah berfungsi menurut kebutuhan (requirement). mustahil untuk melakukan tes setiap kemungkinan kasus karena akan menghabiskan banyak waktu dan membengkakkan biaya ang tidak sepadan dengan keuntungan dari program tersebut. Alasan lain yaitu aplikasi yang dibuat sangat besar dan kompleks, timeline, keterbatasan sumber daya, kurangnya teknologi, dan human error sehingga jika salah satu kejadian tersebut terjadi, akan mempengaruhi produk

8.2.

Explain why testing can only detect the presence of errors, not their absence. Program testing atau pengujian program adalah suatu rangkaian aktivitas tertentu yang diujikan pada suatu program dimana penguji akan memberikan tes-tes yang bersifat anomali untuk melihat reaksi program terhadap tes-tes tersebut. Tujuan pengujian program itu sendiri adalah untuk mengamati karakteristik program, kemudian dilihat apakah program yang sedang dites ini sudah memenuhi kriteria yang diinginkan (software requirement) atau belum. Bagian ini tentu saja penting untuk dilakukan sebelum program pada akhirnya dilepas pada tahap selanjutnya. Ketika seorang penguji melakukan pengujian program dan tidak menemukan kesalahan, hal yang dapat diyakini adalah pengujian di satu tahapan itu saja yang tidak mengandung error, bukan di keseluruhan program. Karena pada dasarnya kemungkinan ditemukan error pada program yang diujikan cukup besar, dan error ini terkadang menimbulkan error-error lain pada bagian/tahapan yang lain. Tanpa melakukan pengujian yang benar-benar lengkap tahapannya dari suatu program, maka penguji tidak akan benar-

benar yakin bahwa setiap tindakan pengujian bisa disebut sebagai error-free.
8.3.

Some people argue that developers should not be involved in testing their own code but that all testing should be the responsibility of a separate team. Give arguments for and against testing by the developers themselves. for : - Developer yang membuat kode tersebut pasti selalu melihat sisi baik dari apa yang dibuat, jadi lebih baik serahkan kepada tim yang di khusus kan untuk melakukan testing - Testing merupakan suatu pekerjaan yang berat bagi beberapa developer, hal ini menyebabkan beberapa developer melewati beberapa tahap testing yang menyebabkan testing tidak maksimal - Testing membutuhkan tingkan objektifitas yang tinggi, sehingga dibutuhkan tim yang secar khusus melakukan test against : - pihak developer yang mengerti cara sebuah sistem bekerja harus terlibat dalam test - develepor harus memastikan sistem yang dibuatnya berjalan sesuai dengan yang dibutuhkan

8.4.

You have been asked to test a method called catWhiteSpace in a Paragraph object that, within the paragraph, replaces sequences of blank characters with a single blank character. Identify testing partitions for this example and derive a set of tests for the catWhiteSpace method. A: Pengujian partisi: Strings with only single blank characters Strings with sequences of blank characters in the middle of the string Strings with sequences of blank characters at the beginning/end of string Contoh tes: The quick brown fox jumped over the lazy dog (only single blanks) The quick brown fox jumped over the lazy dog (different numbers of blanks in the sequence) The quick brown fox jumped over the lazy dog (1st blank is a sequence) The quick brown fox jumped over the lazy dog (Last blank is a sequence)

The quick brown The quick brown beginning) The quick brown The quick brown Etc.
8.5.

fox jumped over the lazy dog (2 blanks at beginning) fox jumped over the lazy dog (several blanks at fox jumped over the lazy dog (2 blanks at end) fox jumped over the lazy dog (several blanks at end)

What is regression testing? Explain how the use of automated tests and a testing framework uch as JUnit simplifies regression testing. for : - Developer yang membuat kode tersebut pasti selalu melihat sisi baik dari apa yang dibuat, jadi lebih baik serahkan kepada tim yang di khusus kan untuk melakukan testing - Testing merupakan suatu pekerjaan yang berat bagi beberapa developer, hal ini menyebabkan beberapa developer melewati beberapa tahap testing yang menyebabkan testing tidak maksimal - Testing membutuhkan tingkan objektifitas yang tinggi, sehingga dibutuhkan tim yang secar khusus melakukan test against : - pihak developer yang mengerti cara sebuah sistem bekerja harus terlibat dalam test - develepor harus memastikan sistem yang dibuatnya berjalan sesuai dengan yang dibutuhkan

8.6.

The MHC-PMS is constructed by adapting an off-the-shelf information system. What do you think are the differences between testing such a system and testing software that is developed using an objectoriented language such as Java? Sebuah sistem OTS biasanya tidak terlalu mudah dimodifikasi, namun biasanya cukup untuk memenuhi kebutuhan suatu instansi. Ketika ada hal-hal tambahan yang dibutuhkan, maka sistem OTS tersebut diadaptasikan dengan komponen-komponen tambahan tersebut. Karena sistem OTS kurang fleksibel untuk dimodifikasi, harus diadakan penilaian terlebih dahulu apakah sistem OTS tersebut cocok untuk kebutuhan. Pada system testing, biasanya komponen asli OTS itu sendiri tidak terlalu dipikirkan (karena biasanya tidak fleksibel), namun yang lebih penting apakah komponen tambahan bisa bekerja optimal dan terintegrasi ke dalam sistem OTS. Selanjutnya, apakah sistem OTS dan komponen tambahannya bisa bekerja optimal untuk

memenuhi kebutuhan. Untuk mengetes sistem yang dibangun dengan bahasa OOP, kita harus mengetes segala komponen (secara terintegrasi) yang terdapat pada kode software tersebut, karena berbeda dengan OTS, yaitu komponen-komponen tersebut memang belum dikhususkan untuk bekerja secara terintegrasi untuk kebutuhan tertentu.
8.7.

Write a scenario that could be used to help design tests for the wilderness weather station system. Pengujian skenario sistem cuaca di gurun Skenario : Stasiun cuaca mengirimkan ringkasan data cuaca di gurun yang dikumpulkan dari instrumen pada periode pengumpulan ke sistem pengumpulan data cuaca. Data yang dikirim adalah suhu tanah dan udara rata-rata minimum dan maksimum, tekanan udara rata-rata minimum dan maksimum, kecepatan angin rata-rata minimum dan maksimum, jumlah curah hujan dan arah angin sebagai sampel pada interval 5 menit. Stimulus : Sistem pengumpulan data cuaca mengatur link modem dengan stasiun cuaca dan permintaan untuk transmisi data. Respon : Data yang telah diringkas dikirim ke system pengumpulan data cuaca Komentar : stasiun cuaca biasanya diminta untuk melaporkan satu jam sekali, namun frekuensi ini dapat bervariasi dari satu stasiun ke stasiun lain dan dapat dimodifikasi di masa depan.

8.8.

What do you understand by the term stress testing? Suggest how you might stress test the MHC-PMS. Jika 90% dari transaksi dalam suatu sistem adalah dari tipe A; 5% dari tipe B, dan sisanya jenis C, D, dan E, maka harus mendesain profil operasional sehingga sebagian besar tes itu bertipe A. Jika tidak, maka tidak akan mendapatkan tes yang akurat dari kinerja operasional sistem. Pendekatan ini, tentu saja, tidak selalu pendekatan yang terbaik untuk pengujian cacat. Pengalaman telah menunjukkan bahwa cara yang efektif untuk menemukan cacat adalah untuk merancang tes disekitar batas-batas sistem. Dalam pengujian kinerja, ini berarti menekankan sistem dengan membuat tuntutan yang berada di luar batas desain perangkat lunak. Hal ini dikenal sebagai 'stress testing'. Sebagai contoh, katakanlah Anda

sedang menguji proses transaksi sistem yang dirancang untuk memproses sampai dengan 300 transaksi per detik. Anda mulai pengujian sistem ini dengan kurang dari 300 transaksi per detik. Anda kemudian secara bertahap meningkatkan beban pada sistem di luar 300 transaksi per detik sampai melampaui beban maksimum dari desain sistem dan sistem tersebut gagal. Sebagai contoh dari sebuah skenario yang mungkin dari MHC-PMS, yaitu salah satu cara bahwa sistem dapat digunakan pada kunjungan rumah. Ini tes sejumlah fitur MHC-PMS: 1. Otentikasi dengan masuk ke sistem. 2. Download dan upload catatan pasien tertentu untuk laptop. 3. Penjadwalan kunjungan rumah. 4. Enkripsi dan dekripsi dari catatan pasien pada perangkat mobile. 5. Rekam pengambilan dan modifikasi. 6. Link dengan database obat yang mempertahankan efek samping informasi. 7. Sistem untuk panggilan mendorong.
8.9.

What are the benefits of involving users in release testing at an early stage in the testing process? Are there disadvantages in user involvement? Keuntungan jika melibatkan user dalam software release pada tahap awal - Lebih banyak bugs yang mungkin ditemukan karena komputer milik user sangat bervariasi - Mengetahui pendapat dari user sasaran kita Kerugian jika melibatkan user dalam software release pada tahap awal - Tidak semua user melakukan umpan balik - Tidak semua user paham terhadap software tersebut, sehingga laporan ada yang tidak valid

8.10. A common approach to system testing is to test the system until the

testing budget is exhausted and then deliver the system to customers. Discuss the ethics of this approach for systems that are delivered to external customers.

CHAPTER 9 9.1. Explain why a software system that is used in a real-world environment must change or become progressively less useful. Sesuai dengan Hukum evolusi Lehman pertama yang menyatakan bahwa Sebuah program yang digunakan dalam lingkungan dunia nyata selalu harus berubah, atau menjadi semakin kurang bermanfaat dalam lingkungan tersebut Sistem perangkat lunak yang sukses, dapat berubah dan berkembang seiring waktu. Proporsi utama dari perubahan adalah untuk memenuhi kebutuhan pengguna. Perubahan yang signifikan juga berasal dari kebutuhan untuk beradaptasi perangkat lunak untuk berinteraksi dengan entitas eksternal, termasuk orang-orang, organisasi, dan sistem buatan. Hukum ini menyatakan bahwa pemeliharaan dan pengembangan sistem adalah sebuah proses yang tak terelakkan. Ketika sistem dimodifikasi dan diperkenalkan kembali terhadap lingkungan, perubahan ini menyebabkan variasi dalam sistem internal dan diperlukan untuk dikelola dan dimonitor untuk memastikan bahwa perubahan yang dilakukan benar dan dapat digunakan di lingkungan baru. Explain the rationale underlying Lehmans laws. Under what circumstances might the laws break down? Hukum lehman menjelaskan bahwa sebuah program haruslah berkembang untuk meyesuaikan seiring waktu berjalan. Secara Rasional, manusia cepat sekali berkembang dan berubah-ubah kesukaan. Dan untuk memuaskan pelanggan, maka program juga harus berubah seiring dengan perkembangan manusia. Contohnya, masalah perbankan yang dulu manual sekarang menggunakan ATM. Dan ATM yang berisi program itu juga akan berkembang dengan kebutuhannya tentang transfer, menambah fitur favorit, dll. Jika program itu tidak berkembang, maka lambat laun program itu akan ditinggalkan. Hukum ini tidak berlaku ketika program memang dibuat untuk jangka waktu yang pendek. Karena pendeknya waktu, maka perubahan belum terjadi. From Figure 9.4, you can see that impact analysis is an important subprocess in the software evolution process. Using a diagram, suggest what activities might be involved in change impact analysis.

9.2.

9.3.

Update traces requirement predicates to architecture components traces dari predikat persyaratan berubah menjadi komponen arsitektur diperbarui. Predikat persyaratan Diperbarui mungkin berdampak komponen lainnya, setelah perubahan. Transform architecture to executable Alloy code Arsitektur ditransformasikan untuk mengeksekusi Alloy code. Alloy code digunakan untuk mensimulasikan dan memvalidasi arsitektur persyaratannya. Simulate architecture, validate requirement predicates Arsitektur adalah simulasi untuk memperoleh perilaku arsitektur. simulasi ini sepenuhnya otomatis, tidak ada interaksi selama simulasi itu sendiri diperlukan. Find impacted components menemukan komponen yang berdampak.. aktivitas yang harus ditangani oleh CIA(Change Impact Analysis) (1) Traceability analysis untuk mengidentifikasi area-area yang dapat terpengaruh oleh masing-masing perubahan perangkat lunak. Perubahan meliputi: - Setelah akar penyebab kerusakan masing-masing diidentifikasi, untuk menentukan perubahan yang diperlukan, untuk memperbaiki kode dan dokumentation impact (misalnya requirements, design, architecture, test cases and test procedures). (2) Memory margin analysis - Jika berlaku, spesifikasi alokasi memori yang diubah. - Untuk sistem embedded, puncak penggunaan memori pelacakan selama pengujian stres memberikan jaminan bahwa margin memori diterima dipertahankan. - Ketika dampak perubahan kode yang menggunakan alokasi memori atau fitur dealokasi, kegiatan reverification mungkin termasuk menggunakan alat-alat yang memeriksa kebocoran memori. (3) Timing margin analysis - Jika berlaku, spesifikasi waktu yang berubah. - Untuk sistem embedded, pelacakan waktu selama pengujian stres memberikan jaminan bahwa margin waktu diterima dipertahankan. (4) Data flow analysis - Jika konstanta publik atau global atau variabel publik atau global berubah, mengidentifikasi perubahan pada aliran data dan

penghubung antara komponen. (5) Control flow analysis - Mengidentifikasi ketika perubahan mempengaruhi aliran kontrol dan komponen kopling. (6) Input/output analysis - Mengidentifikasi ketika perubahan itu berdampak buruk input dan output (termasuk pemuatan bus, akses memori, dan input output interface perangkat keras dan perangkat) spesifikasi produk. (7) Development environment and process analyses - Mengidentifikasi perubahan opsi kompiler, versi, dan optimasi. - Mengidentifikasi perubahan linker, assembler, dan instruksi loader atau mengubah opsi; (8) Operational characteristics analysis - Mengevaluasi perubahan aspek berbagi dari arsitektur perangkat lunak (seperti perubahan pada keuntungan, filter, batas, validasi data, mengganggu dan penanganan eksepsi, dan mitigasi kesalahan). (9) Changes to Hardware - Mengidentifikasi perubahan yang signifikan sebagai prosesor perubahan ini biasanya mengakibatkan reverification utama. (10) Partitioning analysis - Mengidentifikasi perubahan yang berdampak partisi dimasukkan dalam desain.

9.4.

As a software project manager in a company that specializes in the development of software for the offshore oil industry, you have been given the task of discovering the factors that affect the maintainability of the systems developed by your company. Suggest how you might set up a program to analyze the maintenance process and discover appropriate maintainability metrics for your company. Beberapa yang mempengaruhi maintainability: a.Program dan kompleksitas data b.Bahsa pemrograman yang dipakai c.Dokumentasi pengembangan program Untuk mengevaluasinya: a.Lakukan pengecekan apakah ada kesalahan pada program, input data dan kecocokan dengan outputnya.

b.Sesuaikan dengan lingkungan yang ad sekarang, masihkan program tersebut dapat berjalan dengan baik dengan lingkungan sekarang. c.Perlukah merubah fungsi yang sudah ada atau fungsi-fungsi yang lain ditambahkan, jika perlu analisis fungsi-fungsi apa sajakah yang perlu ditambah. Setelah evaluasi terhadap sistem dilakukan: a.Karena biaya untuk menambah dan merubah fungsi adalah biaya paling besar yang kemungkinan terjadi pada proses maintenance minimalisir pemeliharaan di aspek ini. b.Jika terjadi perubahan-perubahan pada sistem, sebelumnya perkirakan bagian mana sajakah dari proses keseluruhan bisnis (dalam hhal ini pertambangan minyak lepas pantai) yang terpengaruh. Pastikan ketika melakukan pemeliharaan baik itu mengoreksi program yang salah, menyesuaikan terhadap lingkungan yang baru, maupun menambah atau merubah fungsi tidak memberikan dampak buruk dan fatal terhadap aspek-aspek yang terpengaruh oleh sistem. 9.5. Briefly describe the three main types of software maintenance. Why is it sometimes difficult to distinguish between them? Ada tiga tipe dalam software maintenance yaitu: 1.Correctiv maintenance / pembetulan kesalahan. Perubahan dibuat ke system untuk membetulkan kesalahan yang dilaporkan, semisal bugs atau spesifikasi error . 2.Adaptive maintenance atau environmental adaptation. Merubah software agar dapat beradaptasi dengan perubahan pada enviromentanl, semisal dengan mengganti ke system software lain 3. Perfective maintenance atau penambahan fungsional. Dengan memberikan fungsi / fitur baru pada system. Beberapa kadang sulit untuk dibedakan ,karena persamaan set dari perubahan yang mungkin mencover dari tiga tipe maintenance. Seperti contohnya, kesalahan yang dilaporkan di system mungkin di betulkan dengan upgrade beberapa software lain dan kemudian mengadaptasi system untuk menggunakan system baru (corrective+adaptive). Software baru mungkin memiliki fungsional tambahan dan merupakan bagian dari adaptive maintenance, fitur baru mungkin ditambahkan untuk mendapatkan keuntungan dari adaptive maintenance.

9.6.

What are the principal factors that affect the costs of system reengineering? Faktor - faktor utama yang mempengaruhi biaya dari suatu reengineering adalah 1. Kompleksitas struktur data yang akan di reengineering. Semakin kompleks struktur datanya, maka akan semakin mahal biaya reengineering. 2. Bahasa pemograman. Dibutuhkan biaya tambahan untuk menerjemahkan bahasa pemograman suatu program tertentu ke dalam bahasa pemograman yang sama tetapi lebih modern ataupun ke dalam bahasa pemograman yang lain. 3. Pendekatan yang digunakan. Tergantung dari tipe pendekatan yang digunakan, suatu proses reengineering bisa sangat mahal dan susah atau sangat murah dan simpel. Misalkan suatu proses reengineering yang menggunakan pendekatan restructuring dan perubahan arsitekturil tentu saja akan membutuhkan biaya yang lebih besar dibandingkan dengan pendekatan konversi source code otomatis.

9.7.

Under what circumstances might an organization decide to scrap a system when the system assessment suggests that it is of high quality and of high business value. Hal itu mungkin bisa terjadi dalam dalam beberapa keadaan seperti 1. Harga yang dibutuhkan untuk memproduksi sistem terlalu mahal 2. Harga yang dibutuhkan untuk melakukan maintenance masih tetap mahal 3. Sistem tersebut terlalu sulit untuk di develop

9.8.

What are the strategic options for legacy system evolution? When would you normally replace all or part of a system rather than continue maintenance of the software? Pilihan strategis untuk evolusi dari legacy system: 1. Membuang keseluruhan sistem. 2. Membiarkan sistem tidak berubah dan tetap melanjutkan pemeliharaannya seperti biasa. 3. Merekayasa ulang sistem untuk meningkatkan kemampuannya

untuk dipelihara. 4. Mengganti seluruh atau sebagian dari sistem dengan sistem yang baru. Mengganti seluruh atau sebagian dari sistem dilakukan daripada melanjutkan pemeliharan software ketika terdapat hardware baru dimana sistem lama tersebut tidak dapat beroperasi atau ketika terdapat off-the-shelf systems (sistem siap pakai) yang membuat sistem yang baru dapat dikembangkan dengan biaya yang cukup murah. Dalam banyak kasus strategi penggantian yang evolusioner dapat diadopsi dimana komponen utama sistem digantikan dengan off-the-shelf systems dengan komponen lain dari sistem sebelumnya digunakan lagi jika memungkinkan. 9.9. Explain why problems with support software might mean that an organization has to replace its legacy systems. dalam menaksir suatu legacy system tidak hanya dari perspektif bisnis, tetapi juga dari sudut pandang secara teknis. secara teknis, kita harus mempertimbangkan aplikasi sistem itu sendiri dan lingkungan dimana sistem beroperasi. lingkungan di sini meliputi hardware dan software pendukung. tidak hanya hardware, software pendukung ini sangatlah penting karena perubahan yang terjadi pada software pendukung dapat mengakibatkan perubahan pada keseluruhan sistem. software pendukung ini mungkin usang dan tidak lagi didukung penyedia asli mereka. masalah yang terjadi pada software pendukung akan menyebabkan biaya pemeliharaan yang tinggi, mengingat sudah tidak ada dukungan dari penyedia asli, selain itu pentingnya software pendukung ini karena dapat mempengaruhi perubahan keseluruhan sistem, sehingga masalah yang terjadi pada software pendukung ini bisa berarti organisasi harus mengganti legacy system nya 9.10. Do software engineers have a professional responsibility to produce code that can be maintained and changed even if this is not explicitly requested by their employer? Ya. Maintainability merupakan atribut penting untuk perangkat lunak yang baik. Setelah perangkat lunak diluncurkan, perubahan atau evolusi tidak dapat dihindari untuk menjaga perangkat lunak tetap berfungsi dan menyesuaikan dengan kebutuhan pengguna. Pada ACM/IEEE Code of Ethics tertulis, "Software engineers shall act

in a manner that is in the best interests of their client and employer consistent with the public interest". Maka seorang software engineer seharusnya menciptakan code yang maintainable dan mudah diubah untuk hasil perangkat lunak yang baik. Kecuali mungkin jika secara "eksplisit" tidak diperbolehkan oleh employer-nya.

Anda mungkin juga menyukai