Thursday, December 12, 2019

Software Architecture ACM Computing Surveys

Question: Discuss about the Software Architecturefor ACM Computing Surveys. Answer: Introduction The evolution and development of the codified software architecture has been significant to software industry for the last 30 years. With the evolving designs and pattern of software architecture, a new benchmark of abstraction has been set to simply the complexity of systems. However, to understand the entire architecture of a software system, the framework needs to be decomposed into a number of modules or sub-systems(Parnas, 2012). The contribution of David Parnas and Mary Shaw introduced the concept decomposition of modules, thus drawing a relation that each module or subsystem adhere to architecture in order to maintain some sort of testability and maintenance (De Lemos et al.2013). Discussion In the year 1972, Parnas discusses about the decomposition of software into subsystems in his paper On the criteria to be used in decomposing systems into Modules thus producing two separate modularizations. The first module aligns with the procedural or functional steps of software architecture and referred as flowchart method. The second module aligns with the information hiding procedure (Feng et al.2013). Parnas discusses about the second modularization, Each of the module in latter decomposition is characterized by its knowledge of design framework that is hidden from other. The interface of the design is chosen to reveal minimum about the inner architecture(Parnas,2011). This two sentences by Parnas has significant contribution to the world of software architecture, since this was the first time when the concept of information of information hiding was introduced(Parnas,2011). The idea relates with the principle of Black Box which forms the paramount importance of software design and forms the basis for various object oriented design principles. According to the principle of black box, where a module or class is built I which the input and output is revealed, whereas the internal architecture, design decisions and implementation is hidden(winter, 2014). Mary Shaw in her paper of Large Scale systems require Higher-level abstractions argued that in order to produce large-scale systems and the need of codified high-level designs architecture is essential to make abstracted design decisions at the sub-system level(Ko et al.2011). In the paper composition of system from subsystems, Shaw makes the observation that, subsystems are combined to construct large systems, whereas, the sub-systems have significant structures that could be designed at the system level rather than the class or module level (winter, 2014). This procedure allows the implementation of higher-level design architecture for significant subsystems that are best suited for efficient function and responsibilities. From the above discussion, both David parnas and Shaws work address the mechanism of software architecture from the decomposition and structural viewpoint (Parnas, 2012). This finding forms the base of current structural designs architecture of systems; however, it fails to encompass various aspects of software design in todays era of object- oriented scenario, specially the complex software systems. Critical Analysis Shaws paper is considered to be the spiritual prolongation of Parnas earlier study on Information hiding or Black box principle. This continuation is evident in the section 2 shaws paper where she advocate the abstract of lower level module functions behind the design pattern of subsystem, thereby extending the principle of black box that goes beyond single module (Ko et al.2013). Parnas in his work, did not elaborate or fail to anticipate the need for various levels of abstraction in large scale systems in order to develop the system effectively. Shaws work acts as the rectification that provides explicit advocating for the need of architectural level designs of software (Parnas, 2012). Architectural level design is essential for the development of modern systems as the wring choice of design pattern is likely to have catastrophic consequences, for instance, Model View Controller pattern is developed at the Xerox Prace in the year 1978-1979. This may provide the platform for Graphical User Interface (GUI) based systems (Feng et al.2013). The concepts of higher level system and subsystem architecture has been explicitly addressed by Shaw, however she fail to address the issues related to lower level classes or modules. Books by Robert C. Martin Agile software development: Principles, practices and patterns introduced a set of principles known as SOLID (Single Reponsibility, Open-Closed, Liskov Substitution, Interface segregation and dependency inversion )( Ko et al.2013).These principles are the extension of Parnas principle of information hiding and Shaws module abstraction that addresses the issues related to maintainability and testability of complex systems. Conclusions The work created by Parna forms the foundation for large number of software architectural patterns that are implemented in modern system software. Shaw extended the work of Parnas that allows abstraction of design decisions for higher level of software designs.The work has been further expanded by various other experimenters giving out concepts if reusable software architectural patterns that invoke the ability to build highly cohesive and decoupled systems tht are efficiently tested and maintained. References De Lemos, R., Giese, H., Mller, H. A., Shaw, M., Andersson, J., Litoiu, M., ... Wuttke, J. (2013). Software engineering for self-adaptive systems: A second research roadmap. In Software Engineering for Self-Adaptive Systems II (pp. 1-32). Springer Berlin Heidelberg. Feng, X., Parnas, D. L., Tse, T. H., O'Callaghan, T. (2011). A comparison of tabular expression-based testing strategies. Software Engineering, IEEE Transactions on, 37(5), 616-634. Ko, A. J., Abraham, R., Beckwith, L., Blackwell, A., Burnett, M., Erwig, M., ... Wiedenbeck, S. (2011). The state of the art in end-user software engineering. ACM Computing Surveys (CSUR), 43(3), 21. Parnas, D. L. (2011). Precise documentation: The key to better software. In The Future of Software Engineering (pp. 125-148). Springer Berlin Heidelberg. Parnas, D. L. (2012). The use of mathematics in software quality assurance. Frontiers of Computer Science, 6(1), 3-16. Winter, R. J. (2014). Agile Software Development: Principles, Patterns, and Practices.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.