SOFTWARE REQUIREMENTS MANAGEMENT Colorado Technical University CS455 Jack Simmonds Instructor: Crispin Jose 5/4/2014 TOPICS OF DISCUSSION Summary of IEEE Standards 830 & 1233a CMMI – System and Project metrics & management Goals & Practices for Requirements Management Available Tools for Requirements Management Producing Metrics Through Requirements Management Summary SUMMARY OF IEEE 830 & 1233 STANDARDS IEEE 830-1998 aims at specifying best practices for creating SRS documents and the requirements they contain. One of the main goals is to provide a methodology and framework for developing software through the organized conversion of client needs and objectives into functional requirements (Software Engineering Standards Committee). This approach ensures that future developers, tasked with working on an existing project, save time and effort when modifying or enhancing previously completed software. It further provides a documented basis for common understanding between software suppliers and customers & promotes the development of reusable software modules. IEEE SUMMARY CONTINUED IEEE 1233a–1998 provides a guide for the development of System Requirements Specification (SyRS). SyRS includes not just the SRS but all elements involved with any input, output, interaction, or interface with software defined by that SRS, the actors involved and the environment in which it operates (Software Engineering Standards Committee). Both standards include templates designed to assist in creating SRS and other project related documents. CMMI CMM measures the maturity of the software development process on a scale of 1 to 5. CMMI integrates CMM across software development, systems engineering, product or process development and supplier sourcing. Each or all of those disciplines may be selected from the CMMI at the time of implementation by a business or other organization(Carnegie Mellon, 2014). The idea is to establish a standard framework for process improvement Carnegie Mellon(2014). It is hoped that application of CMMI will increase customer satisfaction and system development efficiency by applying an emphasis on planning, monitoring, measuring, and improving predictability for all stakeholders involved in a system. Processes are rated for maturity level according to five stages of refinement: initial, repeatable (managed), defined, managed (quantitatively), optimized (Hartman). PURPOSE OF REQM WITHIN CMMI Requirements management is part of a group of quality directed process control behaviors that also includes a focus on verification, validation and quality assurance (Carnegie Mellon, CMMI & Business Objectives). The purpose of REQM is to reveal inconsistencies between developed requirements and the project stakeholders' goals and needs. REQM is considered a maturity level 2 process within the CMMI and is also used to define and implement the requirements change control process (Carnegie Mellon, Process Area 17). CMM provides a framework for measuring the levels of maturity of the processes involved within a software development process. These maturity levels provide an industry standard for reducing risk whether a software project is ready for customer deployment or requires more development to meet customer requirements, and is being developed in a manner that allows for continued improvement, through change or enhancement, once deployed. REQM WITHIN CMMI (CONTINUED) Requirements management is an indication that maturity level 2 has been achieved within a staged representation of organizational process improvement. This is especially true when the software development process also includes project planning, monitoring and control, measurement and analysis (not yet at the level of complete verification and validation which is an indicator of level 3). (Carnegie Mellon, Maturity levels and Process areas) REQM GOALS & PRACTICES USED FOR CS455 Traceability Usability Maintainability Version control Security constraints Performance Reusability Verification & Validation IDENTIFICATION OF A REQUIREMENTS MANAGEMENT TOOL aNimble Platform: available from sourceforge (ideastub, 2014) Provides a requirements management tool that includes traceability, version control, change control, searchable requirements, and a GUI for rapid training and increased usibility. aNimble is available free as a downloadable software package (including its own local server/database) or as a cloud based service. aNimble is open source software. Any updates are automatically applied to the cloud based version. USE OF REQM TO PRODUCE METRICS REQM involves both change control and traceability. These attributes are both naturally comprised of elements that provide measurable metrics. For traceability every requirement is given an identifying label which can be used to trace the original source of the requirement, its dependencies and any sibling or child relationships. The primary evaluating metric for traceability is a traceability matrix (Jose, C., 2014). The matrix displays a table showing each requirement, a brief description, its relationship to specific project requirements and its association with verification and validation testing. Depending on the size of the software project, the table may be expanded to include columns that show associations with other elements that may be involved with a given requirement (interfaces, external systems, other modules). Change control involves the documentation of any and all changes made to requirements and thus provides a paper trail for any changes made to a system. This paper trail will include what changes were made, why, the original state, the changed state, the identifying label of the requirement being changed, who made the change(s), and when those change(s) were made (ideastub, 2014). Change control goes hand-in-hand with version control. As changes are made to a document the convention is to update the version number to reflect a more recent version of the software. In this way, the version number becomes another metric for tracking a software project throughout its lifecycle. SUMMARY Requirements management provides a framework for developing, maintaining, improving, and reusing software throughout the software development lifecycle. By implementing techniques that allow for traceability, version control, change control, and testing: software projects can be made more readily maintainable, easier to change or enhance, and portable across differing platforms. REFERENCES Bezroukov, Dr. N.(1996-2014).A Slightly Skeptical View on CMM Softwarepanorama.org : http://www.softpanorama.org/SE/CMM/index.shtml Bezroukov, Dr. N., et. al.(2014).Software Life Cycle Models.Softpanorama.org http://www.softpanorama.org/SE/software_life_cycle_models.shtml Carnegie Mellon(2014).Capability Maturity Model Integration.Carnegie Mellon: Pittsburgh, PA http://www.tutorialspoint.com/cmmi/ Hartman, K.(2013).CMM & Organizational Process Maturity.Kenneth G. Hartman, CISSP:Madison, WI. accessed online: http://www.kennethghartman.com/cmmorganizational-process-maturity/ ideastub(2014).aNimble Platform.SourceForge, Dice Holdings, Inc: Urbandale, IA. http://sourceforge.net/projects/nimble/ accessed online Jose, C.(2014).CS455 Requirements Engineering SRS template.CTU:Colorado Springs, CO REFERENCES (CONTINUED) Magee, S.(2008).The Expert on ISO/IEC 12207 Software Lifecycle Processes.SEPT http://www.12207.com/ Moore, J.(2010).ISO/IEC/IEEE 15288 and 12207: The Entry-Level Process Standards.The Mitre Corporation http://www.ieee-stc.org/proceedings/2010/pdfs/JWM2677.pdf SEPT(2009).ISO/IEC 12207 Checklist.Software Engineering Process Technology http://global.ihs.com/doc_detail.cfm?rid=SEPT&document_name=I SO/IEC%2012207%20CHECKLIST* accessed online Software Engineering Standards Committee(1998).IEEE Recommended Practice for Software Requirements Specifications, Std 830-1998.The Institute of Electrical and Electronics Engineers, Inc.: New York, NY REFERENCES (CONTINUED) Software Engineering Standards Committee(1998).IEEE Guide for Developing System Requirements Specifications, Std 1233a-1998.The Institute of Electrical and Electronics Engineers, Inc.: New York, NY Wiegers, K. & Beatty, J.(2013)Software Requirements 3, 3rd Edition. Microsoft Press:Redmond, WA., ebook accessed online ISBN 978-0-7356-7966-5