Please enable JavaScript.
Coggle requires JavaScript to display documents.
Implementation of Software Solutions - Coggle Diagram
Implementation of Software Solutions
Choosing an Appropriate Programming Language
Criteria
The Nature of the Project
Intended Environment
Hardware
Operating System
Network
Experience of Programmers
Event Drive or Sequential Approach
Maintainability
Language Syntax required for Software Solutions
Metalanguage Descriptions of Programming Languages
Using Arrays of Records and Files
Declaring Multi-dimensional Arrays and Arrays of Records
Use of EBNF and Railroad Diagrams
Repetition
Possible Repetition
Item followed by optional thing
Can take either value
A choice between two alternatives
Defined elsewhere
Quotes are used to enclose symbols used by metalanguage
Translation Methods in Software Solutions
Interpretation
Compilation
The Translation Process in Detail
Syntactical Analysis
Code Generation
Dynamic Link Library
Lexical Analysis
The Role of Machine Code in Execution of a Program
What is Machine Code?
Definitions
Register
Interrupt
Flag
How is Machine Code executed by the CPU?
Levels of Code
Model of CPU
Fetch-execute Cycle
Fetch instruction from primary memory
Decode instruction which is performed by control unit.
Load operands from memory into register
Set program counter to next instruction's address
Execute the instruction and store the result which is often performed by the ALU
Reset fetch-execute counter to one
Techniques used in Developing Well-written Code
Error Detection/Correction Techniques
Stubs
Drivers
Flags
Debugging Output Statements
Peer Checking
Desk Checking
Structured Walkthrough
Use of Expected Output
Software Debugging Tools
Breakpoints
Resetting Variable Contents
Program Traces
Single Line Stepping
Watch Expressions
The Use of Good Programming Practices
Use of Clear Modular Structure
One Logical Task per Subroutine
Quality of Solution
Appropriate Use of Control Structures and Data Structures
Writing for Subsequent Maintenance
Version Control and Regular Backup
Recognition of Relevant Social and Ethical Issues
Respect intellectual property rights when using code from others
Thorough testing to ensure performance
Documentation for future software maintainers
Errors Occurring in Software Solutions
Syntax Errors
Logic Errors
Runtime Errors
Sources
Operating System
Basic Input Output System (BIOS)
Hardware Drivers
Application Software
Definitions
Bug
Crash
Techniques for Detecting Errors in Code
Stubs
Flags
Debugging Output Statements
Peer Checking
Desk Checking
Structured Walk-through
Use of Expected Output
Software Tools for Detecting Errors in Code
Breakpoints
Resetting Variable Contents
Program Traces
Single Line Stepping
Watch Expressions
Documentation of Software Solution
User Documentation
Installation Guide
User Manual
Reference Manual
Tutorials
Online Help
Technical Documentation
Log Books
Source Code Documentation
Forms
Comments
Intrinsic Documentation
Other Forms of Technical Documentation
Hardware Environment to Enable Implementation of the Software Solution
Minimum Hardware Configuration
Processor Type and Speed
RAM size and type
Secondary storage size and access speed
Input Devices
Network Hardware
Possible Additional Hardware
Appropriate Drivers or Extensions
Emerging Technologies
Quantum Computers
Human-computer Interaction
Game Console Devices
Wii Remote
Xbox Kinect
Handheld Communication Devices
iphone
Other smartphones
Biometric devices
Fingerprint
Iris
Face
Touch Sensing Devices
Touch Screens
Multi-touch Surfaces
Movement Sensors
Touchpads
Scanning Devices
QR Codes
EFTPOS Terminals
Mind Control Devices
Internet Access Initiatives
Devices w/ built in World Wide Web Connectivity
TV
Mobile Phones
Cameras
Social Networking Software
Location Based Applications
Wireless Connectivity
NBN