Chap 1
Chap 1
Software is more than just a program code. A program is an executable code, which serves
some computational purpose. Software is considered to be a collection of executable
programming code, associated libraries, and documentation. Software, when made for a
specific requirement is called a software product.
Engineering on the other hand, is all about developing products, using well-defined, scientific
principles and methods systematically and syntactically.
So, we can define software engineering as an engineering branch associated with the
development of software product using well-defined scientific principles, methods and
procedures. The outcome of software engineering is an efficient and reliable software product.
• Large software - It is easier to build a wall than to a house or building, likewise, as the size of
software become large engineering has to step to give it a scientific process.
• Scalability- If the software process were not based on scientific and engineering concepts, it
would be easier to re-create new software than to scale an existing one.
• Cost- As hardware industry has shown its skills and huge manufacturing has lower down the
price of computer and electronic hardware. But the cost of software remains high if the proper
process is not adapted.
• Dynamic Nature- The always growing and adapting nature of software hugely depends upon
the environment in which the user works. If the nature of software is always changing, new
enhancements need to be done in the existing one. This is where software engineering plays a
good role.
• Quality Management- Better process of software development provides better and quality
software product.
Software Development VS Software Engineering
Software development primarily focuses on writing code, testing, and implementing software
applications or systems. It involves tasks like coding, debugging, and ensuring that the software
meets specified requirements. Developers are primarily concerned with the technical aspects of
creating software solutions. It is the subset of software engineering
On the other hand, software engineering encompasses a broader set of activities. While it
includes software development, it also emphasizes systematic approaches to the entire
software development lifecycle. This includes requirements engineering, design patterns,
architecture, testing strategies, and project management. It is the comparative analysis of
software with complete documentation.
A software product is a software that has been developed and maintained for the benefit of a
user base and often to satisfy a need in the market.
Software Products are nothing but software systems delivered to the customer with
documentation that describes how to install and use the system.
• Less expensive.
• More reliable.
• Immediate installation.
• More user-friendly.
• User requirement not completely satisfied.
• Can not accommodate future changes.
• Responsibility is of the user.
• Can take feedback from users.
• Available resources are used.
• If software fails it is recovered in less time (reliable).
2. Customized Products: Customized products are the systems that are commissioned
by a particular customer. Some contractor develops the software for that customer.
1. Reduce complexity: Dealing with big Software is very complicated and challenging.
Thus, to reduce the complications of projects, software engineering has great solutions.
It simplifies complex problems and solves those issues one by one.
2. To minimize cost: Minimizing software engineering costs involves smart resource use,
lean practices, and affordable tech choices. Streamline development, manage risks, and
outsource non-core tasks wisely. Monitor expenses closely and encourage team
knowledge sharing. These steps ensure cost control and quality software delivery.
3. To decrease time: If you don't follow the right procedures, it can waste a lot of time.
Developing complex software requires running a lot of code which takes time if not
managed properly. However, if you use the correct software engineering methods, it can
save you time by reducing the workload.
4. Handling big projects: Big projects need lots of patience, planning, and management,
which you never get from any company. The company will invest its resources;
therefore, it should be completed within the deadline. It is only possible if the
company uses software engineering to deal with big projects without problems.
5. Reliable software: The Software will be reliable if software engineering, testing, and
maintenance are given. As a software developer, you must ensure that the Software
is secure and will work for the period or subscription you have agreed upon.
6. Effectiveness. Effectiveness in software engineering is achieved through various
strategies and practices that ensure the successful delivery of high-quality software
solutions.
Ethics: