Parallel fuzzy cognitive maps as a tool for modeling software development projects

Fuzzy cognitive maps (FCM) are useful tool for simulating and analyzing dynamic systems. The FCMs have a very simple structure, and thus are very easy to comprehend and use. Despite of the simplicity, they have been successfully adopted in many different areas, such as electrical engineering, medicine political science, international relations, military science, history: supervisory systems, etc. Software development is a complex process, and there are many factors that influence its progress. To effectively handle larger development processes, they are usually divided into subtasks, which are assigned to different teams of workers, and often are performed in parallel. However, some constraints that impose particular sequence of realization of these subtasks, i.e. some tasks cannot be started before completing others, usually exist. Proper division of a project into subtasks and establishing relations between them are essential to correctly manage software projects. Neglecting these constraints often leads to problems that, in consequence, cause misestimating the overall time and budget. This paper introduces a new architecture of FCM, which combines a number of simple FCM models that work simultaneously into a novel parallel FCMs model. It uses a special purpose coordinator module to synchronize simulation of each FCM model. This approach extends application of FCMs to complex systems, which contain multiple subtasks that run in parallel, and thus must be simulated with multiple FCM models. In addition, application of parallel FCMs to analyze and design software development processes is presented. FCM models are focused on simulating and analyzing factors, such as progress and communication, and their relationships, which are based on theoretical research studies and practical implementations. The parallel FCM model is used to simulate complex projects where multiple tasks exist. The paper is based on our previous work where FCM models, which describe relationships between the above factors for individual development tasks, were developed. The newly proposed architecture allows for efficient analysis of dependences between tasks performed in parallel.

[1]  Stephen Flowers,et al.  Software failure, management failure : amazing stories and cautionary tales , 1996 .

[2]  Rod Taber,et al.  Knowledge processing with Fuzzy Cognitive Maps , 1991 .

[3]  Shigeo Abe,et al.  Neural Networks and Fuzzy Systems , 1996, Springer US.

[4]  Takashi Okuda,et al.  Computational intelligence for distributed fault management in networks using fuzzy cognitive maps , 1996, Proceedings of ICC/SUPERCOMM '96 - International Conference on Communications.

[5]  D. Kardaras,et al.  Using Fuzzy Cognitive Maps to Model and Analyse Business Performance Assessment , 1997 .

[6]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[7]  Gary D. Boetticher,et al.  Using Machine Learning to Predict Project Effort: Empirical Case Studies in Data-Starved Domains , 2001 .

[8]  Chrysostomos D. Stylios,et al.  The challenge of modelling supervisory systems using fuzzy cognitive maps , 1998, J. Intell. Manuf..

[9]  W. Stach Modeling Software Development Projects Using Fuzzy Cognitive Maps , 2004 .

[10]  M. A. Styblinski,et al.  Signal Flow Graphs vs Fuzzy Cognitive Maps in Application to Qualitative Circuit Analysis , 1991, Int. J. Man Mach. Stud..

[11]  Bart Kosko,et al.  Virtual Worlds as Fuzzy Cognitive Maps , 1994, Presence: Teleoperators & Virtual Environments.

[12]  Gary D. Boetticher,et al.  21st-century AI: proud, not smug , 2003, IEEE Intelligent Systems.

[13]  C.E. Pelaez,et al.  Applying fuzzy cognitive-maps knowledge-representation to failure modes effects analysis , 1995, Annual Reliability and Maintainability Symposium 1995 Proceedings.