Time to Market -Solving the Problem of Viable Processes Through Research

About This Presentation
Title:

Time to Market -Solving the Problem of Viable Processes Through Research

Description:

On the recognition of components, re-use and designs based on components-the problem of isomorphisms, some examples Karl Reed Visiting Scientist – PowerPoint PPT presentation

Number of Views:2
Avg rating:3.0/5.0

less

Transcript and Presenter's Notes

Title: Time to Market -Solving the Problem of Viable Processes Through Research


1
On the recognition of components, re-use and
designs based on components-the problem of
isomorphisms, some examples
Karl Reed Visiting Scientist Fraunhofer IESE
Kaiserslautern (using suggestions and results
from Jacob Cybulski, Oddur Benediktsson and Mark
Woodman)
2
About This Seminar
  • The issues of infrastructure may be solved, but
    the problem of composition remains
  • Rather than present a theory, we present a series
    of COTS/CBSE problems collected over a 30 year
    period, and show their solutions
  • Several have been actually implemented (and some
    are in the literature)
  • Some are assertions of isomorphisms
  • Some are conjectures.
  • The collection illustrates a number of different
    techniques, and different levels of granularity
    of composition re-use
  • The results in each case will be presented in
    terms of the authors KABASPP classification

3
The Presenters Views
  • My beliefs
  • B1. Without techniques for composition
    (functional and otherwise), CBSE will progress
    slowly, if at all
  • B2. Since people are actually building systems
    from components, and have done so for a long
    time, there must exist operational rules for
    composition..
  • B3. Theoretical approaches are important,
    however, an analysis of actual case studies will
    provide a basis for theoretical development..
    Lets collect examples
  • B4. There (must) exist pervasive canonical
    representations of applications from different
    domains that define cross-domain isomorphisms
  • B5. The emphasis on infrastructure and formality
    makes progress slow.
  • B6. Detailed analyses of this kind may lead to
    improved analogues for standard solutions

4
The Audience?
  • Experienced researchers who already know how
    important CBSE is
  • So, we skip 6-7 slides motivating CBSE, and
    so-on..

5
Seminar Agenda
  • 1. Simple Examples from Physical Sciences
  • 2. The Knowledge Based Approach to Software
    Project Planning.. (an idea Reed 1990)
  • 3. Ungrouped list from IT areas
  • 4. What do we want to be able to do with CBSE,
    and where are we at?
  • 5. Solutions to the Ungrouped list
  • 6. Some further examples
  • 7. Conjectures on why progress is hard
  • 8. Where to from here?

6
1. Simple Examples from Phyiscal Sciences
  • There are versions of the following
    problem-statements which are isomorphisms in
    that despite their different domains, they have a
    common solution/canonical representation.
  • 1. The amount of learning achieved over time,
  • 2. the decay of charge on a capacitor,
  • 3. the transfer of heat between two bodies,
  • 4. the decay of a radio active substance,
  • 5. efficiency of sub-sonic jet engines,
  • 6. population growth
  • .all have the same canonical representation in
    terms of DEs

There are many more...
7
1. Simple Examples from Physical Sciences(contd)
  • Isomorphisms, Generalisations, Specialisations,
    Evolutions,
  • Canonical Representations, Formal Methods
  • Next question.. How do we recognise these?? The
    role of Canonical Representations, Formal Methods
  • Canonical Representation A Description of
    something in terms of some underlying properties
    that abstracts its true nature
  • Formal Methods (maths..). A particular set of
    representational systems which include
    reasoning processes (proof techniques) which
    (in our case) permit the identification of
    descriptions with identical canonical
    representations..
  • Specialisation. See above..

8
Seminar Agenda
  • 1. Simple Examples from Physical Sciences
  • 2. The Knowledge Based Approach to Software
    Project Planning.. (an idea Reed 1990)
  • 3. Un-grouped list from IT areas
  • 4. What do we want to be able to do with CBSE,
    and where are we at?
  • 5. Solutions to the Ungrouped list
  • 6. Some further examples
  • 7. Conjectures on why progress is hard
  • 8. Where to from here?

9
2. KABASPP Domains and Components
APPLICATION SOLUTION DOMAIN - Algorithms for
searching lists - Approx. method for
calculating acceleration of train - Procedure
for allocating positions on a vehicle given
multiple access - Path optimisation procedure
for routing of information - Algorithm for
rotating graphic images - Procedure for
recovering disc-space - Sorting procedures
Currently Computer Science, graphics, A.I.,
S.E., etc.
  • AD- APPLICATIONS DOMAIN
  • - Acceleration characteristics of a train
  • - Organisational structure of business
  • - Rules for issuing air-line tickets or degrees
  • - Procedures for organising work flow
  • - Procedures for design of pressure vessel etc.
  • CURRENTLY Commercial Systems Analysis,
    Engineering Design Analysis,Knowledge
    Engineering and a well understood process

10
2. KABASSP Domains and Components
  • DEVELOPMENT ENVIRONMENT DOMAIN
  • Programming languages
  • Methodologies JSD, SD, Modular Design
  • Tools - CASE, other development aids, Test tools
  • O.S and control language - Shell, MCD, DOS, JCL,
    etc.
  • Utilities - Loaders, File manipulation, editors,
    configuration managers.
  • Files memory, DBMS
  • Compiler writing
  • CURRENTLY Computer Science, Software
    Engineering, etc
  • RUN-TIME DOMAIN
  • O.S. interfaces
  • DBMS calls
  • Instruction set, external interfaces
  • Resource constraints (i.e. profile of
    available cpu-time, i/o, mem for the system).
  • Response time
  • Device peculiarities
  • Hardware Reliability vs Design goal
  • CURRENTLY computer science and hardware plus S.E.
  • PROJECT MANAGEMENT DOMAIN
  • Estimating, Project Planning, Project
    Organisation
  • Resource acquisition, Project Tracking,
    Customer liaison
  • Quality Assurance, System Delivery, Maintenance
    Planning
  • CURRENTLY Commercial EDP and Software
    Engineering and KABA

11
Seminar Agenda
  • 1. Simple Examples from Physical Sciences
  • 2. The Knowledge Based Approach to Software
    Project Planning.. (an idea Reed 1990)
  • 3. Ungrouped list from IT areas
  • 4. What do we want to be able to do with CBSE,
    and where are we at?
  • 5. Solutions to the Ungrouped list
  • 6. Some further examples
  • 7. Conjectures on why progress is hard
  • 8. Where to from here?

12
Reuse examples, evolving listexamples from reed,
cybulski, bendiktsson and woodman rev2.0 8/9/2002
13
Arrange these in groups which are either
isomorphic, or, can be built from the same
component kit. (1-9)
  • 1. Count the number of occurrences of different
    words in a text file...
  • 2. A simple banking system, with passbook
    accounts
  • 3. Design an ATM controller
  • 4. Given a text file of records containing suburb
    names and their postcodes, check that each entry
    is correct,
  • 5. A stock control system for a warehouse
  • 6. implement a currency converter
  • 7. design a tickler system, which tells you
    that you should look at file on a particular date
    and time.
  • 8. A file with records containing sales
    incidents in the form of a product code and the
    no. sold, produce a list of the total no. sold
    for each product
  • 9. A player flips two coins. If the coins have
    the same face, the player wins, else they loose

14
Arrange these in groups which are either
isomorphic, or, can be built from the same
component kit. (10-15)
  • 10. A system for handling video store lending
  • 11. A program to control a vending machine is
    required
  • 12. design an email system which sends a message
    to a particular user,
  • 13. A dice game in which players roll choose a
    number of dice to roll. They win if the sum of
    the total resulting from the roll is even, else
    they loose
  • 14. A library lending system
  • 15. Translate metric to imperial units

15
Grouping the Examples..
16
Seminar Agenda
  • 1. Simple Examples from Physical Sciences
  • 2. The Knowledge Based Approach to Software
    Project Planning.. (an idea Reed 1990)
  • 3. Un-grouped list from IT areas
  • 4. What do we want to be able to do with CBSE,
    and where are we at?
  • 5. Solutions to the Ungrouped list
  • 6. Some further examples
  • 7. Conjectures on why progress is hard
  • 8. Where to from here?

17
4. What do we want to be able to do with CBSE,
and where are we at?
  • 1. What do we want to able to do? (KRs view)
  • Construct systems from components to achieve
    apriori requirements, both functional and
    non-functional
  • More economically than by alternative means (in
    the broadest sense)
  • This requires the ability to reason about
    composition properties, either formally, or
    informally
  • 2. Where are we at?-using ICSE CBSE as a basis
    for judgement...

18
4. What do we want to be able to do with CBSE,
and where are we at?
  • 1. What do we want to able to do? (KRs view)
  • 2. Where are we at?-using ICSE CBSE as a basis
    for judgement...
  • General understanding of
  • Infrastructure requirements for CB systems
  • Mechanisms within existing programming paradigms
    and languages that support CB systems
  • Broad concepts of process issues - impact of CB
    on process models
  • Not well understood..
  • Reasoning about various properties of a composed
    system, e.g, functionality,security, performance
    (?), testability, persistance
  • Mapping requirements onto selections of
    components
  • Compositional hierarchic ripple.. How are
    changes in the property of a component reflected
    the overall properties of a system?

19
4. What do we want to be able to do with CBSE,
and where are we at?
  • 1. What do we want to able to do? (KRs view)
  • 2. Where are we at?-
  • Actually quite extensive history of CB systems,
    over a long period, so there is an opportunity to
    study these, and consider operational
    approaches..
  • (E.G. I worked on AKE130 at Ericssons in 1970..
    The approach was large-scale, malleable component
    based.., with medium to high levels of code
    re-use across variants within the same
    product-line)

20
Seminar Agenda
  • 1. Simple Examples from Physical Sciences
  • 2. The Knowledge Based Approach to Software
    Project Planning.. (an idea Reed 1990)
  • 3. Un-grouped list from IT areas
  • 4. What do we want to be able to do with CBSE,
    and where are we at?
  • 5. Solutions to the Ungrouped list
  • 6. Some further examples
  • 7. Conjectures on why progress is hard
  • 8. Where to from here?

21
Seminar Agenda
  • 5. Solutions to the Ungrouped list
  • Approach taken. semi-formal,
  • 5.1 Simple NL statements of functional
    requirements at a core level. This is based upon
    work proposed by Reed and undertaken by Cybulski
    in recognising commonality in requirements
  • 5.2 Large amount of application domain knowledge
    used in some cases
  • 5.3 Canonical representations used in others,
  • 5.4 formal approach taken in only ONE
  • 5.5 The presentation in two cases is work in
    progress.. Note that there is iteration across
    the problems in different domains
  • to be completed.. Convert some of these to
    formal notation.
  • 5.6 Some of these have been implemented, some are
    examples stimulated by existing components
  • 5.7 We assume the following and hence ignore
    them-
  • 5.7.1 Appropriate component/module deployment
    infrastructure exists (most of these examples
    could be demonstrated in Fortran 66)
  • 5.7.2 Various non functional requirements (e.g.,
    security, performance, etc.) are orthoganal to
    the designs (this is not strictly true, however
    it will do for a start)
  • 5.7.3 There is a separation between UI, Logic and
    Repository functions. We are dealing with the
    logic

22
5. Solution-RG1..
23
5. Solutions-RG1-S1
1. Count the number of occurrences of different
words in a text file...
SAMPLE INPUT approach-how would you do this with
paper and pencil It is not always easy to see
what is, and what is not relevant. When one has
done this, often designs become easy-when it is
not done, they may be not-easy.
Alpha char string delimited by blanks or
specials
Persistant DS for result
Returns string of chars, delimited by
blanks/specials with a type
Tool ?
Table-handler or DB
Lexical analyser
24
5. Solutions-RG1-S1
4. Given a text-file of records containing a
suburb name and its postcode. Check that the
post-code is correct for the suburb name provided
.
SAMPLE INPUT approach-how would you do this with
paper and pencil, and the APO Post-code
list Melbourne??3000? Eltham?3095? Bundoora??3083
?
Persistent DS Table of valid suburb-postcode
pairs
Alpha char string delimited by blanks or
specials
Returns string of chars, delimited by
blanks/specials with a type
Tool ?
Table-handler or DB
Lexical analyser
25
5. Solutions-RG1-S1
8. A file with records containing sales
incidents in the form of a product code and the
no. sold, produce a list of the total no. sold
for each product
SAMPLE INPUT DB123,30? XY459,2? DB123,50? UZV1234
-56,50?
Alpha char string delimited by blanks or
specials
Persistent DS for result
Returns string of chars, delimited by
blanks/specials with a type
Tool ?
Table-handler or DB
Lexical analyser
26
5. Solutions-RG1-S1
COMMON COMPONENTS -lexical analyser, -table-handl
er/DB
27
5. Solutions-RG1
  • COMMON COMPONENTS
  • We were only looking for some re-usable building
    blocks. However, a more general re-usable
    template exists.
  • HOWEVER, the effort to use it may, for a AD/ASD
    novice, be too great..
  • Conjecture.. It may be possible to construct a
    simple table-driven FSM that will allow more than
    one of these to be implemented without changing
    the code!
  • Application Domain Knowledge..general knowledge
    of the world
  • Application Solution Domain..Application of
    elementary compiler and DB approaches to
    data-processing? (does this exist?)

28
5. Solution-RG2..
We have 12 p to the shilling, and 20 shillings To
the pound.. Therefore.. No._pencelll2012ss1
2pp Let C be conversion rate of to Then
CpC/2.40 is the conversion rate from pence to
c, Euro-cents So, Temp int(No_penceCp)
int(Temp,100) cmod(temp,100) ie. , c
To make it interesting lllsspp Radix
conversion problem. Convert to pence, Convert
to Euro-cents Convert to Euros,cents
29
5. Solution-RG2..
Consider the core equation.. No._pencelll2012
ss12pp More generally..Consider
Vdn-1dn-2.d1d0 Such that radix for position i
is ri, then, in units (the value of position
i0), we have..
Looking at the procedure of obtaining the Euros
and Cents, we see it is the case where V is
converted to a new radix system, V Dm-1
Dm-2....D1 D0 ,where m?n, and the radices are Rl
. We obtain the Dl as follows TempV for k1
to m-1 do begin Dk-1rem(Temp,Rk)Tempint(Temp/Rk
) end
30
5. Solution-RG2...
Interesting 12 inches to the foot. 3 feet to the
yard, 1760 yards to the mile 1mm 0.393701
inch So, Cm-imp 0.393701 Input.. km,m,mm 1000
metres to kilometre, 1000 mm to metre.. Output
m,y,f,I
No_mmkm10001000m1000mm Tempint(No_mm
Cm-imp ) No_inchesrem(Temp,12)Tempint(Temp/12)
No-feet rem(Temp,3)Tempint(Temp/3) No-Ya
rds rem(Temp,1760)Milesint(Temp/1760)
31
5. Solution-RG2...
  • Result of analysis
  • A single (primitive) module could be produced
    that requires the radix specifications as a
    (value) parameters, the positional values as
    input and output parameters, and the conversion
    factor, and the radix position it applies to.
  • Special versions can be (trivially) produced in
    almost any programming language-programming
    paradigm (with varying ease) by wrapping the
    primitive with the required radix sets
  • Rounding in the smallest position can also be
    dealt with,( the SFO Suite does this for
    currencies)

32
5. Solution-RG2...
  • Application Domain knowledge required
  • Knowledge of natural structure of unit-systems
    as radix systems
  • Application-Solution Domain knowledge required
  • High degree of a familiarity with radix
    arithmetic systems and conversion (I taught this
    in computer architecture classes for ten years)

33
5. Solution-RG3..
Tickler system. Remind me to look at a
file/message at some date in the future.. What
a great idea! Module interface. tellme
(message,date)
Email system. Send a particular user a
file/message We know this one sendmail(useri
d,message)
Are these different? Or are they the same!
34
5. Solution-RG3..
sendmail(userid,message) What is implied in this
case? The time when the message is to be
delivered-the time is now
tellme (message,date) What is implied in this
case? The address, the userid is me, or owner
Both modules send a message.. Each is missing
some item of spec. that the other has.
implies ------------
sendmessage(userid,message,date
)
,mess_type
35
5. Solution-RG3..
  • Appl. Dom. knowledge..
  • Applic. Solution Domain
  • Designing Office Automation Systems for a while,
    experience with real refer again system
  • Knowledge the functional requirements
  • Development Domain
  • Experience with modular design strategies over
    15 years malleable component reuse
  • lateral thinking

36
5. Solution-RG4..
This suite of problems is best understood best by
a (semi-)formal statement-
  • Take two (coins) things , which are
    identical, except that they can be (tossed)
    stimulated simultaneously, and that when
    stimulated, assume one of two values
  • Stimulate the things. if the values are the
    same , the players wins,else, the player looses
  • Take n (dice) things, which are identical,
    except that they can be (rolled) stimulated
    simultaneously, and that when stimulated,
    assume one of six numeric values
  • Stimulate the things. if the sum of the
    values is even, the players wins,else, the player
    looses

37
5. Solution-RG4..
This suite of problems is best understood best by
a (semi-)formal statement-
  • Take n (dice) things, which are identical,
    except that they can be (rolled) stimulated
    simultaneously, and that when stimulated,
    assume one of six numeric values
  • Stimulate the things. if the sum of the
    values is even, the players wins,else, the player
    looses
  • The game uses n tokens, each of which can be
    stimulated in such away (that) the value
    displayed by a particular token upon examination
    is chosen randomly from a set of (different)
    outcomes whose size is m (Cybulski 2001). A win
    is defined by a function over the m outcomes
    which has the range win,loose
  • For coins.. n2,mhead,tail WIN(t1,t2)win if
    t1t2 else loose
  • For dice, nr,m1,2,3,4,5,6,WINwin if ?1 j
    mtj even else loose

38
5. Solution-RG5..
Vending machine Customer selects item, as a
result, item_value L1Advise customer of
item_value Customer inserts paymentmore_coins i
f paymentitem_value then compute_change(change_v
alue) issue(change_value) else if no._tries lt4
then go to L1
  • ATM..
  • L1Obtain Customer Credit Card No. and Pin
  • Obtain cash withdrawl size, Euros
  • Check authorization
  • if authorized then dispense (Euros) else
    reject_transaction if no._tries lt 3 then go to
    L1
  • proc. Dispense(Euros)
  • /split amount into available note-sizes
    dispense/c
  • proc. Issue(change_value)
  • /split amount into available coin-sizes
    dispense/c

39
5. Solution-RG5..
  • Extent of similarity.. (and this is the re-use
    problem)
  • Overall similarity seems initially to be rather
    weak.. A common algorithm (dispensing), and an
    overall pattern
  • In fact, the ATM and the vending machine should
    have slightly different patterns, but need not!
    (neither are generally very user friendly)
  • ASSERTION.. It is possible to create an
    (FSM-based) algorithm that will work for both, by
    recognising that some methods may be null
  • It may be too complex to produce something so
    general that the HCI is perfect in both cases...

40
4. Solution-RG6..
Only transfer needed as primitive
These four cases have a simple common model..
Starting with the Banking System...
  • create_an_account--gtgt an account is a list of
    transactions, and has a number of attributes,
    including account-id, set at creation time.
    Creation Authorisation!
  • deposit_amount(account_id,amount)
  • withdraw_amount(account_id,amount)--gt there maybe
    rules here, balance mustgtover-draw_limit,amountltle
    ss_than_notification_limit
  • close_account(account_id)--gtbalance must be zero
  • transfer(account_id_source,account_id_destination,
    amount)--gt rules may apply here
  • check_balance(account_id, balance)

See Mckeeman, 1975
41
4. Solution-RG6..
Starting with the Banking System Other
properties/Operations of an account..
  • May have interest credited at regular intervals,
    calc on this acct. balance
  • May have interest debited at regular intervals,
    calc. on this acct. balance
  • May have interest credited at regular intervals,
    calc on other acct. balance
  • May have interest debited at regular intervals,
    calc. on other acct. balance
  • May have amount credited at regular intervals,
    from some source
  • May have amount debited at regular intervals, to
    some destination
  • Some abstractions already suggest themselves.

42
4. Solution-RG6..
In principle, this system consists of a set of
bins, each with some location attributes...
Is this different from a bank account?
The basic way it works is 1. Orders are taken.
2. Completed orders are filled. 3. At the bin
level 3.1 The quantity in a bin is decremented
by a step in the order-filling process (if the
quantity is large-enough) 3.2 The quantity in a
bin is increased (replenished) when the stock
drops below a specified level 3.3 The quantity in
a bin may be replenished periodically 3.4 The
quantity in a bin may be different from the
quantity available to be ordered 4. Special
Conditions 4.1 Increments/decrements and balances
are usually (but NOT always) integer quantities
(e.g. a bin containing wheat, etc.) 4.2
Order-creation can be treated a separate
problem 4.3 Order-filling is a separate
process-may involve optimisation techniques 4.4
Bin-creation is an uncommon event (but it
happens) 4.5 Special discount systems affecting
product, customer, stock-level and all of these
Need for two records and synchronisation?
43
4. Solution-RG6..
Video store..
  • create_an_account--gtgt an account is a list of
    transactions, and has a number of attributes,
    including account-id, set at creation time.
    Creation Authorisation
  • lend_video(account_id,video)--gt there maybe rules
    here, no._videos_on_loanltless_than_max_allowed
  • return_video(account_id,amount)
  • close_account(account_id)--gtNo. videos on loan
    must be zero
  • Video-requested(loaned_to_account_id,
    wanted_by_account_id_destination,video)
  • check_balance(account_id, balance)

A list
See Mckeeman, 1975
44
4. Solution-RG6..
Video System Other properties/Operations of an
account..
  • May request video return specific intervals,
    based on a lending transaction on this acct (in
    effect, a regular debit)
  • May be notified requested video available at reg.
    intervals, based on other acct. returning
    requested video (in effect, a transfer, but
    triggered by some event)
  • May be notify return of video requested by
    another acct. (in effect, a transfer, but
    triggered by some event)
  • The similarity with the banking system is high! A
    difference is that entries in accounts have
    properties that can trigger events.
  • Two mechanisms
  • A/ include this property in the type-declaration
    for the account entry
  • B/ have an external filter which has a list of
    requested videos, and which is used to check
    all returns

45
4. Solution-RG6..
Library lending system
  • create_an_account--gtgt an account is a list of
    transactions, and has a number of attributes,
    including account-id, set at creation time.
    Creation Authorisation
  • lend_book(account_id,book)--gt there maybe rules
    here, no._videos_on_loanltless_than_max_allowed,
    for more than one category of book
  • return_book(account_id,amount)
  • close_account(account_id)--gtNo. book on loan must
    be zero
  • book-requested(loaned_to_account_id,
    wanted_by_account_id_destination,book)
  • check_books_on_loan(account_id, books_on_loan)

A list
See Mckeeman, 1975
46
4. Solution-RG6..
Library Book Lending System Other
properties/Operations of an account..
  • May request book return specific intervals, based
    on a lending transaction on this acct (in effect,
    a regular debit)
  • May be notified requested book available at reg.
    intervals, based on other acct. returning
    requested book (in effect, a transfer, but
    triggered by some event)
  • May be notify return of book requested by another
    acct. (in effect, a transfer, but triggered by
    some event)
  • The similarity with the banking system/library
    system is high! A difference is that entries in
    accounts have properties that can trigger events.
  • Two mechanisms
  • A/ include this property in the type-declaration
    for the account entry
  • B/ have an external filter which has a list of
    requested videos, and which is used to check
    all returns
  • But banks in Australia have notification
    requirements. Must notify authorities of cash
    transactions above a certain size transactions
    have types anyway!

47
4. Solution-RG6..
  • Similarity.far more than appears at first
    glance
  • the group (sbs,vsl,lls) are so similar that-
  • A/ a common component base can probably be
    developed
  • B/ a common set of patterns can definitely be
    developed
  • C/ this seems to be a universal analog
  • D/ some other possible systems of this type..
  • D.1/ Car-rental
  • D.2/ Equipment hire
  • D.3/ Property rental (?)
  • E/ the warehouse systems seems to be something of
    an out-lyer, HOWEVER!
  • E.1/ The basic operations are the same
  • E.2/ The synchronisation is in fact a
    transaction posting requirement. This exists in
    banking systems (we did not discuss this)
  • E.3/ The existence of async. Processes should not
    obscure the similarities

48
4. Solution-RG6..
Actual bank account example.
Balance in Account
Tranfser into account
Synchro-nistation problem
Note transfer NOT completed until next working
day!
49
4. Solution-RG6..
Needed in all cases-date of transaction
Actual bank account example.
Needed in all cases-description of transaction
May have different meaning, a field is needed
May have different meaning, a field is needed
Could be a tuple, for lending systems (or balance
could be dynamically determined)
50
Seminar Agenda
  • 1. Simple Examples from Physical Sciences
  • 2. The Knowledge Based Approach to Software
    Project Planning.. (an idea Reed 1990)
  • 3. Un-grouped list from IT areas
  • 4. What do we want to be able to do with CBSE,
    and where are we at?
  • 5. Solutions to the Ungrouped list
  • 6. Some further examples
  • 7. Conjectures on why progress is hard
  • 8. Where to from here?

51
Examples of Re-Use etc.
  • You must implement a linked list whose records
    have a key k, and the list is to be implemented
    on a random access file. The record are ordered
    under ?. The functions are..
  • Add a record,
  • Print a record given a key k
  • Delete a record,
  • Change the data in a record given its key
  • Change the key of a record with key k to k
  • Print all records in key order
  • How many different functions are there here?
  • How would you discover them? (Reed 1980)

52
Examples of Re-Use etc.-linked list
All of these have a common elements
  • You must implement a linked list whose records
    have a key k, and the list is to be implemented
    on a random access file. The record are ordered
    under ?. The functions are..
  • Add a record,
  • Print a record given a key k
  • Delete a record,
  • Change the data in a record given its key
  • Change the key of a record with key k to k
  • Print all records in key order
  • How many different functions are there here?
  • How would you discover them? (Reed 1980)
  • Locate position for insertion (LPI)
  • Locate record to be printed (LPP)
  • Locate record to be deleted (LPD)
  • Locate the record to be changed (LPC)
  • LPD,LPI
  • Interesting...

53
Merge Routine From Jensen and Wirth.
  • merge f and g into h
  • begin reset (f) reset (g) rewrite (h)
  • endfg eof(f) or eof(g)
  • while not endfg do
  • begin if f?lt g ? then begin get
    (f)endfg eof(f) end
  • else begin h ?g ?get(g) end
  • put(h)
  • end
  • while not eof(g) do begin h? g ?put
    (h) get (g) end
  • while not eof(f) do begin h? f ?put
    (h) get (f) end
  • end
  • Extend to n-way merge...

54
Examples of Re-Use etc.
  • You have received a large number of emails, and
    you are using the unix mailer pine
  • PROBLEM create an email-alias list including
    all those who contacted you..
  • WHAT WE KNOW.
  • 1. Folders of emails are simply files in the
    directory Mail/
  • 2. The function take will extract all email
    addresses from an email and present them to you
    as a list. It has a selection function which
    allows you to select which ones you want in an
    alias list
  • 3. It is possible to read a file as text into
    any email you wish to send
  • THERE ARE ENOUGH COMPONENTS HERE TO SOLVE THE
    PROBLEM-WHAT DO I DO?.

55
Seminar Agenda
  • 1. Simple Examples from Physical Sciences
  • 2. The Knowledge Based Approach to Software
    Project Planning.. (an idea Reed 1990)
  • 3. Un-grouped list from IT areas
  • 4. What do we want to be able to do with CBSE,
    and where are we at?
  • 5. Solutions to the Ungrouped list
  • 6. Some further examples
  • 7. Conjectures on why progress is hard
  • 8. Where to from here?

56
Seminar Agenda
  • 7. Conjectures on why progress is hard

7.1 The emphasis in much research is formal and
the results are hard to use 7.2 The subject
matter is inherently difficult to study 7.2.1
Hard to find examples 7.2.2 Study is not
glamorous 7.2.3 Need experienced researchers 7.3
Not easy to get funding for the kind of studies
that are needed.. Within-domain studies, and
cross domain studies 7.4 Expectations on outcomes
may be wrong. The results are not silver bullets.
(See Baragry 2000 on Cruise Control). They are,
however, complete design models, sometimes
involving high levels of code reuse 7.5 S/W
development is not taught in a way the trains
people to seek isomorphisms. E.G. engineers and
the linear decay problem 7.6 Students are not
taught cross-domain models, and how to use them.
They cant be we dont have them 7.7 THE SKILL OF
DEVELOPERS AND POWER OF SYSTEMS HAS OUTSTRIPPED
THE APPARENT NEED!
57
Seminar Agenda
  • 8. Where to from here?
  • 8.1 Document isomorphisms and teach them!
  • 8.2 Study those environments where they are
    assumed to exist, and identify the operational
    approaches used
  • 8.3 Develop appropriate formalisms, usable by
    practioners
  • In summary set specific agendas and go out and
    look

Danke schön
58
Seminar Agenda
  • 1. Simple Examples from Physical Sciences
  • 2. The Knowledge Based Approach to Software
    Project Planning.. (an idea Reed 1990)
  • 3. Un-grouped list from IT areas
  • 4. What do we want to be able to do with CBSE,
    and where are we at?
  • 5. Solutions to the Ungrouped list
  • 6. Some further examples
  • 7. Conjectures on why progress is hard
  • 8. Where to from here?

59
5. Solution-RG5..
  • NEEDS KABASPP ANALYSIS
Write a Comment
User Comments (0)