|
|
|
Á¤ÀûºÐ¼®µµ±¸ - C, C++, C# »ê¾÷º° Ç¥ÁØ Áö¿ø
C, C++, C# Á¤ÀûºÐ¼®µµ±¸´Â ÄÄÆÄÀÏ·¯ ºôµå °úÁ¤ ¾øÀÌ ÃÖ»óÀ§ ÄÚµå °áÇÔ °ËÁõ ±â¼úÀÎ Inter-procedural Path Analysis·Î ÄÚµå °áÇÔ°ú º¸¾È ÇãÁ¡À» Á¡°Ë/°ËÁõÇÏ¿© ÄÚµåÀÇ ½Å·Ú¼º(reliability), ¾ÈÀü¼º(safety), º¸¾È¼º(security), ÄÚµå Ç°Áú(code metrics)À» ¸ðµÎ Á¡°ËÇÏ´Â ÅëÇÕ Á¤ÀûºÐ¼®µµ±¸ÀÔ´Ï´Ù.
ÀÓº£µðµå ÄÚµù °¡À̵åÀÎ MISRA-C & MISRA-C++Àº ÄÚµåÀÇ ½Å·Ú¼º°ú ¾ÈÁ¤¼ºÀ» °ËÁõÇϱâ À§Çؼ, ÀÚµ¿Â÷, ÀüÀÚ, ¿ìÁÖ Ç×°ø, Åë½Å, ÀÇ·á, ±¹¹æ µî Á¦Á¶ ºÐ¾ß¿¡¼ ÀÓº£µðµå ½Ã½ºÅÛ °³¹ßÀÇ ÄÚµù Ç¥ÁØÀ¸·Î ³Î¸® »ç¿ëÇÏ°í ÀÖ½À´Ï´Ù.
ÃÖ±Ù, ³»¿¬±â°üÂ÷¿¡¼ Àü±âÂ÷·Î ´ëÀüȯÇÏ´Â °úÁ¤¿¡¼ ¹Ì·¡ ÀÚµ¿Â÷ Â÷·®¿¡ žÀçµÇ´Â ÀÚÀ² ÁÖÇà, °øÀ¯¼ºñ½º µîÀÇ ¼ÒÇÁÆ®¿þ¾î¿¡ ´ëÇÑ ½Å·Ú¼º°ú º¸¾È¼ºÀ» ³ôÀ̱â À§ÇØ Â÷·®¿ë ÀÓº£µðµå ¼ÒÇÁÆ®¿þ¾î¿¡¼ ¿ä±¸µÇ´Â Á¤º¸º¸È£ ¼ºñ½º(±â¹Ð¼º, ¹«°á¼º, °¡¿ë¼º, ÀÎÁõ)ÀÇ È®º¸°¡ ÄÚµù ´Ü°è¿¡¼ ÇʼöÀûÀ¸·Î ¿ä±¸µÇ°í ÀÖ½À´Ï´Ù.
|
|
±¹³»¿Ü »ê¾÷ Ç¥ÁØ Áö¿ø
ÄÚµù °¡À̵å Á¡°Ë: MISRA-C/C++, AUTOSAR C++, JPL-C, MS C# Coding Convention µî
Run-time Error Á¡°Ë: CWE-658 (C: 83 ±ÔÄ¢), CWE-659 (C++: 87 ±ÔÄ¢)
(±¹¿Ü) º¸¾È Ãë¾àÁ¡ Á¡°Ë: CWE, OWASP, CERT-C/C++
(±¹³») º¸¾È Ãë¾àÁ¡ Á¡°Ë: SW °³¹ß º¸¾È °¡À̵å(49±ÔÄ¢), ±ÝÀ¶ ITºÎ¹® Ãë¾àÁ¡, ±¹Á¤¿ø Ãë¾àÁ¡
¹æ»çû ¹«±âü°è SW Á¤Àû ½ÃÇè Á¡°Ë: ÄÚµù±ÔÄ¢, Ãë¾àÁ¡ ¹× º¸¾È¾àÁ¡, ¼Ò½ºÄÚµå ¸ÞÆ®¸¯
Â÷·®¿ë ÀÓº£µðµå C ÄÚµå °ËÁõ: MISRA-C, Run-time, Code Metrics
Â÷·®¿ë ÀÓº£µðµå C º¸¾È ÄÚµù Á¡°Ë: CERT-C, CWE
Â÷·®¿ë ÀÓº£µðµå C++ ÄÚµå °ËÁõ: MISRA-C++, Run-time, AUTOSAR C++14, CodeMetrics
Â÷·®¿ë ÀÓº£µðµå C++ º¸¾È ÄÚµù Á¡°Ë: CERT-C++, CWE
(Other Code Assurance) SQL, Code Metrics, ¸ÞŸ µ¥ÀÌÅÍ °ËÁõ µî
(Inter-procedural Data Analysis) RuleÀÇ Option ¼³Á¤ÇÒ ÇÊ¿ä ¾øÀ½
ÁÖ¿ä ±â´É
(C++ Language Standard) C++11, C++14, C++17, C++20 Áö¿ø
(2nd Code Analysis) SQL µî
(No Compile Step) ÄÚµå ÄÄÆÄÀÏ °úÁ¤ÀÌ ¾ø´Â ¼Ò½º ÄÚµå ºÐ¼®
(Fully Code Assurance)Â÷·®¿ë ÀÓº£µðµå C, C++ ÄÚµå °ËÁõ°ú º¸¾È °¡À̵å ÅëÇÕ Á¡°Ë
(Rule Name) CWE-ID µî Ç¥Áرâ¹Ý One-Guide to One-Rule Á¦°øÀ¸·Î °úŽ¿¹¹æ(¸ÅÇκÒÇÊ¿ä)
(Exception Code Process) ¿¹¿Ü ÄÚµå ÀÚµ¿ µî·Ï ¹× °ü¸®·Î Á¡°Ë½Ã ÀÚµ¿ Á¦¿Ü
(SDLC Chain) Á¤ÀûºÐ¼®µµ±¸°ú Çü»ó°ü¸®½Ã½ºÅÛÀÇ ¿¬µ¿À¸·Î ÄÚµå Á¡°Ë ÀÚµ¿È
(Plug-in) Eclipse, Visual Studio, Jenkins µî ´Ù¼ö
¹«±âü°è SW ½Å·Ú¼º ½ÃÇè ¿ä±¸»çÇ× Áö¿ø
(C, C++, Java, C# Á¤Àû ½ÃÇè) ÄÚµù±ÔÄ¢, ¼ÒÇÁÆ®¿þ¾î Ãë¾àÁ¡, º¸¾È¾àÁ¡, ¼Ò½ºÄÚµå ¸ÞÆ®¸¯
(C, C++, Java, C# µ¿Àû ½ÃÇè) ÄÚµå ½ÇÇà·ü
ÀÚµ¿Â÷ ¾ÈÀü¼º ¿ä±¸»çÇ× Áö¿ø
(C, C++, Java Á¤Àû °ËÁõ) MISRA-C/C++, Run-Time Error, Code Metrics
(C, C++, Java º¸¾È °ËÁõ) Â÷·®¿ë ÀÓº£µðµå º¸¾È ÄÚµù °¡À̵å
(C, C++, Java, C# ´ÜÀ§/ÅëÇÕ °ËÁõ) ¿ä±¸»çÇ× ±â¹Ý °ËÁõ, °áÇÔ ÁÖÀÔ °ËÁõ
±¹Á¦ ¾ÈÀü¼º ¿ä±¸»çÇ× Áö¿ø
ISO 26262(Automotive), DO 178(Aerospace), IEC 61508(Industrial), EN 50128(Railway), IEC 62304(Medical) µî
ÁÖ¿ä °í°´
ÀüÀÚ, Á¦Á¶, ÀÚµ¿Â÷ µî ´ë±â¾÷ÀÇ Àü»ç Ç¥ÁØ µµ±¸
Áõ±Ç»çÀÇ Àü»ç Ç¥ÁØ µµ±¸
±¹Ã¥/¹æ»ê/º¸¾È ¿¬±¸¼ÒÀÇ ½Å·Ú¼º/¾ÈÀü¼º/º¸¾È¼º Á¡°ËÀÇ Ç¥ÁØ µµ±¸
¹«±âü°è ¼ÒÇÁÆ®¿þ¾î Á¤Àû ½ÃÇè µµ±¸
±¹Ã¥¿¬±¸°úÁ¦
|
|
|
|
|