Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Introduction to Information Systems Analysis Systems Design Application Architecture & Modeling INFO 503 Glenn Booker INFO 503 Lecture #5 1 System Design • System Design (a.k.a. physical design) includes the evaluation of alternative solutions, and specification of a detailed solution • Focus is the shift from logical to physical design; now technology counts! • Critical to consider off-the-shelf options INFO 503 Lecture #5 2 Design Strategies • • • • • • Modern structured design Information engineering Prototyping Object-Oriented Design (OOD) Joint Application Development (JAD) Rapid Application Development (RAD) INFO 503 Lecture #5 3 Modern Structured Design • A.k.a. top-down program design and structured programming • Is a process-oriented technique to break a program into smaller pieces (modules) by using certain rules and guidelines • Each module is a set of instructions to perform a specific function INFO 503 Lecture #5 4 Modern Structured Design • Modules should be cohesive - perform only one function; this helps reusability too • Modules should be loosely coupled - have minimal interaction or dependency on each other • Capture design in a structure chart, p. 474 (314) • Not event driven or object-oriented INFO 503 Lecture #5 5 Information Engineering • Analysis was based on defining applications to support the requirements of various business areas • IE does not have its own unique design technique; tools such as the ERD are the starting point – Address process issues later INFO 503 Lecture #5 6 Prototyping • Developing prototypes: – – – – – INFO 503 Encourages end user involvement Is well suited to iterative development Allows hands-on verification of requirements Provides quick feedback Often speeds several life cycle phases Lecture #5 7 Prototyping • But prototyping: – Encourages irresponsible code-and-fix life cycle – Can only augment paper specifications and other design techniques – Omits several design issues; storage, control, performance INFO 503 Lecture #5 8 Prototyping • And prototyping: – Can lead to premature design commitment (lock in design options) – Can reduce creativity – Can lead to feature (scope) creep – Can result in slower performance INFO 503 Lecture #5 9 Object-Oriented Design • OOD uses the results of OOA to design objects which will implement the system • Addresses data and process issues at the same time • Can, for example, focus on defining objects, and then defining the methods which communicate between them, p. 478 (546) INFO 503 Lecture #5 10 Joint Application Development • JAD can be used for participative development of a design, in conjunction with other design techniques INFO 503 Lecture #5 11 Rapid Application Development • RAD blends other design techniques (structured design, information engineering, prototyping and JAD) to speed system development • Often based on using specific tools which support the process INFO 503 Lecture #5 12 FAST Design Methodology • Design covers the following FAST phases: – Decision Analysis (Configuration) Phase, from Chapter 5 in the 6th edition – Procurement Phase (not a separate phase, it is addressed during System Design phase in the 6th edition) – Physical Design and Integration Phase, this is detailed design before construction of the system INFO 503 Lecture #5 13 Decision Analysis (Configuration) Phase • The decision analysis phase identifies candidate configurations, and picks the best • Activities are: – – – – – INFO 503 5.1 Identify Candidate Solutions 5.2 Analyze Candidate Solutions 5.3 Compare Candidate Solutions 5.4 Update the Project Plan 5.5 Recommend a System Solution Lecture #5 14 Identify Candidate Solutions • This activity identifies the candidate system design solutions, based on business needs and possible implementation technology • Ideas may come from system owners, users, and others involved in the analysis effort • Candidates may be based on the technology architecture of your organization INFO 503 Lecture #5 15 Identify Candidate Solutions • Activity consists largely of brainstorming for ideas, followed by research to assess their characteristics • Do not judge the solutions - yet • Output is a table to describe possible solutions, p. 221 (322), the Candidate Systems Matrix INFO 503 Lecture #5 16 Analyze Candidate Solutions • Now assess each candidate solution for: – – – – Technical feasibility (practical and staffable) Operational feasibility (effect on users) Economic feasibility (is it cost effective?) Schedule feasibility (can it be done on time?) • Need to define hardware, training, and software costs for each solution • Output: feasibility assessment, p. 223 (324) INFO 503 Lecture #5 17 Compare Candidate Solutions • Based on the relative importance of the feasibility criteria (i.e. their weight in %), score each of the candidate solutions – Weighting of feasibility criteria often done by the system owner – Throw out infeasible solutions (those which are impossible) • Pick the best solution! INFO 503 Lecture #5 18 Update the Project Plan Does this task seem familiar yet? • Update the project plan to reflect the chosen system configuration • Reevaluate scope and tasks as needed INFO 503 Lecture #5 19 Recommend a System Solution • Now use the updated project plan to recommend a solution to the system owner, with other key interested parties present – Might give recommendations (the system proposal) verbally or in writing – Salesmanship is often helpful to pitch the solution • Hopefully ends with approval to continue INFO 503 Lecture #5 20 Procurement Phase p. 487 (326) • The procurement phase is to assess off-theshelf options for supporting system design • This phase is a blend of two new tasks for the “Procurement phase,” and three revised tasks for the “Decision Analysis phase” – Task numbering in the 6th edition looks weird; it’s intended to replace the specified steps in phases 4 and 5, respectively INFO 503 Lecture #5 21 Procurement Phase • New tasks for the Procurement phase are: – 4.1 Research Technical Criteria and Options – 4.2 Solicit Proposals from Vendors • Revised Decision Analysis phase tasks: – 5A.1 Validate Vendor Claims and Performance – 5A.2 Evaluate and Rank Vendor Proposals – 5A.3 Award Contract and Debrief Vendors INFO 503 Lecture #5 22 Research Technical Criteria and Options • Identify specifications for hardware and software - functions, features, and critical performance needs - based on the system requirements – May be based on internal standards, and research of trade journals and magazines • Use to define technical criteria, product options, and potential vendors INFO 503 Lecture #5 23 Solicit Proposals from Vendors • Based on the technical criteria, prepare a request for quotation (RFQ) or a request for proposal (RFP) – An RFQ is used for a predefined product – Use an RFP when the product is ill defined • The RFQ/RFP must define the selection criteria, and classify requirements as mandatory, essential, or optional INFO 503 Lecture #5 24 Validate Vendor Claims and Performance • Proposals from prospective vendors must be validated to ensure their individual merits – For major software proposals, a Software Capability Evaluation (SCE) may be used • Validation may be through site visits, contacting other clients, and other research • Results in validated or invalidated proposals – ‘Invalidated’ means you don’t believe them INFO 503 Lecture #5 25 Evaluate and Rank Vendor Proposals • Throw out all invalidated proposals • Validated proposals can now be evaluated and ranked, using the predefined criteria – This is a form of feasibility assessment, but it might include criteria about the stability of the vendor, or their level of support • Results in a recommendation to use a particular vendor (we hope) INFO 503 Lecture #5 26 Award Contract and Debrief Vendors • The vendor selection is approved by management or the system owner • Contracts are prepared, negotiated, and reviewed by winning vendor and system owner • All candidate vendors are briefed on the results of the evaluation (if you’re nice) • Update affected interface requirements INFO 503 Lecture #5 27 Physical Design & Integration Phase • This phase bridges the gulf between the user requirements and the builders’ input needs – – – – – INFO 503 6.1 Design the Application Architecture 6.2 Design the System Database 6.3 Design the System Interface 6.4 Package Design Specifications 6.5 Update Project Plan Lecture #5 28 Design the Application Architecture • Defines technologies used by the system, including data, process, interface, and network components • How will data, process, and interface be distributed across locations? – Based on data and process models • Might include physical data flow diagram, p. 482 (373) INFO 503 Lecture #5 29 Design the System Database • System database(s) are designed in more detail – allowing not only for full 3NF, but also addressing performance, design flexibility, storage, security, record size, and backup/recovery needs • Capture in a database schema (often ERD) INFO 503 Lecture #5 30 Design the System Interface • Design the user interfaces to the system – inputs and outputs • Design preprinted forms and reports • Lots of existing user input is helpful! • Consider ease of learning, as well as use • Define controls to help get complete and correct data (minimize input errors) INFO 503 Lecture #5 31 Package Design Specifications • Take the results of the previous three steps and put it into a design specification document – essentially a blueprint to guide the system builders • Need to balance how much design must be specified for the builders, and how much can be left to their discretion and creativity • Review with all affected parties INFO 503 Lecture #5 32 Update Project Plan Mary had a little lamb Whose fleece was white as snow And everywhere that Mary went She updated the project plan to reflect her progress • Update the project plan, now that full design information is available (last sanity check before the start of construction!) INFO 503 Lecture #5 33 Application Architecture • Return to general design focus, not detailed • Application architecture addresses general system design and technology issues: – – – – INFO 503 How distributed is computing (processing)? How distributed is data storage? Make or buy technology? Which technologies are used for user and system interfaces, and for programming? Lecture #5 34 Modeling Application Architecture • Application architectures can be captured in many ways • A physical data flow diagram (PDFD) can show the technical design, such as the software or people involved in each process – Physical data flows can identify both the name of each data flow, and how it is implemented (person’s role, bar code, HTML, VB, etc.) INFO 503 Lecture #5 35 Modeling Application Architecture p. 504 (373) • Physical data flows expand on the logical model; may also show user vs machine lines • Physical data flows may include: – – – – INFO 503 Input or output to/from a process Database commands (CRUD) with data stores Import or export of data from another system Flow of data between two modules or subsystems within your system Lecture #5 36 Modeling Application Architecture • Physical data stores might include: – An entire database – A table in a database – A file on the computer (whether temporary or permanent) – A tape backup device – Any other kind of file, paper, or form INFO 503 Lecture #5 37 Modeling Application Architecture • A network topology data flow diagram can show which processors or people support various processes • System flowcharts were popular for showing all programs, inputs, outputs, data, and processes at once - whew! • CASE tools can automate generation of flowcharts and DFDs INFO 503 Lecture #5 38 IT Architecture • IT architecture is evolving rapidly; stay tuned for current events! (see SEI, ACM) • Networking architecture issues drive many others, so look at them first – Historic footnote: early PCs weren’t designed for multiple users or local networks • Wireless communications emerging as newest key factor in networking INFO 503 Lecture #5 39 Five Application Layers • Presentation layer is what the user sees • Presentation logic layer determines what needs to be displayed on the screen • Application logic layer controls how the application runs • Data manipulation layer controls getting data, which lives in the data layer INFO 503 Lecture #5 40 IT Architecture • Architecture options range from centralized to distributed in varying degrees – Purely centralized computing was the mainframe philosophy (one box does it all) – Web-based systems are the most decentralized • “Servers” are computers shared by many users at once • “Clients” are used by one user at a time INFO 503 Lecture #5 41 IT Architecture • Servers might fulfill many purposes – File servers hold data files used by many users – Database servers run the database program and store its data – Application servers get data inputs from the clients, and get data from the database server – Web servers host a web site, and communicate among clients and application servers INFO 503 Lecture #5 42 IT Architecture • Clients can be ‘fat’ or ‘thin’ – Fat clients have a custom application installed to communicate with the servers (now rare) • If you had to install a special program to use that system, you are probably using a fat client – Thin clients communicate with the servers through an ordinary (not customized) program, such as a web browser (now common) • Thin clients act like a dumb terminal INFO 503 Lecture #5 43 IT Architecture • Architecture options (see p. 511 (355)) are: – – – – – – INFO 503 Centralized computing (not shown) File server architecture Distributed presentation (2 tier) Distributed data (2 tier) Distributed data & application (n tier) Network computing (web) Lecture #5 44 Centralized Computing • Centralized computing was the only architecture approach through the 1970’s • Used a mainframe or minicomputer to do all the work, accessed through terminals – VT100 or IBM 3270 terminals; really dumb clients, they only displayed what text the mainframe sent to them • Very few systems still use this INFO 503 Lecture #5 45 File Server Architecture • This primitive form of distributed computing stores data on a file server, and everything else is done by the clients • The file server just holds the shared data files and lets the clients read it or write to it when needed • Is a common cheap way to share data across a local area network (LAN) INFO 503 Lecture #5 46 Client/server Architecture • Client/server architecture (distributed or cooperative computing) is the dominant network architecture starting in the 1980’s • Data, software, and interfaces may be distributed across many clients and servers – ‘Distributed presentation’, ‘distributed data’, and ‘distributed data and application’ structures are all types of client/server architecture INFO 503 Lecture #5 47 Server Types • Client/server may use many server types – Database server for data and data manipulation – Transaction server to control groups of business transactions together – Application server for the same layer – Messaging or groupware for Notes or Exchange – Web server for hosting Internet or Intranet sites INFO 503 Lecture #5 48 Distributed Presentation • Distributed presentation (a.k.a. chintzy client/server) puts a pretty GUI on what were text-based (character user interface, or CUI) terminal screens – May use CASE tool called a screen scraper to generate a quick GUI from a CUI – Client does presentation and pres. logic layers • Still is fundamentally centralized computing INFO 503 Lecture #5 49 Distributed Data • Distributed data (two-tier client/server) puts stored data on the server, and business logic and user interfaces on the clients – A local or wide area network (LAN or WAN) connects clients and servers – Reduces network traffic compared to file server architecture; easier to maintain data integrity – This is classic 1980’s client/server design INFO 503 Lecture #5 50 Distributed Data and Application • Also called three-tiered or n-tiered client/server, this distributes data and application logic to separate servers – Adds an application or transaction server to monitor transactions & handle application logic functions – Client still handles presentation and pres. logic – Is relatively new but increasingly common INFO 503 Lecture #5 51 Network Computing • Network computing distributes presentation logic to web servers, while web browsers handle only the presentation layer – Otherwise looks the same as n-tier client/server – Is the foundation for most e-commerce systems • Maintaining security is a major challenge • Emerging as foundation for widely distributed computing and data structures INFO 503 Lecture #5 52 Data Architecture • Relational databases are the most common tool used across distributed data architecture • The database engine is what handles data – Data may be distributed across servers – One table may be partitioned vertically (fields) or horizontally (records) across several servers – Data may be replicated across servers, too INFO 503 Lecture #5 53 Interface Architecture • Many options exist for handling interfaces • Batch input and output is used to handle a large group of transactions at once • On-line processing handles transactions as needed • Remote batch processing handles a batch somewhere else; good for mobile users INFO 503 Lecture #5 54 Interface Architecture • Keyless data entry tries to eliminate high volume input errors, using optical character recognition (OCR) or bar codes • Pen input is often used for simpler data • Graphical user interfaces are the de facto standard for most applications • E-mail has grown into groupware, for coordinating activities INFO 503 Lecture #5 55 Interface Architecture • Electronic data interchange (EDI) conducts transactions among businesses • Image and document interchange is like EDI; but captures literal images (photos) • Middleware helps apps communicate with each other, such as ODBC database systems • These options may be used company-wide, or left for individual projects to select INFO 503 Lecture #5 56 Process Architecture • Software development environments (SDE’s) are generally selected to match the network architecture – How a system will be deployed affects how it is developed • Centralized and distributed presentation typically use COBOL, with a CICS transaction monitor, and VSAM or DB2 for managing files and data INFO 503 Lecture #5 57 Process Architecture • Two-tier client/server is the most mature option for selecting an SDE – Tools like PowerBuilder, Delphi, Visual Studio are available; SQL commands are understood by all major database engines – Testing, debugging, testing, writing, and help authoring tools are also available – Clean layering enforces separate presentation, application, and data layers INFO 503 Lecture #5 58 Process Architecture • Multi-tier client/server typically must support 1000+ users and 1+ TB databases – Client and server must support cross-platform environment - Windows, Unix, Mac – Coding is often object-oriented; C++, C#, Ada95, Smalltalk, etc. – Tools include Forté, IBM VisualAge, etc. INFO 503 Lecture #5 59 Process Architecture • Network computing uses purely Internetbased tools – HTML for page content and hyperlinks – Computer Gateway Interface (CGI) components, using Perl, Visual Basic’s ActiveX, etc. – Java and its cousins – XML (= SGML lite) to enhance understanding of document content INFO 503 Lecture #5 60 Application Architecture Strategy • Enterprise AA strategy defines corporate standards for technology, tools, processes • Tactical AA strategy defines standards from scratch for each project, based on their research and needs • A key part of these choices is whether to buy existing tools, or build custom ones INFO 503 Lecture #5 61 Network Topology Overview • There are four major topologies (structures) for a physical computer network – – – – Bus Ring Star Hierarchical • Each may use specific protocols (languages) to communicate among the computers INFO 503 Lecture #5 62 Network Topology - Bus • A key function to achieve connectivity among computers is definition of the network topology • The “bus” is the simplest topology - it connects computers along a single line • A peer-to-peer (serverless) network uses the bus topology, with AppleTalk or Ethernet INFO 503 Lecture #5 63 Ring Topology • The ring topology connects computers in a loop, and passes packets of data from one computer to the next • IBM’s Token Ring is the most famous example • Bad if a computer falls off the network – hard to tell who dropped the packet INFO 503 Lecture #5 64 Star Network • Many clients may be connected to each server across a star network • The middle of each star is a server • Servers are connected to each other • Very common – think of using a server for each department, and be able to control which departments can see each other INFO 503 Lecture #5 65 Hierarchical Network • This is a set of nested star networks, looks kind of like an organization chart • Generally the servers get smaller the further down the hierarchy • Sometimes used in very large corporations, where the biggest servers store companywide or division-wide data INFO 503 Lecture #5 66 Network Protocols • Networks allow computers to communicate using standard languages (protocols) – Most common are Ethernet and TCP/IP – Others include Token Ring, IPX, SNA, and AppleTalk • Network operating systems – Windows 2000 Server & 2003 Server, Unix, Linux, NetWare, OS/2, Mac OS X Server INFO 503 Lecture #5 67