Chapter1 - Introduction
Chapter1 - Introduction
Software Engineering
Niti Naik
SVNIT, Surat
Textbooks
Ghezzi, Jazayeri, Mandrioli: "Fundamentals of Software
Engineering", 2/E, Pearson Education, 2002
Sommerville: "Software Engineering", 2006 ed, Pearson
Education, 9/E, 2010
Roger S Pressman: "Software Engineering A
Practitioner's Approach, McGraw-Hill 7/E, 2010
1
Software In Day-to-Day Life
Did you know there is a ton of software in the average
luxury car?
The average luxury car contains almost 100 million lines
of code and 100 million lines of code weighs over 3,000
lbs or 1.5 tons!
2
Software Engineering
A bridge from customer needs to programming
implementation.
Programmer
Customer
3
Software Engineering
A discipline that deals with the building of software
systems which are so large that they are built by a team
or teams of engineers.
A discipline whose aim is the production of fault-free
software, delivered on-time and within budget, that
satisfies the user’s needs.
The software must be easy to modify when the user’s
needs change.
4
Software Engineering
An engineering discipline that provides knowledge,
tools, and methods for:
Defining software requirements
Performing software design
Software construction
Software testing
Software maintenance tasks
Software project management
5
Software
6
Software
A Software is
instructions (computer programs) that when executed
provide desired function and performance
data structures that enable the programs to adequately
manipulate information
documents that describe the operation and use of the
programs.
7
Software Characteristics
8
Software Characteristics
9
Software Characteristics
10
Software Characteristics
11
Software Characteristics
12
Software Characteristics
13
Software Characteristics
14
Software Categories
System software: such as compilers, editors, file
management utilities.
Application software: stand-alone programs for specific
needs.
Engineering/scientific software: such as automotive
stress analysis, molecular biology, orbital dynamics etc.
Embedded software: resides within a product or system
(key pad control of a microwave oven).
15
Software Categories
Product-line software: focus on a limited marketplace to
address mass consumer market (word processing,
graphics).
Web Applications: network centric software, web
applications developed in JAVA, PERL, CGI, HTML etc.
AI: software uses non-numerical algorithm to solve
complex problem. Robotics, expert system, pattern
recognition, game playing.
16
Software Process
17
Framework Activities
Communication: communicate with customer to
understand objectives and gather requirements.
Planning: creates a “map”, defines the work by
describing the tasks, risks and resources, work products
and work schedule.
Modeling: Create a “sketch”, what it looks like
architecturally.
Construction: code generation and the testing.
Deployment: Delivered to the customer who evaluates
the products and provides feedback based on the
evaluation. 18
Task Sets
Defines the actual work done in order to achieve the
software objective.
Collection of software engineering work tasks.
Project Milestones
Software Quality Assurance Points
19
Umbrella Activities
Software project tracking and control: assess progress
against the plan and take actions to maintain the
schedule.
Risk management: assesses risks that may affect the
outcome and quality.
Software quality assurance: defines and conduct
activities to ensure quality.
Technical reviews: assesses work products to uncover
and remove errors before going to the next activity.
20
Umbrella Activities
Measurement: define and collects process, project, and
product measures to ensure stakeholder’s needs are
met.
Software configuration management: manage the
effects of change throughout the software process.
Reusability management: defines criteria for work
product reuse and establishes mechanism to achieve
reusable components.
Work product preparation and production: create work
products such as models, documents, logs, forms and
lists.
21
Software Development Life
Cycle (SDLC)
22
Problems in Software
Development
Requirements Testing
Gathering Communication
With Client
23
24
25
Thank You!