Píosaí liom in áiteanna eile:

2020-01-16

Anailís Statach


Caithim go leor de mo chuid ama ar obair ag iniúchadh cód. Ag lorg fabhtanna. Tá sé aitheanta le fada gur cigireacht cóid an modh is éifeachtaí botúin a aimsiú – ach ní bhíonn saoi gan locht. Is maith ann cabhair ó uirlisí. 

Tá srianta le tástáil – is féidir le tástáil fabht a léiriú ach ní thig leis léiriú go bhfuil an cód gan fabht. Tá roinnt cúis leis sin, ach an príomhchúis na go bhfuil an oiread conair tríd an comhad agus an oiread luachanna féideartha d'athróga san inchur  go bhfuil sé dodhéanta gach conair agus luach a thriail – tugtar "pléasc theaglamach" ar an dóigh a fhásann líon na tastálacha a bheadh riachtanach as cuimse. Sciorrann fabhtanna tríd na bearnaí. Mar shampla, déantar promhadh cúramach ar bhogearraí eitleoireachta. Mar sin féin, b'éigin don FAA rabhadh a thabhairt faoi sraith eitleáin de chuid Boeing le déanaí. Ní an fhadhb leis an 737MAX – fadhb tromchúiseach a bhí ina chúis le dhá thimpist mharfach a bhí ansin ach ní fabht bogearra amháin a bhí i gceist. Ach i sraith eile 737, nuair a cuireadh an uathphíolóta ar chúrsa tuirlingthe 270° i ceann de seacht gcinn de aerfoirt ar mór-roinn Mheiriceá, theip ar na scáileáin eolais i gcró an phíolóta. 

An réiteach ná comhairle na saoithe a leanadh agus an bogearra a choinneáil simplí.

Mar a dúirt Tony Hoare i 1980:

Táim tagtha go dtí an chonclúid go bhfuil dhá dóigh ann bogearra a dhearadh – chomh simplí agus go bhfuil sé follasach nach bhfuil fabht ann, nó chomh casta agus nach bhfuil fabht follasach ann.

Ar an ndrochuair ní bhíonn tionchar agam ar dhearadh na bogearraí a mbíonn orm cigireacht a dhéanamh orthu.  Bíonn siad mór, gabhlánach.

Ar an dea-uair tá brabhsálaithe cóid ar fáil – bainim feidhm as "Understand for C" ó http://www.scitools.com. Tá cinn eile ann, agus go deimhin bíonn an fheidhm céanna ag mórán gach timpeallacht chomhtháite forbartha a bhíonn in úsáid ag ríomhchláraitheoir.  Déantar bunachar sonraí as an cód sa dóigh is gur féidir tagairtí d'fheidhmeanna agus athróga a rianadh tríd an cód ar fad. Tuigeann an ríomhchláraitheoir umhal, mar a dúirt Dijkstra, go bhfuil toilleadh a bhlaosc srianta. 

Bíonn "anailís statach" ar fáil sna brabhsálaithe go hiondúil. Sé sin, feidhm a iniúchann an cód ag lorg gnéithe nó patrúin ar fios gur cúis fabht iad go minic. I gcás an ríomhtheanga C ach go háirithe, ciallaíonn a sholúbthacht go bhfuil go leor nithe atá fágtha faoin tiomsaitheoir, nó a fheidhmíonn ar dóigh nach samhlófá. Is fearr an gnéithe seo a sheachaint – agus is féidir seiceáil go meicniúil go bhfuil amhlaidh déanta. Tá cnuasaigh éagsúla rialacha ar fáil – ina measc rialacha MISRA (a cumadh i dtosach don earnáil gluaisteáin).

Ar an ndrochuair is minic go gcuireann an uirlis na rialacha i bhfeidhm níos géire ná mar is gá agus go mbíonn go leor torthaí "bréagdheimhneach" le scagadh. Tarlaíonn sin de bhrí nach bhfuil iomlán an t-eolais ar fáil sa chód amháin – braitheann fabhtanna ar an réimse a bhíonn sna inchur agus cúinsí eile. Mar sin féin, cabhraíonn uirlis mar seo díriú ar codanna den cód a bhfuil an dochúlacht is airde fabhtanna ann. Rud atá ina chabhair mhór nuair atá roinnt céadta míle líne cód le hiniúchadh... 

Rud eile gur féidir le huirlis a éascú na tomhais. Cé mhéad conair tríd feidhm, cé mhéid líne cóid ann, agus araile. Tá tomhas ann ar a dtugtar "Castacht McCabe" a léiríonn cé chomh deacair is atá sé feidhm a dheimhniú. Tá sé aitheanta go bhfuil gaol idir deacrachtaí cód a phromhadh – agus dá bhrí sin a thuiscint – agus an dóchúlacht go bhfuil fabht ann. 

Tá baol ann freisin áfach go ndéanfaí feidhmeanna bhriseadh suas go saorga ar mhaith le cloí le tomhas, gan an castacht a laghdú san iomlán, nó go deimhin cur le castacht an ríomhchlár ina iomláine. Mar sin tá an súil criticiúil daonna fós riachtanach.

Anois agus ríomhairí éirithe níos cumhachtaí tá modhanna eile ag teacht chun cinn a dhéanann iarracht "tastáil algartamach" a dhéanamh. Samhail matamaitice den ríomhchlár a chruthú agus deimhniú, don réim féideartha inchur nach dtarlóidh aon fhabht. 

Má chuirtear eolas bhreise maidir le réimse na inchur ar fáil is féidir lena leithéid a bheith éifeachtach – ach is minic fós go mbíonn go leor torthaí bréagdheimhneach nó éiginnte – agus obair mhór ann don chigire iad a scagadh. 

Is fearr go mór na teicnící seo a chuir i bhfeidhm ar chodanna beag den gcód agus é a dhearadh seachas mar a bhíonn á dhéanamh agamsa, eadhon ag iarradh roinnt céadta míle líne cóid a iniúchadh ag aon am amháin. 

Ach níl aon cheist ann gur cabhair mór na huirlisí. Ar an ndrochuair, tá na huirlisí céanna agus na huirlisí forbartha ag cuir le fás as cuimse na ríomhchláir – go háirithe de bhrí go bhfuil cuimhne fairsing agus saor. 

Mar sin, ní i bhfeabhas atá bogearraí ag dul ó na seanlaethanta nuair a bhí sé riachtanach go mbeadh blaosc an ríomhchláraitheora sách mór chun an clár a thuiscint.

Agus sin mo racht go n-uige seo.