- Software is extra than simply a program code.
- Engineering is developing products, using well-defined, scientific principles and methods
- Engineering approach to develop a software.
the program just like addition, subtraction but the collection of them is software.
software engineering is an engineering branch related to the development of software products using properly defined scientific principles, techniques, and procedures.
The final result of software engineering is an efficient and reliable software product.
This software needs to fulfill on the following grounds:
- Operational: How well work.
- Transitional: This factor is important when the software is moved to other platforms and cross-checked its compatibility on different platforms.
- Maintainance: This aspect briefs about how well software has the capability to maintain itself in the ever-changing environment.
Software Engineering is required due to
- To manage Large software
- For more scalability
- Cost Management
- To manage the dynamic nature of software
- For better quality Management
Need for Software Engineering
- Huge Programming: It is simpler to manufacture a wall than to a house or building, similarly, as the measure of programming becomes extensive engineering has to step to give it a scientific process.
- Adaptability: If the software procedure were not based on scientific and engineering ideas, it would be simpler to recreate new software than to scale an existing one.
- Cost: The cost of electronics hardware has come down but due to lack of due process, the cost of programming is more.
- Dynamic Nature: The ever-increasing and favorable nature of programming depends on the environment in which the client works. New upgrades to the software must be done in parallel in the same way as the quality of software is constantly changing.
- Quality Management: The process of quality software products is possible only when the process of software development is also very advanced.
Importance of Software Engineering
- Reduced Complexity : Software Engineering has a great solution to reduce the complication of any project and divides big problems into various small issues, and the start of solving each small issue one by one. All these problems are solved independently to each other.
- Minimize Software Cost : A lot of manpower is required to develop software with a large number of codes. Software Engineering, all those things that are unnecessary is removed or decreased. In turn, the cost for software production becomes less as compared to any software that does not use the software engineering method.
- Decrease Time : Anything that is not made according to plan, the project always wastes time.software engineering will decrease a lot of time.
- Handling Big Project : Big projects are not done in a couple of days, and they need lots of patience, planning, and management.
- Reliable Software : Software should be secure, and if any bugs come in the software, the company is responsible for solving all these bugs.
- Effectiveness : Effectiveness comes if anything has made according to the standards. So, Software becomes more effective in the act with the help of software engineering
Paradigms of Software Development
- The Waterfall Approach
- Formal Transformation
- Evolutionary Development
- System assembly from reusable components
Software Evolutions Laws
Lehman has given laws for software evolution
- S-type (Static Type): Defined specifications and solutions.
- P-type (Practical Type): Collection of procedures.
- E-type (Embedded Type): This software has a high degree of evolution, works closely as the requirement of the real-world environment
Project risk factor is considered in ?
- Waterfall Model
- Iterative Model
- Spiral Model
- Prototyping Model
Answer:- Spiral Model
- Software Development Life Cycle
- Requirement Analysis
- Software Project Management
- Software Design
- Coding and Testing
- Quality Management, Reuse