Date post: | 20-Oct-2014 |
Category: |
Documents |
View: | 502 times |
Download: | 0 times |
© QAI India Limited. All rights reserved.
WHAT IS SOFTWARE
ENGINEERING?
INDIA | USA | UK | CHINA | MALAYSIA | SINGAPORE
A presentation by
QAI
What is
Software Engineering?
3
What is Software?
• Program
• Data
• Document
4
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.
• 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?
5
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
6
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 )
7
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!
8
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.
9
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
14
Software Engineering
The application of a systematic, disciplined, quantifiable
approach to the development, operation, and maintenance of
software :
The application of engineering to software
• 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
15
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
16
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
17
Sample Software Life Cycle
Concept Exploration
Requirements Analysis
Design
Coding
Test
Installation
Operation/ Maintenance
Retirement
18
Lifecycle Stages
• Analysis
• Design
• Coding/ Development
• Testing
• Implementation
19
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
20
Requirements Engineering
• Requirements Definition
– Elicitation
– Analysis or Modeling
– Documentation
– Validation
• Requirements Management
– Change Control
– Requirements traceability
21
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
22
Coding
• 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
23
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
24
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
25
Installation and Change over
• Moving the system to the customer site
• User training
• Parallel run
• Installation manual / instructions
• Environment set up
26
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
27
Software Engineering SDLC
• Software Development Life Cycles
– Classic life cycle
• a sequential paradigm
– Prototyping
• a modeling paradigm
– Evolutionary models like
• Incremental
• Spiral, etc.
28
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
29
Supporting Activities and role
Supporting Activities Role
Project Management Project Manager
Project Leader
Senior Management
Software Configuration
Management
Configuration Controller
Software Configuration Control
Board
Quality Assurance SQA Analyst
Auditor
© QAI India Limited. All rights reserved.
INDIA
USA
UK
CHINA
MALAYSIA
SINGAPORE
© QAIAll rights reserved. No part of this document may be reproduced or distributed in any form or byany means, or stored in a database or retrieval system, without prior written permission of QAI
QAI India:1010 - 1012, Ansal Towers, 38 Nehru Place New Delhi - 110019, India Phone: +91- 11- 26219792, [email protected]
QAI USA:Windsor at Metro Center, 2101 Park Center Dr., Suite 200, Orlando, FL 32835-7614Phone: [email protected]
QAI Malaysia:Level 36, Menara Citibank, 165, Jalan Ampang, 50450 Kuala Lumpur, MalaysiaPhone: +603 2169 [email protected]
QAI UNICOM / UK: Unicom R&D House, One Oxford Road Uxbridge, Middlesex, London, United Kingdom, Zip: UB9 4DA Phone : +44 (0)1895 256484 [email protected]
QAI Singapore: 391B Orchard Road #23-01, Ngee Ann City Tower B, Singapore - 238874Phone:+65-6225-8139 [email protected]
QAI China:Rm. 1211, No. 498 Guoshoujing Rd. Shanghai Zhangjiang Hi-Tech Park, Pudong New Area, Shanghai, China Zip: 201203Phone : [email protected]
CONTACT US
www.qaiglobal.com
http://www.qaiglobal.com
Click here for more on Software Engineering
and Testing