Systems Analysis II Essentials of design INFO 355 Glenn Booker INFO 355 Week #6 1 Overview Design bridges between requirements analysis and implementation of the system, hence it’s stunningly important INFO 355 Design generates a blueprint for the construction of the system Design is heavily influenced by the devices to be used at the user or server ends of the system Week #6 2 Types of devices What kinds of devices might you expect for: INFO 355 A A A A A A standalone application? web app? client/server app? cloud app? many-tiered client/server app? client in an industrial setting? Week #6 3 Network diagram A simple network diagram can show the types of devices and servers in a system, and how they are connected (p. 157) This forms the basis for design of each of the devices, servers, and interfaces among them INFO 355 Basic design principle: take a large problem and break it into smaller pieces Week #6 4 Network diagram Ethernet Database server Web server Router Wireless AP Smartphone App server INFO 355 Week #6 5 Levels of design As we’ve hinted already, design can be broken into levels INFO 355 High level design = architectural design = general design = conceptual design Asks ‘what are the major pieces and structure of the system?’ Low level design = detailed design Asks ‘what is the design of each piece of the system?’ Week #6 6 Design models INFO 355 Design takes place by developing models of key parts of the system Most models are diagrams with written descriptions In OOAD, design models can include class, sequence, activity, package, and state Week #6 7 Life cycle core processes Throughout iterative development, each iteration includes some amount of several activities INFO 355 Identify problem and obtain approval Plan and monitor the project Discover and understand details Design system components Build, test, & integrate components Finish system tests and deploy solution Week #6 8 Design system components Within the step to design system components, it includes INFO 355 Design Design Design Design Design Design the environment app architecture and software user interfaces system interfaces the database system controls and security Week #6 9 Design the environment The system’s environment includes the hardware and supporting software needed for it to run INFO 355 Computing devices, OS, middleware, I/O and networking, etc. What equipment is needed? How do they communicate? Week #6 10 Design app architecture and software INFO 355 How is the app software structured? What subsystems are needed? How are data, logic, and presentation functions separated? Where and how will users access the system? Various diagrams might capture this information Week #6 11 Design user interfaces What devices will users use to access the system? How will the system support the user meeting their needs? INFO 355 Do we have a 4” screen or 30”? Graphical, touch or text interface? How can the app be efficient and attractive? Make storyboards, prototypes, etc. Week #6 12 Design system interfaces How does the system communicate with other systems? In what form is data exchanged? INFO 355 Legacy systems, Google Maps, online data sources, vendors, suppliers, etc. Text, binary, zipped, markup languages Real time or asynchronous exchange? Week #6 13 Design the database INFO 355 Define the data model Assess performance needs Assess security needs Assess privacy concerns Redundancy? Integration with existing databases? Week #6 14 Design system controls and security Consider security needs INFO 355 Physical and electronic security Internal and external threats Deliberate and accidental threats Legal and regulatory constraints Logging transactions, backup Week #6 15 Revisit Design the Environment Consider when we looked at the types of devices for various architectures Major design choices depend on whether the app is designed for INFO 355 Internal deployment only External deployment only Internal and external deployment (remote or distributed environments) Week #6 16 Internal deployment only Stand-alone apps Internal network-based systems INFO 355 Rare, no Internet or other connections Used only within the organization, e.g. client/server architecture over a LAN Could still be a desktop app or browser-based app Week #6 17 Internal deployment only Three-layer client/server INFO 355 Uses view, controller (business logic or domain), and data layers Week #6 18 External deployment only All Internet-based approaches Configuration INFO 355 Also a 3-layer architecture (client/browser, web or app server, data server) Gives high accessibility, low cost, and uses common standards Challenges include security (HTTPS or TLS), throughput (server farms, CDN), and changing client software Week #6 19 External deployment only Hosting for Internet INFO 355 Based on needs for reliability, security, physical facilities, staffing, growth Might share colocation facility Purchase managed services Lease virtual servers Cloud computing (buy capacity as needed, per SLA) Week #6 20 Internal and external deployment Mixing internal and external deployments gets messy INFO 355 WANs are history Might use VPN for remote users Or use home server to authorize a peer-to-peer connection Diversity of clients is a challenge Week #6 21