Using the defensive programming method to increase the security of the software in #C language


  1. P. S. Gilmour, “Defensive programming,” Embedded Syst. Program. vol. 3, pp. 60-68, 1989.
  2. D. Y. Cheng, J. T. Deutsch, and R. W. Dutton, “Defensive programming in the rapid development of a parallel scientific program,” IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 9, pp. 665-669, 1990.
  3. A. A. J. Zumalde, J. M. Secall, and J. B. C. Junior, “Comparative Analysis on the Impact of Defensive Programming Techniques for Safety-Critical Systems,” LADC '09. Fourth Latin-American Symposium, pp. 95-102, 2009.
  4. K. W. Collier and J. S. Collofello, “Issues in software cycle time reduction,” IEEE Fourteenth Annual International Phoenix Conference, pp. 302-309, 1995.
  5. P. Chul Su, L. Jae Hee, S. C. Seo, and B. K. Kim, “Assuring software security against buffer overflow attacks in embedded software development life cycle,” Advanced Communication Technology (ICACT), The 12th International Conference on, pp. 787-790, 2010.
  6. N. Davis, W. Humphrey, S. T. Redwine, G. Zibulski, and G. McGraw, “Processes for Producing Secure Software: Summary of US National Cybersecurity Summit Subgroup Report,” IEEE Security and Privacy, vol. 2, pp. 18-25, 2004.
  7. S. Velmourougan, P. Dhavachelvan, R. Baskaran, and B. Ravikumar, “Software Development Life Cycle Model to Improve Maintainability of Software Applications,” Advances in Computing and Communications (ICACC), Fourth International Conference on, pp. 270-273, 2014.
  8. P. Avgeriou, P. Kruchten, R. L. Nord, I. Ozkaya, and C. Seaman, “Reducing Friction in Software Development,” IEEE Software, vol. 33, pp. 66-73, 2016.
  9. B. Boehm and V. R. Basili, “Software Defect Reduction Top 10 List,” Computer, vol. 34, pp. 135-137, 2001.
  10. M. K. Gupta, M. C. Govil, and G. Singh, “Static analysis approaches to detect SQL injection and cross site scripting vulnerabilities in web applications: A survey,” In Recent Advances and Innovations in Engineering (ICRAIE), pp. 1-5, 2014.
  11. R. Chen, Y. Liu, Z. Jia, and J. Gao, “Isolating and Understanding Program Errors Using Probabilistic Dispute Model,” Computer Software and Applications Conference (COMPSAC), IEEE 37th Annual, pp. 633-638, 2013.
  12. J. A. Jones and M. J. Harrold, “Empirical evaluation of the tarantula automatic fault-localization technique,” 20th IEEE/ACM international Conference on Automated software engineering, CA, USA, 2005.
  13. C. Liu, X. Yan, L. Fei, J. Han, and S. P. Midkiff, “SOBER: statistical model-based bug localization,” SIGSOFT Softw. Eng. Notes, vol. 30, pp. 286-295, 2005.
  14. H. Cleve and A. Zeller, “Locating causes of program failures,” 27th international conference on Software engineering, USA, 2005.
  15. G. K. Baah, A. Podgurski, and M. J. Harrold, “The probabilistic program dependence graph and its application to fault diagnosis,” International symposium on Software testing and analysis, USA, 2008.
  16. جرجم، سلیمان، دهقانی، مهدی، امن‌سازی نرم‌افزار مبتنی بر کدنویسی امن‌، فصلنامه پدافند غیرعامل، شماره 17، بهار 1393 ص 41.
  17. R. Kumar, S. K. Pandey, and S. I. Ahson, “Security in Coding Phase of SDLC,” Wireless Communication and Sensor Networks, WCSN '07. Third International Conference, pp. 118-120, 2007.
  18. B. Taylor and S. Kaza, “Security Injections@Towson: Integrating Secure Coding into Introductory Computer Science Courses,” Journal of ACM Transactions on Computing Education (TOCE), vol. 16, Issue 4, Article no. 16, 2016.
  19. M. Zaidman, “Teaching defensive programming in Java,” J. Comput. Sci. Coll., vol. 19, pp. 33-43, 2004.
  20. کشوری، سامان، جوادزاده، محمدعلی، عباسی، مصطفی، بررسی انواع آزمون نرم‌افزار جهت افزایش کیفیت و امنیت نرم‌افزار، دهمین کنفرانس رمز دانشگاه جامع امام حسین(ع)، 1394.
  21. A. Khalili, A. Sami, M. Azimi, and ET. Al, “Employing secure coding practices into industrial applications: a case study,” Journal of Empirical Software Engineering, vol. 21, Issue 1, pp. 4-16, February 2016.
  22. P. R. Dominguez, “10 Principles for Keeping Your Programming Code Clean,” Available: http://www.onextrapixel.com/2011/01/20/10-principles-for-keeping-your-programming-code-clean/ (Jan. 05, 2016).
  23. D. M. Selfa, M. Carrillo, and M. D. R. Boone, “A Database and Web Application Based on MVC Architecture,” 16th International Conference on Electronics, Communications and Computers, 2006.
  24. R. C. Martin, “The Clean Coder: A Code of Conduct for Professional Programmers: Prentice Hall Press,” Robert C. Martin Series, 1st Edition, 2011.
  25. L. Hunt, “C# Coding Standards for .NET,” Document Version 1.15, http://www.lance-hunt.net, 2007.
  26. R. C. Martin, “Clean Code: A Handbook of Agile Software Craftsmanship: Prentice Hall PTR,” Prentice Hall; 1 Edition, 2008.
  27. M. Aderhold, G. Alexander, and M. Heiko, “Choosing a Formalism for Secure Coding: FSM vs. LTL,” TU Darmstadt, Technical TUD-CS-2013-0180, 2013.
  28. A. Hunt and D. Thomas, “Pragmatic Unit Testing in C# with NUnit: The Pragmatic Programmers,” Pragmatic Bookshelf; 2 Edition, 2004.
  29. G. Meszaros, “xUnit Test Patterns: Refactoring Test Code Addison-Wesley,” Addison-Wesley Professional; 1 edition, 2007.
  30. L. Williams, G. Kudrjavets, and N. Nagappan, “On the Effectiveness of Unit Test Automation at Microsoft,” 20th International Symposium on Software Reliability Engineering, pp. 81-89, 2009.
  31. J. Shore, “Fail fast [software debugging],” IEEE Software, vol. 21, pp. 21-25, 2004.