Software Reuse Foundamentals

1 downloads 209 Views 1MB Size Report
reusable parts. All systems utilities, software tools, and accounting mechanisms intrument to track reuse. Legal, contra
The Reuse Research Centre

Software Reuse Fundamentals

The

Reuse

Company

The way to knowledge reuse March 2005

The

Who am I

Reuse

Company

The way to Knowledge Reuse

• Affiliation – – – – –

Professor Juan Llorens Software Engineering Group Departamento de Informática Universidad Carlos III de Madrid / HA – Finland [email protected]

• Professional Experience • My intentions

The

Reuse

Company

Index Main Topics

The way to Knowledge Reuse

• SW Reuse Fundamentals • Organizing a Reuse program

Managers

• Implementing Reuse Processes

Architects

• Reuse related Technologies

Engineers

The

Reuse

Company

Reuse Fundamentals Re-inventing the weel

The way to Knowledge Reuse

• A bidirectional Association between classes: Car

Person

0..1

+

+owner

*

The

Reuse

Company

Reuse Fundamentals Re-inventing the weel

The way to Knowledge Reuse

• A template solution: well designed and tested In Class Car…. Public Person Owner { get {return _Owner} set { if {_owner != null} _owner.friendCars().Remove(this); _owner = value if {_owner != null} _owner.friendCars().Add(this); } } Private Person _Owner; In Class Person…. Public IList Cars { get {return ArrayList.ReadOnly(_cars);} } Public void AddCar(Car arg) { arg.Owner = this; } Private IList _cars = New ArrayList(); Internal IList friendCars() { // Should Only be used by Car.Owner !!!!! return _cars; }

The

Reuse Fundamentals

Reuse

Company

What is Reuse?



Definitions

The way to Knowledge Reuse



Using what already exists to achieve what is desired Leach, Ronald J. (1997)



‘To use again.’ - 'further or repeated use' Webster and Longman Dictionary



Use again after processing (The Free On-line Dictionary of Computing (2003-OCT-10). http://dict.die.net



The use of something previously created •

Slightly modified to fit with a new goal or (a car which wheels were changed into propellers to navigate in a lake)



For a different purpose than the original one or (a car used as a stair to get to a first floor of a house)



Which needed a re-configuration

(a FIAT UNO car changed all its settings to be able to break the speed record) (Juan LLorens) To develop a wall with bricks IS NOT reuse. It is a way of building. A brick from a previously created wall in my new wall? (doubt but closer to USE) To take my FIAT UNO car tomorrow to go to work? (USE)

The

Reuse Fundamentals

Reuse

Company

What is Software Reuse?

The way to Knowledge Reuse

– The use of all kinds of previously created artifacts (assets) or parts of them, in a new project, but: • Slightly modified to fit with the problem or solution definition in the new project (A design pattern applied to my particular domain) or

• Which were defined to work in a different context or environment or application (a set of requirements coming from a different application project ) or

• Which needed to be configured to fit with project requirements or specifications (a product line configured to a new product) otherwise

Otherwise…we have just Software Use (black box reuse) • Grey zone between Use and Re-Use => configuration vs parameterization - The application of a DLL (it is parameterized) - The application of the operating system - While Creating a new MS-Word document we are not reusing Word. We are using it.

The

Reuse

Company

Reuse Fundamentals Software Reuse. Taxonomic-style definition

The way to Knowledge Reuse

Reuse Retrieve Identify Characterize

Evaluate

Modify Select

Match

Victor R. Basili and H. Dieter Rombach. Support for comprehensive reuse. IEEE Software Engineering Journal, 6(5):303–316, September 1991.

The

Reuse

Company

Reuse Fundamentals Use vs Reuse

The way to Knowledge Reuse

• Historic Motivation • Use exploits equality (building blocks technology) – Standardization – Industrialization

• Reuse exploits similarities – In requirements – In architecture – In tests, etc.

Modern SDPs should apply both principles.

The

Reuse

Company

Reuse Fundamentals What to Reuse?

The way to Knowledge Reuse

• Source Code? – Yes, but…how to deal with programming language versioning and upgrading, OS evolution, technology change…? “Components are fueling a revolution in application development”… New application development tools and technologies have made “components” the key to reusing larger grained “objects” to build applications rapidly. These technologies include Microsoft’s Visual Basic, Active-X and OLE, SUN’s Java and OMG’s CORBA (IDL)… DCOM..” (Software Reuse. Jacobson, Gris Jonsson, 1997)

• Designs? – Yes, although architectural problems could remain.

• Poblem definitions? – Yes, if we can represent them.

• Requirements,… etc. Everything ?

The

Reuse

Company

Reuse Fundamentals Why to Reuse?

• Benefits in The way to Knowledge Reuse

– Productivity • TTM • Fulfill scheduled times

– – – – –

Quality Cost reduction (long term) Improvements in Support and Maintenance Better use of resources Helps with system complexity issues Leanna Rierson. FAA

Leanna Rierson. FAA

The

Reuse

Company

Reuse Fundamentals Reuse Risks

The way to Knowledge Reuse

• Reuse potential risks – – – –

It requires an initial investment… Not sure that we get a pay-back It can induce to tactical errors (force product line application, etc..) Difficult to measure

The

Reuse

Company

Reuse Fundamentals

The way to Knowledge Reuse

Reuse Obstacles

• • • •

“It is forbidden to copy..” The NIH syndrome Not mature SDPs yet: Importance to Trace Not solved technology aspects – Classification and retrieval – Trace support – CASE integration

• Investment needs in time and money • The classical SDP “inertia” and training

The

Reuse

Company

Reuse Fundamentals

The way to Knowledge Reuse

Reuse Myths

• • • • •

Reuse is quick, easy, simple, & free. Buying components means no building. Components equal reuse. Reuse is just code. Maintenance is not building, therefore reuse does not apply. • Increase productivity means loss of jobs. • Reuse means everyone must do the same thing. Leanna Rierson. FAA

The

Reuse Fundamentals

Reuse

Company

How to Reuse?

The way to Knowledge Reuse

– At the processes level • SW Reuse associated to PI and BP (process improvement and best practices) • SDP changes

– Through technical (re) Evolution • Representation/Classification/Retrieval • Full Trace and CASE Support • Repositories

– Changing organization and Management • • • • •

Reuse is a profitable investment !! Goals for Reuse must be set Commitment to Reuse must be gained Staff must be given the required abilities Reviewing and measuring the success of Reuse.

The Reuse Research Center

Organizing a reuse program

The

Reuse

Company

The way to knowledge reuse INDRA: 19th January 2005

The

Reuse

Company

Organizing a reuse program

The way to Knowledge Reuse

Outline

• • • •

Management Planning Execution Evaluation Management

Planning

Execution

Evaluation

The

Reuse

Company

Organizing a reuse program Management

The way to Knowledge Reuse

• Management should address: – – – – – – –

Enable overall commitment to Reuse Involvement of the leading staff in Reuse Determine strategic goals Decide on Reuse specific responsibilities Pursue Integration of Reuse with other processes Define measurements for controlling progress Define and acomplish: incentives, incentives, incentives and… incentives PROMOTE REUSE !!!

The

Reuse

Company

Organizing a reuse program Management

The way to Knowledge Reuse

Reuse Promotion: Inhibitors Inhibitor

Symptoms

Actions

Organisations Structure

Competition amongst business units. Unwillingness to co-operate or share strategy information. Overlap of responsibility on corporate data and process models.

Restructuring. Introduce central co-ordination of IT developments. Mandate Co-operation.

IT Structure

Lack of role definition for staff within the reuse process. No co-ordination of development efforts between overlapping projects to look for common areas. Priority conflicts between producer and consumer teams.

Again central co-ordination of development may help. Reorganise to introduce more common development between projects. Look to introduce methods for collaborative development of components to meet multiple sets of requirements. Ensure overall project goals and deadlines are communicated to all involved.

Inertia

Current developments are always top priority over process engineering. Previous process changes still have to be implemented.

Introduce regular review of development process. Encourage participation from development teams in process reengineering. Make identification of reuse opportunities a stage within the development cycle and assign project time to it.

The

Reuse

Company

Organizing a reuse program Management

The way to Knowledge Reuse

Reuse Promotion: Inhibitors Inhibitor

Symptoms

Actions

Knowledge

Discussion of reuse process is restricted to parties with personal interest. No research into new techniques has been sanctioned.

Educate key personnel and arrange for dissemination of the information. Publish articles in company news letters.

Commitment

Lack of co-operation. Continued support voiced for old processes.

Make reuse a company goal to attach status to those involved. Implement incentive scheme for staff involved in reuse - perhaps providing a small bonus to providers of components each time they are reused.

Measurement

Costs of reuse not assigned to projects that receive benefit of it. Overhead from reuse processes becomes part of costs for development section as a whole, raising their expenditure.

Look at methods of assigning value to reuse opportunities. Have developers estimate savings made. Implement metrics on code to compare that written from scratch to that imported from reuse libraries.

The

Reuse

Company

Organizing a reuse program Management

The way to Knowledge Reuse

Reuse Promotion: Inhibitors Inhibitor

Symptoms

Actions

Management

Tried and tested processes cannot be made into standard practice. Project managers have differing views on the best way forward

Educate senior managers. Where non IT managers control development projects ensure they understand that there budgets are made more effective by co-operation with other development projects.

Economic

Project managers have tight budgets which do not allow for extra investment in developing reusable components.

Fund reuse studies and then back these up by investing in the results. Take on expert personnel to manage reuse program where non suitable exist.

Disincentives

Quality issues are continually raised with previously developed components. Even standard third party libraries are ignored in favour of development from scratch of basic functionality.

Recognition system for creators of reusable components and their reusers. Implement some form of certification scheme for reusable components. Again, make reuse a company goal.

Understanding Resistance to Software Reuse A. Lynex & P.J. Layzell

The

Reuse

Company

Organizing a reuse program

The way to Knowledge Reuse

Management: McConnell’s Keys to success

– Take advantage of personnel continuity between old & new programs – Do not overestimate your savings – Secure long-term, high-level management commitment to a reuse program – Make reuse an integral part of the development process – Establish a separate reuse group – Focus on small, sharp, domain-specific components. – Focus design efforts on abstraction & modularity.

Steve McConnell's Rapid Development

The

Reuse

Company

Organizing a reuse program Planning

• Planning should address: The way to Knowledge Reuse

– Reuse strategy • Define Concrete Goals (technical and business) • Funding allocation • Resources Definition (HR, HW,SW, Facilities,..)

– Organization Resources • Teams structure and organization • Training

– Return of Investment (ROI) studies (John Favaro) – Processes for Reuse – Technology aspects

The

Reuse

Company

Organizing a reuse program

The way to Knowledge Reuse

Execution

– – – –

Launch the plan activities Monitor progress Solve problems Managers compromise with the program

The

Reuse

Company

Organizing a reuse program Evaluation: Metrics

The way to Knowledge Reuse

• Reuse Maturity Model Koltun, P and Hudson, A, A Reuse Maturity Model, WISR4 Fourth Workshop on Institutionalizing Software Reuse, Center for Innovative Technology, Reston, Virginia, USA November, 1991

• The 2 Dimensional Reuse Maturity Model: 2RMM. Juan Llorens. Universidad Carlos III de Madrid. http://www.ie.inf.uc3m.es/3RMM/

• 4 level reuse Basset, P G, The Theory and Practice of Adaptive Reuse, 1997 Symposium on Software Reusability, ACM. Boston. USA, 1997.

• The Reuse Capability Model (RCM) Software Productivity Consortium. = SYSTEMS AND SOFTWARE CONSORTIUM, Inc http://www.software.org/.

The

Reuse

Company

Organizing a reuse program Metrics: Reuse Maturity Model

The way to Knowledge Reuse

Dimension of Maturity

Initial/Chaos

Monitored

Coordinated

Planned

Ingrained

Motivation/Culture

Reuse is discouraged

Reuse is noted indifferently reinforced, rewarded

Reuse is Incentivized

Reuse is Indoctrinated

Reuse is “the way we do business”

Planning for reuse

Nonexistent

Grassroots activity

Targets of Opportunity

Business Imperative

Part of strategic plan

Breath of reuse involvement

Individual worker

Work group

Department

Division

Enterprise

Responsibility for making reuse happened

Individual worker

Shared initiative

Dedicated personal

Dedicated group

Corporate Group

Process by which reuse is leveraged

Development process chaotic unclear where reuse comes in

Reuse questions raised at design review (after de fact)

Design emphasis placed on reuse of-the-shelf part

Focus on developing families of products

All software products genericized for future reuse

Reuse inventory (assets)

Salvage yards (no apparent structure to collection)

Catalog Identifies Language and platform specific parts

Catalog Organized along applicationspecific lines

Catalog includes generic data processing functions

Planned activity to acquire or develop missing pieces in catalog

Classification activity

Informal, individualized

Multiple independent schemes for classifying parts

Single scheme, catalog published periodically

Some domain analyses performed to determine categories

Formal, complete, consistent, timely classification

The

Reuse

Company

Organizing a reuse program Metrics: Reuse Maturity Model

The way to Knowledge Reuse

Dimension of Maturity

Initial/Chaos

Monitored

Coordinated

Planned

Ingrained

Technology Support

Personal Tools, if any

Lots of tools, e.g. configuration management, but not specialized to reuse

Classification aids and synthesis aids

Electronic Library separate from development environment

Automated support integration with development system

Metrics

NO metrics on level of reuse, payoff, or cost of reuse

Number of lines of reused code factored into cost models

Manual tracking of reuse occurrences of catalog parts

Analyses performed to identify expected payoffs from developing reusable parts

All systems utilities, software tools, and accounting mechanisms intrument to track reuse

Legal, contractual, accounting consideration

Inhibitor to getting started

Internal accounting scheme for sharing costs, allocating benefits

Data rights and compensation issues resolved with customer

Royalty scheme for all suppliers and customers

Software treated as key capital asset

Koltun and Hudson, 1991. Managing Software Reuse. Wayne C. Lim

The

Reuse

Company

Organizing a reuse program

The way to Knowledge Reuse

Metrics: Lim’s model

Managing Software Reuse. Wayne C. Lim

The

Organizing a reuse program

Reuse

Company

Metrics: 2RMM Reuse Maturity Levels in 3RMM Ingrained Planned

The way to Knowledge Reuse

Coordinated Monitored Initial-Chaotic

MATURITY

5 4

Ingrained

3

Coordinated

2

Monitored

1

Initial-Chaotic

Planned

Information Low Normalization level

Medium level

High level

• Reuse Variables: technical structure, the organization’s software & information architecture, institutional management r = Repository Environment s = Software Environment m = Administrative Management i = Information Environment

Domain level

Project SCALABILITY level

The

Organizing a reuse program

Reuse

Company

Metrics: 2RMM •1-Repository Environment = r

The way to Knowledge Reuse

•r1 = Representation of Information •r10

•Corporate Repository structure to classify textual assets

•1 point max

•r11

•r111

•Corporate Repository structure to classify code assets

•0.34 points max

•r112

•Corporate Repository structure to classify user interface assets

•0.33 points max

•r113

•Corporate Repository structure to classify components

•0.33 points max

•r12

•Corporate Repository structure to classify design assets

•1 point max

•r13

•Corporate Repository structure to classify analysis assets

•1 point max

•r14

•Corporate Repository structure to classify domain assets (PL)

•1 point max

•r15

•Corporate Repository structure to classify project management assets

•1 point max

•r2 = Classification and Retrieval Techniques (Scale Level Dependant) • •r21

•Manual indexing and retrieval of assets

•0.2 points max

•r211

•Automatic and Manual textual indexing of assets

•0.25 points max

•r212

•Retrieval of assets through documentary query

•0.25 points max

•r213

•Automatic and manual software indexing of assets

•0.25 points max

•r214

•Retrieval of assets through attributes, QbyE, etc

•0.25 points max

•r3 = Management and Automation Tools (Scale Level Dependant) •r31

•System for authorization, rejection, upgrading and notification of assets

•0.2 points max

•r32

•Existence of statistics calculation module on asset reuse

•0.2 points max

•r33

•Tools for automatic creation of repository from previous projects

•0.2 points max

•r34

•Tools for automatic integration of the repository with change control

•0.2 points max

•r35

•Tools for automatic integration of assets in new projects

•0.2 points max

The

Organizing a reuse program

Reuse

Company

ISO/IEC – IEEE approach ISO 12207+1517

The way to Knowledge Reuse

Primary Processes

Supporting Processes

CrossProject Processes

Organizational Procs.

Acquisition

Documentation

Management

Supply

Quality Assurance

Infrastructure

Development

Cfg. Management

Training

Operation

Verification

Improvement

Maintenance

Validation

Reuse Program

Domain Engineering

Joint Review Audit Problem Resolution ISO/IEC 12207:1995, Software life cycle processes

Asset Management

IEEE Std. 1517.- Software Life Cycle Processes - Reuse Processes

Software Reuse: A Standards-Based Guide, Carma Mc Clure

The

Reuse

Company

Organizing a reuse program ISO/IEC – IEEE approach: Reuse Program

• Initiation Activity The way to Knowledge Reuse

– Strategy, Sponsor, Participants, Organiz. groups

• Domain Identification Activity – Identification, Evaluation, Review and Update

• Reuse Assessment Activity – Capabilities, domains selection, improvements,..

• Planning Activity – Implementation plans and follow-ups.

• Execution and Control Activity – Execute, monitor, control,

• Review and Evaluation Activity

The

Reuse

Company

Organizing a reuse program

ISO/IEC – IEEE approach: Domain Engineering

• Process Implementation Activity The way to Knowledge Reuse

– Planning

• Domain Analysis Activity – Identification, Vocabulary and Model construction, Classify documentation, evaluation, review

• Domain Design Activity – Define, develop and evaluate Architecture

• Asset Provision Activity – Develop or buy assets, evaluate, document,..

• Asset Maintenance Activity – Support, etc

The

Reuse

Company

Organizing a reuse program ISO/IEC – IEEE approach: Asset Management

• Process Implementation Activity The way to Knowledge Reuse

– Planning, documentation definition, CMgmt.

• Asset Storage and Retrieval Definition Activity – Define and implement repository, develop classification schema, review repository

• Asset Management and Control Activity – Evaluate, Include, classify, CM, follow-up assets,

The Reuse Research Center

Implementing Reuse Process

The

Reuse

Company

The way to knowledge reuse INDRA: 19th January 2005

The

Reuse

Company

Implementing Reuse Processes

The way to Knowledge Reuse

Outline

• Standard SDPs • General Reuse Process Model • Particular Processes

The

Reuse

Company

Implementing Reuse Processes SDPs without Reuse

The way to Knowledge Reuse

• Standard modern SDPs (RUP,.)

– – – – –

Project based So called “architecture centric” (RUP) Traced only in theory Iterative and incremental Not designed for reuse even if some can support it

The

Reuse

Company

Implementing Reuse Processes General Reuse Process Model Reuse Management

The way to Knowledge Reuse

Lead, Promote, Support, Plan, Fund,..

Domain Engineering

New project

Software with Reuse

Software for Reuse

Find, customize,glue SW, integrate, OR create SW

Reusable Assets, PLs, Frameworks, DLLs,…

New Solution

– Software With Reuse as the driving goal – Software for Reuse as an investment

The

Reuse

Company

Implementing Reuse Processes

• Reuse based SDPs Reuse Management

The way to Knowledge Reuse

Lead, Promote, Support, plan, fund,..

Domain Engineering New project

Software with Reuse

Software for Reuse

Find, customize,glue SW, integrate, OR create SW

Reusable Assets, PLs, Frameworks, DLLs,…

New Solution

– – – –

DE needs to be performed in advance DE usually only applied to architecture (solution) Real architecture based and centric Commonality is found, modeled and furthered reused – Variability is modeled through parameters, inheritance and templates

The

Reuse

Company

Implementing Reuse Processes

The way to Knowledge Reuse

• Reuse based SDPs Pros – Provide the grounds for performing real reuse – All benefits from systematic reuse – All benefits from DE • Expliciting knowledge • Benefiting Commonality/Variability analysis

• Reuse based SDPs Cons – – – – – –

Very expensive to start with Against classical SPDs experience and knowledge Requires big efforts in teaching and training Requires high Management implication Weak support of “technology change” Very expensive to maintain DE processes

The

Reuse

Company

Implementing Reuse Processes REBOOT Process Model

• ESPRIT Funded EU project The way to Knowledge Reuse

– Based on the Producer / Consumer paradigm New project

Software with Reuse

New Solution

Software for Reuse

The

Reuse

Company

Implementing Reuse Processes Ivar Jacobson et al. Reuse Process Model

The way to Knowledge Reuse

Manage the Reuse Business

Application Family Engineering New project

Application System Engineering

New Application Jacobson, Gris Jonsson, 97

Component System Engineering

The

Reuse

Company

Implementing Reuse Processes Ivar Jacobson et al. Reuse Process Model

• Organization: The way to Knowledge Reuse

– Architectural group • Define the architecture and the SW for reuse.

– Component Developers • Develops the SW for reuse

– Project Groups • Performs SW with reuse

– Support Group • Help to do SW with reuse using SW for reuse

– The reuse Manager • “Makes all together” Jacobson, Gris Jonsson, 97

The

Reuse

Company

Implementing Reuse Processes ISO/IEC – IEEE approach: 12207+1517

• Organization: The way to Knowledge Reuse

– Participants • Reuse participants: organized

– Promotion Group • Performs reuse promotion

– Support Group • Help to organize, plan, reuse, support

– The reuse manager • “Makes all together”

– The reuse sponsor • Strategy, and promotion definition Jacobson, Gris Jonsson, 97

The

Reuse

Company

Implementing Reuse Processes RE-UP SDP Model Reuse Management Voc SfR? Software with Reuse

Risk Software for Reuse

The way to Knowledge Reuse

New Project

Req Est Ana Traceability

Des Dev Tes PM Ix

New Solution

The

Reuse

Company

The Reuse Company’s view RE-UP

• Reuse Based Unified Process (RE-UP ) The way to Knowledge Reuse

v1.5

– Project based – Obliged to support full trace – Systematic Reuse and Use oriented: At two levels • Project level • Domain Level

– – – – –

DE is suggested but optional DE applied to problem and architecture (solution) SDP is knowledge centric (problem, architecture,..) DE is performed continuously and incrementally Supported by CAKE © The Reuse Company

The

Reuse

Company

The Reuse Company’s view RE-UP

• Reuse Based Unified Process (RE-UP ) The way to Knowledge Reuse

v1.5

In order to improve SW development quality, the SDP must inexorably avoid its artistic side, represented by the “creation” concept. Therefore the systematic USE and (specially) RE-USE paradigms must become the center of the SDP. SW Engineers must only be Engineers and avoid to be (usually bad) artists.

© The Reuse Company

The Reuse Research Center

Reuse Technology

The

Reuse

Company

The way to knowledge reuse INDRA: 19th January 2005

The

Reuse

Company

Reuse Related Technologies

The way to Knowledge Reuse

Outline

• • • •

Object Oriented Technology Domain Engineering Software Architecture Assets – – – –

Components, COTS Patterns Product Lines Frameworks

• Repositories • Computer based Tools

The

Reuse

Company

Reuse Related Technologies Object Oriented Technology

The way to Knowledge Reuse

• Definition: – A software development technique in which a system or component is expressed in terms of objects and connections between those objects (IEEE)

• Centered around “classes” and “objects” – Class: set of objects that share a common structure and a common behavior (Booch) – Object: instance of a class

Leanna Rierson. FAA

The

Reuse

Company

Reuse Related Technologies Object Oriented Technology

The way to Knowledge Reuse

• Benefits for Reuse – – – – – –

Breaks complex systems into manageable pieces Easier to implement OO design into code Supports use of development tools Encapsulation Inheritance Polymorphism

Leanna Rierson. FAA

The

Reuse

Company

Reuse Related Technologies Domain Engineering

The way to Knowledge Reuse

• Definitions: – Systematic way of identifying a domain model, commonality and variability, potentially reusable assets, and architecture to enable reuse (Jacobson, et al.)

– Process of defining architecture, analysing requirements and developing software, not for a single application but for a family of applications (Ezran et al.)

The

Reuse

Company

Reuse Related Technologies Domain Engineering

• In order to perform Domain Engineering: The way to Knowledge Reuse

– Domain Analysis • Activity of identifying objects and operations of a class of similar systems in a particular domain. (Ruben Prieto-Diaz)

– Domain Design • Activity of identifying the architecture structure of the domain to be modeled

– Domain Implementation • Activity of implementing the results of the previous steps.

• Domain – An application area for which similar software systems have been built (Ruben Prieto-Diaz)

The

Reuse

Company

Reuse Related Technologies Domain Engineering

The way to Knowledge Reuse

• Offers greatest potential for productivity and quality gains through: – Knowledge reuse – Reuse of architectural domain knowledge – Repositories of components e.g., general purpose libraries of software architectures – Reuse of software designs and patterns

Leanna Rierson. FAA

The

Reuse

Company

Reuse Related Technologies Assets

The way to Knowledge Reuse

• Definition: – Valuable, high quality software workproducts (such as code, designs, architectures, interfaces, tests), documents, tools, processes, and compiled knowledge (guidelines, modules, formulas,…) Jacobson, Gris Jonsson, 97

• An asset is a product – Definition, Industrialization, Advertisement, Support, Follow-up

The

Reuse

Company

Reuse Related Technologies Assets

• Asset composition The way to Knowledge Reuse

– Several workproducts • Requirements definition, Architecture definition, Analysis, Design models, Code, tests,..

– – – –

Asset body Asset description Asset documentation Asset relationships with other assets

• Vertical Assets • Specific to an application domain

• Horizontal Assets • Recurrent architectural elements

The

Reuse Related Technologies

Reuse

Company

Assets: Metamodel 0..* -

0..*

Is composed of

Asset

The way to Knowledge Reuse

- Identifier

uses 0..*

- Origin - Granularity - Usage

1..1

1..1

-

Asset Description

Asset Body

-Reusable part

Software Process Workproduct

1..* 1..1

1..1

1..1

Administrative Information 1..1

Analysis Model

Environment Information

- Author

- Development Environment

- Documentation level

- Creation

- Execution Environment

- Reliability level

- Date

- Test Environment

1..1

-

Classification Information

- Keywords - Facet 1 - Facet 2

Ezran, Morisio, Tully

Design Model

Executable Code

Test Program

Qualification information

Source Code

1..1

Asset Usage

Asset History

-

-

- Context

0..*

- Result

User Documentation

Test report

Test Scenarios

The

Reuse

Company

Reuse Related Technologies Characteristics of well designed assets

The way to Knowledge Reuse

• Quality and reusability – Compliance to standards, guidelines and rules – Completeness of information • Conformity to asset model

– Modularity

• Functional Criteria – Vertical Assets (VA) automates a business process – VAs implements a trade-off between Specific/generig dilemma. Ezran, Morisio, Tully

The

Reuse

Company

Reuse Related Technologies Characteristics of well designed assets

The way to Knowledge Reuse

• Technical Criteria – – – –

Interoperability (intecomunicate with other assets) Portability (ability to run on different platforms) Well defined interface (and encapsulation of implementation) Composition (can be grouped or decomposed but respecting reusability criteria)

– Self-Descriptiveness (if black box, must describe its own interface) – Location transparency (for executable, can run on different machines)

– Owner Security (certify owner, digital signatures..) – Plug and Play Ezran, Morisio, Tully

The

Reuse

Company

Reuse Related Technologies Assets Life Cycle Identified / Specified

The way to Knowledge Reuse

Under Development

Under Modification

Submitted New Version

Asset must be improved

Certified

Request for Modification

Classified

Published

Ezran, Morisio, Tully

The

Reuse

Company

Reuse Related Technologies Assets: COTS

The way to Knowledge Reuse

• COTS (Commercial of the shelf): Definition – Commercially available applications sold by vendors through public catalog listings. – COTS software is not intended to be customized or enhanced. – Contract-negotiated software developed for a specific application is not COTS software

• Common uses: • Operating systems (OS) • Real-time operating systems (RTOS) Leanna Rierson. FAA

The

Reuse

Company

Reuse Related Technologies Assets: Software Components

The way to Knowledge Reuse

• What is a Software Component – Prewritten elements of software with clear functionality and well-defined interface (Rhodes)

– Software code and supporting documentation being considered for reuse. Forms a portion of the software that will be implemented by the integrator/applicant. (FAA Draft Advisory Circular)

Leanna Rierson. FAA

The

Reuse

Company

Reuse Related Technologies Software Components: Characteristics

The way to Knowledge Reuse

Component benefits (Meyer) – – – – – – – –

Careful specification of functionality & interface Correctness - works as specified Robustness - doesn’t fail if used properly Ease of identification Ease of learning Wide-spectrum of coverage Consistency Generality - useful for multiple environments

Leanna Rierson. FAA

The

Reuse Related Technologies

Reuse

Company

The way to Knowledge Reuse

Assets: Patterns Basics

– Reoccurring Problems – Well defined solutions – Patters have pros and cons – Patters for everything • • • •

Requirements Patterns Design Patterns Code Patterns Etc..

The

Reuse

Company

Reuse Related Technologies

The way to Knowledge Reuse

Requirements Patterns

The

Reuse

Company

Reuse Related Technologies Design Patterns

The way to Knowledge Reuse

Design Pattern: – – – –

Name Æ identify the problem and the solution Structure Æ The design of the solution Application Conclusions

The

Reuse

Company

Reuse Related Technologies

The way to Knowledge Reuse

Design Patterns

– – – –

Flexible, reusable applications Well designed Allows communication between developers To know design patterns = skill increment.

The

Reuse

Company

Reuse Related Technologies Design Patterns

The way to Knowledge Reuse

GOF Design Patterns, Gamma,etc. – Creational: to help building a system independently of how the objects are created, their structure and their representation

– Structural: Classes and objects composition to build structures. – behavioral: Algorithm definition and responsibilities among objects in the system, communications between objects.

Model-View-Controller

describing

the

The

Reuse

Company

Reuse Related Technologies Repositories

The way to Knowledge Reuse

• Definition: – A database or distributed storage system where reusable assets as stored, classified, controlled, accounted and can be retrieved for reuse.

• Enable to avoid Ad-hoc Reuse

The

Reuse

Company

Reuse Related Technologies Repositories: metamodel

The way to Knowledge Reuse

Repository

Catalogue

Asset

1..1

1..*

- Identifier - Origin - Granularit

1..*

1..1

Asset Description

1..1 Asset Body

The

Reuse

Company

Reuse Related Technologies

The way to Knowledge Reuse

Repositories: Functionality to provide

– – – – – – – – – – –

Asset identification and description Asset insertion Catalogue browsing Search (by description and by content) Asset extraction Asset History (author, creation, upgrade, etc..) Measurement Access Control Version management Change Control Change Notification

The

Reuse

Company

Reuse Related Technologies Computer Based Tools

• Reuse Specific Tools The way to Knowledge Reuse

– Component Manager, Object Catalog, SALMS, CAKE,..

• Configuration management systems – Clear Case, Continuum, PVCS, Visual Source Safe, CAKE,..

• Repositories for CASE Tool integration – Allegris, Enabler, MS-Repository, CAKE,..

• Upper CASE – Rational Rose, Paradigm Plus, CAKE,..

• Lower CASE – Visual C++, Borland C++, Power Builder,..

• Domain Engineering – Protege, CAKE,..

The

Reuse

Company

Reuse Related Technologies Repositories: Classification CATEGORIES OF TOOLS

The way to Knowledge Reuse

Repository Functions

Reuse Specific Tools

Configuration management systems

Repositories for CASE Tool integration

Upper and Lower CASE Tools

Intranet Groupware tools

Identification and description

Y

Y

Y

Y

N

Insertion

Y

Y

Y

N

Y

Browsing

Y

N

Y

Y

Y

Searching by description

Y

N

N

Y

Y

Searching by content

N

N

N

N

N

History

Y

N

N

N

N

Measurement

Y

N

N

Y

N

Access Control

Y

Y

N

N

Y

Version Management

N

Y

N

N

N

Change Control

N

Y

N

N

N

Change Notification

Y

N

N

N

Y