DOC PREVIEW
MSU CSE 870 - ExtensionContractionParnas-hopkins

This preview shows page 1-2-3-4-5 out of 14 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 14 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 14 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 14 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 14 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 14 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 14 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Designing Software for Ease of Extension and ContractionPresentation OutlineProblem and MotivationOverview of ContributionObservationsHow the lack of subsets and extensions manifests itselfSteps towards a better structureSteps towards a better structure(2)Example: Address Processing SubsystemAn Address Processing SubsystemSlide 11Slide 12ImpactOpen QuestionsDesigning Software for Ease of Extension and ContractionDavid ParnasPresented by Kayra HopkinsIEEE Transactions on Software Engineering, Vol. , No. 1, March 1979 pp. 128-138.Presentation OutlineProblemMotivationObservationsContributionExampleImpactQuestionsProblem and MotivationProblemHow can we design software so that is is easily extended and contracted?MotivationComplaints that most software systems as commonly/intuitively designed are not flexible.Changes require a lot of code rewritingOverview of ContributionObservationsRecognizing how the lack of Subsets and extensions manifests itself The Technique: Steps towards a better structureObservationsA software solution isn’t a single programSoftware as a family of programsChange is inevitableSo why not anticipate it with preparation?How the lack of subsets and extensions manifests itself Excessive Information DistributionA Chain of Data Transforming ComponentsComponents That Perform More Than One TaskLoops in “Uses” RelationSteps towards a better structureIdentify Subsets firstSolves problem of components with more than one functionMakes system more flexible to changeInformation Hiding: Define Interfaces and ModulesSolves problem of excessive information distributionVirtual Machine ConceptAddresses chain of data problemDesign the “Uses” StructureEliminates loops in the “uses” relationSteps towards a better structure(2)Design the “Uses” StructureProgram A “uses” program B if function of A depends on correct implementation of B.Structure has hierarchy.ConsequencesA is simpler because it uses B.B doesn’t use A, so it doesn’t increase its complexity.There exists a useful subset containing B and not A.There isn’t a practical subset containing A but not B.Example: Address Processing SubsystemAssumptions:Specific address information is to be processedInput formats are subject to change. Likewise with output formats.For each system the format for input and output may be done in one of three ways.Representations of address may be different for each system.Only a subset of the addresses are needed in main memory at any given time.An Address Processing SubsystemDesign DecisionsInput and Output will be table drivenRepresentations of addresses in core will be the “secret” of an address storage module(ASM)When the number of addresses to be stored exceeds the capacity of ASM, programs will use an address file module (AFM)Implementation of AFM will use ASM as a submodule along with a block file module (BFM)An Address Processing SubsystemComponent ProgramsAddress Input ModuleAddress Output ModuleAddress Storage ModuleBlock File ModuleAddress File ModuleAn Address Processing SubsystemUses RelationImpactModern Programming LanguagesClass DiagramsMore Flexibility!Open QuestionsWhat is a universal message that we can take away from this problem? Could planning for change not be cost-effective?/Is there ever a situation that you would not want to plan for change?Should this technique be modified for today’s problems and applications? If so,


View Full Document

MSU CSE 870 - ExtensionContractionParnas-hopkins

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 ExtensionContractionParnas-hopkins
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 ExtensionContractionParnas-hopkins 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 ExtensionContractionParnas-hopkins 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?