Proceedings. Science and Engineering for Software Development: A Recognition of Harlin D. Mills Legacy (Cat. No. PR00010)

IEEE Software ◽  
1998 ◽  
Vol 15 (1) ◽  
pp. 120, 118-119 ◽  
Author(s):  
S. McConnell

Author(s):  
Mohammad Reza Besharati ◽  
Mahdi Mostafazadeh ◽  
Mohammad Izadi

According to many researchers, Abstraction is the basis of mathematics, computing, counting devices, and computer science and engineering. What is more, all of the above deal with complexity management in some way, and abstraction is the most basic mechanism of complexity management.Generative software development - whether in the sense of empowering humans by machine to create software or in the sense of reusing products - has been and is one of the serious concerns and goals of software engineering. The interesting thing is that in both views of generativity, the main issue is still, in a way, complexity management: whether this complexity management is to achieve diversity and reuse management (Czarnecki’s approach) or to Structuring from existing structures (the approach of Alexander and his followers in an object-oriented society).In this article, we will first look at complexity and its various definitions. The definitions that show, despite the different perspectives on complexity in different disciplines and domains, all point in one direction. We will conclude that complexity is rooted in multiplicity. In the following, we will formally define complexity. In the following discussion, we will look at the generative patterns of software development, and then we will look at the complexity management patterns at seven levels.In this article, the author has tried to maintain a comprehensive approach to complexity and to consider the approaches of different domains to complexity.


Sign in / Sign up

Export Citation Format

Share Document