ã³ãŒãã®åè³ªã¯æž¬å®å¯èœã§ãããã®èšèã¯ãCTOããœãããŠã§ã¢è£œåãè³Œå ¥ããåã«ããããã¯æè¡ãªãŒããŒããªãã¡ã¯ã¿ãªã³ã°ããã°ã©ã ã«çæããåã«å°ãã質åããã³ãŒãã®å質ãã©ããã£ãŠå€æããã®ãïŒãã«çããããšãããŸã§ã¯ãåœããåã®ããšã®ããã«èãããŸãããåäœãããã ãã§ã¯çãã«ãªããŸããããããŒã ãã¬ãã¥ãŒãããã ãã§ãçãã«ãªããŸãããçãã«ã¯ãäžè²«ããŠé©çšããã客芳çãªæž¬å®ãå¿ èŠã§ãã颿°ããšã®åŸªç°çè€é床ãã¢ãžã¥ãŒã«ããšã®ä¿å®æ§ææ°ã1000è¡ãããã®æ¬ é¥å¯åºŠãã³ã³ããŒãã³ãããšã®ãã¹ãã«ãã¬ããžãã¹ããªã³ãããšã®ãã¡ã€ã«ããšã®ã³ãŒã倿Žãªã©ã§ãããããã¯ãã¹ãŠæ°å€ã§ããæ°å€ã¯åŸååæããã³ãããŒã¯ããããŠå¯Ÿçã«æŽ»çšã§ããŸãã
ã³ãŒãçè§£ã¯ããããå§ãŸã
SMART TS XL ç°å¢å ã®ãã¹ãŠã®èšèªãšãã©ãããã©ãŒã ã«ãããåè³ªææšãèšç®ããŸãã
詳现課é¡ã¯ãã³ãŒãåè³ªææšãäºææ§ããªããæ®éçã«è§£éã§ãããã®ã§ã¯ãªããšããç¹ã§ããCOBOLããã°ã©ã ã«ãããé«ãä¿å®æ§ææ°ã¯ãPythonã¹ã¯ãªããã«ãããåãã¹ã³ã¢ãšã¯ç°ãªãæå³ãæã¡ãŸãã埪ç°çè€é床15ã¯ãååã«ãã¹ããããã¹ããŒããã·ã³ã§ã¯èš±å®¹ç¯å²å ã§ãããæ€èšŒé¢æ°ã§ã¯æ·±å»ãªåé¡ãšãªããŸãã1,000è¡ããã2ã€ã®ãã°ãšããæ¬ é¥å¯åºŠã¯ãã·ã¹ãã ããã°ã©ãã³ã°ã§ã¯åªããŠããŸãããå®å šæ§ãéèŠãããçµã¿èŸŒã¿ã¢ããªã±ãŒã·ã§ã³ã§ã¯èŠæãã¹ãã¬ãã«ã§ããææšãæå¹æŽ»çšããã«ã¯ãããããã®ææšãäœã枬å®ããŠããã®ããäœãææšã墿žãããã®ãããããŠç¶æ³ã«å¿ããŠã©ã®ãããªéŸå€ãé©åãªã®ããçè§£ããå¿ èŠããããŸãããã®èšäºã®æ®ãã®éšåã§ã¯ããŸãã«ãã®ç¹ã«ã€ããŠè§£èª¬ããŸãã
ã³ãŒãå質ãšã¯äœãïŒ
ã³ãŒãå質ãšã¯ããœãŒã¹ã³ãŒãããæ£ç¢ºæ§ãä¿å®æ§ãå¯èªæ§ãå¹çæ§ãã»ãã¥ãªãã£ããã¹ãå®¹ææ§ãšãã£ããæž¬å®å¯èœãªç¹æ§ãã©ã®çšåºŠæºãããŠããããç€ºãææšã§ããåäžã®ç¹æ§ã ãã§å質ãå®çŸ©ã§ãããã®ã§ã¯ãããŸãããæ£ããåäœãããã®ã®å¯èªæ§ãäœãã³ãŒãã¯ã倿Žã®ãã³ã«å質ãäœäžããŸãããªããªããã³ãŒããçè§£ã§ããªãéçºè ã¯å®å šã«ä¿®æ£ã§ããªãããã§ããå¯èªæ§ã¯ãã£ãŠããã¹ããããŠããªãã³ãŒãã«ã¯ãé ããæ¬ é¥ãæœãã§ããŸãããã¹ãæžã¿ã§ãã£ãŠãæ§é ãè€éãªã³ãŒãã¯ãè€éæ§ãé«ãŸãã«ã€ããŠãäºæãã¬å€æŽã«ãã£ãŠäœããå£ããå¯èœæ§ãé«ãŸããããæ¬ é¥ãèç©ãããŠãããŸãã
ISO/IEC 25010èŠæ Œã®æ£åŒãªå®çŸ©ã§ã¯ããœãããŠã§ã¢ã®åè³ªç¹æ§ãšããŠãæ©èœé©åæ§ãæ§èœå¹çãäºææ§ããŠãŒã¶ããªãã£ãä¿¡é Œæ§ãã»ãã¥ãªãã£ãä¿å®æ§ãç§»æ€æ§ã®8ã€ãæããããŠããŸãããœãŒã¹ã³ãŒãã«é¢ããŠã¯ãå®è¡æåäœã§ã¯ãªãã³ãŒãèªäœããçŽæ¥æž¬å®ã§ããç¹æ§ã¯ãä¿å®æ§ãä¿¡é Œæ§ïŒæ¬ é¥ããã³è€éæ§ã¡ããªã¯ã¹ã§è¿äŒŒïŒãã»ãã¥ãªãã£ïŒéçè§£æã«ããïŒãããã³æ©èœé©åæ§ïŒãã¹ãã«ãã¬ããžã«ããïŒã§ãããã®ä»ã®ç¹æ§ã¯ãã³ãŒããå®è¡ããŠæž¬å®ããå¿ èŠããããŸãããããã£ãŠãã³ãŒãå質ã¡ããªã¯ã¹ã¯ããœãããŠã§ã¢å質ã®å šäœã§ã¯ãªããå®çŸ©æžã¿ãã€éèŠãªãµãã»ãããã«ããŒããŠããŸãã
ã³ãŒãå質ãéèŠãªçç±
æè¡ããŒã ã¯ã³ãŒãå質ããªãéèŠãªã®ããçè§£ããŠããŸããããžãã¹é¢ä¿è ã瀟å ã§ãã®éèŠæ§ã説æããå¿ èŠã®ããããŒã ã«ãšã£ãŠããã®é¢é£æ§ã¯ã³ã¹ããšæéã«ãããŸãããããã³ãŒãŒãšITãœãããŠã§ã¢å質ã³ã³ãœãŒã·ã¢ã ïŒCISQïŒã®èª¿æ»ã§ã¯ãéçºè ãæ°ããæ©èœã®éçºã§ã¯ãªããæ¢åã®æè¡çè² åµã®åé¿ã«æéã®30ïœ40%ãè²»ãããŠããããšãäžè²«ããŠç€ºãããŠããŸããã³ãŒãå質ã®äœãã¯ãæè¡çè² åµãèç©ãããã¡ã«ããºã ã§ããæ©æã«çºèŠãããªãã£ãæ¬ é¥ãå¿ èŠä»¥äžã«è€éãªæ©èœãåå¥ã«ä¿å®ããªããã°ãªããªãéè€ããããžãã¯ãããã¯ã¯ã次ã®å€æŽã®ã³ã¹ããå¢å ãããŸããã³ãŒãå質ãé«ãã»ã©ããã®ã³ã¹ãã¯ç¶ç¶çã«åæžãããã·ã¹ãã ã®ã©ã€ããµã€ã¯ã«å šäœã«ããã£ãŠå¹æãç©ã¿éãªããŸãã
ã³ãŒãåè³ªææšïŒå®å šãªãã¡ã¬ã³ã¹
以äžã®ææšã¯ãã³ãŒãå質枬å®ã®äž»èŠãªã«ããŽãªãã¹ãŠãç¶²çŸ ããŠããŸããåææšã«ã€ããŠãå®çŸ©ãæž¬å®æ¹æ³ã蚱容ç¯å²ãããã³è§£éã«ã€ããŠèª¬æããŸãã以äžã®è¡šã®ãããå€ã¯ãåºãåŒçšãããŠããæ¥çãã³ãããŒã¯ãåæ ããŠããŸããå®å šæ§ãéèŠãããç°å¢ãèŠå¶ã®å³ããç°å¢ã§æŽ»åããããŒã ã¯ãããå³ãããããå€ãé©çšããå¿ èŠããããŸãã
è€é床ã¡ããªã¯ã¹
埪ç°çè€éæ§ é¢æ°ãŸãã¯ã¡ãœãããéãç·åœ¢ç¬ç«ãªãã¹ã®æ°ã枬å®ããŸãããã㯠1976 幎㫠Thomas McCabe ã«ãã£ãŠå°å
¥ãããçŸåšã§ãæãåºã䜿çšãããŠããè€éæ§ææšã§ãããã®åŒã¯ã決å®ç¹ã if, else if, switch ã±ãŒã¹ãã«ãŒãæ¡ä»¶ã catch ãããã¯ãæ¡ä»¶æŒç®åãããã³ 1 ã远å ããŸããåå²ã®ãªã颿°ã®åŸªç°çè€é床㯠1 ã§ãã
| 埪ç°çè€éæ§ | è§£é |
|---|---|
| 1-5 | ã·ã³ãã«ã§ããã¹ããç°¡å |
| 6-10 | é©åºŠã§ç®¡çãããã |
| 11-20 | è€éã«ãªãããã¹ããé£ãããªã |
| 21-50 | éåžžã«é«ããªã¹ã¯ããªãã¡ã¯ã¿ãªã³ã°ãæšå¥š |
| 50ä»¶ä»¥äž | æ€èšŒäžå¯èœã§ãã»ãŒç¢ºå®ã«æ¬ é¥ãå«ãŸããŠãã |
é«ã埪ç°çè€éåºŠã¯æ¬ é¥å¯åºŠãšåŒ·ãçžé¢é¢ä¿ããããŸããIEEE Transactions on Software Engineeringã«æ²èŒãããç ç©¶ã§ã¯ã埪ç°çè€é床ã10ãè¶ ãã颿°ã¯ãããåçŽãªé¢æ°ãããæ¬ é¥çãèããé«ãããšãããããŸããã 埪ç°çè€éåºŠåæ ã¬ã¬ã·ãŒã³ãŒãããŒã¹ã«ãããæžå¿µäºé ã¯ãé·å¹Žã®ä¿å®äœæ¥ã®äžã§ãå šäœæ§é ã®ãªãã¡ã¯ã¿ãªã³ã°ãäžåºŠãè¡ãããã«ãæææ±ºå®ããžãã¯ãèç©ãããŠãã颿°ãèŠã€ããããšã§ããã
NPath ã®è€éã 颿°å ã®äžæã®å®è¡ãã¹ã®æ°ãã«ãŠã³ãããŸããããã«ã¯ããã¹ããããæ¡ä»¶ãšã«ãŒãã«ãã£ãŠäœæããããã¹ãå«ãŸããŸãã埪ç°çè€é床ã¯åå²ãç·åœ¢ã«ã«ãŠã³ãããŸãããNPath è€é床ã¯åå²ãä¹ç®ããŸãã3 ã€ã® if-else ãããã¯ãé£ç¶ãã颿°ã¯ã埪ç°çè€é床㯠4 ã§ãããNPath è€é床㯠8 ã«ãªããŸããããã¯ã忡件ãç¬ç«ããŠçãŸãã¯åœã«ãªãå¯èœæ§ãããããã§ããNPath è€é床ã¯ãã¹ãã«ãã£ãŠææ°é¢æ°çã«å¢å ããŸãã200 ãè¶ ããå€ã¯ãã©ã®ããŒã ãçŸå®çã«äœæã§ãããã¹ã ã±ãŒã¹ãããå€ãã®ãã¹ã ã±ãŒã¹ãå¿ èŠãšãã颿°ã§ããããšã瀺ããŠããŸãã
èªç¥è€éæ§ SonarSourceã«ãã£ãŠå°å
¥ãããã³ãŒãã«å«ãŸãããã¹ã®æ°ã§ã¯ãªããã³ãŒãã®çè§£ã®é£ãããæž¬å®ããŸããç·åœ¢åå²ããããã¹ããå³ããããã«ãã£ããŸãã if å
éš while å¥ã®ãã®ã®äžã« if 3åé£ç¶ã§ããé«ãã¹ã³ã¢ if åã埪ç°çè€é床ãæã€ã¹ããŒãã¡ã³ããèªç¥çè€é床ã¯ãéçºè
ãã³ãŒããèªãéã«å®éã«çµéšããå°é£ãã«ããè¿ãå€ã§ããã¡ãœãããããã®èªç¥çè€é床ã15ãè¶
ããå Žåã¯ãäžè¬çã«ã¬ãã¥ãŒå¯Ÿè±¡ãšããŠãã©ã°ãç«ãŠãããŸãã25ãè¶
ããå Žåã¯ãã»ãšãã©ã®éçºè
ã«ãšã£ãŠçè§£ããã®ãéåžžã«é£ãã颿°ã§ããããšã瀺ããŸãã
ãã«ã¹ãããã¡ããªã¯ã¹ ãœãŒã¹ã³ãŒãå ã®4ã€ã®ã«ãŠã³ãïŒç°ãªãæŒç®åïŒn1ïŒãç°ãªããªãã©ã³ãïŒn2ïŒãæŒç®åã®ç·æ°ïŒN1ïŒããªãã©ã³ãã®ç·æ°ïŒN2ïŒïŒãããäžé£ã®å°ºåºŠãå°åºããŸãããã«ã¹ãããã¯ããããã以äžãèšç®ããŸãã
- åºæ¥é« (N à log2(n)): æ å ±ã³ã³ãã³ãã«ãããå®è£ ã®ãµã€ãº
- é£ãã (n1/2 à N2/n2): ã³ãŒãã®èšè¿°ãçè§£ã®é£ããã®æšå®å€
- æºå ïŒããªã¥ãŒã Ãé£æåºŠïŒïŒã³ãŒããå®è£ ãŸãã¯çè§£ããããã«å¿ èŠãªæšå®ç·ç²Ÿç¥çåŽå
ãã«ã¹ãããææšã¯ãé¡äŒŒãã埪ç°çè€é床ãæã€é¢æ°ãæ¯èŒããã©ã¡ããçè§£ãã«ãããã倿ããéã«ç¹ã«æçšã§ããæç¢ºãªååã®å€æ°ã«é¢ãã10åã®åå²ãæã€é¢æ°ã¯ãèšç®ãããã€ã³ããã¯ã¹ãš1æåã®èå¥åã«é¢ãã10åã®åå²ãæã€é¢æ°ãããããã«ã¹ãããé£æåºŠãäœããªããŸãã
ä¿å®æ§ææš
ä¿å®æ§ææ° ã¯ãããŒã«ã»ãªãã³ãšãžã£ãã¯ã»ããŒã²ãã€ã¹ã¿ãŒã«ãã£ãŠéçºãããåŸã«ãã€ã¯ããœããã®Visual Studioã§ä¿å®æ§ã®æšæºææšãšããŠæ¡çšãããè€åçãªææšã§ãããã«ã¹ãããããªã¥ãŒã ã埪ç°çè€é床ãã³ãŒãè¡æ°ãåäžã®ã¹ã³ã¢ã«çµ±åããŠããŸãã
Visual Studio ã®æ°åŒã¯ã0 ãã 100 ãŸã§ã®ã¹ã³ã¢ãçæããŸãã
| ä¿å®æ§ææ° | è©äŸ¡ |
|---|---|
| 20-100 | ç¶æç®¡çããããïŒã°ãªãŒã³ïŒ |
| 10-19 | äžçšåºŠã®ã¡ã³ããã³ã¹äžã®æžå¿µïŒé»è²ïŒ |
| 0-9 | ç¶æç®¡çãé£ããïŒèµ€ïŒ |
ä¿å®æ§ææ°ã¯èŠçŽçµ±èšéã§ããããã¯ãã°ãªãŒã³ãŸãŒã³ã®ã¢ãžã¥ãŒã«éã®è©³çŽ°ãªæ¯èŒããããã¬ãããŸãŒã³ã®ã¹ã³ã¢ãæã€å€ãå€ããã¡ã€ã«ããŸãã¯ã¢ãžã¥ãŒã«ãç¹å®ããã®ã«æã圹ç«ã¡ãŸããPython ã§ã¯ã radon ã©ã€ãã©ãªã¯ä¿å®æ§ææ°ãçŽæ¥èšç®ããŸããVisual Studio ã§ã¯ãã³ãŒã ã¡ããªã¯ã¹ ãŠã£ã³ããŠã«è¡šç€ºãããŸãã éçã³ãŒãåæ ãã©ãããã©ãŒã ã«ãããŠã¯ãä¿å®æ§ææ°ã¯ã埪ç°çè€é床ãã³ãŒãè¡æ°ãšäžŠãã§ãæšæºçãªåºåã®äžã€ãšããŠäžè¬çã«çšããããŸãã
ã³ãŒãè¡æ°ïŒLOCïŒãšKLOC ã³ãŒãããŒã¹ã®ãµã€ãºãè¡æ°ãŸãã¯åè¡åäœã§æž¬å®ããŸããLOCã ãã§ã¯å質ã«ã€ããŠã¯äœãããããŸããããä»ã®ææšã®éèŠãªåæ¯ãšãªããŸããæ¬ é¥å¯åºŠã¯1KLOCãããã®ãã°æ°ãã³ã¡ã³ãå¯åºŠã¯1LOCãããã®ã³ã¡ã³ãæ°ããã¹ãå¯åºŠã¯1LOCãããã®ãã¹ãã¢ãµãŒã·ã§ã³æ°ã§ããLOCã¯è€éãã®ã³ã¹ããåæ ããŸãã埪ç°çè€é床ã20ã®500è¡ã®é¢æ°ã¯ãåãã¹ã³ã¢ã®50è¡ã®é¢æ°ãããã¯ããã«å€§ããªåé¡ã§ãã
ã³ãŒããã£ãŒã³ ã³ãŒã倿Žçãšã¯ãæéçµéã«äŒŽãã³ãŒãã®å€åçã®ããšã§ãåäœæéãããã«ãã¡ã€ã«ããšã«è¿œå ãããè¡æ°ãåé€ãããè¡æ°ã倿Žãããè¡æ°ãåèšããŠæž¬å®ãããŸããã³ãŒã倿Žçãé«ããšããããšã¯ãäžå®å®æ§ã瀺ããŠããŸããé »ç¹ã«å€æŽãããã³ãŒãã¯ãæåããæ£ãããªãã£ãèšèšãäžå®å®ãªèŠä»¶ããŸãã¯ãããé©çšãç¹°ãè¿ãå¿ èŠãšãªããã°ã«å¯Ÿå¿ããŠããå¯èœæ§ããããŸãããã€ã¯ããœããã®èª¿æ»ã«ãããšãã³ãŒã倿Žçãäžäœ10%ã®ãã¡ã€ã«ã«ã¯ã倿Žçã®äœããã¡ã€ã«ããã5åå€ãã®æ¬ é¥ãå«ãŸããŠããŸãããã³ãŒã倿Žçãšæ¬ é¥çã䜵ããŠè¿œè·¡ããããšã§ãé »ç¹ãªå€æŽãå質åäžã«ã€ãªãã£ãŠããã®ãããããšãæ°ããªåé¡ãåŒãèµ·ãããŠããã®ããæããã«ãªããŸãã
ã³ãŒãã«ãã¬ããžã¡ããªã¯ã¹
ãŠããããã¹ãã«ãã¬ããž ã¯ãã³ãŒãããŒã¹å ã®è¡ãåå²ããŸãã¯æ¡ä»¶ã®ãã¡ãåäœãã¹ãã«ãã£ãŠå®è¡ãããå²åã§ããæãæå³ã®ãã圢åŒã¯åå²ã«ãã¬ããžã§ããããã¯ãã³ãŒãå ã®å決å®ããçãšåœã®äž¡æ¹ã®çµæã«ãããŠå°ãªããšã1ã€ã®ãã¹ãã«ãã£ãŠå°éã§ãããã©ããã瀺ããŸããè¡ã«ãã¬ããžã¯æäœãããããäœãã¢ãµãŒãããã«ãã¹ãŠã®è¡ãå®è¡ãããã¹ãã¯ãè¡ã«ãã¬ããž100%ãéæããäœãæ€åºããŸããã
åäœãã¹ãã®ã«ãã¬ããžã«é¢ããæ¥çãã³ãããŒã¯ïŒ
- 50%æªæºïŒäžååãã»ãšãã©ã®æ¬ é¥ã¯ãã¹ãã§æ€åºãããªãã
- 50ïœ75ïŒ ïŒäžçšåºŠãäž»èŠãªçµè·¯ã¯ç¶²çŸ ãããŠããããäŸå€çãªã±ãŒã¹ã¯èŠèœãšãããŠããå¯èœæ§ãé«ã
- 75ïœ90%ïŒã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ã³ãŒãã«é©ããŠããŸã
- 90%以äžïŒå®å šæ§ã極ããŠéèŠãªã·ã¹ãã ãé«ä¿¡é Œæ§ã·ã¹ãã ãé©ããŠãã
å®å šæ§ãéèŠãªã¢ããªã±ãŒã·ã§ã³ã«ãããã³ãŒãã«ãã¬ããž ãã峿 Œãªåºæºã«æºæ ããŠããŸããèªç©ºãœãããŠã§ã¢ã«é¢ããDO-178Cããã³æ©èœå®å šã«é¢ããIEC 61508ã§ã¯ãæšæºçãªåäœãã¹ãã§ã¯éæã§ããªãã«ãã¬ããžèŠä»¶ïŒæé«éèŠåºŠã¬ãã«ã§ã¯MC/DCã«ãã¬ããžïŒãèŠå®ãããŠããŸããå®å šæ§ãéèŠãªã¢ããªã±ãŒã·ã§ã³ã§ã³ãŒãå質ãåäžãããã«ã¯ãæ¡ä»¶/å€å®ã«ãã¬ããžã远跡ããèªèšŒæ©é¢ãå¿ èŠãšããæ£åŒãªèšŒæ ãçæã§ããã«ãã¬ããžããŒã«ãå¿ èŠã§ãã
ãã¹ãå¯åºŠ ã¯ãæ¬çªã³ãŒãã®ãµã€ãºã«å¯Ÿãããã¹ãã¢ãµãŒã·ã§ã³ã®æ°ã枬å®ããããšã§ãã«ãã¬ããžãè£å®ããŸããã«ãã¬ããžãé«ããã¹ãå¯åºŠãäœãå Žåã¯ãåäœãæå³ã®ããåœ¢ã§æ€èšŒããã«ã³ãŒããå®è¡ããŠãããã¹ãã瀺ããŠããå¯èœæ§ããããŸãããã¹ãå¯åºŠãé«ãã«ãã¬ããžãäœãå Žåã¯ããã¹ããã³ãŒãããŒã¹ã®ããäžéšã«éäžããŠããããšã瀺ããŠããŸãã
æ¬ é¥ææš
ãã°å¯åºŠ ïŒæ¬ é¥å¯åºŠãšãåŒã°ããïŒã¯ãã³ãŒã1,000è¡ïŒKLOCïŒãããã®ç¢ºèªæžã¿æ¬ 饿°ã§ããããã¯ãã³ãŒãã®æ£ç¢ºæ§ãæãçŽæ¥çã«å®éçã«æž¬å®ããææšã§ããCISQã®æ¥çãã³ãããŒã¯ã«ãããšãåžè²©ã®æ¢è£œãœãããŠã§ã¢ã¯ããã¹ãåã¯å¹³åããŠ1,000è¡ããã15ïœ50åã®æ¬ é¥ãããããã¹ããšãªãªãŒã¹åŸã«ã¯ãé«å質ã®åžè²©ãœãããŠã§ã¢ã¯éåžžã1,000è¡ããã1åæªæºã®æ¬ é¥ã§åäœããŸãã
éçè§£æçµæ ãã¹ããæ¬çªç°å¢ã§ã®äœ¿çšã«ãã£ãŠæ¬ é¥ã確èªãããåã«ãããããã®æ¬ é¥å¯åºŠãæšå®ããŸããSonarQubeãCheckmarxãããã³ SMART TS XL æ¢ç¥ã®æ¬ é¥ãè匱æ§ã«é¢é£ãããã¿ãŒã³ãã³ãŒãããŒã¹ããåæããæ·±å»åºŠå¥ã«åé¡ãããæœåšçãªåé¡ã®æ°ãç®åºããŸããé倧ãªåé¡ãé害ãšãªãåé¡ã®çºèŠæ°ãšã³ãŒãè¡æ°ïŒLOCïŒã®æ¯çã¯ãã³ãŒãããã¹ã段éã«å ¥ãåã«ãã³ãŒãåè³ªã®æ©æææšãšãªããŸãã
ã³ãŒãã®èãã®å¯åºŠ ã¢ã³ããã¿ãŒã³ãéè€ã³ãŒããé·ããã颿°ãéå°ãªã¯ã©ã¹çµåãæ©èœçŸšæããŽãããªããžã§ã¯ãã®ååšãã1,000è¡ãããã§ã«ãŠã³ãããŸããã³ãŒãã®èãã¯ããã«é害ãåŒãèµ·ããããã§ã¯ãããŸããããå°æ¥ã®æ¬ é¥ãä¿å®ã³ã¹ããäºæž¬ããŸããã³ãŒãã®èããå¯éããŠããã³ãŒãããŒã¹ã§ã¯ãèç©ãããæ§é äžã®åé¡ã«å¯ŸåŠããå¿ èŠããããããå°æ¥ã®å€æŽã®ã³ã¹ããé«ããªããŸãã
èªã¿ããããšã¹ã¿ã€ã«ã®ææš
ã³ã¡ã³ãå¯åºŠ ã³ã¡ã³ãè¡æ°ãšã³ãŒãè¡æ°ã®æ¯çã§ããæé©ãªç¯å²ã¯èšèªãããŒã ã®æ
£ç¿ã«ãã£ãŠç°ãªããŸãããé垞㯠10 ïœ 30% ã§ãã10% æªæºã¯ãããã¥ã¡ã³ããäžååãªã³ãŒãã瀺ããŠããå¯èœæ§ããããŸãã50% ãè¶
ãããšãã³ãŒããè€éãããŠãèªæã§ãªãããžãã¯ã«ã€ããŠè©³çްãªèª¬æãå¿
èŠã«ãªãå¯èœæ§ããããŸããã³ã¡ã³ãã®è³ªã¯éãããéèŠã§ããã³ãŒãã®åäœãèšãæããã³ã¡ã³ã (// increment i by 1ïŒã¯äœã远å ããªãããç¹å®ã®ã¢ã«ãŽãªãºã ãéžæãããçç±ã説æããã³ã¡ã³ãã¯å€§ããªäŸ¡å€ã远å ããã
åœåèŠåãžã®æºæ ãããžã§ã¯ãã®åœåèŠåã«æºæ ããŠããèå¥åïŒå€æ°ã颿°ãã¯ã©ã¹ïŒã®å²åãæž¬å®ããŸããèªååããŒã«ã¯ããªã³ãã£ã³ã°èšå®ã®äžéšãšããŠåœåèŠåã匷å¶ã§ããŸããäžè²«æ§ã®ããåœåã¯ãéçºè ãèå¥åã®ååã ãã§ãã®ç®çãäºæž¬ã§ããããã銎æã¿ã®ãªãã³ãŒããèªãéã®èªç¥è² è·ã軜æžããå¯èªæ§ãåäžãããäžã§æã广çãªæ¹åçã®äžã€ã§ãã
ã³ãŒãéè€ç è€æ°ã®å Žæã«ãŸããã£ãŠéè€ããŠããã³ãŒãããŒã¹ã®å²åãæž¬å®ããŸããéåžžãéè€çã5%ãè¶ ãããšåé¡èŠãããŸããã³ãŒãã®éè€ã¯ä¿å®äœæ¥ãå¢å€§ãããŸããéè€ããããžãã¯ã®ãã°ã¯ãã¹ãŠã®ã³ããŒã§çºèŠããŠä¿®æ£ããå¿ èŠããããåäœã®å€æŽã¯ãã¹ãŠã®ã³ããŒã«äžè²«ããŠé©çšããªããã°ãªããŸããããŸããéè€ã¯ã³ãŒãããŒã¹ã®å®éã®ãµã€ãºãäžæçã«ããŸãã100,000äžè¡ã®ã³ãŒããããããã«èŠããã·ã¹ãã ã§ããå®éã«ã¯40,000äžè¡ã®åºæã®ããžãã¯ãš60,000äžè¡ã®ã³ããŒãå«ãŸããŠããå¯èœæ§ããããŸãã
ã»ãã¥ãªãã£ãšæè¡çè² åµã®ææš
æè¡çè² åµæ¯ç SonarQubeã§ã¯ãæè¡çè² åµæ¯çã¯ãã³ãŒãããŒã¹ã®æšå®ä¿®åŸ©ã³ã¹ããšæšå®éçºã³ã¹ãã®æ¯çãšããŠå®çŸ©ãããŠããŸããæè¡çè² åµæ¯çã5%æªæºã§ããã°ã¯ãªãŒã³ãªã³ãŒãããŒã¹ãšã¿ãªããã20%ãè¶ ãããšãå°æ¥ã®éçºãèããé ãããã»ã©ã®é倧ãªè² åµãèç©ãããŠããããšã瀺ããŸãã
ã»ãã¥ãªãã£ãããã¹ãããå¯åºŠ 1,000è¡ãããã®ã³ãŒãè¡æ°ã§ãã»ãã¥ãªãã£ã¬ãã¥ãŒãå¿ èŠãªã³ãŒããã¿ãŒã³ïŒè匱æ§ã®ç¢ºèªã§ã¯ãªããã»ãã¥ãªãã£äžã®åé¡ç¹ïŒã®æ°ãã«ãŠã³ãããŸããäŸãšããŠã¯ããã©ã¡ãŒã¿åãããŠããªãSQLã¯ãšãªãéæšå¥šã®æå·å颿°ã®äœ¿çšãæ€èšŒãããŠããªãå ¥ååŠçãªã©ãæããããŸããéçè§£æããŒã«ã¯ãããã®ãã¿ãŒã³ãèå¥ããæåã«ããã»ãã¥ãªãã£ã¬ãã¥ãŒãå¿ èŠãªé ç®ãšããŠæç€ºããŸãã
è匱æ§å¯åºŠ 1,000è¡ãããã®ç¢ºèªæžã¿ã»ãã¥ãªãã£èåŒ±æ§æ°ãã«ãŠã³ãããéåžžã¯CVSSã®æ·±å»åºŠå¥ã«åé¡ããŸãããã®ææšã¯ããªãªãŒã¹åŸã®ã»ãã¥ãªãã£ç£æ»ãç¶ç¶çãªã»ãã¥ãªãã£ç£èŠãã€ãã©ã€ã³ã«ãããŠæãæå¹ã§ãã
ã³ãŒãåè³ªãæž¬å®ããæ¹æ³ïŒå®è·µçãªã¢ãããŒã
ã³ãŒãåè³ªã®æž¬å®ã¯ãåçºçãªäœæ¥ã§ã¯ãªããéçºã¯ãŒã¯ãããŒã«çµã¿èŸŒãŸããç¶ç¶çãªå®è·µã§ããæž¬å®ãããŠããªãã³ãŒãããŒã¹ããå§ããããŒã ã«ã¯ãå®è·µçãª4段éã®ã¢ãããŒãã广çã§ãã
ãã§ãŒãº1ïŒåºæºå€ãèšå®ããã 倿Žãå ããåã«ãã³ãŒãããŒã¹å šäœã«å¯ŸããŠå®å šãªéçè§£æãå®è¡ããŠãã ããã埪ç°çè€é床ååžããã¡ã€ã«ããšã®ä¿å®æ§ææšãæ¬ é¥å¯åºŠãã«ãã¬ããžãéè€çã®çŸåšã®å€ãèšé²ããŠãã ããããã®ããŒã¹ã©ã€ã³ã¯ãä»åŸã®ãã¹ãŠã®æž¬å®å€ãæ¯èŒããåºçºç¹ãšãªããŸããããŒã¹ã©ã€ã³ããªããšã倿Žãå質ãåäžãããŠããã®ãããããšãäœäžãããŠããã®ãã倿ã§ããŸããã
ãã§ãŒãº2ïŒéŸå€ãå®çŸ©ããã åææšã«ã€ããŠãç¶æ³ã«å¿ããé©åãªèš±å®¹éŸå€ãèšå®ããŠãã ãããåçšWebã¢ããªã±ãŒã·ã§ã³ãšå®å šæ§ã極ããŠéèŠãªå»çæ©åšã§ã¯ãé©åãªéŸå€ã¯ç°ãªããŸãããããã®éŸå€ããããžã§ã¯ãã®åè³ªåºæºã«æèšããããŒã å šäœãé²èЧã§ããããã«ããŠãã ããã
ãã§ãŒãº3ïŒCI/CDãžã®çµ±åã CIãã€ãã©ã€ã³ãæ§æããŠãã³ããããŸãã¯ãã«ãªã¯ãšã¹ãããšã«äž»èŠãªã¡ããªã¯ã¹ãèšç®ããããã«ããŸããã¡ããªã¯ã¹ã蚱容ç¯å²å€ã«ãªã倿Žã«ã¯ãã©ã°ãç«ãŠãŸãã埪ç°çè€é床ããããå€ãè¶ ããæ°èŠã³ãŒããã«ãã¬ããžããããå€ãäžåãã³ãŒãããŸãã¯éèŠãªéçè§£æçµæãããããã³ãŒããå°å ¥ããããŒãžã¯ãããã¯ããŸããããã«ãããã¡ããªã¯ã¹ã®ãããå€ãã¬ã€ãã©ã€ã³ãã匷å¶çãªæšæºãžãšå€ãããŸãã
ãã§ãŒãº4ïŒã¹ãããã·ã§ããã§ã¯ãªããåŸåãã¬ãã¥ãŒããã åäžã®ã¡ããªãã¯å€ã¯æ å ±æäŸã«åœ¹ç«ã¡ãŸãããåŸåãææ¡ããããšã§å ·äœçãªå¯Ÿçãè¬ããããšãã§ããŸããç¹å®ã®ã¢ãžã¥ãŒã«ã«ãããã³ãŒã倿Žçã®äžæåŸåããªãªãŒã¹ãµã€ã¯ã«å šäœã«ãããã«ãã¬ããžã®äœäžåŸåãç¹å®ã®ãã¡ã€ã«ã«ãããä¿å®æ§ææ°ã®äœäžåŸåãªã©ã¯ãã¹ãããã·ã§ããæž¬å®ã§ã¯èŠéããŠããŸãå¯èœæ§ã®ããåé¡ã瀺åããŠããŸããåã¹ããªã³ãã®æ¯ãè¿ãã«ãããŠãã¡ããªãã¯ã®åŸåã確èªããŸãããã
ãšã³ã¿ãŒãã©ã€ãºãã¢ãžã£ã€ã«ãããã³å®å šæ§ãéèŠãããç°å¢ã«ãããã³ãŒãåè³ªææš
ã¢ãžã£ã€ã«éçºã«ãããã³ãŒãåè³ªææš
ã¢ãžã£ã€ã«ããŒã ã¯ãã³ãŒãåè³ªææšã«é¢ããŠç¹æã®èª²é¡ã«çŽé¢ããŸããçããµã€ã¯ã«ã§åäœãããœãããŠã§ã¢ãæäŸããããšã«éç¹ã眮ããšãå質åé¡ã解決ãããåã«ãªãªãŒã¹ããªããã°ãªããªããšãããã¬ãã·ã£ãŒãçããå¯èœæ§ãããã®ã§ãã解決çã¯ãææšãæŸæ£ããããšã§ã¯ãªããå®äºã®å®çŸ©ã«ææšãå«ããããšã§ããã¹ããŒãªãŒã¯ãæ©èœãåäœããããã«ãªã£ãæç¹ã§å®äºããã®ã§ã¯ãªããæ©èœãåäœãããã€æ°ããã³ãŒããããŒã ã®åè³ªåºæºãæºãããæç¹ã§å®äºãããšèšããã®ã§ãã
ã¢ãžã£ã€ã«éçºã«ãããå è¡ææšïŒåé¡ãçºçããåã«äºæž¬ããææšïŒã«ã¯ãã³ãŒã倿Žçãã¹ããªã³ãããšã«æ°ãã«çºçããæè¡çè² åµããªãªãŒã¹ããšã®éçè§£æã«ãããçºèŠä»¶æ°ã®æšç§»ãªã©ãå«ãŸããŸããé è¡ææšïŒæ¢ã«çºçããææãæž¬å®ããææšïŒã«ã¯ããã¹ãã§çºèŠãããæ¬ é¥å¯åºŠãä¿å®äœæ¥æéãšæ°æ©èœéçºæéã®æ¯çããªãªãŒã¹ããšã®æ¬çªç°å¢ã«ãããã€ã³ã·ãã³ãçºççãªã©ãå«ãŸããŸãã
æè¡ãã¥ãŒããªãžã§ã³ã¹ã«ãããã³ãŒãå質
M&AååŒããã³ããŒéžå®ãã·ã¹ãã è²·åããã»ã¹ã«ãããæè¡ãã¥ãŒããªãžã§ã³ã¹ã§ã¯ãã³ãŒãããŒã¹å šäœã«ãããã³ãŒãåè³ªã®æ§é çãªè©äŸ¡ãæ±ããããŸãããã®æèã«ãããŠæãéèŠãªææšã¯ä»¥äžã®ãšããã§ãã
- ä¿å®æ§ææšã®ååžã³ãŒãããŒã¹ã®ãã¡ãèµ€ãé»ãç·ã®ãŸãŒã³ã«è©²åœããå²åã¯ã©ããããã§ããïŒ
- æè¡çè² åµæ¯çéçºã³ã¹ãã«å¯Ÿãã修埩費çšã®èŠç©é¡ã¯ã©ã®ãããã§ããïŒ
- æ¬ é¥å¯åºŠ: 1,000è¡ãããã«æ¢ç¥ã®æ¬ é¥ãããã€ååšãããããŸããããã¯æ¥çãã³ãããŒã¯ãšæ¯èŒããŠã©ããªã®ã
- ãã¹ãã«ãã¬ããžã³ãŒãããŒã¹ã®ãã¡ãèªåãã¹ãã§ã«ããŒãããŠããå²åãšããã®ã¬ãã«ïŒè¡ãåå²ãæ¡ä»¶ïŒ
- äŸå床ã®å¥åº·: å€éšäŸåé¢ä¿ãããã€ååšãããããã®ãã¡ããã€ãå€ããªã£ãŠãããããŸãã¯æŸæ£ãããŠãããããããŠã¢ãŒããã¯ãã£ã®çµå床ã¯ã©ã®çšåºŠãã
- ã³ãŒãã®éè€ã³ãŒãããŒã¹ã®ã©ã®ãããã®å²åãéè€ããŠããããã€ãŸãä¿å®ãªã¹ã¯ã¯ã©ã®ããããã
ã®æèã§æ€èšãããšã ãšã³ã¿ãŒãã©ã€ãºã³ãŒãè©äŸ¡ã®ããã®åœ±é¿åææ£ç¢ºãªãã¥ãŒããªãžã§ã³ã¹ãè¡ãã«ã¯ãåã³ã³ããŒãã³ããåè³ªææšã§ã©ã®ãããªã¹ã³ã¢ãç²åŸãããã ãã§ãªããã³ã³ããŒãã³ãå士ãã©ã®ããã«äŸåãåã£ãŠããããçè§£ããããšãäžå¯æ¬ ã§ããå€ç«ããäœå質ã®ã¢ãžã¥ãŒã«ã¯ã修埩ã³ã¹ãã管çå¯èœãªç¯å²ã«åãŸãå¯èœæ§ããããŸãããå¯ãªäŸåé¢ä¿ã°ã©ãã®äžå¿ã«ããåãã¢ãžã¥ãŒã«ã¯ãã¯ããã«å€§ããªãªã¹ã¯ã衚ããŸãã
å®å šæ§ãéèŠãããã¢ããªã±ãŒã·ã§ã³ããã³ãã£ã³ããã¯ã¢ããªã±ãŒã·ã§ã³ã«ãããã³ãŒãå質
èªç©ºãèªåè»ãå»çæ©åšãç£æ¥å¶åŸ¡ãªã©ã®å®å šæ§ã極ããŠéèŠãªã¢ããªã±ãŒã·ã§ã³ã§ã¯ãäžè¬çãªåçšãœãããŠã§ã¢ãè¶ ããã³ãŒãåè³ªåºæºãæ±ããããŸããäž»ãªéãã¯ä»¥äžã®ãšããã§ãã
- 埪ç°çè€é床ã®å¶éã¯éåžž10以äžã«èšå®ãããäŸå€ã«ã¯æ£åŒãªæ£åœåãå¿ èŠãšãªãã
- è£åèŠä»¶ã§ã¯ãã©ã€ã³è£åãŸãã¯ãã©ã³ãè£åã§ã¯ãªããMC/DCïŒä¿®æ£æ¡ä»¶/決å®è£åïŒã䜿çšããŸãã
- éçè§£æã¯èªå®ãããããŒã«ã䜿çšããŠå®æœããå¿ èŠããããéåäºé ã¯ææžåããŠè§£æ±ºããããæ£åŒã«æ¿èªãããªããã°ãªããªãã
- ã³ãŒãã®å€æŽé »åºŠã¯å®å šæ§ã®ææšãšããŠç£èŠãããŸããå®å šæ§ãéèŠãªã¢ãžã¥ãŒã«ã§å€æŽçãé«ãå Žåã¯ã远å ã®ã¬ãã¥ãŒãšåæ€èšŒãè¡ãããŸãã
ãã£ã³ããã¯ã¢ããªã±ãŒã·ã§ã³ããèŠå¶æ çµã¿ããåæ§ã®å§åãåããŠããŸããPCI DSSã§ã¯ãã»ãã¥ã¢ãªã³ãŒãã£ã³ã°æšæºãšã³ãŒãã¬ãã¥ãŒããã»ã¹ãæ±ããããŸãã財åå ±åã·ã¹ãã ã«ãããSOXã³ã³ãã©ã€ã¢ã³ã¹ã§ã¯ãèŠä»¶ããã³ãŒãããã¹ãã«è³ããŸã§ã®ãã¬ãŒãµããªãã£ãææžåãããŠããããšãæ±ããããŸããã³ãŒãåè³ªææšã¯ããããã®ããã»ã¹ãæ©èœããŠããããšã客芳çã«èšŒæããŸããã«ãã¬ããžã¬ããŒãã¯ãã¹ããååšããããšã蚌æããéçè§£æã¬ããŒãã¯æ¢ç¥ã®è匱æ§ãã¿ãŒã³ããã§ãã¯ãããããšã蚌æããè€éæ§ã¬ããŒãã¯ã¬ãã¥ãŒæ åœè ãã³ãŒããé©åã«è©äŸ¡ã§ããããšã瀺ããŸãã
èšèªå¥ã®ã³ãŒãåè³ªææš
Pythonã³ãŒãåè³ªææš 次ã®ããã«èšç®ã§ããã radon ïŒåŸªç°çè€é床ãšä¿å®æ§ææ°ïŒ pylint ïŒã³ãŒãã®æªèãšã¹ã¿ã€ã«ã®éåïŒ coverage.py ïŒãã¹ãã«ãã¬ããžïŒ bandit ïŒã»ãã¥ãªãã£äžã®åé¡ïŒ mypy or pyright ïŒåã®æ£ç¢ºæ§ïŒãä¿å®æ§ææ°ã¯ radon Pythonçšã«èª¿æŽãããä¿®æ£ãã«ã¹ãããåŒã䜿çšããŸããã°ã¬ãŒãAã¯20以äžãã°ã¬ãŒãBã¯10ïœ20ãã°ã¬ãŒãCã¯10æªæºã§ãã
RPGã³ãŒãã®å質 IBM i ã§ã¯ãæšæºçãªå質ã¡ããªãã¯ããŒã«ã§ã¯ RPG æ§æãè§£æã§ããªããããå°çšã®ããŒã«ãå¿ èŠã«ãªããŸãã SMART TS XL RPGããã°ã©ã ã®åŸªç°çè€é床ãã³ãŒãè¡æ°ãããã³äŸåé¢ä¿åæãæäŸããŸããããã¯ããããŸã§å質枬å®ã®èªååãäžå¯èœã ã£ãå€§èŠæš¡ãªã¬ã¬ã·ãŒã³ãŒãããŒã¹ã管çããIBM iç°å¢ã«ãšã£ãŠç¹ã«äŸ¡å€ããããŸãã
ã³ãŒãã¬ãã¥ãŒææš
ã³ãŒãã¬ãã¥ãŒã¯ããã®æå¹æ§ã枬å®ã§ããåè³ªç®¡çæŽ»åã§ããã
- ã«ãã¬ããžã確èªããããŒãžåã«æ£åŒãªã¬ãã¥ãŒãåããã³ãããæžã¿ã³ãŒãã®å²å
- ã¬ãã¥ãŒã§çºèŠãããæ¬ é¥ã¬ãã¥ãŒå¯Ÿè±¡ã®å€æŽã»ããã®ãµã€ãºã«å¯Ÿãããã¬ãã¥ãŒäžã«æ€åºãããæ¬ é¥ã®æ°
- ã¬ãã¥ãŒã®æèŠæéãã«ãªã¯ãšã¹ããäœæãããŠããã¬ãã¥ãŒãããããŒãžããããŸã§ã®æé
- ã¬ãã¥ãŒã³ã¡ã³ã解決çã³ãŒã倿Žã«ã€ãªããã¬ãã¥ãŒã³ã¡ã³ãã®å²åãšãåŽäžãããã¬ãã¥ãŒã³ã¡ã³ãã®å²å
é«ãããã©ãŒãã³ã¹ãçºæ®ããããŒã ã¯ãäžè¬çã«ã¬ãã¥ãŒã®ã«ããŒçã90%ãè¶ ããã¬ãã¥ãŒ100è¡ãããå¹³å1ïœ3ä»¶ã®æ¬ é¥ãçºèŠãããã¬ãã¥ãŒæéãçããšããç¹åŸŽããããŸããã¬ãã¥ãŒææšã¯ãã³ãŒãã¬ãã¥ãŒãå質ã²ãŒããšããŠæ©èœããŠããã®ãããããšãåãªã圢åŒçãªãã®ã«ãªã£ãŠããã®ãã倿ããã®ã«åœ¹ç«ã¡ãŸãã
ç¶ç¶çãªã³ãŒãå質ç£èŠ
äžåºŠéãã®ã³ãŒãå質枬å®ã¯ãç¶ç¶çãªã¢ãã¿ãªã³ã°ã«æ¯ã¹ãŠã¯ããã«äŸ¡å€ãäœããã³ãŒãå質ã¯ã³ãŒãããŒã¹ã®åºå®çãªç¹æ§ã§ã¯ãªããã³ãããããšã«å€åãããåè³ªææšãç¶ç¶çã«è¿œè·¡ããªããã°ã仿¥è¯å¥œãªæž¬å®çµæã瀺ããã³ãŒãããŒã¹ã§ããéçºãæ¥ãã 3ã¹ããªã³ãåŸã«ã¯èããå£åããå¯èœæ§ãããã
广çãªç¶ç¶çã³ãŒãå質ç£èŠã«ã¯ä»¥äžãå«ãŸããŸãã
- ã³ãããããšã®ã¡ããªãã¯èšç®: ãµã€ã¯ãããã£ãã¯è€é床ãšéçè§£æã®çµæã¯ãããã·ã¥ããšã«èšç®ãããŸã
- ãã¬ã³ãããã·ã¥ããŒã: äž»èŠææšã®æç³»åè¡šç€ºïŒæ¥æ¬¡ãŸãã¯ãªãªãŒã¹ããšã«æŽæ°ïŒ
- CI/CDã«ãããå質ã²ãŒãä¿å®æ§ãã»ãã¥ãªãã£ãæ¬ é¥ãªã¹ã¯ã«åœ±é¿ãäžããææšã®æå°ãããå€ã®èªåé©çš
- ååž°æ€åºïŒãªãªãŒã¹éã§ææšã倧ãã誀ã£ãæ¹åã«åããå Žåã«ã¢ã©ãŒããçºãã
ã³ãŒãå質åäžã®å è¡ææšãã€ãŸã次æãªãªãŒã¹ã§å質ãåäžãããæªåããããäºæž¬ããã·ã°ãã«ã¯ãã«ãã¬ããžã®åŸåæ¹åãã¹ããªã³ãããšã«å°å ¥ãããæ°ããªè€éæ§ããããŠè§£æ±ºãããã³ãŒãã¹ã¡ã«ãšæ°ãã«å°å ¥ãããã³ãŒãã¹ã¡ã«ã®æ¯çã§ããããããæ£ããæ¹åã«åããŠããå Žåãå質ã¯åäžããŸããããã§ãªãå Žåãå質ã®äœäžã¯å®å šã«çºçããåã«äºæž¬å¯èœã§ãã
èªå®æ¡ä»¶ SMART TS XL ã³ãŒãåè³ªãæž¬å®ããæ¹åãã
SMART TS XL ãã®èšäºã§èª¬æãããŠããã³ãŒãå質ã¡ããªã¯ã¹ã®å šã»ããããéçºç°å¢ã®ãã¹ãŠã®èšèªãšãã©ãããã©ãŒã (COBOLãJCLãJavaã.NETãPythonãJavaScriptãTypeScriptãRPGãSQL ãªã©) ã§èšç®ããŸããã»ãšãã©ã®å質ããŒã«ã¯äžåºŠã« 1 ã€ã®èšèªã§åäœããŸããã SMART TS XL ã·ã¹ãã å šäœã®çµ±äžãããå質ã¢ãã«ãæ§ç¯ããããšã§ãèšèªéã§ã®å質æ¯èŒããã¡ã€ã«ã¬ãã«ã§ã¯ãªãã·ã¹ãã ã¬ãã«ã§ã®ã¡ããªã¯ã¹ã®è¿œè·¡ãåäžèšèªããŒã«ã§ã¯æ€åºã§ããªãã³ã³ããŒãã³ãéã®å質åé¡ã®ç¹å®ãå¯èœã«ãªããŸãã
å€§èŠæš¡ã§å€èšèªã®ã³ãŒãããŒã¹ãæã€äŒæ¥çµç¹ã«ãšã£ãŠã éçã³ãŒãåæ ã®èœå SMART TS XL æè¡ãã¥ãŒããªãžã§ã³ã¹ãã¬ã¬ã·ãŒã·ã¹ãã ã®è¿ä»£åèšç»ãç¶ç¶çãªå質æ¹åã«å¿ èŠãªåºæºãšãªã枬å®å€ãæäŸããŸãã äŸåé¢ä¿ãããã³ã° ãã®æ©èœã¯ãå質è©äŸ¡ãæ§é çãªæžå¿µäºé ã«ãŸã§æ¡åŒµããŸããã€ãŸããã©ã®ã³ã³ããŒãã³ãã«æãäŸåããŠããããã©ã®å€æŽãæã倧ããªåœ±é¿ãåãŒããããããŠåè³ªææšãšäŸåé¢ä¿ã®äžå¿æ§ãçµã¿åãããå Žåã«ãã³ãŒãããŒã¹ã®ã©ã®é åãæãé«ãä¿å®ãªã¹ã¯ã瀺ããããšãã£ãç¹ã§ãã
SMART TS XLã®ã³ãŒãå質ã¡ããªã¯ã¹ã¯ãAPI ãä»ã㊠DevOps ãã€ãã©ã€ã³ãšçµ±åãããCI/CD ã¬ã€ã€ãŒã§å質ã²ãŒããå®çŸããŸããã³ãããã«ãã£ãŠåŸªç°çè€é床ããããå€ãè¶ ãã颿°ãå°å ¥ãããå Žåãã«ãã¬ããžãèšå®ãããæå°å€ãäžåã£ãå ŽåããŸãã¯é倧ãªéçè§£æçµæãæ€åºãããå Žåããã€ãã©ã€ã³ã¯ãã«ãã倱æãããéçºè ã«äœã枬å®ããããªããããå€ã«éããªãã£ãã®ããæ£ç¢ºã«äŒããç¹å®ã®èšºæã¡ãã»ãŒãžã衚瀺ã§ããŸããããã«ãããå質管çã®å®æœããªãªãŒã¹åŸã®ç£æ»ããéçºäžã®ãã£ãŒãããã¯ãžãšç§»è¡ããä¿®æ£ã³ã¹ããæãäœã段éã§å質åé¡ãæ€åºããããšã§ãã³ã¹ããåæžã§ããŸãã
ã³ãŒãå質ã¯ããŒã ã§åãçµãã¹ããã®ã§ãããå ±åæžã§ã¯ãªãã
ã³ãŒãå質ã¡ããªã¯ã¹ã®äŸ¡å€ã¯ãããŒã ãããããã©ã®ããã«æŽ»çšãããã«ãã£ãŠå®å šã«æ±ºãŸããŸãã誰ãè¡åãèµ·ãããªãååæããšã®ã³ãŒãå質ã¬ããŒãã¯ãã¬ããŒãããªããããæªããšèšããŸãããªããªããã³ãŒãããŒã¹ãæŸçœ®ããããŸãŸå£åããŠããã«ãããããããå質ã管çãããŠãããšããé¯èŠãçã¿åºãããã§ããã¡ããªã¯ã¹ã¯ãå ·äœçãªè¡åãä¿ããšãã«äŸ¡å€ãçºæ®ããŸããäŸãã°ãæ°ãã颿°ã®åŸªç°çè€éæ§ã®æ¥å¢ãããã®é¢æ°ãããŒãžããåã«ãªãã¡ã¯ã¿ãªã³ã°ã®è°è«ãä¿ããããã¢ãžã¥ãŒã«ã®ã«ãã¬ããžã®äœäžããã¹ãã¹ããªã³ããä¿ããããç¹å®ã®ã³ã³ããŒãã³ãã®æ¬ é¥å¯åºŠã®å¢å ãããã®ã³ã³ããŒãã³ãã®èšèšã®æ£åŒãªã¬ãã¥ãŒãä¿ããããããããªå Žåã§ãã
ãã®ãããªæåãæ§ç¯ããã«ã¯ããªãªãŒã¹åŸã§ã¯ãªãéçºæ®µéã®é©åãªã¿ã€ãã³ã°ã§ææšãå¯èŠåãããããå ·äœçãªããŒã ã®ã³ãããã¡ã³ããšçµã³ã€ããå¿ èŠããããŸããã¹ããªã³ãããšã®æ¯ãè¿ãã§ã³ãŒãå質ã®åŸåãã¬ãã¥ãŒããå®äºã®å®çŸ©ã«å質ã®éŸå€ãå«ããææšã®æªåãæ©èœã®æªåãšåæ§ã«çå£ã«æ±ãããŒã ã¯ãä¿å®ã³ã¹ããäœããæ¬çªç°å¢ã§ã®ã€ã³ã·ãã³ãçºçä»¶æ°ãå°ãªãã³ãŒãããŒã¹ãæ§ç¯ã§ããŸããæž¬å®ã¯åºçºç¹ã§ãããèŠåŸãããçµæãçã¿åºãã®ã§ãã