1. Software Engineering Overview



Similar documents
SAFE SOFTWARE FOR SPACE APPLICATIONS: BUILDING ON THE DO-178 EXPERIENCE. Cheryl A. Dorsey Digital Flight / Solutions cadorsey@df-solutions.

AC REUSABLE SOFTWARE COMPONENTS

DO-178B compliance: turn an overhead expense into a competitive advantage

3 August Software Safety and Security Best Practices A Case Study From Aerospace

How To Write Software

Software Review Job Aid - Supplement #1

asuresign Aero (NATEP Grant MA005)

Testing of safety-critical software some principles

Software Development: The Waterfall Model

Guide to applying the ESA software engineering standards to small software projects

Rev 1 January 16, 2004

Software Life Cycle Process - DO-178B

Certification Authorities Software Team (CAST) Position Paper CAST-26

Masters of Science in Software & Information Systems

Parameters for Efficient Software Certification

CHAPTER 7 Software Configuration Management

Establishing Great Software Development Process(es) for Your Organization. By Dale Mayes

IEC Overview Report

The new software standard for the avionic industry: goals, changes and challenges

Reduce Medical Device Compliance Costs with Best Practices.

ELECTROTECHNIQUE IEC INTERNATIONALE INTERNATIONAL ELECTROTECHNICAL

DO-178B/C Differences Tool

Engineering. Software. Eric J. Braude. Michael E. Bernstein. Modern Approaches UNIVERSITATSBIBLIOTHEK HANNOVER ' TECHNISCHE INFORM ATIONSBIBLIOTHEK

SOFTWARE VERIFICATION RESEARCH CENTRE SCHOOL OF INFORMATION TECHNOLOGY THE UNIVERSITY OF QUEENSLAND. Queensland 4072 Australia TECHNICAL REPORT

Abstract. 1 Introduction

WORKSHOP RC EVI Integração de Sistemas Junho de 2011 Eng. Nelson José Wilmers Júnior

An Introduction to the ECSS Software Standards

VAIL-Plant Asset Integrity Management System. Software Development Process

Configuration & Build Management

CS 1632 SOFTWARE QUALITY ASSURANCE. 2 Marks. Sample Questions and Answers

Meeting DO-178B Software Verification Guidelines with Coverity Integrity Center

R214 SPECIFIC REQUIREMENTS: INFORMATION TECHNOLOGY TESTING LABORATORY ACCREDITATION PROGRAM

8. Master Test Plan (MTP)

Software Project Management Plan. Team Synergy Version: 1.0 Date: 1/27/03

RTCA DO-178B/EUROCAE ED-12B

Document issued on: May 11, 2005

Project Risk Management: IV&V as Insurance for Project Success

Reverse Engineering Software and Digital Systems

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1

The Impact of RTCA DO-178C on Software Development

Page 1. Outline of the Lecture. What is Software Configuration Management? Why Software Configuration Management?

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Automated Module Testing of Embedded Software Systems

Guide to software configuration management

CASS TEMPLATES FOR SOFTWARE REQUIREMENTS IN RELATION TO IEC PART 3 SAFETY FUNCTION ASSESSMENT Version 1.0 (5128)

System Development Life Cycle Guide

Certification Authorities Software Team (CAST) Position Paper CAST-9

Software Engineering Reference Framework

How To Develop Software

Software Quality Assurance Plan

Configuration Management Practices

Software Quality Assurance Plan

<name of project> Software Project Management Plan

Research Institute (KAERI) Daedeok-daero, Yuseong-gu, Daejeon, Republic of Korea

ájoƒ ùdg á«hô dg áµلªÿg Yesser Overall SDLC Process Definition

Safety-Critical Systems: Processes, Standards and Certification

Using TechExcel s DevSuite to Achieve FDA Software Validation Compliance For Medical Software Device Development

Software Test Plan (STP) Template

The Software Development Process

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

CERTIFICATION MEMORANDUM

The Role of CM in Agile Development of Safety-Critical Software

Software-based medical devices from defibrillators

Components Based Design and Development. Unit 2: Software Engineering Quick Overview

SPINGRID Software Project Management Plan

codebeamer INTLAND SOFTWARE codebeamer Medical ALM Solution is built for IEC62304 compliance and provides a wealth of medical development knowledge

Software Process for QA

Certification of a Scade 6 compiler

Software Engineering Question Bank

Software Design Document (SDD) Template

A Process for ATLAS Software Development

Requirements Management

Procedure for Assessment of System and Software

System Development and Life-Cycle Management (SDLCM) Methodology. Approval CISSCO Program Director

Appendix 2-A. Application and System Development Requirements

Software Classification Methodology and Standardisation

PM Planning Configuration Management

Verification and Validation of Software Components and Component Based Software Systems

FSW QA Testing Levels Definitions

Intland s Medical Template

Requirements engineering

Subject Software Aspects of Certification

5 Certifiable safe airborne software process analyses

Requirements-driven Verification Methodology for Standards Compliance

Introduction of ISO/DIS (ISO 26262) Parts of ISO ASIL Levels Part 6 : Product Development Software Level

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Chap 1. Introduction to Software Architecture

Controlling Risks Safety Lifecycle

Software Validation and Verification Plan

Software Configuration Management. Addendum zu Kapitel 13

Lecture 17: Requirements Specifications

To introduce software process models To describe three generic process models and when they may be used

Rigorous Methods for Software Engineering (F21RS1) High Integrity Software Development

Chapter 4 Software Lifecycle and Performance Analysis

Software and Systems Engineering. Software and Systems Engineering Process Improvement at Oerlikon Aerospace

Transcription:

1. Overview 1. Overview...1 1.1 Total programme structure...1 1.2 Topics covered in module...2 1.3 Examples of SW eng. practice in some industrial sectors...4 1.3.1 European Space Agency (ESA), software engineering standards...4 1.3.2 Civil Aviation: software within a system, software levels, Level D & C summaries...5 1.3.3 IEC 61508 - "Functional safety of electrical/electronic/programmable electronic safetyrelated systems...15 1.3.4 Guidance related to software contained in medical devices...16 1.4 A preliminary note on software life cycle:...17 1.5 Concluding note and caution...18 1.1 Total programme structure CA582 Computer architecture & operating systems CA583 CA589 CA591 CA596 Computing in business Database design Object-oriented programming Information systems framework CA586 CA587 CA592 CA593 CA597 Software engineering Networks & Internets Algorithms & data structures User interface development Introduction to e-commerce The main prerequisite module is CA591. Chapter1SoftwareEngineeringOverview Page 1 of 19

1.2 Topics covered in module (a) Indicative CA586 syllabus (as listed on school web site) (May not cover all, or in this order) The software engineering discipline System analysis, Requirements Analysis Object modelling with UML Design Software construction File and database design Verification - reviews and testing Project management including planning Software Quality Assurance Software Configuration Management Using UML to document. Continuous assessment will require some programming inter alia Won't cover in fact Chapter1SoftwareEngineeringOverview Page 2 of 19

(b) Recommended textbook 1 Using UML, Software engineering with objects and components by P. Stevens with R. Pooley, Addison-Wesley, 2000 Main elements of recommended textbook: Part I: Conceptual background Part II: The Unified Modeling Language Part III: Case studies Part IV: Towards practice Software engineering with components Object concepts Introductory case study The development process Essentials of class models use case models interaction diagrams state and activity diagrams Implementation diagrams Packages, subsystems, models CS4 administration Board games Discrete event simulation More on class models use case models interaction diagrams state and activity diagrams Reuse: components, patterns Product quality: verification, validation, testing Process quality: management, teams, QA Design Reqts Probably will omit this case study Will follow text book fairly closely for much of the time but sometimes will add or omit material, or cover it differently. 1 In addition, there are several books in the library (especially classmark 005.1 and neighbouring shelves) that are useful for background and further reading. There are also some journals in the library that have articles of interest (e.g. IEEE transactions on software engineering (a bit dry sometimes!), Software engineering journal, Software engineering notes, ACM transactions on software engineering and methodology, etc) Chapter1SoftwareEngineeringOverview Page 3 of 19

1.3 Examples of SW eng. practice in some industrial sectors 2 Note: Some of following includes sector-specific terminology - not important for us. 1.3.1 European Space Agency (ESA), software engineering standards A summary of the main elements of SW eng. standards used by ESA for many years. Part 1 PRODUCT STANDARDS: Standards, recommendations, guidelines about the product (software) to be defined, implemented, operated and maintained. Part 2 PROCEDURE STANDARDS: Procedures used to manage a software project. Part 3 APPENDICES: Glossary, Software project documents, Document templates, Summary of mandatory practices, Form templates. (a): High-level structure of ESA (1991) SW Engineering Standards 1. SOFTWARE LIFE CYCLE 2. USER REQUIREMENTS DEFINITION PHASE 3. SW REQUIREMENTS DEFINITION PHASE 4. ARCHITECTURAL DESIGN PHASE 5. DETAILED DESIGN & PRODUCTION PHASE 6. TRANSFER PHASE 7. OPERATIONS & MAINTENANCE PHASE where each phase (2 to 7) is further subdivided into X.1 Introduction X.2 Inputs to the phase X.3 Activities X.4 Outputs from the phase (b): PRODUCT STANDARDS part of (1991) ESA SW Eng. Standards 1. MANAGEMENT OF THE SW LIFE CYCLE 2. SW PROJECT MANAGEMENT 3. SW CONFIGURATION MANAGEMENT 4. SW VERIFICATION & VALIDATION 5. SW QUALITY ASSURANCE where each process (2 to 5) is subdivided into X.1 Introduction X.2 Activities X.3 The <process> Plan X.4 Evolution of the <process> plan throughout the life cycle (c): PROCEDURE STANDARDS part of (1991) ESA SW Eng. Standards 2 Several of diagrams in this section are based on Software Quality Journal (Volume 10, Issue 1, July 2002, pages 47-68). Chapter1SoftwareEngineeringOverview Page 4 of 19

1.3.2 Civil Aviation: software within a system, software levels, Level D & C summaries (a) Following (Information Flow between System and Software Life Cycle Processes) illustrates (1) SW is often part of a wider system; (2) there can be different requirements depending on how critical the SW is. (from "Software considerations in airborne systems...", RTCA/DO-178B). Airworthiness requirements SYSTEM LIFE CYCLE PROCESSES System Operational Requirements including Software whose anomalous behaviour, as shown by the system safety assessment process, would cause or contribute to a failure of system function resulting, for the aircraft, in a condition of Level A: Catastrophic failure (e.g. crash) Level B: Hazardous/severe-major (e.g. fatalities) Level C: Major failure (e.g. possible injuries) Level D: Minor failure (e.g. slight increase in workload) System Requirements Allocated to SW Software Level(s) Design Constraints Hardware Definition System Safety Assessment Process Fault Containment Boundaries Error Sources Identified/Eliminated Software Requirements & Architecture Level E: No operational impact Equivalents of C or D are usually of most relevance SOFTWARE LIFE CYCLE PROCESSES Chapter1SoftwareEngineeringOverview Page 5 of 19

(b) Next we present a series of diagrams depicting the main constituent processes of Level D software (in civil aviation terms). Aim is to build up a picture of the roles and responsibilities involved. Note in reading these diagrams: - Ignore the references to "tables" (in fact, these are tables within document RTCA/DO-178B). - The oval shapes depict documentation. - There is some specialised terminology here (that can be largely ignored), especially regarding high-level (HL) and low-level (LL) requirements. Roughly, can regard HL as being "requirements proper" and LL as being part of software design. LEVEL D SUMMARY-1 (SW "development process" only): SRD SDD Scode Ecode HL reqts are developed. Derived HL reqts are defined SW architecture is developed LL reqts are developed Derived LL reqts are defined Source code is developed Executable object code is produced and integrated in the target computer Table A-2 Chapter1SoftwareEngineeringOverview Page 6 of 19

LEVEL D SUMMARY-2 (SW "planning process" added): PSAC, SDP, SVP, SCMP, SQAP Table A-1 SW development and integral processes are defined. Additional considerations are addressed SRD SDD Scode Ecode HL reqts are developed. Derived HL reqts are defined SW architecture is developed LL reqts are developed Derived LL reqts are defined Source code is developed Executable object code is produced and integrated in the target computer Table A-2 Chapter1SoftwareEngineeringOverview Page 7 of 19

LEVEL D SUMMARY-3 (SW "verification process" added): PSAC, SDP, SVP, SCMP, SQAP Table A-1 SW development and integral processes are defined. Additional considerations are addressed SRD SDD Scode Ecode HL reqts are developed. Derived HL reqts are defined SW HL reqts - comply with system reqts - are accurate & consistent - are traceable to sys. reqts SW architecture is developed LL reqts are developed Derived LL reqts are defined SW partit g integrity is confirmed Source code is developed No verification of outputs Executable object code is produced and integrated in the target computer Test Exec object code - complies with HL reqts - is robust with HL reqts - is compatible with target Table A-2 Table A-3 to A-6 SW verification results SW verification cases & procedures Chapter1SoftwareEngineeringOverview Page 8 of 19

LEVEL D SUMMARY-4 (Verification of verification!!!): PSAC, SDP, SVP, SCMP, SQAP Table A-1 SW development and integral processes are defined. Additional considerations are addressed SRD SDD Scode Ecode HL reqts are developed. Derived HL reqts are defined SW HL reqts - comply with system reqts - are accurate & consistent - are traceable to sys. reqts SW architecture is developed LL reqts are developed Derived LL reqts are defined SW partit g integrity is confirmed Source code is developed No verification of outputs Executable object code is produced and integrated in the target computer Test Exec object code - complies with HL reqts - is robust with HL reqts - is compatible with target Table A-2 Table A-3 to A-6 Table A-7 - test coverage of HL reqts achieved SW verification results SW verification cases & procedures Chapter1SoftwareEngineeringOverview Page 9 of 19

LEVEL D SUMMARY-5 PSAC, SDP, SVP, SCMP, SQAP Table A-1 SW development and integral processes are defined. Additional considerations are addressed SRD SDD Scode Ecode HL reqts are developed. Derived HL reqts are defined SW HL reqts - comply with system reqts - are accurate & consistent - are traceable to sys. reqts SW architecture is developed LL reqts are developed Derived LL reqts are defined SW partit g integrity is confirmed Source code is developed No verification of outputs Executable object code is produced and integrated in the target computer Test Exec object code - complies with HL reqts - is robust with HL reqts - is compatible with target Table A-2 Table A-3 to A-6 Table A-7 - test coverage of HL reqts achieved SW verification results SW verification cases & procedures Assurance..that..processes comply with..plans & any standards SQA records SW conformity review is conducted Table A-9 Chapter1SoftwareEngineeringOverview Page 10 of 19

(c) The next diagram depicts the level D software "configuration management" process. (In fact, there is another process also called "certification liaison" but we can ignore this as being quite specialised). On the other hand, the elements of software configuration management are very important at all levels; the only distinction is that more rigorous controls are introduced for more critical software. SW CONFIGURATION MANAGEMENT PROCESS (TABLE A-8) (Little (formal) difference between levels, except for SECI) SCM Records Configuration items are identified Baselines & Traceability are established SW Configuration Index (SCI) Problem reporting, change control, change review, and configuration status accounting are established Archive, retrieval and release are established Problem Reports Software load control is established Software life cycle environment control is established SW Life Cycle Configuration Index (SECI) (d) Next, to show the more demanding requirements for a Level C development - especially in terms of verification though there are also more stringent requirements in configuration control and other areas - we have Chapter1SoftwareEngineeringOverview Page 11 of 19

LEVEL C SUMMARY HL reqts are developed. Derived HL reqts are defined PSAC, SDP, SVP, SCMP, SQAP processes defined/ Transition criteria, interrelationships, sequencing defined / SW life cycle environment / Additional consid ns addressed SW plans SW plans comply with 178B SRD coordinated SDD SW HL reqts - comply with system reqts - are accurate & consistent - are verifiable - conform to standards - are traceable to sys. reqts algorithms accurate SW architecture is developed LL reqts are developed Derived LL reqts are defined SW LL reqts - comply with HL reqts - are accurate & consistent - conform to standards - are traceable to HL reqts algorithms are accurate SW architecture - is compatible with HL reqts - is consistent - conforms to standards SW partit g integrity is confirmed SW verification results Source code is developed SRS, SDS, SCS SW development standards are defined source code - complies with LL reqts - complies with SW arch - conforms to standards - is traceable to LL reqts - is accurate/ consistent output of SW integration complete & correct [mem. map ] Scode SW ver. cases & proc ds Ecode Executable object code is produced and integrated in the target computer Test Exec object code - complies with HL reqts - is robust with HL reqts - complies with LL reqts - is robust with LL reqts - is compatible with target Table A-1 Table A-2 Tables A-3 To A-6 Table A-7 - test procedures are correct - test results correct/discrepancies ok - test coverage of HL reqts achieved - test coverage of LL reqts achieved - test coverage of SW structure - statement coverage achieved - data & control coupling achieved Assurance..that..processes comply with..plans and standards SQA records SW conformity review is conducted Table A-9 Chapter1SoftwareEngineeringOverview Page 12 of 19

(e) The following two diagrams provide a different way of viewing & contrasting SW levels D and C, through use of the classical "V" diagram: Level D "mapped to" Classic Life Cycle Verification Approach: Project Request Define user (system) requirements Accepted Software Perform accep. tests (vs URD) URD (non-test) Tested System Define software requirements Perform system tests (vs SRD) SRD Define architectural design Tested Sub-systems Perform integration tests vs ADD (&SRD) ADD Tested Modules Define detailed design Perform unit tests vs SRD DDD Produce CODE Compiled Modules Legend: URD User requirements document/data SRD SW requirements document/data ADD Architectural design document/data DDD Detailed design document/data In some circumstances might be combined May be put into a single "SW design document" (SDD) Chapter1SoftwareEngineeringOverview Page 13 of 19

Level C "mapped to" Classic Life Cycle Verification Approach: Project Request Define user (system) requirements Accepted Software Perform accep. tests (vs URD) URD (non-test) Tested System Define software requirements SRD (non-test) Perform system tests (vs SRD) Tested Sub-systems Define architectural design ADD (non-test) Perform integration tests vs ADD (&SRD) Tested Modules Define detailed design DDD (non-test) Produce CODE Perform unit tests vs DDD (&SRD) Compiled Modules Chapter1SoftwareEngineeringOverview Page 14 of 19

1.3.3 IEC 61508 - "Functional safety of electrical/electronic/programmable electronic safety-related systems. E/E/PES safety requirements specification Software safety requirements specification Validation Validation testing Validated software E/E/PES architecture Software architecture Integration testing (components, subsystems and programmable electronics) Software system design Integration testing (module) Module design Module testing Coding Output Verification V-model (IEC 61508-3, 1998) (E/E/PES = electrical/electronic/programmable electronic system) Note: IEC 61508 is an international standard for the "Functional safety of electrical/electronic/programmable electronic safety-related systems. Chapter1SoftwareEngineeringOverview Page 15 of 19

1.3.4 Guidance related to software contained in medical devices SOFTWARE DOCUMENTATION Level of Concern (determination) Software Description Device Hazard Analysis Software Requirements Specification (SRS) Architecture Design Chart Design Specification Traceability Analysis Development Validation, Verification and Testing (VV&T) Revision Level History Unresolved anomalies (bugs) Release Version Number MINOR CONCERN All levels of concern All levels of concern All levels of concern Software functional requirements from SRS A chart depicting the partitioning of the software system into functional subsystems No documentation is necessary in the submission. No documentation is necessary in the submission. No documentation is necessary in the submission. Software functional test plan, pass / fail criteria, and results No documentation is necessary in the submission. No documentation is necessary in the submission. SRS MODERATE CONCERN MAJOR CONCERN A chart depicting the partitioning of the software system into functional subsystems, listing of the functional modules and a description of how each fulfills the requirements. Software design specification document Traceability among requirements, design specifications, identified hazards, and Verification and Validation testing. Summary of software life cycle development plan, including a summary of the configuration management and maintenance activities. Description of VV&T activities at the unit, integration and system level. System level test protocol including pass/fail criteria, and tests results. Revision history log Version number and date for all levels of concern. Summary of software life cycle development plan. Annotated list of control documents generated during development process. Include the configuration management and maintenance plan documents. Description of VV&T activities at the unit, integration and system level. Unit, integration and system level test protocols including pass/fail criteria, test report, summary, and tests results. List of errors and bugs which remain in the device and an explanation how they were determined to not impact safety or effectiveness, including operator usage and human factors. Documentation in a Pre-market Submission (in Guidance for FDA reviewers and industry. Guidance for the content of pre-market submissions for software contained in medical devices.) Chapter1SoftwareEngineeringOverview Page 16 of 19

1.4 A preliminary note on software life cycle: The previous sections identify the processes involved in SW engineering as well as many of the key outputs (SW code, design data, requirements documentation). However, they do not depict what is called the "software life cycle" (except in a very general sense). Very different plans and processes may be called for depending on circumstances. For example, (A) Develop a new implementation of a standard set of requirements (such as a wellestablished communication protocol or the definition of a programming language) -> go straight to design process (B) Configure a standard package to the needs of a particular customer -> formulate requirements and map them to the functions & interface provided by the package -> No design or coding; only system or acceptance level tests. (C) Some or all of requirements are uncertain ("researchy") -> do the development cycle a number of times before getting a satisfactory solution etc, etc Chapter1SoftwareEngineeringOverview Page 17 of 19

1.5 Concluding note and caution The foregoing preliminary notes are intended to give an overview of several of the main aspects and processes that make up software engineering. It was convenient for the purpose of this overview to take examples from industrial sectors where there are reasonably well-defined, standardised approaches to software development. However, it is emphasised that many, if not most, software development organisations work in sectors where such standards are not imposed. It is up to the software development organisations themselves to define a software engineering approach that works for them and their customers. Often, over-formalised approaches may be too restrictive, inhibiting of initiative and creativity, and need too much time and effort. The trick is to develop software in time and within budget and also of high enough quality. In 1995, Yourdon wrote in When good enough software is best (IEEE Software, should be in library) that 'The mathematics of the relationships between X[number of people], Y[units of time], Z[cost], P[units of functionality], and Q[bugs per function point] are something we don't know enough about at our present level of software engineering'. There's still a lot to learn about these issues. Chapter1SoftwareEngineeringOverview Page 18 of 19

A very recent (February 2005) call for contributions to a workshop on software quality notes that The goal of software engineering is to achieve high-quality software in a costeffective, timely, and reproducible manner. Advances in technology offer us reductions in cost and schedule, but their effect on software quality often remains unknown. Object-oriented concepts, component technology, components off the shelf (COTS), and open source software can dramatically reduce development time; however, assuring the quality of systems using these technologies is problematic. New software development processes also complicate quality assurance. Agile methods explicitly allow customers to change requirements very late in the project. Agile methods also take a "light weight" approach to project documentation and software testing. Reducing process overhead can improve response to change and speed product delivery, but may also adversely affect the project's risk profile. Little data exists on the quality of industrial systems developed using Agile methods. The job of measuring, assuring, and improving the quality of software systems is getting harder, not easier. The goal of this workshop is to bring together researchers, engineers, and practitioners to discuss and evaluate the latest challenges and breakthroughs in the field of software quality. The main focus of the workshop will be on software quality assurance. Chapter1SoftwareEngineeringOverview Page 19 of 19