Preview

Research

Powerful Essays
Open Document
Open Document
6105 Words
Grammar
Grammar
Plagiarism
Plagiarism
Writing
Writing
Score
Score
Research
Information and Software Technology 45 (2003) 539–546 www.elsevier.com/locate/infsof

Code and data spatial complexity: two important software understandability measures
Jitender Kumar Chhabraa,*, K.K. Aggarwalb, Yogesh Singhc a Department of Computer Engineering, National Institute of Technology (Deemed University), Kurukshetra 136119, India b Vice-Chancellor, GGS Indraprastha University, Delhi 110006, India c School of Information Technology, GGS Indraprastha University, Delhi 110006, India Received 5 October 2002; revised 22 February 2003; accepted 3 March 2003

Abstract In order to maintain the software, the programmers need to understand the source code. The understandability of the source code depends upon the psychological complexity of the software, and it requires cognitive abilities to understand the source code. The individual needs to correlate the orientation and location of various entities with their processing, which requires spatial abilities. This paper presents two measures of spatial complexity, which are based on two important aspects of the program—code as well as data. The measures have been applied to 15 different software projects and results have been used to draw many conclusions. The validation of the results has been done with help of perfective maintenance data. Lower values of code as well as data spatial complexity denote better understandability of the source code. q 2003 Elsevier Science B.V. All rights reserved.
Keywords: Code spatial complexity; Data spatial complexity; Understandability; Software metrics; Psychological complexity

1. Introduction In order to control, manage, and maintain software, the software complexity needs to be measured. If you cannot measure it, you cannot control it [7]. There are many aspects of the software. Some of them contribute towards the design and algorithmic complexity, some contribute towards readability and understandability of the software, and some other aspects have an influence



References: [1] K.K. Aggarwal, Y. Singh, J.K. Chhabra, An Integrated Measure of Software Maintainability, Proceedings of Annual Reliability and Maintainability Symposium RAMS-2002—International Symposium on Product Quality and Integrity, Seatle Westin, USA, Jan 28 –31, 2002, pp. 235 –241 [2] K.K. Aggarwal, Y. Singh, J.K. Chhabra, Computing program weakness using module coupling, ACM SIGSOFT 27 (1) (2002) 63–66. [3] A. Baddeley, Human Memory: Theory and Practice, Revised Edition, Hove Psychology Press, 1997. [4] R. Brooks, Towards a theory of the comprehension of computer programs international, Journal of Man-Machine Studies 18 (1983) 543 –554. [5] J.K. Chhabra, Y. Singh, Software maintenance: write software that is easy to maintain, i.t, Information Technology Magazine 10 (7) (2001) 60– 62. [6] S.D. Conte, H.E. Dunsmore, V.Y. Shen, Software Engineering Metrics and Models, Cummings Pub Inc, USA, 1986. [7] T. DeMarco, Controlling Software Projects, Yourdon Press, Englewood Cliffs, NJ, 1982. [8] C.R. Douce, P.J. Layzell, J. Buckley, Spatial Measures of Software Complexity, Technical Report, Information Technology Research Institute, University of Brighton, UK, Jan 1999 [9] N.E. Fenton, S. Fleeger, Software Metrics—A Rigorous and Practical Approach, Thomson International Press, 2002. [10] K. Laitnen, Estimating understandability of software documents, ACM SIGSOFT 21 (1996) 81–92. [11] T.J. McCabe, A complexity measure, IEEE Transactions on Software Engineering SE-2 (4) (1976) 308 –319. [12] J.F. Peters, W. Pedrycz, Software Engineering: an Engineering Approach, Wiley, New York, 2000. [13] Y. Singh, P. Bhatia, Module weakness: a new measure, ACM SIGSOFT 23 (5) (1998) 81–82. [14] T. Tenny, Program readability: procedures versus comments, IEEE Transactions on Software Engineering 14 (9) (1988) 1271– 1279. 7. Conclusion The paper has proposed two measures of understandability of software: code spatial complexity and data spatial complexity. Code spatial complexity measures the efforts required to comprehend the definition of various modules with their uses. Data spatial complexity concentrates on measuring the efforts needed to grasp the purpose and uses of global variables and constants. The study of 15 different projects has been done and these spatial complexities have been measured for all of these projects. The results indicate that the adequate use of global data and software engineering practices helps in getting lesser value of these complexities, resulting into more understandable software.

You May Also Find These Documents Helpful

  • Good Essays

    Pt2520 Unit 3 Metrics

    • 544 Words
    • 3 Pages

    In this presentation, the author has explained different metrics and there attributed used to measure software. A person can only measure and represent it in number when he knows something about it. On the other hand, if has no idea about it then he doesn’t have any idea about it [1]. There are two types of software complexity metrics. One gives the efficiency of the machine while running the software which is called as computational complexity. Another one is giving us the factors which affect the software developer capacity to develop good software which is known as psychological complexity. There are two types of software metrics. The process metrics which gives details of the process used such as software life cycle used for development, the time consumed for the development etc. The…

    • 544 Words
    • 3 Pages
    Good Essays
  • Satisfactory Essays

    Bis/220 Week 5 Summary

    • 265 Words
    • 2 Pages

    Developing the right programs for a company’s needs can become a major project. Going into weeks 4 and 5, I did not realize how much work and detail went into planning, developing and implementing a software program. There is a team structure with a project manager and the involvement of the company utilizing the program can be very involved to no say at all. I learned that a scope is a list of features desired in a project. I gained knowledge of the Software Development Life Cycle (SDLC). The many phases of the SDLC are need, prototype, investigation, analysis, design, testing, operations, and maintenance, and finally implementing the system. The scope creep involves adding functions after the project has been initiated. I also learned that RAD stands for Rapid App Development and is an alternative to the traditional life cycle. At work we use a scope in planning our shut-downs in order to gain an outlook of work to be done. A scope can be used at home when you receive a tax return in order to allocate funds toward different family needs. Another topic team members have learned was why the data is transmitted from the high volume data and the way its transmitting microwave towers or satellites are used, these have very powerful and large wavelengths that can travel long distances. We also discovered we all use electronic communication every day, from text messaging to e-mail and other forms of web based electronic communication such as…

    • 265 Words
    • 2 Pages
    Satisfactory Essays
  • Powerful Essays

    Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 Chapter 14 Chapter 15 Chapter 16 Chapter 17 Chapter 18 Chapter 19 Chapter 20 Chapter 21 Chapter 22 Chapter 23 Chapter 24 Chapter 25 Chapter 26 Chapter 27 An Introduction to Hardware, Software, and the Internet An Introduction to Software Development Objects and Classes Algorithms Java Syntax and Style Data Types, Variables, and Arithmetic Boolean Expressions and if-else Statements Iterative Statements: while, for, do–while Implementing Classes and Using Objects Strings Class Hierarchies and Interfaces Arrays…

    • 3908 Words
    • 16 Pages
    Powerful Essays
  • Powerful Essays

    Four major problems will slow down the organization’s ability to maintain its software efficiently, such as, the unstructured codes, a programmer with insufficient knowledge of the system being implemented, lack of documentation, documentation that is not kept updated and or insufficient documentation. Consequently, the success of maintaining the software life cycle will depend on McBride Financial Services ability and initiate to fix these issues earlier in the cycle of the software before the software reaches the maintenance stage (Stafford,…

    • 2098 Words
    • 9 Pages
    Powerful Essays
  • Better Essays

    Grubb, P. & Takang, A.A. (2003). Software maintenance: concepts and practice (2nd ed.). Singapore: World Scientific.…

    • 1550 Words
    • 7 Pages
    Better Essays
  • Satisfactory Essays

    Kizza Chapter *

    • 528 Words
    • 3 Pages

    1. Briefly state the main idea of this chapter. Since software in one form or another controls every computer or computer component, it becomes a more important and fundamental part of our life. Even though we may not understand the languages that make up the software, we must be aware of the elements of software that affect its use. Verification and Validation, reliability, security, safety, and quality are some of the major points examined and brought to light. It delves into the various reasons of why software fails and who is responsible. More importantly, it covers what consumer protection exists and the rights of software buyer's.…

    • 528 Words
    • 3 Pages
    Satisfactory Essays
  • Good Essays

    Complexity metrics: A variety of software metrics can be computed to determine the complexity of program control flow.…

    • 431 Words
    • 2 Pages
    Good Essays
  • Good Essays

    Software developers make effective software. It is an engineering endeavor that cannot be extracted from the context and systems with which it interoperates. The heart of a good software solution is not in turning the functional specification into code but rather in the use of available resources such as time and money to create desired outcomes for stakeholders, while satisfying constraints such as legal requirements through purposeful design.…

    • 1334 Words
    • 6 Pages
    Good Essays
  • Better Essays

    References: Canfora, G., & Cimitile, A. (2000, November 29). Software Maintenance. Retrieved from aminer.org: http://pdf.aminer.org/000/592/354/a_study_of_the_documentation_essential_to_software_maintenance.pdf…

    • 748 Words
    • 3 Pages
    Better Essays
  • Better Essays

    Application Architecture

    • 1006 Words
    • 5 Pages

    “Software architecture encompasses the set of significant decisions about the organization of a software system including the selection of the structural elements and their interfaces by which the system is composed; behavior as specified in collaboration among those elements; composition of these structural and behavioral elements into larger subsystems; and an architectural style that guides this organization. Software architecture also involves functionality, usability, resilience, performance, reuse, comprehensibility, economic and technology constraints, tradeoffs and aesthetic concerns.”…

    • 1006 Words
    • 5 Pages
    Better Essays
  • Good Essays

    Personal Career Goals

    • 783 Words
    • 4 Pages

    Computer technology has gone from being undiscovered to being used globally. We live in an exciting time technologically. Over relatively short spans of time, technology has improved our lives in many ways. Advances in computing and technology save lives, make day-to-day living easier, and have improved quality of life for billions of people. The impact that computing has on the world is fascinating to me. I have spent the last few years studying programming, software development, and computer programming and have felt great satisfaction in learning about what makes up this computing technology.…

    • 783 Words
    • 4 Pages
    Good Essays
  • Better Essays

    In the world today, people are relying more and more on technology for their every day needs. Part of this reliance stems from a growing need of on the go service. People love to talk about how great their smart phone or tablet is, but what many people don’t realize is that without the software that is designed to run on these mobile devices, none of this would be possible. More and more people are using a broad variety of software types, thus the importance of software documentation has never been higher. Software documentation is defined as “program listings or technical manuals describing the operation and use of programs” (Dictionary, 2012). There are many different factors that go into software documentation, including their requirements, how software documentation requirements are documents, how they are specified, who is involved in the requirements process, and why such processes are important. A lot of times, people don’t even know what software documentation is all about. It isn’t interesting to people, and most people would just ignore it all together and delve into the software. If they run into a problem, however, then the user will read the documentation. Because of this, it is very important to make sure that your documentation is correct and easily understood by the user.…

    • 3189 Words
    • 13 Pages
    Better Essays
  • Powerful Essays

    Many software projects are faced with a common situation: They fail in developing the required…

    • 4341 Words
    • 19 Pages
    Powerful Essays
  • Better Essays

    Unified Modeling Language

    • 1022 Words
    • 5 Pages

    The Unified Modeling language (UML) was released by the Object Management Group (OMG) in the effort to provide a standardized design language to build and develop computer applications. The purpose of the design language is to allow IT professionals to distribute system structure and design plans in a comprehensible graphical manner, similar to blueprints of a building. Modeling is an important part of software projects, large and small. With modeling, the software development team are better able to work with the end-user in providing a visual program design. Surveys reveal that the development of large software applications have many impediments and have a large probability of failure. Modeling provides a greater opportunity for success in the development of software applications. (Introduction to OMG's Unified Modeling Language)…

    • 1022 Words
    • 5 Pages
    Better Essays
  • Good Essays

    This assignment has three questions of 80 marks. Answer all the questions. Rest 20 marks are for viva voce. You may use illustrations and diagrams to enhance explanations.…

    • 1472 Words
    • 6 Pages
    Good Essays