4.2 System Development
4.2 SYSTEM DEVELOPMENT
Overview of system development processes.
Focused on understanding the stages involved from conception to deployment.
STAGES OF SYSTEM DEVELOPMENT
System development is organized into distinct phases.
Key stages include:
Problem Definition
Feasibility Study
Requirements Elicitation
System Analysis
System Design
Testing
System Implementation
System Maintenance
Retirement
INTRODUCTION
Computer-Based System:
Functions to collect, process, store, and output information.
Aims for efficient and accurate handling of data, vital for decision-making.
COMPUTER-BASED SYSTEM TYPES
Types of Systems:
Transactional Systems: Handle daily business transactions.
Real-Time Systems: Provide immediate processing and output.
Embedded Systems: Integrated into larger devices, offering specific functions.
SYSTEM LIFE CYCLE
Problem Definition: Identify and define the problem.
Feasibility Study: Assess the project's viability.
Requirements Elicitation: Gather detailed system requirements.
System Analysis: Analyze needs for the system.
System Design: Create the architecture of the system.
Testing: Validate the system functionalities.
System Implementation: Deploy the system in real environments.
System Maintenance: Continuously support and update the system.
Retirement: Phase out systems when obsolete.
PROBLEM DEFINITION
Importance: Establishes a clear and detailed definition of the problem.
Includes terms of reference, objectives, available resources, timelines, and potential limitations within the organization.
REASONS FOR DEVELOPING NEW SYSTEMS
Circumstances favoring new systems include:
Current systems are inadequate or outdated.
Technological advancements require updates.
Flexibility and cost issues with current systems.
Need for competitive advantages and enhanced customer service.
Economic pressures demanding innovations.
FEASIBILITY STUDY
Objective: Determine the necessity for a new system versus improving the existing one.
Results delivered in a Feasibility Report highlighting:
Goals of the new system.
Options with costs, pros, and cons.
Recommended options and anticipated impact.
Development and changeover plan.
CONSIDERATIONS FOR DEVELOPMENT
Technical, operational, timeliness, economic, legal, and social factors must be evaluated to justify the project.
REQUIREMENTS ELICITATION
A detailed requirements report must include:
Inputs, processing, outputs, and storage details.
Analysts must grasp the functionality of the current system, necessary documents, data flow, and existing user issues.
TECHNIQUES FOR REQUIREMENTS GATHERING
Interviews:
Gather in-depth insights through planned discussions (individual or group).
Questionnaires:
Efficient for collecting large quantities of data quickly, maintaining anonymity.
Inspection of Documents:
Review existing documents used for data input and output.
Observation:
Observing workflows to understand complexities, though behavior changes can occur.
OFF-THE-SHELF SOFTWARE CONSIDERATIONS
Assess if existing solutions can meet system needs or if bespoke development is necessary.
FORMULATION AND EVALUATION OF SOLUTIONS
Present and analyze multiple solutions for data handling, storage, and costs.
USE-CASE DIAGRAMS
Purpose: Illustrate the dynamic behavior of system functions, showing entities and their interactions with the system.
Enables communication of requirements in user-friendly terms.
Components:
Actors represent users; system boundary outlines limits; communication links establish interactions.
Relationships:
Include extend and include relationships, generalization links among use cases.
DATA FLOW DIAGRAMS (DFD)
Used for modeling how data moves through a system. Important components include:
Data processes, external entities, data stores, and data flows.
Levels of DFD provide varying detail, with Level 0 showing a high-level context and subsequent levels elaborating sub-processes.
SYSTEM ANALYSIS - DATA FLOW AND MODELLING
Focus on mapping data movement within business processes, utilizing DFDs to capture how data is manipulated, stored, and distributed.
SYSTEM DESIGN - DATA MODELLING
Involves breaking down the system using top-down or bottom-up approaches to manage complexity.
Modular design principles are emphasized to enhance parallel development and code reusability.
TESTING STRATEGIES
Integrated testing approach includes module, system, and acceptance testing, ensuring complete coverage of functional requirements.
Types of tests:
Black Box and White Box testing for functional validation versus code logic verification.
IMPLEMENTATION
Essential preparation steps prior to deployment include hardware/software installations and staff training.
Changeover Techniques: strategies such as direct, parallel, phased, or pilot deployment.
MAINTENANCE AND RETIREMENT
Importance of ongoing system reviews, adaptations (adaptive, corrective, perfective maintenance), and justifications for system retirement when costs become unfeasible.
PROJECT MANAGEMENT
Involves comprehensive management of scheduling, resource allocation, and progress tracking to ensure project goals are met effectively within allocated timelines and budgets.