Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Бағдарламалық жобаны басқару туралы мақала. "Программалық жасақтауда күміс оқ жоқ — Бағдарламалық инженериядағы мән мен жағдай" – 1986 жылы Тьюринг сыйлығының иегері Фред Брукс жазған, бағдарламалық инженерия саласында кеңінен талқыланған мақала. Брукс "технологияда немесе басқару әдістемелерінде өнімділік, сенімділік, қарапайымдық тұрғысынан он жыл ішінде тіпті бір рет [он есе] жақсартуға мүмкіндік беретін жалғыз бір жаңалық жоқ" деп санайды. Ол сондай-ақ, бағдарламалық жасақтаманы дамытуда аппараттық жасақтаманы дамытудағыдай (Мур заңы) "әр екі жыл сайын екі есеге өсімді күтуге болмайды" деп мәлімдейді.
Paper on software project management
the folkloric belief
"No Silver Bullet—Essence and Accident in Software Engineering" is a widely discussed paper on software engineering written by Turing Award winner Fred Brooks in 1986. Brooks argues that "there is no single development, in either technology or management technique, which by itself promises even one order of magnitude [tenfold] improvement within a decade in productivity, in reliability, in simplicity." He also states that "we cannot expect ever to see two fold gains every two years" in software development, as there is in hardware development (Moore's law).
Қорытынды
Брукс күрделіліктің екі түрін ажыратады: кездейсоқ күрделілік және маңызды күрделілік. Бұл Аристотельдің жіктемесімен байланысты. Кездейсоқ күрделілік инженерлер жасайтын және түзетуге болатын мәселелерге қатысты. Мысалы, қазіргі заманғы бағдарламалау тілдері құрама кодты жазу мен оңтайландырудың бұлшық еттерін жойды және партиялық өңдеуден туындаған кешігулерді болдырмады, бірақ кездейсоқ күрделіліктің басқа да көздері сақталады. Маңызды күрделілік шешілуге тиіс мәселенің өзінен туындайды, оны ешнәрсе жоя алмайды; егер пайдаланушылар бағдарламадан 30 түрлі нәрсе жасауды қаласа, онда осы 30 нәрсе маңызды болып табылады және бағдарлама оларды орындауы керек. Брукс кездейсоқ күрделілік едәуір төмендеді деп мәлімдейді және бүгінгі бағдарламашылардың көп бөлігі уақытын маңызды күрделілікпен күресуге жұмсайды. Брукс барлық кездейсоқ іс-әрекеттерді нөлге дейін азайту, маңызды күрделілікті азайтуға тырысу сияқты үлкен жақсартуды бермейді деп санайды. Брукс бір ғана "күміс оқ" жоқ екенін айтса да, маңызды күрделілікке қарсы бағытталған бірнеше жаңалықтар маңызды жетістіктерге әкелуі мүмкін деп сендіреді. Ada сияқты жоғары деңгейлі бағдарламалау тілдерінің пайда болуы кездейсоқ күрделілікті азайтуда маңызды үлес қосып, үлкен жетістіктерге қол жеткізген технологиялардың бірі болып табылады.
Brooks distinguishes between two different types of complexity: accidental complexity and essential complexity. This is related to Aristotle's classification. Accidental complexity relates to problems that engineers create and can fix. For example, modern programming languages have abstracted away the details of writing and optimizing assembly code and eliminated the delays caused by batch processing, though other sources of accidental complexity remain. Essential complexity is caused by the problem to be solved, and nothing can remove it; if users want a program to do 30 different things, then those 30 things are essential and the program must do those 30 different things. Brooks claims that accidental complexity has decreased substantially, and today's programmers spend most of their time addressing essential complexity. Brooks argues that this means shrinking all the accidental activities to zero will not give the same order of magnitude improvement as attempting to decrease essential complexity. While Brooks insists that there is no one silver bullet, he believes that a series of innovations attacking essential complexity could lead to significant improvements. One technology that had made significant improvement in the area of accidental complexity was the invention of high level programming languages, such as Ada.
Қарым-қатынас ұғымдары
Брукстың мақаласы кейде Вирт заңымен байланысты айтылып, «бағдарламалық жүйелердің өлшемі мен күрделілігі, онымен күресу әдістерінен гөрі жылдамдау өседі» деген пікірді қолдайды.
Brooks's paper has sometimes been cited in connection with Wirth's law, to argue that "software systems grow faster in size and complexity than methods to handle complexity are invented."