Software Reviews Since Acquisition Reform Architecture-Driven Considerations

Similar documents
Software Acquisition Best Practices for Ground Systems

Distribution Statement A. Approved for public release; distribution is unlimited.

Software Development Methodologies

Credit where Credit is Due. Lecture 2: Software Engineering (a review) Goals for this Lecture. What is Software Engineering

National Aeronautics and Space Administration Washington, DC 20546

Introduction of RUP - The Rational Unified Process

Performance-Based Earned Value

Satisfying DoD Contract Reporting With Agile Artifacts

Number: DI-SESS Approval Date:

Software Engineering

Development Process and Analysis. LTOOD/OOAD - Verified Software Systems 1

Chapter 1. What is Software Engineering. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

The Space Network Ground Segment Sustainment (SGSS) Project: Developing a COTS-Intensive Ground System

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

Rational Unified Process (RUP) in e-business Development

AUTOMATED DEFECT PREVENTION: BEST PRACTICES IN SOFTWARE MANAGEMENT

Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 21 st, Requirements Engineering

Softwaretechnik. Lecture 02: Processes. Peter Thiemann SS University of Freiburg, Germany

The Work Breakdown Structure in the Systems Engineering Process. Abstract. Introduction

TOPIC DESCRIPTION SUPPLEMENT for the SYSTEMS ENGINEERING SURVEY DESCRIPTION

Life Cycle Model-Based Improvement of SEER- SEM TM Schedule Estimates

By: Ronny Trefftzs CSCI 5828: Foundations of Software Engineering Spring 2012 Professor: Kenneth Anderson

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

Chapter 1. Contents. What is Software Engineering 9/9/13. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

Software Engineering II - Exercise

SOFTWARE ENGINEERING SOFTWARE-LIFE CYCLE AND PROCESS MODELS. Saulius Ragaišis.

Software Lifecycle Models

Object-Oriented and Classical Software Engineering

MTAT Software Engineering Management

What Is the Rational Unified Process?

Software Engineering in the Agile World. Table of contents

7. Project Management

An Overview of Software Process

Design of an Integrated Model for Development of Business and Enterprise Systems

Software Development Standard for Space Systems

SEI Architecture Techniques complementary to the RUP Stuart Kerrigan, Richard van Schelven Principal Engineers Data Networks

Quality Management of Software and Systems: Processes and QM

Software Technology Conference

Objectives. The software process. Topics covered. Waterfall model. Generic software process models. Software Processes

Katherine Marshak. Professional Summary. Technical Skills

Work Product Dependency Diagram

Ingegneria del Software Corso di Laurea in Informatica per il Management

"Change is inevitable; except in vending machines."

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

SE310 Analysis and Design of Software

Software development processes: from the waterfall to the Unified Process

Quality Management of Software and Systems

Process, Models, Methods, Diagrams Software Development Life Cyles. Part - II

Prof. Dr. Liggesmeyer, 1. Quality Management of Software and. Processes and QM. Systems. QMSS Processes and QM

Software Process 2/12/01 Lecture #

Development Environment Definition

Oracle Unified Method (OUM) The OUM Implement Core Workflow The Key to Understanding and Applying OUM. An Oracle White Paper April 2012

Software Development Methodologies. CSC 440: Software Engineering Slide #1

The 12 th Annual Systems Engineering Conference

03. Perspective Process Models

7. Model based software architecture

Software Acquisition and Software Engineering Best Practices

Object-Oriented and Classical Software Engineering THE SOFTWARE PROCESS 9/17/2017. CHAPTER 3 Slide 3.2. Stephen R. Schach. Overview Slide 3.

Software Engineering QUESTION BANK

Software Modeling & Analysis. - Fundamentals of Software Engineering - Software Process Model. Lecturer: JUNBEOM YOO

Chapter 3 Prescriptive Process Models

Unified Process. Peter Dolog dolog [at] cs [dot] aau [dot] dk Information Systems March 3, 2008

Lectures 2 & 3. Software Processes. Software Engineering, COMP201 Slide 1

Introduction to Software Engineering

Systems Engineering Requirements and Products

WM2012 Conference, February 26 March 1, 2012, Phoenix, Arizona, USA. Improving DOE Project Performance Using the DOD Integrated Master Plan 12481

SOFTWARE DEVELOPMENT FOR SPACE SYSTEMS

Development Process Bennett, McRobb and Farmer 1

Test Workflow. Michael Fourman Cs2 Software Engineering

The Method Framework for Engineering System Architectures (MFESA)

Software processes. Software Applications A.Y. 2018/2019

Software Quality Engineering Courses Offered by The Westfall Team

Systems Engineers provide a Key Contribution and Role in System Integration and Test

Command and Control Software Development Lessons Learned. Lt Col Michael D. Sarchet Deputy Director, Space Systems Command and Control Division

Software Engineering Modern Approaches

Architecture Centric Evolution

LVC-IA EC WBS/Dictionary Dictionary

Software Quality Engineering Courses Offered by The Westfall Team

Solutions Manual. Object-Oriented Software Engineering. An Agile Unified Methodology. David Kung

TECHNICAL REVIEWS AND AUDITS

Open Plug-N-Play Modular Architecture for Signal Processing, Tracking, and Exploitation Research (MASTER)

LVC-IA EC WBS/Dictionary Dictionary

Software Construction

CSE 435 Software Engineering. Sept 14, 2015

Model Driven Development Needs More Than Product Models

The Unified Software Development Process

The software process

Boost Your Skills with On-Site Courses Tailored to Your Needs

Expand application range with respect to consider the whole system. Consider state of the art and adapt actual regulations and standards

Page # Configuration Management Bernd Brügge Technische Universität München Lehrstuhl für Angewandte Softwaretechnik 11 January 2005

Systems Analysis for Business Analysts (3 Day)

RESOLVING APPLICATION DEVELOPMENT ISSUES USING SOA Y. KIRAN KUMAR 1, G.SUJATHA 2, G. JAGADEESH KUMAR 3

Unified Process and Testing with EasyAccept. Peter Dolog dolog [at] cs [dot] aau [dot] dk E2-201 Information Systems February 22, 2007

Number: DI-IPSC-81427B Approval Date:

Number: DI-IPSC-81427B Approval Date:

2009 Spring. Software Modeling & Analysis. - Software Process Model. Lecturer: JUNBEOM YOO

Software Design. A software design is a precise description of a system, using variety of different perspective.

Software Engineering and Software Engineers

Current and Future Challenges for Ground System Cost Estimation

Biometrics Enterprise Architecture Systems Engineering Management Plan (BMEA SEMP)

Transcription:

Software Reviews Since Acquisition Reform Architecture-Driven Considerations Dr. Peter Hantos Senior Engineering Specialist Software Acquisition and Process Office Ground Systems Architecture Workshop 2004 ACE2 Breakout-Group Session GSAW 2004. 2004. 2004 The The Aerospace ACE2 Breakout Corporation. Session Peter Hantos Slide 1

Acknowledgements This work would not have been possible without assistance from the following: Reviewers Richard J. Adams, Software Acquisition and Process Office Suellen Eslinger, Software Acquisition and Process Office Karen L. Owens, Software Acquisition and Process Office Mary A. Rich, Principal Director, Software Engineering Subdivision Sponsor Michael Zambrana, USAF Space and Missile Systems Center, Directorate of Systems Engineering Funding source Mission-Oriented Investigation and Experimentation (MOIE) Research Program (Software Acquisition Task) Slide 2

Agenda Perspectives on Review Issues Architecture-Driven Considerations vs. Architecture Reviews The Computer Software Configuration Item Controversy Functional Decomposition Architectural Layer Dependencies Use Cases Components of Implementation Technical Performance Measurements Conclusions Slide 3

Background of Problem Pre-1994: MIL-STD-1521B (Technical Reviews) Formal milestone reviews Date of last version is June 4, 1985 (!) Supporting DoD-STD-2167A (Defense System Software Development) 1994: MIL-STD-498 (Software Development & Documentation) Although all other MIL standards are cancelled by the DoD, MIL-STD-498 was approved as an interim standard for 2 years Joint reviews: Schedule and content proposed by contractor Now: No official development or review standards of record Each acquisition defines a minimum set of major contractual technical reviews and associated entrance/exit criteria in its Integrated Master Plan, nevertheless: Neither the government nor the contractor has a clear concept of what reviews should contain and when they should occur Interpretation of those reviews (e.g., System PDR, System CDR) is left to individuals to decide Quality and content of reviews is widely different both within and across programs Quick, last-minute, before-review efforts to revive and customize MIL-STD-1521B proved to be ineffective Slide 4

Perspectives on Review Issues The Life Cycle Perspective ( When? )* Pre-acquisition reform assumptions: Acquisition and development are exclusively Waterfall Reviews (SSR, PDR, CDR, etc.) are clearly positioned Now: Evolutionary Acquisition Iterative/Incremental and Spiral Development Emerging agile methods Asynchronous, in-process, interim reviews * For more details see my upcoming presentation at the 2004 Systems & Software Technology Conference in Salt Lake City, Utah: Hantos, P., Software Reviews Since Acquisition Reform The Life Cycle Perspective Slide 5

Perspectives on Review Issues (Cont.) The Artifact Perspective ( What? ) * Evolving performance and maturity of process artifacts and work products along the development life cycle Key areas of interest in analyzing the impact of new software development trends: Architecture Product-oriented software engineering activities Engineering management processes Integral software engineering activities Hardware-software technology Security * For more details see my presentation at the Third Annual Conference on the Acquisition of Software- Intensive Systems in Arlington, VA: Hantos, P., Software Reviews Since Acquisition Reform The Artifact Perspective, January 26-28, 2004 Slide 6

Presentation Objectives in the Context of Workshop Objectives Emphasize the importance of architecture as a basis for Understandability Assessing maintainability, extensibility, and executability Clarify the difference between reviewing architecture vs. architecture-driven considerations during technical reviews. Demonstrate the inadequacy of MIL-STD-1521B as the basis for design reviews on architectural grounds Show the flaws in the Configuration Item (CI) concept Discuss requirements traceability and verification of the completeness of the design Discuss specification and review of Technical Performance Measurements (TPMs) Non-objective: How to conduct Architecture Reviews Slide 7

Architecture-Driven Considerations vs. Architecture Reviews Architecture review objectives: Present business drivers underlying the architecture Present the definition of the system/software architecture Structure, behavior, collaboration, constraints, and quality attributes of components and interfaces Concentrate on significant elements that have a wide impact on: Structure, performance, robustness, evolvability, and scalability Present considered architectural approaches and decision rationale Present architecture style choices and decision rationale Present architecture evolution parameters Demonstrate consistency among: Concept of Operations (CONOP) Developed prototypes Requirements Architecture Slide 8

Architecture-Driven Considerations During the review of the design, be cognizant of the underlying architecture-centric development process: Major architectural decisions: Ensure that the design does not conflict with major architectural decisions Architecture is more than a static blueprint: It is dynamically built, validated, baselined and elaborated during the iterative/incremental development life cycle Architectural views and related models*: Design model Logical view (Top level abstractions) Process model Process view (Logical view for complex systems) Implementation model Implementation view (Organization of modules) Deployment model Deployment view (Mapping runtime components) Use-case model Use-case view (Validating the integrity of different views) * Definitions of architectural views are from Reference [4] Slide 9

The CSCI Controversy Current software development methods are not driven by acquisition standards: The term CSCI is counter-intuitive*, since even lower level elements of the system must be under Configuration Management Object-Oriented (OO) concepts and terminology are the norm: Objects with flexible granularity Packages for depicting logical object structure Deployment of Components on Nodes not CSCIs on HWCIs Distinction between source code and executable files Multiple, dynamic object instantiation, use of Object Request Brokers Dynamic linking Distinction between Analysis, Design and Implementation * For the definition of a Configuration Item based on DOD-STD-480 please see backup slide #24 Slide 10

Functional Decomposition Successively decomposed the system to system primitives level System Supposed to provide requirements traceability to validate completeness of the design, but No guarantee that these primitives will work together on higher levels System Primitives Does not deal with non-functional requirements (performance, quality, security, etc.) The architecture should have been evolving during decomposition Slide 11

Synthesis An Iterative Analysis/Design Circle Separation of Concerns Composition of Concerns System System System Primitives System Primitives * For a less abstract JAVA implementation example please see backup slide #25 Slide 12

OO: The Case for Use Cases Requirements Requirements Analysis Analysis Design Design Implementation Implementation Test Test Use Cases Use Cases Use Cases are not just for capturing requirements: Use Cases bind the core workflows Each development increment is a working realization of a set of Use Cases Multi-level hierarchy of Use Cases: Top level: External Use Cases System behavior and actors» Caveat: Use Cases cover only functional requirements Multiple lower levels: Internal Use Cases Subsystem behavior and relationships Slide 13

Components of Implementation System Screens Computations DBMS Reporting Implementation 1: Mainframe with display terminal Implementation 2: Client/Server using thin client Implementation 3: Client/Server using dedicated database server Design Model objects Screens Computations Reporting DBMS Components of Implementation 1 Implementation Model compilation <<file>> screens.c <<file>> computations.c <<file>> reporting.c <<file>> dbms.c <<executable>> system.exe Components of Implementation 2 Components of Implementation 3 Design Model objects Screens Implementation Model compilation <<file>> screens.c <<executable>> thin_client.exe Design Model objects Screens Implementation Model compilation <<file>> screens.c Computations <<file>> computations.c Computations <<file>> computations.c <<executable>> client.exe Reporting <<file>> reporting.c <<executable>> server.exe Reporting <<file>> reporting.c DBMS <<file>> dbms.c DBMS <<file>> dbms.c <<executable>> dbms.exe Slide 14

Technical Performance Measurements Deployment of Implementation 2 using Multiple PCs Server Multiple Windows PCs :Computations Deployment of Implementation 3 using One PC Single Windows PC :Screens Server :Screens TCP/IP :Reporting :DBMS TCP/IP :Computations :Reporting TCP/IP :DBMS TCP/IP Deployment of Implementation 3 on Multiple PCs Windows PCs :Screens Server :Computations :DBMS :Reporting TCP/IP TCP/IP Sample TPM s: Operator response time to commands < 3 sec Results of computation are presented in 20 sec System-level TPMs: Have to be allocated to nodes Reviews have to track the allocated TPMs: The end-to-end, system-level TPM includes performance on the node and on the network Slide 15

Conclusions Architecture-driven considerations are essential in carrying out successful software technical reviews MIL-STD-1521B is inadequate as the basis for design reviews Understanding of object-oriented methodologies is critical in planning software technical reviews Functional Decomposition will not provide Requirements Traceability In-process reviews must track allocated TPMs The Configuration Item concept is not supportive of modern development practices Slide 16

Acronyms and Abbreviations CDR CI CONOP COTS CSC CSCI CSU DBMS DoD HWCI MIL OO ORB PC PDR SCM SSR STD TCP/IP TPM Critical Design Review Configuration Item Concept of Operations Commercial Off-the-Shelf Computer Software Component Computer Software Configuration Item Computer Software Unit Database Management System Department of Defense Hardware Configuration Item Military Object-Oriented Object Request Broker Personal Computer Preliminary Design Review Software Configuration Management Software Specification Review Standard Transmission Control Protocol/Internet Protocol Technical Performance Measurements Slide 17

References [1] Booch, G., Rumbaugh, J., and Jacobson, I., The Unified Modeling Language User Guide, Addison Wesley Longman, Inc., 1999 [2] Barry, B., Spiral Development: Experience, Principles, and Refinements, CMU/SEI-2000-SR-008 [3] Clements, P. C., Active Reviews for Intermediate Designs, CMU/SEI-2000-TN-009 [4] Kruchten, P., The Rational Unified Process An Introduction, Addison Wesley Longman, Inc., 1998 [5] Smith, J., The Estimation of Effort Based on Use Cases, www. rational.com, Rational Software, 1999 Slide 18

Contact Information Peter Hantos The Aerospace Corporation P.O. Box 92957-M1/112 Los Angeles, CA 90009-2957 Phone: (310) 336-1802 Email: peter.hantos@aero.org Slide 19

Backup Slides Slide 20

Refresher: MIL-STD-1521B Characteristics Assumes Waterfall Development Model Assumes Functional Decomposition of Requirements Top-level system building blocks are configuration items: HWCI Hardware Configuration Item CSCI Computer Software Configuration Item High-Level Design == Architecture Hardware-software development processes are clearly separated: Design trade-offs only on systems engineering level Clearly positioned, formal milestone reviews Slide 21

Computer Software Configuration Items Definition of CSCIs (DOD-STD-480): SW that is designated by the contracting agency for configuration management Structural Breakdown of CSCIs: CSC (Computer Software Components) CSU (Computer Software Units) Granularity of CSCIs: Coarse, typically 7-8 CSCIs even in large systems Static View of Software: Assumes unchanging configuration entities across the life cycle: Design Source Code Developmental Executables Delivered Executables Slide 22

More on Functional Decomposition Functional Decomposition is misused: Its purpose is to understand and communicate system requirements and NOT synthesis (allocation of sub-functions to solution structures) It doesn t provide complete Requirements Traceability Functional Decomposition has to be a multi-level process: On each level we describe the required behavior, and Trying to find a solution to implement it before deciding whether the behavior on the next level needs to be refined In OO the equivalent activity is Analysis In OO functional requirements are documented via Use Cases Slide 23

Analysis is NOT Design or Implementation Analysis: Rough sketch of the system Description of the system in the application domain Helps us to refine and understand functional requirements Lets us reason about the internals and internal resources Design: Allow us to shape the architecture that satisfies all, functional and non-functional requirements Design is a refinement of analysis Implementation: Creation of the system in terms of components, such as source code, scripts, binaries, executables, etc. Component testing System integration All three have to be considered for complete Requirements Traceability Slide 24

Architectural Layer Dependencies Example System System Application-specific layer Subsystem 1 Subsystem 2 Application-general layer Java Applet Java Virtual Machine Web Browser Middleware layer TCP/IP System-software layer Note that the topology of the architecture is not a tree-structure anymore Slide 25