MELJUN CORTES Software Engineering


Published on

MELJUN CORTES Software Engineering

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

MELJUN CORTES 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 isSoftware 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 - maintenanceSupporting 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 & RoleCore Activities RoleBusiness Requirement Business AnalystSoftware Requirement System AnalystDesign Tech Lead/ArchitectCoding DeveloperTesting Testing EngineerDeployment Developers 28
  25. 25. Supporting Activities and roleSupporting Activities RoleProject Management Project Manager Project Leader Senior ManagementSoftware Configuration Configuration ControllerManagement Software Configuration Control BoardQuality Assurance SQA Analyst Auditor 29
  26. 26. INDIA USA UK CHINA MALAYSIA Click here for more on Software Engineering SINGAPORE and Testing CONTACT USQAI India: QAI USA: QAI Malaysia:1010 - 1012, Ansal Towers, 38 Nehru Place Windsor at Metro Center, 2101 Park Center Level 36, Menara Citibank, 165, JalanNew Delhi - 110019, India Dr., Suite 200, Orlando, FL 32835-7614 Ampang, 50450 Kuala Lumpur, MalaysiaPhone: +91- 11- 26219792, 26220580 Phone: +407-363-1111 Phone: +603 2169 conferences@qaiglobal.comQAI UNICOM / UK: QAI Singapore: QAI China:Unicom R&D House, One Oxford Road 391B Orchard Road #23-01, Rm. 1211, No. 498 Guoshoujing Rd. ShanghaiUxbridge, Middlesex, London, United Ngee Ann City Tower B, Zhangjiang Hi-Tech Park, Pudong New Area,Kingdom, Zip: UB9 4DA Singapore - 238874 Shanghai, China Zip: 201203Phone : +44 (0)1895 256484 Phone:+65-6225-8139 Phone : © QAI © QAI India Limited. All rights 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