From Wikipedia, the free encyclopedia
Systems engineering techniques are used in complex projects: spacecraft design, computer chip design, robotics, software integration, and bridge building. Systems engineering uses a host of tools that include modeling and simulation, requirements analysis and scheduling to manage complexity.
Systems engineering is an interdisciplinary field of engineering that focuses on how complex engineering projects should be designed and managed. Issues such as logistics, the coordination of different teams, and automatic control of machinery become more difficult when dealing with large, complex projects. Systems engineering deals with work-processes and tools to handle such projects, and it overlaps with both technical and human-centered disciplines such as control engineering and project management.
QFD House of Quality for Enterprise Product Development Processes
The term systems engineering can be traced back to Bell Telephone Laboratories in the 1940s. The need to identify and manipulate the properties of a system as a whole, which in complex engineering projects may greatly differ from the sum of the parts' properties, motivated the Department of Defense, NASA, and other industries to apply the discipline.
When it was no longer possible to rely on design evolution to improve upon a system and the existing tools were not sufficient to meet growing demands, new methods began to be developed that addressed the complexity directly. The evolution of systems engineering, which continues to this day, comprises the development and identification of new methods and modeling techniques. These methods aid in better comprehension of engineering systems as they grow more complex. Popular tools that are often used in the Systems Engineering context were developed during these times, including USL, UML, QFD, and IDEF0.
In 1990, a professional society for systems engineering, the National Council on Systems Engineering (NCOSE), was founded by representatives from a number of US corporations and organizations. NCOSE was created to address the need for improvements in systems engineering practices and education. As a result of growing involvement from systems engineers outside of the U.S., the name of the organization was changed to the International Council on Systems Engineering (INCOSE) in 1995. Schools in several countries offer graduate programs in systems engineering, and continuing education options are also available for practicing engineers.
|"An interdisciplinary approach and means to enable the realization of successful systems" — INCOSE handbook, 2004.
|"System engineering is a robust approach to the design, creation, and operation of systems. In simple terms, the approach consists of identification and quantification of system goals, creation of alternative system design concepts, performance of design trades, selection and implementation of the best design, verification that the design is properly built and integrated, and post-implementation assessment of how well the system meets (or met) the goals." — NASA Systems engineering handbook, 1995.
|"The Art and Science of creating effective systems, using whole system, whole life principles" OR "The Art and Science of creating optimal solution systems to complex issues and problems" — Derek Hitchins, Prof. of Systems Engineering, former president of INCOSE (UK), 2007.
|"The concept from the engineering standpoint is the evolution of the engineering scientist, i.e., the scientific generalist who maintains a broad outlook. The method is that of the team approach. On large-scale-system problems, teams of scientists and engineers, generalists as well as specialists, exert their joint efforts to find a solution and physically realize it...The technique has been variously called the systems approach or the team development method." — Harry H. Goode & Robert E. Machol, 1957.
|"The Systems Engineering method recognizes each system is an integrated whole even though composed of diverse, specialized structures and sub-functions. It further recognizes that any system has a number of objectives and that the balance between them may differ widely from system to system. The methods seek to optimize the overall system functions according to the weighted objectives and to achieve maximum compatibility of its parts." — Systems Engineering Tools by Harold Chestnut, 1965.
Systems Engineering signifies both an approach and, more recently, as a discipline in engineering. The aim of education in Systems Engineering is to simply formalize the approach and in doing so, identify new methods and research opportunities similar to the way it occurs in other fields of engineering. As an approach, Systems Engineering is holistic and interdisciplinary in flavor.
Origins and traditional scope
The traditional scope of engineering embraces the design, development, production and operation of physical systems, and systems engineering, as originally conceived, falls within this scope. "Systems engineering", in this sense of the term, refers to the distinctive set of concepts, methodologies, organizational structures (and so on) that have been developed to meet the challenges of engineering functional physical systems of unprecedented complexity. The Apollo program is a leading example of a systems engineering project.
The use of the term "systems engineering" has evolved over time to embrace a wider, more holistic concept of "systems" and of engineering processes. This evolution of the definition has been a subject of ongoing controversy , and the term continues to be applied to both the narrower and broader scope.
Systems Engineering focuses on analyzing and eliciting customer needs and required functionality early in the development cycle, documenting requirements, then proceeding with design synthesis and system validation while considering the complete problem, the system lifecycle. Oliver et al. claim that the systems engineering process can be decomposed into
- a Systems Engineering Technical Process, and
- a Systems Engineering Management Process.
Within Oliver's model, the goal of the Management Process is to organize the technical effort in the lifecycle, while the Technical Process includes assessing available information, defining effectiveness measures, to create a behavior model, create a structure model, perform trade-off analysis, and create sequential build & test plan.
Depending on their application, although there are several models that are used in the industry, all of them aim to identify the relation between the various stages mentioned above and incorporate feedback. Examples of such models include the Waterfall model and the VEE model.
System development often requires contribution from diverse technical disciplines. By providing a systems (holistic) view of the development effort, systems engineering helps meld all the technical contributors into a unified team effort, forming a structured development process that proceeds from concept to production to operation and, in some cases, to termination and disposal.
This perspective is often replicated in educational programs in that Systems Engineering courses are taught by faculty from other engineering departments which, in effect, helps create an interdisciplinary environment.
The need for systems engineering arose with the increase in complexity of systems and projects. When speaking in this context, complexity incorporates not only engineering systems, but also the logical human organization of data. At the same time, a system can become more complex due to an increase in size as well as with an increase in the amount of data, variables, or the number of fields that are involved in the design. The International Space Station is an example of such a system.
The development of smarter control algorithms, microprocessor design, and analysis of environmental systems also come within the purview of systems engineering. Systems engineering encourages the use of tools and methods to better comprehend and manage complexity in systems. Some examples of these tools can be seen here:
Taking an interdisciplinary approach to engineering systems is inherently complex since the behavior of and interaction among system components is not always immediately well defined or understood. Defining and characterizing such systems and subsystems and the interactions among them is one of the goals of systems engineering. In doing so, the gap that exists between informal requirements from users, operators, marketing organizations, and technical specifications is successfully bridged.
The scope of Systems Engineering activities
One way to understand the motivation behind systems engineering is to see it as a method, or practice, to identify and improve common rules that exist within a wide variety of systems. Keeping this in mind, the principles of Systems Engineering — holism, emergent behavior, boundary, et al. — can be applied to any system, complex or otherwise, provided systems thinking is employed at all levels. Besides defense and aerospace, many information and technology based companies, software development firms, and industries in the field of electronics & communications require Systems engineers as part of their team.
An analysis by the INCOSE Systems Engineering center of excellence (SECOE) indicates that optimal effort spent on Systems Engineering is about 15-20% of the total project effort. At the same time, studies have shown that Systems Engineering essentially leads to reduction in costs among other benefits. However, no quantitative survey at a larger scale encompassing a wide variety of industries has been conducted until recently. Such studies are underway to determine the effectiveness and quantify the benefits of Systems engineering.
Systems engineering encourages the use of modeling and simulation to validate assumptions or theories on systems and the interactions within them.
Use of methods that allow early detection of possible failures, in Safety engineering, are integrated into the design process. At the same time, decisions made at the beginning of a project whose consequences are not clearly understood can have enormous implications later in the life of a system, and it is the task of the modern systems engineer to explore these issues and make critical decisions. There is no method which guarantees that decisions made today will still be valid when a system goes into service years or decades after it is first conceived but there are techniques to support the process of systems engineering. Examples include the use of soft systems methodology, Jay Wright Forrester's System dynamics method and the Unified Modeling Language (UML), each of which are currently being explored, evaluated and developed to support the engineering decision making process.
Education in systems engineering is often seen as an extension to the regular engineering courses, reflecting the industry attitude that engineering students need a foundational background in one of the traditional engineering disciplines (e.g. mechanical engineering, industrial engineering, computer science, electrical engineering) plus practical, real-world experience in order to be effective as systems engineers. Undergraduate university programs in systems engineering are rare.
INCOSE maintains a continuously updated Directory of Systems Engineering Academic Programs worldwide. As of 2006, there are about 75 institutions in United States that offer 130 undergraduate and graduate programs in systems engineering. Education in systems engineering can be taken as SE-centric or Domain-centric.
- SE-centric programs treat systems engineering as a separate discipline and all the courses are taught focusing on systems engineering practice and techniques.
- Domain-centric programs offer systems engineering as an option that can be exercised with another major field in engineering.
Both these patterns cater to educate the systems engineer who is able to oversee interdisciplinary projects with the depth required of a core-engineer.
Systems engineering topics
Systems engineering tools are strategies, procedures, and techniques that aid in performing systems engineering on a project or product. The purpose of these tools vary from database management, graphical browsing, simulation, and reasoning, to document production, neutral import/export and more.
There are many definitions of what a system is in the field of systems engineering. Below are a few authoritative definitions:
- ANSI/EIA-632-1999: "An aggregation of end products and enabling products to achieve a given purpose."
- IEEE Std 1220-1998: "A set or arrangement of elements and processes that are related and whose behavior satisfies customer/operational needs and provides for life cycle sustainment of the products."
- ISO/IEC 15288:2008: "A combination of interacting elements organized to achieve one or more stated purposes."
- NASA Systems Engineering Handbook: "(1) The combination of elements that function together to produce the capability to meet a need. The elements include all hardware, software, equipment, facilities, personnel, processes, and procedures needed for this purpose. (2) The end product (which performs operational functions) and enabling products (which provide life-cycle support services to the operational end products) that make up a system."
- INCOSE Systems Engineering Handbook: "homogeneous entity that exhibits predefined behavior in the real world and is composed of heterogeneous parts that do not individually exhibit that behavior and an integrated configuration of components and/or subsystems."
- INCOSE: "A system is a construct or collection of different elements that together produce results not obtainable by the elements alone. The elements, or parts, can include people, hardware, software, facilities, policies, and documents; that is, all things required to produce systems-level results. The results include system level qualities, properties, characteristics, functions, behavior and performance. The value added by the system as a whole, beyond that contributed independently by the parts, is primarily created by the relationship among the parts; that is, how they are interconnected."
The systems engineering process
Depending on their application, tools are used for various stages of the systems engineering process:
Models play important and diverse roles in systems engineering. A model can be defined in several ways, including:
- An abstraction of reality designed to answer specific questions about the real world
- An imitation, analogue, or representation of a real world process or structure; or
- A conceptual, mathematical, or physical tool to assist a decision maker.
Together, these definitions are broad enough to encompass physical engineering models used in the verification of a system design, as well as schematic models like a functional flow block diagram and mathematical (i.e., quantitative) models used in the trade study process. This section focuses on the last.
The main reason for using mathematical models and diagrams in trade studies is to provide estimates of system effectiveness, performance or technical attributes, and cost from a set of known or estimable quantities. Typically, a collection of separate models is needed to provide all of these outcome variables. The heart of any mathematical model is a set of meaningful quantitative relationships among its inputs and outputs. These relationships can be as simple as adding up constituent quantities to obtain a total, or as complex as a set of differential equations describing the trajectory of a spacecraft in a gravitational field. Ideally, the relationships express causality, not just correlation.
Tools for graphic representations
Initially, when the primary purpose of a systems engineer is to comprehend a complex problem, graphic representations of a system are used to communicate a system's functional and data requirements. Common graphical representations include:
A graphical representation relates the various subsystems or parts of a system through functions, data, or interfaces. Any or each of the above methods are used in an industry based on its requirements. For instance, the N2 chart may be used where interfaces between systems is important. Part of the design phase is to create structural and behavioral models of the system.
Once the requirements are understood, it is now the responsibility of a Systems engineer to refine them, and to determine, along with other engineers, the best technology for a job. At this point starting with a trade study, systems engineering encourages the use of weighted choices to determine the best option. A decision matrix, or Pugh method, is one way (QFD is another) to make this choice while considering all criteria that are important. The trade study in turn informs the design which again affects the graphic representations of the system (without changing the requirements). In an SE process, this stage represents the iterative step that is carried out until a feasible solution is found. A decision matrix is often populated using techniques such as statistical analysis, reliability analysis, system dynamics (feedback control), and optimization methods.
At times a systems engineer must assess the existence of feasible solutions, and rarely will customer inputs arrive at only one. Some customer requirements will produce no feasible solution. Constraints must be traded to find one or more feasible solutions. The customers' wants become the most valuable input to such a trade and cannot be assumed. Those wants/desires may only be discovered by the customer once the customer finds that he has overconstrained the problem. Most commonly, many feasible solutions can be found, and a sufficient set of constraints must be defined to produce an optimal solution. This situation is at times advantageous because one can present an opportunity to improve the design towards one or many ends, such as cost or schedule. Various modeling methods can be used to solve the problem including constraints and a cost function.
Systems Modeling Language (SysML), a modeling language used for systems engineering applications, supports the specification, analysis, design, verification and validation of a broad range of complex systems.
Universal Systems Language (USL) is a systems oriented object modeling language with executable (computer independent) semantics for defining complex systems, including software.
Many related fields may be considered tightly coupled to systems engineering. These areas have contributed to the development of systems engineering as a distinct entity.
- Cognitive systems engineering
- Cognitive systems engineering (CSE) is a specific approach to the description and analysis of human-machine systems or sociotechnical systems. The three main themes of CSE are how humans cope with complexity, how work is accomplished by the use of artefacts, and how human-machine systems and socio-technical systems can be described as joint cognitive systems. CSE has since its beginning become a recognised scientific discipline, sometimes also referred to as Cognitive Engineering. The concept of a Joint Cognitive System (JCS) has in particular become widely used as a way of understanding how complex socio-technical systems can be described with varying degrees of resolution. The experience with CSE has been described in two books that summarises the field after more than 20 years of work, namely and .
- Configuration Management
- Like Systems Engineering, Configuration Management as practiced in the defence and aerospace industry is a broad systems-level practice. The field parallels the taskings of Systems Engineering; where Systems Engineering deals with requirements development, allocation to development items and verification, Configuration Management deals with requirements capture, traceability to the development item, and audit of development item to ensure that it has achieved the desired functionality that Systems Engineering and/or Test and Verification Engineering have proven out through objective testing.
- Control engineering
- Control engineering and its design and implementation of control systems, used extensively in nearly every industry, is a large sub-field of Systems Engineering. The cruise control on an automobile and the guidance system for a ballistic missile are two examples. Control systems theory is an active field of applied mathematics involving the investigation of solution spaces and the development of new methods for the analysis of the control process.
- Industrial engineering
- Industrial engineering is a branch of engineering that concerns the development, improvement, implementation and evaluation of integrated systems of people, money, knowledge, information, equipment, energy, material and process. Industrial engineering draws upon the principles and methods of engineering analysis and synthesis, as well as mathematical, physical and social sciences together with the principles and methods of engineering analysis and design to specify, predict and evaluate the results to be obtained from such systems.
- Interface design
- Interface design and its specification are concerned with assuring that the pieces of a system connect and inter-operate with other parts of the system and with external systems as necessary. Interface design also includes assuring that system interfaces be able to accept new features, including mechanical, electrical and logical interfaces, including reserved wires, plug-space, command codes and bits in communication protocols. This is known as extensibility. Human-Computer Interaction (HCI) or Human-Machine Interface (HMI) is another aspect of interface design, and is a critical aspect of modern Systems Engineering. Systems engineering principles are applied in the design of network protocols for local-area networks and wide-area networks.
- Operations research
- Operations research supports systems engineering. The tools of operations research are used in systems analysis, decision making, and trade studies. Several schools teach SE courses within the operations research or industrial engineering department, highlighting the role systems engineering plays in complex projects. operations research, briefly, is concerned with the optimization of a process under multiple constraints.
- Reliability engineering
- Reliability engineering is the discipline of ensuring a system will meet the customer's expectations for reliability throughout its life; i.e. it will not fail more frequently than expected. Reliability engineering applies to all aspects of the system. It is closely associated with maintainability, availability and logistics engineering. Reliability engineering is always a critical component of safety engineering, as in failure modes and effects analysis (FMEA) and hazard fault tree analysis, and of security engineering. Reliability engineering relies heavily on statistics, probability theory and reliability theory for its tools and processes.
- Performance engineering
- Performance engineering is the discipline of ensuring a system will meet the customer's expectations for performance throughout its life. Performance is usually defined as the speed with which a certain operation is executed or the capability of executing a number of such operations in a unit of time. Performance may be degraded when an operations queue to be executed is throttled when the capacity is of the system is limited. For example, the performance of a packet-switched network would be characterised by the end-to-end packet transit delay or the number of packets switched within an hour. The design of high-performance systems makes use of analytical or simulation modeling, whereas the delivery of high-performance implementation involves thorough performance testing. Performance engineering relies heavily on statistics, queuing theory and probability theory for its tools and processes.
- Program management and project management.
- Program management (or programme management) has many similarities with systems engineering, but has broader-based origins than the engineering ones of systems engineering. Project management is also closely related to both program management and systems engineering.
- Safety engineering
- The techniques of safety engineering may be applied by non-specialist engineers in designing complex systems to minimize the probability of safety-critical failures. The "System Safety Engineering" function helps to identify "safety hazards" in emerging designs, and may assist with techniques to "mitigate" the effects of (potentially) hazardous conditions that cannot be designed out of systems.
- Security engineering
- Security engineering can be viewed as an interdisciplinary field that integrates the community of practice for control systems design, reliability, safety and systems engineering. It may involve such sub-specialties as authentication of system users, system targets and others: people, objects and processes.
- Software engineering
- From its beginnings Software engineering has helped shape modern Systems Engineering practice. The techniques used in the handling of complexes of large software-intensive systems has had a major effect on the shaping and reshaping of the tools, methods and processes of SE.
- ^ Schlager, J. (July 1956). "Systems engineering: key to modern development". IRE Transactions EM-3: 64–66.
- ^ Arthur D. Hall (1962). A Methodology for Systems Engineering. Van Nostrand Reinhold. ISBN 0442030460.
- ^ Andrew Patrick Sage (1992). Systems Engineering. Wiley IEEE. ISBN 0471536393.
- ^ INCOSE Resp Group (11 June 2004). "Genesis of INCOSE". http://www.incose.org/about/genesis.aspx. Retrieved 2006-07-11.
- ^ a b INCOSE Education & Research Technical Committee. "Directory of Systems Engineering Academic Programs". http://www.incose.org/educationcareers/academicprogramdirectory.aspx. Retrieved 2006-07-11.
- ^ Systems Engineering Handbook, version 2a. INCOSE. 2004.
- ^ NASA Systems Engineering Handbook. NASA. 1995. SP-610S.
- ^ "Derek Hitchins". INCOSE UK. http://incose.org.uk/people-dkh.htm. Retrieved 2007-06-02.
- ^ Goode, Harry H.; Robert E. Machol (1957). System Engineering: An Introduction to the Design of Large-scale Systems. McGraw-Hill. p. 8. LCCN 56-11714.
- ^ Chestnut, Harold (1965). Systems Engineering Tools. Wiley. ISBN 0471154482.
- ^ Oliver, David W.; Timothy P. Kelliher, James G. Keegan, Jr. (1997). Engineering Complex Systems with Models and Objects. McGraw-Hill. pp. 85–94. ISBN 0070481881.
- ^ "The SE VEE". SEOR, George Mason University. http://www.gmu.edu/departments/seor/insert/robot/robot2.html. Retrieved 2007-05-26.
- ^ Ramo, Simon; Robin K. St.Clair (1998) (PDF). The Systems Approach: Fresh Solutions to Complex Problems Through Combining Science and Practical Common Sense. Anaheim, CA: KNI, Inc.. http://www.incose.org/ProductsPubs/DOC/SystemsApproach.pdf.
- ^ "Systems Engineering Program at Cornell University". Cornell University. http://systemseng.cornell.edu/people.html. Retrieved 2007-05-25.
- ^ "ESD Faculty and Teaching Staff". Engineering Systems Division, MIT. http://esd.mit.edu/people/faculty.html. Retrieved 2007-05-25.
- ^ "Core Courses, Systems Analysis - Architecture, Behavior and Optimization". Cornell University. http://systemseng.cornell.edu/CourseList.html. Retrieved 2007-05-25.
- ^ a b Systems Engineering Fundamentals. Defense Acquisition University Press, 2001
- ^ Rick Adcock. "Principles and Practices of Systems Engineering" (PDF). INCOSE, UK. http://incose.org.uk/Downloads/AA01.1.4_Principles%20&%20practices%20of%20SE.pdf. Retrieved 2007-06-07.
- ^ "Systems Engineering, Career Opportunities and Salary Information (1994)". George Mason University. http://www.gmu.edu/departments/seor/insert/intro/introsal.html. Retrieved 2007-06-07.
- ^ a b "Understanding the Value of Systems Engineering" (PDF). http://www.incose.org/secoe/0103/ValueSE-INCOSE04.pdf. Retrieved 2007-06-07.
- ^ "Surveying Systems Engineering Effectiveness" (PDF). http://www.splc.net/programs/acquisition-support/presentations/surveying.pdf. Retrieved 2007-06-07.
- ^ "Systems Engineering Cost Estimation by Consensus". http://www.valerdi.com/cosysmo/rvalerdi.doc. Retrieved 2007-06-07.
- ^ Andrew P. Sage, Stephen R. Olson (2001). Modeling and Simulation in Systems Engineering. SAGE Publications. http://intl-sim.sagepub.com/cgi/content/abstract/76/2/90. Retrieved 2007-06-02.
- ^ E.C. Smith, Jr. (1962) (PDF). Simulation in systems engineering. IBM Research. http://www.research.ibm.com/journal/sj/011/ibmsj0101D.pdf. Retrieved 2007-06-02.
- ^ "Didactic Recommendations for Education in Systems Engineering" (PDF). http://www.gaudisite.nl/DidacticRecommendationsSESlides.pdf. Retrieved 2007-06-07.
- ^ "Perspectives of Systems Engineering Accreditation" (PDF). INCOSE. http://sistemas.unmsm.edu.pe/occa/material/INCOSE-ABET-SE-SF-21Mar06.pdf. Retrieved 2007-06-07.
- ^ Steven Jenkins. "A Future for Systems Engineering Tools" (PDF). NASA. pp. pp 15. http://www.marc.gatech.edu/events/pde2005/presentations/0.2-jenkins.pdf. Retrieved 2007-06-10.
- ^ "Processes for Engineering a System", ANSI/EIA-632-1999, ANSI/EIA, 1999 
- ^ "Standard for Application and Management of the Systems Engineering Process -Description", IEEE Std 1220-1998, IEEE, 1998 
- ^ "Systems and software engineering - System life cycle processes", ISO/IEC 15288:2008, ISO/IEC, 2008 
- ^ "NASA Systems Engineering Handbook", Revision 1, NASA/SP-2007-6105, NASA, 2007 
- ^ "Systems Engineering Handbook", v3.1, INCOSE, 2007 
- ^ "A Consensus of the INCOSE Fellows", INCOSE, 2006 
- ^ a b c NASA (1995). "System Analysis and Modeling Issues". In: NASA Systems Engineering Handbook June 1995. p.85.
- ^ Long, Jim (2002) (PDF). Relationships between Common Graphical Representations in System Engineering. Vitech Corporation. http://www.vitechcorp.com/whitepapers/files/200701031634430.CommonGraphicalRepresentations_2002.pdf.
- ^ "OMG SysML Specification" (PDF). SysML Open Source Specification Project. pp. pp 23. http://www.sysml.org/docs/specs/OMGSysML-FAS-06-05-04.pdf. Retrieved 2007-07-03.
- ^ Hamilton, M. Hackler, W.R., “A Formal Universal Systems Semantics for SysML, 17th Annual International Symposium, INCOSE 2007, San Diego, CA, June 2007.
- ^ Hollnagel E. & Woods D. D. (1983). Cognitive systems engineering: New wine in new bottles. International Journal of Man-Machine Studies, 18, 583-600.
- ^ Hollnagel, E. & Woods, D. D. (2005) Joint cognitive systems: The foundations of cognitive systems engineering. Taylor & Francis
- ^ Woods, D. D. & Hollnagel, E. (2006). Joint cognitive systems: Patterns in cognitive systems engineering. Taylor & Francis.
- ^ (see articles for discussion:  and )
- Harold Chestnut, Systems Engineering Methods. Wiley, 1967.
- Harry H. Goode, Robert E. Machol System Engineering: An Introduction to the Design of Large-scale Systems, McGraw-Hill, 1957.
- David W. Oliver, Timothy P. Kelliher & James G. Keegan, Jr. Engineering Complex Systems with Models and Objects. McGraw-Hill, 1997.
- Simon Ramo, Robin K. St.Clair, The Systems Approach: Fresh Solutions to Complex Problems Through Combining Science and Practical Common Sense, Anaheim, CA: KNI, Inc, 1998.
- Andrew P. Sage, Systems Engineering. Wiley IEEE, 1992.
- Andrew P. Sage, Stephen R. Olson, Modeling and Simulation in Systems Engineering, 2001.
- Dale Shermon, Systems Cost Engineering, Gower publishing, 2009