Large Scale Systems Design G52LSS Lecture 18 – The Design Phase •Elements of Design •User Interface Design •Data Storage Design •Architecture Design •Program Design Learning outcomes: describe the most important aspects of the design phase in the SDLC; understand interface structure design as a tool for user interface design; understand structure chart as a tool for program design. University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 1 Elements of Design Design Selection Architecture Design Interface Design Data Storage Design Program Design System Specification University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 2 Three main design strategies: • Develop a custom application in-house – builds technical skills and functional knowledge within the organisation • Develop the application by customising of-the-shelf software products – customisation by workaround or systems integration • Outsource the development of the application – risk to compromise confidential information, no skills learn from development Consideration aspects when selecting a design strategy: • Business need – unique, common, critical for business? • In-house experience – does functional/technical experience exist? • Project skills – strategic/non-strategic/desirable? • Project management – skilled/non-skilled? • Time frame – flexible/short/tight? University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 3 Physical Models Logical process (DFDs) and data (ERDs) models are converted to physical process and data models, which show implementation details including: • Actual, specific technology – available for the system? • Format of information – files/databases/emails/reports? • Human interaction with system – details Transition from logical to physical DFD • Add implementation references • Draw a human-machine boundary • Add system-related data stores, data flows and processes Update data elements in the data flows • Update the metadata in the CASE repository • University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 4 Example 18.1 Physical Level 0 DFD for Health Club Membership System update request verbal form 1 Maintain member details Members Details paper form SQL code member record member updates delete member request manual (keep paper record) database D1 Members member to delete member record Member renewal offer renew details request 3 Maintain electronic form Club Usage (entry card) Records club visit info JAVA code 2 Maintain Memberships Details SQL code renew details request usage details Club Manager new membership details current membership details renewal details club visit University of Nottingham School of Computer Science current membership new member request file D2 Memberships club usage report printed and email form database D3 Club usage Large Scale Systems Design Dr Dario Landa-Silva 5 User Interface Design Interaction of the system with external entities: user interfaces • system interfaces • Aims of good user interface design: pleasing to the eye • simple to use • minimise user’s effort to accomplish tasks • Principles of user interface design: Layout – consistency throughout the system • Content awareness – for status of system • Aesthetics – functional vs. pleasing the user • User experience – easy to use vs. easy to learn • Consistency – in functionality throughout the system • Minimal user effort – simple to use • University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 6 Interface Structure Design – shows the components of the interface and their interaction. 0 Main menu 1 Manage members 2 Manage memberships 3 Generate reports 1.1 Add member 2.1 Add membership 3.1 Memberships 1.2 Edit member 2.2 Renew membership 3.2 Members 1.3 Show member 2.3 Show membership 3.3 Usage University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 7 User Interface Design Principles Navigation – the goal is to make the system as simple as possible to use. • Prevent mistakes – e.g. don’t display commands that cannot be used • Simplify recovery from mistakes – e.g. the typical ‘undo’ option • Use consistent grammar order – e.g. object then action or vice-versa The system should provide (clear, concise and complete) navigation messages to the user in order to respond to users’ action and inform of the status of the interaction: error messages, confirmation messages, acknowledge messages, delay message, help message. University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 8 Input – the goal is to simply and easily capture accurate information. • Adequate online and batch processing – is real time information needed? • Capture data at the source – avoid intermediary collection • Minimise keystrokes – minimise cost in time and money • Validate input – very important to ensure accuracy Output – the goal is to present information to users so they can accurately understand it with the least effort. • Understand report usage – design accordingly to users needs • Manage information load – not all information, not a data dump • Minimise bias – ways of sorting records, highlighting fields, etc. University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 9 Data Storage Design Step 1 Select format of data storage: files, databases or a combination of these two. Criteria for selection: • Data types • Type of application system • Existing • Future software formats needs Step 2 Optimise performance of data storage. • Optimise storage efficiency • Optimise access speed • Estimate adequate storage size University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 10 Types of files: • master files – store core information to the business • look-up files – store static values used commonly for validation • transaction files – information to update the master file • audit files – records the ‘before’ and ‘after’ images of data • history files – stores past transactions Types of databases: • legacy – based on older technology • relational – based on collection of tables each with a primary key • object-oriented – based on the object oriented paradigm • multi-dimensional – used for data warehousing for decision making support systems University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 11 Architecture Design Software (basic functions) • Data storage • Data access logic • Application logic • Presentation logic Hardware (basic components) • Client computers • Servers • Network The goal of architecture design is to decide on the assignment of software components to hardware. University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 12 Non-functional requirements play an important role in the architecture design: • Operational requirements • Operating systems, other information systems. • Performance requirements • Response time, processing/storage capacity, reliability • Security Requirements • Accessibility to data, encryption, authentication, viruses • Cultural/political requirements • Specific to location, multilingual, norms, legal requirements, disability University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 13 Program Design Coding without prior planning and design often leads to inefficient programs, non-reusable code and systems that are not functional. Traditional top-down modular approach: • Structure chart – high-level diagram showing organisation and interactions of the various pieces of code. For each component, the structure chart shows sequence (order for calling the modules), selection (conditions for calling a module) and iteration (how often a component is repeated). • Program specifications – communicate the basic logic and structure of the pieces of code to help reduce logical and syntactical errors during the implementation phase. University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 14 Guidelines for good program design: • Build modules with high cohesion – cohesion refers to how well the lines of code relate to each other; module performing only one task for high cohesion • Build modules that are loosely coupled – coupling refers to how closely modules are interrelated; design interrelation between modules for independency to avoid changes affecting multiple modules • Create high fan-in – refers to the number of modules that call or use the given module; high fan-in indicates module is reused in many places indicating is well written generic code • Avoid high fan-out – refers to the number of subordinate modules that are associated to a single control module; the less subordinate modules (around 8), the more effective control • Assess the structure chart for quality – there are defined guidelines and standards based on the above recommendations University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 15 Example 18.2 Example of a structure chart with low fan-in and high fan-out (which is undesirable). 1.0 Reserve Room Guest Record Re co rd es t Gu ID Re co er R ecor d rd rd co Re Gu es t tom d University of Nottingham School of Computer Science es e rv a t io n Cus ce en 1.2 Read Guest Record 1.3 Edit New Guest Information dR r efe ll co r Re l Fu dat e Upd ated Pr 1.1 Locate Available Room te Ho ion vat ser Re te Da Up 1.4 Edit Old Guest Information 1.5a Assign Room 1.5b Assign Preference Information Large Scale Systems Design Dr Dario Landa-Silva 1.6 Write Updated Customer Record 1.8 Print Reservation Confirmation 1.7 Write New Reservation 16 Additional Reading Chapter 8 to 12 of (Dennis et al., 2006) Chapter 16 of (Kendall and Kendall, 2005) University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 17