Agile Systems Engineering presents a vision of systems engineering where precise specification of requirements, structure, and behavior meet larger concerns as such as safety, security, reliability, and performance in an agile engineering context.
World-renown author and speaker Dr. Bruce Powel Douglass incorporates agile methods and model-based systems engineering (MBSE) to define the properties of entire systems while avoiding errors that can occur when using traditional textual specifications. Dr. Douglass covers the lifecycle of systems development, including requirements, analysis, design, and the handoff to specific engineering disciplines. Throughout, Dr. Douglass couples agile methods with SysML and MBSE to arm system engineers with the conceptual and methodological tools they need to avoid specification defects and improve system quality while simultaneously reducing the effort and cost of systems engineering.
- Identifies how the concepts and techniques of agile methods can be effectively applied in systems engineering context
- Shows how to perform model-based functional analysis and tie these analyses back to system requirements and stakeholder needs, and forward to system architecture and interface definition
- Provides a means by which the quality and correctness of systems engineering data can be assured (before the entire system is built!)
- Explains agile system architectural specification and allocation of functionality to system components
- Details how to transition engineering specification data to downstream engineers with no loss of fidelity
- Includes detailed examples from across industries taken through their stages, including the 'Waldo' industrial exoskeleton as a complex system
Embedded Software Methodologist. Triathlete. Systems engineer. Contributor to UML and SysML specifications. Writer. Black Belt. Neuroscientist. Classical guitarist. High school dropout. Bruce Powel Douglass, who has a doctorate in neurocybernetics from the USD Medical School, has over 35 years of experience developing safety-critical real-time applications in a variety of hard real-time environments. He is the author of over 5700 book pages from a number of technical books including Real-Time UML, Real-Time UML Workshop for Embedded Systems, Real-Time Design Patterns, Doing Hard Time, Real-Time Agility, and Design Patterns for Embedded Systems in C. He is the Chief Evangelist at IBM Rational, where he is a thought leader in the systems space and consulting with and mentors IBM customers all over the world. He can be followed on Twitter @BruceDouglass. Papers and presentations are available at his Real-Time UML Yahoo technical group (http://tech.groups.yahoo.com/group/RT-UML) and from his IBM thought leader page (www-01.ibm.com/software/rational/leadership/thought/brucedouglass.html).
Agile Systems Engineering presents a vision of systems engineering where precise specification of requirements, structure, and behavior meet larger concerns as such as safety, security, reliability, and performance in an agile engineering context. World-renown author and speaker Dr. Bruce Powel Douglass incorporates agile methods and model-based systems engineering (MBSE) to define the properties of entire systems while avoiding errors that can occur when using traditional textual specifications. Dr. Douglass covers the lifecycle of systems development, including requirements, analysis, design, and the handoff to specific engineering disciplines. Throughout, Dr. Douglass couples agile methods with SysML and MBSE to arm system engineers with the conceptual and methodological tools they need to avoid specification defects and improve system quality while simultaneously reducing the effort and cost of systems engineering. Identifies how the concepts and techniques of agile methods can be effectively applied in systems engineering context Shows how to perform model-based functional analysis and tie these analyses back to system requirements and stakeholder needs, and forward to system architecture and interface definition Provides a means by which the quality and correctness of systems engineering data can be assured (before the entire system is built!) Explains agile system architectural specification and allocation of functionality to system components Details how to transition engineering specification data to downstream engineers with no loss of fidelity Includes detailed examples from across industries taken through their stages, including the "e;Waldo"e; industrial exoskeleton as a complex system
What Are Agile Methods and Why Should I Care?
Chapter 2 introduces agile methods and their application to systems engineering. Although agile methods arose in IT software development, they have begun to be applied——with good success—in other engineering disciplines as well. In order to understand how best to apply them to systems engineering, a good understanding of the basic agile concepts, methods, and approaches is necessary. This chapter outlines the Agile Manifesto and restates it to be more relevant to systems engineering, including identifying the important measure of success—verified engineering data. The benefits of agile approaches are explained with an emphasis on the difference it can make to systems engineers. Key methodological approaches—incremental engineering, dynamic planning, continuous verification (of engineering data), continuous integration, and so on—are all explained in the context of systems engineering.
The chapter highlights the key agile best practices for improving quality and efficiency in systems engineering and then outlines the Harmony Agile Model-Based Systems Engineering (Harmony aMBSE) process that integrates those best practices into a coherent approach.
Keywords
Agile; harmony agile MBSE process; agile best practices; agile systems engineering
Chapter Outline
2.2 Benefits of Agile Methods 46
2.3 Applying the Agile Manifesto to Systems Engineering 48
2.3.3 Actively Reduce Project Risk 50
2.3.5 Integrate Continuously 51
2.3.6 Use Case 1: Find Tracks in Airspace 52
2.3.7 Use Case 2: Perform Periodic Built in Test (PBIT) 52
2.3.9 Modeling Is Essential for aMBSE 53
2.4 Agile Best Practices for Systems Engineering 53
2.4.1 Incremental Development of Work Products 53
2.4.2 Continual Verification of Work Products 54
2.4.3 Executable Requirements Models 55
2.4.4 Model-Based Specification Linked to Textual Specification 56
2.4.5 Continuous Dependability Assessment 58
2.4.6 Active Project Risk Management 59
2.4.7 Model-Based Hand Off to Downstream Engineering 61
2.5 Putting It All Together: The Harmony Agile MBSE (aMBSE) Process 63
2.5.2 Define Stakeholder Requirements 68
2.5.3 System Requirements Definition and Analysis 70
2.5.4 Approach 1: Flow-based Use Case Analysis 71
2.5.5 Approach 2: Scenario-based Use Case Analysis 72
2.5.6 Approach 3: State-based Use Case Analysis 72
2.5.7 Architectural Analysis 74
2.5.9 Perform Iteration Retrospective 79
2.5.10 Handoff to Downstream Engineering 79
2.5.12 Perform Quality Assurance Audits 82
2.6 Summary 83
References 84
Agile methods are largely a response to increasing regimentation of software development and work that was only tangentially related to the development of the software itself. It is also a reaction to the fact that despite the burden of this additional work, the quality of the software is low and the software far too often doesn’t meet the needs of its intended users. Although agile was originally conceived for small software projects, we will see that there is much to recommend it for other endeavors, including (and of great interest here) systems engineering.
From an overview perspective, agile methods are really about optimizing development along two dimensions—product quality and engineering efficiency. Many people think it’s about what you DON’T do—you DON’T plan, document, fill out paper work, design, analyze, or create requirements. In actuality, agile is more about what you DO and the order in which you do them. Agile methods are meant to be adaptive and responsive to different situations and changing needs using objective evidence to guide how work it done.
Put another way, it isn’t so much that you do different things when you do agile methods as much as the order and sequence of those things is changed. This facilitates early feedback as to the correctness and adequacy of the work and work products you create. For example, traditional methods1 do a “breadth-first” approach to creating work products and defer the verification of those work products at least until they are complete, and often much later. Agile, on the other hand, incrementally verifies the work products as they are being created. That provides more immediate feedback as to the correctness of the work product and how well your process is helping you achieve your engineering goals.
I liken the agile approach to dental hygiene. Imagine that you want to ensure your “tooth quality” by applying the “tooth brushing quality step.” Because you view this as important, at the end of every year, on December 31, you do a good and thorough job of brushing your teeth and verifying their quality, and then going to a dentist for tooth quality problem remediation. Much to your dismay, your tooth quality is pretty low and requires extraordinary measures (and no small amount of discomfort) to bring the quality up. That is how the traditional approach works with deferred verification.
Imagine instead performing this quality improvement and assessment step immediately after using your teeth (i.e., after meals). Through constant application of quality methods, the quality of your teeth remains high throughout the year. This is a more hygienic approach and avoids big quality problems more than identifying them late for defect removal. In either case, you’re performing quality assurance activities to both improve and verify quality but what is different is when those activities are performed. Agile methods perform quality assurance activities throughout the development of important work products rather than after they are completed. That is, when these activities are performed, we optimize defect avoidance rather than defect identification.
Oh, and Agilistas DO plan, document, fill out paper work, design, analyze, and create requirements. We’ll talk about how those activities can be done in an agile systems engineering environment in some detail in this book.
2.1 The Agile Manifesto
A good place to start to understand agile methods is with the agile manifesto.2 The manifesto is a public declaration of intent by the Agile Alliance, consisting of 17 signatories including Kent Beck, Martin Fowler, Ron Jeffries, Robert Martin, and others. Originally drafted in 2001, this manifesto is summed up in four key statements:
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan.
A thing to note about the manifesto is that it states an emphasis, not an exclusion. We emphasize working software over documentation, but that doesn’t mean that we don’t write documentation. We emphasize responsiveness to change over dogmatically following a plan, but that doesn’t mean that we don’t plan. The point is to pay more attention to the things that really matter. Paying attention to meeting the customer’s needs and creating correct software is more important than following the plan and writing the documentation, but it doesn’t mean that these other aspects don’t get any attention at all.
To support the statements of the manifesto, the Agile Alliance give a set of 12 principles. I’ll state them here to set the context of the following discussion:
• Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
• Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
• Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
• Business people and developers must work together daily throughout the project.
• Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
• The most efficient and effective method of conveying...
Erscheint lt. Verlag | 24.9.2015 |
---|---|
Sprache | englisch |
Themenwelt | Mathematik / Informatik ► Informatik ► Programmiersprachen / -werkzeuge |
Informatik ► Software Entwicklung ► Agile Software Entwicklung | |
ISBN-10 | 0-12-802349-X / 012802349X |
ISBN-13 | 978-0-12-802349-5 / 9780128023495 |
Haben Sie eine Frage zum Produkt? |
![PDF](/img/icon_pdf_big.jpg)
Größe: 21,8 MB
Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine
Geräteliste und zusätzliche Hinweise
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
![EPUB](/img/icon_epub_big.jpg)
Größe: 15,6 MB
Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine
Geräteliste und zusätzliche Hinweise
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich