1/46
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Changing Software Systems(Considerations)
-Extent of change
-Limitations of new system
-Context in which the system will be used
-Change in User Roles
-Organizational issues
Changing Software Systems(challenges)
-Resistance to change
-Some features may be omitted
-Compatibility with existing systems
-Old systems may be faster
-Training requirements for users
-Impact on workflows
-Data loss
-Price
Changing software systems (Methods)
Direct Changeover - Old system stopped, then new started.
Pros: Changeover swift, new system available immediately
Cons: No backup in case of failure
Parallel - Old and new system run concurrently - new data entered into bothand compared for discrepancies.
Pros: Provides backup, allows for gradual transition
Cons: More costly due to maintaining two systems and can lead to confusion if not managed properly.
Pilot - new system tested in a small section of the organization and bugs fixed before full implementation.
Pros: Identifies issues early in a controlled environment, allows for user feedback. If program fails, only affects small part of organization
Cons: May not fully represent organizational needs if only tested in a limited scope. No backup for pilot group in case of failure
Phased - new system is implemented in stages, rather than all at once.
Pros: Reduces risk by allowing evaluation of each stage before proceeding, minimizes disruption. Training can be done in stages.
Cons: Can be time-consuming, may lead to inconsistencies across the organization during the transition. If system fails, no backup for that part of the system
Data Migration(Problems)
Moving data from one system to another
Can be huge process depending on sizes of systems
Necessary when transitioning to new system
Possible problems:
Incompatible file formats
Data structure differences
Validation rules
Different rules for what constitutes as valid data
Incomplete data transfers
Data transfer is interrupted
Different data, currency, or character conventions
Different languages can use different characters in their systems.
Legacy Systems
Old technology, computer system or application
No longer suported/available for purchase
Modernization may be expensive or time-consuming
EX. Floppy disks, Windows XP
Local vs. Remote (SAAS) Software
Local Software: Runs on your computer
One time fee
Installation
Update may not be automatic
users may be using different version depending on update status
can be used on one computer
Remote: Accessed through a web browser
Subscription fee
can be used on any number of computers via web borwser
Automatic Updates
Users always using the same version
SAAS (Software-As-A-Service) Pros/Cons
Pros:
Accessibility from any device
automatic updates
Reduced IT costs
scalable usage,
enhanced collaboration.
Cons:
Users have no control over availability of system
Users have no control over security
If SAAS provider gets acquired, user has not control over system
Large-scale data corruption is possible
Static Testing
A form of software testing that involves reviewing and evaluating the code, documentation, or requirements without executing the program, often using tools or manual inspection to detect errors early in the development process.
Dynamic Testing
A testing technique that involves executing the software to validate its behavior and identify defects during runtime.
Code is executed to make sure it produced the required result
Uses Validation, which makes sure the software operates as usual.
Alpha Testing
A type of software testing performed by internal teams before the software is released to external testers or users. It aims to identify bugs and issues in the early stages of the development cycle.
Beta Testing
A phase of software testing that follows alpha testing, where a version of the software is released to a limited group of external users to gather feedback and identify remaining defects before full release.
Black Box Testing
A testing method that focuses on examining the functionality of an application without peering into its internal structures or workings. Testers provide inputs and observe outputs, ensuring that the software behaves as expected. No programming knowledge required.
White Box Testing
A testing method that involves examining the internal structures, code, and logic of the software. Testers understand how the system works, allowing them to create test cases that ensure all paths and conditions are tested. Programming knowledge required.
User Acceptance Testing
A phase of software testing where end users test the software to ensure it meets their requirements and is ready for deployment. This testing is conducted in a real-world environment and typically occurs before the software goes live.
Automated Testing
A software testing technique that uses automated tools to execute test cases, compare actual outcomes with expected results, and identify any discrepancies. This method increases efficiency and allows for repetitive testing without manual intervention.
User Documentation
Manual(Paper manual, booklet, or pamphlet):
Pros: Doesn’t require installation, computer, or internet connection
Cons: Can be damaged or lost, cannot be updated
Online(PDFs, website, video):
Pros: Can be much longer than manual, can be updated, search capabilities, can be updated easily
Cons: Internet required, can be difficult for inexperienced users to access
Help Files(Locally accessible programs that display text):
Pros: Easily accessible in software program, contain general instructions for use, easier to access for inexperienced users
Cons: Requires installation first, which can be difficult for inexperienced users, lacks search capability
User Training(Methods)
In-Person Classes:
Pros: Cheap(many students one instructor)
Cons: less personalized, student may become bored, lost, or lose pace
Online Training:
Pros: Can be more personalized, focuses on needs of students via online instructor
Cons: Can be more expensive if individual
Self-Instruction:
Pros: Low-cost(no teacher needed), flexible timeline, users can choose what to focus on
Cons: No guidance, users may feel lost, lack of structure means that users may not learn everything they need to
Data Loss(Causes)
Hardware/System Malfunction
Human error
Software Corruption
Malicious Software(Viruses, etc.)
National Disasters(Power cuts = Equipment damage)
Data Loss(Ways of Prevention)
Failover Systems - there is a secondary system that can be switched to if the primary system fials
Redundancy - a duplicate of a system’s components and data are duplicated so that a backup is present
Removable Media - removal storage device can be used for data backup
Offsite/Online Storage - data is backed up at a different location or in the ‘cloud’
Physical Security - protecting hardware from theft or damage through locks, surveillance, and secure environments.
Stakeholders
Individuals or groups with an interest in the outcome of a project, including clients, users, developers, and managers.
Stakeholders(How to get requirements for Software Functionality)
Gathering requirements through user interviews, surveys, focus groups, and observation to understand needs and expectations for software functionality.
Prototypes
A plan or abstract representation of the end-product
Usually not fully finished
Displays functionality of one or two key aspects
Used to get feedback from stakeholders
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 - Process of launching a new product
Update - software file that fixes a problem found after release
Bug
Security Vulnerabilty
Patch - Temporary fix between full releases
Bug
Security
Upgrade capability
Upgrade Driver
Usability
How effectively and efficiently a product can be used
usability Problems(Examples)
Laptop - Battery life too short
Phone- Screen size too small, not waterproof
Digital Camera - buttons too small, software buggy
Accessibility
How easily people can use software
Accessibility(Examples of how to Improve)
Braille Keyboard
Touch Screen
Voice Recognition
Text Dictation
CPU(Central Processing Unit)
-”The Brain”
Process all instructions as binary code
Code is execute here
Arithmetic, logical, input out put rections
Directly connected to RAM(Random Access Memory)
Fetch-Decode-Execute Cycle(aka Machine Instruction Cycle, Von Neumann Model)
Address to be checked comes up in PC
PC sends the next address to be checked to the MAR
MAR sends address to RAM
Data at the address is sent to MDR
MDR sends data to the CIR(Current Instruction Register) for decoding
CIR passes the decoded instruction on to the ALU, which does everything that needs to be done
ALU gives address to MAR for any further instructions
FDE = Fetch-Decode-Execute
PC = Program Counter
MAR = Memory Address Register
RAM = Random Access Memory
MDR = Memory Data Register
CU = Control Unit
ALU = Arithmetic Logic Unit
Primary Memory
RAM(Random Access Memory)
“Short-term Memory”
consists of units of data, each with a hexadecimal address
Volatile - data lost when electricity is cut off(non persistent storage)
ROM(Read-only Memory)
Used to store permanent instructions necessary to boot computer
Holds BIOS(Basic Input Output System)
Instructions written in factory
Non-Volatile (Data persists without electricity)
Cache
Stores frequently used instructions from RAM
Processer checks cache first
Increases speed of FDE cycle
Cache memory more expensive, but faster
Closer to CPU than RAM, which contributes to speed
L1(Fastest) and L2 Cache
Secondary Memory
Hard Drive, Removable Storage(USB Drive, CDs)
“Long-term Memory”
Persistent storage
Holds all data not currently in use
Data for running the program transferred from secondary to primary memory
Slower and cheaper than primary
Not directly connected to CPU
Much larger amounts
Virtual Memory
When primary memory overloaded, data sent to secondary
Slower
Temporary
Returned to primary memory as needed
Stored in units called ‘Pages’
Fundamental operation of a computer -requires one machine instruction cycle/do not require the processor to go through many machine instruction cycles to reach a result
Input(read) values
Processing/execution of values (eg. calculate, decode, fetch, delete, evaluate, sort, transfer, transmit)
Output data
Compare values
Store values in memory or secondary storage
Complex operation of a computer
An operation that involves a number of other (fundamental) operations to reach the result. It requires multiple machine instruction cycles and may involve tasks such as input, processing, output, and data storage.
Operating Systems
“set of software that controls computer’s hardware and resources and provides services for computer programs”
5 roles
User interface
Memory Management
Peripheral Management
Multitasking
Security
User Interface
Link between user and hardware
4 types of UI
GUI(Graphical User Interface) - menus, point and click
CLI(Command Line Interfcae) - type in commands
NLI(Natural Language interface) - speak to computer(Siri)
MBI(Menu Based Interface) - Like CLI, but no commands, only menu option
Memory Management
Keep track of storage devices(HDD, Flash Drive)
Allocate memory (RAM) to programs
Modify memory locations
Sort data on disk drives and RAM for efficiency
Organize data into folders
Copy and Delete files
Peripheral Management
Peripherals - keyboard, mouse, monitor, etc.
Coordinate with BIOS (basic input output system)
Use device drivers to interface with peripherals
Device drives translate peripheral signal
Multitasking
Allocates CPU cycles to concurrent programs based on priority and time
Each program given a slice of time, or a ‘turn’ to use CPU
Slices vary in length of time
Security
Username and password
User permissions
File permissions for reading and writing
Programming Languages
Features
Consistent gramar
Consistan syntax
Provide a way to define basic data types and operations on those types(ability to write functions/procedures)
Provide ability of input and output handling
Provide some kind of loop that can be stopped / conditional statement/ branching(conditional and unconditional branching)
Has to run on/ be able to be processed by a computer(ie it must have a compiler/interpreter)
High-level vs. Low-level Programming Languages
Abstractions - High-level languages provide greater abstraction from the hardware, using human-readable syntax, whereas low-level languages often require direct interaction with hardware specifics, such as memory addresses and registers
Ease of Use - High-level languages are generally easier to learn and use because they are closer to natural human language and automate many programming tasks
Performance and Control - Low-level languages offer finer control over system resources and potentially faster performance due to their proximity to machine code
Compiler
Translates code written in a high-level programming language into machine code(object code) that a computer’s processor can execute
Interpreter
directly executes instructions written in a programming language (line-by-line) without requiring them to be first compiled into machine code
Differences between High-Level Programming Languages
Method of translation- whether by compiler or interpreter(or both)
Loosely/strongly typed - refers to whether data types are specified
Compatibility with different environments - Java with virtual machine can run on all OSes, but some languages are OS specific
Syntax differences
Application Software
Word Processors
Spreadsheets
Database Management System (DBMS)(MS Access)
Email Client(Outlook)
Web Browser
Computer Aided Design(CAD)
Graphic Processing Software(Photoshop)
Units of Data Storage
1 byte = 8 bits
1 kilobyte = 1024 bytes
1 megabyte = 1024 kilobytes
1 gigabyte = 1024 megabytes
1 terabyte = 1024 gigabytes
Binary
Language of CPU and computing
1,0 only possible digits
Base 2 - each digit corresponds to a value with a base of 2
Hexadecimal
More efficiently represents large binary values
Uses
Displaying colors
Memory addresses (esp. in assembly)
MAC Addresses
Base 16
Conversion to know
Binary to Decimal
Decimal to Binary
Hexadecimal to Binary
Binary to Hexadecimal
Hexadecimal to Decimal
Decimal to Hexadecimal