LSU/SLIS The System Life Cycle & Final Review Session 13 LIS 7008 Information Technologies Agenda • Systems analysis • Building complex systems • Managing complex systems • Final exam review.

Download Report

Transcript LSU/SLIS The System Life Cycle & Final Review Session 13 LIS 7008 Information Technologies Agenda • Systems analysis • Building complex systems • Managing complex systems • Final exam review.

LSU/SLIS The System Life Cycle & Final Review

Session 13 LIS 7008 Information Technologies

Agenda

• Systems analysis • Building complex systems • Managing complex systems • Final exam review

Digital Signature

• Where to get the digital certificates?

• Signing your own files – http://office.microsoft.com/en-us/help/HP052495551033.aspx

– See also: Create great-looking signatures for your e-mail (on the same page) – See also: Available Digital IDs for the 2007 Microsoft® Office system (on the same page, or http://office.microsoft.com/en us/marketplace/EY010504841033.aspx)

The System Life Cycle

• Systems analysis – How do we know what kind of system to build?

• User-centered design – How do we discern and satisfy user needs?

• Implementation – How do we build it?

• Management – How do we use it?

Systems Analysis

• First steps: – Understand the task (e.g., New York Times online) • Limitations of existing approaches to advertisement – Where to put advertisement? – Understand the environment • Structure of the industry: when does NYT get news?

• Feasibility study: support image/audio/video?

• Then identify the information flows – e.g., Serials use impacts cancellation policy – What information, layout, subscribers’ bandwidth • Only then can you design a solution

Analyze the Information Flows

• Where does information originate?

– Might come from multiple sources – Feedback loops may have no identifiable source • Which parts should be automated?

– Some things are easier to do without computers • Which automated parts should be integrated?

• What other systems are involved?

– And what information do they contain? • What are the impacts?

– e.g., serials use impacts cancellation policy – e.g., circulation policy impacts fines

Integrated Library System (ILL): Functions

• Acquisition (collection development) • Cataloging • Reference – Online Public Access Catalog (OPAC) • Circulation • Weeding • Reserve, recall, fines, interlibrary loan, … • Budget, facilities schedules, payroll, ...

• User database • What should be integrated?

• What changes fast?

Discussion Point: Integrated Library System

• What functions should be integrated?

• What are the key data flows?

• Which of those should be automated?

Approaches for Analyzing Information Flows

• Process Modeling – Structured analysis and design – Entity-relationship diagrams – Data-flow diagrams • Object Modeling – Object-oriented analysis and design – Unified Modeling Language (UML)

Formal Analysis

• Process Modeling Structured analysis and design – Entity-relationship diagrams – Data-flow diagrams • See http://en.wikipedia.org/wiki/Data_flow_diagram • Object Modeling Object-oriented analysis and design – Unified Modeling Language (UML) • See http://en.wikipedia.org/wiki/Unified_Modeling_Language

User-Centered Design

• (System requirement engineers) Start with user needs – Who are the present and future users?

• Cataloguing system for catalogers – How can you understand their needs?

• How cataloguers do cataloguing – Present author first? Title first? How many subject headings?

• How users use the catalogues • Evaluate available technology – Off-the-shelf solutions: buy a system?

– Custom-developed applications • Implement something – Parallel systems (old and new) • Evaluate it with real users

The Waterfall Model

• Key insight: invest in the design stage – An hour of design can save a week of debugging!

• Requirements – Specifies what the software is supposed to do • Specification – Specifies the design of the software • Test plan – Specifies how you will know that it did it

The Waterfall Model

Requirements Specification Software Test Plan sequential software development process http://en.wikipedia.org/wiki/Waterfall_model

The Spiral Model

• Build what you think you need – Perhaps using the waterfall model • Get a few users to help you debug it – First an “alpha” release, then a “beta” release • Release it as a product (version 1.0) – Make small changes as needed (1.1, 1.2, ….) • Save big changes for a major new release – Often based on a total redesign (2.0, 3.0, …) • The spiral model is intended for large, expensive and complicated projects.

The Spiral Model

1.2

0.5

1.0

1.1

2.0

2.1

2.3

2.2

3.0

Some Unpleasant Realities

• The waterfall model doesn’t work well – Requirements usually incomplete or incorrect • The spiral model is expensive – Redesign leads to recoding and retesting

The Rapid Prototyping Model

• Goal: explore requirements – Without building the complete product • Start with part of the functionality – That will (hopefully) yield significant insight • Build a prototype – Focus on core functionality, not on efficiency • Use the prototype to refine the requirements • • Repeat the process, expanding functionality http://www.zcorp.com/en/rapid-prototyping model/spage.aspx

Rapid Prototyping + Waterfall

Update Requirements Write Specification Initial Requirements Choose Functionality Create Software Build Prototype Write Test Plan

Implementation Requirements

• System availability – Mean Time Between Failures (MTBF) • once every 4 weeks?

– Mean Time To Repair (MTTR) • 30 seconds?

• System capacity – Number of users for each application • Moodle – Response time • System flexibility – Upgrade path

Different Architectures

• Desktop applications – What we normally think of as software • Batch processing (e.g., print recall notices) – Save it up and do it all at once • Timesharing (e.g., OPAC, Unix) – Everyone uses the same machine • Client-Server (e.g., Web, Ajax) – Some functions done centrally, others locally • Peer-to-Peer (e.g., Kazaa, MSN) – Client-client computing; no central server – All data and computation is distributed – http://en.wikipedia.org/wiki/KaZaA

Management Issues

• Retrospective conversion of systems – Even converting electronic information is expensive • Migrate catalogue from MARC  XML: agonizing • Management information – Peak capacity evaluation, audit trails (audit log), etc.

– Sometimes costs more to collect than it is worth!

• Training – Staff, end-users • User privacy – Policy issue

Things will go wrong…

• No software is defect-free. Why?

– Sheer size: e.g., Windows XP (in 2002) was ~40M lines of code – Almost impossible to predict all possible use contexts – Concurrency problems • The importance of disaster recovery – Backups (periodicity, storage location)

Hands On: What Goes Wrong?

• Check out Risks Digest for a random date – http://catless.ncl.ac.uk/Risks – Pick a random date near your birthday • Find a case of unexpected consequences • Try to articulate the

root

cause – Not the direct cause

Discussion Points: Managing Complex Systems

• Critical system availability – Why can’t we live without these systems?

• Understandability – Why can’t we predict what systems will do?

• Nature of bugs – Why can’t we get rid of them?

• Auditability – How can we learn to do better in the future?

– Keep track of all the requirements!

Critical Infrastructure Protection

• Telecommunications • Banking and finance • Energy • Transportation • Emergency services • Food and agriculture • Water • Public health • Postal and shipping • Defense industrial base • Hazardous materials SCADA: Supervisory Control and Data Acquisition

National Cyberspace Strategy

• • Response system – Analysis, warning, response, recovery • Threat and vulnerability reduction • Awareness and training program – Return on investment, best practices • Securing government systems • International cooperation http://www.dhs.gov/xlibrary/assets/National_Cybe rspace_Strategy.pdf

system analysis development models management

TCO

• TCO = “Total cost of ownership” • Buying/developing software isn’t the only cost!

• Other (hidden) costs: – Planning, installation, integration – Disruption and migration – Ongoing support and maintenance – Training (of staff and end users)

What is open source?

• Proprietary vs. open source software • Open source used to be a crackpot idea: – Bill Gates on Linux (3/24/1999): “I don’t really think in the commercial market, we’ll see it in any significant way.” – MS 10-Q quarterly filing (1/31/2004): “The popularization of the open source movement continues to pose a significant challenge to the company’s business model” • Open source… – http://en.wikipedia.org/wiki/Open_source

Basic Definitions

• What is a program?

An organized list of instructions that, when executed, causes the computer to behave in a predetermined manner. Like a recipe.

• What is source code?

Program instructions in their original, human-readable form.

• What is object/executable code (binaries)?

Program instructions in a form that can be directly executed by a computer. A compiler takes source code and generates executable code.

Proprietary Software

• Distribution in machine-readable binaries only • Payment for a license – Grants certain usage rights – Restrictions on copying, further distribution, modification • Analogy: buying a car… – With the hood welded shut – That only you can drive – That you can’t change the rims on

Open Source Principles

• Free distribution and redistribution – “Free as in speech, not as in beer” “The license may not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license may not require royalty or other fee for such sale.” • Source code availability “The program must include source code, and must allow distribution in source code as well as compiled form”.

• Provisions for derived works “The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.”

Open Source vs. Proprietary

• Who gets the idea to develop the software?

• Who actually develops the software?

• How much does it cost?

• Who can make changes?

Open Source is already here…

• Apache web server has ~70% market share of the public Internet (Nov., 2005) • Sendmail mail server has ~50% market share • Linux is a very popular OS for servers – Sales figures unreliable • Lots more…

Examples

Operating system Office suite Image editor Web browser Web server Database

Proprietary

Windows XP Microsoft Office Photoshop Internet Explorer IIS Oracle

Open Source

Linux OpenOffice GIMP Mozilla Apache MySQL

Server vs. Desktop

• Open source has made significant inroads in the server market • The next big challenge: the desktop market

Open Source: Pros

• Peer-reviewed code • Dynamic community • Iterative releases, rapid bug fixes • Released by engineers, not marketing people • High quality • No vendor lock-in • Simplified license management

Pros in Detail

• Iterative releases, rapid bug fixes – Anyone can fix bugs – Bugs rapidly fixed when found – Distribution of “patches” • Released by engineers, not marketing people • – Stable versions ready only when they really are ready – Not dictated by marketing deadlines • High quality 

Pros in Detail

• No vendor lock-in – Lock in: dependence on a specific program from a specific vendor – Putting content in MS Word ties you to Microsoft forever – Open formats: can use a variety of systems • Simplified licensed management – Can install any number of copies – No risk of illegal copies or license audits – No anti-piracy measures (e.g. CD keys, product activation) – No need to pay for perpetual upgrades – Doesn't eliminate software management, of course

Cons of Open Source

• • A lot of dead-end software • Fragmentation • Developed by engineers, often for engineers • Community development model • Inability to point fingers 

Cons in Detail

• Dead-end software – Development depends on community dynamics: What happens when the community loses interest?

– How is this different from the vendor dropping support for a product? At least the source code is available • Fragmentation – Code might “fork” into multiple versions: incompatibilities develop – In practice, this rarely happens

Cons in Detail

• Developed by engineers, often for engineers – My favorite “pet feature” – Engineers are not your typical users!

• Community development model – Cannot simply dictate the development process – Must build consensus and support within the community • Inability to point fingers – Who do you call up and yell at when things go wrong?

– Buy a support contract from a vendor!

Open Source Business Models

• Support Sellers (“Give Away the Recipe, Open A Restaurant”) Give away the software, but sell distribution, branding, and after sale service.

• Loss Leader Give away the software as a loss-leader and market positioner for closed software.

• Widget Frosting If you’re in the hardware business, giving away software doesn’t hurt you and has it’s advantages. What are they?

• Accessorizing Sell accessories: books, compatible hardware, complete systems with open-source software pre-installed. (open-source T-shirts, coffee mugs, Linux penguin dolls, etc.)

Open Source Mature enough?

Yes • Some open source software have been around for 15+ years • Lots of servers already running open source software

Open Source Sustainable?

Yes • Businesses and governments are choosing open source • Software companies are creating and supporting open source (e.g. IBM, Sun, HP) • Many schools are considering or adopting open source software

Open Source in Government

• Freedom of Information Act – free, open access to public records – What are the implications of using a proprietary format?

• U.S. Office of Management and Budget – On July 1, 2004, officially recognized Open Source software as a viable option for civilian agencies of the federal government • Open source gaining traction internationally

It comes down to cost…

Total Cost of Ownership Debate

Cost structure. Direct cost: hardware, installation, software price Management cost: maintenance, training …

Is open source right for you?

• Do you have access to the necessary expertise?

• Are you willing to retool your processes?

• Are you willing to retrain staff and users?

• Are you prepared for a period of disruption?

• Do you have a well-thought out plan for rolling out open source software?

• Do you have buy-in from the stakeholders?

Summary

• Systems analysis – Required for complex multi-person tasks • User-centered design – Multiple stakeholders complicate the process • Implementation – Architecture, open standards, … • Management – Typically the biggest cost driver

Final Review

• What we have learned in this semester

Computers

The Grand Plan

Networking HTML/XML Multimedia Programming Databases Web Databases HCI CMC Web Search Policy Life Cycle Quiz Midterm Project Final

Computers

• Units conversion • Hardware – Types of hardware – Storage hierarchy – Moore’s law • Software – Types of software – Types of interfaces

Networks

• Types of Networks – LAN, WAN, Internet, Wireless • Packet Switching – Ethernet, routers, routing tables • Layered Architecture and protocols – TCP/UDP – IP address/domain name

Structured Documents

• The Web – HTTP, URL/URI, HTML, CSS • XML, DTD, XSL My Browser

Multimedia

• Compression, compression, compression – Image: lossy vs loseless • Formats: JPEG, GIF, vector graphics – Video: frames are alike – Speech: voice predictable – Music: masking • SMIL • Video streaming Buffer Media Sever Internet

Databases

• Structured information – Field  record  table  database – Primary key • Normalized tables (relations) – Remove redundancy, inconsistency, error – Easy update, search • “Join” links tables together – Through foreign key • MS-Access provides visual operations

Goals of “Normalization”

• Save space – Save each fact only once • More rapid updates – Every fact only needs to be updated once • More rapid search – Finding something once is good enough • Avoid inconsistency – Changing data once changes it everywhere

?

?

Programming (Javascript)

• Programming languages – Machines require specific instructions – Humans require high-level abstraction • Control structures – Sequential execution – Conditional – Iteration • Javascript

Web-Database Integration

• Microsoft “Data Access Pages” • Server-side database integration • PHP • Ajax (?) – http://en.wikipedia.org/wiki/AJAX – Google Maps • Mythical person-month

Mythical Person-Month

• Why is software development different from manufacturing car?

• If it would take 1 person 3 months, why does it take 4 people 6 months?

Computer-Mediated Communication

• Synchronous / Asynchronous • Remote / local • One-to-one / many-to-many • Computer-Supported Cooperative Work • Online communities

Design Strategies of Successful Communities • Define and articulate your PURPOSE • Build flexible, extensible gathering PLACES • Create meaningful and evolving member PROFILES • Design for a range of ROLES (newcomers, leaders …) • Develop a strong LEADERSHIP program • Encourage appropriate ETIQUETTE • Promote cyclic EVENTS • Integrate the RITUALS of community life • Facilitate member-run SUBGROUPS http://www.peachpit.com/articles/printerfriendly.aspx?p=21189 (Amy Kim 2001)

Human-Computer Interaction

• Human-machine synergy • Mental models • Input and output devices • Interaction styles – Direct manipulation, menu, language based • Information architecture – Static design, dynamic design – CRAP layout guidelines

Mental Models

• How the user thinks the machine works – What actions can be taken?

– What results are expected from an action?

– How should system output be interpreted?

• Mental models exist at many levels – Hardware, operating system, and network – Application programs – Information resources

Some Layout Guidelines

• • • •

C

ontrast: make different things different – to bring out dominant elements – to create dynamism

R

epetition: reuse design throughout the interface – to create consistency

A

lignment: visually connect elements – to create flow

P

roximity: make effective use of spacing – to group related and separate unrelated elements Evaluate: http://www.louisianafolklife.org

The Web

• Huge, dynamic, redundant, and diverse • Multimedia, multilingual, multicultural • Web crawling, link structure • Surface Web, Deep Web • Internet Archive

Search Engines

• Searching process • Exact match & rank-based • Term-based ranked retrieval • Recommender systems • Web search – Links and anchor text • Evaluation (P/R)

Policy

• Ownership – Equitable access – Controlled access • Identity management – Choosing good passwords • Privacy – Government / commercial • Information integrity – encryption

System Life Cycle

• Systems analysis • Software development models • Managing complex systems • Open source software

Final Exam

• About 5-7 questions – Same question styles as the midterm – Some may require use of the computer • Will be comprehensive - covers the entire course – But emphasis on the second half – Covers homework, slides, Moodle discussions, text, required readings, and project • Open book/Internet/Notes; two hours – But cannot discuss exam with a living person • Submit as electronic or hardcopy • Earlier Final Exam Examples & Solutions: – See course Website – More: http://www.umiacs.umd.edu/~oard/teaching/690/spring08/exams/index.html

Course Evaluation

• Some time later