commit 351569820006a2e35c755d210954ae871ea0d5ab from: Sergey Bronnikov date: Mon Jan 24 18:30:24 2022 UTC Fix spaces before comma, extra spaces and letter case Follows up #1 Follows up #2 Follows up #3 Follows up #4 Follows up #5 Follows up #6 Follows up #7 Follows up #8 Follows up #9 Follows up #10 commit - ffe739c92829f51bbac692d12832e7d4bd4e6585 commit + 351569820006a2e35c755d210954ae871ea0d5ab blob - 697327feead3322f72249e36ca0602ae1163fe60 blob + 9c6f4ca3191c7ecf48e13f1078566a3413b15887 --- 0_introduction.md +++ 0_introduction.md @@ -97,7 +97,7 @@ _Guide_ constitutes a valuable characterization of the profession. In 1958, John Tukey, the world-renowned statistician, coined the term software. -The term soft ware engineering was used in the title of a NATO conference held +The term software engineering was used in the title of a NATO conference held in Germany in 1968. The IEEE Computer Society first published its Transactions on Software Engineering in 1972, and a commit- tee for developing software engineering standards was established within the IEEE Computer Society in 1976. blob - 1adb64ed87fe8b2556df376db3d22d3ab193e490 blob + 46a1c05f92f87416ca290cb2fd99a49946a206d7 --- 1_software_requirements.md +++ 1_software_requirements.md @@ -906,11 +906,11 @@ and generally less satisfactory ways (e.g., using spre Sommerville 2011 -##### [1] +[1] Wiegers 2003 -##### [2] +[2] **1. Software Requirements Fundamentals** 1.1. Definition of a Software Requirement c4 c1 @@ -950,7 +950,7 @@ Wiegers 2003 7.5. Measuring Requirements c4s6 c18 **8. Software Requirements Tools** c21 -**FURTHER READINGS** +**Further Readings** I. Alexander and L. Beus-Dukic, _Discovering Requirements_ [5]. @@ -996,30 +996,30 @@ problems of selecting off-the-shelf software to satisf usually a mismatch. This challenges some of the assumptions underpinning much of traditional requirements handling, which tends to assume custom software. -**REFERENCES** +**References** -[1] I. Sommerville, _Software Engineering_ , 9th ed., Addison-Wesley, 2011. +[1] I. Sommerville, _Software Engineering_, 9th ed., Addison-Wesley, 2011. -[2] K.E. Wiegers, _Software Requirements_ , 2nd ed., Microsoft Press, 2003. +[2] K.E. Wiegers, _Software Requirements_, 2nd ed., Microsoft Press, 2003. [3] INCOSE, _Systems Engineering Handbook: A Guide for System Life Cycle -Processes and Activities_ , version 3.2.2, International Council on Systems +Processes and Activities_, version 3.2.2, International Council on Systems Engineering, 2012. [4] S. Friedenthal, A. Moore, and R. Steiner, _A Practical Guide to SysML: The -Systems Modeling Language_ , 2nd ed., Morgan Kaufmann, 2012. +Systems Modeling Language_, 2nd ed., Morgan Kaufmann, 2012. [5] I. Alexander and L. Beus-Deukic, _Discovering Requirements: How to Specify -Products and Services_ , Wiley, 2009. +Products and Services_, Wiley, 2009. [6] C. Potts, K. Takahashi, and A.I. Antón, “Inquiry-Based Requirements Analysis,” IEEE Software, vol. 11, no. 2, Mar. 1994, pp. 21–32. [7] A. van Lamsweerde, Requirements Engineering: From System Goals to UML -Models to Software Specifications , Wiley, 2009. +Models to Software Specifications, Wiley, 2009. [8] O. Gotel and C.W. Finkelstein, “An Analysis of the Requirements -Traceability Problem,” Proc. 1st Int’l Conf. Requirements Eng. , IEEE, 1994. +Traceability Problem,” Proc. 1st Int’l Conf. Requirements Eng., IEEE, 1994. [9] N.A. Maiden and C. Ncube, “Acquiring COTS Software Selection Requirements,” IEEE Software, vol. 15, no. 2, Mar.–Apr. 1998, pp. 46–56. blob - fd494b199841eb1dc2dca9533d56ae6bf8c57abe blob + fdf1989d18a0b16bcd738a15363d586f5c18584a --- 2_software_design.md +++ 2_software_design.md @@ -871,7 +871,7 @@ c10, App. A Software Design 2-15 -**FURTHER READINGS** +**Further Readings** Roger Pressman, _Software Engineering: A Practitioner’s Approach (Seventh Edition)_ [19]. @@ -908,57 +908,57 @@ architecture. **References** -[1] ISO/IEC/IEEE 24765:2010 Systems and Software Engineering—Vocabulary , ISO/ +[1] ISO/IEC/IEEE 24765:2010 Systems and Software Engineering—Vocabulary, ISO/ IEC/IEEE, 2010. [2] IEEE Std. 12207-2008 (a.k.a. ISO/IEC 12207:2008) Standard for Systems and -Software Engineering—Software Life Cycle Processes , IEEE, 2008. +Software Engineering—Software Life Cycle Processes, IEEE, 2008. [3] T. DeMarco, “The Paradox of Software Architecture and Design,” Stevens Prize Lecture, 1999. -[4] D. Budgen, Software Design , 2nd ed., Addison-Wesley, 2003. +[4] D. Budgen, Software Design, 2nd ed., Addison-Wesley, 2003. -[5] I. Sommerville, Software Engineering , 9th ed., Addison-Wesley, 2011. +[5] I. Sommerville, Software Engineering, 9th ed., Addison-Wesley, 2011. -[6] M. Page-Jones, Fundamentals of Object- Oriented Design in UML , 1st ed., +[6] M. Page-Jones, Fundamentals of Object- Oriented Design in UML, 1st ed., Addison- Wesley, 1999. -[7] Merriam-Webster’s Collegiate Dictionary , 11th ed., 2003. +[7] Merriam-Webster’s Collegiate Dictionary, 11th ed., 2003. [8] IEEE Std. 1069-2009 Standard for Information Technology—Systems -Design—Software Design Descriptions , IEEE, 2009. +Design—Software Design Descriptions, IEEE, 2009. [9] ISO/IEC 42010:2011 Systems and Software Engineering—Recommended Practice -for Architectural Description of Software- Intensive Systems , ISO/IEC, 2011. +for Architectural Description of Software- Intensive Systems, ISO/IEC, 2011. [10] J. Bosch, Design and Use of Software Architectures: Adopting and Evolving -a Product-Line Approach , ACM Press, 2000. +a Product-Line Approach, ACM Press, 2000. [11] G. Kiczales et al., “Aspect-Oriented Programming,” Proc. 11th European Conf. Object-Oriented Programming (ECOOP 97), Springer, 1997. -[12] J.G. Brookshear, _Computer Science: An Overview_ , 10th ed., +[12] J.G. Brookshear, _Computer Science: An Overview_, 10th ed., Addison-Wesley, 2008. [13] J.H. Allen et al., _Software Security Engineering: A Guide for Project -Managers_ , Addison-Wesley, 2008. +Managers_, Addison-Wesley, 2008. [14] P. Clements et al., _Documenting Software Architectures: Views and Beyond_, 2nd ed., Pearson Education, 2010. [15] E. Gamma et al., _Design Patterns: Elements of Reusable Object-Oriented -Software_ , 1st ed., Addison-Wesley Professional, 1994. +Software_, 1st ed., Addison-Wesley Professional, 1994. [16] I. Jacobson, G. Booch, and J. Rumbaugh, _The Unified Software Development -Process_ , Addison-Wesley Professional, 1999. +Process_, Addison-Wesley Professional, 1999. -[17] J. Nielsen, Usability Engineering , Morgan Kaufmann, 1993. +[17] J. Nielsen, Usability Engineering, Morgan Kaufmann, 1993. [18] G. Booch, J. Rumbaugh, and I. Jacobson, The Unified Modeling Language User Guide, Addison-Wesley, 1999. -[19] R.S. Pressman, Software Engineering: A Practitioner’s Approach , 7th ed., +[19] R.S. Pressman, Software Engineering: A Practitioner’s Approach, 7th ed., McGraw- Hill, 2010. [20] P.B. Kruchten, “The 4+1 View Model of Architecture,” IEEE Software, vol. blob - 583f1db9a6ea5d8eb58da1ea87447be510c306af blob + 0d080ccd89c585d1e534f19fcc339557caa39c15 --- 3_software_construction.md +++ 3_software_construction.md @@ -524,7 +524,7 @@ using parameterized class and method names. -Parameterized types , also known as generics (Ada, Eiffel) and templates (C++), +Parameterized types, also known as generics (Ada, Eiffel) and templates (C++), enable the definition of a type or class without specifying all the other types it uses. The unspecified types are supplied as parameters at the point of use. Parameterized types provide a third way (in addition to class inheritance and @@ -648,7 +648,7 @@ the user interface. -Grammar-based input processing involves syntax analysis, or _parsing_ , of the +Grammar-based input processing involves syntax analysis, or _parsing_, of the input token stream. It involves the creation of a data structure (called a _parse tree_ or _syntax tree_ ) representing the input data. The inorder traversal of the parse tree usually gives the expression just parsed. The @@ -973,7 +973,7 @@ Silberschatz et al. 2008 **Further Readings** _IEEE Std. 1517-2010 Standard for Information Technology - System and Software -Life Cycle Processes - Reuse Processes_ , IEEE, 2010 [8]. +Life Cycle Processes - Reuse Processes_, IEEE, 2010 [8]. This standard specifies the processes, activities, and tasks to be applied during each phase of the software life cycle to enable a software product to be @@ -982,7 +982,7 @@ development and the processes of construction for reus reuse. _IEEE Std. 12207-2008 (a.k.a. ISO/IEC 12207:2008) Standard for Systems and -Software Engineering - Software Life Cycle Processes_ , IEEE, 2008 [9]. +Software Engineering - Software Life Cycle Processes_, IEEE, 2008 [9]. This standard defines a series of software development processes, including software construction process, software integration process, and software reuse @@ -990,26 +990,26 @@ process. **References** -[1] S. McConnell, Code Complete , 2nd ed., Microsoft Press, 2004. +[1] S. McConnell, Code Complete, 2nd ed., Microsoft Press, 2004. -[2] I. Sommerville, Software Engineering , 9th ed., Addison-Wesley, 2011. +[2] I. Sommerville, Software Engineering, 9th ed., Addison-Wesley, 2011. -[3] P. Clements et al., Documenting Software Architectures: Views and Beyond , +[3] P. Clements et al., Documenting Software Architectures: Views and Beyond, 2nd ed., Pearson Education, 2010. [4] E. Gamma et al., Design Patterns: Elements of Reusable Object-Oriented -Software , 1st ed., Addison-Wesley Professional, 1994. +Software, 1st ed., Addison-Wesley Professional, 1994. [5] S.J. Mellor and M.J. Balcer, Executable UML: A Foundation for Model-Driven -Architecture , 1st ed., Addison-Wesley, 2002. +Architecture, 1st ed., Addison-Wesley, 2002. [6] L. Null and J. Lobur, The Essentials of Computer Organization and -Architecture , 2nd ed., Jones and Bartlett Publishers, 2006. +Architecture, 2nd ed., Jones and Bartlett Publishers, 2006. -[7] A. Silberschatz, P.B. Galvin, and G. Gagne, Operating System Concepts , 8th +[7] A. Silberschatz, P.B. Galvin, and G. Gagne, Operating System Concepts, 8th ed., Wiley, 2008. [8] IEEE Std. 1517-2010 Standard for Information Technology—System and Software -Life Cycle Processes—Reuse Processes , IEEE, 2010. +Life Cycle Processes—Reuse Processes, IEEE, 2010. [9] IEEE Std. 12207-2008 (a.k.a. ISO/IEC 12207:2008) Standard for Systems and blob - 886c778dfe29f8ebd07000bac46af26e72f5ab27 blob + 7cdb206b01f1c6fe440eb4d716f01d89a969056b --- 4_software_testing.md +++ 4_software_testing.md @@ -235,7 +235,7 @@ of view of software quality analysts and of certifiers Software testing is usually performed at different _levels_ throughout the development and maintenance processes. Levels can be distinguished based on the -object of testing, which is called the _target_ , or on the purpose, which is +object of testing, which is called the _target_, or on the purpose, which is called the _objective_ (of the test level). #### 2.1. The Target of the Test @@ -512,7 +512,7 @@ only one) is usually taken from each equivalency class Test cases are derived by combining interesting values for every pair of a set of input variables instead of considering all possible combinations. Pairwise -testing belongs to combinatorial testing , which in general also includes +testing belongs to combinatorial testing, which in general also includes higher-level combinations than pairs: these techniques are referred to as t-wise, whereby every possible combination of t input variables is considered. @@ -627,7 +627,7 @@ way [12]. In testing for reliability evaluation (also called operational testing), the test environment reproduces the operational environment of the software, or the -operational profile , as closely as possible. The goal is to infer from the +operational profile, as closely as possible. The goal is to infer from the observed test results the future reliability of the software when in actual use. To do this, inputs are assigned probabilities, or profiles, according to their frequency of occurrence in actual operation. Operational profiles can be @@ -1321,12 +1321,12 @@ Nielsen 1993 6.1.1. Selecting Tools c12 s11 6.2. Categories of Tools c1s7, c3s9, c4, c9s7, c12 s11, c12s16 c8 -##### REFERENCES +**References** [1] S. Naik and P. Tripathy, _Software Testing and Quality Assurance: Theory -and Practice_ , Wiley-Spektrum, 2008. -[2] I. Sommerville, _Software Engineering_ , 9th ed., Addison-Wesley, 2011. -[3] M.R. Lyu, ed., _Handbook of Software Reliability Engineering_ , McGraw-Hill +and Practice_, Wiley-Spektrum, 2008. +[2] I. Sommerville, _Software Engineering_, 9th ed., Addison-Wesley, 2011. +[3] M.R. Lyu, ed., _Handbook of Software Reliability Engineering_, McGraw-Hill and IEEE Computer Society Press, 1996. [4] H. Zhu, P.A.V. Hall, and J.H.R. May, “Software Unit Test Coverage and Adequacy,” _ACM Computing Surveys,_ vol. 29, no. 4, Dec. 1997, pp. 366–427. @@ -1335,16 +1335,16 @@ Technological University, Eindhoven, 1970; [http://www.cs.utexas.edu/users/EWD/](http://www.cs.utexas.edu/users/EWD/) ewd02xx/EWD249.PDF. [6] _ISO/IEC/IEEE P29119-1/DIS Draft Standard for Software and Systems -Engineering - Software Testing - Part 1: Concepts and Definitions_ , ISO/IEC/IEEE, +Engineering - Software Testing - Part 1: Concepts and Definitions_, ISO/IEC/IEEE, 2012. -[7] _ISO/IEC/IEEE 24765:2010 Systems and Software Engineering - Vocabulary_ , +[7] _ISO/IEC/IEEE 24765:2010 Systems and Software Engineering - Vocabulary_, ISO/ IEC/IEEE, 2010. [8] S. Yoo and M. Harman, “Regression Testing Minimization, Selection and Prioritization: A Survey,” Software Testing Verification and Reliability, vol. 22, no. 2, Mar. 2012, pp. 67–120. -[9] S.H. Kan, Metrics and Models in Software Quality Engineering , 2nd ed., +[9] S.H. Kan, Metrics and Models in Software Quality Engineering, 2nd ed., Addison- Wesley, 2002. -[10] J. Nielsen, Usability Engineering , Morgan Kaufmann, 1993. +[10] J. Nielsen, Usability Engineering, Morgan Kaufmann, 1993. [11] T.Y. Chen et al., “Adaptive Random Testing: The ART of Test Case Diversity,” Journal of Systems and Software, vol. 83, no. 1, Jan. 2010, pp. 60–66. blob - c26b9d221d75ac28ab19010e7971c76e72476fc6 blob + 97ff1b2b2b873aae0565cf584ead17f75e139c1c --- 5_software_maintenance.md +++ 5_software_maintenance.md @@ -27,7 +27,7 @@ keeping software operating as long as possible. The op brought further attention to the issue of maintaining software artifacts developed by others. -In this _Guide_ , software maintenance is defined as the totality of activities +In this _Guide_, software maintenance is defined as the totality of activities required to provide cost-effective support to software. Activities are performed during the predelivery stage as well as during the postdelivery stage. Predelivery activities include planning for postdelivery operations, @@ -461,7 +461,7 @@ for subcharacteristics of maintainability include the the modified software. - Other measures that maintainers use include - size of the software, -- complexity of the software , +- complexity of the software, - understandability, and - maintainability. @@ -837,22 +837,22 @@ typical corrective maintenance process. **References** [1] IEEE Std. 14764-2006 (a.k.a. ISO/IEC 14764:2006) Standard for Software -Engineering—Software Life Cycle Processes—Maintenance , IEEE, 2006. +Engineering—Software Life Cycle Processes—Maintenance, IEEE, 2006. -[2] P. Grubb and A.A. Takang, Software Maintenance: Concepts and Practice , 2nd +[2] P. Grubb and A.A. Takang, Software Maintenance: Concepts and Practice, 2nd ed., World Scientific Publishing, 2003. [3] H.M. Sneed, “Offering Software Maintenance as an Offshore Service,” Proc. IEEE Int’l Conf. Software Maintenance (ICSM 08), IEEE, 2008, pp. 1–5. -[4] J.W. Moore, The Road Map to Software Engineering: A Standards-Based Guide , +[4] J.W. Moore, The Road Map to Software Engineering: A Standards-Based Guide, Wiley-IEEE Computer Society Press, 2006. -[5] ISO/IEC/IEEE 24765:2010 Systems and Software Engineering—Vocabulary , ISO/ +[5] ISO/IEC/IEEE 24765:2010 Systems and Software Engineering—Vocabulary, ISO/ IEC/IEEE, 2010. [6] A. April and A. Abran, Software Maintenance Management: Evaluation and -Continuous Improvement , Wiley-IEEE Computer Society Press, 2008. +Continuous Improvement, Wiley-IEEE Computer Society Press, 2008. [7] M. Kajko-Mattsson, “Towards a Business Maintenance Model,” Proc. Int’l -Conf. Software Maintenance , IEEE, 2001, pp. 500–509. +Conf. Software Maintenance, IEEE, 2001, pp. 500–509. blob - c29e7c8d28e8f7ffc343521fab878b15793a666b blob + e5c670941aabddbf9aac6965a307a455ab95baec --- 6_software_configuration_management.md +++ 6_software_configuration_management.md @@ -881,22 +881,22 @@ suggests configuration management activities. **References** -[1] ISO/IEC/IEEE 24765:2010 Systems and Software Engineering—Vocabulary , ISO/ +[1] ISO/IEC/IEEE 24765:2010 Systems and Software Engineering-Vocabulary, ISO/ IEC/IEEE, 2010. [2] IEEE Std. 828-2012, Standard for Configuration Management in Systems and -Software Engineering , IEEE, 2012. +Software Engineering, IEEE, 2012. -[3] A.M.J. Hass, Configuration Management Principles and Practices , 1st ed., +[3] A.M.J. Hass, Configuration Management Principles and Practices, 1st ed., Addison-Wesley, 2003. -[4] I. Sommerville, Software Engineering , 9th ed., Addison-Wesley, 2011. +[4] I. Sommerville, Software Engineering, 9th ed., Addison-Wesley, 2011. [5] J.W. Moore, The Road Map to Software Engineering: A Standards-Based Guide , Wiley-IEEE Computer Society Press, 2006. [6] S.P. Berczuk and B. Appleton, Software Configuration Management Patterns: -Effective Teamwork, Practical Integration , Addison-Wesley Professional, 2003. +Effective Teamwork, Practical Integration, Addison-Wesley Professional, 2003. [7] CMMI Product Team, “CMMI for Development, Version 1.3,” Software Engineering Institute, 2010; http:// resources.sei.cmu.edu/library/asset-view. blob - 99d5c70403e70ccc1127a6f1920fa610eeaa266a blob + a242f382395777d4a9969f5e23e10b75acd95fef --- 7_software_engineering_management.md +++ 7_software_engineering_management.md @@ -131,11 +131,11 @@ The following working definitions are adopted here: - _Measurement_ refers to the assignment of values and labels to software engineering work products, processes, and resources plus the models that are derived from them, whether these models are developed using statistical or - other techniques [3* , c7, c8]. + other techniques [3*, c7, c8]. The software engineering project management sections in this KA make extensive use of the software engineering measurement section. This KA is closely related -to others in the SWEBOK Guide , and reading the following KA descriptions in +to others in the SWEBOK Guide, and reading the following KA descriptions in conjunction with this one will be particularly helpful: - The Engineering Foundations KA describes some general concepts of measurement @@ -853,7 +853,7 @@ the activities and tasks that are necessary to success select, apply, and improve measurement within an overall project or organizational measurement structure. -J. McDonald, _Managing the Development of Software Intensive Systems_ , Wiley, +J. McDonald, _Managing the Development of Software Intensive Systems_, Wiley, 2010 [8]. This textbook provides an introduction to project management for beginning @@ -883,7 +883,7 @@ Perplexed, Addison-Wesley, 2003. Software Engineering - Measurement Process, IEEE, 2008. [7] J. McGarry et al., Practical Software Measurement: Objective Information -for Decision Makers , Addison-Wesley Professional, 2001. +for Decision Makers, Addison-Wesley Professional, 2001. [8] J. McDonald, Managing the Development of Software Intensive Systems, John Wiley and Sons, Inc., 2010. blob - 59436ab30f0e31ac539ce9ad926bb180826ff77d blob + 551dd676d2ae5b454a0e9bd6c4afc9e9cd70836d --- 8_software_engineering_process.md +++ 8_software_engineering_process.md @@ -223,7 +223,7 @@ the software requirements). #### 2.1. Categories of Software Processes - + Many distinct software processes have been defined for use in the various parts of the software development and software maintenance life cycles. These @@ -884,4 +884,4 @@ Engineering Institute, 2010; http:// resources.sei.cmu cfm?assetID=9661. [8] ISO/IEC 15504-1:2004, Information Technology—Process Assessment—Part 1: -Concepts and Vocabulary , ISO/IEC, 2004. +Concepts and Vocabulary, ISO/IEC, 2004. blob - 689a6b97272c252661df7362dbbb039125c0deb7 blob + 0efd7bba05364b0a969381043780e779095acdb1 --- 9_software_engineering_models.md +++ 9_software_engineering_models.md @@ -634,7 +634,7 @@ Addison- Wesley, 1999. [5] J.M. Wing, “A Specifier’s Introduction to Formal Methods,” Computer, vol. 23, no. 9, 1990, pp. 8, 10–23. -[6] J.G. Brookshear, Computer Science: An Overview , 10th ed., Addison-Wesley, +[6] J.G. Brookshear, Computer Science: An Overview, 10th ed., Addison-Wesley, 2008. [7] B. Boehm and R. Turner, Balancing Agility and Discipline: A Guide for the