-SOFTWARE ENGINEERING –
1601221635 – Kristian Surya Dharma
1601218464 – Louis Andri Dinata

CHAPTER 8


8.1. Do you design software when you “write” a program? What makes software design different from coding?
Jawab :
Benar. Software design ialah step-step dimana masalah/hal yang menjadi halangan dapat di pecahkan yang mendefinisikan karakteristik dari sebuah sistem atau komponen lain di dalamnya.Sedangkan coding adalah proses pembuatan algoritma dalam bahasa pemograman.

8.2. If a software design is not a program (and it isn’t), then what is it?
Jawab :
Apabila Software design bukanlah sebuah program ,maka Software design ialah sebuah proses pemecahan masalah yang mendefinisikan arsitektur, komponen, interface dan karakteristik dari sebuah system atau komponen lainnya yang berada didalamnya.

8.3. How do we assess the quality of a software design?
Jawab :
Sebuah Software desain yang baik :

1 Desain harus mengimplementasikan semua persyaratan eksplisit yang terkandung dalam model persyaratan , dan harus mengakomodasi semua kebutuhan implisit yang diinginkan oleh para pemangku kepentingan .

2 Desain harus dibaca , dimengerti panduan bagi mereka yang menghasilkan kode dan bagi mereka yang menguji dan kemudian mendukung perangkat lunak.

3 Desain harus menyediakan gambaran yang lengkap dari perangkat lunak, menangani data, fungsional , dan domain perilaku dari perspektif implementasi .

8.4. Examine the task set presented for design. Where is quality assessed within the task set? How is this accomplished? How are the quality attributes discussed in Section 8.2.1 achieved?
Jawab :
a. Pastikan Anda memahami big picture-konteks di mana perangkat lunak yang akan dibangun berada. Persyaratan Model harus mengkomunikasikan hal ini kepada Anda.

b. Meneliti gambaran besar, mengekstrak pola yang hadir pada tingkat abstraksi.

c. Mulailah desain Anda dengan “gambaran besar” pola yang membentuk konteks atau kerangka untuk pekerjaan desain lebih lanjut.

d. “Bekerja batin dari konteks” mencari pola di tingkat bawah abstraksi yang berkontribusi terhadap solusi desain.

e. Ulangi langkah a hingga d sampai desain lengkap fleshed keluar.

f. Memperbaiki desain dengan mengadaptasi setiap pola spesifik dari perangkat lunak yang Anda mencoba untuk membangun.

8.5. Provide examples of three data abstractions and the procedural abstractions that can be used to manipulate them.
Jawab :
Program : memasukan nilai hasil TM ke sistem
Abstraction 1 (highest level):
dosen memasukan nilai mahasiswa ke database sistem.
Abstraction 2 (lower level):
Procedural abstraction :
_ tampilkan pilihan mata pelajaran
_ input data
_ update data
Data abstraction
_ nama is STRING
_ nim is STRING
_ nilai is INT

8.6. Describe software architecture in your own words.
Jawab :
Struktur sistem dari sebuah program atau sistem komputer yang tersusun atas komponen-komponen perangkat lunak, ciri yang terlihat secara eksternal dari komponen-komponen, serta hubungan antar komponen. Yang berfungsi untuk mengoptimasi quality dari sebuah aplikasi yg meliputi: performance, security, dan manageability.

8.7. Suggest a design pattern that you encounter in a category of everyday things (e.g.,
consumer electronics, automobiles, appliances). Briefly describe the pattern. 

Jawab :

8.7

 

 

 

 

 

 

 

8.8. Describe separation of concerns in your own words. Is there a case when a divide-and- conquer strategy may not be appropriate? How might such a case affect the argument for modularity?
Jawab :
Pemisahan keprihatinan melibatkan pemecahan masalah yang kompleks dengan memecahnya menjadi sub masalah secara terpisah dipecahkan.
Apakah ada kasus ketika sebuah strategi membagi-dan-menaklukkan mungkin tidak sesuai? Bagaimana mungkin kasus seperti itu mempengaruhi argumen untuk modularitas?
Ada kasus di mana bagian yang berbeda dari masalah yang saling terkait dengan cara yang membuat pertimbangan yang terpisah lebih kompleks daripada pertimbangan gabungan. Masalah yang sangat digabungkan menunjukkan karakteristik ini. Ya, Ada kasus ketika sebuah strategi membagi-dan-menaklukkan mungkin tidak sesuai.

 

 

8.9. When should a modular design be implemented as monolithic software? How can this be accomplished? Is performance the only justification for implementation of monolithic software?
Jawab :
Monolithic software Software ITU adalah Yang dapat berdiri Sendiri Tanpa bantuan software bahasa Dari TOTAL. Metodenya adalah software Suami Bukan HANYA melakukan 1 JENIS tugas Saja TAPI melakukan langkah terkait masih berlangsung untuk mencapai sasaran.
Kapan desain modular diimplementasikan sebagai perangkat lunak monolitik? Bagaimana hal ini dapat dicapai?
Desain modular berubah Ke software monolitik Ketika software ITU adalah “Layanan Bukan berorientasi” Contohnya Adalah:. Pengolah kata.

 
8.10. Discuss the relationship between the concept of information hiding as an attribute of effective modularity and the concept of module independence.
Jawab :
Modul dari Information hiding adalah modul dimana data di hide dan tidak bisa diakses sembarangan oleh modul lainnya. Setiap modul hanya berkomunikasi dengan modul lainnya bila diperlukan oleh system dan semua fungsinya akan tetap terhide didalam modul. Konsep ini berguna untuk testing, maintance, dan perubahan kedepannya.
Jika modul dikembangkan menjadi “concept of module independence” modul juga akan bekerja dengan baik yang penting kita harus memperhatikan  cohesion (semakin tinggi semakin baik) dan coupling (semakin rendah semakin baik) yang terjadi.

 
8.11. How are the concepts of coupling and software portability related? Provide examples to support your discussion.
Jawab :
Software harus terdiri dari set modul dengan berbagai tingkat coupling. Platform fungsi tergantung harus berkonsentrasi pada satu atau lebih modul dengan kopling sangat rendah. Dalam hal ini platform hanya modul dependend harus menyesuaikan diri dengan platform baru. Misalnya I / O modul harus dirancang dengan kopling rendah, sehingga port perangkat lunak hanya akan terdiri dari port I / O modul. Contoh lain bisa JAVA. JVM dan asli perpustakaan tergantung platform.

8.12. Apply a “stepwise refinement approach” to develop three different levels of procedural abstractions for one or more of the following programs: (a) Develop a check writer that, given a numeric dollar amount, will print the amount in words normally required on a check. (b) Itera- tively solve for the roots of a transcendental equation. (c) Develop a simple task scheduling algorithm for an operating system.
Jawab :
Program : (a) Develop a check writer that, given a numeric dollar amount, will print the amount in words normally required on a check.
Abstraction 1 (highest level):
check writer given a numeric dollar amount
Abstraction 2 (lower level):
Procedural abstraction :
_ input dollar amount
_ update data
_ tampilkan dollar amount in word
Data abstraction
_ dollar is INT
_ dollar amount in word is STRING

8.13. Consider the software required to implement a full navigation capability (using GPS) in a mobile, handheld communication device. Describe two or three crosscutting concerns that would be present. Discuss how you would represent one of these concerns as an aspect.
Jawab :
Crosscutting yang terjadi adalah Akan logging ke satelit Dan lokasi validasi.
Diskusikan bagaimana Anda akan merupakan salah satu keprihatinan ini sebagai aspek. !
KARENA telah disisipi Diposkan oleh method2 berbaring Yang regular tidak ADA hubungan secara eksplisit Artikel Baru download aplikasi GPS.

8.14. Does “refactoring” mean that you modify the entire design iteratively? If not, what does it mean?
Jawab :
Refactoring adalah proses memodifikasi sistem perangkat lunak yang dibuat sebelumnya tanpa mengubah perilaku eksternal. Namun itu tidak memperbaiki struktur internal. Hal ini meningkatkan desain kode setelah telah ditulis oleh menghilangkan redudansi, elemen desain yang tidak terpakai, algoritma yang tidak perlu, tidak pantas struktur data dan meminimalkan kemungkinan memperkenalkan bug.

8.15. Briefly describe each of the four elements of the design model.
Jawab :
elemen data

– Model data terdiri Bahasa Dari Yang di tunjukan struktur data PADA arsitektur database Dan

elemen arsitektur

– Domain Aplikasi

– Analisis kelas, hubungan mereka, kolaborasi dan perilaku yang

diubah menjadi realisasi desain

– Pola dan “gaya” (Bab 9 dan 12)

elemen antarmuka

– User interface (UI)

– Antarmuka eksternal untuk sistem lain, perangkat, jaringan atau lainnya

produsen atau konsumen informasi

– Antarmuka internal antara berbagai komponen desain.

komponen Elements

– * Semua componen Yang dipakai Dalam, desain model.

Leave a Reply