Section 0: Module Objectives or Competencies
Course Objective or Competency | Module Objectives or Competency |
---|---|
The student will be able to justify the need for and relevance of Systems Analysis and Design | The student will be able to describe the role of the System Analyst and the skills needed. |
The student will be able to explain the meaning of the term "Software System". | |
The student will be able to list some of the motivations for Software Systems Project requests. | |
The student will be able to explain the fundamental concepts of systems analysis and design. | The student will be able to explain what Analysis and Design involves. |
The student will be able to explain what System Development Methodologies are and list some of the benefits. | |
The students will be able to explain the components that make up the General Process Model. | |
The students will be able to list and explain, in general detail, the phases and deliverables of the Systems Development Life Cycle. |
Section 1: What is a Software System?
An software system is a set of interacting components (people, procedures, technologies) that
- together collect, process, store, and distribute information
- support control, decision-making, and management in organizations.
The focus is on the sociotechnical arrangement of people, data, processes, information presentation, and information technology that interact to support and improve day-to-day operations in a business as well as support the problem-solving and decision making needs of management and users.
Key components of Software Systems
- Organizations (more)
- Humans
- Technologies
The difference between applications and system software
Evolution of Software Systems

Section 2: Motivations for Software Development Projects
Motivations for developing a new software system or extending an existing system fall into three main areas.
- Problems – undesirable situations that prevent the organization from fully achieving its purpose, goals, and/or objectives.
- Opportunities – chances to improve the organization even in the absence of specific problems.
- Directives – new requirements that are imposed by management, government, or some external influence.
Section 3: Analysis and Design
What is Analysis and Design?
- Systems analysis and design is the process of analyzing, designing, implementing, and maintaining software systems.
Why is Analysis and Design needed?
- Average completion time for software development projects: 1.5 – 5 years
- 68% of projects overrun schedules
- 65% exceed budgets
- 75% face major redesign after initial implementation
- As noted earlier, the CISQ's report, The Cost of Poor Software Quality in the US: A 2020 Report determined that in 2020 the total Cost of Poor Software Quality (CPSQ) in the US is $2.08 trillion (T).
- They also note that the 2020 US figure for the software technical debt residing in severe defects that need to be corrected would be $1.31 T (minus interest).
The solution lies in better and more professional approaches to development.
Section 4: System Development Methodology
A System Development Methodology is a standard process followed in an organization to conduct all the steps necessary to analyze, design, implement, and maintain software systems. It generally involves a collection of procedures, techniques, best practices, tools (automated and manual), and documentation aids that facilitate system development.
A methodology consists of phases, themselves consisting of sub-phases, that
- help developers plan, manage, control, and evaluate IS projects,
- guide developers in their choice of techniques at each stage of the projects.
A methodology generally follows a standard lifecycle.
Benefits of IS Development Methodologies
- Subdivision of complex process into small tasks.
- Forces developers to understand system needs prior to attempting development.
- Facilitation of project management and control.
- Providing a framework for applying techniques.
- Skill specialization and division of labor.
- Standardization, improving productivity and quality.
Note that there is a difference between development approaches or methodologies and development lifecycles.
Approaches to Analysis and Design
There are three primary software development approaches, the traditional structured technique, the object-oriented technique, and the Agile methodology.
Traditional Structured Technique
- The traditional approach includes many variations based on techniques used to develop software systems with structured and modular programming.
- The traditional approach is also known as Structured System Development.
- The traditional approach is process-centered and focuses on the processes that transform data into useful information.
- It is a step by step top-down approach that moves logically from one phase to the other.
- The traditional approach does not imply use of or dependence on the waterfall approach.
Object-oriented Technique
- The object-oriented approach focuses on data.
- The object-oriented approach follows a bottom-up approach
- The object-oriented approach divides systems into small entities called classes.
Agile Methodology
- Agile software development methodologies are centered around the idea of iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams.
- The ultimate value in Agile development is that it enables teams to deliver value faster, with greater quality and predictability, and greater aptitude to respond to change.
An analysis of each of these approaches reveals prominent differences, but also several shared workflows.
- Planning
- Requirements Determination
- Analysis
- Design
- Development
- Testing
- Deployment (Software Release)
- Production Support / Maintenance
Bottom Line
- A methodical approach to software development results in fewer defects and, therefore, ultimately provides shorter delivery times and better value.
Section 5: The General Process Model
The General Process Model serves as the basis for the Systems Development Life Cycle (SDLC).
There are several process models, and many companies adopt their own, but all have very similar patterns. The general, basic model is shown below:

The General Process Model
Requirements
- Business requirements are gathered in this phase.
- Who is going to use the system?
- How will they use the system?
- What data should be input into the system?
- What information should be output by the system?
- Requirements gathering results in a description of the functionality that the system should provide, which describes functions the system should perform, business logic that processes data, what data is stored and used by the system, and how the user interface should work.
Design
- The software system design is produced from the results of the requirements phase.
- This is where the details on how the system will work are produced.
- Architecture (including hardware and software), communication, and software design are all part of the deliverables of a design phase.
Implementation
- This is the longest phase of the software development life cycle.
- During implementation, code is produced from the deliverables of the design phase.
- For a developer, this is the main focus of the life cycle because this is where the code is produced.
- Implementation may overlap both the design and testing phases.
- Iterative process
- Many tools (CASE tools) exist to actually automate the production of code using information gathered and produced during the design phase.
Testing
- During testing, the implementation is tested against the
requirements to make sure that the product is actually solving
the needs addressed and gathered during the requirements phase.
- Verification: Are we building the product right?
- Validation: Are we building the right product? (Boehm)
- Unit tests, system tests, and acceptance tests are done during this phase.
- Unit tests act on a specific component of the system, while system tests act on the system as a whole.
Design, implementation, and testing should be an ongoing iterative process.
Section 6: Systems Development Life Cycle
The SDLC is a traditional methodology used to develop, maintain, and replace software systems. There are a variety of different system development lifecycles. Often organizations mix elements of different lifecycles.
Phases in SDLC:
- Planning (feasibility study, requirements gathering)
- Analysis (data modeling phase)
- Design
- Implementation (coding, testing)
- Maintenance
Note that some models include additional phases or use different names for the phases.
Standard and Evolutionary Views of SDLC

The Systems Development Life Cycle

Evolutionary model
Note that the phases in both approaches should be iterative.
Planning
- an organization’s total software system needs are identified, analyzed, prioritized, and arranged
Analysis
- system requirements are studied and structured
Design
- a description of the recommended solution is converted into
logical and then physical system specifications
- Logical design
- all functional features of the system chosen for development in analysis are described independently of any computer platform
- Physical design
- the logical specifications of the system from logical design are transformed into the technology-specific details from which all programming and system construction can be accomplished
- Logical design
Implementation
- the software system is coded, tested, installed and supported in the organization
Maintenance
- an software system is systematically repaired and improved
Products of SDLC Phases

Products of SDLC Phases
As development progresses through the various phases of the SDLC, an analyst commonly discovers a need to review or modify the work done in prior phases.
Read about Why Scope Creep is Your Fault (and What You Can Do to Prevent It).
Section 7: Related Areas
- Software engineering
- Software project management
- Software quality assurance
- Software configuration management
- Reusability management
- Risk management