Standards & Practices for the software and system engineers / professionals John Walz J.Walz@computer.org IEEE Computer Society 1 st VP IEEE Software & Systems Engineering i Standards d Committee Systems and Software Technology Conference (SSTC 2009) Wednesday, 22-Apr-09 22-Apr-09 Walz 1
Objective & Audience Advancing the knowledge, practice, and skills of engineering professionals Software and system engineers & professionals Acquisition Professionals Program/Project Managers Programmers System Developers Systems Engineers Process Engineers Quality and Test Engineers 22-Apr-09 Walz 2
Standards & Practices Abstract Cultivate, improve, and deploy best practices to meet business goals, timely delivery to satisfied customers, whose payments result in profit margins. Practices follow defined policies, processes, conventions, and procedures. Practices are influenced by HR selection criteria, Tool acquisition, and Iterative ti improvements Improvement projects start with a gap analysis using standards 22-Apr-09 Walz 3
Standards & Practices Practices deal with practitioners skills, work processes, & work products, both created and acquired Work Processes, uses Standards for documented process definitions, measure definitions, & Life cycle / work flow management 22-Apr-09 Walz 4
Building for Business Success Lean Six Sigma Management System Practices Measurements Tools & Techniques Controls Records Life Cycle Model Process Definitions Improvement Methods IDEAL SM CMMI Artifact templates Six Sigma Lean Methods Policies & Procedures Process Measures Standards, Spec, Criteria 22-Apr-09 Walz 5
Tower of Babel Standards d Practices Best Practices, Recommended d Practices, Generic Practices, Specific Practices Corporate Governance Practices, Marketplace Practices, Enterprise Practices, Business Practices, Software & Systems Engineering Practices Goals, Generic & Specific Processes, Activities, Tasks Frameworks Life Cycle Model Methodology Work Products / Artifacts Conformity Assessment Projects, Organizations, Enterprise, & Industry Process / Org Mat rit Engineering Practices Process / Org. Maturity 22-Apr-09 Walz 6
Simple Business Model for Standards and Practices Suppliers Std Talent product Std Customer Std Best Practices Std Tools Organization 22-Apr-09 Walz 7
Product improvements require improving Process Processes guide stakeholders through the life cycle improved Quality People & & Productivity Technology, Behaviors Tools People need to be skilled in techniques Technology enables and know when to apply them processes and techniques 22-Apr-09 Walz 8
What is a standard? A standard is a published document that sets out specifications and procedures designed to ensure that a material, product, method, or service meets its purpose and consistently performs to its intended use Standards are fundamental building blocks for international trade Standards Solve product compatibility issues Address consumer safety and health concerns Represents consensus expert opinion Simplify product development and reduce non-value-adding costs Increase a user's ability to compare competing products Provide assurance of interconnectivity ti it and interoperability and provide credibility of new products Verify new markets thus enabling the rapid implementation of technology 22-Apr-09 Walz 9
What is a Practice? (1) an activity that contributes to the purpose or outcomes of a process or enhances the capability of a process 1 (2) requirements employed to prescribe a disciplined uniform approach to the software development process 2 www.computer.org/sevocab 1. ISO/IEC 15504-1:2004 Information technology -- Process assessment -- Part 1: Concepts and vocabulary, 3.27 2. ISO/IEC 24765, Systems and Software Engineering i Vocabulary 22-Apr-09 Walz 10
More Definitions IEEE, ISO, IEC Base practice Generic practice Conventions Methodology Life Cycle Model CMMI-DEV Specific Practices Generic Practices Process area www.sei.cmu.edu/cmmi/models/index.html www.computer.org/sevocab 22-Apr-09 Walz 11
Football example Hole assignments and player numbering is used to assign who will be the main ball carrier and where the play will go Passing tree is the number system used for the passing routes Practices examples The Goal is getting the ball over the Goal Line. 22-Apr-09 Walz 12
In a complex, multidimensional trade space of solutions... Value of Standards What is testing? A standard is a Name for an otherwise fuzzy concept Practitioners needs standards to assign names to practices or collections of practices. a standard gives anametoa a bounded region. This enables communication between Buyer and Seller It defines some characteristics that a buyer can count on. Standards represent the minimum level of responsible practice Jim Moore, 2004-03 CSEE&T Panel 7 Moore06 22-Apr-09 Walz 13
Most successful standard: ISO 9001 Product is defined as result of a process Process is sdefined edas set of interrelated e or interacting activities which transforms inputs into outputs Say what you do and do what you say. Conformance is all about following processes; Any tool that enforces some type of process, will help an organization maintain its ISO 9001 management system 22-Apr-09 Walz 14
Model of Engineering Goals Constraints Control Measurements Action Needs Process Product Resources Moore06, SESC93 22-Apr-09 Walz 15
Steps to Success in software & system engineering - Compliant Process Engineering i Practical Support for CMMI -SW Project Documentation: Using IEEE Software Engineering Standards 1 Understand your business 2 processes Look to Models Look to Look to for Process 3 Framework 4 Supporting Completeness Standards for Life Standards for Cycle Definition Process Detail 5 Build or Refine Your Process Architecture 6 Execute Your Processes 7 Measure Your Results - Modify Processes as Necessary 8 Confirm Your Status With Independent Appraisals 3 3 3 3 22-Apr-09 Croll04 Walz 16
Using IEEE S2E Standards Select relevant Software & System Engineering (S2E) processes from Model and Framework, Define S2E processes using best practices and standards Perform gap analysis of S2E processes Improve existing S2E processes, Ensure process conformance to Model (e.g. CMMI Maturity Level, IS 15504, ISO 9001) 22-Apr-09 Walz 17
What are IEEE S2E Standards? Represent industry best practices Codifies industries best practices for all critical software & system engineering g processes and their outputs Developed by domain experts with broad expert consensus Specify content Provide detailed procedure explanations and offer section by section guidance on building the necessary documentation with no recommendation of exact techniques or formats Used as tools to help in the painful process of self-documentation Specify the minimum required contents for each support document or artifact 22-Apr-09 Land06 Walz 18
IEEE Std 730, Software Quality Assurance Plans IEEE Std 828, Software Configuration Management Plans IEEE Std 830, Software Requirements Specifications IEEE Std 982.1, Dictionary of Measures to Produce Reliable Software IEEE Std 1008, Software Unit Testing IEEE Std 1012, Software Verification and Validation Plans IEEE Std 1016, Software Design Descriptions IEEE Std 1028, Software Reviews IEEE Std 1044, Classification for Software Anomalies IEEE Std 1045, Software Productivity Metrics IEEE Std 1061, Software Quality Metrics Methodology IEEE Software & System Engineering Standards IEEE Std 1062, Software Acquisition IEEE Std 1074, Developing a Software Project Life Cycle Process IEEE Std 1228, Software Safety Plans Plus nine other IEEE Std 1420, Software Reuse IEEE standards at the IEEE Std 1471, Architecture Description software and systems level IEEE Std 1517, Software Life Cycle Processes Reuse Processes IEEE Std 1633, Software Reliability IEEE/ISO/IEC 12207, Software Project Life Cycle Process IEEE/ISO/IEC 12119, Software packages - Quality requirements and testing IEEE/ISO/IEC 14764, Software Life Cycle Processes -- Maintenance IEEE/ISO/IEC 16326, Software Project Management Plans IEEE/ISO/IEC 24765, Glossary of Software Engineering Terminology IEEE/ISO/IEC 26514, Software User Documentation Land08 22-Apr-09 Walz 19
Framework Standards a higher level of abstraction 22-Apr-09 Walz 20
Standards are conceptual, not implemented Practices Standards: a set of mandatory requirements employed and enforced to prescribe a disciplined uniform approach to software development, that is, mandatory conventions and practices IS 24765 22-Apr-09 Walz 21
IS 12207 Software life cycle processes 43 S2E Processes with 123 Process Activities Purpose provide a defined set of processes to facilitate communication among acquirers, suppliers and other stakeholders in the life cycle of a software product. (1.2) An organization would adopt the standard and supplement it with appropriate procedures, practices, tools and policies. (5.1.4) Process has purpose and outcomes and consists of multiple activities, each having multiple tasks (5.2.1) Process outcomes are used to demonstrate successful achievement of the purpose of a process. (5.2.1) Distinct forms of a task (5.1.11): "Shall" is used to express a provision required for conformance, "Should" to express a recommendation among other possibilities, and "May" to indicate a course of action permissible within the limits of this standard. Life cycle processes and activities are selected and employed in a stage to fulfill the purpose and outcomes of that stage (5.1.12) 22-Apr-09 Walz 22
IS 12207 6.2.1 Life Cycle Model Management Process Purpose Define, maintain, and assure availability of policies, life cycle processes, life cycle models, and procedures for use by the organization Provide life cycle policies, processes, and procedures that are consistent with the organization's objectives, that are defined, adapted, improved and maintained to support individual project needs within the context of the organization, and that are capable of being applied using effective, proven methods and tools. Outcomes of successful implementation: a) policies and procedures for the management and deployment of life cycle models and processes are provided; b) responsibility, accountability and authority for life cycle management are defined; d c) life cycle processes, models and procedures for use by the organization are defined, maintained and improved; and d) prioritized process improvements are implemented. 22-Apr-09 Walz 23
Software Engineering Body of Knowledge SWEBOK 10 Knowledge Areas Software Requirements Software Design Software Construction o Software Testing Software Maintenance Software Configuration Mgmt Software Eng. Management Software Engineering Process Software Eng. Tools & Methods Software Quality 8 Related Disciplines Computer Engineering Computer Science Management Mathematics Project Management Quality Management Software Ergonomics Systems Engineering i The Guide to SWEBOK www.swebok.org is 202 pages 22-Apr-09 Walz 24
Allocation Of IEEE And ISO Software Engineering Standards To SWEBOK Knowledge Areas Knowledge Areas STANDARDS 22-Apr-09 Walz 25
Standards for S2E Product Realization Standards Vocabulary Process Standards d Process Processes guide stakeholders through the life cycle S2E Body Of Knowledge improved Tools Standards People & Quality & Productivity Technology, Behaviors Tools Certification Standards People need to be skilled in techniques Technology enables and know when to apply them processes and techniques 22-Apr-09 Walz 26
S2E Project Management & Support Objectives People Processes Standards / Practices Quality Productivity Risk Reduction Degree / Curriculum Certifications Sftw Dev Prof - CSDP -IEEE Sftw Dev Assoc. - CSDA -IEEE Sftw Quality Engr - CSQE -ASQ Sftw Prj Mgr - CSPM -QAI Sftw Prj Mgr - SwPM -SQI Project Mgmt Professional -PMI Training 22-Apr-09 Walz 27
Practitioners Skills related to S2E Standards Code of Ethics... Shall participate i t in lifelong l learning regarding the practice of their profession Assist colleagues in being fully aware of current standard work practices Education, based on SWEBOK Software Engineering Computing Curricula 2004 (SE2004) Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering i Graduate SWE Reference Curriculum (GSwERC) Continual education Courseware based on SWEBOK Certifications, based on SWEBOK CSDP Certified Software Development Professional CSDA Certified Software Development Associate 22-Apr-09 Walz 28
S2E Processes Work Processes IEEE 15288 System Engineering Processes IEEE 12207 Software Engineering Processes IEEE Software & System Engineering Standards Collection Life Cycle Model of Processes & Artifacts Spectrum between 100% Sequential vs. 100% Iterative Tools: CM, PM, CASE, etc Workflow between Processes, Tools, and Practitioners 22-Apr-09 Walz 29
Work Product / Artifact Life Cycle Model defines processes, their relationship, and Artifacts Definitions from CMMI Work Product is any artifact produced by a process Artifacts can include records, files, documents, parts of the product, services, processes, specifications, and invoices A key distinction between a work product and a product component is that a work product need not be engineered or part of the end product Artifacts used for appraisals and audits CMMI-DEV, IS 15504, ISO 9001 22-Apr-09 Walz 30
S2E Work Products and Records Documents and records provide: Communications within the team and to stakeholders Foundation for improvement Evidence of compliance Software & System Engineering organizations Have freedom on the format and content of typical software engineering project documents Can chose from several frameworks, standards, and methods to implement and enhance their mission and value-added services within their company 22-Apr-09 Walz 31
Design Artifacts from Standards Use standards to define: Processes for work flow Match: Staff, Processes Work Products, Staff credentials, Content and Format Process inputs, Process Records Process outputs, Project Plan milestones Project milestone, Project & Process & Configuration records 22-Apr-09 Walz 32
Improvement requires Engineering processes to be: Hot Warm Well defined, Followed, and Measured Neutral Cool Cold 22-Apr-09 Walz 33
Artifact Creation Example: Software Requirements Specifications (SRS) IEEE 12207 7.1.2 Software Requirements Analysis Process (5 shall s s / 2 pages) Calls for SRS CMMI-DEV Requirements Development framework (3 Goals, 9 Practices / 20 pg) Calls for SRS Software Requirements Specifications (SRS) requirements from IEEE 830 (10 shall s / 26 pg) SRS document Outline from IEEE 830 appendix SRS document Guidance from best practices SRS document Template from best practices 22-Apr-09 Walz 34
Software Requirements Specifications Atif Artifactt IEEE Standard 830, Practice for Software Requirements Specifications Outlines the requirements for what comprises a good Software Requirements Specification (SRS): Establishes basis for agreement between customers and suppliers on what the software product is to do Reduces the development effort Provides a basis for estimating costs and schedules Provides a baseline for validation and verification Facilitates transfer Serves as a basis for enhancement 22-Apr-09 Walz 35
IEEE 830 Table of Contents 22-Apr-09 Walz 36
Conclusions and Recommendations Advanced software & systems engineering management & practices will achieve objectives: quality, productivity, customer satisfaction, and compliance Quality outcomes requires Quality Processes Quality Processes create useful Artifacts Design Artifacts from Standards and best practices 22-Apr-09 Walz 37
Formalized Intellectual Property Good Techniques / Methods Ati Articles published with peer review Case studies Good Principles Best Practices Workshops Body Of Knowledge Standards developed Books Collegiate Curriculum Certification of experts & organizations Licenses 22-Apr-09 Walz 38
Formalized Intellectual Property Technical Council on Software Webinars Engineering Right-Sizing Agile Development, Steve Standards Committee on Software & McConnell System Engineering Standardizing Your Software Process IEEE S2E Standards collection Conferences & Proceedings SSTC 2009 Tech Summit 2008 Publications Computer IEEE Software IT Professional IEEE Transactions on Software Engineering Podcasts IEEE Talks Software Process Improvement Initiatives, by Susan K. Land ebooks (ReadyNotes) A Practical Metrics and Measurements Guide for Today s Software Project Manager by Susan K. Land, William C. Hobart Jr., and John W. Walz, Books The Road Map to Software Engineering: g A Standards-Based Guide by James W. Moore Practical Support for CMMI-SW Software Project Documentation: Using IEEE Software Engineering Standards by Susan K. Land, John W. Walz Certification in CSDA / CSDP Certified Software Development Associate Certified Software Development Professional 22-Apr-09 Walz 39
References CMMI for Development, Version 1.2, SEI Croll04, Croll, P; Eight Steps to Success in CMMI Compliant Process Engineering, 16th Annual Systems and Software Technology Conference, 20- Apr-2004 IEEE Software Engineering Standards Collection, Institute of Electrical and Electronics Engineers, Inc. IEEE Standard Glossary of Software Engineering Terminology IEEE Standard 12207 Land06, Land, S.K.; Walz, J.; Practical CMMI Software Process Documentation- Using IEEE Software Engineering Standards, John- Wiley/IEEE Press, Feb 2006 Land08, Land, S. K.; Real World Application of International Process and IEEE Software and Systems Engineering Standards to Software Process Improvement Initiatives; SSTC; 30-Apr-08 Moore, J.W.; The Role of Process Standards in Process Definition ; Moore06, Moore, J.W.; The Road Map to Software Engineering, A Standards- Based Guide, 2006 SESC93, Long Range Planning Group, Master Plan for Software Engineering Standards, Version 1.0, 1-Dec-1993 22-Apr-09 Walz 40
Webinars from IEEE Computer Society Similar presentations - CS Webinars series http://www2.computer.org/portal/web/webinars org/portal/web/webinars Call for Experts to create CS Webinars contact Debbie Sims DSims@computer.org or Dick Price dprice@computer.orgorg 22-Apr-09 Walz 41
Acronyms used ASQ American Society for Quality CASE Computer-Aided Software Engineering CM Configuration Management CMMI Capability Maturity Model Integrated CMMI-DEV CMMI for Development CSDA Certified Software Development Associate CSDP Certified Software Development Professional CSPM Certified Software Project Manager CSQE Certified Software Quality Engineer Engr Engineer IDEAL SM Initiating, Diagnosing, Establishing, Acting, Learning IEEE 15288 Systems Engineering - System life cycle processes IEEE 12207 Life Cycle Processes for Software Engineering IS 15504 ISO/IEC Information Technology Process Assessment IS 24765 ISO/IEC Software and Systems Engineering Vocabulary ISO 9001 Quality management systems -- Requirements PM Program Management PMI Project Manager Institute S2E Software & System Engineering SRS Software Requirements Specifications Std Standard SWEBOK Software Engineering Body of Knowledge 22-Apr-09 Walz 42
Questions? 22-Apr-09 Walz 43