Professional Documents
Culture Documents
Development Principles
Joseph Kibombo Balikuddembe
jkbaliks@gmail.com,
jbalikud@cis.mak.ac.ug
Indicative content
• Introduction
– Why is Systematic Software Development necessary?
• Phases of System Development Lifecycle
• System development approaches
• System development methodologies or models
• Software Systems Engineering Process Frameworks
• Agile Methods and Techniques
• Software Design & construction
• System Integration
• Quality Management
• Technical reviews
• Other verification and validation approaches and methods
• Project Management Frameworks and activities
© JK Balikuddembe - Software
04/14/2021 2
Development Principles
System Development
Life Cycle (SDLC)
© JK Balikuddembe - Software
04/14/2021 4
Development Principles
SDLC - Prior Problems
• Failure to meet:
– Budgets
– Schedules
– Expectations
© JK Balikuddembe - Software
04/14/2021 5
Development Principles
SDLC - Characteristics
• “Problem” or “Opportunity”
• Many names; Widely applicable
• “Analysis” vs. “Synthesis”
• Variance across stages
• Disciplined approach
• Systems approach
• Iterative (not sequential)
• Cyclical
© JK Balikuddembe - Software
04/14/2021 6
Development Principles
SDLC - Advantages
• Focus on tradeoffs
• Focus on goals
• Controls: milestones, checklist,
accountability
• Tools, models, CASE
• Hierarchical decomposition
• Designed for user & manager involvement
© JK Balikuddembe - Software
04/14/2021 7
Development Principles
SDLC - Reasons for Failure
• Scope too broad or too narrow
• Lack of needed skills
• Incomplete specifications
• No control/no framework
• Lack of management/user involvement
• Too time-consuming
© JK Balikuddembe - Software
04/14/2021 8
Development Principles
Six Phases of the System
Development Life Cycle
• Preliminary Investigation
– Assesses feasibility and practicality of system
• System Analysis
– Study old system and identify new
requirements
– Defines system from user's view
• System Design
– Design new/alternative system
– Defines system from technical view
© JK Balikuddembe - Software
04/14/2021 9
Development Principles
Six Phases of the System
Development Life Cycle
• System Development
– New hardware and software is acquired,
developed, and tested
• System Implementation
– System installation and training
• System Operation & Maintenance
– Daily operation
– Periodic evaluation and updating
© JK Balikuddembe - Software
04/14/2021 10
Development Principles
SDLC Phases
Preliminary
Investigation
System
System Operation Analysis
& Maintenance
System System
Implementation
n Design
System
Development
© JK Balikuddembe - Software
04/14/2021 11
Development Principles
Phase 1:
Preliminary Investigation
© JK Balikuddembe - Software
04/14/2021 12
Development Principles
Phase 2:
System Analysis
© JK Balikuddembe - Software
04/14/2021 13
Development Principles
Phase 2: System Analysis
Tools Used
© JK Balikuddembe - Software
04/14/2021 20
Development Principles
Phase 5: System Implementation
Types of Conversion
• Direct/plunge/crash approach – entire new system
completely replaces entire old system, in one step
• Parallel approach - both systems are operated side by side
until the new system proves itself
• Pilot approach - launched new system for only one group
within the business -- once new system is operating
smoothly, implementation goes company-wide
• Phased/incremental approach - individual parts of new
system are gradually phased-in over time, using either
crash or parallel for each piece.
© JK Balikuddembe - Software
04/14/2021 21
Development Principles
Phase 5: System Implementation
• User Training
– Ease into system, make them comfortable, and
gain their support
– Most commonly overlooked
– Can be commenced before equipment delivery
– Outside trainers sometimes used
© JK Balikuddembe - Software
04/14/2021 22
Development Principles
Phase 6: Operations & Maintenance
• Types of changes:
– Physical repair of the system
– Correction of new bugs found (corrective)
– System adjustments to environmental changes
– Adjustments for users’ changing needs (adaptive)
– Changes to user better techniques when they
become available (perfective)
© JK Balikuddembe - Software
04/14/2021 23
Development Principles
Phase 6: Operations & Maintenance
• Evaluation Methods
– Systems audit - performance compared to
original specifications
– Periodic evaluation - “checkups” from time to
time, modifications if necessary
© JK Balikuddembe - Software
04/14/2021 24
Development Principles
Deliverables of the SDLC
Approved Feasibility Abort Project
Preliminary
Investigation Study Goto next phase
Problem Goto Previous phase
System
Analysis Specifications
System
Design Design Specifications
© JK Balikuddembe - Software
04/14/2021 26
Development Principles
What is the System Development Cycle?
© JK Balikuddembe - Software
04/14/2021 27
Development Principles
Common Roles
• Subject Matter Experts (SME)
– The Subject Matter Expert is the person or persons from which requirements are
captured.
– These are the people who know what the software needs to do and how the process
works.
– The SME role is somewhat different from the other roles because it is constantly
changing as new clients (internal or external) are brought in to help design a solution.
– SMEs are rarely from IT -- except when the solution is being designed to support IT.
SMEs are most frequently the person who will receive the benefit of the system.
• Functional Analysts (FA)
– Functional Analysts have the unenviable task of eliciting clear, concise, non-conflicting
requirements from the Subject Matter Experts who may or may not understand how
technology can be used to transform the business processes in a positive way.
© JK Balikuddembe - Software
04/14/2021 28
Development Principles
Common Roles
• Solutions Architect (SA)
– The technical architect is responsible for transforming the requirements
created by the Functional Analysts into a set of architecture and design
documents that can be used by the rest of the team to actually create the
solution.
– The Solutions Architect is typically responsible for matching technologies to
the problem being solved.
• Development Lead (DL)
– The Development Lead's role is focused on providing more detail to the
Solution Architect's architecture. This would include detailed program
specifications creation.
– The Development Lead is also the first line of support for the developers who
need help understanding a concept or working through a particularly thorny
issue.
© JK Balikuddembe - Software
04/14/2021 29
Development Principles
Common Roles
• Developer (Dev)
– The heart and soul of the process, the developer actually writes the
code that the Development Leads provided specifications for.
• Quality Assurance (QA)
– The Quality Assurance role is an often-thankless position that is
designed to find bugs before they find their way to the end
customers.
– Using a variety of techniques ranging from keying in data and
playing with the system to formalized, automated testing scripts,
• the Quality Assurance team is responsible for ensuring the quality of the
solution and it's fit to the requirements gathered by the Functional Analyst.
Sometimes the QA team is known by their less flattering name of testers.
© JK Balikuddembe - Software
04/14/2021 30
Development Principles
Common Roles
• Deployment (Deploy)
– The Deployment role is the one that packages up all of the
compiled code and configuration files and deploys it through
the appropriate environments or on the appropriate systems.
– The Deployment role is focused on getting the solution used.
– To that end, the role may include
• automated software installation procedures or may be as simple as
copying the files to the appropriate place and running them. Training
The Training role is responsible for documentation for the system as
well as any instructor or computer-based training solutions that are
designed to help the users better understand how the system works
and what they can do with it.
© JK Balikuddembe - Software
04/14/2021 31
Development Principles
Common Roles
• Deployment (Deploy)
– The Deployment role is the one that packages up all of
the compiled code and configuration files and deploys it
through the appropriate environments or on the
appropriate systems.
– The Deployment role is focused on getting the solution
used.
– To that end, the role may include
• automated software installation procedures or may be as
simple as copying the files to the appropriate place and
running them.
© JK Balikuddembe - Software
04/14/2021 32
Development Principles
Common Roles
• Training
– The Training role is responsible for documentation
for the system as well as
– any instructor or computer-based training
solutions that are designed to help the users
better understand how the system works and
what they can do with it.
© JK Balikuddembe - Software
04/14/2021 33
Development Principles
Common Roles
• Project Manager (PM)
– The Project Manager is responsible for ensuring consistent
reporting, risk mitigation, timeline, and cost control.
– The project manager role is a problem-solver role.
– They try to resolve problems while they are small so that they can
be handled more quickly and with less cost. Development Manager
(DM) The Development Manager is responsible for managing
multiple priorities of conflicting projects. The Development
Manager role is also an escalation for issues from the team, which
it is unable to resolve internally. Of course, each organization has its
own take on these roles; however, these are the roles you'll see
most often in an organization doing development.
© JK Balikuddembe - Software
04/14/2021 34
Development Principles
Common Roles
• Development Manager (DM)
– The Development Manager is responsible for
managing multiple priorities of conflicting projects.
– The Development Manager role is also an
escalation for issues from the team, which it is
unable to resolve internally.
– Of course, each organization has its own take on
these roles; however, these are the roles you'll see
most often in an organization doing development.
© JK Balikuddembe - Software
04/14/2021 35
Development Principles
© JK Balikuddembe - Software
04/14/2021 36
Development Principles
What is Feasibility
Operational
feasibility
Measure of
how suitable Four feasibility
system tests:
development Schedule
feasibility
will be to the
company
Economic
feasibility Technical
(also called feasibility
cost/benefit
feasibility)
© JK Balikuddembe - Software
04/14/2021 37
Development Principles
What is the System Development Cycle?
What is documentation?
© JK Balikuddembe - Software
04/14/2021 38
Development Principles
Feasibility
Analysis
Feasibility
• Measure of how beneficial or practical the
development of an information system
will be to an organization.
• Feasibility Analysis
© JK Balikuddembe - Software
04/14/2021 40
Development Principles
Tests of Feasibility
• Operational Feasibility
• Technical Feasibility
• Schedule Feasibility
• Economic Feasibility
© JK Balikuddembe - Software
04/14/2021 41
Development Principles
Tests of Feasibility
• Operational Feasibility
• Technical Feasibility
© JK Balikuddembe - Software
04/14/2021 42
Development Principles
Tests of Feasibility
• Schedule Feasibility
• Economic Feasibility
© JK Balikuddembe - Software
04/14/2021 43
Development Principles
Operational Feasibility
• Questions to Ask
© JK Balikuddembe - Software
04/14/2021 44
Development Principles
Technical Feasibility
• Questions to Ask
© JK Balikuddembe - Software
04/14/2021 45
Development Principles
Economic Feasibility
• Cost-benefit analyses
Assumptions
Personnel/Infrastructure assumptions
Infrastructure assumptions
--Initial network and remote access upgrades covered in ZYX project
Programmatic assumptions
--Budget currently contains expenses only
--Revenues to be estimated upon completion of market survey
Personnel
Hardware
Software
Training Costs
Library Resources
Travel Costs
Administrative Costs
Administration
Postage, Fedex
Communications
Publication costs
Total Administrative Costs
© JK Balikuddembe - Software
04/14/2021 47
Development Principles
Benefit Analysis
•Benefit analyses
© JK Balikuddembe - Software
04/14/2021 48
Development Principles
Benefit Analysis
Tangible Benefits Intangible Benefits
• Fewer processing errors • Improved customer goodwill
• Increased throughput • Improved employee morale
• Decreased response time • Better service to community
• Elimination of job steps • Better decision-making
• Increased sales
• Reduced credit losses
• Reduced expenses
© JK Balikuddembe - Software
04/14/2021 49
Development Principles
Economic Feasibility
• Payback analysis
© JK Balikuddembe - Software
04/14/2021 50
Development Principles
Feasibility Analysis
• Compare candidate systems on basis of
several characteristics
© JK Balikuddembe - Software
04/14/2021 51
Development Principles
Candidate Systems Matrix
Candidate Systems Matrix 10.13.01
© JK Balikuddembe - Software
04/14/2021 52
Development Principles
Feasibility Analysis Matrix
Feasibility Analysis 10.13.01
© JK Balikuddembe - Software
04/14/2021 54
Development Principles