Skip to main content

2011 | Buch

New Software Engineering Paradigm Based on Complexity Science

An Introduction to NSE

insite
SUCHEN

Über dieses Buch

This book describes a complete revolution in software engineering based on complexity science through the establishment of NSE – Nonlinear Software Engineering paradigm which complies with the essential principles of complexity science, including the Nonlinearity principle, the Holism principle, the Complexity Arises From Simple Rules principle, the Initial Condition Sensitivity principle, the Sensitivity to Change principle, the Dynamics principle, the Openness principle, the Self-organization principle, and the Self-adaptation principle. The aims of this book are to offer revolutionary solutions to solve the critical problems existing with the old-established software engineering paradigm based on linear thinking and simplistic science complied with the superposition principle, and make it possible tohelp software development organizations double their productivity, halve their cost, and remove 99% to 99.99% of the defects in their software products, and efficiently handle software complexity, conformity, visibility, and changeability. It covers almost all areas in software engineering.

The tools NSE_CLICK- an automatic acceptance testing platform for outsourcing (or internally developed) C/C++ products, and NSE_CLICK_J - an automatic acceptance testing platform for outsourcing (or internally developed) Java products are particularly designed for non-technical readers to view/review how the acceptance testing of a software product developed with NSE can be performed automatically, and how the product developed with NSE is truly maintainable at the customer site.

Inhaltsverzeichnis

Frontmatter
Chapter 1. Introduction
Abstract
Today software is becoming the foundation of modern civilization. It is playing an important role in the development of all kinds of businesses in the world. It affects almost all aspects of our lives and our everyday activities.
Jay Xiong
Chapter 2. Is the Old-Established Software Engineering Paradigm Entirely Out of Date?
Abstract
Software has become a driving force for the development of science, engineering, and business in the twenty-first century.
Jay Xiong
Chapter 3. Foundation for Establishing NSE: Complexity Science
Abstract
This chapter introduces the foundation for establishing NSE – complexity science. Complexity science is the scientific study of nonlinear, dynamic, complex systems and the process of self-organization. Complexity science is the driving force for the development of sciences, engineering, and business in the twenty-first century. Complexity science explains how holism emerges in the world, and more. It is the intellectual successor to systems theory and chaos theory. Complexity science is a field derived from multiple disciplines – physics, chemistry, biology, and mathematics. Definitions of complexity are often tied to the concept of a complex system – something with many parts that interact to produce results that cannot be explained by simply specifying the role of each part. This concept contrasts with traditional machine or Newtonian constructs, which assume that all parts of a system can be known, that detailed planning produces predictable results, and that information flows along a predetermined path. Elements of complexity theory have been incorporated into a number of fields including genetics, immunology, cognitive science, economics, computer science, and linguistics. Currently, the most robust research in complexity science involves the study of inanimate systems such as computer networks and hydrodynamic systems as well as certain cellular networks (Ashok M. Patel, M.D., Thoralf M. Sundt III, M.D., and Prathibha Varkey, M.D., Complexity Science – Core Concepts and Applications for Medical Practice, http://www.minnesotamedicine.com/PastIssues/February2008/ClinicalFebruary2008/tabid/2462/Default.aspx); [Ber 76], [Sar06].
Jay Xiong
Chapter 4. Prediction and Practices: A New Round of Industrial Revolution Driven by Complexity Science and a General Paradigm-Shift Framework
Abstract
This chapter describes a prediction – a new round of industrial revolution driven by Complexity Science, and a paradigm-shift framework, the Five-Dimensional Structure Synthesis method (FDS). Many businesses fail because of an attempt to solve nonlinear problems with linear processes. With FDS, the paradigm shift for an industry can be performed efficiently – from the old-established paradigm based on linear thinking, reductionism, and superposition principle to a new paradigm based on nonlinear thinking and complexity science in compliance with the common principles of complexity science. FDS has been successfully used in the paradigm shift of the software industry and could be successfully used for other industries too.
Jay Xiong
Chapter 5. Outline of the NSE Paradigm
Abstract
This chapter will briefly introduce the NSE paradigm, including the development objectives, the basic idea, the technical route to achieve its development objectives, the structure, the components, and the major features and characteristics of the NSE paradigm.
Jay Xiong
Chapter 6. The Techniques Innovated to Support NSE
Abstract
There are a set of unique techniques innovated to support the NSE process model and the entire NSE software engineering paradigm for efficiently solving the essential problems in software development: the complexity, changeability, conformity, and invisibility described by Frederick P. Brooks Jr. in his book, “The Mythical Man-Month” [Bro95-p182], plus testability, reliability, traceability, and maintainability. This set of unique techniques are innovated by me and implemented by me and my colleagues through the Paradigm-shift framework, FDS, also innovated by me (see Chap. 4), as shown in Fig. 6.1.
Jay Xiong
Chapter 7. NSE Software Engineering Visualization Paradigm
Abstract
This chapter introduces the NSE software visualization paradigm which is holistic, and the generated charts and diagrams are interactive, colorful, and traceable; it is to be used in the entire software development lifecycle to make all the processes and the obtained work products visible.
Jay Xiong
Chapter 8. NSE Process Model
Abstract
This chapter describes an important component of the NSE (Nonlinear Software Engineering) paradigm – the NSE process model.
Jay Xiong
Chapter 9. The Facility for Automated and Self-Maintainable Traceability
Abstract
This chapter introduces the facility for automated, dynamic, accurate, precise, and self-maintainable traceabilities among related software documents and test cases and source code established through test case execution and some keywords used within the test case descriptions to indicate the format of the documents as well as the file paths and the bookmarks for automatically opening the documents from the corresponding positions when the related test case is selected for forward tracing or traced backwards from the corresponding source code. When a test case is executed, a Time Tag will be automatically inserted into both the test case description and the database of the test coverage measurement results for mapping them together. No matter if the contents of a document are modified, or the parameters of a test case are changed, or the corresponding source code is modified, after rerunning the test case the traceabilities will be updated automatically without any manual rework. Here a “document” means a regular file for requirement specification, design description, test requirement specification, user manual, project development plan, cost report, or a Web page as well as a batch file for dynamically running a related program such as a tool for selectively playing back the GUI operations captured with the test case execution, and displaying the test coverage measurement result shown in a new type of control flow diagram which is ­interactive and traceable with untested source modules and branches highlighted at the same time for automated software acceptance testing.
Jay Xiong
Chapter 10. NSE Software Development Methodology Driven by Defect Prevention and Traceability
Abstract
This chapter describes another important component of NSE – the NSE software development methodology. Software development methodology is a framework used to structure, plan, and control the process of software product development and maintenance.
Jay Xiong
Chapter 11. Requirement Engineering Under NSE: Source Code Driven Dynamic Software Modeling
Abstract
This chapter introduces the detailed applications of the NSE process model and the NSE software development methodology in software requirement development.
Jay Xiong
Chapter 12. Design Engineering Under NSE
Abstract
In the software design phase, the major tasks include the planning of the solution according to the requirement specification, design of the software architecture, design of the data structure, design of the interfaces, design of the algorithms, design of the modules, and design of the documents.
Jay Xiong
Chapter 13. Coding Engineering with NSE
Abstract
This chapter introduces software coding engineering with NSE on which software coding and software design are combined together closely using the innovated Synthesis Design and Incremental Integration (growing up) technique – with NSE, software design becomes precoding and software coding becomes further design. The quality of the work products (source code and the documents) is ensured by defect prevention and defect propagation prevention through dynamic testing using the innovated Transparent-box testing method, inspection using traceable documents and the source code, and software visualization.
Jay Xiong
Chapter 14. The Basis of Software Testing
Abstract
This chapter introduces the basic concepts and knowledge of software testing, including the purpose of software testing, the basic test methods and technology, and their characteristics. The complexity and size of today’s software makes writing bug-free code extremely difficult, even for highly experienced programmers [Pat00], so that a software should be tested.
Jay Xiong
Chapter 15. Software Test Case Design
Abstract
This chapter introduces how to design test cases for efficiently testing a software product.
Jay Xiong
Chapter 16. The NSE Software Testing Paradigm Based on the Transparent-Box Method
Abstract
This chapter introduces another important component of NSE – the NSE software testing paradigm.
Jay Xiong
Chapter 17. NSE Software Quality Assurance Paradigm Driven by Defect Prevention
Abstract
Regarding software quality, Watts S. Humphrey said, “Over the last 50 years there has been very little improvement” [Fry07]. Capers Jones said, “Major software projects have been troubling business activities for more than 50 years. Of any known business activity, software projects have the highest probability of being canceled or delayed. Once delivered, these projects display excessive error quantities and low levels of reliability.” [Jon06].
Jay Xiong
Chapter 18. NSE Software Maintenance Paradigm: Systematic, Disciplined, and Quantifiable
Abstract
This chapter introduces the NSE software maintenance paradigm established by complying with the essential principles of complexity science through the use of the innovated FDS (Five-Dimension Synthesis Method) framework (see Chap. 4) as shown in Fig. 18.1.
Jay Xiong
Chapter 19. NSE Documentation Paradigm: Virtual, Traceable, and Consistent with the Source Code
Abstract
This chapter introduces another component of NSE – the NSE documentation paradigm which helps software organizations document their software products automatically, dynamically, holistically, accurately, precisely, and virtually. Documents for a software product should at least include the software project objectives, product specification, schedule, budget, space allocation, organization chart [Bro95-P110], technical manual, algorithm description, data structure design, testing methods and process and results, user manual, etc. [Woe09]. What is focused on in this chapter is technical documentation engineering.
Jay Xiong
Chapter 20. NSE Project Management Paradigm: Seamlessly Combined with the Project Development Process
Abstract
This chapter introduces the NSE project management paradigm with which the software development process and project management process are combined together seamlessly, so that the documents for project management are traceable with the implementation of the requirements and the source code to help the project management team and the project development teams find possible problems quickly and solve the problems in time.
Jay Xiong
Chapter 21. Algorithms Innovated for Establishing NSE
Abstract
The algorithm is the soul of software.
An algorithm is an effective method for solving a problem expressed as a finite sequence of steps/instructions.
Because the size limitation of this book, I will not introduce all of the detailed steps of an algorithm innovated by me and used in the establishment of NSE, but I will introduce the idea and key steps in the implementation of the algorithm.
Jay Xiong
Chapter 22. NSE Support Tools and NSE Support Platforms
Abstract
This chapter introduces NSE support tools and NSE support platform. These tools are developed mainly from the innovated techniques described in Chap. 7.
Jay Xiong
Chapter 23. NSE Applications
Abstract
This chapter introduces the applications of NSE and its support platform, Panorama++, for both new software product development and a product being developed using other approaches – in this case, users only need to rewrite their test cases according to some simple rules and set bookmarks to the related documents; the other work can be performed automatically by Panorama++. It means that NSE can be added on to any approach at any stage.
Jay Xiong
Chapter 24. Candidates of “Silver Bullet”
Abstract
Today software has become the driving force for the development of all kinds of businesses, engineering, sciences, and the global economy – software reliability affects not only our lives and the global economy today but also affects the future of mankind. As pointed by David Rice, like cement, software is everywhere in modern civilization. One cannot live in modern civilization without touching, being touched by, or depending on software in one way or another [Ric08].
Jay Xiong
Backmatter
Metadaten
Titel
New Software Engineering Paradigm Based on Complexity Science
verfasst von
Jay Xiong
Copyright-Jahr
2011
Verlag
Springer New York
Electronic ISBN
978-1-4419-7326-9
Print ISBN
978-1-4419-7325-2
DOI
https://doi.org/10.1007/978-1-4419-7326-9