(IJCSIS) International Journal of Computer Science and Information Security,Vol. 9, No. 6, 2011
Figure 1. The Model of Software Complexity Factors
Human resource is considered in stakeholders and projectteam levels. Stakeholders are the most important complexityfactors, because the requirements extraction process results andtheir requested and desirable items form the system base.Stakeholders are people with different backgrounds,organizational and personal goals and social situations, andeach of them has its own method for understanding andexpressing the knowledge and communicates in various wayswith other people. So complexity is widely depending on thestakeholders, and placed in the first level of the model.The Input data to perform the next phases of the softwarelife cycle are documents, which are derived of the requirementsanalysis phase. All items and stated requirements, causes thecomplexity and so documents have considered as the secondlevel of the model. It is necessary to say that this level of thecomplexity results in inherent complexity of the system.Finally, project team (as a subset of human resources) isconsidered as another complexity factor, because of differencesin cognitive, experimental, subjective skills, and placed in thethird level of model. In the following, the model discussedmore in details.
A.Inherent Complexity Factors
The output of the Requirement Engineering process isSoftware Requirement Specification (SRS). SRS is includedthe principles of software acceptance, and monitors softwareproduct, not the product development process. SRS composedof several items, such as functional requirements, non-functional requirements, design constraints, interfaces, users,inputs and outputs, etc. All these items are the basis for thecomplexity identification.
Functional Requirements: Functionalrequirements shoulddefine the fundamental actions that must take place in thesoftware. Mostresearchersclaim thesizeofthe product isoneof themain factorsin determiningits complexity.Inthe other words, the more functional requirements resultin alarger and more complex system and would requiremoreeffort andresourcestosolve it(especially inmaintenance phase ).
Stability Degree: Some of the systems located inthe dynamic and competitive environment orinteract with evolving systems. The functionalrequirements of these systems expose in frequentchanges. Systems which undergo frequentmodification have higher error rates, becauseeach modification represents an opportunity fornew errors to be generated. It may also be thecase that when systems are undergoing frequentchanges, there is less opportunity and lessinterest in testing those changes thoroughly. Allof these lead to the complexity.
Sub function: It may be appropriate to partitionthefunctional requirements into sub functions orsub processes. This does not imply that thesoftware design will also be partitioned that way.More number of sub functions in a functionalrequirement means the high rate of complexity inthat requirement.
It refers to the systemqualitative requirements and not fulfilling those leads tocustomer's dissatisfaction. More number of non-functionalrequirements and more forceto do them leadto morecomplexity in the product. A way to rank requirements isto distinguish classes of requirements as essential,desirable, and optional.
Design constraints:This should specify design constraintsthat can be imposed by other standards, hardwarelimitations, etc. Some constraints are, Implementationlanguage, database integrity policies, operatingenvironment, size of required resources; all of these limitthe developers and add complexity in the system.
System Interfaces: There arehardware interfaces,software interface, user interface, communicationinterface, etc. These specifythelogicalcharacteristicsbetweenthe softwareproductandhardwarecomponents,othersoftware products, usersanddifferentcommunicationprotocol. The more numbers oftheinterfaces representmore complexity in the system.
Input, Output, Files: Functional requirements process theinputs and process and generating the outputs, also filesare stored data in the system. So the number offiles, inputand output parametersand the relationship betweenthemis very important. Many numbers of these parametersrepresent hightransactionsandso complexity inthesystem.
Users: These requirementsare the number of supportedterminals and the number of concurrent users. High