Exam_prep.pptx
- Количество слайдов: 71
What is Information System. Information. • Information System (IS) • Quantum of ‘data’ – Information • Generating information (data) • Organization and management of information – we need a system • System – bicycle for our brain
Types of Information Systems • ERP (enterprise resource planning) system • CRM (customer relationship management) system • DBMS (database management system) • CMS (content-management system) • Lotus (document exchange system) • Intranet systems (DL, custom made ones)
IS Vs IT INFORMATION TECHNOLOGY Inventory System Hardware Software Databases Networks Other related components Payroll System are used to build INFORMATION SYSTEMS Marketing System Customer Service System
Classification of IS Information Systems Operations Support System Transaction processing systems Process control systems Office automation systems Management Support System Management information systems Decision support systems Executive information systems
SQL Introduction Standard language for querying and manipulating data Structured Query Language Many standards out there: ANSI SQL 92 (a. k. a. SQL 2) SQL 99 (a. k. a. SQL 3) Vendors support various subsets of these What we discuss is common to all of them 5
SQL • Data Definition Language (DDL) – Create/alter/delete tables and their attributes – Following lectures. . . • Data Manipulation Language (DML) – Query one or more tables – discussed next ! – Insert/delete/modify tuples in tables • Transact-SQL – Idea: package a sequence of SQL statements server – Won’t discuss in class 6
Data Types in SQL Characters: CHAR(20) -- fixed length VARCHAR(40) -- variable length Numbers: BIGINT, SMALLINT, TINYINT REAL, FLOAT -- differ in precision MONEY Times and dates: DATETIME -- SQL Server Others. . . All are simple 7
Moore’s law implies • At given price point, total CPU power doubles every 18 -24 months – Low end (<$1) chip will have today’s high-end performance in ~10 years • Corollary: at a given performance point price drops fast
Human-Computer Interaction Computer Science HCI Psychology Design
Human Computer Interaction • Human People who interact with the system • Computer Represents a system that come in many different forms • Interaction Information exchange between the system and human First time use "The Psychology of Human-Computer Interaction“ by Card, Moran, and Newell
The User Interface • Typically want to think of “UI” as only one component of an overall system – The part that “deals with the user” – Distinct from the “functional core” AKA the “application” for the web: “backend”
Separation of UI from “Application” • Really good reasons to want separation (in general: “separation of concerns”) – Modularity (good software design) – Different expertise needed – Don’t want to iterate the whole thing
UI tasks • Basic flow Input Output Application Appl UI Core Interface
How do we connect these disparate parts into working whole • Modern (“direct manipulation”) interfaces tend to be collections of quasi-independent agents – Each “object of interest” is separate – e. g. a button • has “button-like” screen appearance • acts on input in a “button-like” way • etc.
Interactor (or Component) Trees • Interactors are organized hierarchically – Normally reflecting spatial containment relationships • Everything is done through this tree – Build an interface == build a tree – Change an interface == change a tree (Note that HTML is like this too) (Similar to scene graph in graphics) frame column button
Layers of UI Software Application Program “High-Level” Tools Provides underlying infrastructure for input and output tha everything is built on Toolkit Window System OS ides structures Hardware psulating nizing principles – “Application Frameworks” – UI Builders and prototyping tools ØProvide easy access t the same concepts
The “interface cycle” Display USER • Evaluates & understands display • Formulates goals & actions • Acts to produce inputs SYSTEM • Updates display • Updates internal “state” • Interprets input events Input Devices
Norman’s “Gulfs” • Norman describes 2 user activities as bridging – The Gulf of evaluation – The Gulf of execution User System • Making these “gulfs” (mappings) small makes the interface much easier to use
Mental models • To evaluate and act, people inevitably build models of how the system works – can’t help but do it – may be highly detailed and functional – may be quite naïve • Generally are not complete, not necessarily “logical”, …
Scott’s UI design guideline #1 • A system implementor cannot pretend to be a user – You know too much – You can’t forget • HCII Mantra: “The user is not like me!”
Scott’s working definition of what makes a good UI • A user interface is good if: 1) It offers (convenient access to) the functionality needed to perform the task efficiently 2) The user’s mental model accurately predicts interface action
Scott’s working definition of what makes a good UI • From implementation (traditional CS) point of view 1) is fine: “design in the right things” 2) is a big problem Good UI is not a function of the software! Good UI is (mostly) a property of the user!
Principle: • People can’t form very good mental models of things they can’t see
How do we deal with this? • Carefully and explicitly structure our designs to try to induce the right mental model in the user – and test that it does! – and fix it when it doesn’t (full process) • Have explicit “conceptual model” – view of what mental model we are trying to give
Two specific things to worry about • Affordance • Feedback
Affordance • Opportunities to act which are readily apparent to the user Form “affords” certain actions and makes that apparent Allows and promotes certain actions • Door knobs afford turning • Handle of hammer affords grasping in a particular way
Feedback • Response by the system to the actions of the user – Cause and effect – Essential forming mental models • Making “system state” visible
Scott’s UI design guideline #2 • Explicitly design a conceptual model and use affordance and feedback (and everything else you have) to reinforce it
Performance properties of people • (Only a very few here) • How long will things take? – e. g. , physical movements • How much can people remember? • How fast are thing perceived?
How much can a person remember • Short term (working) memory – Famous 3 2 “chunks” (Somewhat outdated model) – For us just: “very limited” and “decays quickly” • Long term – Essentially unbounded – But requires effort & may not always work on cue – Can’t explicitly forget!
Scott’s UI guideline #3 (from Donald Knuth) • Premature optimization is the root of all evil – Build it and refine usability first – Only optimize if usability tests say you have to – CS intuitions about this misleading
How much can a person remember • Novice / expert differences – Experts have learned items in long term memory to draw on, novices don’t – But note that having the ability to operate from recognition does not preclude recall • Implication: – Generally better to rely on recognition (seeing it in front of you) than just recall (having to pull it out of long term memory)
Scott’s UI guideline #3 (from Donald Knuth) • Premature optimization is the root of all evil – Build it and refine usability first – Only optimize if usability tests say you have to – CS intuitions about this misleading
A little about response times • Good vs. bad response time is very dependent on expectation – If you can’t meet the goals, manipulate user expectations! • Consistency of response is very important – Can be more important than time
Final property of people: Errors • People make lots of mistakes! – A fundamental property of people • Lots of errors • Everyone • All the time • If you are designing for real people then…
Scott’s UI design guideline #4: • Errors are not exceptional events! – Part of the expected and normal – System has to be designed from the bottom up to deal with errors at least as effectively as other actions – • (Sharp contrast to how I was taught to program)
Legacy SW vs. Beautiful SW • Legacy code: old SW that continues to meet customers' needs, but difficult to evolve due to design inelegance or antiquated technology – 60% SW maintenance costs adding new functionality to legacy SW – 17% for fixing bugs • Contrasts with beautiful code: meets customers' needs and easy to evolve 37
Development Processes: Waterfall vs. Agile • Waterfall “lifecycle” or development process – A. K. A. “Big Design Up Front” or BDUF • In the Waterfall lifecycle, the long life of software is acknowledged by a maintenance phase that repairs errors as the are discovered. New versions of software developed in the Waterfall model go through the same several phases, and take typically between 6 and 18 months. The Waterfall model can work well with well-defined tasks like NASA space flights, but it runs into trouble when customers are unclear on what they want. 1. Requirements analysis and specification 2. Architectural design 3. Implementation and Integration 4. Verification 5. Operation and Maintenance • Complete one phase before start next one – Why? Earlier catch bug, cheaper it is 38 – Extensive documentation/phase for new people
How well does Waterfall work? • Works well for important software with specs that won’t change: NASA spacecraft, aircraft control, … • But often when customer sees result, wants big changes • But often after built first one, developers learn right way they should have built it 39
Agile lifecycle • Embraces change as a fact of life: continuous improvement vs. phases • Developers continuously refine working but incomplete prototype until customers happy, with customer feedback on each Iteration (every ~2 weeks) • Agile emphasizes Test-Driven Development (TDD) to reduce mistakes, written down User Stories to validate customer requirements, Velocity to measure progress 40
TDD • Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards.
Assurance • Verification: Did you build the thing right? – Did you meet the specification? • Validation: Did you build the right thing? – Is this what the customer wants? – Is the specification correct? • Hardware focus generally Verification • Software focus generally Validation • 2 options: Testing and Formal Methods 42
Testing • Exhaustive testing infeasible • Divide and conquer: perform different tests at different phases of SW development – Upper level doesn’t redo tests of lower level System or acceptance test: integrated program meets its specifications Integration test: interfaces between units have consistent assumptions, communicate correctly Module or functional test: across individual units Unit test: single method does what was expected 43
More Testing • Coverage: % of code paths tested • Regression Testing: automatically rerun old tests so changes don’t break what used to work • Continuous Integration Testing: continuous regression testing vs. later phases • Agile => Test Driven Design (TDD) write tests before you write the code you wish you had (tests drive coding) 44
Reuse • Reuse old code vs. write new code • Techniques in historical order: 1. Procedures and functions 2. Standardized libraries (reuse single task) 3. Object oriented programming: reuse and manage collections of tasks 4. Design patterns: reuse a general strategy even if implementation varies 45
DRY • “Every piece of knowledge must have a single, unambiguous, authoritative representation within a system. ” – Andy Hunt and Dave Thomas, 1999 • Don't Repeat Yourself (DRY) – Don’t want to find many places have to apply same repair • Don’t copy and paste code! 46
Software as a Service: Saa. S • Traditional SW: binary code installed and runs wholly on client device • Saa. S delivers SW & data as service over Internet via thin program (e. g. , browser) running on client device – Search, social networking, video • Now also Saa. S version of traditional SW – E. g. , Microsoft Office 365, Turbo. Tax Online 47
6 Reasons for Saa. S 1. 2. 3. 4. No install worries about HW capability, OS No worries about data loss (at remote site) Easy for groups to interact with same data If data is large or changed frequently, simpler to keep 1 copy at central site 5. 1 copy of SW, controlled HW environment => no compatibility hassles for developers 6. 1 copy => simplifies upgrades for developers and no user upgrade requests 48
Service Oriented Architecture • SOA: SW architecture where all components are designed to be services • Apps composed of interoperable services – Easy to tailor new version for subset of users – Also easier to recover from mistake in design • Contrast to “SW silo” without internal APIs 49
Service Oriented Architecture • SOA: SW architecture where all components are designed to be services • Apps composed of interoperable services – Easy to tailor new version for subset of users – Also easier to recover from mistake in design • Contrast to “SW silo” without internal APIs 50
Cloud Computing • The Internet supplies the communication for Saa. S. • Cloud Computing provides the scalable and dependable hardware computation and storage for Saa. S. • Cloud computing consists of clusters of commodity servers that are connected by local area network switches, with a software layer providing sufficient redundancy to make this costeffective hardware dependable. • These large clusters or Warehouse Scale Computers offer economies of scale. • Taking advantage of economies of scale, some Cloud Computing providers offer this hardware infrastructure as low-cost utility computing that anyone can use on a pay-as-you-go basis, acquiring resources immediately
TCP/IP protocols • IP (Internet Protocol) address identifies a physical network interface with four octets, e. g. 128. 32. 244. 172 – Special address 127. 0. 0. 1 is “this computer”, named localhost, even if not connected to the Internet! • TCP/IP (Transmission Control Protocol/Internet Protocol) – IP: no-guarantee, best-effort service that delivers packets from one IP address to another – TCP: make IP reliable by detecting “dropped” packets, data arriving out of order, transmission errors, slow networks, etc. , and respond appropriately – TCP ports allow multiple TCP apps on same computer
Precedence (Guiding the Eye) Visual weight of parts of design and navigation of the eye Position — Order of elements, so users see it by structure Color — Bold and subtle colors help users where to look Contrast — Different – stands out, similar – makes it hide Size — big is a contrast to small, and makes it important Design Elements — if there is a gigantic arrow pointing at something, guess where the user will look?
Spacing Empty space seemed wasteful. In fact the opposite is true. Line Spacing – too little eye spills over, too much your get lost. Finding balance and harmony – key. Leading ([ledding]) – distance btw lines Padding – elements and text should not touch each other. There must be some space. White Space – (negative). More – elegant, less – cheap.
Navigation One of the most frustrating experiences: failing to figure out where to go or where you are. Navigation — Where can you go? Feedback, feedforward and affordance here. Explicit and prominent. Orientation — Where are you now? Bread-crumbs trails, sub-headings, and site map for truly lost people.
Independent Products vs. Continuous Improvement • Cost of field upgrade • HW ≈ ∞ HW designs must be finished before manufactured and shipped Bugs: Return HW (lose if many returns) • SW ≈ 0 Expect SW gets better over time Bugs: Wait for upgrade • HW decays, SW long lasting 56
So we need calculations. Then evolution of computers. 1936 Konrad Zuse - Z 1 Computer First freely programmable computer. 1944 Howard Aiken & Grace Hopper Harvard Mark I Computer The Harvard Mark 1 computer. 1958 1969 1984 Jack Kilby & Robert Noyce The Integrated Circuit ARPAnet Apple Macintosh Computer Otherwise known as 'The Chip' The original Internet. The more affordable home computer with a GUI.
How computers started to enter our lives • Von Neumann's architecture (derived from works of Turing’s machine (earlier)) – Data and program is stored in one place (RAM) – Concept of stored-program • before computers had to be designed rather than ‘programmed’. • Harvard’s architecture (used in modern computers) – Separate data and program in different storages
From Program to Software • Software – set of machine instructions that lead processor to perform specific operations. • Firmware – software permanently stored in hardware (physical object to carry out instructions). • It is general term – include machine instructions (binary that CPU reads) and source code (human understandable instructions, requires compilation to machine code).
Software (continued) • System software – basic software required for operations of computer system (e. g. OS) • Application software – software uses computer system to perform work beyond operation of computer itself. • Embedded system – a firmware within embedded system (specific control functions within bigger system, real-time context usually in contrast to general purpose computer PC)
IS Evolution in brief • • • EDP -> MIS (~1960) MIS -> DSS -> EIS -> Expert Systems MIS -> e-commerce IS that enhance value of information (~2012) – Data warehouse – Data mining – Online analytical processing
Simon talks at Johns Hopkins & CIOS Conf. in Tokyo, Fall 1969 “In an information-rich world, the scarce resource is […] attention”
Visualization is for: • Exploiting the human visual system to extract information from data • Provides an overview of complex data sets • Identifies structure, patterns, trends, anomalies, and relationships in data • Assists in identifying the areas of “interest”
Visual Design • Six objective in visualization design (by Tufte): – Simply show the data – Make sure user thinks about substance of graphic, not graphic itself – Avoid unnecessary decorations – Compress as much info to as small place. User gets data in chunks better. – Graphics should encourage users to make comparisons between different pieces of graphic. – Provide different details of data mining on many levels.
Business intelligence (BI) • Business intelligence (BI) is a set of theories, methodologies, processes, architectures, and technologies that transform raw data into meaningful and useful information for business purposes. [wiki] {online analytical processing, analytics, data mining, process mining, complex event processing, business performance management, benchmarking, text mining, predictive analytics and prescriptive analytics. }
Context aware apps Context awareness is a property of mobile devices that is defined complementary to location awareness. [wiki] • Location based apps: – Based on GPS and e-compas in the mobile devices
RFID (Radio Frequency Identification) A bit of electronics that can return an identification of itself (normally a number) when queried using radio frequency signals. Two parts: – Interrogator (Reader) – Responder (Tag)
Color Model Summary • RGB easy to program – Close to hardware – Pretty much universally supported on all platforms • HSV is easier for people to use – Uses people’s intuition of what color is – There is a direct conversion to RGB • Other colors models: – CMYK: mixing pigments cyan, magenta, & yellow (printing) 68
Light Emitting Diodes (LEDs) • Invented in 1962 by Nick Holonyak, Jr. – Electrons moving through semiconductor diode emit light • Long-lasting, durable, bright, and efficient Some examples Digital clocks, Jumbo (scoreboard) TVs, traffic lights, optical mouse, remote controls, entertainment devices Blue LEDs since late 1990 s New Organic LED (OLED) technology promises cheaper displays Eventually manufactured with printing-like process 69
CRTs: Cathode Ray Tubes • Cutting edge 1930’s technology – Invented in 1897 – Uses a vacuum tube (big, power hog, …) – Refined some, but still operates in the same basic way • Hung on as dominant technology for a long time – Because CRT TVs were a mass market consumer item – Many many years of work to make cheap 70
Fonts and Drawing Text • A font provides: description of the shape of a collection of chars – These shapes are called glyphs • Plus layout information – e. g. about how to advance to next position after drawing a glyph • Plus aggregate info for the whole collection 71