Software Engineering Methodologies
Methodology of software engineering is the framework that implies to plan, structure and better implication of information system. This research is aiming at presenting detailed study of different software engineering methodologies. These methodologies have a great impact in order to develop and regulate an information system. The researcher is intending to find out the probable best methodology of software engineering out of those methodologies. This research paper will also include the applications of those software engineering methodologies.
Methodologies of software engineering are also referred as a development project. It plays a vital role to develop the software. As there are many methodologies of software development, different companies are applying separate methodologies to develop software (Braude and Bernstein, 2016). Certain advantages and disadvantages are associated with the application of such methodologies. These methodologies of software engineering allow smooth development of software according to the requirements of the project. These methodologies of software enhancing are applied to plan, structure and regulate the enhancement process of information system. Methodologies of software engineering are concerned about the software enhancement processes. Hence these methodologies will never involve in the technical aspects of software development.
Projects of Software engineering include people working with a set of tools to create code and documents and guided by common strategies and goals. This set of tools includes debuggers, compilers, change of management and tools of domain modelling. These strategies of software development are materialized through collection of methods, architecture, risk analysis, paradigms and a statement of mission.
DCSL Software is enhancing software applications from 1994 in order to establish start-ups, blue chips and businesses (dcslsoftware.com, 2017). They are using agile methodology for software development to provide a flexible approach to plan and improve through a prototype which is continuously updated, updates on status and instant responses. They employed a process framework that has been applied to regulate complex product development.
This research is aiming to present a detailed study of different methodologies of software engineering. It is also intending to figure out the best methodologies of software engineering. This research is also aiming to present the application of these different software engineering methodologies.
- To identify the best concept of software engineering methodology
- To analyse the application of different software engineering methodology
- To identify advantages and challenges of software engineering methodology
- To recommend steps to mitigate challenges of software engineering methodology
- What is the best concept of software engineering methodology?
- What is the application of different software engineering methodology?
- what are the research for latest methods and problems associated with it?
- What could be the possible solution to mitigate challenges of software engineering methodology?
1.3 Research Methodology
The Research Onion provides a framework based on which the study is conducted. The research onion is mainly formulated based on a layered approach and consists of three levels. Saunders et al. (2009, p.52), commented that the three levels are axiology, ontology and epistemology. Every layer of the research onion is to describe the process of the research in a detailed process. In its first layer, it will apply the definition of research philosophy in order to create the proper starting approach to continue in the future phases. It will adopt the proper time horizon and research strategy before identifying the methodology of the data collection.
Figure 1: Research Onion
(Source: Saunders et al. 2009, p.52)
The data collection and analysis process of any research is mentioned as research philosophy. As opined by Flick (2015, p.35), research philosophy also depicts the methods of data using. There are three main research philosophies that include philosophy of positivism, philosophy of realism and philosophy of interpritivism.
Here the researcher is intending to adopt the positivism philosophy because it assists to achieve the certain knowledge based on their general attributes on the software engineering methodology. It will also allow the researcher to accumulate related information about the different methodologies of software enhancement and interpret them in a rational way. Hence it will create a source positive of information. It will also assist to collect authentic information.
Research design describes the process that will be applied during the study. According to Mackey and Gass (2015, p.81), there are different types of research design which includes descriptive design, experimental design, semi-experimental design, and correlation research design. Research design also determines the viewpoint of the study.
Researcher of this research is intending to adopt the descriptive research design. It will help the researcher to comprehend the available large amount of data on different methodologies of software engineering along with their applications. The appropriate presentation of such data can be properly interpreted through the descriptive design.
There are mainly four types of research approach which describes the relationship of research hypothesis. These approaches include deductive approach, inductive approach, pragmatic approach and participatory approach.
Here the researcher is aiming to adopt the deductive approach of research. It will assist the researcher to conclude the study throughout a rational interpretation. In this research, deductive approach will assists as the research will start from ea generalize view of different methodologies of software development. The consequence of the research will concentrate on the determining the best methodology for software development.
Data Collection Method
There are two main types of data collection method that includes primary and secondary method. The type of data determines the method of the data collection of a research (Taylor et al. 2015, p.27). It this research, researcher will adopt two types of data. The researcher of this research is intending to collect the existing data as well as new and authentic data on different methodology of software engineering. Hence, the researcher is intending to adopt both primary and secondary method of data collection. As a source of secondary qualitative data, the researcher will follow the existing documents along with census, record, journals, books and reports as the tools of data collection. Researcher of this research will conduct an interview with 35 employees and 3 managers of DCSL software, London to collect authentic data.
Considering the critical aspects of the research, ethical considerations are very much important. Ethics are such criterion that focused to figure out the distinctions between the right and wrong. Ethical considerations of any research permits people to find out the authenticity of the data and it enhances the reliability of the researched data.
Application of Different Methodology of Software Engineering
The waterfall model is a conventional methodology of software engineering which is applied in very common manner to develop software. This life cycle methodology is often referred as the conventional style of software development. According to Alshamrani and Bahattab, (2015, p. 106), this methodology clarifies the enhancement process of the software in a linear pursuant flow. It suggests that any steps of the development process starts only when the previous phase is done. This approach never defines the process of retreating to the earlier phases to regulate the changes according to the demand.
The waterfall model illustrates the developments of software with the use of traditional process. The waterfall model process has been carried out through the liner flow that happens with the sequential areas which helps to understand the next level at the time of completion from the previous ones. This type of methodology provides the major facts that make the going back on certain deals that makes the possible changes.
Figure 2: Waterfall model
(Source: blogs, 2017)
In the waterfall model there lies with certain steps that makes the entire process complete. The first steps includes with the analysis and gathering of useful requirements. The second steps lies with the designing of systems and third steps includes with the implementation. Fourth steps include with the testing process and the fifth steps lie with the system that makes the deployments. The final steps includes with the process of the entire maintenance of the systems.
Prototype methodology is such software enhancing process that permits developers to build only the solution’s prototype in order to demonstrate the functions of the method to the clients. It also allows the developers to make required modifications before the actual application is developed. The best feature of this methodology is the capability of solving several issues that appear in the conventional waterfall system.
This forms with the developments of software that helps the developer at the time of making a sample form of resolution that make the essence to functional properly among the consumers. It helps in making the necessary changes by getting a final form of solutions that becomes more authentic.
Figure 3: Prototype Methodology
(Source: blogs, 2017)
The prototype methodology begins with the requirements in the initial stage. From there it starts with the evaluation among the consumers, prototyping and designing. From the evaluation of the consumers it includes with the review and updation. From the review parts it lies with the developments, testing and maintains.
Agile Software Development:
This methodology is applied to design a disciplined process of software management which allows frequent alteration in the enhancement project. This type of software development methodology acts as a conceptual framework to undertake different projects of software engineering (Turk et al. 2014, p.1511). Agile software development methodology applied to reduce the risk by enhancing software in quick time boxed. These are also referred as iterations which last for maximum one month.
The agile software developments methodology provides the innovative forms of approach. This mode of approaches helps well-organized project managements to carry out the entire procedures at the alternations in the recurrent areas. These types of formed methodology lies in the outlining of the theoretical areas that helps to undertake the software used to complete the engineering projects. The agile software provides a good thing by developing new software at a short time that happens in the last from the one month or one week.
Rapid Application Development:
Rapid application development is a significant methodology to deliver quick enhancement along with better results comparing with other methodologies of software development. Design of this methodology allows counting the maximum advantages of software enhancement. The main goal of this software engineering methodology is to increase the speed of entire process of software development. The objective of this methodology is easily achievable because it permits the user to participate in development process.
This provides the better mode of approaches in the new developments that forms with the good results. This is created to achieve the maximum amount of advantage in the software developments. It is designed in such a manner that makes the design of the entire procedure required to complete the software from the active participations of users.
Figure 4: Rapid application Developments
(Source: blogs, 2017)
In the rapid applications developments includes with the better planning in the requirements that makes the designing of users and construction in the prototyping. This makes the completion of the testing procedures with the cutover.
Dynamic System Development Model:
Dynamic system development methodology of software enhancement originally depends on the methodology of rapid application development. This is an incremental and iterative approach that put emphasizes on the continuous involvement of the user. The prime objective of this methodology is to provide software system on budget and time. This model works on a simple philosophy that suggests that nothing is enhanced appropriately on the first attempt. Hence, it considers this as a continuous process of changing.
This type of models forms with the developments of software systems that help to meet the specified time and the proper allocation of budget. This provides the incremental and iterative form of approaches that helps in focusing on the involvements of the users.
Figure 5: Dynamic System Development
(Source: blogs, 2017)
The dynamic form of developments makes the entire business study in the proper manners that are carried out through the functional models, building, designing and implementation.
This model is a sophisticated one is concentrating on the early reduction and identification of project risks. Developers under this methodology of software engineering begin on the small scale first. Then they figure out the risk of the projects, create a planning to regulate those challenges and take decision for approaching towards the next phase of the spiral. According to Alshamrani and Bahattab, (2015, p. 106), success of the spiral model depends on the attentive, reliable and knowledgeable management of the project.
The spiral model forms with the design that reduces the chances of risk at the time of carrying out of project. Various developers make the initiatives on the smaller forms of level that makes the exploration of the risks. The developers provide the better forms of planning that makes the iterating of the induced forms. The entire accomplishment of this model lies with the observant, consistent and proper managements of the projects.
Extreme Programming Methodology:
It is also a methodology of agile software engineering. It is also known as XP methodology and mainly applied for building software within such environment which is very unstable. It also offers flexibility within the process of modelling. The prime objective of this model is to reduce the expenditure of software requirements. Higher expenditure in the later stage of a project in XP model is almost a common factor.
This model is used in the crafting of software in the unbalanced forms of atmosphere. This provides the greater forms of traceability to complete the process of modeling. This models helps to reduce the cost in the suitable software (Juristo and Moreno, 2013).
Figure 6 : Extreme Programming
(Source: blogs, 2017)
At the time of developing, the extreme programming methodology there includes with the various steps that makes the developments of software through the requirements of project, stories, test case, tasks and completion. Various meetings make the planning of iterations in the meetings. There are various input that arise from the customers, acceptance of tests and testing of consumers.
Methodology of feature driven development:
This is an iterative methodology of software development and it is intending to apply by a big team working on a particular project applying object-oriented technology. According to Arbain, et al. (2014, p. 25), this software enhancement methodology is good for such companies that are transitioning from one phase-dependent approach to a frequent approach. This methodology also referred as FDD methodology.
This form of model provides the decent working in the firm through the phase-based methods in the iterative form of approaches. This model provides better way of functions and enhances a better form of creativity at the time of complex situations.
Figure 7: Feature Driven Development
(Source: blogs, 2017)
This forms with the model that makes the complete package of the software used in the feature driven methodology. This makes the entire features in a positive manner that makes the functioning complete.
Joint forms of applications in the developments methodology
This forms with the classifications requirements and expansion of the user to make a better form of approaches. This helps in the necessity from the developers, clients and users to carry out the entire conference in accentuate and providing of confirmation in the software systems (Wohlin, 2014).
Lean Developments methodology
This model helps in the emphasis in the formation of software in the manageable areas. This form of designing makes the developments of techniques in the agile form of methodology. The lean developments methodology forms with the improvements of software by lowering down the budget that helps to maintain the workflow in the company.
Rational Unified Process Methodology
This present process helps in the evolution of new software. In this process the expansion process are segregated into four forms that includes with the disposition, testing, enactment, designing and scrutiny. The methodology formed here lies with the growth of program in web. It helps the developer to implement a guideline at the time of developments of software.
Scrum Developments Methodology
This process could be easily applied in the various forms of projects especially among the constantly altering and requirements of extreme form of developments. It could be initiated through the proper way of planning and conference of the entire things in the developments. The promotion of the new software could be carried out through the scrum developments of methodology (Pahl and Beitz, 2013).
Advantages of these methodologies
According to Alshamrani and Bahattab, (2015, p. 106), this model is easy to comprehend and also simple to use, beginner developer are finding it beneficial to apply.
Firmness of this mode assists to manage it easily. However, every phase of this methodology possess of individual review and significant deliverables.
As this methodology helps to process and complete the phases at a time, it saves certain amount of time.
This process provides the easy analysis and testing procedures and it helps to save high amount of time. This process is simple and could be handled properly and it also enhances the easy functional and understandable methods
This methodology allows the clients to have a complete and clear understanding about the functions of the software.
This software engineering methodology reduces the chances of failure. As this helps to figure out the potential risks in early phase and proper steps for moderation can be adopted quickly.
This methodology helps to accumulate and analyse the requirements even when there is a lack of requirement appears.
This provides the clear ideas regarding the entire process of software. It helps to reduce the failure of risk in the better functioning of software. There are various analysis regarding this that provides the assist of the important things regarding the software.
Agile Software Development:
The prime advantage of the methodology of agile software development is that it possesses an adaptive approach which enables it to response towards the changing demands of the clients (Turk et al. 2014, p.1511).
It leaves no space for any kind of guesswork in system as it entertains a direct communication and instant feedback from the customer representative
There includes with the approaches that helps to respond on the favorable changes. It helps to provides direct forms of communication that maintain the better way of transparency. The agile software developments assist in the improving the quality in the fixing and findings of the existing defects. It also helps to identify the mismatches happens in the software.
Rapid Application Development:
The methodology of rapid application model assists to decrease the required efforts and risks on the behalf of the software developer.
This methodology also assists the clients to have an instant review regarding the project.
Rapid Application Development encourages the customer feedback. This always offers a scope for the improvement in any project of software enhancement.
At the time of using the rapid application developments there includes with the process that makes the effortless of various areas. It helps to enhance the clients to get the assist from the quick formation of reviews. There are feedback arise from the consumers that makes the improvements of software.
Dynamic System Development Model:
The major benefit of this methodology is that users are involved greatly in the enhancement of the system. It helps to have additional grip on the project of software development.
Basic functionality of this model is delivered in rapid speed along with additional functionality delivered at quick successions.
It also offers an easy access from developers to the end-users.
The user using the dynamic system developments provides the gripping in the entire process of developments in software. It helps in the checking of the deliverables functions and provides offering in the easy mode of access upon the user at the time of developments of software.
Extreme Programming Methodology:
The main advantage of extreme programming methodology is that this development model puts emphasis on the customer involvement.
This also assists to set up rational schedules and plans to have the developers committed personally to their schedules. This is also a big advantage of this model.
This software development model permits the developers to create quality software as it is consistent with modern methods of software development.
This helps in focusing on the involvements of the consumers. It establishes the proper scheduling and developing a rational plan. However, the developer becomes more committed at the time of completion of the project work. There are involvements of modern methods that helps in the developments of better quality software.
Future Driven Development:
Future driven development model of software enhancement assists to move projects with large size and achieve repeatable success.
As this model consists of simple five processes, it is helpful to complete a project in a easiest manner and in short time.
According to Arbain, et al. (2014, p. 25), FDD model is built to set standards for the industry of development of software. Hence, it assists easy enhancement.
The main advantage lies with the continuous success achieved from the project work. There are involvements of the various procedures that are followed with the outcomes. There are various standards that makes the developments of the software at the time of using by the users.
Joint application developments methodology
It allows with the various congregation that makes the alliances in the gathering of excessive data. It also helps to produce high amount of information that makes a proper value at a short time interval. The differences that arise in the joint applications there includes with the resolving of the important issues. This makes the forum that helps in the exploration in the multiple points areas.
Lean developments methodology
There includes with the lower amount of budget and the necessity of the time required to make the developments of methodology. It helps in allowing in the better delivery of products at the early stage.
Rational Unified Process
A high focus on the precise forms of documents makes the completion of the project work. In the integration there lies with the requirements that makes the better process of work.
3.1 Survey research in software engineering with problems and strategies
The waterfall process in the organizational perspective consider several things that include requirements for the entire procedures, design of the system, implementation of the procedure, verification of the services and the maintenance process that help for the software development and the implication of the entire thing. The current software engineering technique relate with some of the activities that help for the production of the software and then progress the effective procedure. System modification and the systematic approach for the software involvement technique consider development of software from scratch. The incremental development of the software engineering process coexists with several model and their implications so that the development factor can be adjusted with entire possibility (Wohlin and Aurum 2015, p.1429).
3.1.2 Targeting audiences and frame of sampling
The identification of target population deals with the establishment if the desired target audiences interested to be engaged in the concerned research. In addition to the above ,made discussion, the selection of the suitable target market or audiences for the concerned research topic is done as per the objectives markled for the research. Moreover, the design of the survey instruments are composed with the perspectives of the respondents having a clear definition of the target audience and the target market. Thus, the rule applied for the selection method of the surveying the interview questions oir the questionnaires as prepared of the research topic.
Figure 8: Targeting Marketing
(Source: Vallone et al. 2016)
3.1.3 Design of the Sample plan
As stated by Die et al. (2016), the sampling has been marked as a procedure for selecting the sample for a purpose of studying. The characteristics of the population are further marked in terms of the samples being selected as per the research topic. As for instances, the sampling is required to divide the population in basic two types marked as the probability and nonprobability sampling. Therefore, each of the types have their own specifications. These specifications are marked in terms of random sampling, systematic sampling, stratified sampling, whereas, the non-probability sampling further comprised of the convenience Sampling, judgement sampling, quota sampling along with the snowball sampling.
3.1.4 Evaluating te survey instrument
The software development process progress with some of the cycle model one is linear sequential life cycle model and it actually takes care of the different phrase of the software development technique. The uncertain and small development factors help to consider the effective progression of various things that help for the continuous growth and development process. The right path of the project and the determining prospect of the entire study consider with the continuous succession of the project. The waterfall phrases in this aspect develop the overlapping technique with the formation of entire background and their further processing of things in a possible manner. In the incremental development process the model will follow up for the requirement and gathering of the information with proper analysis, system design for the entire thing, implementation process, testing the entire thing, development of the system and then progress with systematic formation and finally the maintenance of the whole thing. The usability and acknowledgment for the model development create that proper management and logical approach for the system progression (Harman et al. 2014, p.14). The specific review process and the deliverables assist the entire thing to study with a formative field and it will find out several ways so that it can review the entire process management.
The project requirements become easy and logical with the model and it helps the entire thing to create a simple and concise step so that other things do not overlap with each other. During the incremental process, development it is essential that the risk and uncertainty can minimized and object oriented thing can maintained with a proper approach (Karaboga et al. 2014, p. 25). The complexities and the approach progression generate the understanding where the project management and their association with different things so that it can fulfill other requirements of the project in a logical way. The clear, fixed and the system-oriented progression develop the several other requirements so that it can project things in a proper manner and this make the entire thing more stable. The long and the ongoing projects moderate the entire thing and the well-managed technique for the projects helps to develop the technological aspects and it change the entire assessment of things. With the help of technological facts and their applications, it is easy to consider the project management with a small process factor.
3.2 Towards a general software engineering methodology for the internet of things
The software systems and the inception technique in the engineering procedure is the initial approach for the productive factor that is un-keep and this growth factor continue with continuous engagement and the factor that describe the factual procedures and methods create the systematic approach. The software evaluation and the conceptual scheme direct the entire thing so that the development activities involve systematic progression. The system and the engineering tasks require constant work and their completions need to deal with the processed field with the logical approach for the entire basis (Thüm et al. 2014, p 6).
3.2.2 Infrastructure of Software
In order to make the IoT system a capable and usable for serving purpose, the requirement for the software infrastructure os felt. The software infrastructure further deals with the gluing of different things that further contributes in the provision of a meaning to the stakeholders and the users that access the IoT system.
However, there are different technical issues faced in the process of glue. These technical issues are marked in terms of interoperability, discovery, semantics, self-awareness and context-awareness, group foundations and other such. In addition to the above m,ade discussion, the access to the capabilities and functionalities of the individual responsibility of user gets dominated by the Web of Things or WoT visions. Moreover, the concept of exposure functionalities and services relates to the individual things such as REST services. The variety of purposes for the middleware infrastructure supports the provision of the IoT services and its applications to take place. The specifications of different proposal;s rely more on the th support to the WoT approach. That means of the supporting odf specific coordination model as well.
3.2.3 Applications and Services
The IT structure in the current procedure based work and their introduction generate the specific operational management term so that the engineering procedure can include the strong process making structure and in future the firm can develop their work purposes. In order to make the system perfect and the capability of the service technicalities consider different software infrastructure. The controllable and tractable way develops the interrogation where the low cost electronic devices progress with the several understanding in the process development and the spectrum need to cover the entire thing. The electronic wireless factors and their information processing work with the short-range communication and lower end for the enable in tracking system. The motion sensors and the environmental background associated with the short-range communication structure and this thing cooperate a possible solution so that finally it can properly deal with the attached verifications.
Several configurations and their applications put the strong association of tracking positions for some of the devices and then digitally connect with several other activities. The accountable and the delegating purposes detect the processing in such a way so that it can direct the essential verification of the software and then connect for the better way. In order to direct, several activities it is essential that it integrate the Arduino-link controller procedures and their contributions in lightning can easily create the formation in order to detect the conference room. Other than that the awareness for different context including the self-adaptation process help to consider the unreliability, inherent ephemerality more around and find the wireless connection (Anand et al. 2013, p.2000). Several implications and the anticipated actualization work for the entire thing. The long distance and their measurement generate the available process making so that it can efficiently progress for the anticipated way for requirement in the mechanisms.
The concern for access of several things including the functionalities in the process designing and their several capabilities consider the functionalities of orchestration and the current domination for the entire process generate that subjective ‘’web of things’’ systems. The key components and their variation in the logical formation work for the system engineering technique and it assists with the smart ordination of things, avatars, combinations with different groups, functionalities, groups and several policies and finally the internal and external stakeholders including the end users who are working for the entire assessment of things. The dependable approaches and their expectations in this field approach for the development, implications, design and their software analysis technique.
3.3 Software Engineering Methodologies: A Review of the waterfall Model and object oriented approach
A software development process enables the application to function into diverse phases and posses an embedded intent to emancipate the underlying notions of design, product and project management. The popular coinage in this discipline is Software development life cycle and, in accordance with the apprehensions of the essence of the coinage is to ensure the inclusion of certain deliverables into consideration that has been prevalently developed to maintain a specific application. It has been considerably discovered that there exist a current trend to demonstrate most of the modern development as agile and the life-cycle model is often exercised to categorize a specific process of software methodological development that is likely for an organization to opt. On that note, the famous instance of can be recalled where the apprehensions exhibits that few fields are academically considered as a legitimate subset of Systems development life cycle since it appear compatible to the spiral life-cycle model.
‘60s is extensively considered as the emerging scene of SDM, which is the acronym for Software Development Methodology. The urge to construct arranged information systems significantly indulges the development of Systems Development Life Cycle (SDLC), the essence of which, according to is to indicate the pursuit of the development of the virtual information archive in an ordered way while practicing a sheer rigidity across the sequence of initiation to the delivery. The absolute objective of the respective framework is to generate a organized business system of mammoth functional compatibility in order to address the global uprising of large scale business conglomerates. On that note, the prevalent information systems are literally exploited to process a heavy load of data while following number crunching schedules.
The subsequent evolution of methodologies and frameworks has been assessed to function regularly in accordance with the everyday objectives of a certain business organizations while undergoing specific proscriptive phases. The pertinent literature and several other articles have allocated enough vehemence on the intense demand to develop robust yet flexible methodologies that can be effectively utilized to establish a customized metric of phases and conditions that can usher the absolute objective of a specific project. The instance posed by can be worth-mentioning over here where the scholar exhibited several concerns that deals with sponsorship and maintenance appear prone to distribute an approved metric of official testimonials which are potent enough to shape an entire project.
On an elaborative note, the development life cycle is usually comprised of several functional phases that are conditioned to design, construct, examine and deliver applications and typically administrated by a waterfall framework for quite a few decades. The project was further arranged into different sequences in order to establish a datum of assembly, which is conditioned to,
- Finish the planning and associated work
- Identification of the detailed requisites
- Design and development of the entire system
- Examining the likelihood of User acceptance
- Production launch
- Support and maintenance
Most of the large-scale projects of software development have been succumbed since most of them have incurred considerable overruns of cost and time, lack of trustworthiness and failure to meet the desirable results. portrayed the establishment of software as an intricate activity due to the presence of movable components with complicated inter-dependencies and equally time-intensive. Since it is an inherent proclivity of the absolute business objectives to evolve over the years in accordance with the advent of technological expertise and increase in customer expectations, the traditional Waterfall framework started being obsolete due to its rigidly static modus operandi and the incapability to quench the dynamic aspirations of the applied life cycle of development. Furthermore, the estimation of the software development and the consequent influence on the task duration is difficult to fathom and it is rife for any developer to reconsider the axioms of the application due to the potentially under-specified definition of the requirements and the incompatibility of comprehending actual needs. This lack of appropriate definitions is coupled with the incapability to cope with the evolving business objective facilitates the software development application to succumb.
In the era ranging from ‘80s and ‘90s, most of the business organizations are prone to use the traditional Waterfall model due to its leading acceptance and seamless accessibility. As per the apprehensions of application developers started seeking for circumvent alternatives and strategies chiefly in order to reduce the project risks considerably.
3.4 Survey research in software engineering: problems and Strategies
The necessity of empirical in investigation in the subject of software engineering is emerging, Numerous scholar in present time conducting and proven their solution use this empirical research work. One of the best method to conduct, the empirical research is the survey, which provides scope to the scholars to accumulate data from a large amount of population. The purpose to doing this survey is to make generalize the findings.
In this specific study, the researcher is aiming to point out the issues which researcher are facing during their design of survey and reducing strategies.
A literature review has been developed by conducting structured interview with near about ten software engineering researcher to knowing about their views on the problematic issues and diminution strategies. The researchers are primarily focused on the empirical software engineering.
In this particular research, 25-research problem has been identified and there are more about 65 strategies as per the result of the conducting survey. Those most common discussing problem is about sampling, which was very hectiqe to obtain. In order to improve the design the survey instrument, execution, evolution and recommendation for making questionnaire and survey pre- testing tools. The effect of involving multiple researchers in the analysis of this research was very hectic.
The problems and stretaguiesof involving many raeserchers during thre studies to design the reacxher. It is apparent to observed that between that some stretgies are conflicting. Thois is shows that it is inportent to conducting a tratde off anlaysis in between the stregies.
Survey are are such kind of method which has been frequently used in the software engineering context. Here are some case studies and surveys which need to be highlighted and mentioned below appropriately.
Survey are one of the tools which are investigating the method to use several data from the large number of population. There are survey results characterized by different types of authors. According to Babbie stated “surveys aim to understand the whole population depending on the sample drawn”. Flink says that some surveys are effective to analyze societal knowledge with individual knowledge. According to Whim et al. it highlight that “ many quantifiable and processable variables can collect by using various tools . Then as per the opinion of flower states that statistical evidence can be obtained in a survey”. Dawns added that if surveys draw w\eitherv in qualitative or quantitative manner from overall population. Furthermore the rate of the responding member were rarely identified (Wohlin and Aurum, 2015).
Some sampling related aspects are most prioritize issues in the time collecting data. As per the limitation in the agile literature there is a importance to explore the use of understanding that how the were conducting theatre survey fprv accumulate data. Rhios factors points out to the necessity of framework for evaluating the survey research as because it is not available in the software engineering literature. Stavru also points to k\need of frameworks to evaluate the research in surveys as there were not very much available research literature. At that time researcher recognize they are facing problems when they want to conduct surveys. The highlighted problem such as the limited generalizability, survey reliability and facing problems could be either he or se is unaware of the problems or they lack strategies to overcoming the problems in the survey process. In both cases the the surveys are not reliable.
This study has its main focus on identifying the problems which are often,lie face by the researcher. In this research the focus is on identifying the te researchers problem facing and documenting in the survey which they are executing and reducing strategies which they will report. In this particular research the following contribution is on
C1: Identify the researcher's problem in software engineering facing during the time of research conducting.
C2: Identify the mitigation strategies:
The contribution is achieving through the review of literature combined with an interview had been conducted with more than nine subjects. In this literature review part we are focusing in the existing survey result and reducing the observed problems what was reported to them. In this case traditional research method has been used. This study was based on make convincing sampling and physical presence interview. All the interview result has been analyzed via using thematic analysis.
The remainder of this study has been structured as mention future. Section 2 is highlighting the background on the survey research by explaining the process of conducting the research of the survey. Section three presented as the related work where all the problems as the strategies where it is elicited from existing outline as well as the primary sy\udies conducting in the subject of software engineering, Section 4 is explaining the design of the research for the interview study is conducted. The result is the interview is depicted in the part of of section 85 and section 6 is depicted about the findings from the literature study and the date of interview. Finally the section 7 is concluding the paper.
3.4.2 Background on the method of survey research
The survey methodologies define the survey methodologies as a fixed design which is first maker planning and executed, this concept has been opined by Robson and Mccartan. Moreover, Molleri et a. stated the steps of the survey research guideline for the purpose of software engineering. The most common defined steps are highlighted in the following figure:
3.4.3 Defined research objectives:
The initial step is to make identification to the research objectives. They are helping to set the scope in the required research objectives. It is important to shed light on the specific issues apart from the identifying the questions in the research work. During the time of research question formation the following questions should be form in the following manner:
·What are the motivation factors will work behind of the survey work?
·What are the actual resource needs to accomplish all the survey result?
·What are the areas of possibility which are very much close to the objectives of the research that are left for the uninvestigated.
·What are the targeted res[consents population of the survey?
·How are the data are obtained from the survey to be used?
While defining the objectives of the research objectives for the purpose of the survey, it related to the work pertaining to that particular area need to be considered. The knowledge about the same research helping the researcher to make narrow down the objectives.
As per the Per the opinion of the Wohium et al, it is clearly defines about the purpose about the objectives and motives for conducting a systematic survey. This would be based on the objectives and the survey it falls into one of the below three categories.
·The descriptive surveys are organized with the purpose of explains traits of the given population. For instance They are describing which describing the development practice.
·The exploratory surveys assist investigate about the cause and effect relationship. For a instance there are trying to explaining why a software development practice is not adopted in the practice.
·The exploratory surveys are helping the scholars to look in a particular subject from different perspective. These surveys are generally conducted as per the previous mentioned study. The facilitates the researcher to knowing about the unknown patterns of the researcher (Karaboga et al. 2014). The knowledge are obtained from the previous mentioned study which will clearly depicts as a foundation to conducting the exploratory or descriptive in the future time.
Targeted audience and the identified sampling frame
The target population;s identification implies the target audience establishments. The target audience selection will be driven by the stated research objectives. The instrument design must be designed from the perspective of the respondents. The instrument of the survey must be designed from the perspective of the researcher. Thin thighs will will give a clear definition of the populations and about the target audience. The rule of the selecting the method of doing survey.
The target audience is generally choose fgrm the overall population what are sleeted for the survey purpose. The knowledge obtained from the previous mentioned study will be selected for determining the result of the research. The rule will be applied while selecting the method of making the survey.
The selected audience is generally chosen from the overall population, if they are contributing with their distinctive values. The sample has been selected for the sampling comprising frame from the possible respondents of the overall population. The population can be categorized in some subpopulation based on the distinguished attributes. It may be utilize for make quota or stratified sampling.
The four main basic problem of sampling are mentioned as followers- foreign elements, duplicate entries, missing elements and group based cluster.
Survey data is analyzed:
The obtained data acquired survey data has been analyzed in this step. The data analysis is depending on the type of the questions used in the survey.
The common methods to make analysis to find out the result of the entire research work. The open ended questions are discourse analysis and grounded theory, content analysis and esmaticx analysis. The common methods to make analysis is the result methods are statistical analysis,k hypothesis problem (Thüm et al. 2014).
Data validation: Before evaluating the result of the survey, the researcher must be check the consistency and competency of response. All the response in ambiguous questions must be identify and handle.
Partitioning of responses: Researcher need to partition their response in subgroups before data analysis. All the partying has generally done by using the data obtained from the demographic questions.
Data coding: The statistical packages can not be handled the character string categories of the respondents. The researcher researcher must have to convert the ordinal and nominal scale data.
3.4.4 Conclusion from evaluating the survey data:
All the outcomes will be analyzed, need to be extracted from them. A assessment over the review and an evaluation must be happen on the outcomes. The reliability, validity and the risk management should be evaluated when to write the conclusion. This research work has some threats, nevertheless the main motivation is to make identify at the early point of research work.
3.5 An approach for enabling effective and systematic software reuse
In order to facilitate a seamless pursuit, in most of the cases, the intent to exercise software to reuse, the global standards of software engineering emphasizes on the employment of a lean developmental methodology. This intent is further justified by the fact that, in terms of the current advancement of technological expertise, the lean developmental methodology imparts a considerable vehemence on the establishment, which does not require any effort while managing. This significant subset of the agile methodology seems intentionally engrossed much more due to its exquisite yet robust design. The ultimate objective of this particular procedure is to improve the product management aspects in a time-effective as well as cost-effective way without any stringent stress of imperative workflow. Moreover, since it enables the delivery to be very early, the intent of software reuse by the virtue of it. It is imperative for the developer who intends to reuse the underlying software to identify the potential of a framework while enabling the respective framework to be systematic and arranged enough to be capable of employing in the lean projects.
3.5.2 Software Reuse
In the advent of software development, the potential of a software application to be reused needs to be immediately identified. In the absence of the governing body, it is a standard practice to accomplish the reuse simply by copying the prototypal source. However, this practice soon developed a sense of incompatibility and started asking for a huge amount of effort, mostly in terms of maintenance and that endow the potential practitioners with the realization that they need a sequential and systematic approach to foster the intent to reuse a software application.
The moot essence to reuse is to cater the cause of utilizing the prevalent components while minimizing the time and budget of developing alternate software applications. Furthermore, it intends to ensure the identical appearance and behavior of the existing components operating with the equal amount of functionality. In order to accomplish that, the potential software developers felt an inherent urge to devise a relevant discipline for the software application to be reused. This can be posed as an plea to develop a compatible and organized infrastructure that can facilitate the reuse of prevalent software applications while raising the funds.
3.5.3 Relevant domains for reuse
In order to deal with the distinct facets of software reuse in diverse technical fields, the identification of appropriate domains is an imperative criterion since it is an urgent requisite to integrate latest developments with virtual product platforms. On that note, the identification of several project teams is necessary in order to perform project as well as component related tasks. A unique component owner is typically employed for such kind of practices to serve the enhancement of the prevalent exponents of the respective software application while seeking considerable proposals for new components, which are yet to be reused. This demand is further coupled with the definition of a exclusive trajectory in order to fathom the architecture that is supposed to be deployed as new reuse components. On the same note, a unique domain owner is prone to be employed and endowed with the task to design, execute, execute, experiment, launch and maintain the components, which are supposed to be reused.
3.5.4 Ensuring reuse
The corresponding architect is endowed with the instruction to reduce the initial budget as well the cost of maintenance since it resonates with the moot essence of reuse software application. On that note, it is imperative to address that lies an underlying encounter that the entire architecture is devised to assist the domain as well as the component owners in order to facilitate the pursuit of accomplishing the absolute motto of the entire organization.
In order to introduce the requisite sequence in the infrastructure it is essential to configure the circumspect management skills while enabling the entire infrastructure with defect tracking. It urges for the seamless integration of configuration management with release management and defect tracking of the major reuse components like identical project components. It enables the infrastructure with the bliss to include several other reuse components like any other integral project component. Furthermore, dealing with defects was accustomed to several purposes of reuse in order to endow the infrastructure with the ability to monitor potential defects on the reuse components.
On the other hand, the web portal is supposed to share information regarding the diverse reuse components, their governing traits and links to acquire proper documentation. This is further served as the agent to discern the reuse of the available components. The rate of usage as well as the proportion of savings of computing can be calculated as the product of number of components with half of the total development cost of the component.
3.5.5 Experiences and issues with the initial approach
As most of the component owner are vulnerable to project team, they are supposed to be endowed with project-specific efforts due to the excessive pressures of project deadlines. This influenced the competence of the component owners as scheduled in order to fathom the objects of some other discussions.
The underlying change approaches have posed the expected outcomes of the considerable alteration in the integral culture in order to reuse. The reuse squad is supposed to increase the quality of the information while imparting a considerable impact on the precision and reducing development in order to reduce overall budget.
3.6 escience SWaT – Towards an eScience Software Engineering Methodology
This research work states with the support provided by the IT in the developments of software. There ere various lifecycle that has been followed to acquire new technology that could help help in the growth of software especially in the engineering fields. There lies with the knowledge that makes the provision of the entire systems in a systematical manner. There includes with the scientific approaches that determines the domain in the useful areas. However, this makes a better mode of fields that enhances the standardized areas and proper approaches in the developments of systems using scientific forms of information. This includes with the use of eScienceSWaT that makes the methodology on the software developments among the new users. The software engineering forms of methodology provides the main aims in the scientific forms that provide the approaches in the friendly areas by the use of applications in software technology. There lies in the knowledge through the computer science and engineering areas by scientific information. The system provides the better forms of methods that make the better formation of decisions in the better modes of approaches. Software engineering provides the high amount of knowledge that could address in the developments of software and systematic manner in the managements. The standard form of methodology provides the concepts and principles in a better manner that makes the practices complete (Belgacem and Abdennadher, 2015).
3.6.2 Art of state
There includes with the various approaches that makes the completion of the work in the IT. There are various focus that makes the support in the IT through the workflow in the scientific forms that could easily solve out the problems in order to complete the entire work. This workflow helps in the better mode of approaches in the lifecycle and methodology. There are various mode of approaches in the technical fields that makes the completion of the lifecycle in the eScience.
There lies with the reuses of solutions that makes the developments of software and introduce various concepts. The main benefits of using of the software includes with the reducing the complex in the solution to enhances a better results. It provides the independent areas with the use of technology at the time of growth of the software. This pattern has been introduced by the experts to enhance a better mode of practices in the enhancements of solutions. Various languages could be determined through the patterns that make the power in the developments of new software in the engineering. However, this patterns makes the growth of model in the IT that could provide the new products in the market (Astsatryan et al. 2016).
The requirements includes with the lack of cooperation that makes the reuse of the technology in the concepts of software engineering. There includes with the computer science that makes the better mode of support in the gaining of experiments in the software fields. Various missing things make the methodology in the unified way that makes the entire developments in the experiments in the scientific areas. A lack of systematic areas that makes the better mode of practices in the modeling of software that provides the practices. The best mode of practices forms with the techniques in the higher values with the use of advanced software in technology. There are various mode of support in the tool that make the developers and scientific areas with the infrastructure in the technical areas. The fundamental area of block makes the processing of data that helps in the developments of software in the engineering. The lifecycle could be carried out through the methodology engineering in the software (Belgacem and Abdennadher, 2015).
From the research work, it has been found that software engineering has developed through the eScienceSWaT methodology. There are various steps that helps to gain the decision-making capacity at the time of using of technology. There are involvements of applications that makes the better modes of approaches in the artifacts with the high level of applications. The improved formn of efficiency makes the existing of the solutions at the time of guiding the entire work. This makes the further developments of software at the time of operating of the important systems in the technology. There are integrations of the software and managing of the entire work in the tools that forms the existences. This includes with the steps that makes the formation of the entire modeling with the use experiments that could further develop the software and used in the engineering fields. It also rise in the benefits with the use of systems in the software through the better modes of practices (Ercan, 2015).
3.6.5 EscienceSWaT Architecture
The various modeling provides the systems by goals in the experiences in the IT. There are involvements of experts that make the completion of the work. The experts includes with the use of model that makes the better forms in the developments of software.
There are involvements of various patterns that make the better forms of relationship through the models in the scientific areas.There are various layer that make the realizations and integration of the technology that could helps the engineering fields with the use of software. It lies with the better mode of decisions that helps to achieve the set goals. It lies with the non-functional area that makes the entire process complete with the use of advanced technologies in the software (Ercan, 2015).
It has been concluded from the methodology that makes the completion of the research work in the better way of execution and developments of practices in the scientific areas. In the eScienceSWaT, there lies with the lifecycle in the experiments that makes the engineering areas using developments in the software that areas in the scientific areas.There are enables in the scientific mode of approaches in the developments of phase that makes the suitable areas regarding the IT fields. In order to support the methodology in the scientific areas there includes with the architecture in the growth of systems with the use of interactions in the eScienceSWaT.
This research is intending to figure out the best methodology for the software enhancement. It will present a detailed study of the different methodologies of software engineering. It will also present the applications of such methodologies. This research is also intending to figure out the challenges of those methodologies and recommend steps for mitigating those challenges.
In this chapter, we will do that helps among the users regarding the software developments. This thesis work lies with the current software engineering methodology that helps to identify various problems relating to the fixed strategy that helps to overcome the fixed problems. There includes with the high alternatives that helps to solve out the problems regarding the new software methodology. In carrying out the engineering work, it is important to focus on the methodology of software that helps to achieve the set goals. However, there lies with the proper forms of planning in the sampling that forms in the required strategy to solve out the problems.There are different forms of methodology that makes the entire process complete in the software developments that could helps the users in the future aspects.This study relates with the use of current systems in the engineering fields. This also helps with the use of systems that makes the better working among the human. However, there are various strategy that makes the entire designing possible in the software. A high imagination makes the entire blends possible using technology. However, there is innovation that makes the complete growth of technology in the software that helps in the future of the engineering. This forms as the suitable platforms that make the various mode of operations in the developments. The methodology that is used in the developments of software are considered as the most stricture form in the entire controlling and planning of the entire process that helps to maintain the entire information systems. These innovative methods make the process in the software development. There are developments in the technical aspects with the software that helps among the users. In the methodology there includes with the better planning in the software in the engineering fields that lies with the procedures that makes the entire procedures complete. However, there includes with the models that makes the entire process possible with software in the engineering. The review of related work provides the various journals regarding the current software use that enhance the growth of software in the engineering fields.However, the different authors have predicted the importance of the software that makes the developments of the software that are used in various companies to increase the operations. The waterfall model provides the better use in less expensive forms that helps in the improvements of systems in the software fields.