actor, use-case diagram, use-case text, classes Kristian Sandahl krisa@ida.liu.se Slide no4 Text Process part Start with use-cases, identify classes in the text, ... Set of heuristics Only model normal behaviour, keep diagrams simple Result is the design model has three components: Representation part (notation part) A Software Design Method: Use-case modelling Kristian Sandahl krisa@ida.liu.se Slide no1 (anticipatory design) Kristian Sandahl krisa@ida.liu.se Slide no5 anticipate further developments in the design do it (eager design) Iterative Software development methods such as Extreme Programming Kristian Sandahl krisa@ida.liu.se Slide no6 divide (divide): problems into sub problems conquer: solve sub problems (hopefully easier) compose (merge): compose the complete solution from the sub solutions Scheme Divide et impera (from Alexander the Great) defer it (lazy design) The Divide and Conquer Strategy Kristian Sandahl krisa@ida.liu.se Slide no3 In case of a difficult design decision Lazy or Eager Design Kristian Sandahl krisa@ida.liu.se Slide no2 set of notations in (informal) textual, (semi-formal) diagrammatic, or mathematic (formal) form Process part Design strategy Set of heuristics rules of thumb, adaptation rules Result is the design model (design specification, SD) has three components: Representation part (notation part) Produces the Software Design document SD Groups into conceptual design/architecture: tells the WHAT of the system technical design: Tells the HOW Groups into architectural design (coarse grain design) detailed design (module design, low level design) Is integrational documents Starts from the requirements specification (SRS) and "The Design (Process) is the creative process of transforming the problem into a solution" [Pfleeger] "Design produces a workable solution to a given problem" [Budgen] "Design is the description of a solution" [Pfleeger] A Software Design Method The Ideal Design Process The Ideal Design Process 1 Responsible 1 Kristian 2 Jens 3 Calle Priority Description 2 book ticket 1 pay ticket 1 print ticket 4. while not(sorted) ..... 3. quickSort(sheet, rows, 3, num) Kristian Sandahl krisa@ida.liu.se Slide no10 2. Sort Rows according to Column3 numerically 1. Sort Requirements according to Priority Requirement Information hiding example Slide no7 Source: Source:Uwe UweAßmann Aßmann Kristian Sandahl krisa@ida.liu.se A small number of items never use more than 5 items KISS (keep it simple stupid) remove all superfluous things, make it fit on 1 page Separation of concerns different concepts should be separated out Use hierarchies! trees, trees, trees Important Concepts Kristian Sandahl krisa@ida.liu.se Slide no9 Kristian Sandahl krisa@ida.liu.se Slide no11 Understanding, at best exposes high-level constraints of the system Reuse, of components and high-level patterns, there are frameworks to buy collection of interacting components Roles of architecture: Kristian Sandahl krisa@ida.liu.se Slide no12 Roles of architecture (cont’d): Construction, a partial blueprint including major interfaces of the system Evolution, ”the load-bearing walls” can be depicted, cost of change estimated Analysis, consistency checing and conformance analysis of the system Management, a key milestone, leads to implementation strategies Concurrent design Better module replacability Better software understanding Hide design decisions within in a module The overall organisation of the system as a Kristian Sandahl krisa@ida.liu.se Slide no8 class method method method class method method method Software architecture few many Parnas’ information hiding principle Software architecture class method method method class method method method Coupling and cohesion 2 •handling exceptions •selecting algorithm •measuring variables •selecting variables Needs caution when: Example: Air Condition Good separation of concerns. The controller maintains a set point for a variable by changing input to a process. A software realisation of an independent control system. Process control •Supports incremental testing •Supports incremental approach •Modifications can be performed locally on one layer •Implements information hiding Advantages: The design prescribes rules and protocols for communication between layers. Each layer provides service to the adjacent outside layer, and acts as a client to the adjacent inside layer. Layering Kristian Sandahl krisa@ida.liu.se Slide no16 Kristian Sandahl krisa@ida.liu.se Slide no13 •Potential performance problems •Not always obvious how to define layers Disadvantages: Kristian Sandahl krisa@ida.liu.se Slide no17 Generalisation of hierarchical composition Decomposes the problem in independent units Relations between objects are well depicted Encapsulation support top-down design and replacability Polymorphism reduced function complexity Correspondence with object-oriented ananlysis and classes in Java, C++, C#, ... Object-oriented design Processing To Need Data Seem All People Kristian Sandahl krisa@ida.liu.se Slide no14 Example: ISO OSI model Source: Source:Ericsson Ericsson •Easy to change knowledge sources •Supports incremental development Advantages: Example: Military intelligence system A development of database repository architecture. Knowledge sources post data in a common repository. The respository processes shared data and can invokate processes in knowledge sources Blackboard •Facilitates use of formal specification •Allows more complex architectures concurrency, matrices •Supports simulation •Evolution is supported •Reuse of filters supported •Good system understanding Advantages: Examle: Unix shell commands a > b > c ... Processes streams of data in independent components called filters. Pipes and filters Kristian Sandahl krisa@ida.liu.se Slide no18 •Create a suitable and general knowledge representation. Difficulty: Kristian Sandahl krisa@ida.liu.se Slide no15 •functions are duplicated •glue filters are necessary •limited to batch processing Disadvantages: 3 of class libraries 0% 81,5 8 70 165 - 25% 45 6 37 263 ~ 400.000 ~ 45% 50% 32 5 28 370 ~ 560.000 ~ 60% Kristian Sandahl krisa@ida.liu.se Slide no22 From: C. Jones, The Impact of Reusable Modules and Functions, in Programming Productivity, Mc Graw Hill, 1986 Reuse rates Time [m.m.] # Developers Costs per l.o.c. [DM] Lines per m.m. Savings [DM] Savings JDK 1.1: ca 1,650 classes JDK 1.2: ca 4,000 classes Goal: cost size reduction Motivation: Reuse Kristian Sandahl krisa@ida.liu.se Slide no19 Source:http://www.doc.ic.ac.uk/~tpg99/vs.html Example of blackboard datastructure quality improvement effectivity by concentration to optimizations reliability prolongation life time flexibilization Improvements in the software process productivity almost prototype construction simulation of architectures Documentation clear system structures Product quality Other Goals •Performance Problem: •Supports creation of domainspecific languages •Allows users to express themselves in more natural terms. Advantages: Example: Simulation of mathematical models. Transforms pseudocode into a instructions for a simulator. Interpreters Kristian Sandahl krisa@ida.liu.se Slide no23 Kristian Sandahl krisa@ida.liu.se Slide no20 CORBA Kristian Sandahl krisa@ida.liu.se Slide no24 Source: Source: http://www.cs.wustl.edu/~schmidt/ http://www.cs.wustl.edu/~schmidt/ Kristian Sandahl krisa@ida.liu.se Slide no21 Reuse of partial solutions: instead of new solution Easy configurability of the systems variants, versions, product families off the shelf, COTS) Divide-and-conquer (Alexander the Great) Well known in other disciplines mechanical engineering DIN 2221 electrical engineering architecture Outsourcing to component producers (components Motivation for Component Based Development 4 C5=0.12 shaf tS1=2e-3 S bearing1 S planetary2=110/50 demultiplex shaftS=2e-3 planetary1=110/50 bearing4 C8=0.12 C4=0.12 bearing2 C6=0.12 Kristian Sandahl krisa@ida.liu.se Slide no25 Can go really wrong! Creative and fun. Can be used for other purposes too. Increase comprehension, reduce learing period. Often used in graphical user interface (GUI) design. planetary3=120/44 Kristian Sandahl krisa@ida.liu.se Slide no28 C11=0.12 qRef qdRef - pSum A1 C1 R2 Op1 Op2 R3 R4 Op5 +1 +1 sum - w Sum tacho2 b(s) a(s) a(s) qd PT1 tacho1 Rd2=100 S 340.8 b(s) a(s) r ate3 iRef - g5 g4 - Rp1=200 Jmotor=J cut joint C=0.004*D/w m 1 r3Drive1 Ri=10 r3Motor Rd1=100 r3Control rate2 i k1 i b(s) S S k2 rate1 1 1 q: angle qRef qdRef r el S spring=c qd q tn hall2 g2 qd r gear=i S joint=0 Final system Kristian Sandahl krisa@ida.liu.se Slide no26 Op3 y x inertial Kristian Sandahl krisa@ida.liu.se Slide no29 axis1 axis2 axis3 axis4 axis5 axis6 Hierarchical Composition of a Modelica Model of an Industrial Robot C3 C2 Vs + + Srel = n*n' + (identity(3) - n*n')*cos(q) - skew(n)*sin(q); diff + pow er OpI wrela = n*qd; zrela = n*qdd; Rd4=100 emf Sb = Sa*Srel'; r0b = r0a; g3 vb = Srel*va; g1 wb = Srel*(wa + wrela); ab = Srel*aa; hall1 w zb = Srel*(za + zrela + cross(wa, wrela)); fa = Srel'*fb; ta = Srel'*tb; q 0.3 Kv 0.03 Kd qddRef R1 Integrational Software Engineering Rd3=100 Rp2=50 Modelica Visual Programming: Decomposition and Abstraction of an Automatic Gearbox C12=0.12 fr ic=Rv0 Metaphors Ra=250 La=(250/(2*D*w m)) Equations and mathematical functions allow acausal modeling, high level specification, increased correctness Combine electrical, mechanical, thermodynamic, hydraulic, biological, control, event, real-time, etc... Strongly typed object-oriented language with a general class concept, Java & Matlab like syntax Hierarchical system architecture capabilities Kristian Sandahl krisa@ida.liu.se Slide no30 different items for Linköping University Estimate the bandwidth required between Describe the scheduling system architecture Kristian Sandahl krisa@ida.liu.se Slide no27 Efficiency comparable to C; advanced equation compilation, e.g. 300 000 equations, ~150 000 lines on standard PC Home assignment Efficient, non-proprietary Visual component programming Everything is a class Multi-domain modeling Declarative language Modelica – the Next Generation Computational Modeling Language 5