Chapterبەش 1 · Lectureوانە 1.1
What Is Software Engineering?ئەندازیاریی نەرمەواڵە چییە؟
Why a six-line script and a program that 2,000 customers use for years are different jobs: software engineering as programming over time, its definition, why it is engineering, the 1968 NATO conference and the software crisis, Margaret Hamilton and Apollo, the Ariane 5 flight 501 and July 2024 failures, the nine quality characteristics of ISO/IEC 25010:2023, technical debt, the roles on a team, the 18 SWEBOK v4 knowledge areas, working with AI assistants in 2026, and Bazaar Cart, the app this course builds.
بۆچی شەش دێڕی و کە 2,000 کڕیار بۆ چەند ساڵ بەکاری دەهێنن دوو کاری جیاوازن: وەک بە درێژایی کات، پێناسەکەی، بۆچی ئەندازیارییە، کۆنفرانسی NATOـی 1968 و ، Margaret Hamilton و Apollo، شکستەکانی گەشتی 501ـی Ariane 5 و تەمموزی 2024، نۆ تایبەتمەندیی جۆرایەتیی ISO/IEC 25010:2023، ، ئەرکەکانی ناو تیم، 18 بواری زانینی SWEBOK v4، کارکردن لەگەڵ یاریدەدەرەکانی لە 2026دا و Bazaar Cart، ئەو ئەم کۆرسە دروستی دەکات.
What you will learnچی فێر دەبیت
- Explain the difference between programming and software engineering (time, scale, trade-offs) and the standard definition in plain words.
- Tell how the field got its name (1968, the software crisis) and what Margaret Hamilton's Apollo team did.
- Draw engineering lessons from Ariane 5 flight 501 and the July 2024 update failure.
- Name the nine quality characteristics of ISO/IEC 25010:2023 and explain technical debt with numbers.
- Describe the roles in a software team, the SWEBOK knowledge areas, and how to use AI assistants responsibly.
- جیاوازیی نێوان و (کات، قەبارە، هاوسەنگکردن) و پێناسە ستانداردەکە بە وشەی سادە ڕوون بکەیتەوە.
- بگێڕیتەوە ئەم بوارە چۆن ناوی لێ نرا (1968، ) و تیمەکەی Margaret Hamilton لە Apollo چی کرد.
- وانەی ئەندازیاری لە گەشتی 501ـی Ariane 5 و شکستی تەمموزی 2024 وەربگریت.
- نۆ تایبەتمەندیی جۆرایەتیی ISO/IEC 25010:2023 ناو ببەیت و بە ژمارە ڕوون بکەیتەوە.
- ئەرکەکانی ناو تیمێکی ، بوارەکانی زانینی SWEBOK و چۆنیەتیی بەکارهێنانی بەرپرسیارانەی یاریدەدەرەکانی وەسف بکەیت.
Six lines that work on one laptopشەش دێڕ کە لەسەر یەک لاپتۆپ کار دەکەن
Soran sells dried fruit and spices in the Sulaimani bazaar. He asks Karwan, a student, for a small program that prices an order. Karwan writes six lines of Python in one afternoon. (All prices in this course are made up, in Iraqi dinars, IQD.)
سۆران لە بازاڕی سلێمانی میوەی وشک و بەهارات دەفرۆشێت. داوا لە کاروانی خوێندکار دەکات بچووکی بۆ بنووسێت کە نرخی داواکارییەک حساب بکات. کاروان لە یەک پاشنیوەڕۆدا شەش دێڕ دەنووسێت. (هەموو نرخەکانی ئەم کۆرسە دەستکردن و بە دیناری عێراقین، IQD.)
# prices.py - Karwan's first try
def line_price(price_per_kg, grams):
return price_per_kg * grams / 1000
print(line_price(8000, 350)) # sumac, 350 g
print(line_price(8000, -200)) # a typing mistake2800.0 -1600.0
Explain the codeڕوونکردنەوەی کۆدەکە
- Lineدێڕی 2-3
Price of one line: price per kilogram × grams ÷ 1000.
نرخی یەک دێڕ: نرخی کیلۆیەک × گرام ÷ 1000.
- Lineدێڕی 5-6
Two tries: 350 g of sumac (8,000 IQD per kg), and a typing mistake, −200 g.
دوو تاقیکردنەوە: 350 گرام سماق (کیلۆی 8,000 دینار) و هەڵەیەکی تایپکردن، −200 گرام.
It runs, and the first answer looks fine. But Soran's rule says a line price is rounded up to the next 250 dinars, so the sumac should cost 3,000, not 2,800. And the typing mistake gives a negative price, −1,600, with no warning at all.
کار دەکات و یەکەم وەڵام باش دیارە. بەڵام یاسای سۆران دەڵێت نرخی هەر دێڕێک بەرەو سەرەوە دەبرێت بۆ 250 دیناری دواتر، کەواتە سماقەکە دەبێت 3,000 بێت نەک 2,800. هەروەها هەڵە تایپییەکە بێ هیچ ئاگادارکردنەوەیەک نرخێکی سالب دەدات: −1,600.
Six lines that work on one laptopشەش دێڕ کە لەسەر یەک لاپتۆپ کار دەکەن
What changes in five years?لە پێنج ساڵدا چی دەگۆڕێت؟
Now imagine the same program five years later. Soran's 2,000 customers order through it every day. Four students change its code. New rules arrive, such as free delivery and a discount. No change may break an old rule.
ئێستا هەمان پێنج ساڵ دواتر بهێنە پێش چاوت. 2,000 کڕیاری سۆران هەموو ڕۆژێک لە ڕێیەوە داوا دەکەن. چوار خوێندکار کۆدەکەی دەگۆڕن. یاسای نوێ دێن، وەک گەیاندنی بێبەرانبەر و داشکان. هیچ گۆڕانکارییەکیش نابێت یاسایەکی کۆن بشکێنێت.


Programming alone does not answer the new questions. Who decides what to build next? How do we know that everything still works after a change? How can four people change one program safely? Those are the questions of software engineering.
بەتەنیا وەڵامی پرسیارە نوێیەکان ناداتەوە. کێ بڕیار دەدات دواتر چی دروست بکرێت؟ چۆن دەزانین دوای گۆڕانکارییەک هەموو شتێک هێشتا کار دەکات؟ چوار کەس چۆن بە سەلامەتی یەک دەگۆڕن؟ ئەمانە پرسیارەکانی ن.
Programming or software engineering?بەرنامەسازی یان ئەندازیاریی نەرمەواڵە؟
A book by engineers at Google gives a short answer: software engineering is programming integrated over time. Programming makes a program work today. Software engineering keeps it working while three things grow:
کتێبێکی ئەندازیارانی Google وەڵامێکی کورت دەداتەوە: واتە بە درێژایی کات. وا لێ دەکات ئەمڕۆ کار بکات. وای لێ دەکات بەردەوام کار بکات، لە کاتێکدا سێ شت گەورە دەبن:
- Time: code may live for an hour or for twenty years, and everything around it changes: users, rules, libraries, phones.
- Scale: more people, more code and more users, so the work must be shared and checked.
- Trade-offs: every decision has a cost, such as fast now or easy to change later.
- کات: کۆد لەوانەیە کاتژمێرێک بژی یان بیست ساڵ و هەموو شتێکی دەوروبەری دەگۆڕێت: ، یاساکان، ، مۆبایلەکان.
- قەبارە: خەڵکی زیاتر، کۆدی زیاتر و زیاتر، بۆیە کارەکە دەبێت بەش بکرێت و بپشکنرێت.
- هاوسەنگکردن: هەموو بڕیارێک تێچووی هەیە، وەک ئێستا خێرا یان دواتر ئاسان بۆ گۆڕین.
Programming or software engineering?بەرنامەسازی یان ئەندازیاریی نەرمەواڵە؟
The definition, in plain wordsپێناسەکە، بە وشەی سادە
SWEBOK, the IEEE guide to the field, uses the international definition: software engineering applies a systematic (planned, step by step), disciplined (following agreed rules) and quantifiable (measured with numbers) approach to developing, operating and maintaining software. In short: engineering, applied to software.
SWEBOK، ڕێبەری IEEE بۆ ئەم بوارە، پێناسە نێودەوڵەتییەکە بەکار دەهێنێت: ڕێگایەکی ڕێکخراو (بە پلان، هەنگاو بە هەنگاو)، دیسپلیندار (پەیڕەوی یاسای ڕێککەوتوو دەکات) و پێوانەکراو (بە ژمارە دەپێورێت) بەکار دەهێنێت بۆ گەشەپێدان، کارپێکردن و . بە کورتی: بەکارهێنانی ئەندازیاری بۆ .
Using careful engineering methods to plan, build, test and look after large . Software engineers work in teams and follow a process such as the .
بەکارهێنانی شێوازی ئەندازیاریی ڕێکوپێکە بۆ پلاندانان، دروستکردن، تاقیکردنەوە و چاودێریکردنی گەورە. ئەندازیارانی ئەم بوارە بە تیم کار دەکەن و پەیڕەوی پرۆسەیەکی وەک دەکەن.
Why call it engineering?بۆچی پێی دەڵێن ئەندازیاری؟
Engineers who build a bridge plan it, calculate it, follow standards and answer for its safety. Software engineers do the same with code. But software is different from a bridge in ways that make careful engineering even more necessary:
ئەو ئەندازیارانەی پردێک دروست دەکەن پلانی بۆ دادەنێن، حسابی بۆ دەکەن، پەیڕەوی ستاندارد دەکەن و بەرپرسیارن لە سەلامەتییەکەی. ئەندازیارانی هەمان کار بە کۆد دەکەن. بەڵام بەم شێوانە لە پرد جیاوازە و ئەمە ئەندازیاریی وردی پێویستتر دەکات:
- You cannot see it, so problems hide until someone runs it.
- It is easy to change, so people change it all the time.
- Every user runs a copy, so one mistake reaches all of them at once.
- It is never finished: new versions keep coming.
- نابینرێت، بۆیە کێشەکان شاراوە دەمێننەوە تا کەسێک کاری پێ دەکات.
- گۆڕینی ئاسانە، بۆیە خەڵک هەمیشە دەیگۆڕن.
- هەموو کۆپییەکی کار پێدەکات، بۆیە یەک هەڵە پێکەوە دەگاتە هەموویان.
- هەرگیز تەواو نابێت: نوێ بەردەوام دێن.
1968: the software crisis gets a name1968: قەیرانی نەرمەواڵە ناوی لێ دەنرێت
In the 1960s computers became powerful and programs became huge. Many projects went badly, and people gave the problem a name:
لە شەستەکانی سەدەی بیستەمدا کۆمپیوتەر بەهێز بوو و زۆر گەورە بوون. زۆر پڕۆژە خراپ ڕۆیشتن و خەڵک ناوێکیان لە کێشەکە نا:
The name given in the late 1960s to a common problem: software projects were late, cost far more than planned, and the programs were full of and hard to change. It led to the idea of .
ئەو ناوەی لە کۆتایی شەستەکانی سەدەی بیستەمدا درا بە کێشەیەکی باو: پڕۆژەکانی دوا دەکەوتن، زۆر زیاتر لە پلان تێچوویان دەبوو و پڕ بوون لە و گۆڕینیان قورس بوو. ئەم کێشەیە بیرۆکەی هێنایە ئاراوە.
From 7 to 11 October 1968, NATO's Science Committee brought experts together in Garmisch, Germany, for a conference called Software Engineering. Brian Randell, one of the editors of its report, later explained that the title was meant to provoke: it named something the world needed, not something that already existed. A second conference followed in Rome in October 1969.
لە 7 تا 11ی تشرینی یەکەمی 1968، لیژنەی زانستیی NATO پسپۆڕانی لە Garmisch لە ئەڵمانیا کۆکردەوە بۆ کۆنفرانسێک بە ناوی . Brian Randell، یەکێک لە ئامادەکارانی ڕاپۆرتەکەی، دواتر ڕوونی کردەوە کە ناوەکە بۆ وروژاندن هەڵبژێردرا: ناوی شتێک بوو کە جیهان پێویستی پێی بوو، نەک شتێک کە هەبوو. کۆنفرانسێکی دووەم لە تشرینی یەکەمی 1969 لە ڕۆما بەڕێوەچوو.
1968: the software crisis gets a name1968: قەیرانی نەرمەواڵە ناوی لێ دەنرێت
Margaret Hamilton and the Apollo softwareMargaret Hamilton و نەرمەواڵەی Apollo
One person who showed what software engineering could be was Margaret Hamilton (1936–2026). She led the Software Engineering Division of the MIT Instrumentation Laboratory, later called Draper Laboratory. Her team wrote the on-board flight software for Apollo's command module and lunar module: the software that took astronauts to the Moon in 1969.
یەکێک لەو کەسانەی پیشانی دا دەتوانێت چی بێت Margaret Hamilton بوو (1936–2026). سەرۆکایەتیی بەشی تاقیگەی ئامێرەکانی MITـی دەکرد، کە دواتر ناوی بوو بە تاقیگەی Draper. تیمەکەی فڕینی ناو کەشتیی فەرماندە و کەشتیی مانگی Apolloـیان نووسی: ئەو لە 1969دا ئاسمانەوانانی برد بۆ سەر مانگ.
NASA credits her with making the idea of software engineering popular, at a time when many people did not take software seriously as engineering. She received the US Presidential Medal of Freedom in 2016 and died on 30 September 2026, aged 90.
NASA ئەو بە کەسێک دادەنێت کە بیرۆکەی بەناوبانگ کرد، لە کاتێکدا زۆر کەس وەک ئەندازیارییەکی ڕاستەقینە نەدەبینی. لە 2016دا مەدالیای ئازادیی سەرۆکایەتیی ئەمریکای وەرگرت و لە 30ی ئەیلوولی 2026دا لە تەمەنی 90 ساڵیدا کۆچی دوایی کرد.
When software fails: Ariane 5 flight 501کاتێک نەرمەواڵە شکست دەهێنێت: گەشتی 501ـی Ariane 5
On 4 June 1996 the first Ariane 5 rocket, flight 501, lifted off from Kourou in French Guiana. About 37 seconds later it turned sharply off course and broke apart. An inquiry board led by Professor Jacques-Louis Lions found the cause in the software.
لە 4ی حوزەیرانی 1996دا یەکەم ڕۆکێتی Ariane 5، گەشتی 501، لە Kourou لە گوایانای فەرەنسی هەڵسا. نزیکەی 37 چرکە دواتر توند لە ڕێگاکەی لایدا و پارچە پارچە بوو. لیژنەیەکی لێکۆڵینەوە بە سەرۆکایەتیی پرۆفیسۆر Jacques-Louis Lions هۆکارەکەی لە دۆزییەوە.
A part of the navigation software was reused from Ariane 4. It turned a 64-bit floating-point number into a 16-bit integer. On Ariane 4 the number always fitted. Ariane 5 flew a different path, the number grew too big, and nobody had planned for that.
بەشێک لە ڕێنیشاندان لە Ariane 4ـەوە بەکارهێنرابووەوە. 64 بیتی دەکرد بە 16 بیت. لە Ariane 4ـدا ژمارەکە هەمیشە جێی دەبووەوە. Ariane 5 بە ڕێگایەکی جیاوازدا فڕی، ژمارەکە زۆر گەورە بوو و کەس پلانی بۆ ئەوە دانەنابوو.
The board's advice still reads like a software engineering lesson: do not run code that is not needed, check the ranges of every value, and test the whole system with real trajectory data.
ئامۆژگارییەکانی لیژنەکە هێشتا وەک وانەیەکی دەخوێندرێنەوە: کۆدێک کە پێویست نییە کاری پێ مەکە، سنووری هەموو بەهایەک بپشکنە و هەموو سیستەمەکە بە زانیاریی ڕاستەقینەی ڕێڕەوی فڕین تاقی بکەرەوە.
When software fails: Ariane 5 flight 501کاتێک نەرمەواڵە شکست دەهێنێت: گەشتی 501ـی Ariane 5
July 2024: one update, 8.5 million computersتەمموزی 2024: یەک نوێکردنەوە، 8.5 ملیۆن کۆمپیوتەر
Failures still happen. In July 2024 the security company CrowdStrike released a faulty update for its software on Windows computers. Microsoft estimated that it affected 8.5 million Windows devices: less than one percent of all of them, yet enough to be felt around the world, because so many companies depend on the same products.
شکست هێشتا ڕوودەدات. لە تەمموزی 2024دا کۆمپانیای ئاسایشی CrowdStrike هەڵەی بۆ سەر کۆمپیوتەرەکانی Windows بڵاو کردەوە. Microsoft مەزەندەی کرد کە کاری کردە سەر 8.5 ملیۆن ئامێری Windows: کەمتر لە یەک لە سەدی هەموویان، بەڵام بەس بوو بۆ ئەوەی لە هەموو جیهان هەستی پێ بکرێت، چونکە کۆمپانیایەکی زۆر پشت بە هەمان بەرهەم دەبەستن.
The lesson is not to blame one company. It is a rule for every team: test each change, release it in stages to a few computers first, watch what happens, and keep a way back. Microsoft's DevOps guide calls these safe deployment practices.
وانەکە تاوانبارکردنی یەک کۆمپانیا نییە. یاسایەکە بۆ هەموو تیمێک: هەر گۆڕانکارییەک تاقی بکەرەوە، قۆناغ بە قۆناغ بڵاوی بکەرەوە و سەرەتا بۆ چەند کۆمپیوتەرێکی کەم، چاودێری بکە چی ڕوودەدات و ڕێگەیەکی گەڕانەوەت هەبێت. ڕێبەری Microsoft بەمانە دەڵێت ڕێوشوێنی سەلامەت.
What makes software good?چی نەرمەواڵە باش دەکات؟
“Good software” means more than “it runs”. The international standard ISO/IEC 25010 (second edition, November 2023) describes the quality of a software product with nine characteristics. Together they are called software quality.
« باش» واتای زیاتر لە «کار دەکات» دەدات. ستانداردی نێودەوڵەتیی ISO/IEC 25010 (چاپی دووەم، تشرینی دووەمی 2023) جۆرایەتیی بەرهەمێکی بە نۆ تایبەتمەندی وەسف دەکات. هەموویان پێکەوە پێیان دەوترێت .
For a program that lives for years, one of them matters every single week: maintainability, how easily people can understand, fix, change and test it.
بۆ کە چەند ساڵ دەژی، یەکێکیان هەموو هەفتەیەک گرنگە: ، واتە خەڵک تا چەند بە ئاسانی لێی تێدەگەن، چاکی دەکەنەوە، دەیگۆڕن و تاقیی دەکەنەوە.
What makes software good?چی نەرمەواڵە باش دەکات؟
The nine, with Bazaar Cart examplesنۆ تایبەتمەندییەکە، بە نموونەی Bazaar Cart
| Characteristicتایبەتمەندی | In plain wordsبە وشەی سادە | In Bazaar Cartلە Bazaar Cartـدا |
|---|---|---|
| Functional suitability | does the right things, completely and correctlyکارە دروستەکان دەکات، بە تەواوی و بێ هەڵە | prices follow R1–R5نرخەکان پەیڕەوی R1–R5 دەکەن |
| Performance efficiency | fast enough; uses little memory, battery and dataبەس خێرایە؛ ، و ئینتەرنێتی کەم دەخوات | opens quickly on a cheap phoneلەسەر مۆبایلێکی هەرزان خێرا دەکرێتەوە |
| Compatibility | works next to other systems and shares data with themلە تەنیشت سیستەمی ترەوە کار دەکات و لەگەڵ هاوبەش دەکات | sends orders to Soran's accounts programداواکارییەکان دەنێرێت بۆ حسابەکانی سۆران |
| Interaction capability | easy to learn and use, for everyone (it was called usability)فێربوون و بەکارهێنانی ئاسانە بۆ هەمووان (پێشتر پێی دەوترا ) | Kurdish and Arabic text, large buttonsدەقی کوردی و عەرەبی، دوگمەی گەورە |
| Reliability | keeps working, and recovers after a failureبەردەوام کار دەکات و دوای شکستێک دەگەڕێتەوە | no lost orders on a busy Thursdayهیچ داواکارییەک لە پێنجشەممەیەکی قەرەباڵغدا ون نابێت |
| Security | protects data from people who should not see or change it لەو کەسانە دەپارێزێت کە نابێت بیبینن یان بیگۆڕن | phone numbers stay privateژمارەی مۆبایلەکان نهێنی دەمێننەوە |
| Maintainability | easy to understand, change and testتێگەیشتن، گۆڕین و تاقیکردنەوەی ئاسانە | a new discount takes a day, not a monthداشکانێکی نوێ ڕۆژێک دەخایەنێت، نەک مانگێک |
| Flexibility | adapts to new places and can grow (it was called portability)لەگەڵ شوێنی نوێ دەگونجێت و دەتوانێت گەورە بێت (پێشتر پێی دەوترا portability) | runs on Android and iPhone; more shops laterلەسەر Android و iPhone کار دەکات؛ دواتر دووکانی زیاتر |
| Safety | does not put people, property or the environment in dangerخەڵک، موڵک یان ژینگە ناخاتە مەترسییەوە | small for a shop app; vital in a hospitalبۆ دووکان کەمە؛ لە نەخۆشخانەدا ژیانییە |
What makes software good?چی نەرمەواڵە باش دەکات؟
Technical debt: the price of hurryingقەرزی تەکنیکی: نرخی پەلەکردن
Sometimes a team takes a shortcut: it copies code instead of organising it, or skips tests to finish sooner. In 1992 Ward Cunningham compared this to borrowing money, and the name stuck:
هەندێک جار تیمێک ڕێگەیەکی کورت دەگرێتەبەر: لەبری ڕێکخستنی کۆد کۆپیی دەکات، یان تاقیکردنەوە دەهێڵێت بۆ ئەوەی زووتر تەواو بکات. لە 1992دا Ward Cunningham ئەمەی بە قەرزکردنی پارە چواند و ناوەکە مایەوە:
The extra work a team will have to do later because it chose a quick, messy solution now. Like borrowed money it grows "interest": every new feature built on messy code takes longer.
ئەو کارە زیادەیەی تیمێک دواتر دەبێت بیکات چونکە ئێستا چارەسەرێکی خێرا و ناڕێکی هەڵبژارد. وەک قەرزی پارە «سوو» دەهێنێت: هەر تایبەتمەندییەکی نوێ کە لەسەر کۆدی ناڕێک دروست دەکرێت کاتی زیاتری دەوێت.
Martin Fowler gives numbers: a feature takes 4 days in clean code but 6 days in messy code, so 2 days are interest. Cleaning up costs 5 days. For one feature that does not pay (9 days instead of 6). For three similar features it does: 17 days instead of 18, and every later feature is faster too.
Martin Fowler ژمارە دەدات: تایبەتمەندییەک لە کۆدی ڕێکدا 4 ڕۆژ دەخایەنێت، بەڵام لە کۆدی ناڕێکدا 6 ڕۆژ، ئەو 2 ڕۆژە زیادەیە سووی قەرزەکەیە. ڕێکخستنەکە 5 ڕۆژی دەوێت. بۆ یەک تایبەتمەندی ناهێنێت (9 ڕۆژ لەبری 6). بۆ سێ تایبەتمەندیی وەک یەک دەهێنێت: 17 ڕۆژ لەبری 18 و هەموو تایبەتمەندییەکی دواتریش خێراتر دەبێت.
Buying sugar on credit from the corner shop is fine if you pay at the end of the month. If you never pay, the debt grows, and one day the shop stops giving you credit.
کڕینی شەکر بە قەرز لە دووکانی گەڕەک باشە ئەگەر لە کۆتایی مانگدا بیدەیتەوە. ئەگەر هەرگیز نەیدەیتەوە، قەرزەکە گەورە دەبێت و ڕۆژێک دووکانەکە ئیتر قەرزت پێ نادات.
Where the analogy stops workingسنووری ئەم نموونەیە
Technical debt charges interest only when you change the messy part. Messy code that nobody touches costs little; clean up the parts you change often.
تەنیا کاتێک سوو دەهێنێت کە بەشە ناڕێکەکە بگۆڕیت. کۆدی ناڕێک کە کەس دەستی لێ نادات تێچووی کەمە؛ ئەو بەشانە ڕێک بخە کە زۆر دەیانگۆڕیت.
Who is on a software team?کێ لە تیمێکی نەرمەواڵەدایە؟
Software is built by teams. Job titles differ between companies, but these roles appear almost everywhere:
تیم دروستی دەکەن. ناوی کارەکان لە کۆمپانیایەکەوە بۆ یەکێکی تر جیاوازن، بەڵام ئەم ئەرکانە نزیکەی لە هەموو شوێنێک هەن:
Small teams share roles: in Bazaar Cart, Dilan both tests and designs. Bigger teams add more, such as a Scrum Master (next lesson) or security specialists. IT jobs in general are in Roles you will see in job ads today, and their English names in Key words: IT jobs.
تیمە بچووکەکان ئەرکەکان بەش دەکەن: لە Bazaar Cartـدا دیلان هەم تاقی دەکاتەوە هەم دیزاین دەکات. تیمە گەورەکان زیاتر زیاد دەکەن، وەک (وانەی داهاتوو) یان پسپۆڕی . کارەکانی IT بە گشتی لە ئەو ئەرکانەی ئەمڕۆ لە ڕیکلامی کاردا دەیانبینیتدان و ناوە ئینگلیزییەکانیان لە وشە سەرەکییەکان: کارەکانی ITدا.
18 areas of knowledge18 بواری زانین
What must a software engineer know? SWEBOK, the Guide to the Software Engineering Body of Knowledge of the IEEE Computer Society, answers with 18 knowledge areas. Version 4 came out in 2024 (corrected as v4.0a in September 2025). It added software architecture, operations and security, and it brings agile methods and DevOps into almost every area.
ئەندازیارێکی دەبێت چی بزانێت؟ SWEBOK، کە ڕێبەری کۆمەڵە زانیاریی و کۆمەڵەی کۆمپیوتەری IEEE دەریدەکات، بە 18 بواری زانین وەڵام دەداتەوە. 4 لە 2024دا دەرچوو (لە ئەیلوولی 2025دا وەک v4.0a ڕاست کرایەوە). ، کارپێکردن و زیاد کرد و ڕێگاکانی و دەهێنێتە ناو نزیکەی هەموو بوارێکەوە.
This course takes them in the order many university courses use, such as Carnegie Mellon's Foundations of Software Engineering: process first, then requirements, version control, quality and architecture.
ئەم کۆرسە بەو ڕیزەیە دەیانخوێنێت کە زۆر کۆرسی زانکۆ بەکاری دەهێنن، وەک کۆرسی Foundations of Software Engineering لە زانکۆی Carnegie Mellon: سەرەتا پرۆسە، پاشان ، ، جۆرایەتی و .
Software engineering with AI assistants (2026)ئەندازیاریی نەرمەواڵە لەگەڵ یاریدەدەرەکانی ژیریی دەستکرد (2026)
In 2026 most developers work with AI assistants: tools built on large language models that suggest code, tests and explanations. In the 2026 Stack Overflow Developer Survey, over 70% of the people who answered used AI every day, but only 48% said they trust its answers, and only when they can easily check them.
لە 2026دا زۆربەی لەگەڵ یاریدەدەرەکانی کار دەکەن: ئامرازگەلێک کە لەسەر مۆدێلە گەورەکانی زمان دروست کراون و کۆد، تاقیکردنەوە و ڕوونکردنەوە پێشنیار دەکەن. لە ڕاپرسیی گەشەپێدەرانی Stack Overflowـی 2026دا، زیاتر لە 70%ـی وەڵامدەرەوەکان هەموو ڕۆژێک بەکار دەهێنا، بەڵام تەنیا 48% گوتیان متمانە بە وەڵامەکانی دەکەن، ئەویش تەنیا کاتێک بە ئاسانی بتوانن بیانپشکنن.
An assistant can be wrong. It may invent facts () or write code that runs but breaks a rule. GitHub's own advice for its Copilot assistant is: understand a suggestion before you use it, review it carefully, and check it with automated tests and security tools. The engineer, not the tool, is responsible.
یاریدەدەرێک دەکرێت هەڵە بێت. لەوانەیە زانیاری هەڵبەستێت () یان کۆدێک بنووسێت کە کار دەکات بەڵام یاسایەک دەشکێنێت. ئامۆژگاریی خودی GitHub بۆ یاریدەدەرەکەی، Copilot، ئەمەیە: پێش بەکارهێنانی پێشنیارێک لێی تێبگە، بە وردی پێیدا بچۆوە و بە و ئامرازەکانی بیپشکنە. ئەندازیارەکە بەرپرسیارە، نەک ئامرازەکە.
Never paste customers' data, passwords or keys into an online tool, check whether you may use the code (AI and copyright), and in class follow your school's rules on using AI. How assistants and agents work is taught in Agents and loops and Limits and safety. A real 2026 case of apps built with AI coding agents, and the project rules that keep them trustworthy, is Case Study: ArtCraft.
هەرگیز کڕیاران، یان کلیلەکان لە ئامرازێکی ئۆنلاین مەلکێنە، بپشکنە ئایا ڕێگەت پێدراوە کۆدەکە بەکاربهێنیت (ژیریی دەستکرد و مافی لەبەرگرتنەوە) و لە پۆلدا پەیڕەوی یاساکانی قوتابخانە یان زانکۆکەت بکە لەبارەی (). یاریدەدەر و بریکارەکان چۆن کار دەکەن لە بریکار و خولەکان و سنوور و سەلامەتیدا دەخوێنرێت. نموونەیەکی ڕاستەقینەی 2026 لە کە بە دروستکراون، لەگەڵ ئەو یاسایانەی پڕۆژەکە کە جێی متمانەیان دەهێڵنەوە، لە نموونەیەکی ڕاستەقینە: ArtCraft دەبینیت.
Meet Bazaar Cart and the teamناسینی Bazaar Cart و تیمەکەی
Every lesson of this course builds one app: Bazaar Cart, an order app for Soran's dried-fruit and spice shop in the Sulaimani bazaar. Aram is the team lead and product owner, Shilan and Karwan are developers, and Dilan tests and designs. Two side examples appear too: Lana's school-timetable app for a high school in Duhok, and Hana and Rebin's taxi app, Hawler Ride.
هەموو وانەیەکی ئەم کۆرسە یەک دروست دەکات: Bazaar Cart، داواکاری بۆ دووکانی میوەی وشک و بەهاراتی سۆران لە بازاڕی سلێمانی. ئارام سەرۆکی تیم و ، شیلان و کاروان و دیلان تاقی دەکاتەوە و دیزاین دەکات. دوو نموونەی لاوەکیش دەردەکەون: خشتەی وانەکانی لانا بۆ ئامادەییەک لە دهۆک و تەکسیی هانا و ڕێبین، Hawler Ride.
Prices per kilogram (made up): walnuts 18,000, sumac 8,000, dried figs 12,000, black tea 14,000 and honey 30,000 IQD. The shop's five rules are its business logic: the reason the software exists.
نرخی کیلۆیەک (دەستکرد): گوێز 18,000، سماق 8,000، هەنجیری وشک 12,000، چای ڕەش 14,000 و هەنگوین 30,000 دینار. پێنج یاساکەی دووکانەکە (چینەکان و لۆجیکی کاروبار): ئەو هۆیەی لە پێناویدا هەیە.
Meet Bazaar Cart and the teamناسینی Bazaar Cart و تیمەکەی
The road through this courseڕێگای ئەم کۆرسە
- How teams work: life cycles and agile, then requirements and design.
- Git, branches and GitHub: every change saved and shared.
- Versions and builds, including what 1.0.0 means, and automated tests.
- Organising the code: layers and business logic, MVC, MVP and MVVM, dependency injection.
- The course project: ship Bazaar Cart 1.0.0.
- تیمەکان چۆن کار دەکەن: سووڕی ژیانی گەشەپێدان و ئەجایڵ، پاشان پێداویستییەکان و دیزاین.
- Git، لقەکان و GitHub: هەموو گۆڕانکارییەک پاشەکەوت و هاوبەش دەکرێت.
- وەشانەکان و بیلدەکان (لەوانە واتای 1.0.0) و تاقیکردنەوەی خۆکار.
- ڕێکخستنی کۆد: چینەکان و لۆجیکی کاروبار، MVC، MVP و MVVM، تێخستنی وابەستەیی.
- پڕۆژەی کۆرسەکە: بڵاوکردنەوەی Bazaar Cart 1.0.0.
Bazaar Cart's versions tell a story: 0.1.0 prices one line, 0.2.0 adds the delivery fee, 0.3.0 keeps products in SQLite, 1.0.0 is the first release, 1.0.1 fixes a rounding bug, 1.1.0 adds the discount and 2.0.0 changes what placing an order returns.
Bazaar Cart چیرۆکێک دەگێڕنەوە: 0.1.0 نرخی یەک دێڕ حساب دەکات، 0.2.0 کرێی گەیاندن زیاد دەکات، 0.3.0 کاڵاکان لە هەڵدەگرێت، 1.0.0 یەکەم بڵاوکردنەوەیە، 1.0.1 خڕکردنەوە چاک دەکات، 1.1.0 داشکانەکە زیاد دەکات و 2.0.0 ئەوە دەگۆڕێت کە داواکردن چی دەگەڕێنێتەوە.
Common mistakesهەڵە باوەکان
Common mistakesهەڵە باوەکان
“It works on my machine”«لەسەر کۆمپیوتەرەکەی من کار دەکات»
Karwan's program worked with numbers he typed into the code. In the shop, the grams come from a form, and a form always gives text:
کاروان بەو ژمارانە کاری دەکرد کە خۆی لە ناو کۆدەکەدا نووسیبوونی. لە دووکانەکەدا گرامەکان لە دێن و هەمیشە دەق دەدات:
def line_price(price_per_kg, grams):
return price_per_kg * grams / 1000
grams = input("Grams: ") # text typed by a customer
print(line_price(8000, grams))Grams: 350
Traceback (most recent call last):
File "~/se/bazaar-cart/order_form.py", line 5, in <module>
print(line_price(8000, grams))
~~~~~~~~~~^^^^^^^^^^^^^
File "~/se/bazaar-cart/order_form.py", line 2, in line_price
return price_per_kg * grams / 1000
~~~~~~~~~~~~~~~~~~~~~^~~~~~
TypeError: unsupported operand type(s) for /: 'str' and 'int'Explain the codeڕوونکردنەوەی کۆدەکە
- Lineدێڕی 4
input()always returns a string, here"350".input()هەمیشە دەگەڕێنێتەوە، لێرە"350".- Lineدێڕی 2
8000 * "350"repeats the text 8,000 times; dividing text by 1000 is impossible, so Python stops with aTypeError.8000 * "350"دەقەکە 8,000 جار دووپاتە دەکاتەوە؛ دابەشکردنی دەق بەسەر 1000دا مەحاڵە، بۆیە بەTypeErrorدەوەستێت.
The fix is one word: turn the text into a number with int(). A real app would also check R2 (100 g to 10,000 g) and show a friendly message; automated tests check such cases every time the code changes.
چارەسەرەکە یەک وشەیە: بە int() دەقەکە بکە بە ژمارە. ڕاستەقینە R2ـیش دەپشکنێت (100 گرام تا 10,000 گرام) و پەیامێکی ڕوون پیشان دەدات؛ تاقیکردنەوەی خۆکار هەموو جارێک کە کۆدەکە دەگۆڕێت ئەم حاڵەتانە دەپشکنێت.
def line_price(price_per_kg, grams):
return price_per_kg * grams / 1000
grams = int(input("Grams: ")) # turn the text into a number
print(line_price(8000, grams))Grams: 350 2800.0
Exercisesڕاهێنانەکان
Decide whether each job is mostly programming or needs software engineering, and say why: (a) a script that renames 30 photos once; (b) Hawler Ride, built by five people and used by 500 drivers for three years; (c) a homework program that prints a multiplication table; (d) Lana's timetable app, which the school will use every year.
بڕیار بدە هەر کارێک زیاتر یان پێویستی بە هەیە و بڵێ بۆچی: (a) کە یەک جار ناوی 30 وێنە دەگۆڕێت؛ (b) Hawler Ride، کە پێنج کەس دروستیان کردووە و 500 شۆفێر بۆ سێ ساڵ بەکاری دەهێنن؛ (c) ئەرکی ماڵەوە کە خشتەی لێکدان چاپ دەکات؛ (d) خشتەی وانەکانی لانا، کە قوتابخانەکە هەموو ساڵێک بەکاری دەهێنێت.
Show answerوەڵامەکە پیشان بدە
- (a) Programming: one user, one night.
- (b) Software engineering: many people, many users, years of changes.
- (c) Programming: short life, one user.
- (d) Software engineering: it lives for years, rules change every school year, and teachers depend on it.
- (a) : یەک ، یەک شەو.
- (b) : چەند کەسێک، زۆر، چەند ساڵ گۆڕانکاری.
- (c) : تەمەنی کورت، یەک .
- (d) : چەند ساڵ دەژی، یاساکان هەموو ساڵێکی خوێندن دەگۆڕێن و مامۆستاکان پشتی پێ دەبەستن.
For Hawler Ride, name the ISO/IEC 25010 characteristic for each complaint: (a) the app shows the wrong fare; (b) it takes 20 seconds to open; (c) passengers can see a driver's home address; (d) it cannot be installed on older Android phones.
بۆ Hawler Ride، تایبەتمەندیی ISO/IEC 25010 بۆ هەر سکاڵایەک ناو ببە: (a) کرێی هەڵە پیشان دەدات؛ (b) کردنەوەی 20 چرکە دەخایەنێت؛ (c) سەرنشینان دەتوانن ناونیشانی ماڵی شۆفێرێک ببینن؛ (d) لەسەر مۆبایلی Androidـی کۆن دانامەزرێت.
Show answerوەڵامەکە پیشان بدە
- (a) Functional suitability (functional correctness).
- (b) Performance efficiency (time behaviour).
- (c) Security (confidentiality).
- (d) Flexibility (installability).
- (a) تەواوی و دروستیی کار (functional suitability).
- (b) خێرایی و کەمخەرجی (performance efficiency).
- (c) (نهێنیپارێزی).
- (d) نەرمی (flexibility)، بەشی دامەزراندن.
What does this program print? Which value would have crashed like the number on flight 501?
ئەم چی چاپ دەکات؟ کام بەها وەک ژمارەکەی گەشتی 501 دەبووە هۆی هەڵە؟
import struct
for value in (20_000, 32_767, 40_000):
try:
struct.pack(">h", value) # "h" = a 16-bit signed integer
print(value, "fits in 16 bits")
except struct.error as e:
print(value, "does not fit:", e)Show answerوەڵامەکە پیشان بدە
20000 fits in 16 bits 32767 fits in 16 bits 40000 does not fit: 'h' format requires -32768 <= number <= 32767
A 16-bit signed integer holds only −32,768 to 32,767. 40,000 does not fit. Python stops with a clear error; on flight 501 the same kind of error was not handled, and both navigation units stopped.
16 بیت کە دەتوانێت سالب بێت تەنیا لە −32,768 تا 32,767 هەڵدەگرێت. 40,000 جێی نابێتەوە. بە هەڵەیەکی ڕوون دەوەستێت؛ لە گەشتی 501دا هەمان جۆر هەڵە چارەسەر نەکرا و هەردوو یەکەی ڕێنیشاندان وەستان.
In Hawler Ride, the fare rules are copied in three files. Each fare change takes 3 days instead of 1. Cleaning up would take 4 days, and 5 fare changes are planned this year. Should Hana and Rebin clean up first?
لە Hawler Rideـدا یاساکانی کرێ لە سێ فایلدا کۆپی کراون. هەر گۆڕینێکی کرێ 3 ڕۆژ دەخایەنێت لەبری 1. ڕێکخستن 4 ڕۆژی دەوێت و ئەمساڵ 5 گۆڕینی کرێ پلانی بۆ دانراوە. ئایا هانا و ڕێبین سەرەتا ڕێکی بخەن؟
Show answerوەڵامەکە پیشان بدە
Yes. Keeping the mess: 5 × 3 = 15 days. Cleaning first: 4 + 5 × 1 = 9 days. Cleaning saves 6 days this year, and the code stays easier to change.
بەڵێ. هێشتنەوەی ناڕێکی: 5 × 3 = 15 ڕۆژ. سەرەتا ڕێکخستن: 4 + 5 × 1 = 9 ڕۆژ. ڕێکخستن ئەمساڵ 6 ڕۆژ دەگەڕێنێتەوە و گۆڕینی کۆدەکەش ئاسانتر دەمێنێتەوە.
An AI assistant suggests a delivery_fee() function for Bazaar Cart. Write three checks you will do before you commit it.
یاریدەدەرێکی delivery_fee() بۆ Bazaar Cart پێشنیار دەکات. سێ پشکنین بنووسە کە پێش دەیکەیت.
Show answerوەڵامەکە پیشان بدە
- Compare it with R4: 3,000 IQD, free when goods total 50,000 or more; test 49,750 and 50,000.
- Read every line until you can explain it to Shilan.
- Run all the existing tests, and make sure no secret or customer data was pasted into the tool.
- بەراوردی بکە لەگەڵ R4: 3,000 دینار، بێبەرانبەر کاتێک کاڵاکان 50,000 یان زیاتر بن؛ 49,750 و 50,000 تاقی بکەرەوە.
- هەموو دێڕێک بخوێنەرەوە تا بتوانیت بۆ شیلانی ڕوون بکەیتەوە.
- هەموو تاقیکردنەوە هەبووەکان کار پێ بکە و دڵنیا بە کە هیچ نهێنییەک یان کڕیار لە ئامرازەکەدا نەلکێنراوە.
Summaryکورتە
- Software engineering is programming over time: it keeps software working while time, people and users grow.
- The name was born at the 1968 NATO conference in Garmisch, during the software crisis; Margaret Hamilton's Apollo work made it popular.
- Failures such as Ariane 5 flight 501 (1996) and the July 2024 update teach checking assumptions, testing and releasing in stages.
- ISO/IEC 25010:2023 describes software quality with nine characteristics; maintainability keeps change cheap, and technical debt makes it expensive.
- A team has a product owner, developers, testers, designers and operations; SWEBOK v4 lists 18 knowledge areas.
- AI assistants suggest; the engineer checks, tests and stays responsible.
- واتە بە درێژایی کات: بە کارکردوویی دەهێڵێتەوە لە کاتێکدا کات، خەڵک و زیاد دەبن.
- ناوەکە لە کۆنفرانسی NATO لە Garmisch لە 1968دا لە دایک بوو، لە کاتی ؛ کاری Margaret Hamilton لە Apollo بەناوبانگی کرد.
- شکستی وەک گەشتی 501ـی Ariane 5 (1996) و تەمموزی 2024 پشکنینی گریمانەکان، تاقیکردنەوە و بڵاوکردنەوەی قۆناغ بە قۆناغ فێر دەکەن.
- ISO/IEC 25010:2023 بە نۆ تایبەتمەندی وەسف دەکات؛ گۆڕانکاری هەرزان دەهێڵێتەوە و گرانی دەکات.
- تیمێک ، ، ، دیزاینەر و کارپێکردنی هەیە؛ SWEBOK v4 18 بواری زانین ڕیز دەکات.
- یاریدەدەرەکانی پێشنیار دەکەن؛ ئەندازیار دەپشکنێت، تاقی دەکاتەوە و بەرپرسیار دەمێنێتەوە.
Next: The Development Life Cycle shows how a team orders its work, from waterfall to agile.
دواتر: سووڕی ژیانی گەشەپێدانی نەرمەواڵە پیشان دەدات تیمێک چۆن کارەکانی ڕیز دەکات، لە تا .
Lesson complete!وانەکە تەواو بوو!
Well done. Review the key terms, then go on to the next lesson.دەستخۆش. سەیرێکی زاراوە سەرەکییەکان بکەرەوە، پاشان بڕۆ بۆ وانەی داهاتوو.
Key termsزاراوە سەرەکییەکان
The Development Life Cycle: Waterfall, Iterative and Agileسووڕی ژیانی گەشەپێدانی نەرمەواڵە: مۆدێلی تاڤگە، خولبەخول و ئەجایڵ
Related lecturesوانە پەیوەندیدارەکان
- The Development Life Cycle: Waterfall, Iterative and Agileسووڕی ژیانی گەشەپێدانی نەرمەواڵە: مۆدێلی تاڤگە، خولبەخول و ئەجایڵ
- Building Softwareدروستکردنی نەرمەواڵە
- IT Jobs and the Skills They Needکارەکانی IT و ئەو کارامەییانەی پێویستیانە
- Jobs and Careers in ITکار و پیشە لە بواری IT
- Intellectual Property, Plagiarism and Software Licencesموڵکی هزری، دزیی زانستی و مۆڵەتەکانی بەکارهێنان
References and further readingسەرچاوەکان و خوێندنەوەی زیاتر
- IEEE Computer Society: Software Engineering Body of Knowledge (SWEBOK v4, 18 knowledge areas; v4.0a update of 25 September 2025)
- SWEBOK Guide V4.0a (PDF): introduction (definition of software engineering) and Software Engineering Process KA
- Titus Winters: Software Engineering at Google, chapter 1, What Is Software Engineering? (programming integrated over time; time, scale, trade-offs)
- Brian Randell (2018): Fifty Years of Software Engineering, or The View from Garmisch (arXiv 1805.02742)
- NASA Science: Margaret Hamilton
- MIT News (17 November 2016): Apollo code developer Margaret Hamilton receives Presidential Medal of Freedom
- Associated Press via ABC13 (9 October 2026): Margaret Hamilton, who led a software team for NASA's Apollo program, dies at 90
- Ariane 5 Flight 501 Failure: Report by the Inquiry Board (J. L. Lions, Paris, 19 July 1996)
- Microsoft (20 July 2024): Helping our customers through the CrowdStrike outage
- Microsoft Learn: What is DevOps? (safe deployment practices, CI/CD)
- iso25000.com: ISO/IEC 25010 product quality model (nine characteristics and sub-characteristics)
- ISO: ISO/IEC 25010:2023 Product quality model (edition 2, November 2023)
- Martin Fowler (2019): Technical Debt
- Wikipedia: Brooks's law (The Mythical Man-Month, 1975)
- Carnegie Mellon University: 17-313 Foundations of Software Engineering (course page)
- Stack Overflow Developer Survey 2026: AI
- GitHub Docs: Best practices for using GitHub Copilot
- Pro Git: A Short History of Git
- GitHub Blog (10 April 2008): We launched
- Agile Manifesto: History (Snowbird, Utah, 11–13 February 2001)
This lecture is a first edition. The Kurdish text and terminology are waiting for review by Kurdish IT teachers.ئەم وانەیە چاپی یەکەمە. دەقە کوردییەکە و زاراوەکانی چاوەڕێی پێداچوونەوەی مامۆستایانی کوردی بواری IT ن.