Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
Жүйенің тұжырымдамалық моделі
Conceptual model of a system
Жүйе архитектурасы – жүйенің құрылымын, мінез-құлқын және оның басқа да аспектілерін анықтайтын тұжырымдамалық модель. Архитектура сипаттамасы – жүйе құрылымы мен мінез-құлқы туралы қорытынды жасауға мүмкіндік беретіндей етіп ұйымдастырылған жүйе туралы ресми сипаттама және бейнелеу. Жүйе архитектурасы жүйе компоненттерінен және жалпы жүйені іске асыру үшін бірлесіп жұмыс істейтін дамытылған кіші жүйелерден тұруы мүмкін. Жүйе архитектурасын сипаттау үшін тілдерді ресмилендіруге бағытталған әрекеттер болды, олар жиынтығы архитектуралық сипаттау тілдері (ADL) деп аталады.
A system architecture is the conceptual model that defines the structure, behavior, and more views of a system. An architecture description is a formal description and representation of a system, organized in a way that supports reasoning about the structures and behaviors of the system. A system architecture can consist of system components and the sub systems developed, that will work together to implement the overall system. There have been efforts to formalize languages to describe system architecture, collectively these are called architecture description languages (ADLs).
Тарих
Жүйелік архитектура мыңдаған жылдар бойы көптеген басқа салаларда дамыған тәжірибелер мен әдістерге күшті тәуелді, мүмкін ең маңыздысы – азаматтық архитектура. Цифрлық компьютерлер пайда болғанға дейін электроника және басқа да инженерлік салалар «жүйе» терминін қазіргі күні де кеңінен қолданылатын мағынасында қолданған. Алайда, цифрлық компьютерлердің пайда болуымен және бағдарламалық жасақтаманы жеке сала ретінде дамытумен, жасалған аппараттық құралдарды, бағдарламалық құралдарды және олардың біріктірілген түрлерін ажырату қажет болды. Бағдарламаланатын аппараттық құрал немесе компьютерлік бағдарламасы жоқ есептеу машинасы әрекетсіз; тіпті бағдарламалық құрал немесе бағдарлама да, егер ол тиісті (аппараттық) машинаның күйлерін өзгертуге қолданылмаса, әрекетсіз болады. Дегенмен, аппараттық машина мен оның бағдарламалауы шексізге жуық абстрактілі және физикалық міндеттерді орындау үшін құрастырылуы мүмкін. Осылайша, компьютерлік және бағдарламалық жасақтамалық инженерияда (сондай-ақ, байланыс сияқты басқа инженерлік салаларда) «жүйе» термині пайдалы функцияны орындау үшін қажетті барлық элементтерді (әдетте аппараттық және бағдарламалық қамтамасыз етуді) қамтитын ретінде анықталды. Сәйкесінше, осы инженерлік салаларда жүйе әдетте бағдарламаланатын аппараттық машинаны және оның құрамындағы бағдарламаны білдіреді. Жүйелік инженер – бұл толық құрылғымен, аппараттық және бағдарламалық қамтамасыз етумен, сондай-ақ құрылғының барлық интерфейстерімен, оның ішінде аппараттық және бағдарламалық қамтамасыз ету арасындағы, әсіресе толық құрылғы мен оның пайдаланушысы (АІТ) арасындағы байланыспен айналысатын маман. Аппараттық инженер көбінесе тек аппараттық құрылғымен, ал бағдарламалық инженер көбінесе тек компьютерлік бағдарламамен айналысады. Ал жүйелік инженер бағдарламаның аппараттық құрылғыда дұрыс жұмыс істей алатынын, және екі құралдан тұратын жүйенің сыртқы ортамен, әсіресе пайдаланушымен дұрыс өзара әрекеттесе алатынын және оның мақсатына сәйкес функциясын орындай алатынын қамтамасыз етуге жауапты. Жүйелік архитектура бағдарламалық және аппараттық құралдардың элементтерін пайдаланады және мұндай біріктірілген жүйені жобалауға мүмкіндік береді. Жақсы архитектураны «бөлу схемасы» немесе алгоритм ретінде қарастыруға болады, ол жүйенің қазіргі және болашақтағы барлық талаптарын жұмыс істейтін, анық шектелген қосалқы жүйелерге бөледі, ештеңе артық қалмайды. Яғни, бұл бөлу схемасы эксклюзивті, инклюзивті және толыққанды болады. Бөлудің басты мақсаты – жүйедегі элементтерді олардың арасындағы өзара байланыстың ең аз болуын қамтамасыз ету үшін орналастыру. Бағдарламалық және аппараттық жағынан жақсы қосалқы жүйе мағыналы «объект» ретінде қарастырылады. Сонымен қатар, жақсы архитектура пайдаланушының талаптарына оңай сәйкестендіруді және пайдаланушының талаптарын тексеру сынақтарын жүргізуді қамтамасыз етеді. Идеалды жағдайда, әрбір ең кішкентай элементтен әрбір талап пен сынаққа дейін сәйкестік болуы керек.
Systems architecture depends heavily on practices and techniques which were developed over thousands of years in many other fields, perhaps the most important being civil architecture. Prior to the advent of digital computers, the electronics and other engineering disciplines used the term "system" as it is still commonly used today. However, with the arrival of digital computers and the development of software engineering as a separate discipline, it was often necessary to distinguish among engineered hardware artifacts, software artifacts, and the combined artifacts. A programmable hardware artifact, or computing machine, that lacks its computer program is impotent; even as a software artifact, or program, is equally impotent unless it can be used to alter the sequential states of a suitable (hardware) machine. However, a hardware machine and its programming can be designed to perform an almost illimitable number of abstract and physical tasks. Within the computer and software engineering disciplines (and, often, other engineering disciplines, such as communications), then, the term system came to be defined as containing all of the elements necessary (which generally includes both hardware and software) to perform a useful function. Consequently, within these engineering disciplines, a system generally refers to a programmable hardware machine and its included program. And a systems engineer is defined as one concerned with the complete device, both hardware and software and, more particularly, all of the interfaces of the device, including that between hardware and software, and especially between the complete device and its user (the CHI). The hardware engineer deals (more or less) exclusively with the hardware device; the software engineer deals (more or less) exclusively with the computer program; and the systems engineer is responsible for seeing that the program is capable of properly running within the hardware device, and that the system composed of the two entities is capable of properly interacting with its external environment, especially the user, and performing its intended function. A systems architecture makes use of elements of both software and hardware and is used to enable the design of such a composite system. A good architecture may be viewed as a 'partitioning scheme,' or algorithm, which partitions all of the system's present and foreseeable requirements into a workable set of cleanly bounded subsystems with nothing left over. That is, it is a partitioning scheme which is exclusive, inclusive, and exhaustive. A major purpose of the partitioning is to arrange the elements in the sub systems so that there is a minimum of interdependencies needed among them. In both software and hardware, a good sub system tends to be seen to be a meaningful "object". Moreover, a good architecture provides for an easy mapping to the user's requirements and the validation tests of the user's requirements. Ideally, a mapping also exists from every least element to every requirement and test.