Tugas Teori Bahasa dan Automata " Perbandingan waktu compile data menggunakan MySQL dan SQL Server 2008'
Link untuk download : https://docs.google.com/file/d/0BwC0FBPog6BXSU5yRHJvTWdVVEE/edit?usp=sharing
Tugas Rekaya Perangkat Lunak "Pengaruh Sftware Engineering Terhadap Perkembangan di Indonesia"
JURNAL REKAYASA PERANGKAT LUNAK
“Pengaruh Software Engineriing Terhadap Perkembangan Software di Indonesia”
DAFTAR ISI
Abstraksi
Bab I
Pendahuluan………………………………………………….1
Bab II
Pengenalan PSP dan TSP…………………………………….3
2.1 PSP (Personal Software Processing)…………………….3
2.2 TSP (Team Software Processing)………………………..5
Bab III
Struktur Proses PSP………………………………………….8
3.1 Perancangan PSP………………………………………..10
3.2 Estimasi ukuran dengan PROBE………………………..10
3.3 Estimasi sumber daya dengan PROBE………………….11
3.4 Set data perhitungan PSP………………………………..11
Bab IV
Manajemen Kualitas dan Desain PSP……………………….14
4.1 Manajemen Kualitas PSP………………………………..14
4.2 PSP Desain………………………………………………14
Bab V
Kesimpulan…………………………………………………..16
Daftar Pustaka………………………………………………..18
Biografi…………………………………………………………..26
DAFTAR GAMBAR
Gambar 1 : Tahapan PSP…………………………………..4
Gambar 2 : TSP Launch……………………………………5
Gambar 3: Produk TSP Launch……..……………………..7
Gambar 5: PSP Process Flow………………………………8
Gambar 7: Elemen Proses PSP……………………………..8
Gambar 8: Proses Perancangan…………………………….10
Gambar 9: Effort Estimation Accuracy………....………….16
Gambar 10: Defect Level Improvement……………………16
Gambar 11: Productivity Result……………………………17
DAFTAR TABEL
Tabel 1: PSP1 Project Plan Summary (terlampir)
Tabel 2: PSP1 Skrip Proses……………………………….9
Tabel 3: Ukuran data dalm C++…………………………..11
Tabel 4: Spesifikasi struktur objek………………………..14
Tabel 5: Struktur Template PSP…………………………..15
Abstract
Personal Software Process (PSP) help programmers to learn discipline in building a software that can produce a product that has a good performance with high productivity. PSP process comprises a series of methods, forms, and scripts are designed, measured, and maintained for consistency. PSP is designed for a programming language or design methodology, as well as every aspect of the software. In this paper, there is also a little discussion about the TSP (Team Software Processing) which is a method that is almost the same as the PSP only be done in groups.
KATA PENGANTAR
Puji syukur saya ucapkan atas kehadirat Allah SWT, karena dengan rahmat dan karunia-Nya kami masih diberi kesempatan untuk menyelesaikan makalah ini. Tidak lupa saya ucapkan kepada dosen pembimbing yang telah memberikan dukungan dalam menyelesaikan makalah ini.
Kami menyadari bahwa dalam penulisan makalah ini masih banyak kekurangan, oleh sebab itu kami sangat mengharapkan kritik dan saran yang membangun. Dan semoga dengan selesainya makalah ini dapat bermanfaat bagi pembaca. Aamiin...
Bekasi, 12 Februari 2013
Penyusun
Bab I
Pendahuluan
1.1 Latar Belakang
Selama beberapa dekade dalam pengembangan suatu perangkat lunak, beberapa perusahaan perangkat lunak mencari suatu metode yang efektif dalam menangani memprosesan suatu perangkat lunak. Hal ini dilakukan supaya dalam pemrosesannya dapat berlangsung secara efektif dengan prinsip manajemen yang baik.
Menilik kenyataan tersebut Micheal Fagan mengenalkan Capability Maturity Model (CMM) yang dipergunakan untuk meningkatkan kualitas perangkat lunak. Prinsip dari CMM adalah sistem manajemen dan membantu programmer untuk mengembangkan perangkat lunak tersebut. Model ini telah berhasil meningkatkan performansi dari organisasi suatu perangkat lunak.
Kemudian timbul suatu metoda baru, yaitu Personal Software Process (PSP) dan Team Software Process (TSP). Kedua metode ini dikembangkan dengan kelebihan serta kekurangan yang dimiliki. PSP merupakan metode yang ditujukan untuk programmer yang bekerja secara individu. Dalam hal ini PSP berguna untuk membantu programmer dalam menjaga kualitas mulai dari awal, menganalisa program, dan bagaimana mengembangkan perangkat lunak untuk proyek yang berikutnya. Sedangkan TSP hampir sama seperti PSP hanya dilakukan dengan membentuk tim. Dalam metode ini seorang programmer diharapkan saling bekerja sama dalam membangun suatu perangkat lunak. Dengan ini perangkat lunak dapat dibangun dengan manajemen serta displin yang baik sehingga menghasilkan suatu perangkat lunak yang memiliki kualitas yang baik serta minimnya cacat dari suatu produk.
1.2 Batasan Masalah
Kami akan membahas tentang bagaimana prinsip PSP serta struktur yang dimiliki oleh metoda ini dan sedikit pengenalan tentang TSP dan juga manajemen yang dimiliki oleh kedua metoda ini untuk meningkatkan kualitas suatu perangkat Lunak.
1.3 Tujuan
Tujuan dibuatnya makalah ini, antara lain :
1. Untuk memahami tentang proses suatu perangkat lunak.
2. Untuk memahami metoda-metoda yang dipakai untuk meningkatkan kualitas suatu perangkat lunak.
Bab II
Pengenalan PSP dan TSP
2.1 PSP (Personal Software Processing)
PSP pertama di popularkan oleh Watts Humphrey dengan mengajarkan metoda ini kepada mahasiswa tingkat 4 University of Massachuset pada September 1993. Tapi bukan hanya itu ia juga telah menerbitkan beberapa buku untuk lebih memasyarakatkan metoda ini.
Prinsip-prinsip yang diterapkan dalam perencanaan dengan PSP adalah :
• Setiap programmer berbeda, supaya efektif, mereka harus merencanakan pekerjaan mereka berdasarkan perencanaan yang sudah dibuat dengan datanya sendiri.
• Untuk mengembangkan performansinya, seorang programmer harus menjelaskan serta menghitung proses secara detil.
• Dalam mengembangkan produknya, seorang programmer harus bertanggung jawab terhadap produk mereka. Maka itu seorang programmer harus konsekuen terhadap pekerjaannya.
• Biaya produk lebih sedikit untuk dicari dan diperbaiki cacatnya karena dilakukan sebelum masuk proses selanjutnya.
• Lebih efektif untuk mencegah cacat daripada harus mencari serta memperbaikinya.
• Cara yang terbaik untuk menyelesaikan pekerjaan secara cepat dan murah.
Untuk membangun suatu perangkat lunak, seorang programmer harus merencanakan terlebih dahulu sebelum memulai mengimplementasikannya, dan mereka harus menentukan proses-proses yang ada. Agar memahami performasinya, mereka juga harus menghitung waktu yang dipakai untuk setiap langkah yang diambil, cacat yang ada, serta ukurannya. Supaya kualitas produknya tetap konsisten, programmer harus fokus terhadap kualitasnya dari awal memulainya. Akhirnya mereka harus menganalisa setiap fase yang ada dan mempergunakannya untuk meningkatkan prosesnya.
PSP memiliki beberapa tahapan yang terdiri dari 10 program dan 5 laporan. Metoda PSP mempunyai 7 bagian, PSP0 sampai PSP 3 (lihat gb. 1). Programer membuat satu atau dua program di setiap langkah yang kemudian disatukan dan menganalisa data yang ada.
gb. 1 : Tahapan PSP
PSP0 dan PSP0.1
Pada tahap ini programmer membuat 3 program dengan menggunakan PSP0 dan PSP0.1. Di sini memahami bagaimana prosesnya dan mencari ukuran, waktu, serta data yang cacat.
PSP1 dan PSP1.1
Setelah mengumpulkan analisa yang ada, fokusnya beralih kepada estimasi dan perancangan yang akan mendapatkan ukuran dari produksi dan estimasi sumber daya serta penjadwalan perancangan. Dalam tahap ini dibangun 3 program.
PSP2 dan PSP2.1
Dalam tahap ini mereka mempelajari tentang cacat yang ada dan cara memperbaikinya disertai peningkatan kualitas perangkat lunak. Di sini 4 program dibangun.
PSP3
Dokumen ini berisikan tentang analisa terhadap performansi terakhir yang telah di uji coba untuk memeriksa apakah sudah sesuai dengan tujuan yang ditetapkan sebelumnya, dan untuk mengindetifikasi apa saja yang sudah dicapai.
2.2 TSP (Team Software Processing)
Pada dasarnya hampir sama seperti PSP, TSP dikembangkan untuk membantu pekerjaan programmer dengan melakukannya secara berkelompok sehingga cacat yang dimiliki oleh suatu produk menjadi berkurang.
Prinsip-prinsip yang dimiliki oleh TSP :
• Programer yang mengerti tentang perangkat lunak yang diinginkan dapat membuat perencanaan yang terbaik.
• Ketika programmer menangani perangkat lunak, mereka tetap konsisten dengan rencana yang sudah dibuat.
• Proyek yang tepat membutuhkan perancangan yang detil dan keakuratan suatu data.
• Hanya orang yang membuat yang mengerti keakuratan serta ketepatan data.
• Meminimalkan waktu produksi.
• Memaksimalkan produksi namun tetap mengutamakan kualitas.
TSP memiliki 2 komponen, yaitu tim yang membangun komponen dan tim yang memanajemen komponen tersebut. Tim yang membangun komponen adalah TSP Launch.
Hal yang pertama kali dilakukan di TSP launch. Pada bagian ini dipimpin oleh seorang coach. Dalam TSP launch diperoleh kesepakatan dan pedekatan yang dipakai dalam membangun perangkat lunak, urutan-urutan proses pengerjaan, dan manajemen yng dipakai untuk mencapainya. Bagian ini di bagi berdasarkan 9 rapat dengan periode selama 4 hari (lihat gb. 2).
gb. 2: TSP Launch
Pada langkah pertama dalam rapat 1, mereka dipertemukan dengan pelanggan dan tim manajemen. Dalam rapat ini mereka mendapatkan penjelasan secara rinci mengenai perangkat lunak yang akan dibangun serta untuk siapa perangkat lunak ini dibangun.
Rapat 2, dibahas tentang antarmuka dari perangkat lunak beserta tujuan yang ada. Selain itu, tim manajemen menentukan orang-orang yang melakukan tugas yang telah ditentukan. Tugas-tugas yang ada antara lain :
• customer interface manager
• design manager
• implementation manager
• test manager
• planning manager
• process manager
• support manager
• quality manager
Rapat 3, menentukan strategi untuk membangun perangkat lunak tersebut. Tim akan membuat desain secara konseptual, strategi pengembangan perangkat lunak, menjelaskan proses secara detil, dan memutuskan perlatan serta fasilitas yang akan dipakai.
Rapat 4, merencanakan pengembangan ke depan. Hal ini direncanakan berdasarkan produk yang akan diproduksi, identifikasi tugas serta tujuan yang ingin dicapai, menetapkan tujuan berdasrkan sikluus yang telah ditetapkan pada level pembagian kerja, dan membuat jadwal untuk menyelesaikan proyek tersebut.
Rapat 5, menetapkan perancangan yang tepat untuk mencapai kualitas tujuan tersebut. Hal ini dilakukan dengan mengestimasi jumlah dari cacat yang ada dan menanganinya, setelah itu menghitung banyaknya cacat pada akhir produksi.
Rapat 6, para programmer masing-masing mengkalkulasikan berapa waktu yang dibutuhkan untuk menyelesaikan bagian mereka. Yang akan diulas kembali untuk memastikan perancangan yang dilakukan telah sesuai dengan tujuan yang telah ditetapkan sebelumnya.
Rapat 7, melakukan perhitungan resiko. Resiko lalu diidentifikasi dan berusaha menguranginya. Dan kemudian dibuat dokumentasinya untuk mempermudah dalam pengecekan.
Rapat 8, mempresentasikan perancangan yang sudah dibuat kepada manajemen. Jika apa yang diharapkan oleh mereka tidak sesuai dengan yang dirancangkan, maka tim akan membuat alternatif rancangan. Misalkan, dengan menambahkan sumber daya atau mengurangi fungsionalitasnya.
Rapat 9, tim telah mencapi kesepakatan sehingga menjelaskan perancangan yang sudah dibuat, menjelaskan cara membangunnya, dan mendemonstrasikannya kepada semua anggota tim. Jika tidak ada kesepakatan maka akan dipakai rancangan alternative. Alasan mendasar untuk memakainya adalah untuk mengatasi permasalahan jika tidak sesuai dengan kebutuhan yang diiginkan pelanggan.
gb.3 : Produk TSP Launch
Bab III
Struktur Proses PSP
Langkah pertama yang dilakukan dalam PSP adalah planning. Sementara programmer membuat program, mereka mencatat waktu dan cacat yang ada dan log cacat tersebut. Akhirnya, selama fase postmortem, mereka melakukan kalkulasi waktu dan cacat yang ada berdasarkan log, mengukur besarnya program, dan memasukkan data di plan summary form.
gb. 5: PSP Process Flow
Karena banyaknya method yang dihasilkan lalu method tersebut dibagi berdasarkan 7 bagian. Setiap bagian memiliki data-data yang telah dikelompokan berdasarkan kebutuhan serta tujuan yang sama. Proses dari skrip tergantung terhadap langkah yang kita ambil dalam setiap bagian proses. Hal ini tergantung dari standar yang dipakai oleh masing-masing programmer.
gb. 6 : Terlampir project plan summary form
Contoh dari PSP skrip (Tabel 2 PSP1 skrip proses)
No. Fase Tujuan Keterangan
Masukkan kriteria • Penjelasan program
• PSP1 project plan summary form
• Estimasi ukuran template
• Estimasi data awal
• Waktu dan cacat recording log
1 Perancangan • Memunculkan atau mempertahankan kebu-tuhan pelanggan
• Menghitung LOC dengan PROBE
• Melengkapi estimasi template
• Estimasi waktu pengembangan
• Masukkan data ke dalam project plan summary form
• Melengkapi time recording log
2 Pengembangan • Mendesain program
• Mengimplementasi desain
• Mengkompilasi program dan memperbaiki cacat yang ada.
• Melengkapi time recording log
3 Postmortem Melengkapi project plan summary form dengan waktu, cacat, dan ukuran data.
Exit Kriteria • Menguji coba program
• Melengkapi project plan summary form beserta estimasi dan data.
• Melengkapi estimasi template
• Melengkapi PIP(Process Improvement Pro-posal) form
3.1 Perancangan PSP
gb. 7 : Elemen Proses PSP
gb. 8 : Proses Perancangan
Kebutuhan
Sebelum melakukan perancangan seorang programmer harus mengetahui terlebih dahulu apa yang diinginkan oleh pelanggan. Keakuratan pada bagian ini ditentukan berdasarkan pemahaman programmer terhadap kebutuhan pelanggan.
Konseptual desain
Supaya bisa mengestimasi secara baik, maka dibuat desain kasar yang telah disesuaikan dengan kebutuhan yang diinginkan pelanggan. Yang digunakan sebagai dasar untuk fase desain
Estimasi ukuran produk dan sumber daya
Hal ini dilakukan untuk memperkirakan ukurn supaya sesuai dengan yang dikalkulasikan sebelum mengimplementasi program. Estimasinya dilakukan dengan PROBE.
3.2 Estimasi ukuran dengan PROBE
Proxy Based Estimating (PROBE) menggunakan hak otoritas atau objek sebagai dasar untuk menghitung. Dengan metoda ini programmer dapat menentukan konsep dasar desain produk. Dalam pengukuran ini PROBE memperlihatkan besarnya jangkauan suatu data. Kemudian dari jangkauan data tersebut dibuat regresi linier dari banyak kode yang rencananya akan dipakai.
Tabel 3 ukuran data dalam C++
3.3 Estimasi sumber daya dengan PROBE
Untuk mengestimasi sumber daya dibutuhkan beberapa tahap pengembangan, tahapnya antara lain :
• Buat Jadwal
Dengan adanya jadwal yang terencana mereka dapat lebih teratur dan belajar untuk disiplin.
• Mengembangkan Produk
Pada tahap ini mereka melakukan proses implementasi program.
• Analisa Proses
Tahap ini dilakukan setelah proses implementasi selesai dan programmer menyelesaikan analisa postmortem. Di postmortem, mereka memperbaharui data yang ada, menghitung performansi data, dan kesesuainnya dengan perancangan sebelumnya. Dan juga membantu pengembangan selanjutnya dari perangkat lunak dengan memberikan apa saja kelemahan dari program ini.
3.4 Set data perhitungan PSP
PSP memakai LOC (Lines Of Code) untuk perhitungan setiap bahasa pemrograman yang dipakai, contohnya : jumlah data yang ada dalam database, jumlah use case, jumlah class, dll. Supaya LOC pada masing-masing programmer sama, maka dibuat standar yang berlaku untuk semua coding.
Contoh : Jika suatu produk memiliki 100,000 LOC untuk membangun versi terbaru, dan ada 12,000 LOC kode yang dihapus, 23,000 LOC kode yang ditambahkan, 5,000 LOC kode yang diubah, dan 3,000 LOC kode yang dipakai lagi. Berapa LOC baru dan diubah?
N&C LOC = Added + Modified
28,000 = 23,000 + 5,000
Ukuran total produk adalah
Total LOC = Base – Deleted + Added + Reused
Total LOC = 100,000 – 12,000 + 23,000 + 3,000
= 118,000 LOC
= 118 KLOC
Waktu dihitung berdasarkan banyaknya waktu yang dibutuhkan oleh setiap bagian program. Tidak termasuk didalamnya waktu interupsi. Cacat yang dimiliki oleh suatu produk juga dapat dihitung sehingga programmer dapat dengan mudah mengidetifikasinya, mengenalinya, dan menghitungnya.
Selain ketiga perhitungan data diatas masih ada perhitungan data yang lain ng ditujukan untuk mengukur kualitas dari suatu perangkat lunak, antara lain :
• estimation accuracy (size/time)
• prediction intervals (size/time)
• time in phase distribution
• defect injection distribution
• defect removal distribution
• productivity
• reuse percentage
• cost performance index
• planned value
• earned value
• predicted earned value
• defect density
• defect density by phase
• defect removal rate by phase
• defect removal leverage
• review rates
• process yield
• phase yield
• failure cost of quality (COQ)
• appraisal COQ
• appraisal/failure COQ ratio
Bab IV
Manajemen Kualitas dan Desain PSP
4.1 Manajemen Kualitas PSP
Manajemen kualitas dari suatu perangkat lunak diperlukan untuk menjaga kualitasnya. Sehingga seorang programmer harus bisa mengatur serta menjaga cara kerjanya yang berkualitas agar dapat mengatasi setiap permasalahan yang timbul dalam perangkat lunak yang sudah dibangun.
Salah satu yang menyebabkan suatu perangkat lunak berkurang kualitasnya adalah adanya cacat yang dimiliki suatu produk. Seperti pada produk yang terdahulu dengan menggunakan implementasi yang mudah memiliki banyak cacat tapi susah dideteksi apa penyebabnya. Sedangkan desain modern telah berhasil mengurangi cacat atau eror produk sehingga dapat dengan mudah mengatur serta melacak cacat yang terjadi.
Dengan menggunakan metoda PSP seorang programmer dapat dengan mudah mengurangi cacat dari suatu produk. Karena prinsip yang dimiliki oleh PSP adalah mengatasi cacat sebelum melakukan kompilasi atau tes yang pertama kali. Programer yang memakai PSP dapat menemukan cacat 6,52 cacat per jam dalam saat pengkodean dan 2,96 cacat per jam untuk desain. Dengan memakai metoda PSP, mereka dapat menghemat waktu sekligus meningkatkan kinerja. Misalnya, dari data rata-rata PSP, waktu yng dibutuhkan untuk menghilangkan 100 cacat dalam uji coba dibutuhkan 45 jam, sedangkan saat desain dan pengkodean hanya butuh 15 jam.
4.2 PSP Desain
PSP dapat dipakai untuk berbagai jenis metode desain, tapi sebelumnya desainnya harus lengkap terlebih dahulu. PSP dianggap lengkap jika semua dimensi yang ditunjukan pada tabel spesifikasi struktur objek sudah terpenuhi. Kemudian dapat terlihat koresponden antara template dengan spesifikasi struktur objek.
Tabel 4 : spesifikasi struktur objek
Spesifikasi objek Internal Eksternal
Statik Atribut
Constraint Inheritance
Class structure
Dinamik State machine Services messages
Tabel 5 : struktur template PSP
Spesifikasi objek template Internal Eksternal
Statik Logic Spesification Template Function Spesification Template (Inheritance Class structure)
Dinamik State Spesification Template Function Spesification Template (user iteration) Operational scenario template
• Operational scenario template, menjelaskan interaksi pengguna dengan system.
• Function Spesification Template, berisikan tingkah laku dari objek dan class yang ada dalam inheritance class structure.
• State Spesification Template, menjelaskan tentang tingkah laku dari state machine
• Logic Spesification Template, berisikan logika internal dari suatu program, biasanya dalam bahasa pseudocode.
Bab V
Kesimpulan
Dengan menggunakan metoda PSP telah dibuktikan dapat meningkatkan performansi dan mengurangi cacat, namun tidak secara langsung mempengaruhi produktifnya. Berikut adalah hasil penelitian yang dilakukan oleh SEI.
gb. 9 : Effort estimation accuracy
gb.10 : Defect level improvement
gb. 11 : Productivity result
Di masa datang, PSP dan TSP akan lebih banyak dipergunakan untuk meningktkan performansi dari suatu perangkat lunak. Selain itu PSP dan TSP melatih programmer untuk lebih disiplin lagi dalam membangun suatu perangkat lunak secara professional. Dan sekarang ini telah banyak industri perangkat lunak yang menggunakan metoda ini.
DAFTAR PUSTAKA
[Humphrey 00] Humprey, Watts. The Personal Software Process (PSP) (CMU/SEI-2000-TR-022 ), Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2000 .
[McAndrews 00] Donald R., McAndrews. The Team Software ProcessSM (TSPSM):An Overview and Preliminary Results of Using Disciplined Practices (CMU/SEI-2000-TR-015), 2000 .
[SEI 03] Davis, Noopur & Mullaney, Julia. The Team Software ProcessSM (TSPSM)in Practice: A Summary of Recent Results (CMU/SEI-2003-TR-014), 2003 .
Biografi
Nama : Manjih Maulana
NPM : 43A87006110117
TTL : Bekasi, 08 April 1992
Alamat : Jl. Raya Muara Bakti Kp. Babakan Rt 005 / 002
Kelurahan Muara Bakti Kec. Babelan Bekasi, 17610
Saya perkenalkan nama saya MANJIH MAULANA, saya berumur 20th, saya lahir pada 08 April 1992 dan saya dilahikan di daerah BEKASI, saya anak ketiga dari 4 bersaudara, satu anak perempuan dan ketiganya laki-laki, kaka saya yang pertama dan kedua saat ini sudah berkeluarga dan adik saya saat ini sedang melanjutkan kuliahnya yang ada di daerah bekasi.
Dan saya sendiri memulai... pendidikan saya dari mulai SD,SMP,SMK dan hingga sekarang saya bangga karna bisa meneruskan pendidikan saya ke jenjang yang lebih tinngi, saya sekarang sedang mengejar program pendidikan S1 jurusan teknik informatika di STMIK BANI SALEH BEKASI dan saya sangat bersyukur disetiap saya mencari ilmu saya pasti mendapatkan banyak teman yang asik dan biasa ngertiin saya, oh ya… Alhamdulillah saya masih mempunyai seorang ayah dan seorang ibu, ayah saya berprofesi sebagai seorang pedagang, dan ibu saya adalah seorang IRT ( Ibu Rumah Tangga ) dan taklupa saya sangat mencintai mereka. Saya bersama keluarga tinggal di daerah babelan.
Mungkin cukup sekian saya memperkenalkan diri saya dan kehidupan saya sehari – hari dan Terima kasih.
Salam hangat untuk Mahasiswa/i STMIK BANI SALEH
Jika ingin download File nya silahkan copy paste link ini
https://docs.google.com/file/d/0BwC0FBPog6BXNDloSFg3UDRJNjg/edit?usp=sharing
Terimakasih telah berkunjung
Tugas Bhs. Pemrograman 4
Posted by
Unknown
0
comments
Tugas Android
jika ingin melihat atau mengcopy file nya copy paste link address bar
link https://docs.google.com/file/d/0BwC0FBPog6BXSzdqRjNYZ2FHUjQ/edit?usp=sharing
Subscribe to:
Posts (Atom)