WORLDCOMP'09 Tutorial: Jay Xiong
|A Complete Revolution in Software Engineering Based on Complexity Science
President of International Software Automation, Inc. (currently being reorganized), USA
President of ISA Shanghai, Ltd., Shanghai, P. R. China
Date: July 13, 2009
Time: 5:30 - 9:00 PM
Location: Copper Room
As we all know, software has become an indispensable technology and a driving force for science, engineering, and business. But unfortunately, the old-established software engineering paradigm based on linear thinking and simplistic science (which assumes that the whole is nothing but the sum of its parts, so that all tasks are performed locally) itself is incomplete, unreliable, and blind in responding to changes without support for preventing side-effects. In fact there are many critical problems existing with the old-established software engineering paradigm: low productivity and quality, and high cost and risk. Blind and local software modification is time consuming, costly, and risky. It is why today, software maintenance takes 75% or more of the total effort and cost in software development.
This tutorial introduces a new revolutionary software engineering paradigm called NSE (Nonlinear Software Engineering paradigm). The foundation for establishing NSE is complexity science. "The next century will be the century of complexity." (Stephen Hawking, January 2000) There are many essential principles to be complied with in applying complexity science to solve the problems of a complex system, including the Nonlinearity principle, the Openness principle, the Self-organization principle, the Self-adaptation principle, the Holism principle, etc. According to complexity science, the behavior of a complex system is an emergent property of the interactions of its components (agents), so that the tasks in software engineering should not be performed locally such as the implementation of a requirement change or code modification.
The framework for establishing NSE is called Five-Dimensional Structure Synthesis Method (FDS) proposed by Jay Xiong for general paradigm-shifts from an old-established paradigm based on linear thinking and simplistic science to a new revolutionary paradigm based on nonlinear thinking and complexity science. NSE is an application example of FDS. NSE is a complete paradigm which brings revolutionary changes to almost all aspects in software engineering. It consists of 10 parts, including (1) the NSE process model which is nonlinear, supported by facilities for automated and bidirectional traceability; (2) the NSE software development methodology driven by defect-prevention and traceability; (3) the NSE software diagramming paradigm based on interactive and traceable 3J graphics (J-Chart, J-Diagram, and J-Flow) defined and implemented by Jay Xiong for making the entire software development lifecycle visible; (4) the NSE software testing paradigm based on Transparent-Box testing approach proposed and implemented by Jay Xiong, which combines functional testing and structural testing (supporting MC/DC (Modified Condition/Decision Coverage) test coverage analysis with capability to highlight untested branches and conditions in J-Diagram and J-Flow diagram) together seamlessly, can be dynamically used in all of the phases of a software development lifecycle, including the requirement development phase and the design phase, because having a visible output is no longer a condition for applying this new software testing approach – in that case the test tools will check whether the real execution path for a test case is the same as the expected one specified in J-Flow diagram, and automatically build a facility for bidirectional traceability for helping users check for any inconsistency defects; (5) the NSE software quality assurance paradigm based on defect prevention and defect propagation prevention; (6) the NSE software documentation paradigm with which software documents and software source code are traceable and consistent with each other; (7) the NSE software maintenance paradigm which is systematic, disciplined, and quantifiable in responding to software changes through various bidirectional traceabilities to prevent side-effects. It is the key part of NSE for help software organizations to double their software productivity and halve the cost. With NSE, even if only one code statement is modified, the NSE support platforms will quantifiably determine how many requirements are related to the change, how many function modules are related to the change, and how many documents may be affected with the change to avoid any side-effects; (8) the NSE project management paradigm which combines project management and project development together seamlessly; (9) many automated and intelligent techniques used for the implementation of NSE; (10) the NSE support platforms, Panorama++ and SilverBullet integrated with many highly automated tools.
Paradigm comparison and the primary applications of NSE show that compared with the old-established software engineering paradigm, it is possible for NSE (with its support platforms) to help software organizations double their productivity, halve their costs, remove 99% to 99.99% of defects in their software products, and efficiently handle the issues of software complexity, invisibility, changeability, and conformity. With NSE, “software” is redefined as and delivered to the customer with a computer program, the data, and all of the related documents (including the test case script files too), plus the database built though static and dynamic measurement of the program, and a set of Assistant Online Agents (AOA) artificial intelligence tools for supporting testability, visibility, changeability, conformity, and traceability to make the software product maintainable, adaptive, and that the static and dynamic measurement results can be viewed easily, and that the requirement validation and acceptance testing can be dynamically done in a fully automated way through mouse clicks only.
- Analyze the critical problems of the old-established software engineering paradigm, and their root causes
- Understand the basic concepts and the essential principles of complexity science
- Learn how to use the paradigm-shift framework, FDS, to shift an old-established paradigm based on linear thinking and simplistic science to a new revolutionary paradigm based on nonlinear thinking and complexity science in various sciences, engineering, and business
- Learn what the NSE process model is, and compare it with linear process models
- Learn about the support facility for bidirectional traceability, and how it works
- Master the NSE software development methodology driven by defect prevention and traceability
- Apply the NSE diagramming paradigm to make the entire software development lifecycle visible, and perform efficient code inspection through various traceabilities
- Apply the NSE software testing paradigm based on Transparent-box (which combines functional testing and structural testing together seamlessly) Testing dynamically in all of the phases of a software development lifecycle, including the requirement development phase and the design phase before coding, compare it with the old approaches on defect finding efficiency, and be familiar with the algorithms for realizing MC/DC test coverage analysis, test case efficiency analysis and test case minimization, memory leak checking, traceability of the execution path for a dynamic error, and intelligent regression testing through test case selection based on bidirectional traceability
- Perform software quality assurance with the NSE quality assurance paradigm based on defect prevention, defect propagation prevention, refactoring based on code complexity measurement, deep and broad testing, and quality measurement to remove 99% to 99.99% of the defects of a software product
- Learn and master the NSE software maintenance paradigm which is systematic, disciplined, and quantifiable in responding to software changes through various bidirectional traceabilities to prevent side-effects, double software productivity, and halve the cost
- Use the NSE documentation paradigm to manage the documents and the source code together and make them always consistent with each other
- Be familiar with the NSE project management paradigm which combines project management and project development together
- Understand the NSE technologies used for the implementation of the NSE paradigm
- Try to use the NSE support platform with examples, if the wireless internet access is available in the conference room for downloading files (please bring your notebook computers with you)
- Understand the differences between the old definition and the new definition of “software” .
- Make a general comparison between the old-established software engineering paradigm and NSE by yourself.
This course will enable you to:
This tutorial is intended for CTO, faculty, engineers, scientists, researchers, project managers, entrepreneurs, and graduate students who wish to learn about a complete revolution in software engineering, based on complexity science. The audience is assumed to be familiar with the basic concepts and processes in software engineering.
Biography of Instructor
Mr. Jay Xiong, President of International Software Automation, Inc. (ISA, being reorganized now), and President of ISA Shanghai, Ltd., has brought his 20 years of experience in CAD/EDA to software engineering automation with his innovative techniques for graphical representation, software testing, quality assurance, and maintenance. Trained at the Zhong Shan University and in integrated circuit design at the Chinese Academy of Science, Mr. Xiong invented the “Shortest Path Routing Algorithm Using Wave Diffraction” at the Hitachi Research Center in Japan. This major technical achievement brought him to the University of California, Berkeley as the foremost Chinese scientist in the Computer Aided Integrated Circuit Layout Project jointly sponsored by The National Science Foundation of the United States and the Chinese Academy of Science. Mr. Xiong turned his research to software engineering automation and established Advanced Software Automation, Inc. (ASA) in 1989 and International Software Automation, Inc. (ISA) in 1992. Mr. Jay Xiong is the designer of the Panorama product. “Panorama : developed by International Software Automation, Inc. encompasses a complete set of tools for object-oriented software development including tools that assists test case design and test planning.” (ROGER S. PRESSMAN, "Software Engineering: A Practitioner’s Approach")
International Software Automation
Email: firstname.lastname@example.org, email@example.com