Бағдарламалық жасақтамада көлденең мәселелер – бірнеше модульге әсер ететін, бірақ олардың бірінде оқшауланбайтын жүйелік бөліктер. Дубликаттауды, байланыстыруды болдырмауға көмектеседі.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
Аспектке бағытталған бағдарламалық жасақтаманы әзірлеуде, қиылысқан мәселелер – бағдарламаның бірнеше модуліне әсер ететін, бірақ олардың ешқайсысына толыққанды енгізілмейтін аспектілер. Мұндай мәселелерді жүйенің қалған бөліктерінен жобалау және іске асыру кезінде таза бөліп қарастыру мүмкін емес, соның салдарынан кодтың қайталануы (шашырау), жүйелер арасындағы күшті байланыс (түйісу) немесе екеуі де пайда болуы мүмкін. Мысалы, медициналық жазбаларды өңдейтін қосымша жасау кезінде, мұндай жазбаларды индекстеу – негізгі мәселе болып табылады, ал жазбалар базасының немесе пайдаланушылар базасының өзгерістерінің тарихын тіркеу, немесе қолданушыны сәйкестендіру жүйесі – қиылысқан мәселелер болып есептеледі, себебі олар бағдарламаның көп бөлігімен өзара әрекеттеседі.
In aspect oriented software development, cross cutting concerns are aspects of a program that affect several modules, without the possibility of being encapsulated in any of them. These concerns often cannot be cleanly decomposed from the rest of the system in both the design and implementation, and can result in either scattering (code duplication), tangling (significant dependencies between systems), or both. For instance, if writing an application for handling medical records, the indexing of such records is a core concern, while logging a history of changes to the record database or user database, or an authentication system, would be cross cutting concerns since they interact with more parts of the program.
Өмірбаян
Крос-секинг мәселелері – бағдарламаның көптеген басқа бөліктеріне тәуелді немесе оларға әсер етуі тиіс бөліктері. Олар аспектілерді жасаудың негізін құрайды. Мұндай кросс-секинг мәселелері объектіге бағытталған немесе процедуралық бағдарламалауға жарамсыз. Крос-секинг мәселелері бағдарлама ішінде араласуға немесе жүйелік өзара байланысқа тікелей себеп болуы мүмкін. Процедуралық және функционалдық тіл құрылымдары процедура шақыруларынан ғана тұратындықтан, екі мақсатты (іске асырылатын мүмкіндік және осыған байланысты кросс-секинг мәселесі) бірдей қарастыруға болатын ешқандай мүмкіндік жоқ. Осының салдарынан, кросс-секинг мәселесін шешетін код әртүрлі байланысты жерлерде шашыраңқы болып таралуы немесе қайталанып жазылуы керек, бұл модульділіктің жоғалуына әкеледі. Дизайнды кросс-секинг мәселелеріне негіздеу арқылы бағдарламалық инженерияның артықшылықтарына модульділік және оңай күтім кіреді.
Cross cutting concerns are parts of a program that rely on or must affect many other parts of the system. They form the basis for the development of aspects. Such cross cutting concerns do not fit cleanly into object oriented programming or procedural programming. Cross cutting concerns can be directly responsible for tangling, or system inter dependencies, within a program. Because procedural and functional language constructs consist entirely of procedure calling, there is no semantic through which two goals (the capability to be implemented and the related cross cutting concern) can be addressed simultaneously. As a result, the code addressing the cross cutting concern must be scattered, or duplicated, across the various related locations, resulting in a loss of modularity. By basing designs on cross cutting concerns, software engineering benefits can include modularity and simplified maintenance.