Journal of Software Engineering Research and Development Cover Image

  • Search by keyword
  • Search by citation

Page 1 of 2

Metric-centered and technology-independent architectural views for software comprehension

The maintenance of applications is a crucial activity in the software industry. The high cost of this process is due to the effort invested on software comprehension since, in most of cases, there is no up-to-...

  • View Full Text

Back to the future: origins and directions of the “Agile Manifesto” – views of the originators

In 2001, seventeen professionals set up the manifesto for agile software development. They wanted to define values and basic principles for better software development. On top of being brought into focus, the ...

Investigating the effectiveness of peer code review in distributed software development based on objective and subjective data

Code review is a potential means of improving software quality. To be effective, it depends on different factors, and many have been investigated in the literature to identify the scenarios in which it adds qu...

On the benefits and challenges of using kanban in software engineering: a structured synthesis study

Kanban is increasingly being used in diverse software organizations. There is extensive research regarding its benefits and challenges in Software Engineering, reported in both primary and secondary studies. H...

Challenges on applying genetic improvement in JavaScript using a high-performance computer

Genetic Improvement is an area of Search Based Software Engineering that aims to apply evolutionary computing operators to the software source code to improve it according to one or more quality metrics. This ...

Actor’s social complexity: a proposal for managing the iStar model

Complex systems are inherent to modern society, in which individuals, organizations, and computational elements relate with each other to achieve a predefined purpose, which transcends individual goals. In thi...

Investigating measures for applying statistical process control in software organizations

The growing interest in improving software processes has led organizations to aim for high maturity, where statistical process control (SPC) is required. SPC makes it possible to analyze process behavior, pred...

An approach for applying Test-Driven Development (TDD) in the development of randomized algorithms

TDD is a technique traditionally applied in applications with deterministic algorithms, in which the input and the expected result are known. However, the application of TDD with randomized algorithms have bee...

Supporting governance of mobile application developers from mining and analyzing technical questions in stack overflow

There is a need to improve the direct communication between large organizations that maintain mobile platforms (e.g. Apple, Google, and Microsoft) and third-party developers to solve technical questions that e...

Working software over comprehensive documentation – Rationales of agile teams for artefacts usage

Agile software development (ASD) promotes working software over comprehensive documentation. Still, recent research has shown agile teams to use quite a number of artefacts. Whereas some artefacts may be adopt...

Development as a journey: factors supporting the adoption and use of software frameworks

From the point of view of the software framework owner, attracting new and supporting existing application developers is crucial for the long-term success of the framework. This mixed-methods study explores th...

Applying user-centered techniques to analyze and design a mobile application

Techniques that help in understanding and designing user needs are increasingly being used in Software Engineering to improve the acceptance of applications. Among these techniques we can cite personas, scenar...

A measurement model to analyze the effect of agile enterprise architecture on geographically distributed agile development

Efficient and effective communication (active communication) among stakeholders is thought to be central to agile development. However, in geographically distributed agile development (GDAD) environments, it c...

A survey of search-based refactoring for software maintenance

This survey reviews published materials related to the specific area of Search-Based Software Engineering that concerns software maintenance and, in particular, refactoring. The survey aims to give a comprehen...

Guest editorial foreword for the special issue on automated software testing: trends and evidence

Similarity testing for role-based access control systems.

Access control systems demand rigorous verification and validation approaches, otherwise, they can end up with security breaches. Finite state machines based testing has been successfully applied to RBAC syste...

An algorithm for combinatorial interaction testing: definitions and rigorous evaluations

Combinatorial Interaction Testing (CIT) approaches have drawn attention of the software testing community to generate sets of smaller, efficient, and effective test cases where they have been successful in det...

How diverse is your team? Investigating gender and nationality diversity in GitHub teams

Building an effective team of developers is a complex task faced by both software companies and open source communities. The problem of forming a “dream”

Investigating factors that affect the human perception on god class detection: an analysis based on a family of four controlled experiments

Evaluation of design problems in object oriented systems, which we call code smells, is mostly a human-based task. Several studies have investigated the impact of code smells in practice. Studies focusing on h...

On the evaluation of code smells and detection tools

Code smells refer to any symptom in the source code of a program that possibly indicates a deeper problem, hindering software maintenance and evolution. Detection of code smells is challenging for developers a...

On the influence of program constructs on bug localization effectiveness

Software projects often reach hundreds or thousands of files. Therefore, manually searching for code elements that should be changed to fix a failure is a difficult task. Static bug localization techniques pro...

DyeVC: an approach for monitoring and visualizing distributed repositories

Software development using distributed version control systems has become more frequent recently. Such systems bring more flexibility, but also greater complexity to manage and monitor multiple existing reposi...

A genetic algorithm based framework for software effort prediction

Several prediction models have been proposed in the literature using different techniques obtaining different results in different contexts. The need for accurate effort predictions for projects is one of the ...

Elaboration of software requirements documents by means of patterns instantiation

Studies show that problems associated with the requirements specifications are widely recognized for affecting software quality and impacting effectiveness of its development process. The reuse of knowledge ob...

ArchReco: a software tool to assist software design based on context aware recommendations of design patterns

This work describes the design, development and evaluation of a software Prototype, named ArchReco, an educational tool that employs two types of Context-aware Recommendations of Design Patterns, to support us...

On multi-language software development, cross-language links and accompanying tools: a survey of professional software developers

Non-trivial software systems are written using multiple (programming) languages, which are connected by cross-language links. The existence of such links may lead to various problems during software developmen...

SoftCoDeR approach: promoting Software Engineering Academia-Industry partnership using CMD, DSR and ESE

The Academia-Industry partnership has been increasingly encouraged in the software development field. The main focus of the initiatives is driven by the collaborative work where the scientific research work me...

Issues on developing interoperable cloud applications: definitions, concepts, approaches, requirements, characteristics and evaluation models

Among research opportunities in software engineering for cloud computing model, interoperability stands out. We found that the dynamic nature of cloud technologies and the battle for market domination make clo...

Game development software engineering process life cycle: a systematic review

Software game is a kind of application that is used not only for entertainment, but also for serious purposes that can be applicable to different domains such as education, business, and health care. Multidisc...

Correlating automatic static analysis and mutation testing: towards incremental strategies

Traditionally, mutation testing is used as test set generation and/or test evaluation criteria once it is considered a good fault model. This paper uses mutation testing for evaluating an automated static anal...

A multi-objective test data generation approach for mutation testing of feature models

Mutation approaches have been recently applied for feature testing of Software Product Lines (SPLs). The idea is to select products, associated to mutation operators that describe possible faults in the Featur...

An extended global software engineering taxonomy

In Global Software Engineering (GSE), the need for a common terminology and knowledge classification has been identified to facilitate the sharing and combination of knowledge by GSE researchers and practition...

A systematic process for obtaining the behavior of context-sensitive systems

Context-sensitive systems use contextual information in order to adapt to the user’s current needs or requirements failure. Therefore, they need to dynamically adapt their behavior. It is of paramount importan...

Distinguishing extended finite state machine configurations using predicate abstraction

Extended Finite State Machines (EFSMs) provide a powerful model for the derivation of functional tests for software systems and protocols. Many EFSM based testing problems, such as mutation testing, fault diag...

Extending statecharts to model system interactions

Statecharts are diagrams comprised of visual elements that can improve the modeling of reactive system behaviors. They extend conventional state diagrams with the notions of hierarchy, concurrency and communic...

On the relationship of code-anomaly agglomerations and architectural problems

Several projects have been discontinued in the history of the software industry due to the presence of software architecture problems. The identification of such problems in source code is often required in re...

An approach based on feature models and quality criteria for adapting component-based systems

Feature modeling has been widely used in domain engineering for the development and configuration of software product lines. A feature model represents the set of possible products or configurations to apply i...

Patch rejection in Firefox: negative reviews, backouts, and issue reopening

Writing patches to fix bugs or implement new features is an important software development task, as it contributes to raise the quality of a software system. Not all patches are accepted in the first attempt, ...

Investigating probabilistic sampling approaches for large-scale surveys in software engineering

Establishing representative samples for Software Engineering surveys is still considered a challenge. Specialized literature often presents limitations on interpreting surveys’ results, mainly due to the use o...

Characterising the state of the practice in software testing through a TMMi-based process

The software testing phase, despite its importance, is usually compromised by the lack of planning and resources in industry. This can risk the quality of the derived products. The identification of mandatory ...

Self-adaptation by coordination-targeted reconfigurations

A software system is self-adaptive when it is able to dynamically and autonomously respond to changes detected either in its internal components or in its deployment environment. This response is expected to ensu...

Templates for textual use cases of software product lines: results from a systematic mapping study and a controlled experiment

Use case templates can be used to describe functional requirements of a Software Product Line. However, to the best of our knowledge, no efforts have been made to collect and summarize these existing templates...

F3T: a tool to support the F3 approach on the development and reuse of frameworks

Frameworks are used to enhance the quality of applications and the productivity of the development process, since applications may be designed and implemented by reusing framework classes. However, frameworks ...

NextBug: a Bugzilla extension for recommending similar bugs

Due to the characteristics of the maintenance process followed in open source systems, developers are usually overwhelmed with a great amount of bugs. For instance, in 2012, approximately 7,600 bugs/month were...

Assessing the benefits of search-based approaches when designing self-adaptive systems: a controlled experiment

The well-orchestrated use of distilled experience, domain-specific knowledge, and well-informed trade-off decisions is imperative if we are to design effective architectures for complex software-intensive syst...

Revealing influence of model structure and test case profile on the prioritization of test cases in the context of model-based testing

Test case prioritization techniques aim at defining an order of test cases that favor the achievement of a goal during test execution, such as revealing failures as earlier as possible. A number of techniques ...

A metrics suite for JUnit test code: a multiple case study on open source software

The code of JUnit test cases is commonly used to characterize software testing effort. Different metrics have been proposed in literature to measure various perspectives of the size of JUnit test cases. Unfort...

Designing fault-tolerant SOA based on design diversity

Over recent years, software developers have been evaluating the benefits of both Service-Oriented Architecture (SOA) and software fault tolerance techniques based on design diversity. This is achieved by creat...

Method-level code clone detection through LWH (Light Weight Hybrid) approach

Many researchers have investigated different techniques to automatically detect duplicate code in programs exceeding thousand lines of code. These techniques have limitations in finding either the structural o...

The problem of conceptualization in god class detection: agreement, strategies and decision drivers

The concept of code smells is widespread in Software Engineering. Despite the empirical studies addressing the topic, the set of context-dependent issues that impacts the human perception of what is a code sme...

  • Editorial Board
  • Sign up for article alerts and news from this journal

software engineering Recently Published Documents

Total documents.

  • Latest Documents
  • Most Cited Documents
  • Contributed Authors
  • Related Sources
  • Related Keywords

Identifying Non-Technical Skill Gaps in Software Engineering Education: What Experts Expect But Students Don’t Learn

As the importance of non-technical skills in the software engineering industry increases, the skill sets of graduates match less and less with industry expectations. A growing body of research exists that attempts to identify this skill gap. However, only few so far explicitly compare opinions of the industry with what is currently being taught in academia. By aggregating data from three previous works, we identify the three biggest non-technical skill gaps between industry and academia for the field of software engineering: devoting oneself to continuous learning , being creative by approaching a problem from different angles , and thinking in a solution-oriented way by favoring outcome over ego . Eight follow-up interviews were conducted to further explore how the industry perceives these skill gaps, yielding 26 sub-themes grouped into six bigger themes: stimulating continuous learning , stimulating creativity , creative techniques , addressing the gap in education , skill requirements in industry , and the industry selection process . With this work, we hope to inspire educators to give the necessary attention to the uncovered skills, further mitigating the gap between the industry and the academic world.

Opportunities and Challenges in Code Search Tools

Code search is a core software engineering task. Effective code search tools can help developers substantially improve their software development efficiency and effectiveness. In recent years, many code search studies have leveraged different techniques, such as deep learning and information retrieval approaches, to retrieve expected code from a large-scale codebase. However, there is a lack of a comprehensive comparative summary of existing code search approaches. To understand the research trends in existing code search studies, we systematically reviewed 81 relevant studies. We investigated the publication trends of code search studies, analyzed key components, such as codebase, query, and modeling technique used to build code search tools, and classified existing tools into focusing on supporting seven different search tasks. Based on our findings, we identified a set of outstanding challenges in existing studies and a research roadmap for future code search research.

Psychometrics in Behavioral Software Engineering: A Methodological Introduction with Guidelines

A meaningful and deep understanding of the human aspects of software engineering (SE) requires psychological constructs to be considered. Psychology theory can facilitate the systematic and sound development as well as the adoption of instruments (e.g., psychological tests, questionnaires) to assess these constructs. In particular, to ensure high quality, the psychometric properties of instruments need evaluation. In this article, we provide an introduction to psychometric theory for the evaluation of measurement instruments for SE researchers. We present guidelines that enable using existing instruments and developing new ones adequately. We conducted a comprehensive review of the psychology literature framed by the Standards for Educational and Psychological Testing. We detail activities used when operationalizing new psychological constructs, such as item pooling, item review, pilot testing, item analysis, factor analysis, statistical property of items, reliability, validity, and fairness in testing and test bias. We provide an openly available example of a psychometric evaluation based on our guideline. We hope to encourage a culture change in SE research towards the adoption of established methods from psychology. To improve the quality of behavioral research in SE, studies focusing on introducing, validating, and then using psychometric instruments need to be more common.

Towards an Anatomy of Software Craftsmanship

Context: The concept of software craftsmanship has early roots in computing, and in 2009, the Manifesto for Software Craftsmanship was formulated as a reaction to how the Agile methods were practiced and taught. But software craftsmanship has seldom been studied from a software engineering perspective. Objective: The objective of this article is to systematize an anatomy of software craftsmanship through literature studies and a longitudinal case study. Method: We performed a snowballing literature review based on an initial set of nine papers, resulting in 18 papers and 11 books. We also performed a case study following seven years of software development of a product for the financial market, eliciting qualitative, and quantitative results. We used thematic coding to synthesize the results into categories. Results: The resulting anatomy is centered around four themes, containing 17 principles and 47 hierarchical practices connected to the principles. We present the identified practices based on the experiences gathered from the case study, triangulating with the literature results. Conclusion: We provide our systematically derived anatomy of software craftsmanship with the goal of inspiring more research into the principles and practices of software craftsmanship and how these relate to other principles within software engineering in general.

On the Reproducibility and Replicability of Deep Learning in Software Engineering

Context: Deep learning (DL) techniques have gained significant popularity among software engineering (SE) researchers in recent years. This is because they can often solve many SE challenges without enormous manual feature engineering effort and complex domain knowledge. Objective: Although many DL studies have reported substantial advantages over other state-of-the-art models on effectiveness, they often ignore two factors: (1) reproducibility —whether the reported experimental results can be obtained by other researchers using authors’ artifacts (i.e., source code and datasets) with the same experimental setup; and (2) replicability —whether the reported experimental result can be obtained by other researchers using their re-implemented artifacts with a different experimental setup. We observed that DL studies commonly overlook these two factors and declare them as minor threats or leave them for future work. This is mainly due to high model complexity with many manually set parameters and the time-consuming optimization process, unlike classical supervised machine learning (ML) methods (e.g., random forest). This study aims to investigate the urgency and importance of reproducibility and replicability for DL studies on SE tasks. Method: In this study, we conducted a literature review on 147 DL studies recently published in 20 SE venues and 20 AI (Artificial Intelligence) venues to investigate these issues. We also re-ran four representative DL models in SE to investigate important factors that may strongly affect the reproducibility and replicability of a study. Results: Our statistics show the urgency of investigating these two factors in SE, where only 10.2% of the studies investigate any research question to show that their models can address at least one issue of replicability and/or reproducibility. More than 62.6% of the studies do not even share high-quality source code or complete data to support the reproducibility of their complex models. Meanwhile, our experimental results show the importance of reproducibility and replicability, where the reported performance of a DL model could not be reproduced for an unstable optimization process. Replicability could be substantially compromised if the model training is not convergent, or if performance is sensitive to the size of vocabulary and testing data. Conclusion: It is urgent for the SE community to provide a long-lasting link to a high-quality reproduction package, enhance DL-based solution stability and convergence, and avoid performance sensitivity on different sampled data.

Predictive Software Engineering: Transform Custom Software Development into Effective Business Solutions

The paper examines the principles of the Predictive Software Engineering (PSE) framework. The authors examine how PSE enables custom software development companies to offer transparent services and products while staying within the intended budget and a guaranteed budget. The paper will cover all 7 principles of PSE: (1) Meaningful Customer Care, (2) Transparent End-to-End Control, (3) Proven Productivity, (4) Efficient Distributed Teams, (5) Disciplined Agile Delivery Process, (6) Measurable Quality Management and Technical Debt Reduction, and (7) Sound Human Development.

Software—A New Open Access Journal on Software Engineering

Software (ISSN: 2674-113X) [...]

Improving bioinformatics software quality through incorporation of software engineering practices

Background Bioinformatics software is developed for collecting, analyzing, integrating, and interpreting life science datasets that are often enormous. Bioinformatics engineers often lack the software engineering skills necessary for developing robust, maintainable, reusable software. This study presents review and discussion of the findings and efforts made to improve the quality of bioinformatics software. Methodology A systematic review was conducted of related literature that identifies core software engineering concepts for improving bioinformatics software development: requirements gathering, documentation, testing, and integration. The findings are presented with the aim of illuminating trends within the research that could lead to viable solutions to the struggles faced by bioinformatics engineers when developing scientific software. Results The findings suggest that bioinformatics engineers could significantly benefit from the incorporation of software engineering principles into their development efforts. This leads to suggestion of both cultural changes within bioinformatics research communities as well as adoption of software engineering disciplines into the formal education of bioinformatics engineers. Open management of scientific bioinformatics development projects can result in improved software quality through collaboration amongst both bioinformatics engineers and software engineers. Conclusions While strides have been made both in identification and solution of issues of particular import to bioinformatics software development, there is still room for improvement in terms of shifts in both the formal education of bioinformatics engineers as well as the culture and approaches of managing scientific bioinformatics research and development efforts.

Inter-team communication in large-scale co-located software engineering: a case study

AbstractLarge-scale software engineering is a collaborative effort where teams need to communicate to develop software products. Managers face the challenge of how to organise work to facilitate necessary communication between teams and individuals. This includes a range of decisions from distributing work over teams located in multiple buildings and sites, through work processes and tools for coordinating work, to softer issues including ensuring well-functioning teams. In this case study, we focus on inter-team communication by considering geographical, cognitive and psychological distances between teams, and factors and strategies that can affect this communication. Data was collected for ten test teams within a large development organisation, in two main phases: (1) measuring cognitive and psychological distance between teams using interactive posters, and (2) five focus group sessions where the obtained distance measurements were discussed. We present ten factors and five strategies, and how these relate to inter-team communication. We see three types of arenas that facilitate inter-team communication, namely physical, virtual and organisational arenas. Our findings can support managers in assessing and improving communication within large development organisations. In addition, the findings can provide insights into factors that may explain the challenges of scaling development organisations, in particular agile organisations that place a large emphasis on direct communication over written documentation.

Aligning Software Engineering and Artificial Intelligence With Transdisciplinary

Study examined AI and SE transdisciplinarity to find ways of aligning them to enable development of AI-SE transdisciplinary theory. Literature review and analysis method was used. The findings are AI and SE transdisciplinarity is tacit with islands within and between them that can be linked to accelerate their transdisciplinary orientation by codification, internally developing and externally borrowing and adapting transdisciplinary theories. Lack of theory has been identified as the major barrier toward towards maturing the two disciplines as engineering disciplines. Creating AI and SE transdisciplinary theory would contribute to maturing AI and SE engineering disciplines.  Implications of study are transdisciplinary theory can support mode 2 and 3 AI and SE innovations; provide an alternative for maturing two disciplines as engineering disciplines. Study’s originality it’s first in SE, AI or their intersections.

Export Citation Format

Share document.

Development of Software Engineering: A Research Perspective

  • Published: September 2006
  • Volume 21 , pages 682–696, ( 2006 )

Cite this article

  • Hong Mei 1 ,
  • Dong-Gang Cao 1 &
  • Fu-Qing Yang 1  

128 Accesses

Explore all metrics

In the past 40 years, software engineering has emerged as an important sub-field of computer science and has made significant contribution to the software industry. Now it is gradually becoming a new independent discipline. This paper presents a survey of software engineering development from a research perspective. Firstly, the history of software engineering is reviewed with focus on the driving forces of software technology, the software engineering framework and the milestones of software engineering development. Secondly, after reviewing the past academic efforts, the current research activities are surveyed and new challenges brought by Internet are analyzed. Software engineering researches and activities in China are also reviewed. The work in Peking University is described as a representative.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price includes VAT (Russian Federation)

Instant access to the full article PDF.

Rent this article via DeepDyve

Institutional subscriptions

Similar content being viewed by others

research papers in software development

Explore the Development of Software Engineering Technology Under the Background of the Internet Era

research papers in software development

Key Software Engineering Paradigms and Modeling Methods

research papers in software development

Software Engineering

Brooks F P Jr. No silver bullet: Essence and accidents of software engineering. Computer , April 1987, 20(4): 10-19.

Google Scholar  

Zhang Xiaoxiang. Encyclopedia of Computer Science and Technology. Second edition, Beijing: Tsinghua University Press, 2005. (in Chinese)

Hong Mei. A component model for perspective management of enterprise software reuse. Annals of Software Engineering USA , 11(1): 219–236.

Papazoglou M P, Georgakopoulos D (eds.). Special issue on service oriented computing. Communications of ACM , Oct. 2003, 46(10): 24–60.

Fuggetta A. Software process: A roadmap. In Proc. the Conf. Future of Software Engineering , Limerick, Ireland: ACM Press, 2000, pp. 25–34.

Zave P. Classification of research efforts in requirements engineering. ACM Computing Surveys , 1997, 29(4): 315–321.

Article   Google Scholar  

Bashar Nuseibeh, Steve Easterbrook. Requirement engineering: A roadmap. In Proc. the Conf. Future of Software Engineering , Limerick, Ireland: ACM Press, 2000, pp. 35–46.

Frankel D S. Model Driven Architecture: Applying MDA to Enterprise Computing. Wiley, 2003.

Meservy T O, Fenstermacher K D. Transforming software development: An MDA roadmap. Computer , 2005, 38(9): 52–58.

Kiczales G et al . Aspect-oriented programming. In Proc. 11th European Conf. Object-Oriented Programming (ECOOP ), Springer-Verlag, Finland, 1997, pp. 220–243.

Wooldridge M. Agent-oriented software engineering. In IEE Proc. Software Engineering , 1997, 144(1): 26–37.

Diomidis Spinellis, Clemens Szyperski. How is open source affecting software development? IEEE Software , Jan/Feb 2004, 21(1): 28–33.

Foster I, Kesselman C, Tuecke S. The anatomy of the grid: Enabling scalable virtual organizations. Int. Journal of High Performance Computing Applications , 2001, 15(3): 200–222.

Satyanarayanan M. Pervasive computing: Vision and challenges. IEEE Personal Communications , 2001, 8(4): 10–17.

Xu J, Lu J. Software Languages and Their Implementation. Scientific Publishing House, 2000. (in Chinese)

Tang C-S. Toward a unified logic basis for programming languages. IFIP Congress , North Holland, Amsterdam, 1983, pp. 425–429.

Dong Y, Li K, Chen H et al . Design and implementation of the formal specification acquisition system SAQ. In Conf. Software: Theory and Practice, IFIP 16th World Computer Congress 2000 , Beijing, 2000, pp. 201–211.

Jinling Wang, Beihong Jin, Jing Li. An ontology-based publish/subscribe system. In 5th ACM/IFIP/USENIX Int. Middleware Conference (Middleware 2004 ), Toronto, Canada, Oct. 2004, Springer, LNCS 3231, pp. 232–253.

Li Juan, Li Ming-Shu, Wu Zhan-Chun, Wang Qing. A SPEM-based software process metamodel for CMM. Journal of Software , 2005, 16(8): 1366–1377.

Lin H. Complete inference systems for weak bisimulation equivalences in the pi-calculus. Information and Computation , 2003, 180(1): 1–29.

Article   MATH   MathSciNet   Google Scholar  

Liu Chao, Zhang Mao-lin, Yan Hai-hua et al . Teamwork collaboration model of software integration testing and its characteristics. Journal of Software , 2000, 11(6): 841–847.

Ge Sheng, Hu Chun-ming, Du Zong-xia et al . WebSASE: A web service-based application supporting environment. In Proc. the 5th Northeast Asia Symposium , Seal, Korea, Aug 6, 2002, pp. 67–76.

Ruqian Lu, Zhi Jin. Formal ontology: Foundation of domain knowledge sharing and reusing. Journal of Computer Science and Technology , September 2002, 17(5): pp. 535–548.

Article   MATH   Google Scholar  

Lu Jian. Developing parallel object-oriented programs in the framework of VDM. Annals of Software Engineering , 1996, 2(9): 199–211.

Lu Jian, Li Yingjun, Ma Xiaoxing et al . A hierarchical framework for parallel seismic applications. Communications of ACM , 2000, 43(10): 55–59.

Li Xuandong, Zhao Jianhua, Pei Yu et al . Positive loop-closed automata: A decidable class of hybrid systems. Journal of Logic and Algebraic Programming , 2002, 52-53: 79–108.

Wang H M, Wang Y F, Tang Y B. StarBus+: Distributed object middleware practice for Internet computing. Journal of Computer Science and Technology , 2005, 20(4): 542–551.

Ji Wang, Wei Dong, Zhi-Chang Qi. Slicing hierarchical automata for model checking UML statecharts. Formal Methods and Software Engineering. Lecture Notes in Computer Science 2495 , Springer, 2002.

He Jifeng, Tony Hoare. Unifying Theories for Parallel Programming. Lecture Notes in Computer Sciences 1300 , Springer, 1997, pp. 15–30.

Yang F et al . Kernel Software Engineering Environment BETA-85. Science in China (A ), 1988, 18(5): 530–538.

Yang F, Shao W, Mei H. The design and implementation of object-oriented CASE environment Jade Bird 2(JB2). Science in China (A ), 1995, 25(5): 533–542. (in Chinese)

Yang F, Mei H. Research on technology for industrialization production of software—Practice of JB (Jade Bird) project. In Symp. Sino-American Engineering Technology , Beijing, Oct. 1997, pp. 190–200.

Mei H, Chang J C, Yang F Q. Software component composition based on ADL and middleware. Science in China (Series F ), 2001, 44(2): 136–151.

Mei H, Chen Feng, Wang Qianxiang, Feng Yaodong. ABC/ADL: An ADL supporting component composition. In Proc. 4th Int. Conf. Formal Engineering Methods (ICFEM2002 ), Shanghai, China, 2002, pp. 38–47.

Mei H, Zhang W, Gu F. A feature oriented approach to modeling and reusing requirements of software product lines. In Proc. COMPSAC , Dallas, USA, 2003, pp. 250–256.

Zhang W, Mei H, Zhao H Y. A feature-oriented approach to modeling requirements dependencies. In Proc. 13th IEEE Int. Conf. Requirements Engineering (ICRE ), La Sorbonne, France, August 29–September 2, 2005, pp. 273–282.

Zhu Y, Huang G, Mei M. Quality attribute scenario based architectural modeling for self-adaptation supported by architecture-based reflective middleware. In Asia Pacific Software Engineering Conference (APSEC 2004 ), Busan, Korea, Nov. 30–Dec. 3, 2004, pp. 2–9.

Feng Y, Huang G, Zhu Y L, Mei H. Exception handling in component composition with the support of middleware. In Fifth Int. Workshop on Software Engineering and Middleware (SEM 2005 ), co-located with ESEC-FSE’05, Lisbon, Portugal, ACM Press, September 5–6, 2005, pp. 90–97.

Huang G, Liu T C, Mei H et al . Towards autonomic computing middleware via reflection. In Proc. 28th Annual Int. Computer Software and Applications Conference (COMPSAC ), Hong Kong, China, Sept. 28–30, 2004, pp. 122–127.

Huang G, Mei H, Yang F Q. Runtime recovery and manipulation of software architecture of component-based systems. International Journal of Automated Software Engineering , 2006, 13(2): 257–281.

Zhang W, Mei H, Zhao H Y, Yang J. Transformation from CIM to PIM: Feature-oriented component-based approach. In Proc. 8th Int. Conf. Model Driven Engineering Languages and Systems (MoDELS 2005 ), Montego Bay, Jamaica, Oct. 2–7, 2005, LNCS 3713, 2005, pp. 248–263.

Shen J, Sun X, Huang G et al . Towards a unified formal model for supporting mechanisms of dynamic component update. The Fifth Joint Meeting of the European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC-FSE’05 ), Lisbon, Portugal, September 5–9, 2005, pp. 80–89.

Liu T, Huang G, Fan G, Mei H. The coordinated recovery of data service and transaction service in J2EE. In Proc. 29th Annual Int. Computer Software and Applications Conference (COMPSAC05 ), Edinburgh, Scotland, July 2005, pp. 485–490.

Download references

Author information

Authors and affiliations.

School of Electronics Engineering and Computer Science, Peking University, Beijing, 100871, P.R. China

Hong Mei, Dong-Gang Cao & Fu-Qing Yang

You can also search for this author in PubMed   Google Scholar

Corresponding author

Correspondence to Hong Mei .

Additional information

Survey: This work was supported by several government-funded projects, including the National Key Projects in the State 6th to 10th Five-Year Plan, the National High Technology Development 863 Program of China, the National Grand Fundamental Research 973 Program of China, and the National Natural Science Foundation of China, etc.

Hong Mei is a professor in computer science at the Peking University, China. He got the B.Eng. and M.S. degrees in computer science from Nanjing University of Aeronautics & Astronautics (NUAA) in 1984 and 1987 respectively, and the Ph.D. degree in computer science from Shanghai Jiao Tong University in 1992. His current research interests include: software engineering and software engineering environment, software reuse and software component technology, distributed object technology, etc.

Dong-Gang Cao is an assistant professor in the School of Electronics Engineering and Computer Science at the Peking University, China. He received the B.Eng. and M.Eng. degrees in computer science & technology from the Beijing University of Posts and Telecommunications in 1998 and 2001 respectively, and the Ph.D. degree in computer science from Peking University in 2005. His research interests include software engineering, Internet technologies and component-based software development.

Fu-Qing Yang is a professor in computer science in the School of Electronics Engineering and Computer Science, the Dean of the Faculty of Information and Engineering Sciences, Peking University. She is an academician of the Chinese Academy of Sciences and an IEEE fellow.

Rights and permissions

Reprints and permissions

About this article

Mei, H., Cao, DG. & Yang, FQ. Development of Software Engineering: A Research Perspective. J Comput Sci Technol 21 , 682–696 (2006). https://doi.org/10.1007/s11390-006-0682-8

Download citation

Received : 17 April 2006

Revised : 27 June 2006

Issue Date : September 2006

DOI : https://doi.org/10.1007/s11390-006-0682-8

Share this article

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

  • software engineering
  • methodology
  • programming
  • software component
  • Find a journal
  • Publish with us
  • Track your research

Applying and Researching DevOps: A Tertiary Study

Ieee account.

  • Change Username/Password
  • Update Address

Purchase Details

  • Payment Options
  • Order History
  • View Purchased Documents

Profile Information

  • Communications Preferences
  • Profession and Education
  • Technical Interests
  • US & Canada: +1 800 678 4333
  • Worldwide: +1 732 981 0060
  • Contact & Support
  • About IEEE Xplore
  • Accessibility
  • Terms of Use
  • Nondiscrimination Policy
  • Privacy & Opting Out of Cookies

A not-for-profit organization, IEEE is the world's largest technical professional organization dedicated to advancing technology for the benefit of humanity. © Copyright 2024 IEEE - All rights reserved. Use of this web site signifies your agreement to the terms and conditions.

Software Engineering

At Google, we pride ourselves on our ability to develop and launch new products and features at a very fast pace. This is made possible in part by our world-class engineers, but our approach to software development enables us to balance speed and quality, and is integral to our success. Our obsession for speed and scale is evident in our developer infrastructure and tools. Developers across the world continually write, build, test and release code in multiple programming languages like C++, Java, Python, Javascript and others, and the Engineering Tools team, for example, is challenged to keep this development ecosystem running smoothly. Our engineers leverage these tools and infrastructure to produce clean code and keep software development running at an ever-increasing scale. In our publications, we share associated technical challenges and lessons learned along the way.

Recent Publications

Some of our teams.

Climate and sustainability

Software engineering and programming languages

We're always looking for more talented, passionate people.

Careers

U.S. flag

An official website of the United States government

The .gov means it’s official. Federal government websites often end in .gov or .mil. Before sharing sensitive information, make sure you’re on a federal government site.

The site is secure. The https:// ensures that you are connecting to the official website and that any information you provide is encrypted and transmitted securely.

  • Publications
  • Account settings

Preview improvements coming to the PMC website in October 2024. Learn More or Try it out now .

  • Advanced Search
  • Journal List
  • Comput Intell Neurosci
  • v.2022; 2022

Logo of cin

Trends in Intelligent and AI-Based Software Engineering Processes: A Deep Learning-Based Software Process Model Recommendation Method

Fahad h. alshammari.

College of Computing and Information Technology, Shaqra University, Shaqra, Saudi Arabia

Associated Data

The data used to support the findings of this study are included within this article.

In recent years, numerous studies have successfully implemented machine learning strategies in a wide range of application areas. Therefore, several different deep learning models exist, each one tailored to a certain software task. Using deep learning models provides numerous advantages for the software development industry. Testing and maintaining software is a critical concern today. Software engineers have many responsibilities while developing a software system, including coding, testing, and delivering the software to users via the cloud. From this list, it is easy to see that each task calls for extensive organization and preparation, as well as access to a variety of resources. A developer may consult other code repositories, websites with related programming content, and even colleagues for information before attempting to build and test a solution to the problem at hand. In this investigation, we aim to identify the factors that led to developing the recommender. This system analyzes the recommender's performance and provides suggestions for improving the software based on users' opinions.

1. Introduction

When developing a software system, software engineers execute various tasks, including creating code, testing code, deploying to the cloud, and coordinating via e-mail and meetings [ 1 ]. Each of these tasks necessitates searching for and working with a wide range of information and resources, as well as planning and preparing for the upcoming one [ 2 ]. A developer may investigate other code repositories for prospective solutions, explore online sites with relevant programming material, or contact coworkers for information before programming a possible solution to the problem at hand and testing the answer [ 3 ].

For example, performing these tasks can be intimidating for novices in the field [ 4 ]. Near-perfect performance in these activities is nearly unattainable for even the most experienced coders. Recommender systems for software engineering have been implemented to easily perform tasks and improve workflow [ 5 ]. In other words, “software applications that deliver information items deemed to be relevant for software engineering tasks” are “recommenders” for the discipline [ 6 ]. Software engineers are used to working with certain recommenders that are closely relevant to their development operations. Such issues as missing import declarations in Java code can be solved using recommenders in various integrated development environments, such as the Eclipse IDE4 [ 7 ]”.

Recommendation systems for different tasks and workflows have been developed, including those for code reorganization, learning the next set of commands, and discovering needs. For instance, the Eclipse Mylyn recommender, which provides specific recommendations of which source code is connected with a task, has been demonstrated to boost the productivity of developers. Recommenders have much unrealized potential in the software development process because of their vast variety of actions [ 8 ].

One of the primary problems with the current recommender system is that it forecasts products that the user will find irrelevant or uninteresting. As a result, a recommender system is required, which must supply services in accordance with the resemblance of goods. By incorporating user and product data into a collaborative recommendation system, true user preferences can be learned [ 9 – 11 ].

The first stage in developing a recommender is to define the problem the recommender is intended to solve and verify the assumption that a recommender can deliver suggestions of value to the developer facing the problem. Framing the problem is the term we use to describe the activities occurring during this phase. The introduction's definition of a software engineering recommender provides a foundation for investigating the problem and solution targeted by a recommendation engine. The task and context for which a recommender will be used must be crystal apparent when thinking about creating one. Another consideration is for whom a recommender is intended: developers or end users. The idea of a task targeted by a recommender relates to the specific purpose of a developer at a certain moment in time, such as the implementation of an assigned feature in source code. Even though a developer is aware of the current task at all times, the task may not be expressed directly in the code. The context of a recommender refers to the information and tool environment in which the task is conducted, such as the source code and other artifacts available and the set of tools that can be used to complete the work. The context also captures the developer's steps in completing the given task. This helps define when and what information a recommender may provide: novices often have fundamentally different information needs compared to experts. While frequent proposals may be helpful to the first group, the latter often has a poor tolerance for interruptions of their work that convey already known facts. The main contributions of this study are as follows:

  • Determining the inputs for the recommender's construction was how we phrased the issue
  • This system provides recommendations for software development based on client happiness and evaluates the usefulness of the recommender

2. Related Work

Wen et al. [ 12 ] systematically examined machine learning models from four perspectives: the kind of ML approach, estimation accuracy, model comparison, and context of estimation, which is the goal of this study. A systematic review of empirical studies on the ML model published between 1991 and 2010 was conducted. The author compiled a list of 84 primary studies related to our research question and detected eight different types of ML approaches used in SDEE models after looking into these studies. Overall, these ML models have better estimation accuracy than non-ML models and are near to it. For this reason, certain ML models are more effective in certain estimation scenarios. SDEE is a potential field for ML models. However, the industry's use of ML models is still limited, necessitating additional efforts and financial incentives. Following the conclusions of this review, the author offers advice for researchers and guidance for practitioners.

Wan et al. [ 13 ] were curious about the impact of machine learning on software development techniques, given the growing popularity of this approach. From interviews with 14 people and surveys with 342 people from 26 nations across four continents, we could identify substantial differences between the development of machine and nonmachine learning systems. Software engineering (e.g., requirements, design, testing, and process) and work characteristics are significantly different across the two groups, according to our research (e.g., skill variety, problem-solving, and task identity). In light of our findings, the author outlined potential future research areas and offered practice-oriented suggestions.

Del Carpio and Angarita [ 14 ] used machine learning approaches in various knowledge domains with promising results. Many deep learning models now focus on a wide range of software operations, which is a good sign for the future systematic investigation of deep learning model-supported software processes that yield useful findings for the software industry. Software testing and maintenance were the most often studied subprocesses in this study. It is common to utilize deep learning models such as CNN and RNN to process bug reports, malware categorization, and recommendation creation in these subprocesses. Some solutions are focused on estimating effort, classifying software requirements, identifying GUI visual aspects, identifying code authors, finding the similarity between source codes, predicting and classifying defects, and analyzing bug reports in testing and maintenance operations.

Meziane and Vadera [ 15 ] suggested that, due to its ability to automate time-consuming or complex processes, artificial intelligence has recently gained much attention. There have been no exceptions to this rule regarding software engineering projects. Artificial intelligence and software maintenance are covered in depth in this thesis. The recent advances in applying artificial intelligence to software maintenance duties were also studied through thorough mapping research. Research kind, research contribution, software maintenance domains, and artificial intelligence solution type were the most important aspects of this study.

Barenkamp et al. [ 16 ] involved a systematic evaluation of prior research and five qualitative interviews with software developers. The study's conclusions are categorized throughout software development. Major AI achievements and future potentials include (a) using algorithms to automate time-consuming, routine tasks in software development and testing (such as bug hunting and documentation); (b) conducting structured analyses of large datasets to uncover patterns and new information clusters; and (c) conducting systematic evaluations of these datasets in neural networks. AI accelerates development, reduces expenses, and increases efficiency. Software engineering automation is superior to the present AI, which relies on human-made structures and is essentially reproductive. Developers can enhance their creativity with AI tools.

Harman claimed that the artificial intelligence (AI) approaches to software engineering also focuses on the software development related challenges [ 17 ]. While search-based software engineering is a more recent development, the field's history of work in probabilistic reasoning and machine learning for software engineering is well-established. For the purpose of this paper, the author examined some of the connections between these two areas of research, claiming that they share many characteristics.

Tate [ 18 ] compared software quality models. Case studies apply software quality models to the current processes. Case study results complement empirical model assessment. Standard selection criteria are used to recommend and select models. Procedures are evaluated using success criteria. Theoretical assessment methods evaluate process model quality. Conformity to ideal process quality model requirements and relevance to software stakeholders are tested. Discussing the models' breadth and scale: empirical assessment methods are established to evaluate the model's performance in real software operations. There are approaches to determine if process quality models produce different results and, if so, which model to choose. Case study software processes are measured for differences.

Fadhil et al. [ 11 ] determined how AI can improve software issue detection and prediction methods. Artificial intelligence has helped identify software issues and predict bugs, as data shows. Combining AI with software engineering reduces overhead and produces more efficient solutions, improving software quality.

Kothawar and Vajrapu [ 19 ] addressed these behaviors' difficulties and solutions. Methods: the author chose 15 best practices from eight startups, each with unique challenges and solutions. Our research indicates startups' mixed prioritization. Six of the eight companies used formal methods, while two used unstructured prioritization. Startups' value: prioritizing based on consumer input and ROI is key. This study examines startup priority needs and obstacles. The literature supports the study's findings. Finding solutions helps practitioners. The poll should include Swedish software startups. Some of these solutions may also be useful for practitioners wishing to begin a software startup and priority requirements.

This study's aggregation method is clear, realistic, and interpretable [ 9 ]. This method makes quality model and metric-based software quality assessment reliable and reproducible. Based on all observable software artifacts, good and bad quality are assigned probabilities. Validation was theoretical and empirical. Bug prediction, maintainability, and information quality were evaluated. Software visualization was used to evaluate the usefulness of aggregation for multivariate data and the impact of different aggregation methods. Finally, the author assessed MCR's transferability and used it to rate real-world options. The author used machine learning, created a benchmark employing regression issues, and evaluated how well the aggregate result matches a ground truth and represents input variables. Our method is accurate, sensitive, and facilitates multicriteria decision-making. Our approach can be used as an agnostic unsupervised predictor without ground truth.

Recently, sentiment analysis on social networks, such as Twitter and Facebook, has become a valuable tool for gaining insight into the thoughts and feelings of people. In contrast, sentiment analysis suffers from the difficulties of natural language processing (NLP). Deep learning models have recently been a promising solution to NLP difficulties. To address the issues with sentiment analysis, such as sentiment polarity, the paper [ 10 ] analyzes the most recent experiments to make use of deep learning. Word embedding and the TF-IDF model have been used to analyze several different datasets. Comparative studies of the experimental findings for various models and input features have also been undertaken.

Software defect prediction anticipates troublesome code sections to help find faults and priorities testing. Previous work focused on manually encoding program information and using machine learning to generate accurate prediction models. Standard characteristics do not capture semantic differences between programs for accurate prediction models [ 8 ]. Deep learning is proposed to bridge the gap between program semantics and fault prediction characteristics. The deep belief network (DBN) learns semantic features from Abstract Syntax Tree (AST) token vectors automatically. Our research on 10 open-source projects shows that our automatically learned semantic features increase both within-project and cross-project defect prediction over traditional characteristics. Precision, recall, and F1 improve WPDP by 14.7%, 11.5%, and 14.2%, respectively. Our semantic feature-based technique beats TCA + by 8.9% in F1 for CPDP.

Reference [ 20 ] proposed LEMNA, a high-fidelity security explanation approach. LEMNA generates a limited set of features that explain how an input sample is categorized. The goal is to create a simple interpretable model to approximate the deep learning decision boundary. It manages feature dependency to better interact with security applications (such as binary code analysis) and nonlinear local boundaries to boost explanation fidelity. Local interpretable model (LIM): the author tested our method with two deep learning security apps (a malware classifier and a function start detector for binary reverse engineering). Extensive testing demonstrates that LEMNA's explanation is more correct than others. The author shows how LEMNA may help machine learning developers verify model behavior, fix classification issues, and automatically patch target model defects.

Reference [ 7 ] reviewed machine learning papers for software project management. Web Science, Science Directs, and IEEE Explore have research on machine learning, software project management, and methodology. Three repositories contain 111 papers in four groupings. First group: software project management papers. The second category contains machine learning methods and tactics utilized in projects. The third category comprises studies on machine learning management phases and tests, as well as study findings, contribution to and promotion of machine learning project prediction, and other studies. It gives a broader context for future project risk management efforts. Machine learning-based project risk assessment is more successful in reducing project losses, increasing project success, and reducing project failure probabilities while increasing the growth output ratio.

Recent machine learning discoveries have prompted interest in integrating AI into IT software and services. To fulfill this goal, organizations adapted their development methodologies. The author shares research on Microsoft's AI-app development teams. It is built on designing AI apps (search and NLP) using data science tools (R and Python) (e.g., application diagnostics and bug reporting). Reference [ 5 ] found that multiple Microsoft teams have integrated this workflow into established, well-evolved software engineering processes, providing insights into numerous important engineering problems organizations may encounter while developing large-scale AI products for the market. These difficulties required Microsoft's best practices. Aside from that, the author found three main AI differences: (1) model customization and reuse demand different abilities than those found in software teams. (2) AI components are more challenging to handle as independent modules than typical software components. Microsoft teams provided critical knowledge.

Yang et al. [ 6 ] proposed “deep neural networks” (DNNs) and an updated model training approach. Alpha Go showed deep learning's potential in 2016. Deep learning helps software engineering (SE) experts construct cutting-edge research tools. Model selection, internal structure, and tuning affect DNN performance in SE. Deep learning in SE is understudied. The author searched for relevant publications since 2006. First, SE deep learning is shown. SE's deep learning methods are classified. The author looked at deep learning model optimization methodologies and highlighted SE research problems that will benefit from DNNs. Our findings highlight existing problems and suggest a potential study route.

Machine learning is rapidly used by the software engineering community as a means of transforming modern software into intelligent and self-learning systems. Software engineers are still exploring methods in which machine learning can aid with various stages of the software development life cycle. Herein, the author reports the results of a study on the application of machine learning at various stages of the software development life cycle. Overall, [ 3 ] investigated the relationship between software development life cycle stages and machine learning tools, techniques, or types, which is a broad goal. In an attempt to answer the question of whether machine learning favors specific stages or methodologies, we conduct a comprehensive analysis.

Business transactions, revenues, and general success are becoming increasingly dependent on the use of recommendation systems. Recommendation systems and their implementation approaches are the focus of this survey. The components and attributes of a recommender system can change based on the organization's needs. Design criteria and key recommender system attributes are presented in this study. There are a few well-known approaches that are scrutinized. In conclusion, [ 4 ] introduced movie recommenders from the three most relevant industries: film, music, and online shopping. The survey seeks to provide readers with a broad understanding of the circumstances in which certain recommender systems are appropriate.

Machine learning models are frequently developed by data scientists to handle a wide range of problems in both industry and academia, but they are not without their own set of hurdles. One of the issues with machine learning development is that many people working in the field are unaware of the benefits that may be reaped from following the steps outlined in the software engineering development lifecycle (SEDL). Of course, because machine learning systems are distinct from typical software systems, there will be certain peculiarities in the development process. Regarding software engineering, [ 2 ] aimed to examine the issues and practices that arise during model creation by looking at how developers might benefit from using or changing the standard workflow to machine learning.

Software engineering has recently used deep learning (SE). Unanswered questions remain. Li et al. [ 1 ] looked at 98 SE publications that employ deep learning to tackle these questions. Deep learning technologies have simplified 41 SE jobs across all phases. Deep learning models and their variations are utilized to answer 84.7% of SE issues in publications. Deep learning's practicality is questioned. More SE scholars may be interested in improving deep learning-based solutions in the future.

3. Methodology

In this section, we have proposed a novel framework of LSTM which can recommend the software development features based on the dataset of clients. Figure 1 shows the proposed framework workflow of the current study:

An external file that holds a picture, illustration, etc.
Object name is CIN2022-1960684.001.jpg

The proposed framework workflow.

3.1. Dataset Description

The dataset used in this study is an excel-generated synthetic dataset curated from a real BI tools' dataset. This dataset has 100 rows and 11 features with 1 output feature (i.e., rating); when the rating of software is more than 3, this will be recommended. Otherwise, it will not be recommended by the proposed model. Table 1 shows the dataset description and feature explanation.

Dataset description and feature explanation.

Table 2 shows the dataset samples from the acquired dataset as given below.

Dataset samples from the acquired dataset.

Figure 2 shows the visualization of the dataset and frequency distribution of each feature as given below.

An external file that holds a picture, illustration, etc.
Object name is CIN2022-1960684.002.jpg

Visualization of the dataset and frequency distribution of attributes.

Figure 3 shows the distribution of feature business scale with respect to large, small, and medium deployment on premise, hybrid, and cloud OS for Windows, Mac, and Linux and pricing on Freemium, open source, and enterprise.

An external file that holds a picture, illustration, etc.
Object name is CIN2022-1960684.003.jpg

Distribution of features: (a) business scale, (b) deployment, (c) OS, and (d) pricing.

3.2. Raw Data Processing

The raw data have been collected. Finally, data purification has been completed using various methods, such as deleting duplicates and null values. This technique is employed in data mining to transform unstructured data into a form suitable for analysis. It is not uncommon for data in the real world to be inconsistent or even missing. Prediction models are complicated when classifications are not dispersed uniformly throughout. The number of occurrences in each class is often the same in categorization machine learning algorithms. In the wake of this study, resampling procedures have substantially evolved. Remove records from each cluster such that the majority class records are captured and undersampling is prevented. For more diverse synthetic samples, oversampling can be utilized in place of producing identical reproductions of data from the minority classes [ 21 ]. When conducting data mining research, it is critical that our dataset is balanced and consistent. It is possible to find outliers in a dataset. An outlier in a dataset is a value that stands out from the rest because of its uniqueness. The outliers could result from reading errors, equipment faults, or human error. Before undertaking any statistical analysis or study, it must be deleted from the dataset. The analysis and subsequent treatment can be influenced by incomplete or erroneous findings from any information outliner [ 22 , 23 ].

3.3. Feature Engineering

By using data from a certain domain, learning machines can use these functions. In order to make machine learning representations of raw data, this must be done manually. Correlation matrices are used in this study to determine the correlation between the variables. Covariance matrices are the same as correlation matrices. Using the correlation, one may determine the strength of a linear link. The concept of correlation summarizes the frequency and direction of a straight-line link between two quantitative variables. Values can be represented by r , which ranges from −1 to +1.

3.4. Proposed Model

In the proposed model (shown in Figure 4 ), input sequences are feature embedded and then extracted in the contented layer. There is a hyperband optimization algorithm that can be used to distribute hyperparameter tuning for TensorFlow models in just a few lines of code in the Keras–Tuner module. For hyperparameter tuning, a validation dataset containing 10% of randomly selected samples from the training data is used. Furthermore, we employed sparse categorical accuracy as a ranking metric for optimization trials. We experimented with various batch size variables before settling on batch size = 512. Data from previous optimization stages are used to train a final model with a set of hyperparameters that is as good as it can possibly be. In order to assess the accuracy of our new recommender system, we implemented a back-testing technique.

An external file that holds a picture, illustration, etc.
Object name is CIN2022-1960684.004.jpg

Proposed model architecture.

3.4.1. Novel LSTM Cell

Long short-term memory networks are a subset of the broader category of recurrent neural networks. An example of time- or sequence-dependent behavior is language, stock prices, and power demand; recurrent neural networks seek to represent such phenomena. In order to achieve this, the output of a layer in a neural network at time t is fed back into the input of the same layer at time t  + 1. Figure 5 shows the modified recurrent units of the new version of LSTM:

An external file that holds a picture, illustration, etc.
Object name is CIN2022-1960684.005.jpg

Recurrent nodes of modified LSTM.

During training and prediction, recurrent neural networks are “unrolled” programmatically, resulting in Figure 6 .

An external file that holds a picture, illustration, etc.
Object name is CIN2022-1960684.006.jpg

Unrolled nodes.

New data are sent to the network at each time step, and the output of the previous F ($h t −1$) is also supplied, as shown in Figure 6 .

In place of the typical neural network layers, an LSTM network uses LSTM cell blocks to store information for future use. The input, forget, and output gates are all parts of these cells that will be discussed in greater depth below. Our planned LSTM cell is depicted graphically below in Figure 7 .

An external file that holds a picture, illustration, etc.
Object name is CIN2022-1960684.007.jpg

Modified cell of LSTM.

3.4.2. Input Gate

First, a tanh activation function is applied, compressing the input to a range from −1 to 1. To put it another way,

where x t U g and V g represent the input and previous cell output weights and b g represents the input bias. The g exponents do not represent an increased power but rather the weights and biases used in the input calculations (as opposed to the input gate, forget gate, output gate etc.). The output of the input gate, which is a chain of sigmoid-activated nodes, is multiplied by this compressed input, element by element:

3.4.3. Forget Gate and State Loop

Forget gate of the cell is expressed as

The product of the previous state with the forget gate yields an expression of the form (( b f + x t U f +  h t −1 V f )) as its output. Following the forget gate/state loop, the product is

3.4.4. Output Gate

The output gate of LSTM is expressed as

Finally, the product of all gates is

Recall and accuracy were utilized to assess the effectiveness of the strategies under consideration for the software development recommender system. The computations of the metrics utilized in this study are shown in Table 3 .

Description of metrics.

4. Results and Discussion

Our approach was put to the test using data from the Steam project. In order to test our strategy, there are no existing datasets that can be used for this purpose. For testing purposes, we used the most recent records as a test set and the rest of the records as training sets.

In this experiment, we used a serial filling with a time series length of T  = 12 and a dimensionality reduction with an aimed dimension k  = 50. Finally, we gave each user a list of the top 50 ( N  = 50) things. We used two separate control trials to assess the effectiveness of each component of our strategy. Neither the serial filling (noSF) nor the dimensionality reduction (noDR) was applied in one experiment.

In order to establish a baseline, we compared our method to collaborative filtering for implicit feedback (IF) and temporal decay (TD). To evaluate the correctness of our recommendations, we looked at the recall rate, whereas for determining system efficiency, we looked at training and execution times. Our final step was to examine each software's average recommendation time to see if there was a wide range of recommendation times for each method.

The recall rates for various techniques are shown in Table 4 . When IR and serial filling were tested, it was found to have a greater recall rate than the baseline techniques. Time spent in IR is shown in Table 5 . Matrix factorization is a useful way to reduce the number of dimensions in a system because the recall rate of IR was nearly the same as that of IRnoDR.

Recall rates of the proposed LSTM with different approaches.

Time of the proposed LSTM with different approaches.

Figure 8 displays the IR and Figure 9 depicts the IF distribution of the top software recommendation times. Because IR recommends more diverse items than baseline collaborative filtering, we can conclude that our approach is more diverse than baseline collaborative filtering.

An external file that holds a picture, illustration, etc.
Object name is CIN2022-1960684.008.jpg

Recommendation of LSTM with IR.

An external file that holds a picture, illustration, etc.
Object name is CIN2022-1960684.009.jpg

Recommendation of LSTM with IF.

5. Conclusions

Within the scope of this work, an LSTM-based recommendation model for interaction records was suggested. Based on the results of our evaluations, our model performed admirably in all three categories: accuracy, efficiency, and variety. In the future, we intend to evaluate the generalizability of our approach by applying it to a wide variety of datasets. In addition, we considered the total amount of time spent communicating with one another as a quality factor in this study. There is a high probability that reviews will be distorted due to the viewpoints of various individuals and types of goods. As a direct consequence of this, we ought to direct our attention going forward toward enhancing the quality of our rating vectors in the future. In order to deal with time series, we will also investigate a variety of other approaches and models.

Acknowledgments

This study could not have been started or achieved without the encouragement of Shaqra University and its continued support. The research work was supported by the College of Computing and Information Technology, Shaqra University, KSA.

Data Availability

Conflicts of interest.

The author declares no conflicts of interest.

  • Entertainment

Tau Unveils Groundbreaking Research in Logical Languages to Transform Software Development

research papers in software development

TRIESEN, LIECHTENSTEIN, Apr 12, 2024 - (ACN Newswire) -  This month, Tau has reached a pivotal milestone with the publication of  Theories and Applications of Boolean Algebras , a research paper by Ohad Asor that lays the scientific groundwork for the innovative Tau Language.

Tau Unveils Logical Languages Research

Cover of Theories and Applications of Boolean Algebras by Ohad Asor

Ohad Asor's Research: Breakthroughs in Logic and Computation

The recently published research paper by Ohad Asor, the founder and CTO of  Tau , introduces significant advancements in the field of artificial intelligence (AI) with new logical languages, such as NSO and GSSOTC, designed to surpass currently widespread machine-learning methods by enabling formal proofs and reasoning over the entirety of any software developed using Tau Language. The capabilities of Tau Language are indispensable for a wide range of AI-based software, from complex and mission-critical systems to simple applications. Asor's work successfully overcomes some of the most complex problems in the field of logic and mathematics and provides efficient methods to employ logic-based AI to tackle some of the most prevalent challenges in software development.

The research covered in Theories and Applications of Boolean Algebras stands on four pillars:

  • NSO language, addressing the long-standing challenge of self-referential logic.
  • GSSOTC, a pioneering temporal logic.
  • Decidable conservative extensions to Boolean Algebras' first-order theory.
  • Related algorithms that enable complete transformation of software development processes.

Coming Up: Tau Language Alpha Release

The publication of  Theories and Applications of Boolean Algebras  precedes the upcoming Tau Language Alpha release which will introduce core capabilities of the Tau Language. The release will be the first step in applying the team's long-standing theoretical research in practice and will mark the beginning of the Alpha testing phase of Tau's solutions for software development, decentralized applications and more.

Be the first to hear about Tau product releases by  signing up here.  Follow updates and learn more on  Twitter ,  YouTube , or  LinkedIn .

Contact Information Karolina Masilione Marketing Manager, Tau [email protected]

SOURCE:  Tau

.

View the original  press release on newswire.com.

Tau Unveils Groundbreaking Research in Logical Languages to Transform Software Development

TRIESEN, LIECHTENSTEIN, Apr 12, 2024 - (ACN Newswire) - This month, Tau has reached a pivotal milestone with the publication of Theories and Applications of Boolean Algebras, a research paper by Ohad Asor that lays the scientific groundwork for the innovative Tau Language.

Ohad Asor's Research: Breakthroughs in Logic and Computation

The recently published research paper by Ohad Asor, the founder and CTO of Tau, introduces significant advancements in the field of artificial intelligence (AI) with new logical languages, such as NSO and GSSOTC, designed to surpass currently widespread machine-learning methods by enabling formal proofs and reasoning over the entirety of any software developed using Tau Language. The capabilities of Tau Language are indispensable for a wide range of AI-based software, from complex and mission-critical systems to simple applications. Asor's work successfully overcomes some of the most complex problems in the field of logic and mathematics and provides efficient methods to employ logic-based AI to tackle some of the most prevalent challenges in software development.

The research covered in Theories and Applications of Boolean Algebras stands on four pillars:

- NSO language, addressing the long-standing challenge of self-referential logic.

- GSSOTC, a pioneering temporal logic.

- Decidable conservative extensions to Boolean Algebras' first-order theory.

- Related algorithms that enable complete transformation of software development processes.

Coming Up: Tau Language Alpha Release

The publication of Theories and Applications of Boolean Algebras precedes the upcoming Tau Language Alpha release which will introduce core capabilities of the Tau Language. The release will be the first step in applying the team's long-standing theoretical research in practice and will mark the beginning of the Alpha testing phase of Tau's solutions for software development, decentralized applications and more.

Be the first to hear about Tau product releases by signing up here. Follow updates and learn more on Twitter, YouTube, or LinkedIn.

Contact Information

Karolina Masilione

Marketing Manager, Tau

[email protected]

SOURCE: Tau

View the original press release on newswire.com.

Source: Tau

Copyright 2024 ACN Newswire . All rights reserved.

IMAGES

  1. Research Paper

    research papers in software development

  2. (PDF) Comprehensive Study of Software Testing Techniques and Strategies

    research papers in software development

  3. Methodology Examples For Research Paper

    research papers in software development

  4. 😍 Research papers in software engineering. Research paper on software

    research papers in software development

  5. (PDF) Writing good software engineering research papers

    research papers in software development

  6. (PDF) Research Publication Trends in Software Engineering

    research papers in software development

VIDEO

  1. Design Science Methodology for Information Systems and Software Engineering

  2. Professional Software Development

  3. Interruptions On Software Teams: A Comparison of Paired and Solo Programmers

  4. How to find academic research papers and analyze them using Keymate AI and ChatGPT

  5. Software reviews in Software Engineering

  6. The Art of Software

COMMENTS

  1. Software development methodologies and practices in start‐ups

    A development methodology imposes a disciplined process upon software development with the aim of making software development more predictable and more efficient . A software development methodology is a set of activities, practices or processes that an organisation uses to develop and maintain the software and the associated products (e.g ...

  2. Journal of Software Engineering Research and Development

    They wanted to define values and basic principles for better software development. On top of being brought into focus, the ... Philipp Hohl, Jil Klünder, Arie van Bennekum, Ryan Lockard, James Gifford, Jürgen Münch, Michael Stupperich and Kurt Schneider. Journal of Software Engineering Research and Development 2018 6 :15.

  3. Journal of Systems and Software

    For JSS's full CfP including information on Special Issues, Industry, Trends, and Journal First tracks please continue to read for further details. The Journal of Systems and Software publishes papers covering all aspects of software engineering. All articles should provide evidence to support …. View full aims & scope. $3670.

  4. A decade of agile methodologies: Towards explaining agile software

    A literature search in the ISI Web of Science 2 identified 1551 research papers on agile software development that were published between 2001 and 2010, inclusive. As shown in Fig. 1, the number of journal articles as well as conference papers has been steadily increasing until 2010.A plausible explanation for the decline in the number of conference publications in 2010 is that the 2010 Agile ...

  5. DevOps and software quality: A systematic mapping

    After a good quantity of research paper has been obtained the research paper are further classified into relevant categories. The filtered papers are screened thoroughly and the best papers are selected for the further research into the subject. ... RQ7: Does DevOps practices bridge development of software and software quality assurance? The ...

  6. Full article: Design and management of software development projects

    We usedsoftware development project data fromLi (Citation 2008),which the authors used in anSD model for their research.Because our study is also focused on project development with SD modelling, we found this data relevant tovalidate our decision-making model. This dataset contains project information such asthe number of tasks in the project ...

  7. PDF Secure Software Development Methodologies: A Multivocal Literature Review

    different methodologies have been proposed to address software security, recent research shows an increase in the number of vulnerabilities in software and data breaches. Therefore, the security practices incorporated in secure software development methodologies require investigation. This paper provides an overview of security practices ...

  8. Software Development Analytics in Practice: A Systematic Literature

    Software development analytics is a research area concerned with providing insights to improve product deliveries and processes. Many types of studies, data sources and mining methods have been used for that purpose. This systematic literature review aims at providing an aggregate view of the relevant studies on Software Development Analytics in the past decade, with an emphasis on its ...

  9. Full article: The evolution of software development orchestration

    1. Introduction. In a provocatively titled opinion editorial in the Wall Street Journal - "Why Software is Eating the World" - former Netscape co-founder turned venture capitalist Marc Andreessen enumerated a range of industries that were being upended by software and software-powered technology models (Andreessen, Citation 2011).Indeed the period immediately preceding the opinion ...

  10. Research on Various Software Development Lifecycle Models

    Software development life cycle models define a guideline for the design, development and testing of the software. These models ensure that software meets the customer requirements and is developed within the given timeframe and budget. There are various SDLC models used for software development. This paper describes various types of ...

  11. (PDF) SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC) ANALYTICAL ...

    This research concerned with the software management processes that examine the area of software development through the development models, which are known as software development life cycle ...

  12. software engineering Latest Research Papers

    End To End . Predictive Software. The paper examines the principles of the Predictive Software Engineering (PSE) framework. The authors examine how PSE enables custom software development companies to offer transparent services and products while staying within the intended budget and a guaranteed budget.

  13. Agile Software Development: Methodologies and Trends

    Paper —Agile Software Development: Methodologies and Trends. [1] IEEE defined the software engineering as the application of a systematic, disci-. plined, quantifiabl e approach to the ...

  14. Development of Software Engineering: A Research Perspective

    In the past 40 years, software engineering has emerged as an important sub-field of computer science and has made significant contribution to the software industry. Now it is gradually becoming a new independent discipline. This paper presents a survey of software engineering development from a research perspective. Firstly, the history of software engineering is reviewed with focus on the ...

  15. (PDF) Research Process on Software Development Model

    In XP model, the whole development process is di vided into six phases and is shown as figure 6. The core ideas of the model are a set of values, principles and practices for rapidly developing ...

  16. Theories in Agile Software Development: Past, Present, and Future

    While analyzing publications on agile software development in the Scopus database from the last decade, we found that only 7% of the papers used or developed a theory. This trend seems stable. However, it is promising that most theory-centric studies use or propose theories to address cognitive and behavioral aspects of people working in agile ...

  17. Applying and Researching DevOps: A Tertiary Study

    Abstract: DevOps is an emerging software development methodology, that differs from more traditional approaches due to the closer involvement of the customer and the adoption of " continuous-*" (e.g., integration, deployment, delivery, etc.) practices.The vast research on DevOps (including numerous secondary studies) published in a short timeframe, and the diversity of the authors ...

  18. A Comprehensive Research Analysis of Software Development Life Cycle

    The research analyzes the advantages and disadvantages of prominent SDLC models and critically evaluates the inherent disadvantages of these models, focusing on potential shortcomings that may impact software quality engineering efforts. - The Software Development Life Cycle (SDLC) is a fundamental framework that governs the process of software development, encompassing planning, design ...

  19. Software Engineering

    Software Engineering. At Google, we pride ourselves on our ability to develop and launch new products and features at a very fast pace. This is made possible in part by our world-class engineers, but our approach to software development enables us to balance speed and quality, and is integral to our success. Our obsession for speed and scale is ...

  20. Assessing System Quality Changes during Software Evolution: The ...

    Design patterns provide solutions to recurring problems in software design and development, promoting scalability, readability, and maintainability. While past research focused on the utilization of the design patterns and performance, there is limited insight into their impact on program evolution. Dependency signifies relationships between program elements, reflecting a program's structure ...

  21. (PDF) Software Development Methodologies

    A software development methodology is a way of managing a software development project. This. typically address issues like selecting features for inclusion in the current version, when software ...

  22. Impact of software development processes on the ...

    Given the inconsistent results and methodologies reported in the existing body of knowledge (Table 1), further experimental evidence is necessary before the effectiveness of different development methods on the outcomes of student projects can be reliably evaluated.Our study complements the previous research in this area, by taking a more systematic approach to the assessment of sequential and ...

  23. Trends in Intelligent and AI-Based Software Engineering Processes: A

    While search-based software engineering is a more recent development, the field's history of work in probabilistic reasoning and machine learning for software engineering is well-established. For the purpose of this paper, the author examined some of the connections between these two areas of research, claiming that they share many characteristics.

  24. Tau Unveils Groundbreaking Research in Logical Languages to ...

    The recently published research paper by Ohad Asor, the founder and CTO of Tau, introduces significant advancements in the field of artificial intelligence (AI) with new logical languages, such as ...

  25. Tau Unveils Groundbreaking Research in Logical Languages ...

    The recently published research paper by Ohad Asor, the founder and CTO of Tau, introduces significant advancements in the field of artificial intelligence (AI) with new logical languages, such as NSO and GSSOTC, designed to surpass currently widespread machine-learning methods by enabling formal proofs and reasoning over the entirety of any ...

  26. Software Development Life Cycle Models-A Comparative Study

    In this study, the Software Development Life Cycle (SDLC) research method was chosen in the design, implementation, and testing of the SCIS system [29]. SDLC is a methodology used in software ...

  27. Unraveling public perceptions of the Sustainable Development ...

    Public participation is crucial for policy-making and can contribute to strengthening democracies and decision-making. Public participation can help to address sustainability challenges and plays a key role in attaining the Sustainable Development Goals (SDGs). While the SDGs are policy concepts, there has been limited research conducted on how the public perceives the SDGs.