Вы находитесь на странице: 1из 26



A presentation by

INDIA | USA | UK | CHINA© QAI India Limited.

| MALAYSIA All rights reserved.
What is
Software Engineering?
What is Software?

• Program
• Data
• Document

Types of Software

• Application software - Application software is used to provide

services to customers and run businesses more efficiently.
Examples: accounting system, a management information
system (MIS), and an enterprise resource planning (ERP)

• System software - System software is used to operate and

maintain a computer system. It enables customers to use the
computer resources directly and through other software.
Examples: operating systems, compilers, and system utilities.

What is embedded software?

Engineering Principles

• Fundamental engineering principles:

– Understanding the problem
– Communicating with the customer
– Defined methods for designing
– Best practices for implementing the solution
– Good strategy and tactics for testing

Engineering and Software Engineering
• Engineering is the systematic application of scientific
knowledge in creating and building cost-effective solutions to
practical problems in the service of mankind.

• Software engineering is that form of engineering that applies

the principles of computer science and mathematics to
achieving cost-effective solutions to software problems.

1990 SEI Report on Undergraduate Software Engineering Education

( CMU/SEI-90-TR-003 )

What is Software Engineering
• The term “software engineering” was first coined at
the 1968 NATO conference where Mr. Bauer was a
principle organizer
• The term “Software Engineering” has been around
for 34 years!

Why Software Engineering?
• A 1994 study by the Standash Group of 8,380
projects in the government and private sectors in
the U.S. showed that:
- 31% of software projects are cancelled before they are
- 53% of those are completed cost an average of 189% of their
original estimates.
- of those 53%, only 42% have their original set of proposed
features and functions.
- only 9% of the projects were completed on time and within

Software Engineering Layers

• Process: A framework that helps the project manager control

project management and engineering activities
• Methods: The technical activities required for the creation of
work products
• Tools: The automated assistance for processes and methods

Software Engineering
• Objectives - to ensure that
– software delivers functionality, features
– project is completed on time
– project is completed within budget
– software is manageable
– software is changeable and long living
– system is maintainable by a developer who is not part of the original
design team

The application of a systematic, disciplined, quantifiable

approach to the development, operation, and maintenance of
software :
The application of engineering to software

Scope of Software Engineering
Processes for development, e.g.,
- contract
- concept
- requirements
- design
- coding
- testing
- change-over
- maintenance

Supporting processes, e.g.,

- project management
- quality assurance
- configuration management
- training
- measurement / metrics

Software Life Cycle

• The period of time that begins when a software

product is conceived and ends when the software is
no longer available for use
– phases overlap, are performed iteratively, etc.
– different approaches possible
– another common term - SDLC
• Software life cycle models are also called software
engineering paradigms

Sample Software Life Cycle

Concept Exploration

Requirements Analysis





Operation/ Maintenance


Lifecycle Stages

• Analysis
• Design
• Coding/ Development
• Testing
• Implementation

Software Requirements
• A consolidated set of requirements explaining the
business needs of the customer
• Translation of the customer requirements to the
requirements of the software to be built
• Important concepts
– Technical requirements
– Non technical requirements
– Functional requirements
– Non Functional requirements
– Scope of Work as an input
– Acceptance criteria

Requirements Engineering
• Requirements Definition
– Elicitation
– Analysis or Modeling
– Documentation
– Validation
• Requirements Management
– Change Control
– Requirements traceability

Software Design
• A representation of software created to facilitate analysis,
planning, implementation and decision making
• The software design description is used as a medium for
communicating software design information, and may be
thought of as a blueprint of the system
• Often described as :
– high level (system design, global design, interfaces)
– low level (program / component level)
• Format, contents depend on type of application, objective
and audience


• Expressing a design (implementing a design) in a programming

language based on program specifications
• The main visible work
• Also called programming or construction or development phase

• Checking whether the software product meets
• The purpose of testing is to uncover as many
problems as possible
• If coder and tester are same, testing may be biased

User Acceptance
• Acceptance criteria forms the basis of acceptance of
the product / deliverable
– Criteria to be frozen early
– to be agreed between the supplier and customer
– E.g.,
• No defects in core functionalities
• Performance criteria within a tolerance of + and – 2 %
• No interoperability issues
• The user may do an acceptance testing before
accepting the system

Installation and Change over

• Moving the system to the customer site

• User training
• Parallel run
• Installation manual / instructions
• Environment set up

Operations and Maintenance

• The “real purpose” of the system

• The largest phase
• Changes required to systems for various reasons -
problems to be fixed, new requirements, changes in
policies, statutory laws, etc.
• Often treated as a separate project

Software Engineering SDLC

• Software Development Life Cycles

– Classic life cycle
• a sequential paradigm
– Prototyping
• a modeling paradigm
– Evolutionary models like
• Incremental
• Spiral, etc.

Core Activities & Role

Core Activities Role

Business Requirement Business Analyst

Software Requirement System Analyst

Design Tech Lead/Architect

Coding Developer

Testing Testing Engineer

Deployment Developers

Supporting Activities and role
Supporting Activities Role

Project Management Project Manager

Project Leader
Senior Management
Software Configuration Configuration Controller
Management Software Configuration Control
Quality Assurance SQA Analyst





Click here for more on Software Engineering SINGAPORE

and Testing CONTACT US

QAI India: QAI USA: QAI Malaysia:

1010 - 1012, Ansal Towers, 38 Nehru Place Windsor at Metro Center, 2101 Park Center Level 36, Menara Citibank, 165, Jalan
New Delhi - 110019, India Dr., Suite 200, Orlando, FL 32835-7614 Ampang, 50450 Kuala Lumpur, Malaysia
Phone: +91- 11- 26219792, 26220580 Phone: +407-363-1111 Phone: +603 2169 6241
conferences@qaiglobal.com conferences@qaiglobal.com conferences@qaiglobal.com

QAI UNICOM / UK: QAI Singapore: QAI China:

Unicom R&D House, One Oxford Road 391B Orchard Road #23-01, Rm. 1211, No. 498 Guoshoujing Rd. Shanghai
Uxbridge, Middlesex, London, United Ngee Ann City Tower B, Zhangjiang Hi-Tech Park, Pudong New Area,
Kingdom, Zip: UB9 4DA Singapore - 238874 Shanghai, China Zip: 201203
Phone : +44 (0)1895 256484 Phone:+65-6225-8139 Phone : +86-21-51314155
conferences@qaiglobal.com conferences@qaiglobal.com conferences@qaiglobal.com

© QAI .
© QAI India Limited. All rights reserved
www.qaiglobal.com All rights reserved. No part of this document may be reproduced or distributed in any form or by
any means, or stored in a database or retrieval system, without prior written permission of QAI