Introduction to Software Engineering Introduction to Software Engineering




![Software Development Statistics n 1979 General Accounting Office Report [2] – 50% + of Software Development Statistics n 1979 General Accounting Office Report [2] – 50% + of](https://slidetodoc.com/presentation_image_h/1b48bf362f746f43eb6e7c3363707c15/image-5.jpg)













![Requirements Document NASA-STD-2100 [4] Table of Contents 1. 0 2. 0 3. 0 4. Requirements Document NASA-STD-2100 [4] Table of Contents 1. 0 2. 0 3. 0 4.](https://slidetodoc.com/presentation_image_h/1b48bf362f746f43eb6e7c3363707c15/image-19.jpg)

![Detailed Design Document. NASA-STD-2100 [4] Table of Contents 1. 0 2. 0 3. 0 Detailed Design Document. NASA-STD-2100 [4] Table of Contents 1. 0 2. 0 3. 0](https://slidetodoc.com/presentation_image_h/1b48bf362f746f43eb6e7c3363707c15/image-21.jpg)



![Trouble Report [1] Program ID - TR # [2] Current Status [3] Program Title Trouble Report [1] Program ID - TR # [2] Current Status [3] Program Title](https://slidetodoc.com/presentation_image_h/1b48bf362f746f43eb6e7c3363707c15/image-25.jpg)
![Test Procedures Document NASA-STD-2100 [4] Table of Contents 1. 0 Introduction 2. 0 Related Test Procedures Document NASA-STD-2100 [4] Table of Contents 1. 0 Introduction 2. 0 Related](https://slidetodoc.com/presentation_image_h/1b48bf362f746f43eb6e7c3363707c15/image-26.jpg)





![Management Methods & Techniques Management Plan Document NASA-STD-2100 [4] 1. 0 2. 0 3. Management Methods & Techniques Management Plan Document NASA-STD-2100 [4] 1. 0 2. 0 3.](https://slidetodoc.com/presentation_image_h/1b48bf362f746f43eb6e7c3363707c15/image-32.jpg)



















- Slides: 51

Introduction to Software Engineering

Introduction to Software Engineering Outline n Part 1 - Background and Introductory Information – Software Engineering History – Software Development Statistics – What is Software Engineering? n Part 2 - Software Engineering Concepts – – – – Software Engineering Relationships Principles Development Methods & Techniques Management Methods & Techniques Life-Cycle Methodologies Software Engineering Processes & Procedures Automated Tools

Software Engineering History n Computers were invented in the 1940’s n Then - computing programming languages were invented n Eventually - program language training was developed n However, training was unable to provide sufficient methods & techniques for developing large reliable systems on time & within budget n By the late 1960’s, digital computers were less than 25 years old and already facing a software crisis n Software Engineering term first emerged as title of a 1968 NATO conference [1]

![Software Development Statistics n 1979 General Accounting Office Report 2 50 of Software Development Statistics n 1979 General Accounting Office Report [2] – 50% + of](https://slidetodoc.com/presentation_image_h/1b48bf362f746f43eb6e7c3363707c15/image-5.jpg)
Software Development Statistics n 1979 General Accounting Office Report [2] – 50% + of contracts had cost overruns – 60% + of contracts had schedule overruns – 45% + of software contracted for could not be used – 29% + of software was paid for and never delivered – 22% + of software contracted for had to be reworked/modified to be used

Software Development Statistics n Other Studies – 1982 - Tom De. Marco » 25% of large systems development projects never finished – 1991 Capers Jones Study » Average Management Information System* project is 1 year late and 100% over budget n Software crisis stubbornly persists * Management Information System - a system for providing information to support organizational activities and management functions.

Summary n While there has been some progress, there still are serious problems to overcome in software development – schedule and cost estimates are still inaccurate – productivity of developers is not keeping up with the demand – quality of software is not meeting customer expectations n Still a need to bring engineering discipline into the software process

Software Engineering Definition n The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. [IEEE Std 610. 12 -1990] n Institution of engineering discipline in the manufacturing of computer software

Part 2 - Software Engineering Concepts n. Part 1 - Background and Introductory Information n. Part 2 - Software Engineering Concepts – – – – Software Engineering Relationships Principles Development Methods & Techniques Management Methods & Techniques Life-Cycle Methodologies Software Engineering Processes & Procedures Automated Tools

Software Engineering Relationships Automated tools Processes & procedures Life-cycle methodologies Methods & techniques Principles

Selected Software Engineering Principles n Rigor and Formality n Modularity n Abstraction n Anticipation of Change n Generality n Incrementality


Methods & Techniques Automated tools Processes & procedures Life-cycle methodologies Methods & techniques Principles

Basic Problem Solving Flow WHAT HOW DO TEST USE

Development Methods & Techniques System Requirements Engineering Analysis Design Software Testing Implementation Verification & Validation Management Methods & Techniques Project Planning Project Tracking & Oversight Quality Assurance Configuration Management Integration Maintenance

Development Methods & Techniques Systems Engineering System Requirements Engineering Analysis Design Software Testing Implementation Integration Maintenance Verification & Validation System Design Document User Need Concept Definition Requirements Definition System Design System Requirements Concept Allocated Hardware Reqs Allocated Software Reqs

Software Requirements Analysis Development Methods & Techniques System Requirements Engineering Analysis Design Software Testing Implementation Integration Maintenance Verification & Validation Allocated Software Requirements Review System Requirements Allocated to Software Write Software Requirements SW Requirements Document Review/Inspect Requirements & Write Trouble Reports Perform corrective action Trouble Reports

Software Requirements Checklist n Clarity – Is the terminology consistent with the user’s? – Are the requirements clear and unambiguous? – If assumptions that affect implementation have been made, are they stated? n Completeness – Have all requirements been assigned a priority? – Have the criteria for assigning priority levels been defined? – Have the requirements been stated for each staged implementation? n Consistency – Are the requirements consistent with each other? – Are the requirements here consistent with the requirements in related documents? n Testability – Have the test methods (test, demonstration, analysis or inspection) been stated for each requirement?
![Requirements Document NASASTD2100 4 Table of Contents 1 0 2 0 3 0 4 Requirements Document NASA-STD-2100 [4] Table of Contents 1. 0 2. 0 3. 0 4.](https://slidetodoc.com/presentation_image_h/1b48bf362f746f43eb6e7c3363707c15/image-19.jpg)
Requirements Document NASA-STD-2100 [4] Table of Contents 1. 0 2. 0 3. 0 4. 0 5. 0 Introduction Related Documentation Requirements Approach and Tradeoffs External Interface Requirements Specification 5. 1 Process and Data Requirements 5. 2 Performance and Quality Engineering Requirements 5. 3 Safety Requirements 5. 4 Security and Privacy Requirements 5. 5 Implementation Constraints 5. 6 Site Adaptation 5. 7 Design Goals 6. 0 Traceability to Parent’s Design 7. 0 Partitioning for Phased Delivery

Object Oriented Software Design* Development Methods & Techniques System Requirements Engineering Analysis Design Software Testing Implementation Integration Maintenance Verification & Validation Software Req. Document Create state diagram for each object Translate reqs into objects and create object model Object Model Data Flow Diagrams State Diagrams Develop Data Flow Diagram for each state *This diagram is based partly on the Rumbaugh OOD technique[5]
![Detailed Design Document NASASTD2100 4 Table of Contents 1 0 2 0 3 0 Detailed Design Document. NASA-STD-2100 [4] Table of Contents 1. 0 2. 0 3. 0](https://slidetodoc.com/presentation_image_h/1b48bf362f746f43eb6e7c3363707c15/image-21.jpg)
Detailed Design Document. NASA-STD-2100 [4] Table of Contents 1. 0 2. 0 3. 0 4. 0 Introduction Related Documentation Detailed Design Approach and Tradeoffs Detailed Design Description 4. 1 Compilation Unit Design and Traceability 4. 2 Detailed Design of Compilation Units 5. 0 External Interface Detailed Design 5. 1 Interface Allocation Design 5. 2 Physical Interface Design 6. 0 Coding and Implementation Notes 7. 0 Firmware Support Manual

Software Implementation Design Document Development Methods & Techniques System Requirements Engineering Analysis Design Software Testing Implementation Verification & Validation Translate design into programming language Source code Compile, link, load onto processor corrected source code Load module Run program, identify & fix errors Integration Maintenance

Ada Code -- package specification package Simple_IO is procedure Get (Item : out Integer); procedure Put (Item : in Integer); end Simple_IO; -- package body with Text_IO; package body Simple_IO is -- hidden declarations package Int_IO is new Text_IO. Integer_IO (Integer); -- body stubs procedure Get (Item : out Integer) is separate; procedure Put (Item : in Integer) is separate; end Simple_IO;

Development Methods & Techniques System Requirements Engineering Analysis Testing Produce test plans and procedures Design Software Testing Implementation Integration Maintenance Verification & Validation Source Code Expected Results Conduct tests & Evaluate Result Test plan and procedures Deliverable Software Debug & fix
![Trouble Report 1 Program ID TR 2 Current Status 3 Program Title Trouble Report [1] Program ID - TR # [2] Current Status [3] Program Title](https://slidetodoc.com/presentation_image_h/1b48bf362f746f43eb6e7c3363707c15/image-25.jpg)
Trouble Report [1] Program ID - TR # [2] Current Status [3] Program Title [4] Problem Description [5] Rationale (Proposed Approach to be Taken) Disposition Information [6] Status [7] Schedule
![Test Procedures Document NASASTD2100 4 Table of Contents 1 0 Introduction 2 0 Related Test Procedures Document NASA-STD-2100 [4] Table of Contents 1. 0 Introduction 2. 0 Related](https://slidetodoc.com/presentation_image_h/1b48bf362f746f43eb6e7c3363707c15/image-26.jpg)
Test Procedures Document NASA-STD-2100 [4] Table of Contents 1. 0 Introduction 2. 0 Related Documentation 3. 0 Test Identification and Objective 4. 0 Procedures 5. 0 Evaluation Criteria 6. 0 Expected Results 7. 0 Actual Results 8. 0 Abbreviations and Acronyms 9. 0 Glossary 10. 0 Notes 11. 0 Appendices

Development Methods & Techniques Integration System Requirements Engineering Analysis Design Receive & Install Hardware/ Software Tested software Integration Maintenance Verification & Validation Acceptance test plans and procedures Tested hardware Software Testing Implementation Expected results Production system Run acceptance test Integrated system Write trouble reports & fix errors

Development Methods & Techniques Maintenance System Requirements Engineering Analysis Software Testing Implementation Verification & Validation Production system Operations Change requests/trouble reports Perform Testing Design Maintenance Software changes Integration Maintenance

Development Methods & Techniques Verification & Validation System Requirements Engineering Analysis Design Software Testing Implementation Integration Maintenance Verification & Validation Validate Requirements Analysis Verify Design Code Testing Verify

Requirements Traceability Matrix Ref. # Paragraph # Description Module ID 1 5. 1. 6. 1. 1 Accelerate from 0 to 60 within 10 seconds under standard conditions. 4. 1. 6. 1. 1 -1 7. 1. 6 -2 3. 1. 1 -3 2 5. 1. 6. 1. 1 Maintain cruising speed within 2 mph of set speed. 5. 1. 1. 1 -4 3 5. 1. 6. 1. 2 Update speed display 10 times per second. 2. 1. 6. 1. 2 -1

Management Methods & Techniques Development Methods & Techniques System Requirements Engineering Analysis Design Software Implementation Testing Verification & Validation Management Methods & Techniques Project Planning Project Tracking & Oversight Quality Assurance Configuration Management Integration Maintenance
![Management Methods Techniques Management Plan Document NASASTD2100 4 1 0 2 0 3 Management Methods & Techniques Management Plan Document NASA-STD-2100 [4] 1. 0 2. 0 3.](https://slidetodoc.com/presentation_image_h/1b48bf362f746f43eb6e7c3363707c15/image-32.jpg)
Management Methods & Techniques Management Plan Document NASA-STD-2100 [4] 1. 0 2. 0 3. 0 4. 0 Project Planning Project Tracking & Oversight Quality Assurance Configuration Management Introduction Related Documentation Purpose and Description of the Software Resources, Budgets, Schedules, and Organization 4. 1 Business Practices Definition and Revision Processes 4. 2 Work Breakdown Structure 4. 3 Resource Estimation and Allocation to WBS 4. 4 Work Authorization 5. 0 Acquisition Activities Plan 6. 0 Development Activities Plan 7. 0 Sustaining Engineering and Operations Activities Plan 8. 0 Assurance Plan 9. 0 Risk Management Plan 10. 0 Configuration Management Plan 11. 0 Delivery and Operational Transition Plan 12. 0 Abbreviations and Acronyms 13. 0 Glossary 14. 0 Notes 15. 0 Appendices

Project Planning Q 1 System Engineering Software Requirements Analysis Software Design Preliminary Detailed Code Test Integration Plan Actual Q 2 Management Methods & Techniques Project Planning Project Tracking & Oversight Quality Assurance Configuration Management Q 3 Q 4 Q 1 Q 2 Q 3

Project Tracking And Oversight Q 1 System Engineering Software Requirements Analysis Software Design Preliminary Detailed Code Test Integration Plan Actual Q 2 Management Methods & Techniques Project Planning Project Tracking & Oversight Quality Assurance Configuration Management Q 3 Q 4 Q 1 Q 2 Q 3

Quality Assurance Management Methods & Techniques Project Planning Project Tracking & Oversight Quality Assurance Configuration Management Procedures Products Activity being performed Standards Product Reviews Process Reviews Errors

Configuration Management Change/Trouble Reports Management Methods & Techniques Project Planning Project Tracking & Oversight Quality Assurance Configuration Management Change Control & Impact Analysis Approved Request Development Staff Configuration Management Library Corrected Products Version Controlled Products Copy of Products

Life-Cycle Methodologies Automated tools Processes & procedures Life-cycle methodologies Methods & techniques Principles

Life-cycle Models System Requirements Engineering Analysis Design Software Testing Implementation Verification & Validation n Waterfall n Incremental n Spiral Integration Maintenance

The Waterfall Life-cycle Systems Engineering Req Analysis Design Code Test Integration Maintenance

Incremental Life-Cycle Systems Eng Build 1 Rqmts Analysis Build 2 Rqmts. Analysis Design Rqmts Analysis Build 3 System Implementation Code Test Design Code Rqmts Analysis Design Maintenance Integrate Test Code Integrate Test Integrate

Spiral Life-cycle Determine objectives, alternatives, constraints Evaluate alternatives, identify, resolve risks Risk Analysis Risk Mitigation Concept of operation Requirements analysis Design Implementation and test Plan next phases Develop, verify next level product

Processes & Procedures Automated tools Processes & procedures Life-cycle methodologies Methods & techniques Principles

Software Engineering Processes and Procedures Responsible Group 006 Configuration Management Baseline Software Design Document Baselined Software Requirements Document Quality Assurance 004 Hardware Engineering Formal Inspection 001 Software Engineering Translate Requirements into objects and develop object model 003 002 Create state diagram for each object Develop Data Flow Diagram for each state * - the processes and procedures defined in this slide apply to the software design phase of a complex software project.

Software Engineering Processes and Procedures Responsible Group 008 Math Library Management Baseline Routine 001 User Needs Task Monitor User 004 Formal Inspection 002 Local Contractor Task Plan 003 Software Requirements Data Flow Diagram For Design 007 006 005 Code Test * - the processes and procedures defined in this slide show the possible phases applicable for adding a simple routine to a math library.

Tools V E R T I C A L T O O L S H O R I Z O N T A L T O O L S Analysis Tools Design Tools Coding Tools Reverse Testing Engineering Tools Configuration Management Tools Project/Process Management Tools Documentation Tools


Tool Examples - 1 n Vertical Tools – Mc. Cabe Tools - source code analyzers that generate measures of software complexity n Horizontal Tools – Microsoft Project - commercial project management tool – Polytron Version Control System - controls multiple versions of software, documents, procedures, etc.

Tool Examples - 2 n Computer Aided Software Engineering (CASE) Environments – Tools supporting analysis, design, code (Fortran, C, C++), simulation, and reverse engineering – Tools supporting vertical areas using object-oriented methods and code generation n Test Beds – PC Data Acquisition Hardware and Software n Miscellaneous – Oscilloscopes/Logic Analyzers and other test equipment – Testing equipment and tools – Circuit analyzers

Footnotes

Glossary

System procurement process in software engineering
Forward engineering and reverse engineering
Software maintenance in software engineering ppt
Who invented software engineering
Metrics computer science
Software engineering crisis
Software metrics and software metrology
Real time software design in software engineering
Software design fundamentals in software engineering
Introduction to software engineering
Introduction to software engineering course outline
Principles of complex systems for systems engineering
Engineering elegant systems: theory of systems engineering
Forward and reverse engineering
Software engineering virtual lab iit kharagpur
User interface design steps in software engineering
Software engineering srs
Software engineering activity diagram
Software engineering task
Effective software project management
Ck metrics suite
Sds table of contents
Supportability of software
Inverse requirements
Inverse requirements example
Structured specification
Software quality assurance is an umbrella activity mcq
Rapid throwaway prototype
What is rmmm in software engineering
Incremental deployment
Program evolution dynamics
User interface in software engineering
Dependency in use case diagram
Rsl/revs in software engineering
Use case diagram for safehome security system
Unified engineering software
User testing software engineering
Types of testing in software engineering
Jalur independen
Interface testing
Cohesion in software engineering
Project planning begins with the melding of
Effort distribution in software engineering
Codepro analytix
Prototyping process in software engineering
User testing software engineering
Sources of requirements in software engineering
What is an entity in software engineering
Data structure metrics
Domain analysis in software engineering
Design patterns software engineering
Testing activities in software engineering