Written by students who passed Immediately available after payment Read online or as PDF Wrong document? Swap it for free 4.6 TrustPilot
logo-home
Other

Notes of software engineering

Rating
-
Sold
-
Pages
516
Uploaded on
15-05-2023
Written in
2022/2023

Notes of software engineering that describe rules and concepts of software enginnering. it describe about how a software is build.

Institution
Course

Content preview

Module
1
Introduction to Software
Engineering

Version 2 CSE IIT, Kharagpur

, Lesson
1
Basic Issues in Software
Engineering

Version 2 CSE IIT, Kharagpur

,Specific Instructional Objectives
At the end of this lesson the student will be able to:

• Identify the scope and necessity of software engineering.
• Identify the causes of and solutions for software crisis.
• Differentiate a piece of program from a software product.

Scope and necessity of software engineering
Software engineering is an engineering approach for software development. We
can alternatively view it as a systematic collection of past experience. The
experience is arranged in the form of methodologies and guidelines. A small
program can be written without using software engineering principles. But if one
wants to develop a large software product, then software engineering principles
are indispensable to achieve a good quality software cost effectively. These
definitions can be elaborated with the help of a building construction analogy.

Suppose you have a friend who asked you to build a small wall as shown in fig.
1.1. You would be able to do that using your common sense. You will get building
materials like bricks; cement etc. and you will then build the wall.




Fig. 1.1: A Small Wall

But what would happen if the same friend asked you to build a large multistoried
building as shown in fig. 1.2?




Fig. 1.2: A Multistoried Building
You don't have a very good idea about building such a huge complex. It would be
very difficult to extend your idea about a small wall construction into constructing
a large building. Even if you tried to build a large building, it would collapse
because you would not have the requisite knowledge about the strength of
materials, testing, planning, architectural design, etc. Building a small wall and
building a large building are entirely different ball games. You can use your
intuition and still be successful in building a small wall, but building a large


Version 2 CSE IIT, Kharagpur

, building requires knowledge of civil, architectural and other engineering
principles.

Without using software engineering principles it would be difficult to develop large
programs. In industry it is usually needed to develop large programs to
accommodate multiple functions. A problem with developing such large
commercial programs is that the complexity and difficulty levels of the programs
increase exponentially with their sizes as shown in fig. 1.3. For example, a
program of size 1,000 lines of code has some complexity. But a program with
10,000 LOC is not just 10 times more difficult to develop, but may as well turn out
to be 100 times more difficult unless software engineering principles are used. In
such situations software engineering techniques come to rescue. Software
engineering helps to reduce the programming complexity. Software engineering
principles use two important techniques to reduce problem complexity:
abstraction and decomposition.




Fig. 1.3: Increase in development time and effort with problem size

The principle of abstraction (in fig.1.4) implies that a problem can be simplified by
omitting irrelevant details. In other words, the main purpose of abstraction is to
consider only those aspects of the problem that are relevant for certain purpose
and suppress other aspects that are not relevant for the given purpose. Once
the simpler problem is solved, then the omitted details can be taken into
consideration to solve the next lower level abstraction, and so on. Abstraction is
a powerful way of reducing the complexity of the problem.

The other approach to tackle problem complexity is decomposition. In this
technique, a complex problem is divided into several smaller problems and then
the smaller problems are solved one by one. However, in this technique any
random decomposition of a problem into smaller parts will not help. The problem



Version 2 CSE IIT, Kharagpur

Written for

Institution
Course

Document information

Uploaded on
May 15, 2023
Number of pages
516
Written in
2022/2023
Type
OTHER
Person
Unknown

Subjects

$16.49
Get access to the full document:

Wrong document? Swap it for free Within 14 days of purchase and before downloading, you can choose a different document. You can simply spend the amount again.
Written by students who passed
Immediately available after payment
Read online or as PDF

Get to know the seller
Seller avatar
rajatsachdeva1

Get to know the seller

Seller avatar
rajatsachdeva1 punjab technical university
Follow You need to be logged in order to follow users or courses
Sold
-
Member since
2 year
Number of followers
0
Documents
1
Last sold
-

0.0

0 reviews

5
0
4
0
3
0
2
0
1
0

Recently viewed by you

Why students choose Stuvia

Created by fellow students, verified by reviews

Quality you can trust: written by students who passed their tests and reviewed by others who've used these notes.

Didn't get what you expected? Choose another document

No worries! You can instantly pick a different document that better fits what you're looking for.

Pay as you like, start learning right away

No subscription, no commitments. Pay the way you're used to via credit card and download your PDF document instantly.

Student with book image

“Bought, downloaded, and aced it. It really can be that simple.”

Alisha Student

Working on your references?

Create accurate citations in APA, MLA and Harvard with our free citation generator.

Working on your references?

Frequently asked questions