Chapter 11 - Managing Systems Implementation

Updated 4 Oct 2026

Learning Objectives

  • Explain quality assurance and three techniques to improve the finished product
  • Outline application development
  • Apply structured development
  • Apply object-oriented development
  • Apply agile development
  • Explain coding
  • Explain unit, integration, and system testing
  • Differentiate between program, system, operations, and user documentation
  • Explain the role of online documentation
  • Describe the five tasks involved in system installation

1. Quality Assurance (QA)

  • Companies in a competitive environment are intensely concerned with product/service quality
  • Objective: avoid problems, or identify them as early as possible
  • Poor quality can result from:
    • Inaccurate requirements
    • Design problems and coding errors
    • Faulty documentation and ineffective testing

เหมือน QC ในโรงงาน — ถ้าพบ bug ตั้งแต่ต้น ค่าซ่อมถูกกว่าพบตอนส่งมอบ

1.1 Software Engineering

  • Application of engineering principles to the creation of complex, long-lived applications
  • Software Engineering Institute (SEI) at Carnegie Mellon University
    • Provides quality standards and suggested procedures

1.2 Capability Maturity Model (CMM)

  • Aims to improve software quality, reduce development time, and cut costs
  • Has 5 maturity levels:
LevelNameDescription
1InitialEssentially uncontrolled development
2RepeatableProduct management procedures defined and used
3DefinedProcess management procedures defined and used
4ManagedQuality management strategies defined and used
5OptimizingProcess improvement strategies defined and used
![[Pasted image 20260507165206.pngcenter500]]

CMM เหมือน belt ใน Judo — ระดับขาว (Initial) ถึงระดับดำ (Optimizing) ยิ่งระดับสูง กระบวนการยิ่งมีระเบียบ

1.3 Systems Engineering

  • Builds upon software engineering
  • Includes other parts of the overall system: hardware, networks, interfaces

1.4 ISO Standards

  • International Organization for Standardization (ISO): establishes internationally recognized quality standards
  • ISO 9000-3:2004: provides a QA framework for developing and maintaining software
  • ISO standards can be:
    • Specified when purchasing software
    • Used to guide in-house software development efforts

2. Application Development

  • Definition: process of constructing the programs and code modules that serve as the building blocks of an information system
  • Objective: translate the design into program/code modules that function properly
  • Development options: Structured analysis, Object-Oriented (O-O) analysis, Agile methods

เหมือนการก่อสร้างบ้าน — design เสร็จแล้วต้องแปลงแบบเป็นอิฐ คาน หลังคา (modules) ที่ทำงานร่วมกันได้จริง

2.1 Reviewing the Systems Design

Tasks involved in creating systems design:

  • Break down complex business operations using Functional Decomposition Diagrams (FDDs)
  • Create Data Flow Diagrams (DFDs)
  • Develop an object-oriented model of the new system
  • Select a development strategy
  • Design the user interface
  • Construct Entity-Relationship Diagrams (ERDs)
  • Consider an overall system architecture

2.2 Application Development Tasks (Traditional)

  • Plan: Overall Planning
  • Develop: Design → Code → Test → Document (individual modules)
  • Test: Integration Testing → System Testing
  • Document: Final Documentation

2.3 Agile Methods

#FinalExam ถาม Definition ของ Agile (ต้องมีคำว่า iterative)

  • Objective: create a system through an iterative process of planning, designing, coding, and testing

Flow: Concept → Preparation → Release Planning → Iteration → Acceptance Tests → Release

  • Loops back for new iterations and new user stories

2.4 Systems Development Tools

  • Entity-Relationship Diagrams (ERDs): show interaction among system entities/objects
  • Flowcharts: represent logical rules and interactions graphically
  • Pseudocode: describes program actions implementable in any language
  • Decision tables and decision trees: model business logic for an information system

Example — Sales Promotion Policy (Pseudocode)

IF customer is a preferred customer, and
    IF customer orders more than $1,000 then
        Apply a 5% discount, and
        IF customer uses our charge card, then
            Apply an additional 5% discount
    ELSE
        Award a $25 bonus coupon
ELSE
    Award a $5 bonus coupon

Example — Decision Tree (same policy)

Preferred customer?
├── Y → Ordered more than $1,000?
│        ├── Y → Used our charge card?
│        │        ├── Y → 5% discount + additional 5% discount
│        │        └── N → 5% discount only
│        └── N → $25 bonus coupon
└── N → $5 bonus coupon


3. Structured Development

เหมือนการ decompose function ใหญ่ใน Swift ออกเป็น smaller functions — แต่ละ module ทำหน้าที่เดียว

3.1 Partitioning

  • System is broken down into subsystems and modules

3.2 Structure Charts

  • Display program modules and relationships
  • A module is represented by a rectangle
  • Types of modules:
    • Control module: higher-level module (the "boss")
    • Subordinate module: lower-level modules (the "workers")
    • Library module: reusable code (double-sided box)

3.3 Structure Chart Notation

SymbolNameMeaning
Arrow + empty circle (○)Data coupleData passed from one module to another
Arrow + filled circle (●)Control coupleStatus flag passed between modules
Line + diamond (◇)ConditionControl module decides which subordinate to invoke
Curved arrow (↺)LoopOne or more modules are repeated

3.4 Cohesion and Coupling

  • Cohesion: measures a module's scope and processing characteristics
    • A module that performs a single function has high cohesion ✅
    • High cohesion = good design
  • Coupling: describes the degree of interdependence among modules
    • Loosely coupled: modules are independent ✅ (preferred)
    • Tightly coupled: one module is linked to internal logic of another ❌ (avoid)

Cohesion เหมือน Single Responsibility Principle ใน iOS — ViewController ที่ทำแค่ display ไม่ยุ่งกับ networking ถือว่า highly cohesive
Coupling เหมือนการที่ View ต้อง import Model โดยตรง — ถ้า tightly coupled แก้ Model ทีนึง View พัง

3.5 Drawing a Structure Chart (3 Steps)

  1. Review DFDs
  2. Identify program modules and relationships
  3. Add couples, loops, and conditions
  • After drawing: ensure consistency with all previous documentation

4. Object-Oriented Development (O-O)

4.1 Characteristics

  • Individual object instances belong to classes with similar characteristics
  • Relationships described using class diagrams
    • Include class attributes and methods
  • Object-relationship diagrams provide an overview of object interaction


Example: Fitness Center O-O diagram

  • EMPLOYEE (superclass) → MANAGER, OFFICE STAFF, INSTRUCTOR (subclasses)
  • INSTRUCTOR teaches FITNESS-CLASS
  • STUDENT takes FITNESS-CLASS
  • REGISTRATION RECORD adds STUDENT, generates roster for FITNESS-CLASS

4.2 Implementation

  • Objective: translate object methods into program code modules
  • Determine what event or message will trigger each module
  • O-O Cohesion & Coupling:
    • Classes should be as loosely coupled as possible
    • An object's methods should be loosely coupled and highly cohesive

5. Agile Development

  • Highly iterative process
  • Development team is in constant communication with the primary user (customer)
  • Based on quick, nimble development that easily adapts to change
  • Focuses on: small teams, intense communication, rapid development iterations

5.1 Extreme Programming (XP)

  • Uses pair programming:
    • Two programmers work on the same task on the same computer
    • One programs while the other watches (and catches errors)
  • Test-Driven Development (TDD):
    • Focuses on end results from the beginning
    • Prevents programmers from straying from goals
  • User stories: short, simple requirements definitions written by the customer

Pair programming เหมือน navigator + driver ใน rally — คนขับ code คนนั่งข้างๆ คอย review real-time

5.2 Iterations and Releases

  • Teams develop release plans
  • User stories are implemented in a series of iteration cycles
    • An iteration planning meeting is held at the beginning of each cycle
    • Cycles continue until all user stories are implemented, tested, and accepted

6. Coding

  • Definition: turning program logic into specific instructions
  • Transform program logic into code statements
  • Common programming languages: Visual Basic, Python, Java, HTML/XML, JavaScript, Swift
  • Integrated Development Environment (IDE):
    • Makes it easier to program interactive software
    • Provides editing, compiling, debugging in one tool

Swift + Xcode = language + IDE — เหมือนกัน แค่ IDE ต่างกันตาม language


7. Testing

7.1 Pre-Testing Steps

  • Program is compiled using a CASE tool or language compiler → detects syntax errors
  • Desk checking: programmer manually traces through code → spots logic errors
  • Structured walkthrough / Code review: team reviews code together

7.2 Testing Levels

Unit Testing

  • Testing of an individual program or module
  • Aims to identify and eliminate:
    • Execution errors: program crashes or does not run
    • Logic errors: program runs but produces wrong output
  • Test data should contain both accurate AND erroneous data

Unit Testing เหมือน XCTest ใน Xcode — ทดสอบแต่ละ function แยกกัน

Integration Testing

  • Testing two or more programs that depend on each other
  • Ensures programs work together properly

System Testing

  • Final test of the entire system
  • Includes acceptance tests: key to user and management approval

8. Documentation

  • Describes an information system and helps users, managers, and IT staff interact with it
TypeDescription
Program documentationDescribes inputs, outputs, and processing logic for all program modules
System documentationDescribes the system's functions and how they are implemented
Operations documentationContains information needed for processing and distributing output
User documentationInstructions and information for end users who interact with the system
Online documentationProvides immediate help when users have questions or encounter problems

User documentation เหมือน README.md หรือ App Store "What's New" — เขียนให้คนไม่รู้ technical เข้าใจได้


9. Installation

9.1 Presenting Test Results to Management

After system testing is complete, present:

  • Description of test results
  • Status of all required documentation
  • Summary of input from users who participated
  • Detailed time schedules, cost estimates, and staffing requirements

9.2 Installation Tasks

  1. Prepare separate operational and test environments
  2. Perform system changeover
  3. Perform data conversion
  4. Carry out post-implementation tasks

9.3 Operational vs. Test Environments

EnvironmentUsersPurpose
Test environmentIT Staff onlyDevelop and maintain programs
Operational environmentEnd users onlyActual system operation
  • A separate test environment is necessary to maintain security, integrity, and protect the operational environment
  • Changes move from test → operational only when authorized

เหมือน staging server vs production server ใน DevOps — ห้าม push to production โดยไม่ผ่าน staging

9.4 System Changeover Methods

Definition: putting the new information system online and retiring the old system

Direct Cutover

  • Switch from old to new immediately when new system becomes operational
  • Least expensive changeover method
  • IT only maintains one system at a time
  • Risk: HIGH — no fallback if new system fails

Parallel Operation

  • Both old and new systems operate fully for a specified period
  • Advantage: lower risk — old system acts as backup
  • Disadvantage: not practical if old and new systems are incompatible
  • Cost: HIGH

Pilot Operation

  • Implements the complete new system at a selected location (pilot site)
  • Pilot site uses the new system first → reduces risk of widespread failure
  • Less expensive than parallel operation
  • Risk: MEDIUM

Phased Operation

  • Implements the new system in stages/modules
  • Combines direct cutover and parallel operation
  • Only part of the system is given to all users at a time
  • Risk of errors limited to the implemented module only
  • Less expensive than full parallel operation
  • Risk: MEDIUM

Risk vs. Cost Summary

MethodRiskCost
Direct Cutover🔴 High🟢 Low
Pilot Operation🟡 Medium🟡 Medium
Phased Operation🟡 Medium🟡 Medium
Parallel Operation🟢 Low🔴 High

9.5 Data Conversion

  • Definition: process in which existing data is loaded onto a new system
  • Strategies:
    • Automate the conversion process if possible
    • Old systems may export data in ASCII or ODBC (Open Database Connectivity)
    • If no standard format → develop a custom extraction program
  • Security & Controls during conversion:
    • Maintain strict input controls
    • Ensure system control measures protect data from unauthorized access
    • Ensure error-free data is fed into the new system

9.6 Training

Training Plan

  • Identify who should receive training and what training is required
  • Observe the organization to determine how the system will support operations
  • Main groups for training:
    • Users
    • Managers
    • IT Staff

Training Methods

MethodDescription
Vendor trainingRequired if system includes purchased hardware/software
Webinars, podcasts, tutorialsWeb-based training options
Outside trainingViable alternative if vendor training is not practical
Interactive trainingEffective, self-paced, multimedia-based

Training Tips

  • Train people in groups, with separate programs for distinct groups
  • Select the most effective place to conduct training
  • Provide learning by hearing, seeing, and doing
  • Rely on previous trainees to help new ones
  • Effective training is interactive, self-paced, and multimedia-based

Online Training

  • Sophisticated training systems offer interactive sessions
  • Include a reference section in training materials
  • Conduct a full-scale test or simulation after training is complete

9.7 Post-Implementation Tasks

  • Prepare a post-implementation evaluation: assesses overall quality of the new system
  • Deliver a final report to management: marks the end of systems development work
    • Includes final system documentation
    • Describes any future system enhancements already identified
    • Details project costs

Summary

TopicKey Point
Quality AssuranceAvoid/identify problems early; CMM has 5 levels; ISO 9000-3 is the QA framework
Application DevelopmentTranslate design into working code modules using structured, OO, or agile methods
Structured DevelopmentUse structure charts; aim for high cohesion and loose coupling
OO DevelopmentUse class diagrams and object-relationship diagrams; loosely couple classes
Agile DevelopmentXP uses pair programming, TDD, and user stories; iterative cycles
CodingTranslate logic into code using IDE and appropriate language
TestingUnit → Integration → System testing; use both valid and invalid test data
DocumentationProgram, System, Operations, User, Online documentation
InstallationSeparate environments; choose changeover method; convert data; train users; post-implementation eval