Object Oriented Analysis & Design With Visio Dibawakan oleh Indra Sosrodjojo 1 Indra@andalsoftware.com Analisis Application Domain Requirements for use Problem Domain Analysis Model Application Domain Analysis Component Design Specifications of components Specifications of architecture Architectural Design 2 Application Domain User Computerised System User Application Domain 3 (Mathiassen et al, 2000) Relative Stability of System Components Stable properties Model Problem Domain Analysis Transient properties Function Interface Application Domain Analysis The relative stability is why we analyse the problem domain before the application domain. 4 Aktivitas utama dalam Analisis Application Domain System Definition and model Interfaces Usage Iterate Functions Requirements (adapted from Mathiassen et al, 2000) 5 Analisis Application Domain Activity Usage Content How does system interact Use Case with people and other Actor systems? Functions What are the system’s information processing properties? Interfaces What are the target system’s interface requirements? 6 Concepts Function Function type User interface System interfaces Usage context Prinsip dari Analisis Application Domain Tentukan application domain dengan use cases. Kolaborasi dengan users. 7 Usage Analysis 8 Aktivitas utama didalam Analisis Application Domain System Definition and model Interfaces Usage Functions Requirements (Mathiassen et al, 2000) 9 Sub-activitas didalam Usage Analysis System definition Use cases and actors Evaluate systematically Find actors and use cases Explore patterns (Mathiassen et al, 2000) 10 Actors dan Use Cases Actor: abstraksi dari user atau sistem lain yang berinteraksi dengan target sistem Actors adalah orang yang mengerjakan pekerjaan Use case: pola interaksi antara sistem dan aktor didalam application domain Ikuti proses bagaimana pekerjaan akan dilakukan 11 Contoh Actor Table Use Cases Actors Account owner Creditor Payment X X Cash Withdrawal X Money transfer X Account information X Credit Information X Administrator X X X X Registration X Monitoring X Fault processing X 12 Liquidity Monitor X Actors vs Classes Use Cases vs Events Apakah actor sama dengan class ? Apakah use case sama dengan event ? Tidak! Class dan event ada didalam problem domain - sedangkan Actors dan use case ada didalam application domain. Apakah actors juga class didalam the model? Apakah events juga use case ? 13 Dasar Usage Analysis Tentukan application domain dengan use cases. Evaluasi use case bekerja sama dengan users. Perhatikan perubahan organisasi yang dapat mengubah application domain 14 Menentukan Actors dan Use Cases Berdasarkan pekerjaan dan pembagian pekerja Identifikasikan actors Perhatikan seseorang yang berperan dengan peran yang sama Terapkan pada sistem seperti pada orang atau user Menerangkan actor Masukan tujuan actor, karakteristik dan contoh Jelaskan use cases Gunakan statecharts dan atau dengan kalimat Buatlan sederhana dan tanpa detil yang tidak diperlukan 15 Analisis Pekerjaan Perlu mengerti hubungan dari sistem pada application domain Pekerjaan apa yang ada didalam application domain? Bagiaman pembagian pekerjanya? Bagaimana pekerjaan yang berbeda dapat dihilangkan ? Jangan terlalu menekankan cara kerja sekarang Hasil utama adalah daftar yang lengkap dari pekerjaan di application domain 16 Contoh Penjelasan tentang Actor Account Owner Goal: A person who owns an account. The account owner’s basic need is to make payments with their plastic card. Characteristic: The system’s users include many and very different account owners. Examples: Account owner A is insecure in the use of a plastic card as a form of payment. A only withdraws money from the ATM in emergency situations. Account owner B is technologically curious and uses the system often, optimally, and to the limit of its abilities. 17 Contoh Statechart for ‘Cash Withdrawal’ Use Case Insert card Card inserted Prompt for code Awaiting code Enter code Rejected Code entered Code accepted Cancel Awaiting amount Payment Amount approved Approve amount Choose amount Amount not approved Amount chosen (Mathiassen et al, 2000) 18 Example Text Description for ‘Cash Withdrawal’ Use Case: cash withdrawal is started by the account owner, when they wish to use their credit card to withdraw cash from an ATM. The account owner inserts their card into the ATM, and are then requested via the screen to type their PIN code. The screen will either show a polite denial, the card will be ejected from the ATM and the process will be canceled; or the screen will show a menu requesting the account owner to choose an amount of money by typing on the ATM’s keyboard. A new screen picture requests the account owner to approve the transaction. If the transaction is not approved the account owner is again requested to type an amount. Otherwise the use case ends by the ejection of the card, and the desired amount of money being paid. Objects: (to be added later) Functions: (to be added later) 19 Use Case dan Struktur Actor Perlu menghubungkan use case dan actor satu sama lain Dapat dilakukan dengan ‘Actor table’, tetpai hanya untuk associations Dapat juga dilakukan dengan ‘Use Case Diagrams’ Mempunyai actors dan use cases Gunakan structure untuk menghubungkan antara actor seperti pada ‘Class Diagram’ 20 Contoh Actor Table Use Cases Actors Account owner Creditor Payment X X Cash Withdrawal X Money transfer X Account information X Credit Information X Administrator X X X X Registration X Monitoring X Fault processing X 21 Liquidity Monitor X Groups of Use Cases Customer involved in all deposit use cases Deposit Get customer information Bank employee involved in 2 of 3 deposit use cases Deposit Loan Bank Employee Cash withdrawal Customer Customer involved in only payment loan use case 22 Establishment Maintain Payments Bank employee involved in all loan use cases Explore Use Case Patterns The procedural pattern General pattern for insuring that steps in a process or a sequence of rules are followed The material pattern General pattern when there are few rules to follow, i.e. actions can be taken in any order May possibly have some small action sequences specified as side patterns 23 Pola Procedural action 1 State 1 action 2 State n action n+1 24 Can’t do action 2 unless action 1 is already done The Material Pattern start action Material pattern is for ‘artisan like’ materials that can be manipulated in any desired order. E.g. diagrams, text, drawings being constructed. action 1 action 2 General State final action 25 Actions 1 & 2 can be done in any order Process n Process n+1 Processes must be completed before returning to general state Evaluate Systematically Carefully study descriptions for mistakes and inconsistencies. Test use cases to see if true in practice, e.g. using prototypes to experiment. Evaluate the social changes in the application domain. 26 Evaluation Criteria Use cases should be simple, constitute a coherent whole. The description of actors and use cases should provide understanding and overview. Use cases should be described in enough detail to enable identification of functions and interface elements (our next topic in application domain analysis!). 27 Experimenting with Prototypes Notation of use cases doesn’t allow successful verification by the users Construct experiments so that Use future users for testing Make environment as realistic as possible Be sure to follow five phases covered earlier: planning, development, preparation, test, and summarising 28 Principles of Usage Analysis Determine the application domain with use cases. Need cooperation between users and developers. Both an analytical and a creative activity. Evaluate use cases in collaboration with users. Best way is with prototypes. Can be paper and pencil exercises. Assess social changes in the application domain. Rethink the business processes. Avoid work-related problems and unnecessary human adjustments. 29 Tutorial: Usage Analysis Individually, brainstorm a list of use cases and actors for the Paul’s Pools example. As a class, compare and discuss your lists and agree on a refined list. Identify which use cases are performed by which actors. With the rest of the class, choose one use case and specify it. 30 Function Analysis 31 Aktivitas utama didalam Application Domain Analysis System Definition and model Interfaces Usage Next, we’ll look at this activity Functions Requirements (Mathiassen et al, 2000) 32 Functions “A facility for making a model useful for actors.” Express the intent of the system Express what is going to happen, but not how Need to find the right level of detail, Too general is too uncertain Too detailed is inefficient Inexperienced developers need more detail 33 Sub-activities didalam analisa Function System Definition Evaluate critically Find functions Use Cases 34 Specify complex functions Function list Contoh Function List Planning 35 Make schedule Very complex Update Query possible reservations Make reservation Complex Read Medium Update Cancellation Simple Update Tipe dari Functions Ada 4 tipe function utama AD I F M I AD * Tipe Function : Kalsifikasi dari suatu function berdasarkan interaksi antara component dan context dari sistem * PD * Update I AD F M PD Signal I AD F M * * PD Read PD Compute Effect of processing * Initiative 36 F M Mencari Functions Mencari functions dengan memeriksa classes, events, and use cases Analisis secara sistematis dengan menggunakan empat tipe function Hasil dari sub aktivitas adalah daftar kebutuhan function dari system Termasuk didalamnya name, type, dan assessment dari kompleksitas dari setiap function : simple, medium, complex, or very complex 37 Update Functions I AD F M * PD * Update Activated as a consequence of an event in the problem domain Results in a change in the state of the model 38 How is the event observed and registered? In which use cases? How can the use cases be supported by updating functions? Which objects, attributes, and structures are affected by the event? What requirements for update functions? Read Functions I AD F M * PD Read Activated by a need for information by an actor As a result, computerised system displays parts of the model to the actor 39 What do the actors need to know about the state of the model (represents the problem domain)? About which objects and structures in the model do the actors need information? What ‘readings’ do these give rise to? Compute Functions I AD F M * PD Compute Activated by a need for information by an actor The computerised system computes and displays results to the actor 40 Which computations, not necessarily based on the model, do the actors need to have carried out? Does the computational basis come from the actors, the model, or both? Which computations form complete wholes in the use cases? Signal Functions AD I F M * PD Signal Activated by a change of state in the model Results in either displaying the signal to the actors or automatically intervening in the problem domain 41 What are the critical states for the model? What is their significance? What are the consequences when they occur? How should the function identify that a critical state has been reached? How should the signal be reported to the AD or PD? How reliable and strong? Example Function List Planning 42 Make schedule Very complex Update Query possible reservations Make reservation Complex Read Medium Update Cancellation Simple Update Menentukan Complex Functions Yang termasuk complex function melibatkan beberapa tipe function Beberapa format : mathematical expression algorithm in structured language functional partitioning in the function list 43 Contoh Algorithmic Specification Query possible reservations: given time or date or employee-name search objects in time period-available and select those who belong to employee-name, if known have date, if known cover point in time, if known result objects of time period-available that fulfill the criteria 44 Contoh Functional Partitioning Planning Make schedule Create six-week period Create standard distribution for employee Use standard distribution for an employee Adjust the distribution of employees in a week 45 Very complex Simple Medium Simple Medium Update Evaluate Systematically Work with the function list itself Functions must be mutually consistent Each function must be at an appropriate level of abstraction Ensure total functionality is consistent with the list prototype the usage - experiment review questions above for each type of function compare with system definition and models Ensure functions are not to general/vague or too detailed 46 Prinsip dari analisis Function Identify all functions. A complete list is very important Specify only complex functions. Check consistency with use cases and the model. Checking this can reveal insufficient analysis 47 Interface Analysis 48 Aktivitas utama dalam Analisis Application Domain System Definition and model Interfaces Usage Functions Requirements (Mathiassen et al, 2000) 49 Terminologi Interface: Fasilitas yang membuat model sistem dan function dapat berinteraksi dengan actors. User interface: Interface untuk users. System interface: interface ke sistem lain. Usage context: The application domain characterized by actors and use cases. 50 User Interface Are very important: they can make or break system use and benefit realisation. Needs to carefully fit the usage context. Need to be designed carefully - small details multiply difficulties with usage. Need to account for the different kinds of users with different skills and capabilities. Very difficult to design without feedback -generally must be tested with users. 51 Systems Interface(s) May need interfaces for non-human actors, i.e. other systems Not commonly used for administrative systems More common for monitoring & control systems direct sensors in the environment - e.g. temperature direct intervention, e.g. motors, switches may also input or output from other computer systems Need to design and make sure that these technical connections can be realised 52 Sub-activities in Interface Analysis Function list Class diagram Explore patterns Determine interface elements Use cases Evaluate interface elements Describe interface elements Description of interfaces (Mathiassen et al, 2000) 53 Tailor Usability to Context Usage is relative to usage context Usage context 54 Desired properties Technology Routine tasks Efficient Fixed, well Reliable structured tasks Activation of functions Fixed defined dialogue Menu and command driven manipulation Non-routine Flexible to use tasks Easy to learn Varying problem new functions solving tasks Manipulation of objects Loosely defined dialogue Direct manipulation Study the Usage Context Study both human actors and use cases Does the individual user solve several tasks in parallel? Does the user move physically while working? Is the work often interrupted? Are certain use cases significantly different from the typical use cases? Do certain work tasks require a quick response from the computerized system? How is it ensured that the users notice when the computerized system performs a signal function? 55 Explore User-Interface Patterns A user interface usually mixes several patterns or styles Four main patterns/styles menu form filling command language direct manipulation (also natural language) 56 Menu Selection Advantages Shortens learning Risk of too many menus Reduces key-strokes Slows the frequent user Structures decision making down Consumes screen space Requires rapid display rate Allows easy support of error handling High level tools allow for easy programming 57 Disadvantages Form Filling Advantages Simplified data entry Requires modest training Makes assistance convenient High level tools allow for easy programming 58 Disadvantages Consumes screen space Command Language Advantages Flexible Appeals to “power” users Poor error handling Supports user initiative Requires extensive training Convenient for creating user-defined macros 59 Disadvantages Direct Manipulation Advantages 60 Disadvantages Immediately visible result Effort required to develop of interaction Useful for both casual and frequent users Can be extremely efficient Difficult to invent meaningful icons, symbols, etc., unless can rely on standard objects Dialog Style: Function-Oriented vs Object-Oriented Is the interface primarily based on functions or objects? Need both, but which choose first? I.e., does the user choose the function first, then choose the object or vice versa? Function-oriented dialogues are better for routine, automated work Object-oriented ones are better for varied individual work tasks as they give more flexibility But, usually require more development time and effort 61 Some Guidelines A dialogue needs to be simple, natural, and consistent. Requirements placed on the users’ memory need to be minimal. Feedback must be informative and constructive. Errors must be prevented. Detailed discussion is beyond the scope of this unit. 62 Determine User-Interface Elements Representations of objects in the model Many possibilities: icons, fields, tables, diagrams, windows Need a clear & consistent system of representations Activation of functions Buttons, menu screens, pull-down/pop-up menus Also need support for visualisation and feedback Needs to be consistent and fit within the dialog pattern/style Result is a list of user-interface elements 63 Describe Interface Elements User Interface: General effect: colours, fonts, types of menus, types of icons, default positions Navigation: dialog linkages between buttons, menus, screens, windows, etc. Computer screens/windows/forms, etc.: layout, interactivity, consistency Outcome of activity is screen/form designs, navigation diagram and other descriptions 64 Example Navigation Diagram (Partial) Start Miniature of screen or window 65 Exit Commands, menu selections, or buttons to change screens or windows Evaluate the User Interface A User Interface cannot be constructed bottom up without experiments using prototypes. Should be a carefully controlled process using the five subactivities. Planning needs to lead to concrete evaluation and quick development with efficient tools. Preparation needs to determine how collaborate with users, ensure realism, and select good example tasks that enhance feedback. 66 Explore Systems Interface Patterns Consider what/how data should be sent to and received from other systems (if any) Other systems may be simple external devices: sensor, switch, or motor use simple read or activate device patterns complex computer systems: need a communication protocol which may be supplied or need to be designed 67 Read External Device Pattern Read either regularly or dependent on an event Device connection to external device state read Memory 1 1 time value measurement latest-value Memory object can just be the model object 68 Interaction Protocol A protocol defines command facilities supporting the possible use cases for a system by another Is agreed upon by designers of the two systems (unless one has already been designed/built!) Specify a pattern for interaction using a list of commands for each side and their expected responses Separate protocol item named for each command E.g. Request some info or Prepare to accept info Commands may check the state of the other system 69 Determine and Describe the Systems Interface Elements What other computer systems will the system be connected to and exchange information with? What protocol(s) will be needed? Will the system be connected directly to the problem domain through external devices? What external device read or write interfaces are needed? Result is a list and specification of each. 70 Evaluate System Interfaces Protocols can be tested on pencil and paper by working through use cases Ultimate test is that the physical connections actually work If there is any doubt, these connections need to be tested as early as possible Build and test technical feasibility prototypes 71 Principles of Interface Analysis Tailor usability to the application domain need to know who the users are and in what situations the computerised system will be used Experiment and iterate interfaces are complex and interact with users in ways that can’t be anticipated experiments need to be planned, efficient, and realistic - and likely will be repeated 72 Principles of Interface Analysis (2) Identify all interface elements Important not to leave anything out! Details can be supplied/determined later, as long as the basic structure is clear and coherent 73 Learning Objectives Understand the basics of how to determine a strategy for using OOA&D Understand what & how documentation should be produced during OOA&D Understand what makes good analysis documents and good design documents 74 Concrete Project Strategy Formulation Development methods provide advice and ideas for work practices on an actual (or concrete) system development project Good, efficient development work requires that effort is concentrated on the most difficult task To do so, you must determine a strategy that identifies and deals with the most difficult task, and reconsiders the strategy as the project progresses 75 Terminology Requirement: A system’s externally observable behavior Conditions: The technical, organisational, and human opportunities and limits involved in solving a task Strategy: A general approach for performing a task 76 Principles Tailor the strategy Identify the difficult requirements and conditions Maintain degrees of freedom 77 Sub-activities in Strategy Construction Existing documentation Analysis and design strategy Formulate strategy Characterise the task Evaluate difficulties 78 Guiding Object-oriented analysis and design Characterise the Task Problem domain: Are you familiar with the type target system? Application domain: Are you familiar with the user organisation? Technical platform: Which technology will the system be implemented on? Project organisation: How qualified are the developers? How good are the development conditions? Special aspects:Which special conditions apply to this task? Use the checklist in the text as inspiration for factors to consider. 79 Evaluate Difficulties How great are the difficulties related to analysis of the problem domain? How great are the difficulties related to analysis of the application domain? How great are the difficulties related to the design of the system’s architecture? Use the checklist in the textbook as inspiration for ratings areas. 80 Design the Strategy Put highest emphasis on areas with great difficulty. Initiate activities in areas with great difficulties early in the process. Make critical decisions first and less critical decisions later in the process. Design the strategy to ensure coordination of decisions. Include requirements management in the strategy. Possibly affect the conditions for the development in order to enable a satisfactory strategy. Result is a project plan including all of the above. 81 Principles of Strategy Construction Tailor the strategy Relate the requirements to the technical and organisational realities. Identify the difficult requirements and conditions Arising from disparities in the above. Maintain degrees of freedom Other problems are inevitable, so preserve breathing space. 82 Dokumentasi 83 Terminologi Analysis document: Presentasi yang logis dari hasil analisis Dapat dijadikan sebagai dasar perjanjian Dapat dijadikan acuan pada saat implementasi Design document: Presentasi yang logis dari hasil design Dapat dijadikan acuan pada saat implementasi 84 Pentingnya Analysis Document A work tool in which sub-results can be collected and structured as they are produced. A control tool that can be used to decide if the analysis work progresses sensibly and actually leads to determination of the requirements to the computerized system. A basis for the customers’ and the users’ decision about whether they want the outlined computerized system at the expected cost. A baseline for the ensuing work with design and realization. 85 Pentingnya Design Document A work tool in which design decisions can be collected and structured as they are made. A control tool to measure the progress of the design work. Does the document still contain essential uncertainties in relation to the conditions for the system’s realization? An agreement tool that retains the agreement about the computerized system’s design. It should retain agreements between the designers during the design work, which should communicate all essential decisions to the developers who will realize the system. 86 Dokumentasi yang Baik Harus ditulis dengan bahasa umum, dan tatabahasa yang baik serta jelas Dapat dibuat dengan menambahkan gambar, daftar dll Gambar dan daftar tidak berdiri sendiri tetapi tidak perlu dijelaskan terlalu detil. Dokumentasi harus singkat tetapi jelas Jangan menulis program untuk programmer atau desain untuk desainer 87 Prinsip Domukentasi Use technical prose supplemented by formalisms. Should be concise and of high quality Should only describe the essential Retain results and decisions continuously. Create documentation along the way to ensure quality and make progress visible Chart progress through documented results. Documentation provides a basis for measurement 88 Phases of OOA&D System Choice (Pre-analysis) System Definition Requirements for use Problem domain analysis Model Application domain analysis Component design Specifications for components Specifications for architecture (adapted from Mathiassen et al, 2000) 89 Architectural design Now concerned with this area of activity and its product Dua bagian dari Architecture Component architecture: struktur sistem yang terdiri dari componen yang saling berhubungan Process architecture: Struktur eksekusi dari sistem terdiri dari interdependent processes 90 Component and Process Architectures Component Architecture: Process Architecture Classes Objects Stable aspects Dynamic aspects Related components Coordination of processes Logical level Physical level Structure for descriptions Structure for execution (Mathiassen et al, 2000) 91 Design of Architecture Activity Content Concepts Criteria How are the conditions and criteria for design? Criterion Components How is the system structured into components? Component architecture Component Processes How are the system’s processes distributed and coordinated? 92 Process Architecture Process Prinsip Architectural Design Define and prioritise criteria. various criteria besides the functional requirements Bridge criteria and technical platform. meet criteria by making use of technical facilities Evaluate designs early. eliminate ambiguity early to enhance productivity 93 Some Good Design Qualities The system models the parts of the problem domain that were agreed upon. The system’s functions correspond to the requirements from the application domain. The interface implements the described interaction. The technical platform is used effectively. The system can be adapted to new requirements and needs. 94 Design Criteria We don’t judge just by how well a system meets criteria; not meeting one criterion can be critical A good design has no major weaknesses A good design balances several criteria Criterion: A preferred property of an architecture Need to define priorities among criteria and evaluate them 95 Component Architecture 96 Terminologi Component Architecture: Struktur sistem yang terdiri dari component yang saling berhubungan Component: Kumpulan dari bagian program yang keseluruhan proses terdefinisi Seperti cluster Terdiri dari classes dan atau components lain 97 Prinsip Reduce complexity by separating concerns Aids comprehendibility, maintainability Reflect stable context structures Interface at the top, model at the bottom Reuse existing components Reduces development effort Improves design comprehensibility 98 Sub-activities in Component Architecture Design Explore architectural patterns Criteria Identify components Define subsystems Class diagram Component specification Use patterns and components (Mathiassen et al, 2000) 99 Explore Architectural Patterns Patterns are a useful guide to design Some patterns have been proven useful Layered architecture idea is from the ISO OSI network model A generic architecture from the authors based on the Model Function Interface framework Client-server architecture should consider whenever distribute a system 100 Layered Architecture «component» Layer i+1 Upward interface «component» Layer i Downward interface «component» Layer i-1 101 Generic Architecture «component» Interface «component» «component» User Interface System Interface «component» Function «component» Model «component» Technical platform 102 «component» «component» «component» UIS DBS NS Generic Architecture (2) Can further divide functions into two kinds and group into components differently Task-related functions Model-related functions Can split functions, or place some with model component For very simple system, may not need the function component at all 103 Client-Server Architecture «component» «component» «component» Client1 Client2 Clientn «component» Server (Mathiassen et al, 2000) 104 Client-Server Architecture (2) Components are a server and a number of clients Server provides a collection of operations (or services!) to the clients Clients use the server independently Potentially a good architecture whenever distribute a system geographically Need to decide form of distribution of system’s parts between client and server 105 Five Forms of Distribution Client Server Architecture U U+F+M Distributed presentation U F+M Local presentation U+F F+M Distributed functionality U+F M Centralised data U+F+M M Distributed data (Mathiassen et al, 2000) 106 Define Subsystems For large systems, often need to split the system into subsystems Allows division of work so that design and building of subsystems is independent (except for any interfaces between them) Each subsystem may be a system in its own right, with interface, function, and model components Must design the architecture of each subsystem 107 Example Subsystems and (Sub)system Interfaces «component» Subsystem A 108 «component» Subsystem B «component» «component» «component» «component» User Interface System Interface System Interface User Interface «component» «component» Function Function «component» «component» Model Model Identify Components Design the architecture for each system or subsystem by breaking into components Begin with 3-tiered architecture or a pattern Extend basic architecture by examining model, function, and interface design concerns Extend further by finding useful existing components Generally good to encapsulate the extended technical platform 109 Model Design Concerns Responsibility: Contextual issues: Exemplars: Special needs: 110 The problem domain model Incohesive or complex problem domains Accounting, reservations, inventory, administration Databases Function Design Concerns Responsibility: The functionality on the model Need for incohesive or complex Contextual issues: functionality Exemplars: Payroll, signal processing, cruise control Special needs: Model-related functions, application-related functions, cryptography 111 Interface Design Concerns Responsibility: Interaction between functions and actors Contextual issues: Incohesive or complex actors or Exemplars: usage Browsing, games, presentation Special needs: monitoring Screens, windows, buttons, print-outs, devices, communications 112 Using Components Can obtain and use components from a number of sources Another existing system Earlier version of system Standard purchased components - software library Need to encapsulate these to limit impact if later change chosen components 113 Specifying Components Complex components should be specified in detail. May attach supplemental notes to class diagrams. Good to summarise each component’s Responsibility (service it provides) Dependency (on other components) Relationship to the system context 114 Review of Principles Reduce complexity by separating concerns Aids comprehensibility, maintainability Reflect stable context structures Interface at the top, model at the bottom Reuse existing components Reduces development effort Improves design comprehensibility 115 Application Domain Analysis in Context of OOA&D Activities Requirements for use Analysis of problem domain Model Analysis of application domain Design of components Specifications for components Specifications for architecture (adapted from Mathiassen et al, 2000) 116 Design of architecture Component and Process Architectures Component Architecture: Process Architecture Classes Objects Stable aspects Dynamic aspects Related components Coordination of processes Logical level Physical level Structure for descriptions Structure for execution (Mathiassen et al, 2000) 117 Process Architecture 118 Main Activities in Architectural Design Analysis document Component architecture Criteria Process architecture Architectural specification (Mathiassen et al, 2000) 119 Introduction Now concentrate on objects and their involvement in processes Need to coordinate when have multiple processes with shared resources Processors Program components External devices Results: Deployment diagram showing processors, assigned components, and active objects Outline of solutions for coordination mechanisms 120 When & Why Not a significant activity for a simple system with a single process, e.g. a stand-alone system Critical for large systems, especially monitoring and control systems, & embedded systems May wait to begin this activity until component architecture and components are nearly complete May start this activity early with exploratory and experimental work, which heavily influences components 121 Terminology Process Architecture: A system-execution structure composed of interdependent processes Process: A collection of operations that are executed in a bounded and linked sequence Processor: A piece of equipment that can execute a program 122 Terminology (2) Program Component: A physical module of program code Active object: An object that has been assigned a process 123 Processes, Active Objects, and Shared Objects Process 1 Object 1 o1 o2 Potential conflict over shared program component Object 3 o5 o6 Object 2 o3 Process 3 Process 2 Active object because it starts a new process 124 Object 4 o4 o7 o8 Object 5 o9 Process 4 o10 Concurrency True concurrency:When two or more events in the system’s context can occur at the same time and processes must support this (e.g. multiple users) Random concurrency:When two or more operations are designed to be executed at the same time (e.g. print in background) Don’t have any choice about the former 125 Principles Aim at an architecture without bottlenecks would slow down the system and cause problems Distribute components on processors Coordinate resource sharing with active objects 126 Sub-activities in Process Architecture Design Class diagram and component specifications Identify shared resources Distribute program components Explore distribution patterns 127 Select coordination mechanisms Deployment diagram Explore coordination patterns Distribute Program Components Different components need to be placed on individual processors First, separate out any active objects from passive program components Second, determine the available processors Distribute the program components and active objects onto the processors 128 Explore Distribution Patterns Patterns for how components are placed on processors The centralised pattern: Centralised data and functionality, thin client, but low robustness The distributed pattern: Replicated data, server only broadcasts updates, robust, but potential data inconsistencies The decentralised pattern: Partitioned data, low inconsistencies, more diversity/complexity 129 Identify Shared Resources Processor: Two or more concurrent processes that should be executed on the same processor External Devices: Two or more concurrent processes use the same external device Component: Two or more concurrent processes call operations on objects in the same component 130 Example Deployment Diagram: Airline Check-in Active objects Processor External devices (Mathiassen et al, 1999) 131 Finding Bottlenecks Processors: What is the relationship between the capacity of each processor and the needs of the active objects assigned to it? External Devices: What is the accessibility, capacity, and load of the different external devices in the interface? Data Storage: Which parts of the model need to be stored on which storage media? System/Network Connections: What is the capacity and load of the system’s connections? 132 Overcoming Bottlenecks Two options: Change the design and the distribution of the components onto the available processors Enhance the platform with more processors or more powerful processors 133 Select Coordination Mechanisms Many operating systems and technical platforms provide mechanisms to control sharing Varies substantially from platform to platform So need to be sure in each case! If not, we have to solve it ourselves by developing our own coordination mechanisms Generally rely on active object that controls the sharing Can make use of generic patterns 134 Coordination Mechanisms Generalised patterns of coordination: Dedicated monitor ensuring atomic access to shared resources. Centralized task dispatching for coordination of all concurrent processes. (e.g., event loop) Subscription to state changes for initiation of processes in opportune situations. Asynchronous exchange of data to avoid unnecessary delays with read and write operations. 135 Prinsip Architecture Design Aim at an architecture without bottlenecks Slows down the system and causes problems Distribute components on processors Decision can reduce potential bottlenecks Coordinate resource sharing with active objects Use the technical platform or design your own mechanisms 136