A Survey on Different Approaches to Automating the Design Phase in the Software Development Life Cycle

2022 ◽  
pp. 542-564
Author(s):  
Sahana Prabhu Shankar ◽  
Harshit Agrawal ◽  
Naresh E.

Software design is a basic plan of all elements in the software, how they relate to each other in such a way that they meet the user requirements. In software development process, software design phase is an important phase as it gives a plan of what to do and how to do it during the implementation phase. As the technology is evolving and people's needs in the technological field are increasing, the development of software is becoming more complex. To make the development process somewhat easy, it is always better to have a plan which is followed throughout the process. In this way, many problems can be solved in the design phase, for which a number of tools and techniques are present. One is known as Design Patterns. In software engineering, a design pattern is a general solution to commonly occurring problems in software design. A design pattern isn't a finished design that can be transformed directly into code.

Author(s):  
Sahana Prabhu Shankar ◽  
Harshit Agrawal ◽  
Naresh E.

Software design is a basic plan of all elements in the software, how they relate to each other in such a way that they meet the user requirements. In software development process, software design phase is an important phase as it gives a plan of what to do and how to do it during the implementation phase. As the technology is evolving and people's needs in the technological field are increasing, the development of software is becoming more complex. To make the development process somewhat easy, it is always better to have a plan which is followed throughout the process. In this way, many problems can be solved in the design phase, for which a number of tools and techniques are present. One is known as Design Patterns. In software engineering, a design pattern is a general solution to commonly occurring problems in software design. A design pattern isn't a finished design that can be transformed directly into code.


Author(s):  
Gary P. Moynihan ◽  
Bin Qiao ◽  
Matthew E. Elam ◽  
Joel Jones

The purpose of this research was to apply an artificial intelligence approach to improve the efficiency of design pattern selection used in the development of object-oriented software. Design patterns provide a potential solution to the limitations occurring with traditional software design approaches. Current methods of design pattern selection tend to be intuitive, and based on the experience of the individual software engineer. This expertise is very specialized and frequently unavailable to many software development organizations. A prototype expert system was developed in order to automate this process of selecting suitable patterns to be applied to the design problem under consideration. It guides the designer through the pattern selection process through inquiry regarding the nature of the design problem. The prototype system also provides the capabilities to browse patterns, view the relationship between patterns, and generate code based on the pattern selected. The routine application of such a system is viewed as a means to improve the productivity of software development by increasing the use of accepted design patterns.


Author(s):  
Gary P. Moynihan ◽  
Bin Qiao ◽  
Matthew E. Elam ◽  
Joel Jones

The purpose of this research was to apply an artificial intelligence approach to improve the efficiency of design pattern selection used in the development of object-oriented software. Design patterns provide a potential solution to the limitations occurring with traditional software design approaches. Current methods of design pattern selection tend to be intuitive, and based on the experience of the individual software engineer. This expertise is very specialized and frequently unavailable to many software development organizations. A prototype expert system was developed in order to automate this process of selecting suitable patterns to be applied to the design problem under consideration. It guides the designer through the pattern selection process through inquiry regarding the nature of the design problem. The prototype system also provides the capabilities to browse patterns, view the relationship between patterns, and generate code based on the pattern selected. The routine application of such a system is viewed as a means to improve the productivity of software development by increasing the use of accepted design patterns.


2020 ◽  
Vol 8 (1) ◽  
pp. 92-107
Author(s):  
Bilal Hussein ◽  
Aref Mehanna ◽  
Yahia Rabih

Design patterns of today play a fundamental role in software development and implementation and provide a wide range of design solutions for recurring problems. Most research in this area focus on the creation and update of design patterns in order to fill all the gaps produced by their original structures. The purpose of this article is to present the visitor design pattern, to show its advantages in the software development process, and to provide it in a new version that allows the software to be easily upgraded without making complex modifications. This contribution consists in updating the structure and implementation of the Visitor design pattern using the reflection mechanism.


2020 ◽  
Vol 12 (20) ◽  
pp. 8404
Author(s):  
Kawther Saeedi ◽  
Monirah Dakilallah Almalki ◽  
Dania Aljeaid ◽  
Anna Visvizi ◽  
Muhammad Ahtisham Aslam

An emerging technology with a secure and a decentralized nature, blockchain has the potential to transform conventional practices in an efficient and dynamic manner. However, migrating to blockchain can be challenging due to the complexity of its infrastructure and processes. The complexity of building applications on blockchain has been highlighted by many studies, thus stressing the need to investigate practical solutions further. A commonly known software engineering concept, software design pattern contributes to the acceleration of software development. It offers a holistic reusable solution for commonly occurring problems in a given context. It helps to identify problems that occur repetitively and describes best practices to address them. The present study is one of the first investigations to inquire into design patterns for blockchain application. Seeking to reduce the complexity in understanding and building applications on blockchain, this paper identifies a design pattern elicitation framework from similar blockchain applications. Next, it provides a demonstration of the Proof of Integrity (PoI) pattern elicited from two different applications on the blockchain. The applicability of the pattern is evaluated by building a blockchain application to verify the integrity of the academic certificates and by explaining how this integrity has been achieved empirically.


Ethical hackers are using different tools and techniques to encounter malicious cyber-attacks generated by bad hackers. During the software development process, development teams typically bypass or ignore the security parameters of the software. Whereas, with the advent of online web-based software, security is an essential part of the software development process for implementing secure software. Security features cannot be added as additional at the end of the software deployment process, but they need to be paid attention throughout the SDLC. In that view, this paper presents a new, Ethical Hacking -Software Development Life Cycle (EH-SDLC) introducing ethical hacking processes and phases to be followed during the SDLC. Adopting these techniques in SDLC ensures that consumers find the end-product safe, secure and stable. Having a team of penetration testers as part of the SDLC process will help you avoid incurring unnecessary costs that come up after the data breach. This research work aims to discuss different operating systems and tools in order to facilitate the secure execution of the penetration tests during SDLC. Thus, it helps to improve the confidentiality, integrity, and availability of the software products.


2022 ◽  
pp. 819-834
Author(s):  
Nayem Rahman

Software development projects have been blamed for being behind schedule, cost overruns, and the delivery of poor quality product. This paper presents a simulation model of a data warehouse to evaluate the feasibility of different software development controls and measures to better manage a software development lifecycle, and improve the performance of the launched software. This paper attempts to address the practical issue of code defects in each stage of data warehouse application development. The author has compared the defect removal rate of their previous project to the newly proposed enhanced project development life cycle that uses code inspection and code scorecard along with other phases of software development life cycle. Simulation results show that the code inspection and code score-carding have achieved a significant code defect reduction. This has also significantly improved the software development process and allowed for a flawless production execution. The author proposes this simulation model to a data warehouse application development process to enable developers to improve their current process.


Author(s):  
CLAES WOHLIN ◽  
ANDERS WESSLÉN ◽  
PER RUNESON

This paper presents a method proposal for estimation of software reliability before the implementation phase. The method is based upon that a formal specification technique is used and that it is possible to develop a tool performing dynamic analysis, i.e., locating semantic faults in the design. The analysis is performed with both applying a usage profile as input as well as doing a full analysis, i.e., locate all faults that the tool can find. The tool must provide failure data in terms of time since the last failure was detected. The mapping of the dynamic failures to the failures encountered during statistical usage testing and operation is discussed. The method can be applied either on the software specification or as a step in the development process by applying it on the software design. The proposed method allows for software reliability estimations that can be used both as a quality indicator, and for planning and controlling resources, development times, etc. at an early stage in the development of software systems.


2020 ◽  
Vol 2 (1) ◽  
pp. 76-88
Author(s):  
Ririn Perwitasari ◽  
Royana Afawani ◽  
Sri Endang Anjarwani

The Rational Unified Process (RUP) method is an iterative and incremental software development method that focuses on architecture. The RUP method will be used in the development of a medical check-up information system on a Citra medical center because this method is proactively able to resolve the project risks associated with the client's evolving requirements requiring careful change request management. Less time is required for integration as the process of integration goes on throughout the software development life cycle and the development time required is less due to using of components over and over. RUP involves The client’s in The system development process, so the result will be accordance with client  wishes. The system built is expected to make it easier for employees to manage patient data from anywhere and anytime.


Author(s):  
Naveen N Kulkarni Et.al

Software Requirements Engineering (SRE) process define software manuscripts with sustaining Software Requirement Specification (SRS) and its activities. SRE comprises many tasks requirement analysis, elicitation, documentation, conciliation and validation. Natural language is most popular and commonly used to form the SRS document. However, natural language has its own limitations wrt quality approach for SRS. The constraints include  incomplete, incorrect, ambiguous, and inconsistency. In software engineering, most applications are object-oriented. So requirements are unlike problem domain need to be developed. So software  documentation is completed in such a way that, all authorized users like clients, analysts, managers, and developers can understand it. These are the basis for success of any planned project. Most of the work is still dependent on intensive human (domain expert) work. consequences of the project success still depend on timeliness with tending errors. The fundamental quality intended for each activity is specified during the software development process. This paper concludes critically with best practices in writing SRS. This approach helps to mitigate SRS limitation up to some extent. An initial review highlights capable results for the proposed practices


Sign in / Sign up

Export Citation Format

Share Document