Software Engineering: Introduction, Motivation and Its Significance

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

Software Engineering: Introduction,

Motivation and its Significance


Shashank Gupta
BITS Pilani Assistant Professor
Pilani Campus
Department of Computer Science and Information Systems
Exploratory Software Development

Style of New Developers.

Errors are resolved in several


random iterations.

2
BITS Pilani, Pilani Campus
Exploratory Software Development

3
BITS Pilani, Pilani Campus
Exploratory Software Development

4
BITS Pilani, Pilani Campus
Reason for breakdown of
Exploratory S/W Development

Humans perform interpretation based


on Human Cognition Mechanism.
• Short Term Memory and Long Term Memory

Information stored in short term


memory get lost as the time evolves.

5
BITS Pilani, Pilani Campus
Software Engineering Principles for
Handling Complexity

Abstraction
Decomposition

6
BITS Pilani, Pilani Campus
Abstraction (also known as Model
Building)

Makes problem simpler by neglecting


needless information.

Much emphasis is only on one side of the


problem, however overlooking other sides.

7
BITS Pilani, Pilani Campus
Multiple-Level Abstraction

Numerous abstractions of similar problem can


be generated.

Diverse categories of models facilitate in


understanding numerous aspects of the
problem.

8
BITS Pilani, Pilani Campus
Abstraction Related to Complex
Problems

A single level of abstraction is


inadequate.

A chain of abstractions needs to be


designed.

9
BITS Pilani, Pilani Campus
Example

10
BITS Pilani, Pilani Campus
Decomposition

It decomposes a problem into numerous


small autonomous parts.

The small parts are solved separately in


some specified sequence.
• Small solutions get merged to generate the final
solution.
11
BITS Pilani, Pilani Campus
Decomposition

Random decomposition of a problem


must be omitted.

The decomposed parts must be more


or less independent of each other.

12
BITS Pilani, Pilani Campus
Motivation for Studying Software
Engineering

Controlling of exponential progress in


difficulty with size of the problem.

Systematic techniques based on


Abstraction and Decomposition.
• Small solutions get merged to generate the final
solution.
13
BITS Pilani, Pilani Campus
Motivation for Studying Software
Engineering (Continued……)

Gain understanding of systematic techniques


• Requirements Specification
• Designing
• Development and Testing
• Project Management and Maintenance

For procuring the expertise to be an enhanced


programmer.

14
BITS Pilani, Pilani Campus
Certain Terminologies: Jobs vs
Projects

• Iteratively executing some


Jobs well-defined tasks with the
certain outcome.

• Involves some challenge


Projects during the middle phase but
also has some fixed routines.

Software • Consists of some routine work


Development including some challenges
Projects with some uncertainity.
15
BITS Pilani, Pilani Campus
Traditional versus Modern Projects

Demand of Incremental Promotes


Increasing Delivery of Customer
Services Software Involvement

Significant Handle User


Re-use Feedback

16
BITS Pilani, Pilani Campus

You might also like