100% found this document useful (1 vote)
266 views

Introduction To Software Engineering

The document provides an overview of software engineering and the software development process. It discusses that software engineering is about managing complexity in software projects through systematic processes. It describes the four Ps of software engineering - People, Product, Process, and Project. It also outlines the five levels of maturity in software processes as defined by the Capability Maturity Model, from initial/ad hoc processes to optimized processes with continuous improvement. The goal of software engineering is to apply engineering best practices to software development to deliver high quality software on time and on budget.

Uploaded by

SakshamJain
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
266 views

Introduction To Software Engineering

The document provides an overview of software engineering and the software development process. It discusses that software engineering is about managing complexity in software projects through systematic processes. It describes the four Ps of software engineering - People, Product, Process, and Project. It also outlines the five levels of maturity in software processes as defined by the Capability Maturity Model, from initial/ad hoc processes to optimized processes with continuous improvement. The goal of software engineering is to apply engineering best practices to software development to deliver high quality software on time and on budget.

Uploaded by

SakshamJain
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 39

How do Software/IT Companies

(Google, IBM, Microsoft)


make
Software?

Slide 1

Software Engineering
CSX-303

Subject Incharge
Dr. Paramvir Singh
Assistant Professor
E-mail: [email protected]

Slide 2

Recommended Course Textbooks


Roger S. Pressman (2010)
Software Engineering:
A Practitioner's Approach,
7th edition, McGraw-Hill, USA
Sommerville I. (2001,2004)
Software Engineering 9th Edition (/Latest), AddisonWesley, Harlow, Essex,UK
Stevens P. with Pooley, R. (2010)
Using UML: Software Engineering with Objects and
Components,
Addison-Wesley, Harlow, Essex, UK
Slide 3

What is software?
Computer programs and associated documentation

Slide 4

Software Vs Hardware
Software is developed or engineered; it is not
manufactured in the classical sense
Impacts the management of software projects
Software doesn't wear out
Hardware bathtub curve compared to the
software ascending spiked curve
Although the industry is moving toward
component-based construction, most software
continues to be custom built (it is still complex to
build)
Slide 5

Software Vs Hardware

Slide 6

What is Engineering?
Design, Implement and Maintain/Manage a Product

Slide 7

Why Software Engineering?


Software development is hard !
Important to distinguish easy systems (one
developer, one user, experimental use only) from
hard systems (multiple developers, multiple users,
products)
Experience with easy systems is misleading
One person techniques do not scale up
Analogy with bridge building:
Over a Stream = easy, one person job
Over a River ?

(the techniques do not scale)


Slide 8

Why Software Engineering ?


The problem is complexity
Many sources, but size is key:
UNIX contains 4 million lines of code
Windows 7 contains 108 lines of code

Software engineering is about managing


this complexity.
Slide 9

Outline Syllabus

Introduction to Software Engineering


Software Process models
Software requirements
Formal Specification
Software Design and Implementation
Software verification, validation and testing
Management of Software Projects & Cost Estimation

Slide 10

What is software engineering?


Software engineering is the establishment and use of
sound engineering principles in order to obtain
economically software that is reliable and works
efficiently on real machines.
Software engineering is the application of a
systematic, disciplined, quantifiable approach to the
development, operation and maintenance of
software.
Slide 11

What is the difference between software


engineering and computer science?
Computer Science

Software Engineering

is concerned with
theory
fundamentals

Algorithms, date structures, complexity


theory, numerical methods

SE deals with practical problems in


complex software products

the practicalities of developing


delivering useful software

Computer science theories are currently insufficient to act as


a complete underpinning for software engineering, BUT it is
a foundation for practical aspects of software engineering
Slide 12

Changing Nature of Software


System software (OS, drivers, file management utility)
Application software (Hostel Management system, Lib. System)
Engineering/scientific software (Satellite, Calculator, Earthquake
intensity measurement)
Embedded software (AC, TV etc)
Product-line software (e.g., inventory control, word processing,
multimedia)
Web applications (Gtalk, Websites, Email services)
Artificial intelligence software (Robotic, Gaming, ANN)
Open world computing (small, wireless devices)
Open source (operating systems, databases, development
environments)
The ".com" marketing applications
Slide 13

Use SE to ENSURE
Quality
Software is of highest quality

Time Schedule
Software finishes on estimated time

Cost Schedule
Software consumes estimated budget

Managed
Software is easily manageable after release

Slide 14

The Four Ps of Software Engineering

People the most important element of a successful project


Product the software to be built
Process the set of framework activities and software engineering tasks to get the
job done
Project all work required to make the product a reality

Slide 15

The Four Ps of Software Engineering

Slide 16

The Four Ps of Software Engineering

Slide 17

The Four Ps of Software Engineering

Slide 18

The Four Ps of Software Engineering

Slide 19

The Four Ps of Software Engineering

Slide 20

The Four Ps of Software Engineering


Process 1

OR Process 2

OR Process 3

Selected based on:


Cost
Time
Quality
Resources

End Product
Slide 21

The Four Ps of Software Engineering

Selected based on:


Cost
Time
Quality
Resources

Slide 22

What is a Process?
(Webster) A system of operations in producing something; a
series of actions, changes, or functions that achieve an end or a
result
(IEEE) A sequence of steps performed for a given purpose

Slide 23

Generic Process Framework


Analysis

Design

Code

Test

Obsolete Approach

Communication

Planning

Modelling
Analysis

Design

Construction
Code

Deployment

Test

Modern Approach
Slide 24

Generic Process Framework


Communication
Involves communication among the customer and other stake holders;
encompasses requirements gathering
Planning
Establishes a plan for software engineering work; addresses technical tasks,
resources, work products, and work schedule
Modeling (Analyze, Design)
Encompasses the creation of models to better understand the requirements and the
design
Construction (Code, Test)
Combines code generation and testing to uncover errors
Deployment
Involves delivery of software to the customer for evaluation and feedback
Slide 25

Software Engineering is a Layered


Technology

Tools
Methods
Processes
Quality Focus
Slide 26

Process, Methods, and Tools


Process
Provides the glue that holds the layers together; enables
rational and timely development; provides a framework for
effective delivery of technology; forms the basis for
management; provides the context for technical methods,
work products, milestones, quality measures, and change
management
Methods
Provide the technical "how to" for building software; rely on a
set of basic principles; encompass a broad array of tasks;
include modeling activities
Tools
Provide automated or semi-automated support for the process
and methods (i.e. CASE tools)
Slide 27

Umbrella Activities
(In addition to General Framework Activities)

Software requirements management


Software project planning
Software project tracking and oversight
Software quality assurance
Software configuration management
Software subcontract management
Formal technical reviews
Risk management
Measurement process, project, product
Reusability management (component reuse)
Work product preparation and production
Slide 28

Capability Maturity Model


(CMM)
Developed in 1987 by the Software Engineering Institute (SEI) at
Carnegie-Mellon University
Described in the book Managing the Software Process in 1989 by
Watts Humphrey
Published as a separate document: Capability Maturity Model for
Software in 1991

Slide 29

Immature Software Organizations

Software processes are generally improvised


If a process is specified, it is not rigorously followed or enforced
The software organization is reactionary
Managers only focus on solving immediate (crisis) problems
Schedules and budgets are routinely exceeded because they are not
based on realistic estimates
When hard deadlines are imposed, product functionality and quality
are often compromised
There is no basis for judging process quality or for solving product
or process problems
Activities such as reviews and testing are curtailed or eliminated
when projects fall behind schedule
Slide 30

Five Levels of Software Process


Maturity

31

Slide 31

Characteristics of Each Level


Initial Level (Level 1)
Characterized as ad hoc, and occasionally even chaotic
Few processes are defined, and success depends on
individual effort
Repeatable (Level 2)
Basic project management processes are established to track
cost, schedule, and functionality
The necessary process discipline is in place to repeat earlier
successes on projects with similar applications

Slide 32

Characteristics of Each Level


(continued)
Defined (Level 3)
The software process for both management and engineering
activities is documented, standardized, and integrated into a
standard software process for the organization
All projects use an approved, tailored version of the
organization's standard software process for developing and
maintaining software
Managed (Level 4)
Detailed measures of the software process and product
quality are collected
Both the software process and products are quantitatively
understood and controlled
Slide 33

Characteristics of Each Level


(continued)
Optimized (Level 5)
Continuous process improvement is enabled by quantitative
feedback from the process and from piloting innovative ideas
and technologies

Slide 34

Visibility into the Software Process

35

Slide 35

Probability of Schedule and Budget

Slide 36

The CMM Structure

Slide 37

Key Process Areas

38

Slide 38

Software Process Assessments

39

Slide 39

You might also like