IB Computer Science HL

Subdecks (1)

Cards (341)

  • Changing Software Systems (Considerations)
    • Extent of change
    • Limitations of new system
    • Context in which the system will be used
    • Organizational Issues
    • Change in User Roles
  • Changing Software Systems (Challenges)
    • Users don't like change
    • Some features may be omitted
    • Old systems may be faster
    • Incompatibility with other systems
    • Data loss
    • Expensive
  • Changing Software Systems (Methods)
    • Direct Changeover
    • Parallel
    • Pilot
    • Phased
  • Direct Changeover

    • Old system stopped, then new started
    • Changeover swift, new system available immediately
  • Parallel
    • Old and new system run concurrently - new data entered into both
    • Backup if new system fail, output from both system can be compared to verify that new system works correctly
  • Pilot
    • New system tested with small part of organization, bugs fixed, then expanded
    • All features tested before adoption by whole organization, staff who are part of pilot can train others, if failure, only small part suffers
  • Phased
    • Introduced in phases, old system gradually phased out
    • Allows people to get used to new system, training can be done in stages
  • Data Migration (Problems)
    • Incompatible file formats
    • Data structure differences
    • Validations rules
    • Incomplete data transfers
    • Different data, currency, or character conventions
  • Legacy Systems
    • Old technology, computer system or application
    • No longer supported/available for purchase
    • Modernization may be expensive or time-consuming
  • Local Software
    • Runs on your computer
    • One-time fee
    • Installation
    • Update may not be automatic
    • Can be used on one computer
  • Remote (SAAS) Software
    • Accessed through a web browser
    • Subscription fee
    • Can use used on any number of computers via web browser
    • Automatic Updates
    • Users always using the same version
  • SAAS (Software-as-a-Service) Pros
    • Employees can operate software from anywhere
    • Cheaper
    • Fewer support staff necessary
    • Pay as you go/Subscription model
    • Scaling up to serve more users easy
    • Easier to maintain - don't need to worry about individual computer problems
  • SAAS (Software-as-a-Service) Cons
    • Users have no control over availability of system
    • Users have no control over security
    • If SAAS provider gets acquired, user has no control over system
    • Large-scale data corruption possible
  • Testing
    • Static Testing
    • Dynamic Testing
  • Static Testing
    • Did we build the right system?
    • Examines documentation, planned specifications, test plans etc.
    • Verification of documentation
  • Dynamic Testing
    • Code is executed
    • Makes sure code produced required result
    • Checks for bugs
    • Software meets business requirements
    • Validation - makes sure software operates as expected
  • Testing Types
    • Alpha Testing
    • Beta Testing
    • Black Box Testing
    • White Box Testing
    • User Acceptance Testing
    • Automated Testing
  • Alpha Testing

    • Testing done by internal team
    • Lasts for months
    • Very structures
    • Confirms software works as intended
    • Looks for bugs or UI issues to fix
  • Beta Testing

    • Used by potential end-users outside of company
    • Lasts for weeks
    • Largely unstructured, seeks to model real-world environment
    • Seeks to get feedback from users
    • Uses feedback to fix bigs and make software more useful for end-users
  • Black Box Testing

    • Tests software through using it
    • No access to codebase or internal workings
    • No programming knowledge required
  • White Box Testing
    • Tests a software program's code to make sure everything is working
    • Programming knowledge required; done by programmers
  • User Acceptance Testing
    • End-user testing
    • Product is tested by intended audience
  • Automated Testing

    Uses software to automatically test other software
  • Dynamic Testing
    Code is executed to make sure it produced the required result, checks for bugs, and ensures software meets business requirements
  • Validation
    Makes sure software operates as expected
  • Alpha Testing

    • Testing done by internal team, lasts for months, very structured, confirms software works as intended, looks for bugs or UI issues to fix
  • Beta Testing

    • Used by potential end-users outside of company, lasts for weeks, largely unstructured, seeks to model real-world environment, seeks to get feedback from users, uses feedback to fix bugs and make software more useful for end-users
  • Black Box Testing

    Tests software through using it, no access to codebase or internal workings, no programming knowledge required
  • White Box Testing
    Tests a software program's code to make sure everything is working, programming knowledge required, done by programmers
  • User Acceptance Testing
    End-user testing, product is tested by intended audience
  • Automated Testing
    • Uses automated testing software, tests preconstructed (usually specified in software or written in code), program output automatically compared to expected output, can rapidly complete complex/tedious tasks
  • User Documentation Types
    • Manual (Paper manual, booklet, or pamphlet)
    • Online (PDFs, website, video)
    • Help files (Locally accessible programs that display text)
  • User Training Methods
    • In-person classes
    • Online training - Instructor training one student or small group of students
    • Self-instruction
  • Causes of Data Loss
    • Hardware/System Malfunction
    • Human Error
    • Software Corruption
    • Malicious Software (Viruses, etc.)
    • National Disasters (Power cuts = equipment damage)
  • Ways of Preventing Data Loss
    • Failover Systems
    • Redundancy
    • Removable Media
    • Offsite/online storage
    • Physical Security
  • Stakeholders
    A person with an interest or concern in something (especially a business)
  • Stakeholder Methods to Get Requirements for Software Functionality
    • Direct Observation
    • Interviews
    • Surveys
    • Prototypes
  • Iteration
    Cyclical process that ends in a finished product, process of prototyping, testing, analyzing test results, and refining product until requirements met, allows constant improvement based on user or client feedback
  • Software Deployment
    • Release
    • Update
    • Bug
    • Security Vulnerability
    • Patch
    • Upgrade capability
    • Upgrade Driver
  • Usability
    How effectively and efficiently a product can be used