What Is Software Engineering?: A Presentation by QAI
What Is Software Engineering?: A Presentation by QAI
ENGINEERING?
A presentation by
QAI
• Program
• Data
• Document
3
Types of Software
4
Engineering Principles
5
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.
6
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!
7
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
completed.
- 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
budget.
8
Software Engineering Layers
9
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
14
Scope of Software Engineering
Processes for development, e.g.,
- contract
- concept
- requirements
- design
- coding
- testing
- change-over
- maintenance
15
Software Life Cycle
16
Sample Software Life Cycle
Concept Exploration
Requirements Analysis
Design
Coding
Test
Installation
Operation/ Maintenance
Retirement
17
Lifecycle Stages
• Analysis
• Design
• Coding/ Development
• Testing
• Implementation
18
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
19
Requirements Engineering
• Requirements Definition
– Elicitation
– Analysis or Modeling
– Documentation
– Validation
• Requirements Management
– Change Control
– Requirements traceability
20
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
21
Coding
22
Testing
• Checking whether the software product meets
requirements
• The purpose of testing is to uncover as many
problems as possible
• If coder and tester are same, testing may be biased
23
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
24
Installation and Change over
25
Operations and Maintenance
26
Software Engineering SDLC
27
Core Activities & Role
Coding Developer
Deployment Developers
28
Supporting Activities and role
Supporting Activities Role
29
http://www.qaiglobal.com
INDIA
USA
UK
CHINA
MALAYSIA
Click here for more on Software Engineering SINGAPORE
© 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