Advanced Software Modularity: Overview and way ahead SHADMAN SALIH Software Technology Research Paper De Montfort University Faculty of Technology The Gateway, Leicester LE1 9BH, UK
[email protected] IMAT5120 Research Methods Assignment 2 January 10, 2014
1
Introduction
Advanced Software Modularity has in recent years grown to be an emerging area covering multiple modern Software Engineering techniques. Continuous innovations and emergence of newer software techniques have enhanced the way Computing works for human development. In fact Modularity in Software development can be seen as a milestone event that started new approach of Software Engineering. Modularity has been referred to as Logical Partitioning of various components of Software Program (Microsoft, 2014). Development of loosely coupled modules allow for easier testing and reusability of components making them System Independent. Modularity has had profound impact on software engineering as it has paved way for many advanced programming techniques and Software engineering methodologies. Object oriented programming owes its existence to development of modularity as a concept. Object oriented programming is characterised by multiple features including Data Abstraction, Reusability, Loose Coupling, Modularity, Platform independence. (HCM, 2014). Object oriented programming has since developed multiple languages for programming including C++, Java and Java framework. Object oriented programming languages are used to develop applications for multiple platforms and devices. While it is interesting to know development of modularity till date, it is also necessary to understand direction of future. Thus to understand the direction that Software Modularity would take going ahead, it would be helpful to understand the way this science has developed till date. Considering continuous innovations and multiple breakthroughs achieved in field of Software Engineering, one cannot predict exact developments that would be achieved going ahead, but nonetheless based on development achieved thus far, one can make a baseline guess that can predict direction of future.
1
2
Background Literature Review
Advanced Software Modularity is a suite of advanced software engineering techniques in area of Requirements and architectural design including but not limited to aspect oriented requirements engineering (Rashid A. , 2013) (Rashid, 2014), software product line (IBM, 2014) (Iris Groher, 2014) design techniques and requirement engineering for service oriented systems. Development of above techniques has not happened as a one shot development but has been a continuous evolution process. Thus to understand possible direction that might be taken in development of future technology it is also essential to understand the path taken till date. Development can be divided in a phase wise manner for more cohesive understanding. Nonetheless classical Software Engineering (Pressman, 2014) techniques can be used to understand future development. Development of software engineering and programming languages can be divided in multiple phases. First phase consisted of programming in form of switches and gears as used in Charles Babbages Difference engine. Second phase came in with development of transistors which gave rise to languages like COBOL, Pascal, etc. that could be coded into a card, compiled and stored. Next stage saw emergence of Unix. Forth phase saw emergence of Object oriented programming techniques. Finally current phase consists on web based application supported programming. (Brown, 2014). This research proposal aims to study path taken till now and attempt to predict possible direction of future and also apply classical Software Engineering tools and techniques to advanced modularity to get better understanding of possible tomorrow.
3
Proposed Work
The research proposal will be to build up a framework to trace development of various new ways of modularising and building up advanced software system using modern Software Engineering requirements and architecture design techniques. Current state of Modularity development is analysed and an attempt is made to identify possible future state.
4
Aims of Research
Using current Literature and available research, it is well understood that Software Modularity is not a static science and innovations are happening at a rapid pace. Thus this study aims to (a) Identify various developments and techniques that has given birth to Software Modularity (b) Analyse current state of Advanced Software Modularity with special focus of requirements and architecture design areas (c) Attempt to analyse and predict future trends and possible developments (d) Predict its effect in next generation programming and system design
5
Objectives
During this research following objectives will be investigated and analysed: 1. Identify most popular Advanced Software Modularity Tools and techniques 2. Trace development of each tool 3. Features of current tools and techniques 4. Attempt to predict possible future developments 5. Analysis of current tools and techniques 2
6
Methodology
The proposed methodology to be adopted to fulfil objectives of this research and find solution to other aspects of research is briefly outlined in this section. A collaborative tool will be developed to collaborate facts and research findings collected from multiple sources. Collaborative tool will also be designed to apply few basic business rules to validate inputs. Also basic data processing and data mining routines can be developed to create logical data reports. First work package will be literature review. Multiple existing research reports and scholarly papers will be reviewed to understand current body of knowledge related to Advanced Software modularity. Various research papers and IEEE papers (IEEE, 2014) and standards will be reviewed to collect basic facts and understand the trends over period of time. Second work package would be to interview experts and record their responses. Researchers, Academicians and Industry experts will be interviewed to obtain responses for open ended as well as closed questions. Third work package would be to design a questionnaire to capture responses received from experts interviewed. Forth work package would be to develop a collaborative tool to collect results of above work packages. This tool would take all responses as input. Validate all inputs received applying business rules to identify correct responses and reject invalid responses. Finally basic data mining and query operations would be performed. Fifth work package would be software to develop above tool. Appropriate user interfaces would be developed. After the software is developed final step is to perform testing for the same and finally build a body of knowledge highlighting current and possible future development related to advanced software modularity.
7
Relevance to Beneficiaries
The development of a current and updated body of knowledge related to Advanced Software Modularity will benefit not only researchers in field of Software engineering but also prove useful for practitioners. This research aims to provide a good starting point to any enthusiast who aims to undertake any research on the subject.
8
Justification of Resources
Personnel: Since PhD research himself will undertake data collection, literature review and inputting data to system no additional resources are required for above stages. However for development of collaborative tool, expertise of a developer may be required which might require an additional personnel resource for some time period. Access to literature: Researcher would require access to high class literature, case studies and IEEE papers in addition to scholarly article database like EBSCO. Also numerous journals would be needed for research. All these resources are generally available on an access basis only with restricted membership. Membership access is fee based. Hence this would entail allocation of required monetary resources. Hardware: Modern PC and multimedia would be required. Software: Software needed to develop collaborative tool in addition to basic software like Microsoft Office and specialized software like SPCC for data analysis would be required.
3
References [1] Brown(2014) Retrieved from http://cs.brown.edu/~adf/programming_languages. html [2] HCM(2014)Retrieved from cs.hmc.edu:http://www.cs.hmc.edu/~keller/cs60book/ %207%20Object-Oriented.pdf [3] IBM(2012)Retrieved from http://www-03.ibm.com/software/products/en/category/ SWV10 [4] IEEE(2011)Retrieved from http://www.ieee.org/index.html [5] Iris Groher,M.V.(2014)Retrieved from http://voelter.de/data/articles/TAOSD.pdf [6] Microsoft.(2014) Modular Application Development. Retrieved from msdn.microsoft. com:http://msdn.microsoft.com/en-us/library/gg405479%28v=pandp.40%29.aspx [7] Pressman,R.(2012) Retrieved from http://ce.sharif.edu/courses/84-85/1/ce474/ resources/root/Pressman_Sofware%20Engineering.pdf [8] Rashid(2014),IEEE. Retrieved from http://ieeexplore.ieee.org/xpl/login.jsp?tp= &arnumber=4685689&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all. jsp%3Farnumber%3D4685689 [9] Rashid,A.(2013) Aspect oriented requirements,Retrieved from upc.edu: http://www.upc. edu/gessi/re08/PUBLIC_SLIDES/Aspect_Orientation_Minitutorial.pdf
9
Workplan
4
10
Gantt Chart
5