Paper 10
PROGRAMMING AND SYSTEMS ANALYSIS AND DESIGN
To equip the candidate with the knowledge, skills and attitudes that will enable him/her to analyse and design information systems and develop object-oriented programs using Java.
On completion, a candidate should be able to
- Analyse information systems problems and design solutions using Java
- Write programs using object-oriented software development methodology
- Test, debug and handle error in object-oriented programs
- Describe conventional methodologies in systems analysis and design
- Integrate and deploy information systems
Content
- 1
Information Systems Concept and Technology
- 1.1
Information systems overview and concepts
- 1.2
Systems theory
- 1.3
Systems thinking and applications
- 1.4
Components of an information system
- 1.5
Types of information systems
- 1.6
Overview of programming languages
- 1.7
Types of programming languages
- 1.8
Characteristics of a good information system
- 1.9
Personnel involved in Systems Analysis and Design
- 2
Systems Development Life Cycle (SDLC)
- 2.1
Definition of systems development life cycle
- 2.2
Phases of SDLC
- 2.3
Advantages and disadvantages of SDLC
- 2.4
Software development Methodologies
- 3
Requirements Elicitation
- 3.1
Stakeholder analysis
- 3.2
Need for requirements gathering
- 3.3
Strategies and process for requirements gathering
- 3.4
Requirements gathering tools and techniques
- 3.5
Gap analysis
- 3.6
Prioritisation of requirements
- 3.7
Systems specifications
- 4
Systems Analysis
- 4.1
Overview of systems analysis concepts
- 4.2
Information systems project initiation
- 4.3
Feasibility and risk analysis
- 4.4
Stages in system analysis
- 4.5
Techniques in system analysis (27)
- 4.6
Tools for systems analysis
- 4.7
System analysis report
- 4.8
Using software tool to assist in systems analysis
- 5
Systems Design
- 5.1
Overview of system design and concepts
- 5.2
System design approaches
- 5.3
Logical and physical design
- 5.4
Modelling techniques and applications
- 5.5
User interface design
- 5.6
Business logic design
- 5.7
Database design
- 5.8
Case tools
- 5.9
Designing test cases
- 5.10
Writing and documenting design specification
- 5.11
Using software tools to assist in systems design
- 6
Systems Implementation
- 6.1
Systems implementation and concepts
- 6.2
Assessing the platform for the system to be implemented
- 6.3
User training
- 6.4
Data conversion methods
- 6.5
System changeover
- 6.6
System Evaluation and Optimization
- 7
System Testing and Deployment
- 7.1
Software testing approaches
- 7.2
Black box and white box testing
- 7.3
Software testing strategies
- 7.4
Systems deployment and configuration
- 7.5
User Documentation and Training
- 8
System Maintenance
- 8.1
Overview of software maintenance
- 8.2
Software maintenance approaches
- 8.3
Legacy systems
- 8.4
Systems management and support
- 9
Other Software Development Methodologies
- 9.1
Waterfall
- 9.2
Prototype
- 9.3
Agile Software Development
- 9.4
Rapid Application development
- 9.5
Extreme Programming
- 9.6
Spiral
- 9.7
LEAN
- 9.8
SCRUM (28)
- 10
Overview of Programming Techniques and Paradigms
- 10.1
Introduction to programming and concepts
- 10.2
High level and low-level languages
- 10.3
Translators and program translation
- 10.4
Source Code and object code
- 10.5
Generation of Programming Languages
- 10.6
Programming approaches
- 10.7
Strengths of object-oriented programming over other paradigms
- 11
Introduction to Java Programming Language
- 11.1
Java language specification
- 11.2
Java JDK, IDE and API
- 11.3
Java program structure
- 11.4
Identifiers, data types, variables and constants
- 11.5
Statements and blocks
- 11.6
Expressions and operators
- 11.7
Control structures
- 11.8
Memory management
- 11.9
Arrays
- 11.10
Dictionaries
- 12
Object-Oriented Programming
- 12.1
Methods and messages
- 12.2
Abstract data types
- 12.3
Classes
- 12.4
Objects
- 12.5
Class relationships
- 12.6
Setters and getters
- 12.7
Constructors and destructors
- 12.8
Scope and access control
- 12.9
Encapsulation
- 12.10
Abstraction
- 12.11
Inheritance
- 12.12
Polymorphism
- 12.13
Interfaces
- 13
Functions / Methods
- 13.1
Function declaration
- 13.2
Function prototype and type checking
- 13.3
Arguments and parameters
- 13.4
Parameter passing
- 13.5
Inline functions
- 13.6
Function overloading
- 13.7
Recursion
- 13.8
Pure virtual functions
- 13.9
Reference and argument passing
- 13.10
Writing programs using functions (29)
- 14
File Input / Output
- 14.1
Streams and files
- 14.2
Input and output streams
- 14.3
File streams
- 14.4
Object streams
- 14.5
Object serialization
- 14.6
Readers and writers
- 14.7
Writing programs using Input / Output streams