3.3 (4)
3A Software Selection and Acquisition
not a phase in the standard SDLC.
if a decision is reached to acquire rather than develop software, it is the process that should occur after the requirements definition phase
Decide ability of the organization to do development project, the costs and risk of doing so, and the benefits of having total ownership and control over the new system
rather than becoming dependent on a vendor
decision is generally based on various factors such as , and
the COST differential between development and acquisition,
the TIME GAP between development and acquisition.
if decision is to purchase USER must be involved in the PACKAGE EVALUATION AND SELECTION PROCESS
Phase 4A—Configuration
consists of defining, tracking and controlling changes in an acquired system to meet the needs of the business.
involves the modification of configuration tables as well as some development
configuration is supported by the CHANGE MANAGEMENT POLICIES AND PROCESSES which define:
• Roles and responsibilities
• Classification and prioritization of all changes based on business risk
• Assessment of impact
• Authorization and approval of all changes by the business process owners and IT
• Tracking and status of changes
• Impact on data integrity
(e.g., all changes to data files being made under system and application control rather than by direct user intervention)
Phase 4B—Development
Responsibilities in this phase rest primarily with programmers and systems analysts who are building the system.
Key activities
• Coding and developing program and system-level documents 🗃
• Debugging and testing the programs developed ⚠
• Developing programs to convert data from the old system for use on the new system 🔣 ➡ 1⃣ 2⃣
• Creating USER PROCEDURES TO HANDLE TRANSITION to the new system 🕹
• Training selected users on the new system because their participation will be needed 📚 👨🎓
• Ensuring modifications are documented and applied accurately and completely to vendor-acquired software to ensure that future updated versions of the vendor’s code can be applied 🌘 🌗 🌖 🌕
• Identifying secure coding and configuration standards 💠
Programming Methods and Techniques
WHY? program coding standards should be applied. #
essential to writing, reading and understanding code, simply and clearly, without having to refer back to design specifications.
Elements
methods and techniques for internal
(source-code level) documentation
methods for data declaration
an approach to statement construction
techniques for input/output (I/O)
Advantages
an essential CONTROL because
they serve as a method of communicating among members of the program team, and between the team and users during system development.
MINIMIZE system development SETBACKS resulting from PERSONNEL TURNOVER
provide the MATERIAL NEEDED TO USE THE SYSTEM EFFECTIVELY,
required FOR EFFICIENT PROGRAM MAINTENANCE AND MODIFICATIONS
traditional structured programming techniques should be applied in developing quality and easily maintained software products.
easier to develop, understand and maintain because they are divided into subsystems, components, modules, programs, subroutines and units.
it is to maintain and
enhance a system
when each software item performs dedicated function (Cohesion) retains independence
from other comparable items (coupling)
easier to determine how to apply a change and reduce chances of unintended consequences
Online Programming Facilities (Integrated Development Environment)
facilitate effective use of structured programming methods and techniques, an online programming facility should be available as part of an integrated development environment (IDE).
allows programmers to code and compile programs interactively with a remote computer or server from a terminal or a client’s PC workstation.
programmers can enter, modify and delete programming codes as well as compile, store and list programs (source and object) on the development computer.
Advantages
lower the development costs
maintain rapid response
time
expand the programming resources and aids available (e.g., editing tools, programming languages, debugging aids)
potential weaknesses
• The proliferation of multiple versions of programs
• Reduced program and processing integrity through the increased potential for unauthorized access and updating
• The possibility that valid changes could be overwritten by other changes
Solution :- Access control software
Program Debugging
purpose of
debugging programs during system development is to ensure that all program abends (unplanned ending of a program due to programming errors) and program coding flaws are detected and corrected before the final program goes into production
Debugging tools categories
Logic path monitors
Memory dumps
Output analyzers
Report on the sequence of events performed by the
program, thus providing the programmer with clues on logic errors
Provide a picture of the internal memory’s content at
one point in time.
often produced at the point where the program fails or is aborted,
providing the programmer with clues on inconsistencies in data or parameter values
Help check results of program execution for accuracy.
availability of generic software
enhance the quality of programming activities and future maintenance capabilities,
This is achieved by comparing expected results with the actual results.