Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000...

16
Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004

Transcript of Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000...

Page 1: Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.

Software Reuse

Course: # 605.703. The Johns-Hopkins UniversityMontgomery County Campus

Fall 2000Lecture # 1 - September 7, 2004

Page 2: Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.

Contact Information

Thomas Pole

571 226 1790 (day)

[email protected]

http://www.ComputerTrainingGuild.org/JHU/SoftwareReuse_Fall04

Page 3: Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.

Class Requirements (1 of 3)

• Text: “Software Reuse”, by Jacobson, Griss and Jonsson, ISBN 0-20-192476-5

• Development Platform: PC running a 32 bit Windows platform, Win98, NT 4.0 or Win 2000

• An IDE (Integrated Development Environment) capable of supporting – Component development (e.g. COM, JavaBeans,

CORBA, .NET assemblies)– C++, Java or Visual Basic development– Visual Studio 6.0 or .NET strongly suggested

• (if you want debugging help from me)

Page 4: Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.

Class Requirements (2 of 3)

• You will need to understand before you complete this course:– Traditional Software Development Life Cycle process.– System Requirements analysis– System design– Component Development– Component Integration– Domain definition– Domain analysis– Component Based Software Engineering

Page 5: Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.

Class Requirements (3 of 3)

• You will need to be able to do before you complete this course– Generic Application Design– Component Design– Component Implementation

• Language of your choice from options listed earlier.

– Component Integration– Requirements and/or design traceability.– Discuss and write about (in clear concise English) the

issues and methods in Reuse

Page 6: Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.

Software Reuse: Definition

• Precise definitions have not only evolved, they have propagated. The more definitions you have, the less meaning in the term ‘Reuse’.

• Good definitions exist for: Reusable Asset, Leveraged Reuse, Systematic Reuse

• Bad definitions exist for: ‘Software Reuse’ itself– Contradictory, inexact, some published definitions are almost

useless.

• We will define these terms in this course, for this course. – Other texts, classes, and organizations will define them

somewhat differently, but in this class we’ll have specific definitions we can use.

Page 7: Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.

Software Reuse Definition

• Software Reuse is a method of increasing the efficiency of developing new software, by reusing existing software assets on a new project, that were created outside of and usually prior to that new project.– More details later.

• A software asset is any work product created in the normal software development life cycle. (SDLC)

Page 8: Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.

Major Trends in Reuse

• As we cover the rest of tonight’s letter, think about where you and your company fit in.

• SW represents knowledge management of– SW implementation knowledge

– Problem solving knowledge

– Business and Engineering Domain knowledge.

• Therefore, reuse of SW requires knowledge management skills.

Page 9: Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.

Defining Knowledge Management

• Managing what an organization, its staff, its customers, and its user base know about:– The business domain that organization participated in.

– The products that organization creates.

– The engineering domains the organization employs to perform its tasks and reach its goals.

– The organization itself.

Page 10: Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.

More Definitions

• Reuse - When any product (or by product) of a software development effort which occurred before, or independently of a second separate development effort, is also used in that second development effort.

• Reuse potential - Is the commonality stable enough and the predictable variability great enough to support the expense of a reuse driven process.

Page 11: Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.

Still More Definitions

• Software Module - source and object code reuse.• DIAE Component (or simply Component) –

Dynamically Integrable. Autonomously Executable software module.

• Framework or Architecture Based Reuse – A generic architectural captures the commonality, swappable individual components represent the variability of a framework for building applications from a software framework.

Page 12: Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.

State of: Modules and Components

• Modules: Java applets, classes, Java Beans etc. C++ libraries, language or application specific libraries.

• Components: COM component, CORBA components, Web Services.

Page 13: Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.

State of: Reuse Tools

• A marketplace sadly in great disarray.• Oversold by the marketers, similar to the

Artificial Intelligence Winter syndrome of the mid 1990’s.

• Desperately needed if we are to progress in reuse process maturity.

• NOT A SOLVED PROBLEM.• E.g. component collections, library/archive

mechanisms, process support tools, training.

Page 14: Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.

State of: Reuse Training

• Fallen on bad times.• Replaced with some success by technology

specific training:– VB/COM/COM+ training– CORBA training– framework SDK training

• Reuse process and systematic reuse training almost non-existent.

Page 15: Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.

Reuse Potential Self Exam

• To ask yourself:• What is my potential to reuse software ?• What is my potential to enable reuse ?• What is my org’s potential to reuse?• What is my org’s potential for systematic

reuse ?• What is my org’s potential to enable reuse

in other organizations ?

Page 16: Software Reuse Course: # 605.703. The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.

Reading Assignments

• See Chapters listed in Schedule - read these chapters PRIOR to the lectures.

• No assignment this week other than too get your work station/PC set up with a recommended Integrated Development Environment (IDE)

• Questions ?• See you next week.