You are on page 1of 24

Software Engineering

Course code : CST202


Course Title : Software Engineering
Branch : CSE
Course credits : 3 (3-0-0)
Course prerequisites : None
Books
TEXT BOOKS : 1. Software Engineering A practitioner’s Approach, Roger
S Pressman, 6th edition. McGrawHill International Edition.
2. Software Engineering, Ian Sommerville, 7th edition, Pearson
education.
REFERENCE BOOKS : 1. Software Engineering, A Precise Approach,
Pankaj Jalote, Wiley India, 2010.
2. Software Engineering: A Primer, Waman S Jawadekar, Tata McGraw-
Hill, 2008
3. Software Engineering, Principles and Practices, Deepak Jain, Oxford
University Press.
Unit 1
• Introduction to Software Engineering – Reasons for software
project failure – Similarities and differences between software and
other engineering products. Software Components, Software
Characteristics, Software Crisis, Software Development Life Cycle
(SDLC) – Overview of Phases. Water Fall Model, Prototype Model,
Spiral Model, Evolutionary Development Models, Iterative
Enhancement Models, Choosing a social relevant problem-Summary
Team Report.
What is Software

• It is collection of computer programs, procedures, rules and


associated documents and data.

• Is data structures that enable programs to manipulate information.

• Descriptive information in both hard copy and virtual form that


describes operation and use of the program.
Historic Perspective

• When SE was not there it was difficult to develop large programs having
multiple functions.

• Complexity and difficulty levels of such large commercial programs


increase exponentially with software sizes. Eg: a program of 1000 LOC is
not so complex compare to program with 10, 000 LOC . Such programs
will be 100 times more difficult unless s/w engineering principles are
used.

• SE is an engineering approach for software development. It reduces


program complexity.
Complexity Metrics: to measure s/w complexity

Cyclomatic Complexity:measures how much control flow exists in a


program - operation codes such as IF, DO, SELECT, etc.

Programs with more conditional logic are more difficult to


understand, therefore measuring the level of cyclomatic complexity
unveils how much needs to be managed.
McCabe’s Cyclometric Complexity

• Cyclometric Complexity : determine the stability and level of confidence in

a program.

• It measures the number of linearly-independent paths through a program

module.
CFG Control Flow Graph
i = 0;
n=4;

while (i<n-1) do
j = i + 1;

while (j<n) do

if A[i]<A[j] then
swap(A[i], A[j]);

end do;
j=j+1;
Software Crisis

• Software Crisis is a term used in computer science for the difficulty of

writing useful and efficient computer programs in the required time.

• The software crisis was due to using the same workforce, same methods,

same tools even though rapidly increasing software demand, the

complexity of software, and software challenges.


Reasons of software Crisis

• The cost of owning and maintaining software was as expensive as developing the

software

• At that time Projects was running over-time

• At that time Software was very inefficient

• The quality of software was low quality

• Software often did not meet requirements


Solutions

 Reduction in software over-budget

 The quality of software must be high

 Less time needed for software project

 Experience working team member on software project


Why SE is hard??
How SE reduces Problem Complexity
1. Abstraction: consider only those aspects which are relevant. Eg: class in
C++/ Java, using API , in built libraries( macros).
2. Decomposition: divide a complex problem into many small problem and
solve each program one by one. Eg: Packages in Java
Each component of the decomposed problem should be solved independently and then solution of the
different components should be combined.
A good decomposition is when there is minimum interaction among various components.
If different subcomponents are interrelated then different components cannot be solved separately.
3. Reduce if/else statements. Most often, we don't need an else statement,
as we can just use return inside the 'if' statement
Software Engineering
• Engineering is the branch of science and technology concerned with
the design, building, and use of engines, machines, and structures. It
is the application of science, tools and methods to find cost effective
solution to simple and complex problems.

• SOFTWARE ENGINEERING is defined as a systematic, disciplined and


quantifiable approach for the development, operation and
maintenance of software.
Layered Technology
4. Quality focus
 Correctness of the functions required to be performed by the
software.
 Maintainability of the software
 Integrity i.e. providing security so that the unauthorized user cannot
access information or data.
 Usability i.e. the efforts required to use or operate the software.
3. Process

• Software specifications: functionality of the software and constraints


on its operation.

• Software development:

• Software validation

• Software evolution (software must evolve to meet changing client


needs.)
2. Methods

• The method provides the answers of all 'how-to'

• It provides the technical way to implement the software.

• Methodology is the systematic, theoretical analysis of the methods

applied to a field of study.


1. Tools
• The software engineering tool is an automated support for the
software development.
• The tools are integrated i.e. the information created by one tool can
be used by the other tool.
For example:
Dreamweaver, photoshop etc are web designing tools.
Query , report programs are query tools and report tools.

Machine learning tools in Python???


• matplotlib : analytics & modelling
• pandas: quality visualizations
• Jupyter notebooks: collaborative works
• Tableau : exploring capabilities interactive visualizations
Tasks
tasks Subtasks

Plan drafted Requirement gathered

Best practice researched

Draft 1 prepared

Distributed to stakeholders

Plan approved Feedback gathered

Amendments made

Final plan prepared

Distributed to stakeholders

Sign-off obtained

You might also like