Product Line Engineering and Feature Models

Slides:



Advertisements
Similar presentations
Withdrawal Transaction Use Case Primary Actor: Customer Pre-conditions: The customer must have a valid ATM card and PIN. Post-conditions: The customer.
Advertisements

Writing an Effective Essay
Course Web Site – Also linked from Blackboard Course Materials – Excel Tutorials – Access Tutorials – PPT.
INHERITANCE BASICS Reusability is achieved by INHERITANCE
Class Relationships Part 1: Composition and Association CS 21a: Introduction to Computing I First Semester,
IMPLEMENTING CLASSES Chapter 3. Black Box  Something that magically does its thing!  You know what it does but not how.  You really don’t care how.
Copyright Irwin/McGraw-Hill Data Modeling Prepared by Kevin C. Dittman for Systems Analysis & Design Methods 4ed by J. L. Whitten & L. D. Bentley.
Inheritance Polymorphism Briana B. Morrison CSE 1302C Spring 2010.
Requirements and Design
9. Inheritance 9.1 Subclasses 9.2 Polymorphism 9.3 Abstract Classes 9.4 Modifiers and Access 9.6 Object-Oriented Design with Use Cases and Scenarios.
CS-2135 Object Oriented Programming
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Software Development Software Life Cycle UML Diagrams.
Unit 211 Requirements Phase The objective of this section is to introduce software system requirements and to explain different ways of expressing these.
1 Basic Object Oriented Concepts Overview l What is Object-Orientation about? l What is an Object? l What is a Class? l Constructing Objects from Classes.
CS 106 Introduction to Computer Science I 11 / 19 / 2007 Instructor: Michael Eckmann.
ACM/JETT Workshop - August 4-5, Object-Oriented Basics & Design.
Introduction to XML This material is based heavily on the tutorial by the same name at
Chapter 9 Domain Models 1CS6359 Fall 2012 John Cole.
ACM/JETT Workshop - August 4-5, 2005 UML Modeling using MagicDraw UML for Java Programmers.
McGraw-Hill/Irwin Introduction to QuickBooks Pro, 2004 © 2005 The McGraw-Hill Companies, Inc., All Rights Reserved. Chapter 4 Bank Reconciliation.
People © 2013 The Sleeter Group All rights reserved. Intuit, the Intuit logo and QuickBooks, among others, are registered trademarks of Intuit Inc. Other.
2013.  Reconcile your checking account  Create bank reconciliation reports  Find errors during reconciliation  Correct errors found during reconciliation.
 2003 Prentice Hall, Inc. All rights reserved. 1 Introduction to Classes and Objects Outline Introduction Classes, Objects, Member Functions and Data.
CS 106 Introduction to Computer Science I 04 / 13 / 2007 Friday the 13 th Instructor: Michael Eckmann.
EMT1111 Logic and Problem Solving Dr. José M. Reyes Álamo Lecture 1.
Computing Science 1P Large Group Tutorial 17 Simon Gay Department of Computing Science University of Glasgow 2006/07.
1 A Student Guide to Object- Orientated Systems Chapter 4 Objects and Classes: the basic concepts.
OBJECT AND CLASES: THE BASIC CONCEPTS Pertemuan 8 Matakuliah: Konsep object-oriented Tahun: 2009.
Peter Andreae Computer Science Victoria University of Wellington Copyright: Peter Andreae, Victoria University of Wellington Summary and Exam COMP 102.
RADAR “How To…” Guide DEPOSITING RESEARCH OUTPUTS in RADAR Covered: -Accessing RADAR -Logging in -Depositing outputs -Managing outputs -Uploading documents.
Feasibility Study.
1 Chapter 2 (Cont.) The BA’s Perspective on Object Orientation.
Adaptive Processes © Adaptive Processes Simpler, Faster, Better Software Requirements.
Week 4 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
Constructing Objects Lab. Log into Wiley Plus Read the problem Write a BankAccountTester class whose main method constructs a bank account, deposits.
Writing User Guide CSC207 – Software Design. Writing in CS /Newsgroup/Forum/Blog Code Comments Software User Guide Presentations Project Plans Software.
CS 46B: Introduction to Data Structures June 16 Class Meeting Department of Computer Science San Jose State University Summer 2015 Instructor: Ron Mak.
Lecture 21 CS110 Lecture 2 January 29, 2004 Announcements –hw1 part 1 – due right now –hw1 part 2 – due Tuesday night Questions Agenda –turnin –Object.
UML Review – class diagrams SE 2030 Dr. Rob Hasker 1 Based on slides written by Dr. Mark L. Hornick Used with permission.
Developing a Research Proposal. I. Writing a research proposal A short paragraph A formal, multipage report.
Object-Oriented Design Simple Program Design Third Edition A Step-by-Step Approach 11.
Week 4 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
Inter-Type Declarations in AspectJ Awais Rashid Steffen Zschaler © Awais Rashid, Steffen Zschaler 2009.
Odds and Ends. CS 21a 09/18/05 L14: Odds & Ends Slide 2 Copyright © 2005, by the authors of these slides, and Ateneo de Manila University. All rights.
Use Cases CS 6961 – Lecture 4 Nathan Dykman. Neumont UniversityCS Lecture 102 Administration Homework 1 is due –Still reviewing the proposal, but.
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Object-Oriented Design.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
Class Diagrams Revisited. Parameterized Classes Parameterized Classes - are used to represent relationships between templates.
Chapter 3 Implementing Classes
Bank Reconciliation Chapter 4. PAGE REF #CHAPTER 4: Bank Reconciliation SLIDE # 2 Objectives Reconcile your checking Create bank reconciliation reports.
UML Review – class diagrams SE-2030 Dr. Mark L. Hornick 1.
CPSC 872 John D. McGregor Session 13 Process. Specification and design problem solution specification implementation specification.
CMPE 280 Web UI Design and Development August 29 Class Meeting
Lecture 92 Test 1 – Take Home Post mortem
BSA 376 Competitive Success/snaptutorial.com
BSA 376 Education for Service/snaptutorial.com
CSS 422 Education for Service-- tutorialrank.com
Creating and Using Classes
MBI 630: Class 7 Requirements Statement and Selecting the Best Alternative Design Strategy 11/20/2018.
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Review B.Ramamurthy 4/6/2019 BR.
By Rajanikanth B OOP Concepts By Rajanikanth B
Introduction to Object-Oriented Programming
Final Review B.Ramamurthy 5/8/2019 BR.
Handout-2(a) Basic Object Oriented Concepts
Introduction to Computer Science and Object-Oriented Programming
Presentation transcript:

Product Line Engineering and Feature Models CPSC 410

Reading for Monday REST Topics http://www.infoq.com/articles/rest-introduction Arch book p. 414–422 Roy Fielding’s thesis perhaps most cited CS thesis, worth a scan if you want to see what one looks like.

Product Lines Want to make several related products Products share many common features But features vary between products Want a formal description of all possible product instances in a product line Use Feature Models! Model formalizes feature requirements Does not address implementation

Software Product Line Example Windows 7 Product Line Starter Home Premium Professional Ultimate

Informal Feature Matrix

Formal Feature Models

Cross-Tree Constraints X X X Conflict Requires

Realistic Feature Model For illustration purposes only Uses extra syntax we don’t learn in this course

Mandatory Feature Product Line also referred to as Product Concept (denoted as C)

Optional Feature

eXclusive-Or (Alternative)

Inclusive-Or (Or)

Conflicting Features Two features that cannot exist in the same product Used when features are not siblings {C}, {C, f1}, {C, f1, f2} {C, f2}, {C, f1, f3} X

Dependent Features When one feature requires another Used when features are not parent/child {C}, {C, f1}, {C, f1, f2} {C, f2}, {C, f1, f2, f3}

Feature Implementation Often, a feature is not a class Hence, feature models are not class diagrams A feature can be implemented many ways Class Set of classes A scattered set of methods A scattered set of statements etc… The Feature Modeler does not concern themselves with such details

Example: Logging Feature class Account { private double total; public void deposit(double amount) { System.out.println(“User is depositing: “ + amount); … } public void withdraw(double amount) { System.out.println(“User is withdrawing: “ + amount); public double balance() { System.out.println(“User is checking balance”); Where is the logging feature?

Example: Logging Feature class Account { private double total; public void deposit(double amount) { System.out.println (“User is depositing: “ + amount); … } public void withdraw(double amount) { System.out.println(“User is withdrawing: “ + amount); public double balance() { System.out.println(“User is checking balance”); Where is the logging feature?

Where is Logging in Apache Tomcat? Picture from: Waterhouse and Kersten, kerstens.org/mik/publications/aspectj-tutorial-oopsla2004.ppt

Consider Your Project At the end of the term … If I asked you where each User Story was in your code … Most likely each User Story could not be isolated to a single Class Method Statement A good bonus mark candidate would be to describe your product using a feature model as described here.

Variability Implementation How do we create variation in product lines? Subclassing Conditionals and IFDEF statements Decorators/Connectors Separate code bases Likely to be different branches of a repository

Linux variability Linux has ~ 5400 features

Exercise Make a Feature Model for your favorite Automobile Product Line Use the “Build a Car” Wizard on their website to reverse-engineer the Feature Model You can use Chevrolet Don’t worry about being complete BUT … Try to find one example of each model element: Mandatory, Optional, Alternative, Or, Conflict, Requires Use paper/pencil(pen) and submit on Wed.