IndexAbstractSoftware EvolutionSoftware PadigmSOFTWARE ENGINEERINGSay no to plagiarism. Get a tailor-made essay on "Why Violent Video Games Shouldn't Be Banned"? Get Original Essay RAMAJAYAM.G (Professor of Sri Krishna Adithya College of Arts and Science) Abstract In this article we will look at software engineering and how it works in today's world. It deals with new software technologies and the process in which software manipulates the environment. Software engineering combines the development of software products, principles and methods. Software product development includes numerous procedures and methods that must be followed before executing a software product. The methods needed to design software engineering are the software paradigm which is based on two basic principles or concepts. SDLC: The software development life cycle is a well-defined process and describes the phases of software engineering and software product development. Each lifecycle process has its own role and process of performing its task in various fields. It is not a one-way process, each task must be performed in sequential order to develop a software product. Today, computer software is the most important technology on the world stage. We will take a look at the evolution of software, software paradigms, characteristics of a software, SDLC (software development life cycle process) and the general benefits of software engineering. Introduction: The term software engineering is a combination of two words, software and engineering. The term software is simply defined as program code. A program is said to be executable code, for computational purposes. The software is a collection of executable programming code, associated libraries, and documentation. It is made for a specific requirement called a software product. On the other hand, engineering is about developing products, using well-defined scientific principles and methods. The efficient and reliable software product is the result of software engineering.[1] Software engineering is a branch of engineering associated with the development of software products using well-defined scientific principles, methods and procedures. Software project management has a broader scope than the software engineering process as it involves pre- and post-delivery communication and support. Software engineering was mainly introduced to address the problems of low-quality software projects. The problem arises when software generally overruns deadlines, budgets and low quality levels.[2] Software engineering is a multi-layered technology, and the foundation is the process layer. The basis of the software process that forms the management control of software projects and introduces the concept in which technical methods are applied, work products (templates, documents, reports, data, forms, etc.) are produced. Software engineering tools provide two types of support: automated or semi-automated for the process and methods. When tools are integrated, information created by one tool can be used by another, a system to support software development, called computer-aided software engineering.[1] The IEEE defines software engineering as the application of a systematic, disciplined, and quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. [2] Software Evolution Software evolution refers to the process of developing a software product using software engineering principles and methods. It includes itinitial development of software products and their maintenance, updates, development of the software product that meets the necessary requirements. Evolution begins with the requirements gathering process. When this process is completed, developers create a prototype of the intended software and show it to users to get their feedback in the early stage of software development product. Users can also suggest changes over several consecutive updates and maintenance continues to change. This process switches to the original software, until the suitable software is completed. Even when the user has the right software in hand, trends in technological progress and upcoming needs force the software product to change accordingly. It is not possible to recreate the software with the requirements. The only feasible and cost-effective solution is to update existing software to match the latest software requirements.[2] Software Paradigms The methods and steps needed to design software are known as software paradigms. There are many methods proposed in software paradigms and they are in operation today, but the most important thing is that we need to see where the software engineering paradigms lie. These can be combined in various combinations, although each of them is contained within each other. The programming paradigm is a subset of the software design paradigm which is also a subset of the software development paradigm. Software development paradigm. This paradigm is known as software engineering paradigms where all engineering concepts are applied for software development. It also includes various research and requirements gathering that helps create the software product. The software development paradigm consists of: • Requirements gathering • Software design • Programming Programming paradigm. This programming is similarly related to the programming aspect of software development. This includes: • Coding • Testing • Integration Software design paradigm. This paradigm is part of software development and consists of: • Design • Maintenance • Programming.[2] Characteristics of a good software The software product can be evaluated based on how the software can be designed and how it can be used. This software must meet the following conditions: • Operational • Transient • Maintenance A well-made and well-designed software has the following characteristics: 1. Operational. This method indicates the operating system of the software. Can be measured on: • Budget • Usability • Efficiency • Correctness • Functionality • Reliability • Safety • Security 2. Transient. This method is important when software moves from one platform to another • Portability • Interoperability • Reusability • Adaptability 3. Maintenance This method works based on how the software has the ability to maintain itself in a changing environment • Modularity • Maintainability • Flexibility •Scalability[ 2] Software Development Life Cycle: SDLC Process SDLC is a well-defined process and structured sequence of steps in software engineering to develop the software product. SDLC provides a series of steps to follow to design and develop a software product. This framework includes the following steps • Communication Communication is the first step where the user makes the request for the desired software product. Contact the service provider, try to negotiate the terms and submit your request to the service. • Gathering of requirements. The software development team works to move the project forward at this stage. The team discusses and tries to bring out various possible information. The requirements come thencovered and separated into user requirements, system requirements and functional requirements. Requirements are collected through different practices such as -> Studying existing software, -> Conducting user and developer interviews, -> Database referencing or -> Collecting responses from questionnaires. • Flexibility study Once the requirements gathering process is finished, the team develops a rough plan of the software process. In this phase the team first analyzes whether it is possible to create software to satisfy all the user's needs. There are many algorithms that help developers conclude the feasibility of a software project. • System analysis. In this phase the developers decide on a roadmap of their plan and try to create the right model for the project. System analysis includes the following capabilities such as understanding software product limitations, learning system issues, or changes to be made to existing systems. The project team analyzes the project scope and plans resources and plans accordingly. • Software Design The next process is to bring out the entire knowledge of the requirements, analysis and design of the software product. User inputs and information collected in the requirements gathering phase are the inputs of this phase. The result of these steps comes in two design forms; logical design and physical design. • Coding This phase is also called programming phase. Implementing software design begins with writing program code in the appropriate programming language and developing error-free programs. • Testing Software testing is done during coding by developers and testing is conducted by testing experts at various levels of code like module testing, program testing, product testing. One estimate states that 50% of the entire software development process should be tested. • Integration Software must be integrated with libraries, databases, and other programs. The SDLC life cycle is involved in the integration of software with entities from the outside world. • Deployment The deployment process includes the process of installing software on users' machines. The software requires post-installation configuration by the user. The software is tested for adaptability and portability, and integration issues are resolved during the implementation process. • Operation and maintenance This phase confirms the operation of the software in terms of greater efficiency and fewer errors. The software is maintained by updating the code according to ongoing changes in technology. • Layout Over time, the software may degrade in performance. It may become completely obsolete or may require extensive updating. Therefore, there is an urgent need to eliminate an important part of the system. This phase includes archiving the required data and software components, shutting down the system, planning the disposal activity, and shutting down the system at the appropriate system end time[2]. Advantage of Software Engineering The need for software engineering arises due to the increased rate of change in user requirements and the environment on which the software works. • Large software It is much easier to build a wall than a house or building, similarly the size of the software becomes a big engineering step to give a scientific process. • Scalability If the software process is not based on scientific and engineering concepts, it would be easier to create new software. • Cost The cost of the software
tags