210 likes | 368 Views
Systems Analysis II Essentials of design. INFO 355 Glenn Booker. Overview. Design bridges between requirements analysis and implementation of the system, hence it’s stunningly important Design generates a blueprint for the construction of the system
E N D
Systems Analysis IIEssentials of design INFO 355 Glenn Booker Week #6
Overview • Design bridges between requirements analysis and implementation of the system, hence it’s stunningly important • 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
Types of devices • What kinds of devices might you expect for: • A standalone application? • A web app? • A client/server app? • A cloud app? • A many-tiered client/server app? • A client in an industrial setting? Week #6
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 • Basic design principle: take a large problem and break it into smaller pieces Week #6
Network diagram Week #6
Levels of design • As we’ve hinted already, design can be broken into levels • High level design = architectural design = general design = conceptual designAsks ‘what are the major pieces and structure of the system?’ • Low level design = detailed designAsks ‘what is the design of each piece of the system?’ Week #6
Design models • 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
Life cycle core processes • Throughout iterative development, each iteration includes some amount of several activities • 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
Design system components • Within the step to design system components, it includes • Design the environment • Design app architecture and software • Design user interfaces • Design system interfaces • Design the database • Design system controls and security Week #6
Design the environment • The system’s environment includes the hardware and supporting software needed for it to run • Computing devices, OS, middleware, I/O and networking, etc. • What equipment is needed? • How do they communicate? Week #6
Design app architecture and software • 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
Design user interfaces • What devices will users use to access the system? • Do we have a 4” screen or 30”? • Graphical, touch or text interface? • How will the system support the user meeting their needs? • How can the app be efficient and attractive? • Make storyboards, prototypes, etc. Week #6
Design system interfaces • How does the system communicate with other systems? • Legacy systems, Google Maps, online data sources, vendors, suppliers, etc. • In what form is data exchanged? • Text, binary, zipped, markup languages • Real time or asynchronous exchange? Week #6
Design the database • Define the data model • Assess performance needs • Assess security needs • Assess privacy concerns • Redundancy? • Integration with existing databases? Week #6
Design system controls and security • Consider security needs • Physical and electronic security • Internal and external threats • Deliberate and accidental threats • Legal and regulatory constraints • Logging transactions, backup Week #6
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 • Internal deployment only • External deployment only • Internal and external deployment (remote or distributed environments) Week #6
Internal deployment only • Stand-alone apps • Rare, no Internet or other connections • Internal network-based systems • 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
Internal deployment only • Three-layer client/server • Uses view, controller (business logic or domain), and data layers Week #6
External deployment only • All Internet-based approaches • Configuration • 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
External deployment only • Hosting for Internet • 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
Internal and external deployment • Mixing internal and external deployments gets messy • 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