L8 - March 28, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)

Slides:



Advertisements
Similar presentations
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Advertisements

Information Systems Analysis and Design
Introduction To System Analysis and Design
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
IS 421 Information Systems Management James Nowotarski 16 September 2002.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
IS Terms and Introductory Concepts. Contemplative Questions What is an information system? What is an information system? Why do we care about the difference.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
© Copyright Eliyahu Brutman Programming Techniques Course.
Lecture Nine Database Planning, Design, and Administration
CSC230 Software Design (Engineering)
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Domain-Specific Software Engineering Alex Adamec.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter 1 The Systems.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Chapter 9 Database Planning, Design, and Administration Sungchul Hong.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 6 Lecture # 5 – October 12, 2004.
Systems Analysis and Design in a Changing World, Fifth Edition
Lesson 7 Guide for Software Design Description (SDD)
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
MVC and MVP. References enter.html enter.html
SOFTWARE ENGINEERING BIT-8 APRIL, 16,2008 Introduction to UML.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Detailed Design Overview and Mid-Level Class Modeling.
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Copyright © 2013 Curt Hill The Zachman Framework What is it all about?
Design Patterns 1 FME UC 2007 Design Patterns FME Workbench.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
January 25, 2006copyright Thomas Pole , all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
CSE 219 Computer Science III Program Design Principles.
Chapter 7 Applying UML and Patterns Craig Larman
Systems Analysis and Design in a Changing World, 3rd Edition
L10 - April 12, 2006copyright Thomas Pole , all rights reserved 1 Lecture 10: Software Assets and Text: Ch. 8: Language Anatomy and Ch 9: Families.
Service Layers Service Oriented Architecture Johns-Hopkins University Montgomery County Center, Spring 2009 Session 6, Lecture 6: March 4, 2009.
L9 - April 5, 2006copyright Thomas Pole , all rights reserved 1 Lecture 9: Reuse Driven Processes and Text Ch. 7: Programming with Models.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Copyright © 2013 Curt Hill UML Unified Modeling Language.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Systems Analysis and Design in a Changing World, Fourth Edition
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
An approach for Framework Construction and Instantiation Using Pattern Languages Rosana Teresinha Vaccare Braga Paulo Cesar Masiero ICMC-USP: Institute.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
February 8, 2006copyright Thomas Pole , all rights reserved 1 Lecture 3: Reusable Software Packaging: Source Code and Text Chapter 2: Dealing.
Session 3 How to Approach the UML Written by Thomas A. Pender Published by Wiley Publishing, Inc. October 5, 2011 Presented by Kang-Pyo Lee.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 5 Lecture # 4 – October 5, 2004.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 2 - September 14, 2004.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 7: Dynamically Integrable Autonomously Executable Components and Text.
Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools Jack Greenfield Architect Enterprise Tools Microsoft Corporation.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
1 SYS366 Week 2 - Lecture 2 Visual Modeling & UML.
L5 - February 22, 2006copyright Thomas Pole , all rights reserved 1 Lecture 5: Graphically Based Code Generation and Text Chapter 4: Paradigm.
ARIS Extension Pack TOGAF April 2016
IS301 – Software Engineering V:
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Object oriented system development life cycle
Overview of System Engineering
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
Applying Use Cases (Chapters 25,26)
Chapter 2: Building a System
Presentation transcript:

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review) and Ch 5: Models and Patterns

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 2 Agenda Review: Mid Term Exam Review: Software Factories Lecture: Software Asset Management Text: Chapter 6: “Models and Patterns” Class Project –Overview: We will employ a reuse driven process, but not a full software factory approach. –Project Assignment #1: Domain Definition and Discerning Family Members Exercise #2 Review Q&A

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 3 Mid Term Exam Review Good work, you all did well –All A’s and B’s, mostly A’s Unusual for one of my classes, usually mostly B’s –Don’t get overly optimistic, the final exam/project will require more work, and a deeper understanding to achieve the same grade. No review notes: –Answers reviewed in class discussion

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 4 Review: Software Factories are: That which produces a software product line, a set of similar software products produced from a set of common components, using tools to automate the customization of each member of the line. –Uses a software factory template to develop and maintain a variant of the line. … –Which is based on a software factory schema, which represents all the work products of a all the members of the product line, and the relationships among those work products. Schema grids bad, schema graphs good

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 5 Software Factory Schema as a Grid Each column: All the work products of a specific “concern” (e.g. data and actor definitions see pp 165 fig 5.4). Each row in the column is a level of abstraction for that “concern” (e.g. Biz entities, message schemas, database schemas and access strategy – moving from abstract to concrete) Schema as Grid Bad, hard to define “concerns”, can’t represent all realtionships among all work products (a.k.a. artifacts)

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 6 Software Factory Schema as Graph (or more properly network diagram) Can represent all relationships among all artifacts: –Different abstractions in one “concern” –Different artifacts in different “concerns” You can have multiple graphs to represent different clusters of artifacts. The software schema identifies all the artifacts that must be developed to produce ONE software product, one member of the product family or product line.

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 7 The Recipe pp 172 A software factory schema is a recipe for building a family of software products. –Imagine a recipe that can make an kind of a cookie. –When building a schema, we must represent all the possible cookies, and all the vairations that must be implemented to produce all those different cookies. When using a schema we are ONLY interested in building one product, one software system of the many members of the product line. –We configure a schema to build a specific product line family member, we only want to build a chocolate chip cookie.

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 8 Review: Software Template A schema only describes the assets (the reusable components, customizable tools, etc.) A template includes the assets, the code, design patterns, metadata, etc. which can be loaded into the tools, to produce a specific family member of the product line the software factory produces.

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 9 Software Factory Summary Configuring a software factory schema customizes (to one family member) the description of the software factory. Configuring a template customizes the tools and other pieces of the development environment to build that family member. More, much more later.

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 10 L8: Software Asset Management Successor to Software Reuse Library Management Systems Primary Vendors –Logic Library –Flashline Manage the storage, access of, relationships among, and the metadata describing the use of and relationships among the reusable assets. More later on this subject.

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 11 Break 15 minutes Next: –Ch 6: Models and Patterns –Class Project –Exercise #2 review –Questions?

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 12 Models, a few thoughts One man’s implementation is another man’s specification. –A programmer sees code as implementation, the product, the result of the programmer’s effort. –A compiler sees code as a specification, instructions on how to produce a product. One man’s model is another man’s reality.

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 13 SDLC as a Series of Models A requirements statement models the user’s real world. –Input: real world -> Model: requirements A design implements the solution to the problem represented by the requirements. –Input: requirements -> Model: High Level Design A system spec (interface, objects, etc.) implements the design. –Input HLDesign -> Model: Architectural Specification.

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 14 CH 6: Models and Patterns Patterns: Capture intent and map it to implementation. –Intent: What the engineer means to develop, independent of the implementation technologies used to make that concrete implementation. Patterns: Provides a strategy for solving a recurring problem (therefore, are a reuse based technique).

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 15 Pattern Language It is difficult to relate patterns to each other, therefore it is difficult to weave them into solutions to larger problems. A pattern language is a set of patterns and the relationships among the patterns; allowing that weaving of larger solutions to occur.

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 16 Models A model is an abstraction, a description of something which purposely leave out details that are not required for the job at hand, thus reducing the the complexity it would take to work with the thing itself. –Model Visualization -> UML –Models tell about a thing, they are not the thing, therefore models can be considered metadata.

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 17 Models as Development Artifacts If the model contains that which can change (variations) among the family members of a product line. It there are tools which can be fed those variations. Then a Software Factory can take a model of a variant (family member) and generate the implementation of that product represented by the variant.

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 18 Class Project: Overview Produce a reuse driven software development infrastructure: –Process –Assets –Tools Model transformers (e.g. requirements to design) Asset Managers Asset assemblers –Examples: Family Members

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 19 Class Project: Assignment #1 Write the domain definition. –Used to determine what system are and are not members of the product line. –Guides the scope of the reusable assets, tools and processes to be built. Domain: Systems that allow an individual to track all the files, s, hyperlinks, etc. according to how they will use them, how valuable they are, etc. Assignment: Using a basic into paragraph, as well as multiple variation points and variants; write th domain definition for lour project.

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 20 Ex. 2 Review Reusable Asset Design We’ll review your solutions.

L8 - March 28, 2006copyright Thomas Pole , all rights reserved 21 Questions? For next week: –Read the introduction through chapter 7, “Programming with Models” for next week. – me your domain definitions no later then 9:00 PM Monday April 3, 2006.