Programmalıq injiniring

Programmalıq injiniring (Programmalıq támiynat injeneriyası) - programmalıq támiynattı jaratıwǵa tiykarlanǵan injenerlik usıl.[1] Programmalıq támiynat injeneri - bul kompyuter programmalıq támiynatın proektlestiriw, jaratıw, testlew, qollaw hám bahalaw ushın injenerlik proektlestiriw procesin qollanatuǵın adam. Baǵdarlamashı (programmist) termini geyde sinonim retinde paydalanıladı, biraq dizaynnan góre programmalıq támiynattı ámelge asırıwdı atap kórsetiwi múmkin, sonıń menen qatar injenerlik bilim yamasa kónlikpelerdiń konnotaciyaları bolmawı múmkin.[2]

Injenerlik usıllar programmalıq támiynattı jaratıw procesin informaciyalastırıw ushın qollanıladı,[3] programmalıq támiynattıń ómirlik ciklı procesiniń ózin anıqlawdı, kirgiziwdi, bahalawdı, ólshewdi, basqarıwdı, ózgertiwdi hám jetilistiriwdi qamtıydı. Ol programmalıq qural konfiguraciyasın basqarıwdı kóp paydalanadı,[3] ol konfiguraciyadaǵı ózgerislerdi sistemalı túrde baqlaw hám sistemanıń ómirlik ciklı dawamında konfiguraciya menen kodtıń tutaslıǵı menen qadaǵalanıw imkaniyatın saqlaw tuwralı. Zamanagóy procesler programmalıq támiynat versiyasın qollanadı.

1960 jıllardan baslap programmalıq támiynat injiniringniń ózine tán túri retinde qarastırıldı. Sonıń menen qatar,  programmalıq injiniringdi rawajlandırıw gúres retinde qarastırıldı. Programmalıq támiynat ushın kóplegen qıyınshılıqlar payda etken informaciyalıq qurallar menen jumıs islew qıyın edi. Mashqalalardıń qatarına byudjetten asıp ketken, belgilengen múddetten ótip ketken, keń kólemli qayta islewdi hám texnikalıq xızmet kórsetiwdi talap etetuǵın hám tutınıwshılardıń mútájliklerin sátsiz qanaatlandıratuǵın yamasa hátte tamamlanbaǵan programmalıq qural kirdi.

Programmalıq injiniring termininiń kelip shıǵıwı hár túrli derekler menen baylanıslı. Bul termin 1965 jıl iyunda “Kompyuter hám avtomatika” basılımında kompaniyalar usınatuǵın xızmetler diziminde payda boldı[4] hám ACM prezidenti Entoni A. Ottingerdiń 1966 jıl avgusttaǵı Communications of ACM shıǵarılımında (9-tom, № 8) ACM aǵzalıǵına xatta rásmiy túrde qollanıldı.[5][6] Margaret Gamilton Apollon missiyalarında “programmalıq injiniring” pánin olardıń islep atırǵanın nızamlı qılıw ushın sáwlelendirdi.[7] Sol waqıtlarda “programmalıq támiynat daǵdarısı” boldı esaplandı.[8] Programmalıq injiniring boyınsha 40-xalıqaralıq konferenciya (ICSE 2018) Frederik Brukstıń plenarlıq sessiyasınıń tiykarǵı bayanatları menen “Programmalıq injiniring” 50 jıllıǵın atap ótti[9] hám Margaret Gamilton menen.[10]

Anıqlamalar hám terminologiya

redaktorlaw

Programmalıq injiniringniń zárúr anıqlamalarına tómendegiler kiredi:

  • “Ilimiy hám texnologiyalıq bilimlerdi, metodlardı hám tájiriybeni programmalıq támiynattı proektlestiriwge, engiziwge, testlewge hám hújjetlestiriwge sistemalı túrde qollanıw” — Miynet statistikası byurosı— IEEE sistemaları hám programmalıq injiniring — Sózlik
  • “Programmalıq támiynattı jaratıwǵa, paydalanıwǵa hám qollanıwǵa sistemalı, tártipli, sanlı usıldı qollanıw” — IEEE standart Glossariy programmalıq injiniring terminologiyası
  • “programmalıq támiynat ónirisiniń barlıq aspektlerine baylanıslı injenerlik pán” - Yan Sommervill[11]
  • “anıq mashinalarda isenimli hám ónimli jumıs isleytuǵın programmalıq támiynattı únemli etiw ushın isenimli injenerlik principlerdi dúziw hám paydalanıw” - Fric Bauer[12]
  • “Quramalı kompyuter programmaların proektlestiriw, engiziw hám xızmet kórsetiw menen shuǵıllanatuǵın informatika tarawı” — Merriam-Vebster[13]
  • “Programmalıq injiniring” tek kod jazıw aktin ǵana emes, al waqıttıń ótiwi menen kodtı jaratıw hám qollaw ushın shólkem qollanatuǵın barlıq qurallar menen proceslerdi qamtıydı. [...] Programmalıq injiniringdi “waqıt boyınsha integraciyalasqan programmalastırıw” retinde qarastırıwǵa boladı. '"—Google-daǵı programmalıq injiniring.[14]

Al tómendegi terminler rásmiy túrde az qollanılǵan:

  • aldın kompyuter programmalastırıw hám sistemalı analiz dep atalatuǵın xızmettiń keń kólemine arnalǵan rásmiy emes zamanagóy termin retinde;[15]
  • formal túrde informatikanıń kishi pán retinde izertlenetuǵın kompyuter programmalastırıw teoriyasına qarsı kompyuter programmalastırıw tájiriybesiniń barlıq aspektlerine arnalǵan keń termin retinde;[16]
  • kompyuter programmalastırıwǵa belgili bir usıldı úgitlewdi qamtıytuǵın termin retinde, onı kórkem óner yamasa qol óner emes, injenerlik pán retinde qarastırıwǵa shaqıradı hám usınılǵan tájiriybelerdi kodifikaciyalawdı jaqlaydı.[17]

Keń kólemli proektlerdegi wazıypalar

redaktorlaw

Programmalıq támiynat talapları

redaktorlaw

Talaplar injiniringi programmalıq támiynatqa qoyılatuǵın talaplardı anıqlaw, analizlew, specifikaciyalaw hám validaciyalaw bolıp tabıladı. Programmalıq támiynatqa qoyılatuǵın talaplar úsh túrli bolıwı múmkin. Funkcional talaplar, funkcional emes talaplar hám domen talapları bar. Programmalıq támiynattıń jumısı orınlanıp, paydalanıwshı paydalanıwı ushın tiyisli nátiyje kútiliwi kerek. Funkcional emes talaplar portativlik, qáwipsizlik, texnikalıq xızmet kórsetiw, isenimlilik, masshtablaw, ónimlilik, qayta paydalanıw hám iykemlilik sıyaqlı máseleler menen shuǵıllanadı.Olar tómendegi túrlerge bólinedi: interfeys sheklewleri, ónimlilik sheklewleri (mısalı, juwap beriw waqtı, qáwipsizlik, saqlaw keńisligi h.t.b.), operaciyalıq sheklewler, ómirlik cikl sheklewleri (texnikalıq xızmet kórsetiw, tasıw h.t.b.) hám ekonomikalıq sheklewler. Sistemanıń yamasa programmalıq quraldıń qalay jumıs isleytuǵının biliw, jumıs islemeytuǵın talaplardı kórsetiw kerek. Domen talapları belgili bir kategoriyanıń yamasa proekttiń domen xarakteristikası menen baylanıslı.[18]

Programmalıq támiynat dizaynı

redaktorlaw

Programmalıq támiynat dizaynı sistemanıń yamasa komponent arxitekturasın, komponentlerin, interfeyslerin hám basqa xarakteristikaların anıqlaw procesi. Bul programmalıq támiynat arxitekturası dep te ataladı. Programmalıq támiynat dizaynı úsh túrli dizayn dárejesine bólinedi. Úsh dáreje - interfeys dizaynı, arxitekturalıq dizayn hám tolıq dizayn. Interfeys dizaynı - bul sistema menen onıń ortalıǵınıń óz-ara háreketlesiwi.Bul sistemanıń ishki jumısı menen qatar abstrakciyanıń joqarı dárejesinde júz beredi. Arxitekturalıq dizayn sistemanıń tiykarǵı komponenti menen hám olardıń minnetleri, qásiyetleri, interfeysleri hám olardıń arasındaǵı baylanıslar menen óz-ara háreketlesiwi menen baylanıslı. Tolıq dizayn - bul sistemanıń barlıq komponentleriniń ishki elementleri, olardıń qásiyetleri, qarım-qatnasları, qayta islew hám ádette olardıń algoritmleri menen maǵlıwmatlar strukturaları.[19]

Programmalıq támiynat qurılısı (konstrukciyası)

redaktorlaw

Programmalıq támiynat konstrukciyasın islep shıǵıwdıń tiykarǵı xızmeti,[3] dizayndı ámelge asırıw ushın programmalastırıw, birlik testlew, integraciyalıq testlew hám qayta islewdiń úylesimi bolıp tabıladı. Bul basqıshtaǵı testlewdi ádette baǵdarlamashı programmalıq támiynat jaratıp atırǵanda, jańa ǵana jazılǵanın tekseriw hám kodtıń keyingi adımǵa qashan jiberiletuǵının anıqlaw ushın orınlaydı. 

Programmalıq támiynattı testlew

redaktorlaw

Programmalıq támiynattı testlew[3] - bul birlikti testlew hám integraciyalıq testlew sıyaqlı hártúrli usıllar menen testlenetuǵın ónimniń yamasa xızmettiń sapası tuwralı mápli táreplerdi informaciya menen támiyinlew ushın alıp barılatuǵın empirikalıq, texnikalıq izertlew. Bul programmalıq támiynat sapasınıń bir aspekti. Programmalıq támiynattı jaratıwdıń jeke basqıshı retinde onı ádette sapanı támiyinlew xızmetleri yamasa kodtı jazǵannan basqa islep shıǵarıwshı orınlaydı.

Programmalıq támiynattı analizlew

redaktorlaw

Programmalıq támiynattı analizlew - ónimlilik, bekkemlik hám qáwipsizlik sıyaqlı qásiyetke baylanıslı kompyuter programmalarınıń háreketin analizlew (tallaw) procesi. Ol programmanı orınlamastan (statikalıq baǵdarlamanı analizlew), orınlanıw waqtında (dinamikalıq programma analizi) yamasa ekewiniń kombinaciyasında orınlanıwı múmkin.

Programmalıq támiynatqa texnikalıq xızmet kórsetiw

redaktorlaw

Programmalıq támiynatqa texnikalıq xızmet kórsetiw[3] programmalıq qural ónimin jóneltkennen keyin únemli qollaw ushın zárúr háreketlerdi bildiredi. Programmalıq támiynatqa texnikalıq xızmet kórsetiw - qátelerdi óshiriw hám onıń jumısın jaqsılaw ushın tarqatıwdan keyin programmalıq qural qollanbaların ózgertiw hám jańalaw. Programmalıq támiynattıń haqıyqıy dúnya menen kóp baylanısı bar hám haqıyqıy dúnya ózgergende programmalıq támiynatqa texnikalıq xızmet kórsetiw talap etiledi.[20]

Citatalar

redaktorlaw
  1. ACM. „Computing Degrees & Careers“. ACM (2007). Qaraldı: 23-noyabr 2010-jıl.
  2. „Programmers: Stop Calling Yourselves Engineers“. The Atlantic (5-noyabr 2015-jıl).
  3. 3,0 3,1 3,2 3,3 3,4 „Software Engineering Body of Knowledge (SWEBOK Version 3), 2014“ (pdf). www.swebok.org. IEEE Computer Society. Qaraldı: 24-may 2016-jıl. Silteme kórsetiwdegi qátelik: Invalid <ref> tag; name "swebookv3" defined multiple times with different content
  4. „Computers and Automation: The Computer Directory and Buyers' Guide, 1965“. bitsavers.org. Qaraldı: 15-iyul 2023-jıl.
  5. President's Letter to the ACM Membership. 
  6. „The origin of "software engineering"“ (4-aprel 2013-jıl). Qaraldı: 17-noyabr 2017-jıl.
  7. Software Magazine. „What to Know About the Scientist who Invented the Term "Software Engineering"“. 24-noyabr 2018-jılda túp nusqadan arxivlendi. Qaraldı: 12-fevral 2019-jıl.
  8. Randell. „The 1968/69 NATO Software Engineering Reports“. Brian Randell's University Homepage. The School of the Computer Sciences, Newcastle University (10-avgust 2001-jıl). — „The idea for the first NATO Software Engineering Conference, and in particular that of adopting the then practically unknown term "software engineering" as its (deliberately provocative) title, I believe came originally from Professor Fritz Bauer.“. Qaraldı: 11-oktyabr 2008-jıl.
  9. 2018 International Conference on Software Engineering celebrating its 40th anniversary, and 50 years of Software engineering. „ICSE 2018 – Plenary Sessions – Fred Brooks“. YouTube. Qaraldı: 9-avgust 2018-jıl.
  10. 2018 International Conference on Software Engineering celebrating its 40th anniversary, and 50 years of Software engineering. „ICSE 2018 – Plenary Sessions – Margaret Hamilton“. YouTube. Qaraldı: 9-avgust 2018-jıl.
  11. Sommerville, Ian „1.1.2 What is software engineering?“,. Software Engineering, 8th, Harlow, England: Pearson Education, 2007 — 7 bet. ISBN 978-0-321-31379-9. „Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification to maintaining the system after it has gone into use. In this definition, there are two key phrases:
    1. Engineering discipline Engineers make things work. They apply theories, methods and tools where these are appropriate [. . .] Engineers also recognize that they must work to organizational and financial constraints. [. . .]
    2. All aspects of software production Software engineering is not just concerned with the technical processes of software development but also with activities such as software project management and with the development of tools, methods and theories to support software production.“
     
  12. Software Engineering. pp. 530–538. 
  13. „Definition of SOFTWARE ENGINEERING“ (en). www.merriam-webster.com. Qaraldı: 25-noyabr 2019-jıl.
  14. Winters, Titus „Preface, Programming Over Time“,. Software Engineering at Google. O'Reilly Media, Inc., 2020 — xix–xx, 6–7 bet. ISBN 978-1-492-08279-8. „We propose that “software engineering” encompasses not just the act of writing code, but all of the tools and processes an organization uses to build and maintain that code over time. What practices can a software organization introduce that will best keep its code valuable over the long term? How can engineers make a codebase more sustainable and the software engineering discipline itself more rigorous?“ 
  15. Akram I. Salah. „Engineering an Academic Program in Software Engineering“. 35th Annual Midwest Instruction and Computing Symposium (5-aprel 2002-jıl). Qaraldı: 13-sentyabr 2006-jıl.
    "For some, software engineering is just a glorified name for programming. If you are a programmer, you might put 'software engineer' on your business card—never 'programmer' though."
  16. Mills, Harlan D., J. R. Newman, and C. B. Engle, Jr., "An Undergraduate Curriculum in Software Engineering," in Deimel. Software Engineering Education: SEI Conference 1990, Pittsburgh, Pennsylvania, USA, April 2–3,.... Springer. ,p. 26: "As a practical matter, we regard software engineering as the necessary preparation for the practicing, software development and maintenance professional. The Computer Scientist is preparing for further theoretical studies..."
  17. David Budgen. „Realizing Evidence-based Software Engineering“ (14-dekabr 2004-jıl). 17-dekabr 2006-jılda túp nusqadan arxivlendi. Qaraldı: 18-oktyabr 2006-jıl.
    "We believe that software engineering can only advance as an engineering discipline by moving away from its current dependence upon advocacy and analysis,...."
  18. „Software Engineering | Classification of Software Requirements“ (en-us). GeeksforGeeks (19-iyun 2018-jıl). Qaraldı: 6-may 2021-jıl.
  19. „Software Engineering | Software Design Process“ (en-us). GeeksforGeeks (24-may 2019-jıl). Qaraldı: 6-may 2021-jıl.
  20. „What is Software Maintenance? Definition of Software Maintenance, Software Maintenance Meaning“. The Economic Times. Qaraldı: 6-may 2021-jıl.

Qosımsha oqıw

redaktorlaw
  • Guide to the Software Engineering Body of Knowledge (SWEBOK Guide): Version 3.0, Pierre Bourque, Richard E. Fairley (eds.), IEEE Computer Society, 2014. ISBN 978-0-7695-5166-1. 
  • Software Engineering: A Practitioner's Approach. McGraw-Hill. ISBN 978-0-07-337597-7. 
  • Software Engineering. Pearson Education. ISBN 978-0-13-703515-1. 
  • An Integrated Approach to Software Engineering. Springer. ISBN 978-0-387-20881-7. 
  • Object-oriented software engineering : using UML, patterns, and Java. Prentice Hall. ISBN 978-0-13-606125-0. 
  • Software engineering for embedded systems : methods, practical techniques, and applications. Kidlington, Oxford, United Kingdom, 2019-06-21. ISBN 978-0-12-809433-4.