10/24/06 1
The Use of Patterns in Systems The Use of Patterns in Systems EngineeringEngineering
Satya MoorthySatya MoorthyRobert Cloutier, Ph.D.Robert Cloutier, Ph.D.
Lockheed Martin Lockheed Martin –– MS2MS2
10/24/06 2
TopicsTopics•• AbstractAbstract•• DefinitionsDefinitions•• Value of PatternsValue of Patterns•• Documented Pattern LanguageDocumented Pattern Language•• PatternsPatterns•• New Pattern LanguageNew Pattern Language•• SummarySummary•• ReferencesReferences
10/24/06 3
About the AuthorsAbout the AuthorsSatya MoorthySatya Moorthy is currently a Systems Engineer with is currently a Systems Engineer with Lockheed Martin in Moorestown NJ. He develops Lockheed Martin in Moorestown NJ. He develops architectures for complex systems using systems architectures for complex systems using systems engineering tools and architecture frameworksengineering tools and architecture frameworksSatya has as a M.E. in Systems Engineering, and a B.E. in Satya has as a M.E. in Systems Engineering, and a B.E. in Computer Engineering, both from Stevens Institute of Computer Engineering, both from Stevens Institute of Technology. He is also a Certified Enterprise Architect from Technology. He is also a Certified Enterprise Architect from the Federal Enterprise Architecture Certification (FEAC) the Federal Enterprise Architecture Certification (FEAC) InstituteInstitute
10/24/06 4
About the AuthorsAbout the AuthorsRobert CloutierRobert Cloutier received his Ph.D. in Systems Engineering received his Ph.D. in Systems Engineering from Stevens Institute of Technology. He currently is a from Stevens Institute of Technology. He currently is a Principal Systems Engineer with the Lockheed Martin Principal Systems Engineer with the Lockheed Martin Corporation in Moorestown, NJ. He is responsible for Corporation in Moorestown, NJ. He is responsible for developing and modeling architectures for complex developing and modeling architectures for complex systems, and has over 20 years experience in systems systems, and has over 20 years experience in systems engineering, software engineering, and project engineering, software engineering, and project management in both commercial and defense industries. management in both commercial and defense industries.
Rob also has an M.B.A. from Eastern College, and a B.S. Rob also has an M.B.A. from Eastern College, and a B.S. from the United States Naval Academy. He is an Industry from the United States Naval Academy. He is an Industry Fellow at Stevens Institute of Technology and an Adjunct Fellow at Stevens Institute of Technology and an Adjunct Professor for Eastern University. He is a member of the Professor for Eastern University. He is a member of the International Council on Systems Engineering (INCOSE), an International Council on Systems Engineering (INCOSE), an associate editor for the Journal of Enterprise Architecture, associate editor for the Journal of Enterprise Architecture, and is a member of IEEE. Rob also chairs the Rowan and is a member of IEEE. Rob also chairs the Rowan University Electrical and Computer Engineering Department University Electrical and Computer Engineering Department Industry Advisory Board. Finally, Rob teaches Architecture Industry Advisory Board. Finally, Rob teaches Architecture and Design for Stevens Institute’s Systems Engineering and Design for Stevens Institute’s Systems Engineering Graduate program.Graduate program.
10/24/06 5
AbstractAbstract•• A pattern is a solution that can be applied to similar A pattern is a solution that can be applied to similar
problems, or problems with similar characteristics. problems, or problems with similar characteristics. Patterns have existed since before most people can Patterns have existed since before most people can remember, and have been used across different disciplines remember, and have been used across different disciplines from designing a building, to developing software, to from designing a building, to developing software, to making clothing.making clothing.
•• Recent research has examined the use of patterns in Recent research has examined the use of patterns in systems engineering and at the documentation of such systems engineering and at the documentation of such patterns to enable reuse.patterns to enable reuse. Based on a documented systems Based on a documented systems engineering pattern language from this recent research, this engineering pattern language from this recent research, this presentation reviews the documented pattern language, presentation reviews the documented pattern language, identifies the patterns used to develop the pattern identifies the patterns used to develop the pattern language, and then develops a new pattern language based language, and then develops a new pattern language based on an existing functional sequence.on an existing functional sequence.
10/24/06 6
Architect’s ChallengeArchitect’s Challenge
•• The artThe art--like quality of systems architecting depends on the like quality of systems architecting depends on the architect’s ability to recognize complex system requirements architect’s ability to recognize complex system requirements patterns and the ability to match those patterns to architecturepatterns and the ability to match those patterns to architecturesolutions [Carpenter, 1996]solutions [Carpenter, 1996]
•• Through years of experience, the architect recognizes Through years of experience, the architect recognizes relationships and patternsrelationships and patterns
–– Applies correct solution to the problem at handApplies correct solution to the problem at hand
10/24/06 7
What Constitutes a Pattern?What Constitutes a Pattern?Some patterns seem self evident, but Some patterns seem self evident, but have actually matured out of have actually matured out of experience…experience…
Simple at first…Simple at first…
They are the result of trial and They are the result of trial and error, but survive the test of error, but survive the test of time.time.
And maybe theyAnd maybe theybecome more complexbecome more complex
Patterns are Reusable Successes
10/24/06 8
DefinitionsDefinitions•• System architecture patterns constitute highSystem architecture patterns constitute high--level level
structures, appropriate to the design of the major structures, appropriate to the design of the major components of a system. They express the relation between components of a system. They express the relation between the context, a problem, and a solution, documenting the context, a problem, and a solution, documenting attributes and usage guidance. They are attributes and usage guidance. They are timetime--provenproven in in solving problems similar in naturesolving problems similar in nature to the problem under to the problem under consideration. [Cloutier, Doctoral Dissertation, 2006]consideration. [Cloutier, Doctoral Dissertation, 2006]
Patterns are not invented, patterns are mined Patterns are not invented, patterns are mined from past successful designsfrom past successful designs
10/24/06 9
Patterns In Use by Multiple DisciplinesPatterns In Use by Multiple Disciplines
Requirements EngineeringControl Systems Engineeringhttp://g.oswego.edu/dl/acs/acs/acs.html
IBM e-Business Pattern Hierarchy
10/24/06 10
Pattern HistoryPattern History•• 1964 1964 –– Christopher AlexanderChristopher Alexander
–– Books on Architecture, building and urban planningBooks on Architecture, building and urban planning–– Notes on the Synthesis of FormNotes on the Synthesis of Form–– A Pattern LanguageA Pattern Language–– A Timeless Way of BuildingA Timeless Way of Building
•• 1987 1987 -- Ward Cunningham & Kent BeckWard Cunningham & Kent Beck–– Decided to use some of Alexander's ideas Decided to use some of Alexander's ideas –– Developed five patterns for guiding novice Smalltalk programmersDeveloped five patterns for guiding novice Smalltalk programmers–– Presented paper at OOPSLA'87 in OrlandoPresented paper at OOPSLA'87 in Orlando
•• "Using Pattern Languages for Object"Using Pattern Languages for Object--Oriented Programs"Oriented Programs". . •• 1995 1995 -- Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
–– Software DesignSoftware Design–– Design Patterns: Elements of Reusable ObjectDesign Patterns: Elements of Reusable Object--Oriented SoftwareOriented Software
10/24/06 11
What is a Pattern? What is a Pattern?
A pattern is a model or facsimile of an actual thing or action, which provides some degree of representation (an abstraction) to enable the recreation of that entity over and over again.
Client
Server
Client
DepartmentalServer
EnterpriseServer
Client-ServerPattern
Three-tierPattern
“Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem in such a way that you could use this solution a million times over without doing it the same way twice.” [Ale77].
10/24/06 12
Value of PatternsValue of Patterns•• Knowledge ManagementKnowledge Management
–– “… mining the patterns of classic embedded systems “… mining the patterns of classic embedded systems to capture the core competencies of their business… to capture the core competencies of their business… Why? We can trace availability and fault tolerance to Why? We can trace availability and fault tolerance to patterns, and we have extracted those patterns from patterns, and we have extracted those patterns from the minds of longthe minds of long--standing experts.” [Cop97] standing experts.” [Cop97]
•• Capture Good Architecture ConceptsCapture Good Architecture Concepts–– Enable reuse of good concepts and implementations, Enable reuse of good concepts and implementations,
and to preserve them for future projects and to preserve them for future projects •• Control ComplexityControl Complexity
–– Architectural patterns may help control the complexity Architectural patterns may help control the complexity of an architecture by standardizing it on a well known of an architecture by standardizing it on a well known and practiced pattern and practiced pattern
•• Common UnderstandingCommon Understanding–– Describe parts of the designs and implementations in Describe parts of the designs and implementations in
the context of known and understood patterns may the context of known and understood patterns may foster a common understanding of the architecturefoster a common understanding of the architecture
•• Mitigate RisksMitigate Risks
10/24/06 13
Documented PatternDocumented PatternPattern Name: Pattern Name: Perform C2Perform C2Aliases:Aliases: None knownNone knownKeywords:Keywords: Plan Detect Control Act C2Plan Detect Control Act C2
Command ControlCommand ControlProblem Context:Problem Context: Does not address “Prepare” precondition Does not address “Prepare” precondition
nor “Assess” post conditionnor “Assess” post conditionProblem Description:Problem Description: In command and control (C2), it is normal In command and control (C2), it is normal
for the problem to progress from one for the problem to progress from one stage stage to another. Those stages are to another. Those stages are Plan/Detect/Control/ActPlan/Detect/Control/Act
Forces:Forces: Terminology from various domains may be Terminology from various domains may be different, and must be adapted in the different, and must be adapted in the application of the patternapplication of the pattern
10/24/06 14
Perform C2 PatternPerform C2 PatternPattern Solution:Pattern Solution: This pattern provides the basis for This pattern provides the basis for
developing the command and control developing the command and control (C2) interfaces and information that (C2) interfaces and information that moves through the stages of C2. It moves through the stages of C2. It provides the A0 Context and the first provides the A0 Context and the first level of decomposition using IDEF0. level of decomposition using IDEF0.
Interfaces:Interfaces: Information flows between the stages Information flows between the stages of this pattern, as well as feedback of this pattern, as well as feedback loops. Some information is generated loops. Some information is generated only in a particular stage and then only in a particular stage and then output in the form of reports. Names of output in the form of reports. Names of information can be modified as information can be modified as required by specific domain required by specific domain application.application.
10/24/06 15
Perform C2 PatternPerform C2 Pattern
Tracks/Targets of InterestTasking
Strategy
Situational DataSensor DataResource AssignmentsReq for InformationReportsRaw IntelPlansOrdersMission Support RequestsMission StatusMission Assessment
External Guidance
External Data
Environmental Data
Doctrine
Resources
Coordination DataAssessment (BDA)0
Perform C2 (Pattern)
Date:Tuesday, January 17, 2006
Author:Robert J. Cloutier
Number:0
Name:Perform C2 (Pattern)
10/24/06 16
Pattern LanguagesPattern Languages•• A pattern language is a network of patterns that are A pattern language is a network of patterns that are
complementary, and may work together to form a larger complementary, and may work together to form a larger pattern. The C2 pattern is actually a pattern language. It is pattern. The C2 pattern is actually a pattern language. It is comprised of four architecture smaller patterns comprised of four architecture smaller patterns –– plan, plan, detect, control and act. Each of these four patterns could be detect, control and act. Each of these four patterns could be used independently to architect the Concept of Operations used independently to architect the Concept of Operations (CONOPS) of another system. For instance, the Plan pattern (CONOPS) of another system. For instance, the Plan pattern shown could be used by a marketing organization shown could be used by a marketing organization developing a new software application to manage new developing a new software application to manage new product launches. product launches.
10/24/06 17
Perform C2 Pattern LanguagePerform C2 Pattern Language
Tracks/Targets of Interest
Strategy
Situational Data
Tasking
Situational Data
Sensor Data
Sensor Availability
Resource Assignments
Req for InformationReports
Raw Intel
PlansOrders
Mission Support Requests
Mission Status
Tasking
Situational Data
Situational Data
Situational Data
Sensor Availability
S&D Reports
Resource AssignmentsResource Assignments
Resource AssignmentsPlansPlans
Plans
Planning Reports
Orders
Mission Support Requests
Mission Support Requests
Tracks/Targets of Interest
TaskingMission RequirementsMission Requirements
Mission Assessment
Intel Products
Immediate Tasking
External Guidance
External Data
Environmental Data
Doctrine
Coordination Data
C2 Resource Availability
C2 Reports
A...
Analysis
Resources
Mission AssessmentMission Assessment
Intel Products
Engagement Report
Coordination Data
Analysis
1
Plan (Operations)
1
2
Detect(Surveillance &
Tracking)
2
3
Control(Classification
& Identification)
3
4
Act(Execute/ProsecuteMission)
4
10/24/06 18
Perform C2 Pattern LanguagePerform C2 Pattern Language•• The Perform C2 Pattern Language is comprised of four The Perform C2 Pattern Language is comprised of four
patternspatterns–– PlanPlan–– DetectDetect–– ControlControl–– EngageEngage
•• The patterns can be reused by an architect who is starting The patterns can be reused by an architect who is starting to develop an activity model based on another functional to develop an activity model based on another functional sequencesequence
10/24/06 19
New Pattern LanguageNew Pattern Language•• Reuse of elements of Perform C2 Pattern to develop a new Reuse of elements of Perform C2 Pattern to develop a new
Pattern Language based on another functional sequence.Pattern Language based on another functional sequence.•• Example Example –– MAPEMAPE
–– Monitor the SituationMonitor the Situation–– Assess the SituationAssess the Situation–– Plan OperationsPlan Operations–– Execute the MissionExecute the Mission
•• Reuse “Plan” from previously documented pattern in order to Reuse “Plan” from previously documented pattern in order to develop new pattern language based on MAPEdevelop new pattern language based on MAPE
10/24/06 20
Tracks/Targets of Interest
Strategy
Situational Data
Tasking
Situational Data
Sensor Data
Sensor Availability
Resource Assignments
Req for InformationReports
Raw Intel
PlansOrders
Mission Support Requests
Mission Status
Tasking
Situational Data
Situational Data
Situational Data
Sensor Availability
S&D Reports
Resource AssignmentsResource Assignments
Resource AssignmentsPlansPlans
Plans
Planning Reports
Orders
Mission Support Requests
Mission Support Requests
Tracks/Targets of Interest
TaskingMission RequirementsMission Requirements
Mission Assessment
Intel Products
Immediate Tasking
External Guidance
External Data
Environmental Data
Doctrine
Coordination Data
C2 Resource Availability
C2 Reports
A...
Analysis
Resources
Mission AssessmentMission Assessment
Intel Products
Engagement Report
Coordination Data
Analysis
1
Plan (Operations)
1
2
Detect(Surveillance &
Tracking)
2
3
Control(Classification
& Identification)
3
4
Act(Execute/ProsecuteMission)
4
Plan Pattern in Perform C2Plan Pattern in Perform C2
10/24/06 21
““Plan” PatternPlan” Pattern
A00
PlanOperations
Strategy
ExternalGuidance
Doctrine
Resources
Mission Assessment
Mission Support Request
Resource Availability
Planning Reports
Resource Assignments
Request For InformationRaw Intel
Plans
Analysis
Tasking Orders
Intel Products
Mission Requirements
External Data
Environmental Data
10/24/06 22
Reusing “Plan” in MAPE Reusing “Plan” in MAPE -- Situational AwarenessSituational Awareness
A11
Monitor theSituation
A44
Execute theMission
A33
PlanOperations
A22
Assess theSituation
Coordination Data
Coordination Data
External Guidance
Mission AssessmentReports
RFIs
RFIsReports
ReportsRFIsTOI InformationResource Availability
Situational Data Update
Command Authority
External Data (Intel Report, RFI’s)
External Environmental Data
Tasking Orders
Reports
RFIs
Common Operational Picture (COP)
Common Operational Picture (COP)
Common Operational Picture (COP)
Reports
External Tasking Orders
Subscription to COP
Mission Assessment
External Subscription to COP
RFIs
DoD FAA DHS
A11
Monitor theSituation
A44
Execute theMission
A33
PlanOperations
A22
Assess theSituation
Coordination Data
Coordination Data
External Guidance
Mission AssessmentReports
RFIs
RFIsReports
ReportsRFIsTOI InformationResource Availability
Situational Data Update
Command Authority
External Data (Intel Report, RFI’s)
External Environmental Data
Tasking Orders
Reports
RFIs
Common Operational Picture (COP)
Common Operational Picture (COP)
Common Operational Picture (COP)
Reports
External Tasking Orders
Subscription to COP
Mission Assessment
External Subscription to COP
RFIs
DoD FAA DHS
10/24/06 23
SummarySummary•• The use of patterns aids systems engineers in The use of patterns aids systems engineers in
solving similar problemssolving similar problems•• Patterns can be combined into pattern languagesPatterns can be combined into pattern languages•• Documenting patterns can be useful for Documenting patterns can be useful for
architecting systems in the futurearchitecting systems in the future•• Pattern documentation is not confined to, or Pattern documentation is not confined to, or
limited by, engineering toolslimited by, engineering tools
10/24/06 24
ReferencesReferencesAlexander, Christopher, Notes on the Synthesis of Form, CambridgAlexander, Christopher, Notes on the Synthesis of Form, Cambridge: Harvard University Press, e: Harvard University Press,
1964.1964.
Alexander, Christopher, A Pattern Language, New York: Oxford UniAlexander, Christopher, A Pattern Language, New York: Oxford University Press, 1977.versity Press, 1977.
Alexander, Christopher, A Timeless Way of Building. New York: OxAlexander, Christopher, A Timeless Way of Building. New York: Oxford University Press, 1979.ford University Press, 1979.
Alexander, Christopher, The Order of Nature: An Essay on the ArtAlexander, Christopher, The Order of Nature: An Essay on the Art of Building and the Nature of of Building and the Nature of the Universe, Book 1 The Phenomenon of Life, Berkley, CA: The Cethe Universe, Book 1 The Phenomenon of Life, Berkley, CA: The Center for Environmental nter for Environmental Structure, 2002.Structure, 2002.
Carpenter, Robert Glenn. System Architect’s Job Characteristics and Approach to the Conceptualization of Complex Systems. Doctoral Dissertation presented to the Faculty of the Graduate School University of Southern California, May 1996.
Cloutier, Robert and Dinesh Verma, Applying Pattern Concepts to Cloutier, Robert and Dinesh Verma, Applying Pattern Concepts to Enterprise Architecture, Enterprise Architecture, Journal of Enterprise Architecture Volume 2, Number 2, May 2006.Journal of Enterprise Architecture Volume 2, Number 2, May 2006.
Cloutier, Robert, Applicability of Patterns to Architecting CompCloutier, Robert, Applicability of Patterns to Architecting Complex Systems, Doctoral lex Systems, Doctoral Dissertation, Stevens Institute of Technology, 2006.Dissertation, Stevens Institute of Technology, 2006.
Cloutier, Robert, Towards the Application of Patterns to SystemsCloutier, Robert, Towards the Application of Patterns to Systems Engineering, Proceedings of Engineering, Proceedings of the 2005 Conference on Systems Engineering Research, March 2005.the 2005 Conference on Systems Engineering Research, March 2005.
Cloutier and Verma, Applying the Concept of Patterns to Systems Cloutier and Verma, Applying the Concept of Patterns to Systems Architecture, INCOSE Architecture, INCOSE Systems Journal, PreSystems Journal, Pre--release.release.
Cloutier, Robert, Calimar Consulting Website, http://www.calimarCloutier, Robert, Calimar Consulting Website, http://www.calimar.com/research.htm.com/research.htm
10/24/06 25
ReferencesReferencesCoplien, James, Idioms and Patterns as Architectural Literature,Coplien, James, Idioms and Patterns as Architectural Literature, IEEE Software Special Issue IEEE Software Special Issue
on Objects, Patterns, and Architectures, January 1997.on Objects, Patterns, and Architectures, January 1997.
Hartnett, Kenneth , Enhanced Civilian/Military Airspace SecurityHartnett, Kenneth , Enhanced Civilian/Military Airspace Security (ECMAS) System Conceptual (ECMAS) System Conceptual Architecture, Spring 2005Architecture, Spring 2005
10/24/06 26
Contact InformationContact InformationSatya MoorthySatya MoorthyLockheed Martin MS2, Moorestown NJLockheed Martin MS2, Moorestown NJEE--mail : mail : [email protected]@lmco.com
Robert Cloutier, Ph.D.Robert Cloutier, Ph.D.Lockheed Martin MS2, Moorestown NJLockheed Martin MS2, Moorestown NJEE--mail : mail : [email protected]@lmco.com
[email protected]@stevens.edu
10/24/06 27
Any Questions?Any Questions?
10/24/06 28
Top Related