MSU CSE 870 - On the Design and Development of Program Families

Unformatted text preview:

On the Design and Development of Program FamiliesOulineProblem and MotivationOverview of ContributionSlide 5Slide 6Example applicationSlide 8Slide 9ImpactSlide 11Open QuestionsOn the Design and Development of Program FamiliesDavid ParnasPresented by Gregory BrownIEEE Transactions on Software Engineering, VOL SE-2, NO. 1, March 1976Ouline•Problem and Motivation•Overview of Contribution–Stepwise Refinement–Module Specification•Example Application–Stepwise Refinement–Module Specification•Impact•Open QuestionsProblem and Motivation•Problem–Investigated production of program families–“Classical Method”: sequential completion–Each member was a full working program–Each one built from an ancestor–Each inherits the design decisions of ancestors•Motivation:–Make good, common design decisions up front–Parallel development of family membersOverview of Contribution•Stepwise Refinement•Each member is a functioning program•Successive steps add funcitonality•Each step represents design decision(s)•No unnecessary functionality•No performance degradation•Revert back to previous stepOverview of Contribution•Module Specification•Intermediate steps not programs•Steps are specifications of collections of functionality•Modules made to hide design decisions•Early work designed to postpone decisions•Make a wide program family possibleOverview of Contribution•Module method avoids disadvantages of stepwise refinement•Stepwise refinement does make design decisions - rollback can lose this•The two are complementary•Stepwise refinement lower complexity•Module method requires more workExample application•Stepwise refinement•Dijkstra’s prime problem•Step 1:•bestyet := nullwhile not all.spaces considered dobeginfind next item from list of free spacesbestyet := bestof(bestyet,candidate)endif bestyet = null then erroractionallocate(best yet):remove(best yet)Example application•Stepwise refinement•Step 2:•bestyet := 0candidate := 0while candidate != N dobegincandidate := candidate+1bestyet := bestof(bestyet,candidate)endif bestyet = 0 then erroractionallocate(best yet)remove(best yet)Example application•Module Specification•Dijkstra’s prime problem•Split into information-hiding modules•Modules:–Free space list–Allocation–Selection criteriumImpact•Stepwise refinement is often used–Add functionality to existing software–Using modules and patterns–General strategy to developing systems•Revision control systems•Module specification part of OO design–Encapsulation to hide implementation–Commonly taught and used practice•Module specification allowed for development of patternsImpact•Stepwise refinement and module specification complementary•Can create software in stages, but using modules•Complementary approaches•Use strategy pattern among others to ease workOpen Questions•How could the two best be combined to enhance software development?•When is it a good idea to not use stepwise refinement or module specification?•Does the classic approach Parnas described not have a place at


View Full Document

MSU CSE 870 - On the Design and Development of Program Families

Documents in this Course
HW2

HW2

3 pages

splc1

splc1

21 pages

Lessons

Lessons

3 pages

revision

revision

13 pages

ft1

ft1

12 pages

john.dsn

john.dsn

21 pages

Survey

Survey

2 pages

revision

revision

38 pages

Load more
Download On the Design and Development of Program Families
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view On the Design and Development of Program Families and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view On the Design and Development of Program Families 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?