Laboratoriya №4 Mobil ilova ishlash uchun talablarni o'rganish va texnik topshiriqni shakllantirish, platformani tanlash. Ishning maqsadi: Texnik vazifani shakllantirishni o‘rganish. Laboratoriyaning nazariy qismi. Ilova yaratishda aynan nima bor? Mijozlarimiz tomonidan eng ko‘p beriladigan savol. Ular ulardan qancha pul va vaqt talab qilinishini, ish qanday qurilganligini, qaerdan boshlashni va natijada qanday qilib pul ishlashni bilishni istaydi, uni yo‘qotmaydi. Qisqacha javob berib bo‘lmaydigan bu muhim savol bizni ushbu turkum maqolalarni chop etishga undadi. Ularda "qanday qilib ariza berish kerak: uchta oson qadam" turkumidagi noaniq maslahatlar bo‘lmaydi. Ammo mobil qurilmalarni ishlab chiqish bozorida besh yildan ortiq vaqt davomida to‘plagan tajribamiz, amaliyotdan misollar va harakatlar bo‘yicha qo‘llanma bo‘ladi. 1-bosqich. Analitika Har bir dastur g‘oya bilan boshlanadi. Siz bizga kelajakdagi xizmat qanday vazifalarni hal qilishi kerakligini aytasiz va biz tahlillarni yig‘ishni boshlaymiz. Bozorning chuqur bo‘lagi, mavjud yechimlar tahlili, raqobatchilar va mijozlarning xatti-harakatlari modellarini o‘rganish... Tahlilning har bir bosqichida biz oxirgi foydalanuvchini yodda tutamiz va mijozning hayot aylanishini o‘ylab ko‘ramiz. Bu odamlar yangi ilovadan qanday foydalanishini birgalikda tushunishga yordam beradi va uni iloji boricha qulay, tushunarli va foydali qiladi. Ushbu xizmat sizning biznesingizga ham foyda keltiradi. 2-bosqich. Texnik topshiriq Biz kelajakdagi dasturning funksionalligi va dizaynining batafsil tavsifini tuzmoqdamiz. Biz foydalanuvchi belgilarini aniqlaymiz, foydalanuvchi hikoyalarini tavsiflaymiz (User Story), foydalanuvchi sayohat xaritasini tuzamiz (Customer Journey Map) va xizmatga texnik talablarni shakllantiramiz. Ya'ni, biz ilova qanday bo‘lishi kerakligini, nima qila olishini va qanday ishlashini tuzatamiz. Bunday texnik topshiriq (TOR) tufayli bizning dizaynerlar va ishlab chiquvchilar jamoasi mijoz qanday xizmatni olishni istayotganini aniq tushunadi va asta-sekin dastlabki g‘oyani amalga oshiradi. Foydalanuvchi hikoyalari (User Story) foydalanuvchining dasturda o‘zini qanday tutishi bosqichma-bosqich tavsiflanadi: avtorizatsiyadan o‘tadi, katalogni ko‘rib chiqadi, buyurtma beradi, xarid qiladi. Bunday hikoya foydalanuvchining vazifasini tasvirlaydi, u ham dastur yordamida hal qiladi, ham uning yakuniy foydasi. Natijada, biz kelajakdagi dasturning funksionalligini aniqlash va uni iloji boricha foydalanuvchilarga qulay qilish imkonini beruvchi talablar ro‘yxatini olamiz. Tekshirish ro‘yxati: TKda nima bo‘lishi kerak Har bir rivojlanish studiyasi ushbu hujjatni tuzishda o‘ziga xos yondashuvga ega. Loyihani muvaffaqiyatli amalga oshirish uchun u quyidagilarni aks ettirishi kerak, deb hisoblaymiz. 1. Umumiy ma'lumot: xizmat maqsadi; platforma muvofiqligi: bu iOS, Android yoki boshqa platformalar uchun dastur bo‘ladi; miqyoslilik: dastur keskin o‘zgarishlarga va eng yuqori yuklanishlarga tezda moslasha oladimi, masalan, foydalanuvchilar sonining ko‘payishi yoki ma'lumotlarni uzatish hajmi; nosozlikka chidamlilik: agar uning bir yoki bir nechta komponentlari ishlamay qolsa, dastur o‘z ishini davom ettirishi kerakmi. 2. Ilovaga qo‘yiladigan funktsional talablar: foydalanuvchi rollari: turli foydalanuvchilar kirishning qanday darajalariga ega bo‘lishi kerak, masalan, mehmon va vakolatli foydalanuvchi; ma'lumotlar formatlari: ilovada ma'lumotlar almashinuvi qanday amalga oshiriladi; integratsiya: ilova boshqa xizmatlar, masalan, to‘lov tizimlari va pochta serverlari bilan birgalikda ishlashi kerak; kirish interfeyslari: ilova tashqi xizmatlar bilan qanday ma'lumotlarni almashadi; qo‘shimcha funktsiyalar: ilova boshqa biror narsa qila oladimi, masalan, fayllar yoki shifrlash kutubxonalari bilan ishlash; konfiguratsiya va boshqaruv: administrator ilovani boshqarish uchun qanday elementlardan foydalanadi; tizim tarkibi: mobil ilova nimadan iborat, ya'ni ekranlar, pushbildirishnomalar, autentifikatsiya tizimi va boshqalar. 3. Ilova uchun funktsional bo‘lmagan talablar: xavfsizlik: dastur xavfsizligi talablari; ro‘yxatga olish: tizim dasturning ishlashi paytida yuzaga kelgan xato hisobotlarini yaratishi va saqlashi kerakmi va buni qanday hodisalar uchun qilish kerak; ishlash: dasturning ishlashiga qo‘yiladigan talablar, masalan, ma'lumotlar bazasi tezligi; server uskunasiga qo‘yiladigan talablar: texnik xususiyatlar ro‘yxati. 4. Ilova funksionalligini amalga oshirish: yuklash ekrani; ro‘yxatga olish va ruxsat berish; asosiy ekran; menyu; Qidirmoq; … bildirishnomalar. Laboratoriyaning amaliy qismi. Massivni ishga tushirish Har doim standart qiymatlarga ega bo‘lish shart emas. massivni e'lon qilinganda o‘zingizning qiymatlaringiz bilan ishga tushirishingiz va elementlar sonini aniqlashingiz mumkin. Massiv o‘zgaruvchilari deklaratsiyasidan so‘ng, teng belgisini qo‘shing va undan keyin jingalak qavslar ichiga olingan elementlar qiymatlari ro‘yxatini qo‘shing. Bunday holda, yangi kalit so‘z ishlatilmaydi: int[] mushuklar = {2, 5, 7, 8, 3, 0}; // 6 ta elementdan iborat massiv Siz ikkita usulni aralashtirishingiz mumkin. Misol uchun, agar siz faqat massivning ba'zi elementlari uchun qiymatlarni aniq belgilashni istasangiz, qolganlari esa standart qiymatlarga ega bo‘lishi kerak. int[] mushuklar = new int[6]; // har bir element uchun boshlang‘ich qiymati 0 bo‘lgan oltita elementdan iborat massiv mushuklar[3] = 5; // to‘rtinchi element 5 ga o‘rnatiladi mushuklar[5] = 7; // oltinchi element 7 ga o‘rnatiladi Massivlar ko‘pincha tsikllarda ishlatiladi. Aytaylik, 5 ta mushuk sizga tutilgan sichqonlar soni haqida xabar berdi. O‘rtacha arifmetikni qanday topish mumkin: int[] sichqonlar = {4, 8, 10, 12, 16}; int natijasi = 0; for(int i = 0; i < 5; i++){ natija = natija + sichqonlar[i]; } natija = natija / 5; mInfoTextView.append("O‘rtacha arifmetik: " + natija); Massivda o‘qilishi mumkin bo‘lgan (lekin o‘zgartirilmagan) maxsus uzunlik maydoni mavjud. Bu massivdagi elementlar sonini olish imkonini beradi. Bu xususiyat qulay, chunki siz massivning o‘lchamida xato qila olmaysiz. Massivning oxirgi elementi har doim sichqonlardir[mice.length - 1]. Oldingi misolni quyidagicha qayta yozish mumkin: int[] sichqonlar = { 4, 8, 10, 12, 16 }; int natijasi = 0; uchun (int i = 0; i < mice.length; i++) { natija = natija + sichqonlar[i]; } natija = natija/mice.length; // jami natija massivdagi elementlar soniga bo‘linadi mInfoTextView.append("O‘rtacha arifmetik: " + natija); Endi massiv uzunligi avtomatik ravishda hisoblab chiqiladi va agar siz oltita mushukdan iborat yangi massiv yaratsangiz, tsikldagi biror narsani o‘zgartirishingiz shart emas. Agar siz uzunlikni o‘zgartirishingiz kerak bo‘lsa, u holda massiv o‘rniga ArrayList ro‘yxatidan foydalanish kerak. Massivlarning o‘zi o‘zgarmasdir. Massivlarni nusxalashda ehtiyot bo‘ling. Massiv bu raqam emas, balki xotirada maxsus tarzda saqlanadigan maxsus ob'ektdir. Sizni aqlli so‘zlar bilan chalkashtirib yubormaslik uchun sizga misol bilan ko‘rsatganim ma'qul. Aytaylik, bizda bitta o‘zgaruvchi bor, keyin ikkinchi o‘zgaruvchini yaratamiz va unga birinchi o‘zgaruvchining qiymatini beramiz. Va keyin biz ularni tekshiramiz. Laboratoriya ishlarini bajarish uchun topshiriqlar 1. Mobil qurilmada y=ln(x) funksiyani hisoblash jarayonini tuzing 1. Maktab o‘quvchilari uchun nazorat dasturini tuzing 2. Sinf ierarxiyasiga ixtiyoriy funksiya uchun aylanish shaklini qo‘shing. Hajmni aniq integral yordamida taxminan hisoblash mumkin. 3. Rus (yoki ingliz) alifbosi harflarining chastotali lug‘atini tuzing. Til korpusini tanlash va tahlil qilish muammosini chetlab o‘tamiz, buning uchun qisqa matnni olish kifoya qiladi). Raximov Shaxzodbek 714 20