SlideShare a Scribd company logo
ESSENSE – A Kernel of Essentials for Software EngineeringBrian Elvesæter, SINTEF ICTMethod Engineering – ME’1121 April 2011, Paris, France1
OutlineRequest for Proposal (RFP)Problem statementDesired solutionObjectives of the RFPRFP development history and teamMethod architecture and the Kernel approachRequirements: The KernelRequirements: The LanguageProposed RFP scheduleQuestions
Problem statementTraditional software engineering and process engineering approaches areviewed by development teams as beingtoo heavyweight and inflexible.Software processes defined by separate process engineers typicallydo not leave enough flexibility for a development team to customize and tailor the process they use,not just at the beginning, but continuously as necessary over the course of a development effort. As a result, the use of many good practices and processesis often missing or ad hoc in many development efforts,limiting the ability of development teams to be effective and scalablewhile remaining flexible and agile.
Desired solutionAgile software development is often effectively supported by the use of significant software frameworks that provide:a toolkit of components (libraries and templates)an easy-to-use scripting language for flexibly composing the components. A similar kind of framework is desired for the flexible creation of software development methods.a set of practices out of which methods can be composedTo allow the broadest possible applicability, what needs to be standardized are not the practices themselves, but the common ground of underlying concepts and principles used to define various practices. an easy-to-use practitioner-oriented modeling language (DSL) is needed to define practices based on the common ground and composing them into methods. The goal is to support a development team, i.e. the practitionersin defining, refining and customizing themselves the process they are actually using during the course of a software development effort.
ESSENSE RFP ObjectivesSolicits submissions for ESSENSEa Domain-Specific Language anda Kernel of Essentials for Software Engineering	(aka. the Common Ground)Goal: a language and a kernel that arescalable, extensible, and easy to use, allowing people to describe the essentials of 	their current and future methods and practices.Tool support: enable methods and practices to be composed, compared, evaluated,tailored, used, adapted, simulated and measuredby practitioners as well as taught and researched by academic and research communities.
RFP development history & teamVersion 0:December 2010, Issue list, OMG technical meeting, Santa Clara, USAVersion 1a:February 2011, Draft RFPhttp://www.omg.org/cgi-bin/doc?ad/2011-02-01Version 1b:March 2011, Updated RFP, AB review, OMG technical meeting, Washington DC, USAhttp://www.omg.org/cgi-bin/doc?ad/2011-03-01Version 2a/b:May/June 2011, Revised RFP, OMG technical meeting, Salt Lake City, USACore teamArne-Jørgen Berre (SINTEF)Dave Cuningham (Fujitsu UK)Brian Elvesæter (SINTEF)Shihong Huang (FAU)Ivar Jacobson (IJI)Paul McMahon (PEM Systems)Ed Seidewitz (Model Driven Solutions)Ed Seymour (Fujitsu UK)Other contributorsSEMATAdaptive SystemsCordysSOFTEAMESI-Tecnalia...
Method architectureA method is a composition of practices. Methods are enactable.A practice is a repeatable approach to doing something with a specific purpose in mind. A practice provides a systematic and verifiable way of addressing a particular aspect of the work at hand.The Kernel includes essential elements of software engineering.The Language is the domain-specific language to define methods, practices and the essential elements of the Kernel.
MethodPracticesA key idea is the existence of a KernelThe Kernel is very small, extracted from a large number of methodsIt contains a starting point (slots) for the things that every process has, e.g. work, team, requirement, software system, opportunity and stakeholder The Kernel is practice and method agnostic.LeadersDevelopersAnalystsTestersProcess engineers
Kernel: Straw man (illustrative conceptual model)Alphas(Abstract-Level Progress Health Attributes)represent things to work with that subsume and encapsulate work products at a higher level of abstraction.(1) relevant to an assessment of the project’s progress (stated objectives such as deadlines, costs, quality)(2) can be determined (directly or indirectly) in terms of the current state of the project’s work products< describes< supportsorganizes >AlphaWork ProductPatternprogressed by >< supportsproduces >progresses >organizes >< supportsorganizes >Pattern SpaceActivity SpaceActivity< involves< involvesCompetency
Kernel: Straw man (illustrative concrete syntax)Things to Work withThings to DoUnderstand the NeedEnsure StakeholderSatisfactionAccept the SystemOpportunityRequirementsSystemSpecify the SystemShape the SystemImplementSoftwareTest the SystemRelease the SystemProjectWay of WorkingTeamEstablish ProjectSteer ProjectSupport TeamConclude ProjectCompetenciesPatterns to ApplyCustomerRepresentativeKernelDeveloperAnalystTesterLeadership
Requirements: The KernelDefinitionExpressed in the Language.Encompass the fundamental concepts in the Software Engineering domain, including definitions of elements and their significant relationships.ConcisenessOnly include a small set of elements that are truly essential.The number of essential elements is expected to be closer to 10 than to 100.ScopeCover from the smallest projects to large systems and systems-of-systems.Broad practice coverageSupport many different practices used by significant segments of the industry.Broad lifecycle coverageAccommodate various lifecycle models used by significant segments of the industry.Broad technology coverageAdaptable to a wide range of software technologies (programming languages, specification languages, graphical notations, software tools) used by significant segments of the industry.ComparisonProvide a basis for the comparison of methods and practices to see which are suitable for a given situation.MeasurementProvide a basis for the measurement of methods and practices, both to enable performance evaluation and to guide evaluation and validation in research.ExtensionAbility to add practices, levels of detail and lifecycle models.
Requirements: The LanguageDefinitionAbstract syntax model defined in MOF (Meta-Object Facility). 	Formal static and operational semantics defined in terms of the abstract syntax.Graphical concrete syntax that formally maps to the abstract syntax.Textual concrete syntax that formally maps to the abstract syntax.DescriptionSupport the description of practices and methods in terms of the essential elements of the Kernel.CompositionSupport the composition of practices to describe existing and new methods.Work ProgressAllow the representation of work progress.(For example, describing a practice that involves iterative development requires describing the starting and ending states of every iteration.)EnactmentSupport the enactment of methods, both as used to help plan endeavors and as applied (or executed) as part of the day-to-day activities in real projects.
Proposed RFP schedule
QuestionsEmail:brian.elvesater@sintef.noOMG website:http://www.omg.orgSEMAT website:http://www.semat.org

More Related Content

PDF
ESSENSE – A Kernel of Essentials for Software Engineering
PDF
Software developer occupational brief
PPTX
Unit 1 OOSE
PPS
Quality in use of domain-specific languages: a case study
PPTX
Planning the development process
PDF
130817 latifa guerrouj - context-aware source code vocabulary normalization...
PDF
Rankingtherefactoring techniques
DOCX
Shrinivasa Resume
ESSENSE – A Kernel of Essentials for Software Engineering
Software developer occupational brief
Unit 1 OOSE
Quality in use of domain-specific languages: a case study
Planning the development process
130817 latifa guerrouj - context-aware source code vocabulary normalization...
Rankingtherefactoring techniques
Shrinivasa Resume

What's hot (13)

PPT
Ch01
PPS
Usability evaluation of Domain-Specific Languages
PDF
Cascon06 tooldemo.ppt
PDF
Software engineering interview questions
DOCX
Nasrin
DOC
Lesson 8...Question Part 2
PDF
Software Engineering - Basics
PDF
Pm soln9416141129710
PPTX
Quality and productivity factors
PPT
Prvt file test
PDF
Software Quality Assurance
PDF
M017548895
Ch01
Usability evaluation of Domain-Specific Languages
Cascon06 tooldemo.ppt
Software engineering interview questions
Nasrin
Lesson 8...Question Part 2
Software Engineering - Basics
Pm soln9416141129710
Quality and productivity factors
Prvt file test
Software Quality Assurance
M017548895
Ad

Viewers also liked (9)

ODP
Me2011 presentation by Manfred Jeusfeld
PPT
Kingfisherairline
PPTX
ME2011 presentation by Cortes Cornax
Ad

Similar to ESSENSE (20)

PPTX
Essence: A Common Ground for Flexible Methods
PPTX
software Processes
PPTX
Introduction to Software Engineering
PPT
Introduction of Software Engineering
PDF
Climbing the tree of unreachable fruits, reusing processes
PPSX
Process model rup
PPT
se02_SW_Process.ppt
PPT
2. Sofware process and models FOR THE UNIT
PPT
Chapter 2 Software Process models of SE.ppt
PPTX
SE-Unit 2_ Requirement Analysis and Modeling.pptx
PPT
Chapter_01.ppt
PPT
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
PPT
Software Process in software engineering
PPT
Pressman ch-3-prescriptive-process-models
PPTX
Lecture 1 SE.pptx
PPTX
A New Software Engineeering Approach
PPTX
Project planning and development cycle and testing
PPT
Lect 1- software engineering
PPT
Lecture 1-4.ppt Introduction to Software Engineering: The evolving role of so...
PDF
2- THE CHANGING NATURE OF SOFTWARE.pdf
Essence: A Common Ground for Flexible Methods
software Processes
Introduction to Software Engineering
Introduction of Software Engineering
Climbing the tree of unreachable fruits, reusing processes
Process model rup
se02_SW_Process.ppt
2. Sofware process and models FOR THE UNIT
Chapter 2 Software Process models of SE.ppt
SE-Unit 2_ Requirement Analysis and Modeling.pptx
Chapter_01.ppt
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
Software Process in software engineering
Pressman ch-3-prescriptive-process-models
Lecture 1 SE.pptx
A New Software Engineeering Approach
Project planning and development cycle and testing
Lect 1- software engineering
Lecture 1-4.ppt Introduction to Software Engineering: The evolving role of so...
2- THE CHANGING NATURE OF SOFTWARE.pdf

More from Method Engineering 2011 - IFIP WG.8.1 Working Conference (11)

PPT
ME2011 presentation by Hoppenbrouwers
PPT
Me2011 Granularity presentation by Henderson-Sellers
PPT
Me2011 Method Assessment by Henderson-Sellers
PPT
Me2011 presentation by Sophie Dupuy-Chessa
PPTX
Me2011 presentation by Victoria Torres
PPTX
PPTX

Recently uploaded (20)

PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Empathic Computing: Creating Shared Understanding
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Network Security Unit 5.pdf for BCA BBA.
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Understanding_Digital_Forensics_Presentation.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Review of recent advances in non-invasive hemoglobin estimation
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Empathic Computing: Creating Shared Understanding
Agricultural_Statistics_at_a_Glance_2022_0.pdf
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Dropbox Q2 2025 Financial Results & Investor Presentation
Digital-Transformation-Roadmap-for-Companies.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf

ESSENSE

  • 1. ESSENSE – A Kernel of Essentials for Software EngineeringBrian Elvesæter, SINTEF ICTMethod Engineering – ME’1121 April 2011, Paris, France1
  • 2. OutlineRequest for Proposal (RFP)Problem statementDesired solutionObjectives of the RFPRFP development history and teamMethod architecture and the Kernel approachRequirements: The KernelRequirements: The LanguageProposed RFP scheduleQuestions
  • 3. Problem statementTraditional software engineering and process engineering approaches areviewed by development teams as beingtoo heavyweight and inflexible.Software processes defined by separate process engineers typicallydo not leave enough flexibility for a development team to customize and tailor the process they use,not just at the beginning, but continuously as necessary over the course of a development effort. As a result, the use of many good practices and processesis often missing or ad hoc in many development efforts,limiting the ability of development teams to be effective and scalablewhile remaining flexible and agile.
  • 4. Desired solutionAgile software development is often effectively supported by the use of significant software frameworks that provide:a toolkit of components (libraries and templates)an easy-to-use scripting language for flexibly composing the components. A similar kind of framework is desired for the flexible creation of software development methods.a set of practices out of which methods can be composedTo allow the broadest possible applicability, what needs to be standardized are not the practices themselves, but the common ground of underlying concepts and principles used to define various practices. an easy-to-use practitioner-oriented modeling language (DSL) is needed to define practices based on the common ground and composing them into methods. The goal is to support a development team, i.e. the practitionersin defining, refining and customizing themselves the process they are actually using during the course of a software development effort.
  • 5. ESSENSE RFP ObjectivesSolicits submissions for ESSENSEa Domain-Specific Language anda Kernel of Essentials for Software Engineering (aka. the Common Ground)Goal: a language and a kernel that arescalable, extensible, and easy to use, allowing people to describe the essentials of their current and future methods and practices.Tool support: enable methods and practices to be composed, compared, evaluated,tailored, used, adapted, simulated and measuredby practitioners as well as taught and researched by academic and research communities.
  • 6. RFP development history & teamVersion 0:December 2010, Issue list, OMG technical meeting, Santa Clara, USAVersion 1a:February 2011, Draft RFPhttp://www.omg.org/cgi-bin/doc?ad/2011-02-01Version 1b:March 2011, Updated RFP, AB review, OMG technical meeting, Washington DC, USAhttp://www.omg.org/cgi-bin/doc?ad/2011-03-01Version 2a/b:May/June 2011, Revised RFP, OMG technical meeting, Salt Lake City, USACore teamArne-Jørgen Berre (SINTEF)Dave Cuningham (Fujitsu UK)Brian Elvesæter (SINTEF)Shihong Huang (FAU)Ivar Jacobson (IJI)Paul McMahon (PEM Systems)Ed Seidewitz (Model Driven Solutions)Ed Seymour (Fujitsu UK)Other contributorsSEMATAdaptive SystemsCordysSOFTEAMESI-Tecnalia...
  • 7. Method architectureA method is a composition of practices. Methods are enactable.A practice is a repeatable approach to doing something with a specific purpose in mind. A practice provides a systematic and verifiable way of addressing a particular aspect of the work at hand.The Kernel includes essential elements of software engineering.The Language is the domain-specific language to define methods, practices and the essential elements of the Kernel.
  • 8. MethodPracticesA key idea is the existence of a KernelThe Kernel is very small, extracted from a large number of methodsIt contains a starting point (slots) for the things that every process has, e.g. work, team, requirement, software system, opportunity and stakeholder The Kernel is practice and method agnostic.LeadersDevelopersAnalystsTestersProcess engineers
  • 9. Kernel: Straw man (illustrative conceptual model)Alphas(Abstract-Level Progress Health Attributes)represent things to work with that subsume and encapsulate work products at a higher level of abstraction.(1) relevant to an assessment of the project’s progress (stated objectives such as deadlines, costs, quality)(2) can be determined (directly or indirectly) in terms of the current state of the project’s work products< describes< supportsorganizes >AlphaWork ProductPatternprogressed by >< supportsproduces >progresses >organizes >< supportsorganizes >Pattern SpaceActivity SpaceActivity< involves< involvesCompetency
  • 10. Kernel: Straw man (illustrative concrete syntax)Things to Work withThings to DoUnderstand the NeedEnsure StakeholderSatisfactionAccept the SystemOpportunityRequirementsSystemSpecify the SystemShape the SystemImplementSoftwareTest the SystemRelease the SystemProjectWay of WorkingTeamEstablish ProjectSteer ProjectSupport TeamConclude ProjectCompetenciesPatterns to ApplyCustomerRepresentativeKernelDeveloperAnalystTesterLeadership
  • 11. Requirements: The KernelDefinitionExpressed in the Language.Encompass the fundamental concepts in the Software Engineering domain, including definitions of elements and their significant relationships.ConcisenessOnly include a small set of elements that are truly essential.The number of essential elements is expected to be closer to 10 than to 100.ScopeCover from the smallest projects to large systems and systems-of-systems.Broad practice coverageSupport many different practices used by significant segments of the industry.Broad lifecycle coverageAccommodate various lifecycle models used by significant segments of the industry.Broad technology coverageAdaptable to a wide range of software technologies (programming languages, specification languages, graphical notations, software tools) used by significant segments of the industry.ComparisonProvide a basis for the comparison of methods and practices to see which are suitable for a given situation.MeasurementProvide a basis for the measurement of methods and practices, both to enable performance evaluation and to guide evaluation and validation in research.ExtensionAbility to add practices, levels of detail and lifecycle models.
  • 12. Requirements: The LanguageDefinitionAbstract syntax model defined in MOF (Meta-Object Facility). Formal static and operational semantics defined in terms of the abstract syntax.Graphical concrete syntax that formally maps to the abstract syntax.Textual concrete syntax that formally maps to the abstract syntax.DescriptionSupport the description of practices and methods in terms of the essential elements of the Kernel.CompositionSupport the composition of practices to describe existing and new methods.Work ProgressAllow the representation of work progress.(For example, describing a practice that involves iterative development requires describing the starting and ending states of every iteration.)EnactmentSupport the enactment of methods, both as used to help plan endeavors and as applied (or executed) as part of the day-to-day activities in real projects.