You are on page 1of 54

BSE 1201: Software

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

• TOO LITTLE…. TOO LATE

© 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

• Determine if a new system is needed


• Three primary tasks:
– Define the problem
• By observation and interview, determine what
information is needed by whom, when, where and why
– Suggest alternative solutions
– Prepare a short report

© JK Balikuddembe - Software
04/14/2021 12
Development Principles
Phase 2:
System Analysis

• In depth study of the existing system to determine


what the new system should do.
– Expand on data gathered in Phase 1
• In addition to observation and interviews, examine:
– Formal lines of authority (org chart)
– Standard operating procedures
– How information flows
– Reasons for any inefficiencies

© JK Balikuddembe - Software
04/14/2021 13
Development Principles
Phase 2: System Analysis
Tools Used

• Checklists - list of questions


• Top-down analysis - start with top level components,
break down into smaller parts through each
successive level
• Grid charts - to show relationship between inputs
and outputs
• System flowcharts - charts flow of input data,
processing, and output which show system
elements and interactions
© JK Balikuddembe - Software
04/14/2021 14
Development Principles
Phase 2: System Analysis
Documentation Produced

• Complete description of current system and its


problems
• Requirements for for new system including:
– Subject
– Scope
– Objectives
– Benefits
• Possible development schedule
© JK Balikuddembe - Software
04/14/2021 15
Development Principles
Phase 3:
System Design
• Uses specifications from the systems analysis to
design alternative systems
• Evaluate alternatives based upon:
– Economic feasibility - Do benefits justify costs?
– Technical feasibility - Is reliable technology and
training available?
– Operational feasibility - Will the managers and users
support it?
© JK Balikuddembe - Software
04/14/2021 16
Development Principles
Phase 3: System Design
Tools Used
• Computer-Aided Software Engineering (CASE) tools
are software-based products designed to help
automate the production of information systems.
• Examples:
– Diagramming Tools
– Data Repositories
– Prototyping Tools
– Test Data Generators
– Documentation Tools
– Project Management Tools
© JK Balikuddembe - Software
04/14/2021 17
Development Principles
Phase 3: System Design
Documentation Produced

• System Design Report


– Describe Alternatives including:
• Inputs/Outputs
• Processing
• Storage and Backup
– Recommend Top Alternative based upon:
• System Fit into the Organization
• Flexibility for the future
• Costs vs. benefits
© JK Balikuddembe - Software
04/14/2021 18
Development Principles
Phase 4:
System Development

• Build the system to the design specifications


– Develop the software
• Purchase off-the-shelf software OR
• Write custom software
– Acquire the hardware
– Test the new system
• Module (unit) test - tests each part of system
• Integration testing - tests system as one unit
– Create manuals for users and operators
© JK Balikuddembe - Software
04/14/2021 19
Development Principles
Phase 5:
System Implementation

• Convert from old system to new system


• Train users
• Compile final documentation
• Evaluate the new system

© 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

System Coded and


Development Tested System
Begin building System System converted
new system Implementation Users trained
System
Maintenance
Operational System
© JK Balikuddembe - SoftwareDocumentation completed
04/14/2021 25
Development Principles
Managing Behavioral Factors
• Balance goals of stakeholders
– project manager
– customer
– end-user (there’s a difference)
– sponsor
• Sustain commitment
– project
– psychological (personal responsibility, biases)
– social (rivalry, norms for consistency)
– organizational (political support, culture)

© JK Balikuddembe - Software
04/14/2021 26
Development Principles
What is the System Development Cycle?

What is the project team?

Formed to work on project from beginning to end

Consists of users, systems analyst, and other IT professionals


Project leader—one member of the team who
manages and controls project budget and schedule

© 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?

Collection and summarization


of data and information

Includes reports, diagrams,


programs, and other deliverables

Project notebook contains all


documentation for single project

© 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

b Process by which feasibility is measured

b Continuing process of feasibility assessment

© 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

b How well will the solution work in the


organization?

• Technical Feasibility

b How practical is the technical solution?


b How available are technical resources and
expertise?

© JK Balikuddembe - Software
04/14/2021 42
Development Principles
Tests of Feasibility
• Schedule Feasibility

b How reasonable is the project timetable?

• Economic Feasibility

b How cost-effective is the project or solution?


b Cost-benefit analysis

© JK Balikuddembe - Software
04/14/2021 43
Development Principles
Operational Feasibility
• Questions to Ask

b Is the problem worth solving?

b Will the solution to the problem work?

b How do end users and management feel


about the solution?

b Has a usability analysis been conducted?

© JK Balikuddembe - Software
04/14/2021 44
Development Principles
Technical Feasibility
• Questions to Ask

b Is the proposed solution practical?

b Do we possess the necessary technology?

b Do we possess the necessary technical


expertise?

b Is the schedule reasonable?

© JK Balikuddembe - Software
04/14/2021 45
Development Principles
Economic Feasibility
• Cost-benefit analyses

b How much will the system cost?


h Development costs
h Operation costs
h Maintenance and support costs

b Do we possess the necessary technology?

b Do we possess the necessary technical


expertise?

b Is the schedule reasonable?


© JK Balikuddembe - Software
04/14/2021 46
Development Principles
Cost Analysis
Project Budget Template
Author's Name Organization Name, Date

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

Worksheet and expense assumptions


--Average manager salary (2002$$) $75,000
--Annual expense increase 3%
--Benefits and indirect costs changes per year 0%
--Benefits (as a percentage of wages) 32%

Expenses Year 1 Year 2 Year 3 Year 4 Year 5

Personnel

Benefits (at 32%)

Hardware

Software

Computer Usage Costs

Training Costs

Library Resources

Program Maintenance and Upgrade Costs

Travel Costs

Administrative Costs
Administration
Postage, Fedex
Communications
Publication costs
Total Administrative Costs

Total Direct Cost


Indirect Costs (at 54.5%)
Yearly Project Costs

© JK Balikuddembe - Software
04/14/2021 47
Development Principles
Benefit Analysis
•Benefit analyses

b Tangible benefits can be easily quantified.

b Measured in terms of monthly or annual


savings, or of profit to organization

b Intangible benefits more difficult to quantify.

© 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

b How long will it take to recoup the costs of


this project?

hReturn on investment (ROI) analysis

b Net present value analysis

© JK Balikuddembe - Software
04/14/2021 50
Development Principles
Feasibility Analysis
• Compare candidate systems on basis of
several characteristics

b Better analysts always consider multiple


solutions

© JK Balikuddembe - Software
04/14/2021 51
Development Principles
Candidate Systems Matrix
Candidate Systems Matrix 10.13.01

Characteristics Candidate 1 Candidate 2 Candidate 3

Portion of System Computerized


Brief description of portion of COTS package
system that would be computerized Platinum Plus
in this candidate. from Entertainment
Solutions, Inc.
Benefits
Brief description of business benefits Solution can be
that would be realized for this implemented
candidate quickly.

Servers and Workstations


Description of the servers and PIV, MS Windows
workstations needed to support this 2000 class servers
candidate. and workstations

Software Tools Needed


Software tools needed to design and MS Visual C++
build the candidate solution (e.g., MS Access for
DBMS, operating systems, customization
languages) of package for
report writing.
Application Software
Description of software to be built, Package solution
purchased, accessed or some
combination of the above.

Method of Data Processing


On-line, batch, deferred batch, real-time Client-server

Output Devices and Implications


Output devices that would be used (e.g., HP4MV dept
network, preprinted forms, etc.) as well laser printers
as output considerations (timing constraints)

Input Devices and Implications


Description of input methods to be used keyboard & mouse
(e.g., keyboard, mouse, etc.), special
input requirements (new or revised forms),
input considerations (timing of actual inputs)

Storage Devices and Implications


Description of what data would be stored, MS SQL DBMS
what data would be accessed from existing with 100G arrayed
stores, what storage media would be used, capability
how much storage capacity needed, how
that data would be organized.

© JK Balikuddembe - Software
04/14/2021 52
Development Principles
Feasibility Analysis Matrix
Feasibility Analysis 10.13.01

Feasibility Criteria Weight Candidate 1 Candidate 2 Candidate 3

Operational Feasibility 30%


Functionality: To what degree does the Only supports Fully supports Same as
candidate solution benefit the organization? Members Services required Candidate
Political: How well will the solution be requirements and functionality #2
received by users? Management? current business
processes would
have to be modified
Score: 60 Score: 100 Score: 100
Technical Feasibility 30%
Technology: Assessment of maturity, Current release of Current technical
availability, ability to acquire, and Platinum Plus is staff only has
desirability of computer technology needed 1.0; only on market Powerbuilder
to support the candidate. 6 weeks experience.
Expertise: Assessment of the technical Staff thinks Access
expertise needed to develop, operate, app is simple.
and maintain the candidate system Score: 50 Score: 95 Score: 60

Economic Feasibility 30%


Cost to Develop $350,000 $418,040 $400,000
Payback period (discounted) 4.5 years 3.5 years 3.3 years
Net Present Value $210,000 $306,748 $325,500
Detailed Calculations See attachment A See Attachment A See Attachment A

Score: 60 Score: 85 Score: 90

Schedule Feasibility 10%


Assessment of how long the solution will Less than 3 months 9-12 months 9 months
take to design and implement.
Score: 95 Score: 80 Score: 85
© JK Balikuddembe - Software
04/14/2021Ranking 60.5 Principles 92 83.5 53
Development
Sample questions
• Briefly describe what a SDLC entails
• What are the key roles on the SDLC?
• Is it important to develop software based on the SDLC of
software can be developed anyhow?
• Describe the two approaches to software development?
• What is the difference between the Object Oriented and
the Structured system development Information
Engineering approach?
• Which approach would you recommend for the
development of a student management system and why?

© JK Balikuddembe - Software
04/14/2021 54
Development Principles

You might also like