Shihong Huang

Similar documents
The Essence of Software Engineering: Applying the SEMAT Kernel. Scott Ambler interviews Ivar Jacobson

A Comparison of the Essence 1.0 and SPEM 2.0 Specifications for Software Engineering Methods

Software Development Moves from a Craft to an Engineering Discipline Using the Essence Standard

WE ARE FOCUSED ON HELPING OUR CLIENTS WORK SMARTER AND MORE EFFICIENTLY SO THAT TOGETHER, WE CAN EMPOWER PEOPLE TO DELIVER GREAT RESULTS.

Lean and Mean Architecting with RCDA

Using Use Cases on Agile Projects

Requirements Management Practice Description

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

Agile Unified Process

Chap 1. Introduction to Software Architecture

Strategy. Agility. Delivery.

Overview of Scrum. Scrum Flow for one Sprint SCRUMstudy.com. All Rights Reserved. Daily Standup. Release Planning Schedule. Create.

Advancing Your Business Analysis Career Intermediate and Senior Role Descriptions

Increasing Development Knowledge with EPFC

Becoming a Business Analyst

A Software process engineering course

Business Solutions Manager Self and contribution to Team. Information Services

Applied Agile Practices for Large-scale Organizations

Design Patterns for Complex Event Processing

Agile development of safety-critical software while meetings standards' requirements

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

Alternative Development Methodologies

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Agile Training Portfolio

Gothenburg 2015 Jan Marek com CA Technologies Introducing Agile development methodologies to Session S601 mainframe development teams

Agile! Springer. The Good, the Hype and the Ugly. Bertrand Meyer

Applied Software Project Management

3C05: Unified Software Development Process

EPL603 Topics in Software Engineering

Practical Agile Requirements Engineering

Software Development Life Cycle (SDLC)

The Role of CM in Agile Development of Safety-Critical Software

Sparx Systems Enterprise Architect for Team Players

AGILE & SCRUM. Revised 9/29/2015

Case Study: Achieving Large- Scale Distributed Agile Delivery. Pete Franklin Director, Capgemini Julian Holmes Co-Founder, UPMentors

The role of integrated requirements management in software delivery.

How To Develop A Telelogic Harmony/Esw Project

Would you like to have a process that unlocks ability to learn and produce faster?

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer

Eclipse Process Framework Composer

UVA IT3350 Syllabus Page 1

The Rap on RUP : An Introduction to the Rational Unified Process

Sparx Enterprise Architect for Business Analysts

Chapter 3. Technology review Introduction

CMMI and IBM Rational Unified Process

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into

Growing testing skills using the Agile Testing Ecosystem. Dr Lee Hawkins Principal Test Architect Dell Software, Melbourne

Introduction to Enterprise Agile Frameworks

Web Application Development Process

The Role of Modelling in Teaching Formal Methods for Software Engineering

Lecture 8 About Quality and Quality Management Systems

Agile Notetaker & Scrum Reference. Designed by Axosoft, the creators of OnTime the #1 selling scrum software.

What Is the Rational Unified Process?

Lecture 9: Requirements Modelling

SOFTWARE PROCESS MODELS

Introduction to Agile Software Development

CHAPTER 1: INTRODUCTION TO RAPID APPLICATION DEVELOPMENT (RAD)

Digital Marketplace Services Service Definition

Basic Trends of Modern Software Development

Architecting enterprise BPM systems for optimal agility

SWX: The Software Extension to the PMBOK Guide for Project Management

How To Develop A Multi Agent System (Mma)

How to introduce maturity in software change management $

From Agile by Design. Full book available for purchase here.

What CMMI Cannot Give You: Good Software

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

Course Title: Planning and Managing Agile Projects

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

All of these circumstances indicate that the world of tomorrow is as different as today s water utility business is from that of yesteryear.

Certified ScrumMaster Workshop

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

Applying Agile Methods in Rapidly Changing Environments

Issues in Internet Design and Development

LEAN AGILE POCKET GUIDE

Agile Testing Overview

Creating a High Maturity Agile Implementation

The Agile Drupalist. Methodologies & Techniques for Running Effective Drupal Projects. By Adrian AJ Jones (Canuckaholic)

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

"Bezpieczny Projekt"

Modern practices TIE-21100/

Adopting Agile Approaches for the Enterprise

how can I deliver better services to my customers and grow revenue?

PMI Agile Certified Practitioner (PMI ACP) Boot Camp Course AG05; 4 Days, Instructor-led

Measuring ROI of Agile Transformation

THE LEADERSHIP CHALLENGE, 5 TH EDITION DISCUSSION QUESTIONS

Hybrid-Agile Software Development

agenda AGILE AT SCALE

USE-CASE 2.0. The Guide to Succeeding with Use Cases. Ivar Jacobson Ian Spence Kurt Bittner. December USE-CASE 2.0 The Definitive Guide

Course Computer Science Academic year 2012/2013 Subject Software Engineering II ECTS 6

Secrets of a Scrum Master: Agile Practices for the Service Desk

Transcription:

Shihong Huang shihong@fau.edu Dept. of Computer & Electrical Engineering and Computer Science Guest Lecture INF5120 Model Based System Development February 27, 2012

Shihong Huang 2

Florida Atlantic University Shihong Huang 3

Shihong Huang 4

Motivation of Semat the Grant Vision The basis for Semat The concept of method, practices and kernel Modeling and Kernel language (Arne and Brian) Shihong Huang 5

Software community has developed software for over the past five decades Applications of software have generated enormous impact on both our society and our lives However, have we advanced our own discipline over these years? How have we been doing these years? improve the way we develop software Shihong Huang 6

OO development Components, UML, Unified Process RUP and CMMI XP Scrum Kanban now the talk in town And more Shihong Huang 7

SOA Web Services EDA SPEM Coud Computering What will be the next silver bullet? CMMI Shihong Huang 8

Software engineering is gravely hampered today by immature practices Specific problems include: The prevalence of fads more typical of fashion industry than of an engineering discipline The lack of a sound, widely accepted theoretical basis The huge number of methods and method variants, with differences little understood and artificially magnified The lack of credible experimental evaluation and validation The split between industry practice and academic research Source: Semat Call for Action Shihong Huang 9

High-quality software is not expensive. High-quality software is faster and cheaper to build and maintain than low-quality software, from initial development all the way through total cost of ownership -- Capers Jones et al, The Economics of Software Quality Addison-Wesley Longman, 2011 Shihong Huang 10

Ivar Jacobson Bertrand Meyer Richard Soley Software Engineering Method and Theory Jacobson, Meyer, & Soley Call for Action: The Semat Initiative Dr. Dobb s Journal, December 10, 2009 Shihong Huang 11

Semat supports a process to refound software engineering based on a solid theory, proven principles and best practices that: Include a kernel of widely-agreed elements, extensible for specific uses Addresses both technology and people issues Are supported by industry, academia, researchers and users Support extension in the face of changing requirements and technology At its heart is a kernel of widely agreed elements. The kernel would provide the common ground help practitioners to compare methods and make better decisions of their practices. Source: Semat Vision Statement Shihong Huang 12

The goal is to create a kernel and a language that are scalable, extensible, and easy to use, and that allow people to describe the essentials of their existing and future methods and practices so that they can be composed, compared, evaluated, tailored, used, adapted, simulated and measured by practitioners as well as taught and researched by academics and researchers. Being able to design a method from a set of relevant practices, all described using a kernel of essential elements are key requirements of Semat. Shihong Huang 13

Pragmatic, seeking available methods that are easy to use Practitioners (Engineers and Managers) Software engineering Industry Concerned about getting software better, faster cheaper & happier Academia Teach and research Software Engineering Shihong Huang 14

Method Practice Kernel Kernel language Shihong Huang 15

As being instantiated The activities -- created from the definition -- are executed by practitioners in some order to get result, specified by the definition This view the team is the computer, the process is the program - is not suitable for creative work like software engineering which requires support for work, which is agile, trial-anderror based and collaboration intensive Shihong Huang 16

A method is a composition of practices As opposed to an interconnection of process/method components, disciplines, or similar Methods are dynamic and used Methods are not just descriptions for developers to read, they are dynamic, supporting their day-to-day activities This changes the conventional definition of a method A method is not just a description of what is expected to be done, but a description of what is actually done Shihong Huang 17

Method Practice Kernel Kernel language Shihong Huang 18

A repeatable approach to doing something with a specific purpose in mind There are several kinds of practices but the basic and most important kind of practices are the concrete practices A concrete practice is a complete end-to-end activity with a clear beginning and end supporting software practitioners in getting their job done These practices give value one-by-one They are what users want to make lean They are what you want to measure and provide metrics for Source: OMG Proposal and Semat Three Year Vision Shihong Huang 19

Basically every software development team, with some exceptions, has its own method There to be probably over 100,000 methods in existence, with many of them never being described but the number of relevant separate practices in use should be much smaller Being able to design a method from a set of relevant practices, all described using a kernel of essential elements are key requirements of Semat. Shihong Huang 20

Architecture Iteration Process Team The Essentials Use Case Modeling Component $ Product up Unified Process Lifecycle Many more practices: - Scrum - User Stories - Test-Driven Design - Continuous Integration - Self-Organizing Teams - Pair Programming Technical Practices Cross- Cutting Practices The Kernel Shihong Huang Source: EssWork 21

Change starts by harvesting your best practices from your own method Existing Method New Method + Kernel Your Own Best Practices You get a method structured for the future Source: EssWork Shihong Huang 22

Method Practice Kernel Kernel language Shihong Huang 23

The Kernel we harvested is very small, extracted from a large number of methods The Kernel is practice and method agnostic Kernel The Kernel includes the essence of software engineering Shihong Huang 24

Use Case + + Architecture Iterative +++ Kernel Your Own Best Practices Team Component PLA Other Practices From Many Sources OK, there is a kernel! Maybe there are many? But none is widely-accepted! That needs to be changed! Source: EssWork Shihong Huang 25

The common ground Identify and specify a kernel including the essential elements in software engineering key requirement Irrespective of code, software system, solution, methods, organization A kernel of elements: pervasive concepts and qualities the common ground Always prevalent in any software endeavors Separate of concerns: separating kernel from specifics of different methods Shihong Huang 26

Finding the constituents of the kernel is critical Uncover universal, significant and relevant elements Need to be widely agreed upon The kernel is defined using a domain-specific language The domain being practices for software development The kernel and the language are small and light at their base But extensible to cover advanced uses (e.g., safetycritical systems) Shihong Huang 27

A new unified methodology A new software process meta-model A new body of knowledge A new modeling language A trick to get people to build or buy more tools Shihong Huang 28

The kernel should be as simple as a map of when we develop software: what we already have (e.g. teams and projects) what we already do (e.g. specify and implement) what we already produce (e.g. software systems) Irrespective of the way we work whether we write documentation, or even if the result is good or bad The kernel should be concrete, focused and light A kernel is a set of elements used to form a common ground for describing a software engineering endeavor Shihong Huang 29

You have achieved perfection not when there is nothing left to add, but when there is nothing left to take away -- Antoine de Saint-Exupéry Example of essential elements: Work Team Requirements Software system Opportunity Stakeholder Shihong Huang 30

Area of concerns Contains everything to do with the actual use and exploitation of the software system to be produced Contains everything to do the specification and development of the software system. Contains everything to do with the team, and the way that they approach their work. Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 31

Representations of the essential things to work with The Alphas provide descriptions of the kind of things that a team will manage, produce, and use in the process of developing, maintaining and supporting good software They also act as the anchor for any additional subalphas and work products required by the software engineering practices Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 32

Representations of the essential things to do. The Activity Spaces provide descriptions of the challenges a team faces when developing, maintaining and supporting software systems, and the kinds of things that the team will do to meet them Activity An activity defines one or more kinds of work items and gives guidance on how to perform these Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 33

Alpha Area of concern Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 34

Activity space Area of concern Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 35

The people, groups, or organizations who affect or are affected by a software system The stakeholders provide the opportunity and are the source of the requirements and funding for the software system They must be involved throughout the software engineering endeavor to support the team and ensure that an acceptable software system is produced Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 36

Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 37

The set of circumstances that makes it appropriate to develop or change a software system The opportunity articulates the reason for the creation of the new, or changed, software system It represents the team s shared understanding of the stakeholders needs, and helps shape the requirements for the new software system by providing justification for its development Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 38

Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 39

What the software system must do to address the opportunity and satisfy the stakeholders It is important to discover what is needed from the software system, share this understanding among the stakeholders and the team members, and use it to drive the development and testing of the new system Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 40

Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 41

A system made up of software, hardware, and data that provides its primary value by the execution of the software. A software system can be part of a larger software, hardware, business or social solution Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 42

Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 43

The group of people actively engaged in the development, maintenance, delivery and support of a specific software system The team plans and performs the work needed to create, update and/or change the software system Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 44

Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 45

Activity involving mental or physical effort done in order to achieve a result In the context of software engineering, work is everything that the team does to meet the goals of producing a software system matching the requirement and addressing the opportunity presented by the stakeholders The work is guided by the practices that make up the team s way-of-working Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 46

Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 47

The tailored set of practices and tools used by a team to guide and support their work The team evolves their way of working alongside their understanding of their mission and their working environment As their work proceeds they continually reflect on their way of working and adapt it to their current context, if necessary Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 48

Source: Essence Proposal to OMG RFP ad/2011-06-26 Shihong Huang 49

Method Practice Kernel Kernel language and Modeling (Arne and Brian) Shihong Huang 50

Source: Semat Three Year Vision Shihong Huang 51

The Kernel and the Language Tools (including open source) The Practice Market Place Curricula Text Books and Papers Research Shihong Huang 52

1. Ivar Jacobson and Bertrand Meyer: Methods need theory Dr. Dobb's Journal, August 06, 2009. Online at http://www.drdobbs.com/architecture-and-design/219100242 2. Ivar Jacobson and Ian Spence: Why we need a theory for software engineering Dr. Dobb's Journal, October 02, 2009. Online at http://www.drdobbs.com/architecture-and-design/ 220300840 3. Ivar Jacobson, Bertrand Meyer, and Richard Soley: Call for Action: The Semat Initiative Dr. Dobb's Journal December 10, 2009. Online at http://www.drdobbs.com/architecture-anddesign/222001342 4. Ivar Jacobson, Bertrand Meyer, and Richard Soley: The Semat Vision Statement online at http://www.semat.org/pub/main/webhome/semat-vision.pdf 5. Shihong Huang, the 1st Semat Workshop report, online at: http://www.semat.org/pub/main/sematzurichmarch2010/zurich_meeting_report.pdf 6. Shihong Huang, the 2nd Semat Workshop Report, online at: http://www.semat.org/pub/main/webhome/2nd_semat_workshop_report.pdf 7 Shihong Huang and Paul McMahon, the 3rd Semat Workshop Report, online at: http://www.semat.org/pub/main/webhome/3rd_semat_workshop_report.pdf 8. Ivar Jacobson, Shihong Huang, Mira Kajko-Mattsson, Paul McMahon, Ed Seymour. Semat - Three Year Vision Programming and Computer Software 38(1): 1-12 (2012), Springer 2012. DOI: 10.1134/S0361768812010021. 9. Essence Kernel and Language for Software Engineering A proposal submitted to OMG RFP (OMG Document ad/2011-06-26) Shihong Huang 53