WHAT IS SOFTWARE
 ENGINEERING?

  A presentation by
  QAI




   INDIA | USA | UK | CHINA QAI India Limited. All rights re...
What is
Software Engineering?
What is Software?

• Program
• Data
• Document




                                 3
Types of Software

• Application software - Application software is used to provide
  services to customers and run busine...
Engineering Principles

• Fundamental engineering principles:
   –   Understanding the problem
   –   Communicating with t...
Engineering and Software Engineering
• Engineering is the systematic application of scientific
  knowledge in creating and...
What is Software Engineering
• The term “software engineering” was first coined at
  the 1968 NATO conference where Mr. Ba...
Why Software Engineering?
• A 1994 study by the Standash Group of 8,380
  projects in the government and private sectors i...
Software Engineering Layers

• Process: A framework that helps the project manager control
  project management and engine...
Software Engineering
• Objectives - to ensure that
   – software delivers functionality, features
   – project is complete...
Scope of Software Engineering
             Processes for development, e.g.,
             - contract
             - concept...
Software Life Cycle

• The period of time that begins when a software
  product is conceived and ends when the software is...
Sample Software Life Cycle

      Concept Exploration

      Requirements Analysis

           Design

           Coding

...
Lifecycle Stages

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




                     ...
Software Requirements
• A consolidated set of requirements explaining the
  business needs of the customer
• Translation o...
Requirements Engineering
• Requirements Definition
   –   Elicitation
   –   Analysis or Modeling
   –   Documentation
   ...
Software Design
• A representation of software created to facilitate analysis,
  planning, implementation and decision mak...
Coding

• Expressing a design (implementing a design) in a programming
  language based on program specifications
• The ma...
Testing
• Checking whether the software product meets
  requirements
• The purpose of testing is to uncover as many
  prob...
User Acceptance
• Acceptance criteria forms the basis of acceptance of
  the product / deliverable
   – Criteria to be fro...
Installation and Change over

•   Moving the system to the customer site
•   User training
•   Parallel run
•   Installati...
Operations and Maintenance

• The “real purpose” of the system
• The largest phase
• Changes required to systems for vario...
Software Engineering SDLC

• Software Development Life Cycles
   – Classic life cycle
       • a sequential paradigm
   – ...
Core Activities & Role

Core Activities          Role

Business Requirement     Business Analyst

Software Requirement    ...
Supporting Activities and role
Supporting Activities    Role

Project Management       Project Manager
                   ...
http://www.qaiglobal.com
                                                                                                 ...
Upcoming SlideShare
Loading in …5
×

What is Software Engineering?

2,033 views
1,780 views

Published on

Software Engineering:

A presentation by QAI

http://www.qaiglobal.com

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,033
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
102
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

What is Software Engineering?

  1. 1. WHAT IS SOFTWARE ENGINEERING? A presentation by QAI INDIA | USA | UK | CHINA QAI India Limited. All rights reserved. © | MALAYSIA | SINGAPORE
  2. 2. What is Software Engineering?
  3. 3. What is Software? • Program • Data • Document 3
  4. 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? 4
  5. 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 5
  6. 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 ) 6
  7. 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! 7
  8. 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. 8
  9. 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 9
  10. 10. 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 14
  11. 11. 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 15
  12. 12. 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 16
  13. 13. Sample Software Life Cycle Concept Exploration Requirements Analysis Design Coding Test Installation Operation/ Maintenance Retirement 17
  14. 14. Lifecycle Stages • Analysis • Design • Coding/ Development • Testing • Implementation 18
  15. 15. 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
  16. 16. Requirements Engineering • Requirements Definition – Elicitation – Analysis or Modeling – Documentation – Validation • Requirements Management – Change Control – Requirements traceability 20
  17. 17. 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
  18. 18. 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 22
  19. 19. 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
  20. 20. 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
  21. 21. Installation and Change over • Moving the system to the customer site • User training • Parallel run • Installation manual / instructions • Environment set up 25
  22. 22. 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 26
  23. 23. Software Engineering SDLC • Software Development Life Cycles – Classic life cycle • a sequential paradigm – Prototyping • a modeling paradigm – Evolutionary models like • Incremental • Spiral, etc. 27
  24. 24. 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 28
  25. 25. Supporting Activities and role Supporting Activities Role Project Management Project Manager Project Leader Senior Management Software Configuration Configuration Controller Management Software Configuration Control Board Quality Assurance SQA Analyst Auditor 29
  26. 26. http://www.qaiglobal.com INDIA USA UK CHINA MALAYSIA 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

×