Subject Name: Software Engineering (BE)
Question : What is Software Engineering? What is Process? What is Product?
What is Software Engineering?
What is Process?
Software Development Lifecycle or SDLC is a series of stages in software engineering to develop proposed software application, such as:
What is Product?
Types of software products:
Software products fall into two broad categories:
1. Generic products:
Essential characteristics of Well-Engineered Software Product:
Question : What is Software Engineering? What is Process? What is Product?
What is Software Engineering?
Software engineering is a detailed study of engineering to the design, development and maintenance of software. Software engineering was introduced to address the issues of low-quality software projects. Problems arise when a software generally exceeds timelines, budgets, and reduced levels of quality. It ensures that the application is built consistently, correctly, on time and on budget and within requirements. The demand of software engineering also emerged to cater to the immense rate of change in user requirements and environment on which application is supposed to be working.
What is Process?
Software Development Lifecycle or SDLC is a series of stages in software engineering to develop proposed software application, such as:
- Communication
- Requirement Gathering
- Feasibility Study
- System Analysis
- Software Design
- Coding
- Testing
- Integration
- Implementation
- Operations and maintenance
- Disposition
Software engineering generally begins with the first step as a user-request initiation for a specific task or an output. He submits his requirement to a service provider organization. The software development team segregates user requirement, system requirement and functional requirements. The requirement is collected by conducting interviews of a user, referring to a database, studying the existing system etc. After requirement gathering, the team analyses if the software can be made to fulfil all the requirements of the user. The developer then decides a roadmap of his plan. System analysis also includes an understanding of software product limitations. As per the requirement and analysis, a software design is made. The implementation of software design starts in terms of writing program code in a suitable programming language. Software testing is done while coding by the developers and thorough testing is conducted by testing experts at various levels of code such as module testing, program testing, product testing, in-house testing and testing the product at user’s engagement and feedback.
What is Product?
Software Products are nothing but software systems delivered to the customer with the documentation that that describe how to install and use the system. In certain cases, software products may be part of system products where hardware, as well as software, is delivered to a customer. Software products are produced with the help of the software process. The software process is a way in which we produce software.
Types of software products:
Software products fall into two broad categories:
1. Generic products:
Generic products are the stand-alone systems that are developed by a production unit and sold on the open market to any customer who is able to buy them.
2. Customised Products:
Customised products are the systems that are commissioned by a particular customer. Some contractor develops the software for that customer.
A well-engineered software product should possess the following essential characteristics:
- Efficiency:
- The software should not make wasteful use of system resources such as memory and processor cycles.
- Maintainability:
- It should be possible to evolve the software to meet the changing requirements of customers.
- Dependability:
- It is the flexibility of the software that ought to not cause any physical or economic injury within the event of system failure. It includes a range of characteristics such as reliability, security and safety.
- In time:
- Software should be developed well in time.
- Within Budget:
- The software development costs should not overrun and it should be within the budgetary limit.
- Functionality:
- The software syatem should exhibit the proper functionality, i.e, it should perform all the functions it is supposed to perform.
- Adaptability:
- The software system should have the ability to get adapted to a reasonable extent with the changing requirements.