Professional Documents
Culture Documents
Mentori:
Studenti:
Ilaz KOZHANI
Abstrakt
N dekadn e fundit popllariteti n rritje i World Wide Web ka uar n nj rritje eksponenciale t numrit t faqeve q jan n dispozicion n Web.Ky numr kaq i madh i Web faqeve e bn m se t vshtir pr shfrytzuesit e Internetit gjetjen e informacionit t nevojshm.E tra kjo sht si pasoj e mosaplikimit t disa fazave t caktuara n zhvillimin e Web aplikacioneve, por edhe t aplikacioneve n prgjithsi. Inxhinieria softuerike sht aplikimi i hapave sistematik, disiplinar, dhe kuantifikues n zhvillimin , operimin dhe mirmbajtjen e aplikacioneve.E tra kjo sht si prgjigje, ndaj zhvillimit t hershm kaotik t Web sajteve dhe t aplikacioneve n prgjithsi, si dhe kategorizimin e web zhvilluesve dhe zhvilluesve t softuerit konvencional. Nevoja pr inxhinierin softuerike sht ndier nga zhvilluesit dhe menagjert, eksperiencat e tyre n zhvillimin e aplikcaioneve, dhe nga kompleksiteti i Web aplikacioneve. N fazat e hershme t Web zhvillimit, Whuite dhe Powell, identifikuan dhe vn n pah nevojn pr inxhinierim t aplikacioneve. Kur nj softuer kompjuterik prparonkur ai prmbush nevojat e njerzve q e prdorin at, kur ai punon bukur pr nj koh t gjat, dhe kur ai sht i leht pr tu modifikuar dhe edhe m i leht pr tu prdorurai mund ti ndryshoj gjrat pr t mir.Por, kur softueri dshtonkur shfrytzuesit jan t paknaqur, kur posedon shum gabime, dhe kur sht i vshtir pr tu modifikuar dhe prdorurndodhin gjra t padshiruara.Ne t gjith dshirojm t ndrtojm nj softuer q i bn gjrat m t mira, dhe q shmang gjrat e kqija.Pt t prparuar, neve na nevojitet nj displin kur softueri t dizajnohet dhe t ndrtohet.Ne na nevojitet nj hap inxhinierik.Gjat viteve t kaluara Inxhinieria Softuerike ka evoluar nga nj ide e praktikikuar nga nj numr i vogl programersh n nj disiplin inxhinierike t legjitimuar.Tani, kjo disiplin njihet si nj subjekt i hulumtimeve serioze, studimeve t ndrgjegjshme, dhe debateve t trazuara(t zhurmshme).Metodat pr procesim t softuerit, metodat e Inxhinieris Softuerike, dhe veglat softuerike, jan adpatuar me sukses nga nj spektr i gjer i aplikacioneve t industris.Edhe pse menagjert dhe praktikantt e njohin e nevojn pr nj hap m t disiplinuar n zhvillim t softuerit, ata vazhdojn t debatojn pr mnyrn se cila disiplin t aplikohet.Shum individ dhe kompani ende zhvillojn softuer n mnyr t orientuar, edhe pse ata ndrtojn sisteme q t iu shrbejn teknologjive m t prparuara t kohs.Dhe si rezultat i ksaj, kualiteti i softuerit q prodhohet vuan dhe gjrat e kqija ndodhin. Finalisht, websajti yn pr shitblerje produktesh ilustron aplikimin e hapave t disiplins s Inxhinieris Softurike n zhvillimin e Web-based aplikacioneve.Ne do t diskutojm msimet e msuara nga Inxhinieria Softuerike n kt shembull dhe do t mundohemi sadopak t japim nj pasqyr se si bhet implementimi i Inxhinieris Softuerike n zhvillimin e Web-based aplikacioneve.
Faqja 2
Abstract
In the last decade the increasing popularity of the World Wide Web has lead to an exponential growth in the number of pages available on the Web. This huge number of Web pages makes it increasingly difficult for users to find required information. Software Engineering is the application of systematic, disciplined and quantifiable approaches to development, operation, and maintenance of applications. It is a response to the early, chaotic development of Web sites and applications as well as recognition of a divide between Web developers and conventional software developers. The need for Software Engineering is felt (or dismissed) according to perceptions of the developers and managers, their experiences in creating applications made feasible by the new technologies, and the complexity of Web applications. In the early stages of Web development, White and Powell, identified and emphasized the need for engineering of applications. When a computer software succeedswhen it meets the needs of the people who use it, when it performs flawlessly over a long period of time, when it is easy to modify and even easier to useit can and does change things for the better.But when software failswhen its users are dissatisfied, when it is error prone, when it is difficult to change and even harder to usebad things can and do happen. We all want to build software that makes things better, avoiding the bad things that lurk in the shadow of failed efforts. To succeed, we need discipline when software is designed and built. We need an engineering approach.During the last years, software engineering has evolved from an obscure idea practiced by a relatively small number of programmers to a legitimate engineering discipline. Today, it is recognized as a subject worthy of serious research, conscientious study, and tumultuous debate. Software process models, software engineering methods, and software tools have been adopted successfully across a broad spectrum of industry applications.Although managers and practitioners alike recognize the need for a more disciplined approach to software, they continue to debate the manner in which discipline is to be applied. Many individuals and companies still develop software haphazardly, even as they build systems to service the most advanced technologies of the day. And as a result,the quality of the software that we produce suffers and bad things happen. Finally, our website for online shopping attempts to illustrate the application of Software Engineering discipline approaches to the Web-based application development.In this Case Study, were going to discuss lessons learned from Software Engineering, and well try to give an overview on how to deploy Software Engineering approaches in Web-based application development.
Faqja 3
PRMBAJTJA
1 Hyrje 1.1 1.2 1.3 1.4 Motivimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Domeni i problemit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kontributi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Struktura e punimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 7 8
2 Fundamentale 2.1 Inxhinieria softuerike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.1 Definicioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.2 Modelet e inxhinieris softuerike . . . . . . . . . . . . . . . . . . . . . . 10 2.1.3 Fazat e inxhinieris softuerike . . . . . . . . . . . . . . . . . . . . . . . . .12 2.2 UML(Unified Modeling Language) . . . . . . . . . . . . . . . . . . . . . . . . . .14 2.2.1 Komponentet e UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 2.3 .NET Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 2.3.1 Elementet e .NET Framework . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3.2 ASP .NET2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19 3 Specifikacioni 3.1 Hyrje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 3.1.1 Qllimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 3.1.2 Domeni i aplikacionit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.1.3 Definicionet, akronimet, shkurtesat . . . . . . . . . . . . . . . . . . . . .24 3.2 Prshkrimi i sistemit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 3.2.1 Perspektiva e produktit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2.2 Funksionet e produktit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 3.2.3 Karakteristikat e shfrytzuesve . . . . . . . . . . . . . . . . . . . . . . . . 25 3.2.4 Restriksionet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.3 Specifikimi i krkesave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4 Zhvillimi i aplikacionit 4.1 Analiza e krkesave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27 4.1.1 Modelimi i krkesave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27 4.1.2 Prototipi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.2 Planifikimi (Dizajnimi) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38 4.2.1 Dizajnimi i arkitekturs s aplikacionit . . . . . . . . . . . . . . . . . .38 4.2.2 Dizajnimi i UI(Presentation tier) . . . . . . . . . . . . . . . . . . . . . . .40 4.2.3 Dizajnimi i bazs s shnimeve . . . . . . . . . . . . . . . . . . . . . . . .42
Faqja 4
4.3
4.4 4.5
Implementimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 4.3.1 Implementimi i katalogut t produkteve . . . . . . . . . . . . . . . . . .44 4.3.2 Administrimi i katalogut t produkteve . . . . . . . . . . . . . . . . . .50 4.3.3 Implementimi i shports s blerjes . . . . . . . . . . . . . . . . . . . . . 55 4.3.4 Implementimi i llogarive t klientve . . . . . . . . . . . . . . . . . . . 56 4.3.5 Implementimi i porosive t klientve . . . . . . . . . . . . . . . . . . . . 57 Testimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60 Menagjimi i projektit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
5 Rezultatet 5.1 Pjesa e klientit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6 Prfundim 6.1 Kontributet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69 6.2 Prvojat e fituara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 6.3 Detyrat e ardhshme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 Literatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Faqja 5
KAPITULLI 1
HYRJE
1.1
MOTIVIMI
Gjat dekads s fundit World Wide Web (WWW) sht br nj pjes mjaft e rndsishme e jets ton t prditshme.Ne porosisim gjra t ndryshme n Internet, shikojm filma, marrim kshilla mjeksore, rezervojm bileta t ndryshme, dhe shum gjra t tjera n internet.Kompanit, organizatat dhe njerzit e prdorin WWW si nj vegl mjaft t fuqishme pr kmbimin e informatave:Kompanit ofrojn Web faqe q ti reklamojn dhe shesin produktet e tyre.Institucionet edukuese paraqesin material arsimor dhe ofrojn shrbime trajnimi online n Web.Autoritetet publike ofrojn shrbime qeveritare pr t kryer detyra administrative n mnyr m efikase.Pra, me nj fjal interneti sht br pjes integrale e jets son. Popullariteti i WWW ka uar n nj rritje eksponenciale t numrit t Websajteve q jan n dispozicion n hapsirn globale informative.Sidoqoft, ky sukses ka uar poashtu n disa probleme:Numri kaq i madh i Web faqeve e bn shum t vshhtir pr shfrytzuesit q t gjejn dhe tu qasen informatave t krkuara.Padyshim se kjo rritje kaq e shpejt e Web sajteve dhe ky zhvillim i internetit nuk ka shptuar pa lshime dhe rregullime t ndryshme., sepse nuk ka pasur ndonj kriter t mirfillt pr tiu prmbajtur. E tra kjo sht si pasoj e mosaplikimit t disa fazave t caktuara n zhvillimin e Web aplikacioneve, por edhe t aplikacioneve n prgjithsi. N prgjiegje t ksaj, lindi nevoja pr aplikimin e hapave t inxhinieris softuerike n zhvillimn e jo vetm t desktop aplikacioneve tradicionale por edhe t Web-based aplikacioneve. Duke menduar se vendosja e kritereve t inxhinieris softuerike do t ndihmonte sadopak n zbutjen e ktij problemi, m motivoi q t aplikoj ndihmn q inxhinieria softuerike e jep n zhvillimin edhe t Web-based aplikacioneve.Nj gj duhet pasur t qart se ky punim nuk ka pr qllim q t ndrtoj nj enterprise-class Web aplikacion t prkryer, sepse nj gj e till krkon angazhim t nj armat t tr programuesish, web dizajnersh dhe menagjersh.Qllimi kryesor sht q t ofrojm nj pasqyr se si bhet implementimi i hapave t inxhinieris softuerike n ndrtimin e nj Web-based aplikacioni.
1.2
DOMENI I PROBLEMIT
Domeni i problemit gjendet n kuadr t zhvillimit t Web-based aplikacioneve.Suksesi i nj Web aplikacioni varet nga aplikimi i kritereve gjat zhvillimit t nj Web aplikacioni. Inxhinierimi sht analiza, dizajni,konstruktimi, verifikimi, dhe menagjimi i entiteteve teknike (apo sociale).Pa marr parasysh entitetit q do t inxhinierohet, duhet t iu prgjigjemi pyetjeve n vijim: Cili sht problemi q do ta zgjidhim? Cilat karakteristika t entitetit jan prdorur pr t zgjidhur problemin? Si do t realizohet entiteti (dhe zgjidhja)? Si do t prkrahet entiteti n terma t gjat kohor, kur prmirsimet dhe adaptime t ndryshme krkohen nga shfrytzuesi i entitetit?
Faqja 6
N kt punim ne fokusohemni n nj entitet t vetm.Q t inxhinierojm nj softuer n mnyr adekuate, duhet t definohet nj proces i inxhinieris softuerike. Detyrat e asocuara me inxhinierin softuerike mund t kategorizohen n tri faza t prgjithshme, pamarr parasysh domenin e aplikacionit, madhsin e projektit, apo kompleksitetitn.Secila faz i adresohet nj ose m shum pyetjeve t msiprme. Faza e definicionit fokusohet n ka.Gjat ksaj faze inxhinieria softuerike tenton t definoj se cilat informata duhet t procesohen, far funksioni dhe performanse dshirohet, se far veti t sistemit priten, far interfejsash duhet t themelohen, far restriksioni dizajnimi ekzistojn, dhe far kritere validimi krkohen pr t definuar nj sistem t sukseshm.Identifikohen krkesat kyqe t sistemit dhe t softuerit. Faza e zhvillimit fokusohet n si?.Gjat ksaj faze Inxhnieria Softuerike tenton t definoj se si do t strukturohen t dhnat, si do t implemetohet funksioni brenda nj arkitekture softueri, si do t karakterizohen interfejsat, se si do t prkthehet dizajinimi n nj gjuh programuese, se si do t kryhet testimi.Metdoat e aplikuara gjat fazs s zhvillimit ndryshojn, por gjithnj duhet t paraqiten tri detyra teknike q jan specifike pr kt faz:dizajinimi i softuerit, gjenerimi i kodit, dhe testimit i softuerit. Faza e prkrahjes fokusohet n ndryshimet e asocuara me prmirsim gabimesh, adaptimet e krkuara me evoluimin e softuerit, dhe ndryshimet pr shkak t ndryshimit t krkesave t klientit.Faza e prkrahjes riaplikon hapat e fazs s definimit dhe t zhvillimit por kt e bn n kontekst t softuerit ekzistues. Puna q do t bhet n aplikimin e metodologjis s inxhinieris softuerike n zhvillimin e Webbased aplikacioneve, por edhe t projekteve tjera n prgjithsi, ka t bj me: Ciklin jetsor t projektit(Software Life Cycle SLC), sepse do projekt pa marr parasysh madhsin dhe kompleksitetin e tij ka nj cikl jetsor, i cili prbhet prej disa fazave, me fillim nga faza e fizibilitetit, analiza e krkesave, e deri te faza e testimit dhe mirmbajtjes s nj projekti t caktuar. Menagjimin e projektit, apo Projekt Menagjmenti, i cili involvon planifikimin, monitorimin dhe kontrolln e njerzve, procesit dhe ngjarjet q shfaqen me evoluimin e softuerit q nga koncepti preliminar e deri te implementimi operacional. Sigurimine kualitetit t softuerit (Software Quality Assurance).
1.3
KONTRIBUTI
N kt punim ne tentojm ta pasqyrojm aplikimin e hapave t inxhinieris softuerike n ndrtimin e Web-aplikacioneve n platformn ASP.NET.Arsyeja se pse e kemi zgjedhur kt platform sht sepse ASP.NET sht nj teknologji relativisht e re dhe se mendoj se i prgjigjet m s miri nevojave t kohs pr zhvillim t Web-based aplikacioneve.
Faqja 7
1.4
STRUKTURA E PUNIMIT
Pjesa e mbetur e ktij punimi sht e strukturuar si n vijim: Kapitulli 2 sht kapitulli i fundamentaleve.Ky kapitull paraqet nj prmbledhje t inxhinieris softuerike n terma t prgjithshm.Do t mundohemi q sadopak t sqarojm se ka n t vrtet prmban Inxhinieria Softuerike, definicioni i inxhinieris softuerike, fazat dhe modelet e inxhinieris softuerike.Ky kapitull m tutje vazhdon me .NET Framework.Pasi q qllimi i ktij punimi sht aplikimi i inxhinieris softuerike n kt platform, mendoj se e vlen nj paraqitje e prgjithshme se ka sht .NET Framework dhe ka n t vrtet prmban ajo. Kapitulli 3 ka t bj me specifikacionin e aplikacionit q do t zhvillohet.Ktu iu adresohemi krkesave dhe problemi i cili do t zgjidhet. Kapitulli 4 shnon fillimin e implementimit t fazave t inxhinieris softuerike n nj aplikacion.N kt kapitull do t fillojm me fazn e par, at t analizs s krkesave.Do t diskutojm analizn e krkesave t klientit, UML diagramet q aplikohen n kt faz, e kshtu me rradh.Kapitulli vazhdon me fazn e dyt at t planifikimit (dizajnimit) t nj aplikacioni.Ktu nj vmendje i kushtohet arkitekturave q aplikohen gjat fazs s planifikimit. Pastaj vazhdon faza e tret, ajo e implementimit.Kjo sht ajo faza n t ciln fillon realizimi konkret i aplikacionit, pra kodimi i aplikacionit.Pastaj vie faza q ka t bj me testimin e aplikacionit t ndrtuar.Ktu prdoren kritere t ndryshme testimi, pr t testuar gabimet q mund ti kemi lshuar gjat ndrtimit t aplikacionit, dhe nse aplikacioni prmbush krkesat e klientit.Dhe n fund t kapitullit kemi t bjm me menagjimin e projektit n trsi.N kt kapitull do t shohim se si aplikohen standardet mbi menagjimin e projektit, paraqijten e rrjedhs s projekteve me an t diagrameve prkatse si jan WBS(Work Breakdown Structure) diagramet, PERT (Progress Evolution and Review Techniques) diagramet, GANTT diagramet e kshtu me rradh. N kapitullin 5 do t cekim rezultatet e arritura me kt aplikacion dhe funksionalitetin e aplikacionit.Funksionaliteti i aplikacionit sht i ndar n dy module, moduli i klientit dhe i administratorit. Kurse n kapitullin 6 kemi prfundimin e ktij punimi.Ktu ceken kontributet e arritura, prparsit dhe mangsit e aplikacionit.Mpastaj ceken prvojat e fituara dhe sfidat e ardhshme. Dhe n fund fare sht kemi potencuar literaturn e shfrytzuar n realizimin e ktij punimi.
Faqja 8
KAPITULLI 2
FUNDAMENTALE
2.1
INXHINIERIA SOFTUERIKE
2.1.1 DEFINICIONI
Inxhinieria softuerike sht nj disiplin relativisht e re inxhinierike. Kt e vertetojn edhe metodat dhe teknikat t cilat prdoren pr zhvillimin e nj softueri, e t cilat n t shumtn e rasteve jan t pamjaftushme.Shprehja Software Engineering sht prdorur pr her t par n vitin 1967 nga nj grup i hulumtuesve shkencor t NATO-s. Shum autor kan tentuar ti formulojn definicionet e tyre n lidhje me inxhierin softuerike.Si ilustrim do ti prmedin disa prej tyre. Nj definicion i prmendur nga Fritz Bauer (NAU69), ende shrben si baz pr diskutim: Inxhinieria softuerike sht themelimi dhe prdorimi i principeve t forta inxhinierike n mnyr q t fitojm softuer ekonomik dhe t qndrueshm dhe q punon n mnyr efikase n makinat reale. Sido q t jet edhe ky definicion sht paksa i cunguar.Ky thot pak pr aspektet teknike t softuerit; ky nuk i adresohet direkt satisfaksionit t klientit;ai i shmanget rndsis s matjes dhe metrikave;dhe ai nuk paraqet rndsin e nj procesi maturik.Dhe edhe m tutje definicioni i Bauerit shtron kto pyetje:far principe t forta inxhinierike mund t aplikohen n zhvillimin e softuerit kmpjuterik?N far mnyre ekonomike e ndrtojm softuerin q ai t jet i qndrueshm?ka sht e nevojshme q t ndrtojm softuere kompjuterike q punojn n mnyr efikase jo vetm n nj por n m shum makina reale?Kto pra jan disa nga pyetjet q vazhdojn ti sfidojn inxhiniert softuerik. IEEE[IEE93] ka dhn nj definicion m komprehensiv i cili sht i prpiluar ksisoji: Inxhinieria Softuerike:(1)Aplikimi i hapave sistematik, disiplinor, kuantifikues n zhvillim, operim dhe mirmbajtje t softuerit; pra, aplikimi i inxhinierimit n softuer.(2) Studimi i hapave t cekur n (1).
Faqja 9
Nganjher i quajtur classic life cycle ose waterfall model, ky model sht pshkruar s pari nga Royce m 1970.Modeli linear sekuencial sygjeron nj hap sistematik, sekuencial n zhvillim t softuerit i cili fillon nga niveli i sistemit dhe vazhdon m tutje npr analiz, dizajn, kodim, testim dhe prkrahje.Figura n vijim ilustron modelin linear sekuencial pr inxhinierin softuerike.
Modeluar pas nj nj cikli konvencional inxhinierues, waterfall modeli prqafon aktivitetet vijuese: Analiza e krkesave.Procesi i grumbullimit t krkesave intensifikohet dhe fokusohet specifikisht n softuer.Q ta kuptojm natyrn e programit q do t ndrtohet, softuer inxhinieri (analisti) duhet ta kuptoj domenin e informatave pr softuer, si dhe funksioni i krkuar, performansa dhe interfejsi.Krkesat pr sistemin dhe softuerin dokumentohen dhe rishikohen s bashku me klientin. Dizajni(Planifikimi).Dizajnimi i softuerit sht nj proces shumhapsh q fokusohet n katr atribute t ndryshme t nj programi:struktura e t dhnave, arkitektura e softuerit, paraqitjet e interfejsit, dhe detajet procedurale(algoritmike).Procesi i dizajnit prkthen krkesat n nj paraqitje t softuerit q mund t shfaqen pr kualitet para se t filloj kodimi.Si krkesat ashtu edhe dizajni dokumentohet dhe bhet pjes e konfigurimit t softuerit. Implementimi(Gjenerimi i kodit).Dizajni duhet t prkthehet n nj form t lexueshme pr makinn.Hapi i gjenerimit t kodit e kryen kt detyr.Nse dizajni sht performuar n mnyr t detajuar,gjenerimi i kodit mund t kryhet n mnyr mekanike. Testimi.Pas gjenerimit t kodit, fillon testimi i programit.Procesi i testimit fokusohet n hyrje logjike t softuerit, duke siguruar q t gjitha kodet jan testuar, dhe n funksione eksternale;pra testimi pr t zbuluar gabimet q hyrje(inpute) t definuara do t shkaktonin ato gabime. Prkrahja.Padyshim softueri do t kaloj npr ndryshime pasi q i prcilliet klientit.Ndryshimet do t shfaqen sepse zbulohen gabime t ndryshme, sepse softueri do t adaptohet pr t akomoduar ndryshimet n rrethinn e jashtme(p.sh., krkohet nj ndryshim pr shkak t nj sistemi t ri operativ apo t ndonj pajisje periferike), ose sepse klienti krkon rritje t funksionalitetit apo t performancs. Modeli linear sekuencial sht m i vjetri dhe m i prdoruri inxhinierin softuerike.Edhe pse ky model konsiderohet si i dal mode ai prap se prap mbetet nj hap i arsyeshm kur krkesat kuptohen mir.
Faqja 10
MODELI SPIRAL
Modeli spiral i propozuar nga Boehm[BOE88], sht nj model evolucionar i cili prmbledh natyrn iterative t prototajpingut me aspekte sistematike dhe t kontrolluara t modelit linear sekuencial.Ky ofron nj potencial pr zhvillim t shpejt t verzioneve inkrementale t softuerit.Duke prdorur modelin spiral, softueri zhvillohet n nj seri inkrementuese. Imazhi i modelit sht nj spirale e cila fillon n mes dhe n mnyr t vazhdueshme riviziton detyrat themelore si jan:komunikim me klientin, planifikimi, analiza e rreziqeve, inxhinierimi, konstruktimi dhe lansimi, dhe evaluimi i klientit.
Nj model spiral ndahet n nj numr aktivitetesh, t ashtuquajtura task regions.Figura2.3 paraqet nj model spiral i cili prmban gjasht task regjione: Komunikimi me klientinaktivitetet e nevojshme pr t themeluar komunikim efektiv ndrmjet zhvilluesit dhe klientit. Planifikimiaktivitetet e nevojshme pr definimin e resurseve, afateve kohore, dhe informatave tjera n lidhje me projektin. Analiza e rreziqeveaktivitetet e nevojshme pr definimin e rreziqeve teknike dhe menagjeriale. Inxhinierimiaktivitetet e nevojshme pr ndrtimin e nj ose m shum paraqitjeve t aplikacionit.
Faqja 11
Konstruktimi dhe lansimidetyrat e nevojshme pr t konstruktuar, testuar, instaluar dhe prkrahje t klientit(p.sh.,dokumentim dhe prkrahje). Evaluimi i klientitdetyrat e nevojshme pr t fituar customer feedback bazuar n evaluimin e paraqitjeve t softuerit t prpiluara gjat fazs s inxhinierimit dhe implementuar gjat fazs s instalimit.
donjra prej ktyre regjioneve sht e populluar nga nj bashksi prej detyrave t puns, t quajtura task set , q do ti adaptohen karakteristikave t projektit q do t prdoret.Pr projekte t vogla, numri i ktyre detyrave t puns dhe formaliteti i tyre sht i ult.Kurse pr projekte m t mdha dhe m kritike, do task regjion prmban shum detyra punsh t cilat jan t definura pr t arritur nj nivel t lart formaliteti. Modeli spiral paraqet nj hap real n zhvillimin e sistemeve dhe softuereve me shkall t lart.Pasiq softueri evoluon me progresin e procesit, zhvilluesi dhe klienti e kuptojn m mir dhe reagojn n rreziqe n do nivel evolucionar.Modeli spiral prdor prototipin si mekanizm pr reduktim t rreziqeve, por ka sht m me rndsi, i mundson zhvilluesit , me apliku hapa prototipi, n ndonj staz t evoluimit t produktit. Por, sikur paradigmat e tjera edhe modeli spiral nuk sht i prkryer.Ky mund t jet i vshtir pr ta bindur klientin q hapi evolucioanr sht i kontrollueshm.Nse ndonj rrezik madhor nuk sht zbuluar dhe menagjuar me koh, padyshim se do t paraqiten probleme.N fund, ky model nuk sht aq i prdorur sikur modeli linear sekuencial ose prototajping paradigmat.
Faqja 12
Procesi i dizajnit konverton terminologjin nga problemi i hapsirs s krkesave n hapsirn e zgjidhjes n implementim.Rezultati i fazs s dizajnit duhet t jet nj dokument q ka detaje t mjaftueshme pr t lejuar implementimin e sistemit pa interaksion t mtutjeshm t specifikuesit apo userit. N vijm po cekim fazat npr t cilat kalon procesi i dizajnit: Data designKjo faz prodhon strukturat e t dhnave. Architectural designKjo faz prodhon njsit strukturale(klast). Interface designKjo faz specifikon interfejsat ndrmjet njsive. Procedural designKjo faz specifikon algoritmet pr do metod.
Faza e implementimit.Kjo sht faza n t ciln fillon realizimi konkret i projektit.Pas nj angazhimi t gjat e t mundimshm fillon realizimi praktitk i tr asaj q sht br n fazat e mhershme.Duhet cekur se nse fazat paraprake jan kryer me sukkses dhe n detaje ather puna n kt faz mund t themi se sht pothuajse mekanike. Faza e testimit.sht faza e fundit q aplikohet para se t lansohet softueri.Testimi i softuerit sht ekzekutimi i softuerit me t dhna testuese aktuale.Nganjher kjo quhet dynamic software testing pr ta dalluar at nga analiza statike, e cila nganjher quhet testim statik.Analiza statike involvon analizimin e source kodit q t identifikohen probleme t ndryshme.Edhe pse teknika tjera jan shum t prdorshme n validimin e softuerit, ekzekutimi aktual i softuerit me t dhna reale testuese sht esencial.
Faqja 13
2.2
UML
UML(Unified Modeling Language) sht nj nga veglat m t prdorshme n botn e zhvillimit t sistemeve.UML sht nj gjuh modeluese vizuale q iu mundson ndrtuesve t sistemeve q t prpilojn skica t cilat prmbajn vizionet e tyre n nj mnyr standarte dhe leht t kuptueshme, dhe ofron nj mekanizm q n mnyr efikase ti kmbejn dhe ti komunikojn kto vizione me t tjert.UML si e shpreh edhe vet akronimi sht gjuh e unifikuar pr t gjith programert pamarrparasysh se n ciln gjuh programuese kodojn. Sa i prket zanafills s UML, mund t themi se UML sht nj produkt i Grady Booch, James Rumbaugh, dhe Ivar Jacobson.T njohur si Tre Amigos, kta gjentlmen punuan n organizata t ndryshme n vitet e tetdhjeta dhe n fillim t viteve t nntdhjeta, duke zhvilluar secili n mnyr t pavarur metodologjin e vet n OO analiz dhe dizajn.N mes t viteve t 90ta, ata filluan ti kmbejn idet dhe prvojat me njri tjetrin, kshtu q n fund vendosn t evoluojn punn e tyre sbashku.M 1994 Rumbaugh iu bashkua Rational Software Corporation, n t ciln ishte duke Booch, dhe nj vit m von atyre iu bashkua edhe Jacobson. . . . Dhe pjesa tjetr tanim i takon historis.Verzione t ndryshme t UML-it filluan t qarkullojn npr industrin e softuerit, duke rezultuar n ndryshime substanciale.
Diagramet e klasave Diagramet e klasave jan nj lloj tjetr diagramesh n kuadr t UML.Diagramet e klasave prdoren pr paraqitje grafike t modelit konceptual si nj pamje statike q tregon nj koleksion elementesh statike t domenit.
Faqja 14
Elementet kryesore modeluese q prdoren n modelin konceptual jan: klasa dhe relacionet ndrmjet klasave.Ekzistojn kto tipe relacionesh ndrmjet klasave:asociacioni, gjeneralizimi apo inheritance (trashgimia),agregacioni dhe kompozicioni. Asociacioni: Paraqet varsin ndrmjet klasave, ku kemmi dy lloje varsish:varsi e t dhnave dhe varsi funksionale.N varsin e t dhnave nj objekt paraqet informacion pr objektin tjetr, ose mund t jet pjes e atributeve t nj objekti.Me varsin funksionale kemi t bjm kur nj objekti i nevojiten funksione t caktuara nga nj klas tjetr pr t garantuar funksionalitetin e vet. Gjeneralizimi:Nj objekt parqitet si rast special i nj objekti tjetr.D.mth. objekti prve q posedon t gjitha veorit e ktij t fundit ai ka edhe veti tjera shtes. Agregacioni:Paraqet rast special t asociacionit kur nj objekt sht pjes e nj objekti tjetr. Kompozicioni:Paraqitet n rastet kur me zhdukjen e nj objekti apo trsie zhduken edhe pjest tjera prbrse. Diagramet e gjendjes Diagrami i gjendjes tregon vargun e gjendjeve npr t cilat kalon nj objekt gjat cikllit t tij jetsor, s bashku me aksionett prkatse, trigerimin e eventave, dhe kushtet e ruajtejes(guard conditions) t shoqruara me transformimet e gjendjes(state transitions).Diagramet gjendjes ne i prdorim pr vizualizimin e skenareve t navigimit.
Faqja 15
Diagramet e sekuencave Diagramet e klasave dhe objekt diagramet paraqesin informat statike.N nj sistem funskionues, si do q t jet, objektet bashkveprojn me njra tjetrn, dhe kto bashkveprime shfaqen prgjat boshtit kohor.Diagramet e sekuencave paraqesin dinamikat e bashkveprimit t bazuara n koh.
2.3
.NET FRAMEWORK
Q nga viti 1995, Microsoft n mnyr konstante ka br oferta pr ta lvizur fokusin nga Windows-based platformat n Internet.Microsoft paraqiti Active Server Pages(ASP) si nj zgjidhje n Iternet programim.Sidoqoft, shkruarja e ASP skriptave interpretuese, ishte nj mnyr tradicionale e programimit krahasuar me programimin e strukturuar objest-oriented q prdoret tani.Pr m tepr, ishte shum e vshtir debugimi dhe mirmbajtja e Asp kodit jo t strukturar. S fundi, Microsoft paraqiti .NET framework me nj vizion pr zhvilluesit q t krijojn softuer globalisht t distribuar me Internet, funksionalitet dhe interoperabilietet. Microsoft .NET Framework paraqet nj platform t fuqishme pr zhvillimin e aplikacioneve n desktop dhe n Internet..NET Framework na mundson zhvilimin e Internet aplikacioeneve me nj lehtsi t papar m par.Pr t zhvilluar Internet aplikacione, .NET Framework, sht e pajisur me ASP.NET.ASP.NET sht nj korniz programuese mjaft e fuqishme pr zhvillimin e enterpriseclass Web aplikacioneve. .NET Framework prfshin gjuh dhe kas librari t shumta dhe nj platform t prbashkt ekzekutimi.N pajtim me kt, .NET Framework prfshin protokole q lejojn zhvilluesit integrimin e softuerit npr Internet dhe .NET Enterprise Servert, si jan SQL Server 2005, Commerce Server, dhe BizTalk Server.Kshru pra, .NET Framework ofron bulit-in funksionalitetin m t pasur pr integrim softueri.Gjithashtu me .NET Framework zhvillimi i Internet aplikacioneve sht i leht sikurse zhvillimi i desktop aplikacioneve. .NET Framework e liron zhvilluiesin e softuerit nga shum specifika t sistemit operativ, si sht p.sh. menagjimi i memories, sepse .NET Framework mbulon t gjitha shtresat e softuerit nn sistemin operativ.
Faqja 16
.NET Framework ofron nj numr beneficionesh zhvilluesve: Nj model programimi konsistent Prkrahje direkte pr siguri Oferta t thjeshtzuara zhvillimi Mirmbajtje dhe implementim t leht t aplikacioneve
Common Language Runtime (CLR) sht nj shtres ndrmjet nj aplikacioni dhe sistemit operativ n t cilin ekzekutohet.CLR thjeshtson dizajnin e aplikacionit dhe sasin e kodit q programeri duhet ta shkruaj sepse ofron nj varietet t shrbimeve ekzekutuese t cilat prfshijn menagjim t memories, thredave, component lifetime menagjim dhe default error handling.Benefiti kyq i CLR sht se ai kto shrbime ekzekutuese i ofron n mnyr transparente t gjitha aplikacioneve, pa marr parasysh se n far gjuhe programuese jan shkruajtur. CLR sht gjithashtu prgjegjse pr kompajlimin e kodit para se t ekzekutohet.N vend t paraqitjes binare t kodit t shkruar si bjn kompajlert tradicional, .NET kompajlert e prkthejn kodin n nj gjuh t prbashkt pr .NET Framework:Microsoft Intermediate Language (MSIL), ose m shkurt IL.Kur kodi t ekzekutohet pr her t par, CLR invokon nj kompajler special t quajtur Just In Time (JIT) kompajler, i cili transformon IL n instruksione t ekzekutueshme q jan specifike pr tipin dhe modelin e procesorit t sistemit.
Faqja 17
.NET Class Library sht nj kontejner prej qindra klassh t cilat modelojn sistemin dhe shrbimet q ato i ofrojn.Pr ta pasur m t leht pr t punuar dhe pr ta kuptuar, .NET Class Library sht e ndar n namespace-a.Namespace-i rrnj i .NET Class library quhet System, dhe ai prmban klast dhe datatipet brtham, si jan Int32, Object, Array, dhe Console.Namespace-at sekondar gjenden n System namespace-in. Benefitet e prdorimit t .NET ClassLibraris prfshijn nj bashksi konsistente shrbimesh q sht e disponueshem pr gjitha .NET gjuht dhe implementim t thjesht, sepse .NET class libraria sht n disponim t t gjitha implemetimeve t .NET Framework. 3 KOMPONENTET UNIFIKUESE
Komponente unifikuese (Unifying Components), t cekura n vijim jan ato prmes t cilave ne mund t iu qasemi shrbimeve q na i ofron .NET Framework: ASP.NET Windows Format Visual Studio .NET
ASP .NET
ASP.NET prmban dy veori madhore:Web Format, dhe Web Serviset. Web Format:Thjeshtsojn Web zhvillimin deri n at mas sa q e tra q nevojitet pr t krijuar nj Web form sht q vetm ti kapim kontrollat dhe ti vendosim n siprfaqen dizajnuese, pr t dizajnuar aplikacione interaktive. Web Serviset:jan nj lloj aplikacioni q e ekspozojn interfejsin programatik prmes metodave pr qasje standarde.Web serviset jan t dizajnuara q t prdoren nga aplikacionet dhe komponentet tjera dhe nuk tentohet q t jen t prdorshme direkt te shfrytzuesit e zakonshm.Web serviset e bjn t leht q t ndrtojm aplikacione q integrojn veorit nga burime n distanc.
Windows Format
Windows Format sht emri i nj bashksie t unifikuar klassh q ofrojn prkrahje pr krijimin e desktop aplikacioneve tradicionaleaplikacioneve q kan nj graphical user interface(GUI).Windows format e bjn t leht zhvillimin e end-user aplikacioneve duke prdorur ndonjrn prej .NET gjuhve programuese.
Faqja 18
produktivitetin e zhvilluesit gjat ciklit t zhvillimit.Integrimi i veorive implemetuese rrit gjithashtu produktivitetin gjat post-deployment debagimit, prmbledh karakteristikat madhore t Visual Studio .NET.
Faqja 19
Configuration settings:Gjrat konfiguruese n nivel aplikacioni ruhen n nj Extensible Markup Language(XML) format.XML formati sht nj tekst format hierarkik, i cili sht i leht t shkruhet dhe t lexohet.Ky format e bn t leht aplikimin e gjrave t reja n aplikacione pa ndihmn e ndonj vegle administrative lokale. Siguria:ASP.NET aplikacionet jan t sigurta dhe prdorin nj bashksi skemash autorizimi dhe autentikimi.Sidoqoft, ne mund ti modifikojm kto skema n akordim me nevojat e siguris s nj aplikaconi. 1 ANATOMIA E NJ ASP .NET APLIKACIONI
Nganjher sht e vshtir q t definohet saktsisht se ka sht nj Web aplikacion.Ndryshe nga desktop programet tradicionale, ASP.NET aplikacionet jan pothuajse gjithmon t ndara n web faqe.Kjo ndarje d.m.th., se shfrytzuesi mund ti qaset nj ASP.NET aplikacioni n disa pika t ndryshme , ose t prcjell nj link nga aplikacioni n nj pjes tjetr t web sajtit.Pra, shtrohet pyetja:a ka kuptim q nj websajt t konsiderohet si nj aplikacion? N ASP.NET prgjigja sht po.do ASP.Net aplikacion ndan nj bashksi t prbashkt resursesh dhe gjrash konfiguruese (configuration settings).Web faqet nga ASP.NET aplikacionet nuk i ndajn kto resurse, edhe nse ndodhen n t njjtin web server.N terma teknik, do ASP.NET aplikacion ekzekutohet brenda nj domeni aplikacioni t veant.Domenet e aplikacionit jan zona t izoluara n memorie, dhe ato sigurojn q nse nj web aplikacion shkakton gabime fatale, kjo nuk afekton ndonj aplikacion tjetr q punon mir n t njjtin kompjuter.Pra, do web aplikacion mirmbahet ndaras dhe posedon bashksin e vet t cached, application dhe session data. Definicioni standard i nj ASP.NET aplikacioni e prshkruan at si nj kombinim fajllash, faqesh, modulesh, dhe kod t ekzekutueshm q mund t invokohet nga nj direktorium virtual n nj web server.Me fjal t tjera direktoriumi virtual sht nj struktur themelore grupuese q e delimiton nj aplikacion.Figura n vijim tregon nj web server q hoston katr web aplikacione t ndara.
Faqja 20
Kur ASP.NET pranon nj krkes pr nj .aspx faqe procesi kalon npr disa hapa: 1. S pari krkesa i drgohet web serverit.Nse jemi duke ekzekutar nj site aktiv, web serveri sht zakonisht nj IIS.Nse jemi duke ekzekutuar nj faqe n Visual Studio, krkesa i drgohet built-in serverit testues. 2. Web serveri determinon q .aspx fajlli sht i regjistruar n Asp.Net procesin punues.Nse ekstensioni i fajllit i prket ndonmj servisi tjetr (si do t ishte pr .asp fajllat), ASP.Net nuk do t involvohet. 3. Nse sht hera e par q nj faqe n kt aplikacion krkohet, ASP.Net automatikisht krijon domenin e aplikacionit dhe nj objekt special aplikacioni(teknikisht, nj instanc qe derivon nga .NET klasa System.Web.HttpApplication). 4. ASP.NET konsideron .aspx fajllin specifik.Nse ky fajll asnjher nuk sht ekzekutuar, ASP.NET kompajlon dhe e vendos faqen n direktoriumin c:/[WinDir/Microsoft.NET/Framework/[Version]/Temporary ASP.NET Files, ku [Version] sht numri i versionit t .Net Framework.Nse kjo pun sht br m par (p.sh., nse dikush tjetr ka br krkes m par pr kt faqe) dhe fajlli nuk sht ndryshuar, ASP.NET do ta prdor versionin e kompajluar. 5. Fajlli i kompajluar vepron si nj progarm n miniatur.Ai s pari ngrit eventat(m s teprmi Page.Load event).N kt faz, do gj punon si nj bashksi .NET objektesh n memorie. 6. Kur kodi t kryhet, ASP.NET detyron do kontroll ta shfaq veten n HTML taga korresponsues. 7. Faqja finale i drgohet userit, dhe aplikacioni prfundon.
Faqja 21
Faqja 22
KAPITULLI 3
SPECIFIKACIONI
3.1
HYRJE
N kt kapitull, kemi t bjm me specifikimin, procesimin e krkesave pr produktin q do ta prodhojm.Q t kemi nj specifikacion t mir, pra t qart, duhet q pjesmarrrs aktiv gjat prpilimit t tij t jet klienti dhe shfrytzuesit t cillve u dedikohet produkti.Duhet t listohen t gjitha krkesat nga ana e klientit dhe t sigurohemi q i kemi t qarta kto krkesa.sht m se e preferueshme, pr t mos thn e domosdoshme q gjat prpilimit t specifikacioneve t kemi parasysh disa rregulla apo standarde n mnyr q t fitojm nj specifikacion sa m t rafinuar.Ne do t mundohemi q ta implementojm standartin IEEE 830-1998.Sipas ktij standarti paraqitja hierarkike asht si vijon: 1 Hyrja 1.1 Qllimi 1.2 Skopi(Fushveprimi) 1.3 Definicionet, akronimet dhe shkurtesat Prshkrimi i prgjithshm 2.1 Perspektiva e produktit 2.2 Karakteristikat e shfrytzuesve 2.3 Konstraintat Specifikimi i krkesave Modelimi i krkesave Prototipi
3 4 5
3.1.1 QLLIMI
Qllimi i fazs s analizs s krkesave sht sht q t jap prshkrime t detajuara t aspekteve t gjithanshme t softuerit q do ta zhvillojm, q n rastin ton ka t bj me sistemin pr shitje online t produkteve.Prmes ktij dokumenti t spefikimit t krkesave, zhvilluesit e softuerit do t ken nj vizion m t qart rreth produktit q do ta zhvillojn.N kt dokument do t prshkruhen interfejsat dhe funksionaliteti i tyre si dhe restriksionet e ndryshme q do t aplikohen n sistem. N kt faz bhet paraqitja hierarkike e krkesave t sistemit, sipas nj serie modelesh n akordim me UML(Unified Modeling Language) standartet.Ktu vijn n shprehje diagramet e ndryshme si jan diagramet e klasave, use-case diagramet, diagramet e gjendjes dhe ato t sekuencave, t cilat shrbejn si nj paraqitje vizuele e prdorshmris dhe implementimit t sistemit. Pra, n kt faz bhet paraqitja e dokumentuar e marrveshjeve q arrihen ndrmjet klientit dhe zhvilluesve t sistemit mbi krkesat e sistemit.Ky dokument tenton t shrbej si nj pik reference pr zhvilluesit gjat fazs implementuese t ECS(e-commerce sistemit).
Faqja 23
3.2
PRSHKRIMI I SISTEMIT
Ky seksion prmban perspektivn e ECS produktit nga ana e dizajnerit, prkufizimi i funksionalitetit t sistemit, prkufizimet e bra nga shfrytzuesi, softueri, hardueri, si dhe restriksionet e sistemit.
Faqja 24
Inerfejsi i porosive (Order interface) Interfejsi pr regjistrim t klientve Interfejsi i administratorit Editimi Editimi i katalogut t artikujve Editimi i porosive Interfejsi i promocioneve
3.2.4 RESTRIKSIONET
Menagjeri sht i vetmi shfrytzues q mund t manipuloj me sajtin n trsi.Menagjeri sht i vetmi q mund t editoj, fshij apo azhurnoj (update) emrin, mimin dhe atributet tjera t artikujve, si dhe t njjtat mund ti bj edhe pr departamantet dhe kategorit e artikujve si dhe t merret me porosit e ndryshme q jan br nga klientt.Menagjeri gjithashtu mund edhe t vendos apo t largoj artikuj n promocion katalogu dhe departamenti.Klienti do t mund t porosis artikuj vetm nse sht i loguar n sistem. Klienti Porosit t -
Ekzekutim @T @T
Shfleton t t
Prdor promocion t -
Ekzekutim @T @T
Vendos prom. t -
Faqja 25
3.3
SPECIFIKIMI I KRKESAVE
Paraqitja hierarkike e krkesave t sistemit: Lejon role t ndryshme pr shfrytzuesit e sistemit;Shfrytzuesi sht i njohur si Shfrytzues gjeneral nga sistemi deri sa ai /ajo t logoj n sistem. Rolet e inkorporuar n system jan si n vijim: 1. Menagjeri(Administratori) 2. Klienti 3. Shfrytzuesi general 4. ASM(Automated System Managment) Menagjeri (detyrat dhe prgjegjsit) 1 Shfleton artikuj 2 Shton/fshin/azhurnon artikuj n dhe nga sistemi 3 Shton/fshin/azhurnon kategori dhe department n catalog 4 Merret me porosit e bra nga klientt. 5 Lejon ose anulon porosit automatike. 6 Vendos ose largon artikuj nga promocioni n catalog dhe department 7 Afishon gostorin e porosive n baz t specifikave t caktuara. Klienti 1 Shfleton katalogun e artikujve 2 Porosit artikuj duke i future ata n Shportn pr blerje. 3 Sheh artikujt n shportn e vet t blerjes. 4 Editon/Azhurnon informatat personale n llogarin e vet. 5 Posedon nj ID unike (GUID), emrin, adresen, e-mail-in, etj. Shfrytzuesi general 1 Shfleton artikujt n katalog 2 Duhet t regjistrohet q t mund t porosit artikuj. ASM(Automated Management System) 1 Kur nj artikull blehet, zvoglon sasin n stok pr at artikull 2 do shfrytzues q ka statusin log in duhet t log out, sistemi do ta log out shfrytzuesin kur ti kaloj koha e sesionit 3 Kur nj artikull arrin minimumin e caktuar sistemi e lajmron menagjerin n mnyr automatike. 4 ECS duhet t ruaj rrjedhn procesuese t porosive, si dhe statusin e porosis prgjat rrjedhs procesuese.Rrjedha procesuese prmban nj date, nj mesazh prkats si she nj numr mesazhi pr mesazhin prkats. 5 Prdor web-based implemetimin q t ruaj informatat n nj baz shnimesh ose flat fajlla. 6 Nj Shfrytzues general mund t registrohet si nj Klient prmes nj procesi regjistrues, pr t cilin esht prgjegjs ASM.Pas regjistrimit, shfrytzuesi mund t logoj n mnyr q t ket qasje n funksionalitetin e sistemit. 7 Afishon artikujt e zgjedhur sipas specifikave t zgjedhura nga klienti
Faqja 26
KAPITULLI 4
ZHVILLIMI I APLIKACIONIT
4.1
ANALIZA E KRKESAVE
Tani, pas prpilimit t specifikacionit fillojm me zhvillimin e aplikacionit n trsi, pra me aplikimin e fazave t Inxhinieris Softuerike, duke filluar me analizn e krkesave dhe duke vazhduar mtutje me planifikim(dizajnim), implementim dhe testim.N kt faz t analizs s krkesave me shqyrtimin dhe skicimin e diagrameve t ndryshme n akordim me specifikacion.Duhet cekur se edhe gjat ksaj faze klienti apo shfrytzuesi duhet t jet aktiv dhe t sigurohemi se gjrat jan duke shkuar si duhet.N fakt analiza e krkesave sht vazhdimsi e specifikacionit ku tani vazhdojm me modelimin e krkesave dhe me prototipin e produktit.
4.1.1
MODELIMI I KRKESAVE
Kur jemi te modelimi i krkesave vie n shprehje UML(Unified Modeling Language), e cila na mundson paraqitjen vizuele t krkesave.UML si e kemi edhe m sipr te kapitulli 2, ofron nj sre diagramesh t llojllojshme pr paraqitjen grafike t aspekteve t ndryshme t softuerit.UML diagramet m t prdorura jan:use case diagramet ,diagramet e klasave, diagramet e gjendjes(state diagramet), diagramet e sekuencave.N vijim do t shohim implementimin e tyre konkret n modelimin e krkesave t sistemit. Use Case Diagrami pr ECS
Faqja 27
Use Case Definicionet N figurn e msiprme paraqitm use case diagramin pr shembullin tone konkret. N tabeln e mposhtme jan dhn definicionet pothuajse pr secilin nga use case-at e paraqitur msipr. Use case Aktort Tipi Includes Extends Prshkrimi
klienti zgjedh artikujt q dshiron ti blej klienti shfleton dhe krkon artikuj e ndryshm. artikujt e zgjedhur i fut n shportn virtuale blerse shikon shportn me artikujt e zgjedhur klienti duhet t log in n mnyr q t log out klienti porosit artikujt.Sistemi kontrollon nse artikujt jan n n dispoziocio klienti mund ti editoj dhe ndryshoj shnimet personale menagjeri menagjon artikujt, dep. dhe kategorit n katalog menagjon porosit e bra nga klientt konf. shitoren vendos/largonart. n promocion
Use cases
duhet kompletuar u.c. shfleto produkte
Zgjedh produkt
Zgjedh produkt x
Krkon(shfleton) shf.gjeneral, primar, klienti esencial produkte Shton artikull n shf.gjeneral, primar, klienti esencial shport Shikon shportn shf.gjeneral, primar, klienti esencial e blerjes Log in/Log out klienti, menagjeri klienti primar, esencial primar, esencial
u.c.zgjedh produkt
Porosit artikujt
Log in
u.c.Shiko shportn
Menagjon llogarin
klienti
primar, esencial
u.c.Log in
Menagjon katalogun
menagjeri
primar, esencial
u.c.Log in
menagjeri
u.c.Log in
menagjeri
u.c.Log in
Faqja 28
Faqja 29
Prshkrimi i klasve N tabeln e mposhtme jan dhn prshkrimet rreth klasve q marrin pjes n aplikacion.Tabela paraqet emrin e klasve, prshkrimin dhe relacionet ndrmjat klasve.Pr shkaqe teknike (hapsire) iu kemi shmangur paraqitjes s atributeve dhe metodave t klasve. Klasa Asociacion EcommerceKonfi. x Relacionet Agregacion x Prshkrimi Kompozicion x
ju mundson klasve qasjen n Web.config ku ruhen shnimet gjenerale pr aplikacionin. mundson operacionet me bazn e shnimeve mundson operacionet q kan t bjn me shportn virtuale t klientve merret me menagjimin e artikujve, kategorive dhe depart. ofron funksione ndihmse pr aplikacionin si p.sh. dergimin e e-mailave mundson aktivitetet q kan t bjn me porosit,me afishu porosi sipas spec. t ndryshme ekstrakton informatat prej porosive si dhe klientve t tyre ekstrakton informata prej tabels PorosiDetajet si jan sasia, vlera e porosis,etj kjo klas shrben si katalizator i procemit t porosive ofron informatat rreth klientve si:emaili,telefoni, etj mundson azhurnimin e informatave personale t klientve
x x x x x
x
KlientProfile
BazaEShnimeve
x x x
x
BazaEShnimeve
PorosiaInfo PorosiDetajet
EcommerceLib.
x
PorosiaInfo
x x
PorosiaInfo
x x x
x x x
x
KlientProfile
Faqja 30
Diagramet e sekuencave Me ndihmn e diagrameve t sekuencave paraqesim komponentet n aspektin kohor.Figura e mposhtme ilustron nj diagram sekuence i cili paraqet aktitvitetet kyqe t nj klienti q e prdor ECS.
Faqja 31
Diagramet e gjendjes Diagramet gjendjes ne i prdorim pr vizualizimin e skenareve t navigimit.N vijim do t paraqesim diagramet e gjendjes pr shfrytzuesin gjeneral, pr klientin e regjistruar dhe pr menagjerin(adminstratorin).
Faqja 32
Faqja 33
Faqja 34
4.1.2
PROTOTIPI
Prototipi i ECS sistemit tregon se si shfrytzuesit do t bashkveprojn me sistemin n mnyr q t performojn veprimet e dshiruara.Figura n vijim tregon faqen kryesore t ECS sistemit.
Nga faqja kryesore shfrytzuesi mund t shfletoj dhe krkoj artikuj t ndryshm, por q t vazhdoj m tutje ai duhet t logoj dhe t regjistrohet. 1 SKENARE T NDRYSHME
a.)Regjistrimi i klientve Pas hyrjes n sistem shfrytzuesi i paregjistruar mund t regjistrohet duke e mbushur formn pr regjistrim.Shfrytzuesi nuk mund t porosis artikuj pa u regjistruar.
Faqja 35
b.) Shporta e artikujve Klienti pas futjes s artikujve n shportn virtuale t blerjes mund ta shikoj shportn, n t ciln i ka mundsite pr ta modifikuar at edhe m tutje.Klienti mund t largoj artikull nga shporta, ta ndryshoj sasin e artikujve, etj.
Faqja 36
d.)Menagjimi i produkteve
e.)Menagjimi i porosive
Faqja 37
4.2
PLANIFIKIMI (DIZAJNIMI)
Shtresa e prezentimit prmban UI(user interface) elementet e sajtit, dhe prfshin logjikn e cila menagjon interaksionin ndrmjet vizitorit dhe biznesit t klientit.Kjo shtres e bn sajtin q t ndihet i gjall, dhe mnyra se si e dizajnojm sht kruciale pr suksesin e nj web aplikacioni.Pasi q produkti yn sht web aplikacion, kjo shtres prbhet prej web faqeve dinamike. Business tier (apo shtresa e mesme) pranon krkesa nga shtresa e prezentimit dhe i kthen rezultat ksaj shtrese varsisht nga logjika e biznesit t ciln e prmban. Pra, kjo shtres ka t bj me rregullat dhe politikat biznesore.P.sh. nse nj aplikacion pr shitje produktesh ka zbritje pr ndonj shfrytzues, ather politika e lirimit implementoihet n kt shtres. Shtresa e shnimeve (data tier apo shpesh i referohemi si database tier) sht prgjegjse pr ruajtjen e t dhnave t aplikacionit n baz t shnimeve, prej nga trajtohen prej shtress s prezentimit me ndrmjetsim t shtress s mesme.
Faqja 38
Kurse pr shtresn e shnimeve zakonisht prdoret SQL Server.SQL Server prveq q ruan shnimet e aplikacionit ai mundson edhe ruajtjen e logjiks n form t stored procedurave, mirmbajtjen e relacioneve ndrmjet tabelave duke siguruar kshtu integritetin e t dhnave, etj. Ne mund t komunikojm me SQL Serverin prmes nj gjuhe t quajtur T-SQL(Transact-SQL).
Faqja 39
4.2.2
Dizajnimi i kornizs s sajtit Dizajnimi vizual i sajtit zakonisht bhet pas nj diskutimi me klientin dhe n bashkpunim me ndonj web dizajner profesional.Nj alternativ tjetr sht q t blejm ndonj web template nga ndonjra prej shum kompanive q ofrojn kso lloj shrbimesh, pr ndonj mim t arsyeshm.Sido q t jet, pothuajse t gjitha faqet e ECS duke prfshir edhe faqen e par do t ken strukturn e treguar n figurn n vijim.
LOGIN STATUSI
HEADERI I SAJTIT
LISTA E DEPARTAMENTEVE
LISTA E KATEGORIVE PRMBAJTJA E SAJTIT (kjo qelul ka prmbajtje t ndryshme varsisht se ciln faqe vizitori sht duke e shfletuar)
KUTIA E KRKIMIT
SHPORTA E BLERJES
Faqja 40
N vijim sht paraqitur shtresa e prezentimit, pra planifikimi i UI-s pr shembullin ton.
Faqja 41
4.2.3
Kategorite
IDKategoria IDDepartamenti Emri Pershkrimi
Produktet
IDProdukti IDKategoria Emri Pershkrimi Cmimi Foto1Url
ShportaBlerese
IDShporta IDProdukti Sasia DataBlerjes
RegjioniDergimit *
IDRegjioniDergimit RegjioniDergimit
Departamentet
IDDepartamenti Emri Pershkrimi
Porosite *
IDPorosia IDKlienti IDDergimi
Dergesat *
IDDergimi IDRegjioniDergimit TipiDergimit KostoDergimit
PorosiDetajet
IDPorosia IDProdukti Artikulli Sasia Cmimi Vlera
Klientet *
IDKlienti Emri Mbiemri Adresa Qyteti KodiPostal EmailAdresa Telefoni
Taksat *
IDTaksa TipiTakses PerqindjaTakses
Faqja 42
4.3 IMPLEMENTIMI
Tani pas fazs s analizs dhe t planifikimit vjen faza e implementimit t projektit.Pra, n kt faz fillon realizimi konkret i aplikacionit.Pr t lehtsuar punn, implementimin e aplikacionit e kemi ndar n tri faza tjera.N fazn e par sht br implementimi i katalogut t produkteve s bashku me departamentet dhe kategorit prkatse.Faza e dyt ka t bj me implementimin e shports s blerjes dhe faza e tret ka t bj me llogarit e klientve dhe me procesimin e porosive.N vijim po paraqesim se ka prmban m saktsisht secila nga fazat e lartcekura. Faza I:Implementimi i katalogut t produkteve N kt faz i tr aktiviteti sht prqendruar n themelimin e nj kornize bazike pr sajtin ton dhe vnien n funksion t sajtit.Kemi filluar me arkitekturn themelore t sajtit, vendosjen se si pjest e ndryshme t aplikacionit t punojn sbashku.Kjo sht prcjellur nga kta hapa: Implementimi i bazs s shnimeve pr ruajtjen e produkteve, kategorive dhe nnkategorive t katalogut t produkteve. Shkruarja e SQL kodit prkatsisht SQL stored procedurave dhe kodin n C# pr trajtimin e t dhnave. Implementimin e nj makine krkimi pr bazn e shnimeve Implementimin e pjess private t sajtit pr administratorin pr t modifikuar katalogun online. Faza II:Implementimi i shports s blerjes Edhe pse mund ti shfrytzojm shportat e blerjes nga kompani t ndryshme si sht p.sh. PayPal ne kemi kemi vendosur q t implementojm shportn ton blerjes, pr shkak t prparsive q i kemi.Me shportn ton te blerjes ne mund ta kontrollojm at m mir, mund ti ruajm komplet porosit n baz t shnimeve si pjes e procesit t porosis, dhe mund ti prdorim kto t dhna pr t pasur informata pr klientt tan.Edhe kjo faz ka kaluar npr disa hapa zhvillimi. Dizajnimi i shports s artikujve Shtimi strukturave t reja t t dhnave pr ruajtjen e rekordeve t shports s blerjes Implementimi i business tier metodave pr t punuar me shportn e blerjes Implementimi i nj web user kontrolle q afishon informatat rreth shports dhe faqen e shports s blerjes. Faza III:Procesimi i porosive N kt faz sht br implementimi i procesimit t porosive nga ana e klientve.Pas implementimit t ksaj klientt kan mundsin q t bjn porosit e dshiruara.Kjo faz poashtu ka kaluar npr kta hapa implementimi: Prpilimi i tabelave q kan t bjn me porosit e klientve, dhe SQL store procedurave prkatse Implementimi i nivelit t business tier Implementimi i UI(user interface) prkats.
Faqja 43
4.3.1
Si e kemi cekur edhe m sipr n fazn e par sht br implementimi i katalogut t produkteve.N kt faz poashtu sht br implementimi i funksionit t krkimit t artikujve nga shfrytzuesi dhe administrimi i katalogut online nga ana e administratorit.Implementimi sht br sipas arkitekturs me tri shtresa duke filluar s pari me Data tier(shtresa e t dhnave mpastaj Business tier(shtresa logjike), dhe n fund Presentation tier.
Vetit tjera Primary key & identity column nuk lejohen null values nuk lejohen null values nuk lejohen null values
Tabela 4-3:Departamentet Emri i fushs Tipi int IDDepartamenti varchar(50) Emri varchar(1000) Pershkrimi
Vetit tjera Primary key & identity column nuk lejohen null values nuk lejohen null values
Trajtimi i t dhnave Tani pas prpilimit t tabelave vie n shprehje trajitmi i t dhnave nga kto tabela si p.sh.futja e t dhnave n tabela, azhurimi apo fshirja e rekordeve t ndryshme n tabela.Pasi q jemi prcaktuar pr arkitekturn me tri shtresa nj gj t till do ta bjm prmes SQL stored procedurave.Por para se ti cekim SQL stored procedurat e implementuara n kt faz e pash t
Faqja 44
arsyeshme q ti potencojm disa probleme me t cilat zakonisht ballafaqohemi gjat trajtimit t shnimeve nga baza e shnimeve: trajtimi i nj prshkrimi t shkurtr pr produkte, kombinimi i tabelave, implementimi i faqimit. Trajtimi i nj prshkrimi t shkurtr pr produkte:N web sajtin ton, lista e produkteve nuk e shfaq komplet prshkrimin pr artikullin e caktuar, por vetm nj pjes t tij(prshkrimi i plot trefohet vetm n faqen pr e detajeve t pr produkte).N T-SQL, ekstraktrimin e karaktereve t para t nj stringu mund ta bjm prmes funksionit LEFT.Pas ekstraktimit t nj pjese nga prshkrimi i plot i shtojm tri pika ... n fund duke prdorur operatorin +.Komanda n vijim ilustron nj gj t till:
SELECT LEFT(Pershkrimi, 60) + '...' AS PershkrimiShkurte FROM Produktet
Shembulli i msiprm ilustron ekstraktimin e 60 karaktereve t para nga kolona Prshkrimi plus tri pika duke i asocuar nj ad hoc emr me ndihmn e keywordit AS. Kombinimi i tabelave:Pasi q shnimet jan t ruajtura n disa tabela jan t pashmangshme situatat kur krkohet trajtimi prnjhersh i shnimeve nga databaza.Ktu vie n shprehje kombinimi apo bashkimi i tabelave.Nj gj e till realizohet prmes SQL klauzs JOIN.Kombinimi i nj tabele me nj tabel tjetr rezulton n kolona(jo n rreshta), t atyre tabelave q bashkohen.Kur bashkohen dy tabela duhet t jet nj kolon e prbashkt n kurriz t s cils bhet bashkimi.Shembulli n vijim ilustron kombinimin e dy tabelave, Produktet dhe kategorit.Kolona n baz t s cils bhet kombinimi sht IDKategoria.
SELECT Produktet.IDProdukti,Produktet.Emri, Kategorite.Emri AS Kategoria, FROM Produktet INNER JOIN Kategorite ON Produktet.IDKategoria = Kategorite.IDKategoria WHERE (Produktet.IDKategoria = @IDKategoria)
Implementimi i faqimit me ndihmn e SQL Server 2005:N rastet kur kemi t bjm me nj list t madhe produktesh, sht m e arsyeshme q vizitori ti shfletoj ato produkte faqe pr faqe, sipas nj numri t paracaktuar t produkteve pr faqe. Varsishr se n ciln shtres t arkitekturs bhet faqimi, jan dy mnyra themelore q mundsojn nj gj t till: Faqimi n nivelin e data tier:N kt rast, baza e shnimeve kthen vetm faqen e produkteve q vizitori dshiron ti shoh. Faqimi n nivelin e presenatstion tier:N kt skenar, data tier gjithnj kthen komplet listn e produkteve, me rast objektet e presentation tier (p.sh. GridView kontrolla), ekstrakton faqen e krkuar t produkteve t produkteve nga lista komplete.Por, kjo metod ka probleme t konsiderueshme performanse veanrisht kur kemi t bjm me bashksi t mdha, sepse bhet panevoj transferimi i shnimeve nga baza e shnimeve n presentation tier. N web sajtin ton, implementimi i faqimit sht br n nivelin e shnimeve,jo vetm pr shkaqe performanse, por edhe sepse me kt kemi fituar prvoja t reja duke prdorur disa trike shum t prdorshme sa i prket programimit me baza t shnimeve.Faqimi n nivelin e shnimeve bhet poashtu n dy mnyra:
Faqja 45
Mund ta shfrytzojm nj veori t re t ASP.NET 2.0, t objektit DbDataReader, i cili ka nj overloadim t metods ExecuteReader, e cila merr si parametr faqen e rekordeve pr t ciln jemi t interesuar. Mund t shkruajm stored procedura q kthejn vetm faqen e krkuar t produkteve. Alternativa e dyt sht m e fuqishme sepse na lejon nj performans dhe fleksibilitet m t shklqyer.Ndryshe nga SQL Server 2000, SQL Server 2005 ka nj veori t re q na lejon n mnyr shum t leht implementmin e funksionalitetit t faqimit. SQL Server 2005 ka nj funksion ROW_NUMBER q iu shoqron numra konsekutiv rreshtave, duke filluar nga 1, pr do rresht t kthyer nga SELECT komanda.Kur prdorim funksioni ROW_NUMBER, duhet specifikuar kolonn sipas s cils rreshtat jan t renditur para se t numrohen:
SELECT ROW_NUMBER() OVER (ORDER BY Produktet.IDProdukti) AS IDProdukti, Emri FROM Produktet
Si do q t jet m posht do t shohim implementmin konkret t ktij funksioni. Implementimi i SQL stored procedurave Tabela n vijim paraqet listn e SQL stored procedurave t realizuara n fazn e par t implementimit. Tabela 4-4:SQL stored procedurat SQL stored procedura Parametrat ska parametra hyrs getDepartamentet getDepartamentDetajet getKategoriDetajet getProduktDetajet getKategoriteNeDepartament getProduktNeKategori @IDDepartamenti @IDKategoria @IDProdukti @IDDepartamenti Prshkrimi kthen listn e departamenteve nga tabela Departamentet jep detajet pr nj departament t caktuar jep detajet pr nj kategori t caktuar detajet pr nj produkt t caktuar kategorit n nj departament t caktuar kthen produktet q i takojn nj kategorie t caktuar
@IDKategoria @GjatesiaPershkrimit @NrFaqeve @ProduktePerFaqe @SaProdukte (output param) @IDDepartamenti getProduktetNePromDepart @GjatesiaPershkrimit @NrFaqeve @ProduktePerFaqe @SaProdukte (output param) getProduktetNePromKatalogu @GjatesiaPershkrimit @NrFaqeve @ProduktePerFaqe @SaProdukte (output param)
kthen produktet pr t cilat kolona PromNeDepartament =1 kthen produktet pr t cilat kolona PromNeKatalog = 1
Faqja 46
Sa pr ilustrim n vijim po e paraqesim SQL stored procedurn getProduktetNeKategori.Ktu shihet se si sht br implementimi i faqimit.
CREATE PROCEDURE getProduktNeKategori (@IDKategoria INT, @GjatesiaPershkrimit INT, @NrFaqeve INT, @ProduktePerFaqe INT, @SaProdukte INT OUTPUT) AS -- deklaron variablen e re te tipit TABLE DECLARE @Produktet TABLE (NrRreshtit INT, IDProdukti INT, Emri VARCHAR(50), Pershkrimi VARCHAR(1000), Cmimi MONEY, Foto1FileName VARCHAR(50), Foto2FileName VARCHAR(50), PromocionNeDepartament bit, PromocionNeKatalog bit) -- popullon table variablen @Produktet me listen komplete te produkteve INSERT INTO @Produktet SELECT ROW_NUMBER() OVER (ORDER BY Produktet.IDProdukti),IDProdukti, Emri, SUBSTRING(Pershkrimi, 1, @GjatesiaPershkrimit) + '...' AS Pershkrimi, Cmimi, Foto1Url, Foto2Url, PromocionNeDepartament, PromocionNeKatalog FROM Produktet WHERE IDKategoria = @IDKategoria -- kthen numrin total te produkteve duke perdorur nje OUTPUT variabel @SaProdukte SELECT @SaProdukte = COUNT(IDProdukti) FROM @Produktet -- kthen faqen e kerkuar te produkteve SELECT IDProdukti, Emri, Pershkrimi, Cmimi, Foto1FileName, Foto2FileName, PromocionNeDepartament, PromocionNeKatalog FROM @Produktet WHERE NrRreshtit > (@NrFaqeve - 1) * @ProduktePerFaqe AND NrRreshtit <= @NrFaqeve * @ProduktePerFaqe
Faqja 47
<appSettings> <add key="MailServer" value="localhost"/> <add key="EnableErrorLogEmail" value="false"/> <add key="ErrorLogEmail" value="ilazkozhani@yahoo.com"/> <add key="EmriSajtit" value="E-Commerce"/> <add key="ProduktePerFaqe" value="6"/> <add key="GjatesiaPershkrimit" value="60"/> </appSettings> <connectionStrings> <add name="ECommerceConnectionString" connectionString = "Server=(local)\SqlExpress;Integrated Security = True; Database = ECommerceDB" providerName = "System.Data.SqlClient"/> </connectionStrings>
N vijim jan paraqitur tabelat pr klast e msiprme dhe metodat e tyre prkatse. Tabela 4-5:BazaEShenimeve Metoda BazaEShenimeve() ExecuteSelectCommand() ExecuteNonQuery() ExecuteScalar() CreateCommand() Tabela 4-6:Katalogu Metoda getDepartamentet() getDepartamentDetajet() getKategoriDetajet() getKategoriteNeDepartament() getDetajetPerProdukte() getProduktetNeKategori() Tipi konstruktor statik DataTable int string DbCommand Tipi DataTable DetajetPerDepartamente DetajetPerKategori DataTable DataTable DataTable Parametrat ska DbCommand command DbCommand command DbCommand command ska Parametrat ska string IDDepartamenti string IDkategoria string IDDepartamenti string IDProdukti string IDKategoria string nrFaqeve out int saFaqe string nrFaqeve out int saFaqe string IDDepartamenti string nrFaqeve out int saFaqe Parametrat string from string to string subject string body Exception ex Page faqja, ...
Tipi void
LogError() TieButton()
void void
Faqja 48
Klasa ECommerceKonfig nuk ka metoda.Kjo klas shrben vetm si ur lidhse prmes s cils mund ti qasemi fajllit web.config, ku nj gj t till mund ta bjm me ndihmn e vetive(properties), q ksaj klase ia kemi shtuar. Tabela 4-8:ECommerceKonfig Vetit (properties) DbConnectioString DbProviderName EmriISajtit ProduktePerFaqe GjatesiaPershkrimit MailServer ErrorLogMail Tipi string string string string string string string
ListaDepartamenteve.ascx
ListaProdukteve.ascx
Headeri.ascx
ListaKategorive.ascx
Faqja 49
Vrejtje:Pasiq
ky aplikacion ka karakter shkollor dhe jo komercial, popullimi i lists s departamenteve dhe produkteve sht br n mnyr triviale si shihet edhe nga figura e msiprme, kurse pr popullimin e lists s produkteve kam shfrytzuar nj tabel ad hoc nga literarura e prdorur. Sa pr ilustrim n listingun n vijim sht paraqitur kodi pr popullimin e lists s artikujve.
protected void Page_Load(object sender, EventArgs e) { PopulloKontrollat(); } private void PopulloKontrollat() { // Merre Id-ne e Departamentit nga query stringu string IdDepartamenti = Request.QueryString["IDDepartamenti"]; // Merre Id-ne e Kategorise nga query stringu string IdKategoria = Request.QueryString["IDKategoria"]; // Nese shfletojme ndonje kategori... if (IdKategoria != null) { // Trajton listen e produkteve per nje kategori ProduktDataList.DataSource = Katalogu.GetProduktetNeKategori (IdKategoria, faqja, out saFaqe); ProduktDataList.DataBind(); } else if (IdDepartamenti != null) { // Trajto listen e produkteve ne promocion departamenti ProduktDataList.DataSource = Katalogu.GetProduktetNePromDepart (IdDepartamenti, faqja, out saFaqe); ProduktDataList.DataBind(); } else { // Trajton listen e produkteve ne promocion katalogu ProduktDataList.DataSource = Katalogu.GetProduktetNePromocionKatalogu(faqja, out saFaqe); ProduktDataList.DataBind(); }
4.3.2
Pas implementimit t ksaj pjese t aplikacionit klientit(admistratorit), i mundsohet administrimi online i katalogut t produkteve.Tani administratori e ka mundsin q: T shtoj ose t fshij departamente t caktuara, dhe t azhurnoj (update) detajet e departamenteve ekzistuese. T shikoj dhe menagjoj kategorit q i prkasin nj departamenti t caktuar. T menagjoj listn e produkteve pr nj kategori specifike, dhe t editoj detajet e produkteve dhe ti azhurnoj ato. Me fshi nj produkt nga nj kategori ose nga katalogu.
Faqja 50
S pari sht br implementimi i mekanizmit t logimit pr administrator.UI pr funksionalitetin e logimit prbhet nga nj web user kontroll UserInfo.ascx e cila lejon autentikimin e administratorit.
Fig.4.13 UserInfo.ascx
Pas logimit si administrator UserInfo.ascx shfaq linkun pr n pjesn administrative t sajtit (KatalogAdmin.aspx).
Administrimi i departamenteve Pas klikimit t linkut KatalogAdmin administratori drejtohet n faqen KatalogAdmin.aspx e cila fillimisht prmban pjesn q ka t bj me administrimin e departamenteve.
DepartamentAdmin.ascx
Faqja 51
Administrimi i departamenteve bhet prmes user kontrolls DepartamentAdmin.ascx, e cila ofron kto mundsi: Editimi i emrit dhe prshkrimit t departamentit me ndihmn e butonit Edito.Pas hyrjes n edit mode, administratori mund t bj intervenimet e dshiruara dhe kto ndryshime mund ti ruaj me klikimin e butonit Azhurno, ose mund t anuloj ndryshimet me butonin Anulo. Editimi i kategorive pr nj departament t caktuar me ndihmn e butonit Shiko kategorit. Mund t fshij komplet nj departament nga baza e shnimeve me ndihmn e butonit fshij departament. Shtimi i nj departamenti t ri n baz t shnimeve Implementimi i cekur msipr i takon Presentation tier, kurse n vijim jan paraqitur implementimet prkatse n nivelin e Data tier dhe Business tier. SQL stored procedurat e implementuara n Data tier jan: ShtoDepartamentshton departament t ri n baz t shnimeve FshijDepartamentfshin deprtament nga baza e shnimeve AzhurnoDepartamentndryshon emrin dhe prshkrimin e nj departamenti Kurse n nivelin e Business tier sht br implementimi i metodave n klasn Katalogu.cs pr stored procedurat prkatse.tabela n vijim paraqet kto metoda sbashku me tipin dhe parametrat prkats: Tabela 4-9:Metodat shtes t klass Katalogu.cs Metoda Tipi shtoDepartament() bool fshijDepartament() azhurnoDepartament() bool bool Parametrat string emri string pershkrimi string idDepartamenti string idDepartamenti string emri string pershkrimi
Administrimi i kategorive Pas klikimit t linkut Shiko kategorit n listn e departamenteve, klientit i shfaqet lista e kategorive pr departamentin e caktuar.Nj gj e till sht realizuar prmes query stringjeve:
DataNavigateUrlFormatString="~/KatalogAdmin.aspx?IDDepartamenti={0}"
SQL stored procedurat prkatse t implmentuara jan: ShtoKategoriregjistron kategori t re pr departamentin e caktuar AzhurnoKategoriazhurnon emrin dhe prshkrimin e nj kategorie Fshijkategorifshin kategori Kurse metodat e implementuara n nivelin e Business tier jan analoge me ato pr departamente, vetm se ktu kan t bjn me kategori. N nivelin e presentation tier sht implemetuar web user kontrolla KategoriteAdmin.ascx e cila popullohet n baz t query stringut t cekur m sipr.
Faqja 52
KategoriteAdmin.ascx
Si shihet dhe nga figura administrimi i kategorive sht i njjt si te departamentet, vetm se ktu tani kemi butonin Shiko produktet, i cili shfaq produktet pr nj kategori t caktuar. Administrimi i artikujve Pas klikimit t linkut Shiko produktet n listn e kategorive, klientit i shfaqet lista e produkteve pr kategorin e zgjedhur.Query stringu prkats tani ka kt form:
NavigateUrl='<%# "~/KatalogAdmin.aspx?IDDepartamenti=" + Request .QueryString["IDDepartamenti"]+"&IDKategoria="+ Eval("IDKategoria")%>'
Data tier prbhet nga kto stored procedura: GetTeGjithaProduktetNeKategorikthen listn e produkteve n nj kategori ShtoProduktkjo stored procedure thirret kur shtojm nj produkt t ri databaz AzhurnoProduktpr ndryshimin e detajeve t nj produkti FshijProduktfshin nj produkt nga baza e shnimeve Business tier prbhet nga metodat prkatse pr stored procedurat e msiprme q i jan shtuar klass Katalogu.cs. Kurse n Presentation tier sht br implementimi i web user kontrolls ProduktetAdmin.ascx, e cila shfaq listn e produkteve pr kategorin e zgjedhur.
Faqja 53
ProduktAdmin.ascx
N web.config sht br modifikimi ashtu q ksaj faqeje t mund ti qaset vetm administratori.
<!-- Vetem administratoret lejohet te iu qasen faqes KatalogAdmin.aspx --> <location path="KatalogAdmin.aspx"> <system.web> <authorization> <allow roles="Administrator"/> <deny users="*"/> </authorization> </system.web> </location>
Faqja 54
4.3.3
N fazn e dyt t implementimit sht br implementimi i shports s blerjes.N nivelin e data tier sht shtuar tabela ShportaBlerese sipas ktyre karakteristikave: Tabela 4-10:ShportaBlerse Emri i fushs Tipi char(36) IDShporta int IDProdukti int Sasia smalldatetime DataBlerjes Vetit tjera Primary key & identity column Primary key nuk lejohen null values nul lejohen null values
SQL stored procedurat e implementuara jan: ShtoArtikullNeShporteshton nj artikull n shportn e blerjes FshijArtikullNeShportefshin nj artikull nga shporta e blerjes AzhurnoArtikullNeShportemodifikon nj rekord t shports GetArtikullNgaShportaekstrakton listn e artikujve nga shporta e blerjes GetShumaTotaleNeShportekthen koston totale t produkteve nga shporta e specifikuar e artikujve. N nivelin e business tier sht implementimi i klass ShportaBlerjes.cs, me karakteristikat e prshkruara nga tabela n vijim: Tabela 4-11:ShportaBlerjes.cs Metoda shtoArtikullNeShporte() azhurnoArtikull() fshijArtikull() getArtukujtNgaShporta() getShumaTotale() Tipi bool bool bool DataTable decimal Parametrat string idProdukti string idProdukti int sasia string idProdukti ska ska
N nivelin e presentation tier sht implementimi i faqes s shports s artikujve ShportaArtikujve.aspx si dhe i nj web user kontrolle ShportaSummary.ascx e cila shfaqet pothuajse n t gjitha faqet e katalogut.Ideja ka qen q kur klienti t fus ndonj artikull n shport kjo user kontroll t shfaq informatat se ka prmban shporta e blerjes, pa shkuar n shportn e blerjes.Kjo kontroll ka poashtu nj link shiko detajet e cila e drgon klientin n shportn e blerjes.
Fig.4.17 ShportaSummary.ascx
Faqja 55
Fig.4.18 ShportaArtikujve.aspx
4.3.4
N kt faz sht br implementimi i llogarive t klientve.S pari shtohet nj rol i ri pr klientt.Kjo bhet prmes Web Site Administration Tool.
Faqja 56
Regjistrimi i klientve bhet prmes faqes Regjistrohu.aspx e cila prmban funksionalitetin e nevojshm pr regjistrim t klientve.
Fig.4.20 Regjistrohu.aspx
Gjithashtu sht modifikuar web user kontrolla UserInfo.ascx ashtu q t prmbaj linkun pr logim t klientve si dhe pr regjistrim t tyre n.q.s ende nuk jan t regjistruar.
Faqja 57
Tabela 4-13:PorosiDetajet Emri i fushs Tipi int IDPorosia int IDProdukti varchar(50) Artikulli int Sasia money Cmimi Vlera SQL stored procedura e shtuar sht KrijoPorosi.
Vetit tjera Primary key & identity column Primary key nuk lejohen null values nuk lejohen null values nuk lejohen null values ([Sasia]*[Cmimi])
CREATE PROCEDURE KrijoPorosi (@IDShporta char(36), @IDKlienti uniqueidentifier ) AS /* Inserto rekord te ri ne tabelen Porosite */ DECLARE @IDPorosia int INSERT INTO Porosite (IDKlienti) VALUES (@IDKlienti) /* Ruaje ID-ne e re te prosise */ SET @IDPorosia = @@IDENTITY /*Futi detajet e porosise ne tabelen PorosiDetajet */ INSERT INTO PorosiDetajet (IDPorosia, IDProdukti, Artikulli, Sasia, Cmimi) SELECT @IDPorosia, Produktet.IDProdukti, Produktet.Emri, ShportaBlerese.Sasia, Produktet.Cmimi FROM Produktet JOIN ShportaBlerese ON Produktet.IDProdukti= ShportaBlerese.IDProdukti WHERE ShportaBlerese.IDShporta = @IDShporta /* Pastro shporten e blerjes */ DELETE FROM ShportaBlerese WHERE IDShporta = @IDShporta /* kthe ID-ne e prorosise */ SELECT @IDPorosia
Faqja 58
Fig.4.22 Porosit.aspx
Faqja 59
4.4 TESTIMI
Dy shtje bazike n testimin e softuerit jan: (1) far test procedura t prdoren(test case selection), dhe (2) sa test procedura jan t nevojshme, (kriteri i ndaljes(stopping criterion)).Zgjedhja e test procedurs mund t bazohet ose n specifikacione (funksional), strukturn e kodit (struktural), rrjedhjen e informatave (data flow), ose zgjedhja e rastsishme (random) e test procedurs.Si do q t jet ne jemi prcaktuar pr test procedurn sipas rrjedhjes s informatave (data flow). TEST PROCEDURA:Porositja e artikujve Prshkrimi:Kjo procedur bn porositjen e artikujve nga ana e klientit, pra duke br porosin pr artikujt e zgjedhur. Input:Klienti, Fjalkalimi Output:Statusi i porosis ndryshon, pra porosia hyn n fazn fillestare t procesimit, futet nj rekord n baz t shnimeve, prkatsisht n tabeln Porosit dhe PorosiDetajet, s bashku me artikujt e regjistruar n at porosi. Dshtimi:Nse nuk arrihen rezultatet e cekura m sipr, procedura dshton. Nr. 1. Aksioni Klienti kyqet Rezultati Pasi t jep username-in dhe fjalkalimin korrekt, klienti kyqet n sistem Artikujt e zgjedhur regjistrohen n shportn e blerjes Hapet faqja ShportaBlerjes.aspx Vrejtje
2. 3.
Klienti shfleton dhe zgjedh artkujt e dshiruar Klikohet linku Shporta e blerjes, apo shiko detajet Shtypet butoni Porosit artikujt
4.
5.
Ktu klienti ka mundsin q t ndryshoj sasin e artikujve Klienti drejtohet n Nse klienti nuk sht faqen Porosia.aspx, e kyqur paraprakisht, ai cila prmban detajet drejtohet n faqen rreth porosis dhe Login.aspx, ku mund detajet e klientit t logohet, apo t regjistrohet nse ende nuk sht regjistruar Klienti drejtohet n Klienti ka mundsin faqen q t editoj dhe ti PorosiaKonfirmuar.aspx ndryshoj t dhnat personale.
Faqja 60
4.5
MENAGJIMI I PROJEKTIT
Menagjimi projektit merret me planifikimin, kontrollin dhe dirigjimin e projekteve ku bhet rishikimi dhe evaluimi i kohs totale q prafrsisht do t merrte implementimi i projektit. Edhe pse sht br definimi i aktiviteteve n koh, shpeshher nevojitet q t bhet rikthimi n fazat m hershme pr korrigjuar ndonj gabim, apo pr t plotsuar ndonj lshim eventual q sht br Prandaj si rrjedhoj e ksaj na sht imponuar q ti prmbahemi modelit spiral t cekur msipr(shih Modeli spiral n fq.11 ) . Rrjedha e menagjimit t projektit q nga anliza e deri te testimi dhe lansimi i projektit pasqyrhet m s miri me ndihmn e diagrameve prkatse si WBS(Work Breakdown Structure), PERT(Program Evolution and Review Techniques), GANTT diagramet e kshtu me rradh.N vijim do t shohim implementimin konkret t ktyre diagrameve n ECS sistem.
2.Analiza e projektit
3.Planifikimi(Dizajnimi)
4.Implementimi 5.Testimi
Faqja 61
Faqja 62
GANTT diagramet
Faqja 63
KAPITULLI 5
REZULTATET
5.1
PJESA E KLIENTIT
Procedura e funksionimit t pjess s klientit sht si vijon: Me hapjen e web aplikacionit klientit i shfaqet faqja kryesore e aplikacionit Default.aspx n t ciln afishohen produktet q jan n promocion katalogu:
Ktu klienti ka kto mundsi: Mund t fus menjher artikuj t dshiruar n shport, Mund t logohet apo t regjistrohet nse ve nuk e ka br nj gj t till, Mund t shfletoj m tutje npr departamente dhe kategori. Po e zm se klienti zgjedh p.sh. departamentin e kompjuterve.Klenti do t drejtohet n faqen KataloguProdukteve.aspx me kategorit prkatse pr departamentin e zgjedhur.
Faqja 64
Edhe ktu klienti mund t shfletoj npr faqe t ndryshme dhe t shoh detajet pr nj artikull t caktuar.N kt moment i shfaqet faqja ProduktDetajet.aspx me detajet pr produktin e zgjedhur.
Faqja 65
Prmes butonave prkats klienti mund t fus artikullin e zgjedhur n shport apo t vazhdoj m tutje me blerje. Fillimisht shporta e blerjes sht e zbrazt(shih fig.5.3).Me futjen e ndonj artikulli n shport shporta blerjes tregon detajet e nevojshme.
Tani klienti mund t drejtohet n ShportaBlerjes.aspx prmes dy linqeve: prmes linkut ShportaArtikujve q gjendet n User info kontroll, apo prmes linkut shiko detajet, n figurn e msiprme:
Ktu klienti ka kto mundsi: Mund t fshij artikullin nga shporta, T ndryshoj sasin e artikujve, T vazhdoj m tutje me blerje, Apo prfundimisht ti porosit artikujt.
Faqja 66
Me shtypjen e butonit Porosit Artikujt, klienti nse sht i loguar do t drejtohet n faqen Porosit.aspx e cila prmban detajet rreth artikujve t porositur dhe informatave rreth klientit.N rastin tjetr klienti do t drejtohet n faqen Login.aspx ku mund t logohet apo t regjistrohet:
Faqja 67
Tani klientit i mbetet vetm q t shtyp butonin Konfirmo Porosin, dhe klienti do t marr mesazhin prkats. Vlen t ceket se pas logimit klienti prmes linkut Edito detajet mund ti editoj dhe ndryshoj informatat personale.
Ktu klienti mund ti modifikoj t dhnat personale dhe ti ruaj ndryshimet eventuale apo thjesht t anuloj ndryshimet e bra.
Faqja 68
KAPITULLI 6
PRFUNDIM
6.1
KONTRIBUTET
Kontributi kryesor n kt punim sht adoptimi i teknikave t Inxhinieris Softuerike n zhvillimin e web-based aplikacioneve me fokus t veant n E-Commerce aplikacionet, si dhe zhvillimi i tyre n platformn ASP.NET.E tra kjo, ilustron aplikimin e hapave disiplinor t Inxhinieris Softuerike e cila shrben si nj prgjigje ndaj zhvillimit kaotik t web aplikacioneve, t cilat morn hov dekadn e kaluar. Edhe nj tjetr kontribut q e vlen t prmendet sht aplikimi i A3SH(arkitektura me tri shtresa) n zhvillimin e aplikacionit.Ndarja e funksionalitetit t aplikacionit sipas ksaj arkitekture lehtson dhe konkretizon n mas t konsiderueshme krkesat dhe zhvillimin e aplikacionit. Pasi q, qllimi final i vet Inxhinieris Softuerike sht arritja e nj produkti funksional, padyshim se kontributi kryesor sht vet zhvillimi i aplikacionit.Por, si do produkt, edhe ky aplikacion ka prparsit dhe mangsit e veta. Prparsia themelore e ktij aplikacioni qndron n faktin se ky aplikacion paraqet brthamn se si bhet zhvillimi i E-Commerce aplikacioneve n ASP.NET 2.0.Kurse prparsit tjera jan: Sa i prket ans s klientit ky aplikacioni ka nj UI shum t thjesht dhe funksional pr t manipuluar me t.Kjo sht arritur duke iu falenderuar web user kontrollave q ofron ASP.NET, me t cilat arrihet ruajtja e konsistencs s aplikacionit. Edhe pjesa administrative e aplikacionit sht mjaft e leht pr t manipuluar.sht shum funksionale, e qart dhe mundson nj mirmbajtje efikase t aplikacionit. Nj prparsi tjetr sht edhe mnyra se si sht zgjidhur problemi i faqimit(shfletimi i produkteve faqe pr faqe).Kt e mundson aplikimi i A3SH, ku faqimi i sht br n nivelin e data tier.Kjo ka ndikim t madh n performansn e aplikacionit, sepse kjo mundson ekstraktimin e vetm t nj faqeje nga databaza. Kurse sa i prket mangsive t aplikacionit edhe ky aplikacion ka mangsit dhe lshime eventuale. Mangsit mund t jen ndryshme varsisht nga kndvshtrimi i kritikuesit.
6.2
PRVOJAT E FITUARA
Prvojat dhe msimet e fituara gjat zhvillimit t ktij punim mund t prmblidhen n dy aspekte t prgjithsuara: Njri aspekt ka t bj me disiplinn e Inxhinieris softuerike.Ky punim m ka ndihmuar q ti kuptoj m mir hapat dhe modelet e Inxhinieris softuerike dhe aplikimin e tyre konkret n zhvillimin e web aplikacioneve.Kam arritur t kuptoj se ka vrtet krkohet n secilin t inxhinierimit t aplikacioneve dhe krahasimin e modeleve t inxhinieris softuerike. Kurse aspekti tjetr ka t bj me zhvillimin e E-Commerce aplikacioneve n nj platform relativisht t re si sht ASP.NET.Kjo m mundsuar q t kuptoj teknikat t cilat ofron
Faqja 69
ASP.NET n zhvillimin e web aplikacioneve, si dhe proceset npr t cilat kalon nj aspx. faqe, gjersa arrin n web browserin e klientit.Nj prvoj e shklqyer sht poashtu aplikimi i A3SH(arkitektura me tri shtresa).
6.3
DETYRAT E ARDHSHME
Esenca e ktij punimi ishte aplikimi i disiplins s Inxhinieris Softuerike n zhvillimin e web aplikacioneve.Edhe pse Inxhinieria Softuerike sht nj disiplin relativisht e re, zhvillimi i web aplikacioneve sht edhe m i vonshm.Edhe pse Inxhinieria softuerike mbulon edhe industrin e web aplikacioneve, ajo n disa aspekte ka mangsi q i krkojn web aplikacionet, sidomos kur sht fjala pr vizualizimin e web skenareve t ndryshme.Prandaj sht par si e domosdoshme q n kuadr t inxhinieris softuerike t futet nj nn disiplin pr inxhinierimin e web-based aplikacioneve q do t mbulonte kto mangsi.Dhe, pasiq web-based aplikacionet kan marr primatin kundrejt desktop aplikacioneve tradicionale kjo displin (Web inxhinierimi), u pavarsua nga Inxhinieria softuerike, dhe tani sht nj disiplin n vete.Autor t njohur kan botuar enkas libra pr kt disiplin si sht Roger S. Pressman me librin e tij Web Engineering. Prandaj, si sfid e ardhshme mbetet aplikimi i ksaj disipline t re n zhvillimin e ktij aplikacioni. Kurse sa i prket vet aplikacionit, ekziston shqyrtimi i mundsis q ky aplikacion t shndrrohet n nj produkt komercial.P.sh. ekziston mundsia q ky aplikacion t shndrrohet n nj aplikacion pan shqiptar, ku audienca do t prfshinte t gjitha trojet etnike shqiptare ku klientt do t mund t shesin dhe t blejn artikuj t ndryshm prmes ktij web aplikacioni.
Faqja 70
LITERATURA
[1] Artan Dermaku, Mr.Sc.: Inxhinierim Softueri(skripte).2007. [2] David A. Gustafson, Ph.D.:Theory and Problems of Software Engineering.McGraw- Hill, 2002. [3] Roger S. Pressman, Ph.D.:Software Engineering, A practitioners approach.McGraw-Hill, 2001. [4] Cristian Darie & Karli Watson.Beginning ASP.NET 2.0 E-Commerce in C#, from novice to professional.Apress, 2006. [5] Mathew MacDonald. Beginning ASP.NET 2.0 in C#, from novice to professional.Apress, 2006. [6] Doug Lowe.ASP.NET 2.0 Everyday Apps for Dummies.Wiley Publishing, Inc, 2006. [7] Joseph Schmuller.Teach Yourself UML in 24 hours, Third Edition.Sams Publishing, 2004.
Faqja 71
Filename: TemaEDiploms Directory: C:\Users\ilo\Documents Template: C:\Users\ilo\AppData\Roaming\Microsoft\Templates\Normal.dotm Title: Subject: Author: Keywords: Comments: Creation Date: 1/6/2009 6:41:00 PM Change Number: 71 Last Saved On: 1/25/2009 1:00:00 PM Last Saved By: ilo Total Editing Time: 5,945 Minutes Last Printed On: 1/25/2009 1:12:00 PM As of Last Complete Printing Number of Pages: 71 Number of Words: 15,797 (approx.) Number of Characters: 90,049 (approx.)