DOC PREVIEW
USC CSCI 578 - Design

This preview shows page 1-2-14-15-29-30 out of 30 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 30 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 30 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 30 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 30 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 30 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 30 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 30 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Designing ArchitecturesHow Do You Design?ObjectivesEngineering Design ProcessPotential ProblemsAlternative Design StrategiesIdentifying a Viable StrategyThe Tools of “Software Engineering 101”A Few Definitions… from the OED OnlineAbstraction and the Simple MachinesSimple MachinesChoosing the Level and Terms of DiscourseSeparation of ConcernsThe Grand Tool: Refined ExperiencePatterns, Styles, and DSSAsDomain-Specific Software ArchitecturesArchitectural PatternsState-Logic-Display: Three-Tiered PatternModel-View-Controller (MVC)Model-View-ControllerSense-Compute-ControlThe Lunar Lander: A Long-Running ExampleSense-Compute-Control LLArchitectural StylesDefinitions of Architectural StyleBasic Properties of StylesBenefits of Using StylesStyle Analysis DimensionsSome Common StylesMain Program and Subroutines LLCopyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.Designing ArchitecturesSoftware ArchitectureLecture 4Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture2Where do architectures come from?Method1) Efficient in familiar terrain2) Not always successful 3) Predictable outcome (+ & - )4) Quality of methods variesCreativity1) Fun!2) Fraught with peril3) May be unnecessary4) May yield the best resultHow Do You Design?Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture3ObjectivesCreativityEnhance your skill-setProvide new toolsMethodFocus on highly effective techniquesDevelop judgment: when to develop novel solutions, and when to follow established methodFoundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture4Engineering Design ProcessFeasibility stage: identifying a set of feasible concepts for the design as a wholePreliminary design stage: selection and development of the best concept.Detailed design stage: development of engineering descriptions of the concept.Planning stage: evaluating and altering the concept to suit the requirements of production, distribution, consumption and product retirement.Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture5Potential ProblemsIf the designer is unable to produce a set of feasible concepts, progress stops.As problems and products increase in size and complexity, the probability that any one individual can successfully perform the first steps decreases. The standard approach does not directly address the situation where system design is at stake, i.e. when relationship between a set of products is at issue.  As complexity increases or the experience of the designer is not sufficient, alternative approaches to the design process must be adopted.Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture6Alternative Design StrategiesStandardLinear model described above CyclicProcess can revert to an earlier stage ParallelIndependent alternatives are explored in parallel Adaptive (“lay tracks as you go”)The next design strategy of the design activity is decided at the end of a given stageIncremental Each stage of development is treated as a task of incrementally improving the existing designFoundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture7Identifying a Viable Strategy Use fundamental design tools: abstraction and modularity. But how? Inspiration, where inspiration is needed. Predictable techniques elsewhere. But where is creativity required?Applying own experience or experience of others.Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture8The Tools of “Software Engineering 101”AbstractionAbstraction(1): look at details, and abstract “up” to conceptsAbstraction(2): choose concepts, then add detailed substructure, and move “down”Example: design of a stack classSeparation of concernsFoundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture9A Few Definitions… from the OED OnlineAbstraction: “The act or process of separating in thought, of considering a thing independently of its associations; or a substance independently of its attributes; or an attribute or quality independently of the substance to which it belongs.” Reification: “The mental conversion of … [an] abstract concept into a thing.” Deduction: “The process of drawing a conclusion from a principle already known or assumed; spec. in Logic, inference by reasoning from generals to particulars; opposed to INDUCTION.” Induction: “The process of inferring a general law or principle from the observation of particular instances (opposed to DEDUCTION, q.v.).”Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture10Abstraction and the Simple MachinesWhat concepts should be chosen at the outset of a design task? One technique: Search for a “simple machine” that serves as an abstraction of a potential system that will perform the required task For instance, what kind of simple machine makes a software system embedded in a fax machine? At core, it is basically just a little state machine.Simple machines provide a plausible first conception of how an application might be built.Every application domain has its common simple machines.Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture11Simple MachinesDomain Simple MachinesGraphics Pixel arraysTransformation matricesWidgetsAbstract depiction graphsWord processing Structured documentsLayoutsProcess control Finite state machinesIncome Tax Software Hypertext SpreadsheetsForm templatesWeb pages HypertextComposite documentsScientific computing MatricesMathematical functionsBanking SpreadsheetsDatabasesTransactionsFoundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture12Choosing the Level and Terms of DiscourseAny attempt to use abstraction as a tool must choose a level of discourse, and once that is chosen, must choose the terms of discourse. Alternative 1: initial level of discourse is one of the application as a whole (step-wise refinement).Alternative 2: work, initially, at a level lower than that of the whole application. Once several such sub-problems are solved they can be composed together to form an overall solution Alternative 3: work, initially, at a level above that of the desired application.E.g. handling simple application input with a general parser.Foundations,


View Full Document

USC CSCI 578 - Design

Download Design
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 Design 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 Design 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?