Overview of the Multos construction process Chad R. Meiners.

Slides:



Advertisements
Similar presentations
Unit-V testing strategies and tactics.
Advertisements

Presentation by Prabhjot Singh
Software Quality Assurance Plan
Lecture # 2 : Process Models
Chapter 2 – Software Processes
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
DoD Information Technology Security Certification and Accreditation Process (DITSCAP) Phase III – Validation Thomas Howard Chris Pierce.
11.1 Lecture 11 CASE tools IMS Systems Design and Implementation.
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
1 Building with Assurance CSSE 490 Computer Security Mark Ardis, Rose-Hulman Institute May 10, 2004.
1 Software Testing and Quality Assurance Lecture 15 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Fundamentals of Information Systems, Second Edition
SE 555 Software Requirements & Specification Requirements Validation.
1 Security Architecture and Analysis Management of System Development and Implementation –The System Development Process –Issues and Risks –Mitigation.
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
Implementation. We we came from… Planning Analysis Design Implementation Identify Problem/Value. Feasibility Analysis. Project Management. Understand.
Introduction to Software Testing
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Introduction to Computer Technology
Chapter 3 Software Processes.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
The Software Development Life Cycle: An Overview
Overview of the Database Development Process
Extreme Programming Software Development Written by Sanjay Kumar.
Introduction to Software Quality Assurance (SQA)
Systems Analysis and Design
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
CLEANROOM SOFTWARE ENGINEERING.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
14-1 © Prentice Hall, 2004 Chapter 14: OOSAD Implementation and Operation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Teaching material for a course in Software Project Management & Software Engineering – part II.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem Darwish.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Slide 1 Construction (Testing) Chapter 15 Alan Dennis, Barbara Wixom, and David Tegarden John Wiley & Sons, Inc. Slides by Fred Niederman Edited by Solomon.
Large Scale Software Systems Derived from Dr. Fawcett’s Notes Phil Pratt-Szeliga Fall 2010.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Secure Systems Research Group - FAU SW Development methodology using patterns and model checking 8/13/2009 Maha B Abbey PhD Candidate.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
Chapter 3: Software Project Management Metrics
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering Saeed Akhtar The University of Lahore.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Version 02U-1 Computer Security: Art and Science1 Correctness by Construction: Developing a Commercial Secure System by Anthony Hall Roderick Chapman.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Quality Assurance and Testing Fazal Rehman Shamil.
1 Object-Oriented Analysis and Design with the Unified Process Figure 13-1 Implementation discipline activities.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
Chapter 9 Database Planning, Design, and Administration Transparencies © Pearson Education Limited 1995, 2005.
Essential Needs of Software Test Automation
The Development Process of Web Applications
Applied Software Implementation & Testing
Introduction to Software Testing
Software life cycle models
Lecture # 7 System Requirements
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Activities of Formal Methods
Luca Simoncini PDCC, Pisa and University of Pisa, Pisa, Italy
Presentation transcript:

Overview of the Multos construction process Chad R. Meiners

Outline Examine the characteristics of Multos Examine the project requirements Examine the formal methodology Examine the developmental results Evaluate Praxis’s methods Evaluate the paper’s focus Evaluate infrastructural requirements of the methodology

Multos Multos is a secure operating system for running separate applications within a single smart card. Multos depends on a centralized certification authority to provide permission to load and delete applications from a card. Praxis was hired to develop the Multos certification authority.

Project Requirements ITSEC level E6 certification –Formal methods required –System requirements must be unambiguous Minimum developmental risk –Avoid pitfalls in later development cycles –Keep within developmental and budget constraints

System Requirements COTS hardware and infrastructure –Minimize the cost –Minimize time Multi-user requirements –System distributed for high throughput –System must be usable to clients Security –System must be trusted and usable

Methodology “Correctness by construction depends on knowing what the system needs to do and being sure that it does it.” -Anthony Hall and Roderick Chapman Requirements Specification Design Code

Requirements Translated business objectives into requirements Labeled each requirement Traced each label to a source –Includes tracing security requirements to threats Validate all requirements with the client

Specification System specified as a series of black boxes –User Interface The look and feel of the black boxes Prototype verified by clients –Formal top-level specification The functionality of the black boxes Typechecker used to verify and check system consistency

High Level Design Described how the black boxes function together Described the black boxes’ internal structures Addressed security concerns between the boxes

Security with Untrusted Components System security must not really on the security of untrusted components –Commercial database –Untrusted operating system Security achieved by (from the paper) –Hardware separation –Information encryption –Authentication codes –Individual processing of security-critical code

Detailed Design Describes the actual software modules to construct the system Most modules are directly derived from the formal top-level specification Complex areas are further modeled in Z –Key management –System startup

Formal Security Policy Model Security requirements written in Z Four types of requirements –Security invariants –Functional requirements –Operational constraints –Information separation Requirements checked with a typechecker

Code Code life of twenty years –Avoided using COTS software components –Implemented these components from scratch Multiple languages used for appropriate jobs –Spark Ada : Security Kernel –Ada 95 : System critical parts –C : Reuse cryptography code –C++ : GUI

Review All artifacts of the development cycle were reviewed and check for correctness and consistency Automated checking was used when possible Desk checking was performed when necessary

Testing System built incrementally in a top down fashion Each system test was a real system in the environment Tests derived from specifications and automated Tests were instrumented to check statement and branch coverage

Results The delivered system satisfied client requirements Low defect rate in the system –0.04 defects per KLOC –100,000 line of code Minimized the amount of effort spent fixing errors (6% of total effort)

Results of Tool Support Developers could concentrate on insuring correct system wide behavior –Z automatically checked for consistency –CSP model checked –SPARK eliminated an entire domain of errors Tool support was utilized whenever available

But was it a commercial success? Mobile Communication Mobile e-Commerce Mass Transit CA in UK CA in Japan Future CA in Hong Kong –Government Immigration card project

Other Praxis Projects SHOLIS Hercules II (C-130J) Flight Software Development

Praxis’s Methodology Specify early; specify often Black boxes –Allows for the formalization of interfaces and expectations –Works even for untrusted components Untrusted COTS components integrated via incorporating the lack of trust in the system design

Paper’s focus Concentrated on the developmental process of incorporating various formal tools Advocated the “right tool for the right job” approach Designed to demonstrate the approachability of formal methods

Developmental Infrastructure Requires the developer’s commitment to the approach –Personnel need to be trained in formal method techniques before starting the project –Formal methods must be considered at every step of the project –Must understand that FM is not a magic bullet Requires the client’s acceptance of the approach –Client must be willing to provide proper feedback to the developers –Must understand that FM is not a magic bullet

So where do the formal methods for security fit into this process? Used to model protocols before implementation Used to establish a set of trusted protocol for use in formally developed systems The methods we have learned so far must be grafted into a real development process

References Anthony Hall and Roderick Chapman. Correctness by construction: Developing a commercial secure system. IEEE Software, Jan/Feb:18-25, The Multos Website Praxis’s SPARK Website

Thanks Zhenxiao Yang: For questioning about the commercial success of Multos Brian Kellogg: For questioning about the existence of any bias in the paper