Contents 1 Introduction 2 Is the Old-Established Software Engineering Paradigm Entirely Out of Date?

Size: px
Start display at page:

Download "Contents 1 Introduction 2 Is the Old-Established Software Engineering Paradigm Entirely Out of Date?"

Transcription

1 1 Introduction What Is Software?...1 What Is Software Engineering?...29 The Major Activities/Tasks to Be Performed in Software Engineering The Popular Lifecycle/Process Models with the Existing Software Engineering Paradigm The Waterfall Model The Incremental Development Models The Iterative Models More Popular Process Models General Comments to All Process Models Existing with the Old-Established Software Engineering Paradigm Why the Current Software Is Not Sufficiently Engineered at This Time to Fulfill the Role of Foundation What Does a Revolution Mean? Three Phases of Scientific Revolutions Progress Through Revolutions What Is NSE? Summary Points and Questions to Ponder Further Reading and Information Source References Is the Old-Established Software Engineering Paradigm Entirely Out of Date? The 20 Famous Software Disasters Reported Very High Project Failure Rate Reported What Is the Root Cause for Software Disasters and Very High Software Project Failure Rate? The Software Definition Is Outdated xxiii

2 xxiv 2.4 The Current Software Development Process Models Are Out of Date Current Software Development Methodologies Are Out of Date The Existing Software Modeling Approaches Are Outdated Current Software Testing Paradigm Is Out of Date Current Software Quality Assurance Paradigm Is Out of Date Current Software Visualization Paradigm Is Out of Date Current Software Documentation Paradigm Is out of Date Current Software Maintenance Paradigm Is Out of Date Current Software Project Management Paradigm Is Out of Date The Mythical Man-Month Is an Outcome of Linear Thinking; The No Silver Bullet Conclusion Is Out of Date Summary Points and Questions to Ponder Further Reading and Information Source...77 References Foundation for Establishing NSE: Complexity Science The Basis of Complexity Science Linear and Nonlinear Reductionism Chaos Theory System System Categories Linear System Nonlinear System and Complex System Feedback Fractal Fractal Dimension Dynamical System Dissipation Structure Li Yorke Theorem: Period Three Theorem Self-Organization Synergetics Catastrophe Theory Complex Adaptive System Meta-Synthesis Cellular Automata Genetic Algorithm Soliton Linear Thinking and Nonlinear Thinking The Essential Principles of Complexity Science Applications of Complexity Science... 88

3 xxv 3.5 Complexity Science and NSE Summary Points and Questions to Ponder Further Reading and Information Source...89 References Prediction and Practices: A New Round of Industrial Revolution Driven by Complexity Science and a General Paradigm-Shift Framework Prediction: A New Round of Industrial Revolution Driven by Complexity Science Is Coming The Contribution and Limitation of Hall s Systems Engineering Framework The Background for the Innovation of FDS The Objectives of Innovating FDS The Description of FDS The Principles of Complexity Science Axis The Environment Axis The People/Logic Axis The New Paradigm Axis Modified from the Knowledge/Skills Axis in Hall s Framework The Phases (Workflows) Axis The Major Features of FDS Applications of FDS Bringing Feedback to the Research and Development of Complexity Science Summary Points and Questions to Ponder Further Reading and Information Source References Outline of the NSE Paradigm A Tree Will Not Fall at One Blow: The Difficulty in Software Engineering Revolution The Objectives for Establishing NSE The Strategy to Achieve the Objectives of NSE The Establishment of NSE The Structure of NSE The Components of NSE The Major Feature and Characteristics of NSE Summary Points and Questions to Ponder Further Reading and Information Source References

4 xxvi 6 The Techniques Innovated to Support NSE Definitions Holistic, Virtual, and Traceable Diagram Generation Technique Virtual and Traceable Documentation Technique Holistic and Intelligent Version Comparison Technique Holistic and Dynamic Traceability Technique Comprehensive Software Testing Technique Mainly Based on the Transparent-Box Method Defect Prevention Driven Quality Assurance Technique Test Case Efficiency Analysis and Test Case Minimization Technique Refactoring Technique with Defect Prevention Holistic MC/DC Test Coverage Analysis and Graphical Representation Technique Assisted Test Case Design Technique Intelligent Regression Test Case Selection Technique Holistic, Actor Action and Event Response Driven, Traceable, Visual, and Executable Technique for Requirement Development Synthesis Design and Incremental Growing Up (Implementation and Integration) Technique Holistic, Global, and Side-Effect-Prevention Based Software Maintenance Technique Summary Points and Questions to Ponder Further Reading and Information Source References NSE Software Engineering Visualization Paradigm The Old-Established Software Engineering Visualization Paradigm Is Outdated The Revolutionary Solution Offered by NSE The 3J graphics (J-Chart, J-Diagram, and J-Flow) J-Chart J-Diagram J-Flow Entire Software Life Cycle Visualization with NSE Rich Options for Generating 3J Graphics For J-Chart Generation For J-Diagram and J-Flow Generation The Major Features of NSE Software Visualization Paradigm Applications Self-Documenting...191

5 xxvii 7.12 Summary Points and Questions to Ponder Further Reading and Information Source References NSE Process Model Some Experts Expectations All of the Existing Software Engineering Process Models Are Outdated Outline of the Revolutionary Solution Offered with NSE The Driving Forces and The Support Techniques The Graphical Representation of the NSE Process Model The Objectives of the Preprocess The Objectives of the Main Process The Objective of the Support Facility for Automated and Bidirectional Traceability The Major Steps of the Preprocess The Major Steps of the Main Process The Support Facility for Automated and Bidirectional Traceability The Manifestation of the Essential Principles of Complexity Science in the NSE Process Model The Major Features and Characteristics of the NSE Process Model Summary Points and Questions to Ponder Further Reading and Information Source References The Facility for Automated and Self-Maintainable Traceability The Importance of Requirement Traceability The Problems Addressed The Solution Offered with NSE Part Part How It Works Bidirectional Traceability Between the Test Cases and the Source Code Modules or Branches Extending the Bidirectional Traceability to Include All Related Documents The Major Features Automated Self-Maintainable...250

6 xxviii Methodology-Independent Nonlinear, Bidirectional, and Parallel Accurate Precise Extended to Include Software Project Management Documents Extended to Include Web Pages Extended for Multiproject Support Dynamic Easy to Add on at Any Time, In Any Status Application Summary Points and Questions to Ponder Further Reading and Information Source References NSE Software Development Methodology Driven by Defect Prevention and Traceability Almost All Existing Software Development Methodologies Are Outdated Outline of the Revolutionary Solution Offered by NSE The Driving Forces for the Innovation of the NSE Software Development Methodology The Related NSE Software Engineering Process Model Graphical Presentation of the NSE Software Development Methodology Application Some Suggestions About the Applications of the NSE Software Development Methodology The Major Features of the NSE Software Development Methodology Summary Points and Questions to Ponder Further Reading and Information Source References Requirement Engineering Under NSE: Source Code Driven Dynamic Software Modeling Are All the Existing Software Modeling Approaches Outdated? Outline of the Revolutionary Solution Offered by NSE Description of the HAETVE Technique Applications of HAETVE How to Make a Hard Copy of a Graphical Requirement Document...303

7 xxix 11.6 Suggestions for the Requirement Documentation Design The Major Features of HAETVE More About Dynamic Modeling Summary Points and Questions to Ponder Further Reading and Information Source References Design Engineering Under NSE The Major Problem Addressed Outline of the Solution for Software Design with NSE Description of the Innovated Synthesis Design and Incremental Growing Up Technique Basic Ideas What is Synthesis? What is Analysis? Recommendation for Graphic Document Creation/ Generation Self-Documenting Detailed System Hierarchy Design Static Defect Prevention and Defect Propagation Prevention Through Traceability Dynamic Defect Prevention and Defect Propagation Prevention Data Structure Design Detailed Logic Design of the Modules Application The Major Features of the Software Synthesis Design Technique Summary Points and Questions to Ponder Further Reading and Information Source References Coding Engineering with NSE The Problems Addressed The Solution: Software Coding Engineering with NSE Using the Synthesis Design and Incremental Integration Technique Unit Testing and Integration Testing Support MC/DC Test Coverage Measurement Support Conclusion Semiautomated Inspection Support Defect Prevention Driven Quality Assurance in Programming Quality Measurement for an Entire Software Product and Each of Its Components Application

8 xxx 13.9 The Major Features Summary Points and Questions to Ponder Further Reading and Information Source References The Basis of Software Testing The Purpose of Software Testing Functional Testing and the Black-Box Method Structural Testing and the White-Box Method Test Coverage Metrics Instrumentation Methods Gray-Box Testing Performance Testing and the Testing Method Other Nonfunctional Testing Unit Testing, Integration Testing, and System Testing Regression Test After Code Modification Object-Oriented Software Testing Web Application Testing Embedded Software Testing GUI Operation Capture and Playback Acceptance Testing Why Should Software Testing Tools Be Used The Major Drawback of the Major Existing Software Testing Paradigm and the Solution Summary Points and Questions to Ponder Further Reading and Information Source References Software Test Case Design What Is a Test Case? The Basis of Test Case Design Equivalence Class Partition and Boundary Value Analysis State Transition Analysis Conditions Combination Method Semiautomated Test Case Design Test Case Efficiency Measurement Test Case Minimization NSE Test Case Design with HAETVE Technique for Both Functional Testing and Structural Testing Automated Test Case Selection with Automated Test Case Execution Summary...406

9 xxxi 15.9 Points and Questions to Ponder Further Reading and Information Source References The NSE Software Testing Paradigm Based on the Transparent-Box Method The Major Existing Software Testing Methods, Techniques, and Tools Are Outdated The Transparent-Box Testing Method The New Software Testing Paradigm Based on the Transparent-Box Testing Method The Major Features of the New Software Testing Paradigm A General Comparison Between the New Software Testing Paradigm and the Old One Summary Points and Questions to Ponder Further Reading and Information Source References NSE Software Quality Assurance Paradigm Driven by Defect Prevention The Old-Established Software Quality Assurance Paradigm Is Outdated Outline of NSE Software Quality Assurance Paradigm (NSE-SQA) Description of NSE Software Quality Assurance Paradigm The Foundation of NSE-SQA The Framework for Establishing NSE-SQA The Purpose of NSE-SQA Definitions The Quality Assurance Strategy of NSE-SQA The Implementation of the Quality Assurance Strategy of NSE-SQA Application of NSE-SQA The Major Features of NSE-SQA Summary Points and Questions to Ponder Further Reading and Information Source References NSE Software Maintenance Paradigm: Systematic, Disciplined, and Quantifiable The Existing Software Maintenance Engineering Paradigm Is Outdated Outline of the NSE Software Maintenance Paradigm...470

10 xxxii 18.3 Description of NSE Software Maintenance Engineering Paradigm Application The Major Features Summary Points and Questions to Ponder Further Reading and Information Source References NSE Documentation Paradigm: Virtual, Traceable, and Consistent with the Source Code The Old-Established Software Documentation Paradigm Is Outdated Outline of NSE Documentation Paradigm Description of the NSE Documentation Paradigm The Critical Issues with the Old-Established Software Documentation Paradigm The Solution Offered with NSE The Objectives of the NSE Documentation Paradigm Working with Dummy Programming Working with NSE Software Visualization Paradigm Working with HAETVE Requirement Development Technique How It Works Making a Software Product Visible in Multiple-Views The Major Features of NSE Documentation Paradigm Application Summary Points and Questions to Ponder Further Reading and Information Source References NSE Project Management Paradigm: Seamlessly Combined with the Project Development Process The Old-Established Software Project Management Paradigm Is Outdated Outline of the NSE Project Management Paradigm The Foundation of NSE Project Management Paradigm The Strategy of NSE Project Management Paradigm People Oriented Focusing on Maintenance More Method and Tool Support Combination of Product Development and Project Management Finding Problems Early and Solving the Problems in Time

11 xxxiii Quality Management Multiple-Project Management Summary Points and Questions to Ponder Further Reading and Information Source References Algorithms Innovated for Establishing NSE The Algorithm for Realizing Modified Condition/Decision Coverage Test Coverage Measurement The Requirements The Basic Idea The Major Steps Application The Algorithm for Test Case Efficiency Analysis and Test Case Minimization The Requirements The Basic Idea The Major Steps Application The Algorithm for Performance Analysis The Requirements The Basic Idea The Major Steps Application The Algorithm for Cyclomatic Complexity Analysis The Requirement The Basic Idea The Major Steps Application The Algorithm for Tracing the Execution Path of a Runtime Error The Algorithm for the Layout of the Call Graph of a Program Using J-Chart Notations The Algorithm for Holistic Version Comparison of a Software Product The Algorithm for Memory Leak and Usage Violation Analysis The Algorithm for Realizing the Traceability of the Diagrammed Source Code The Algorithm for Dynamic Traceability Summary Points and Questions to Ponder Further Reading and Information Source References...555

12 xxxiv 22 NSE Support Tools and NSE Support Platforms Full Software Development Lifecycle Support The Product Development History The First Generation: Hindsight Second Generation: Panorama Panorama Automated Tools Integrated with Panorama Panorama++ Product Installation A Guided Tour of Panorama++ for C/C Network Floating License Support The Major Features of Panorama Applications Summary Points and Questions to Ponder Further Reading and Information Source References NSE Applications The Whole and Its Components: A General Comparison Between NSE and Other Approaches What Makes NSE Special? Applications in New Software Development Benefits Recommended Process Applications in a Software Product Being Developed Using Other Approaches Possible Combination with UML About the Future of UML Question to the Future of UML Possible Combination with UML (NSE-UML?) Possible Combination with CMMI (NSE-CMMI?) Possible Combination with Agile Software Development Approaches Possible Combination with XP (NSE-XP?) Possible Combination with RUP (NSE-RUP?) Support for CBSE Summary Points and Questions to Ponder Further Reading and Information Source References Candidates of Silver Bullet Is The Mythical Man-Month an Outcome of Linear Thinking, Reductionism, and Superposition Principle? A Great book Limitation...599

13 xxxv Is the No Silver Bullet Conclusion Outdated? The First Candidate of Silver Bullet The Second Candidate of Silver Bullet Can the Silver Bullet Defined by Brooks Slay the Werewolves Defined by Him? What Kind of Silver Bullet Can be Used to Slay the Werewolves Defined by Brooks? The Third Candidate of Silver Bullet : The Entire NSE Paradigm What Is NSE: The Whole and Its Components The Components of NSE The Major Features and Characteristics of NSE The Major Differences Between NSE and the Old-Established Software Engineering Paradigm Qualification as a Candidate of Silver Bullet for Slaying Software Werewolves Summary Points and Questions to Ponder Further Reading and Information Source References Appendix A: Software Requirements Specification Template To Be Used with NSE Appendix B: An Example About How to Realize 100% MC/DC (Modified Condition/Decision Coverage) for a Program Unit Appendix C: How to Control/Simulate the Return Values of a Program Unit Being Tested Appendix D: Hints for Answering the Points and Questions to Ponder in Each Chapter Glossary Index...731