0% found this document useful (0 votes)
24 views23 pages

System Development Methodologies Summarized Notes

Uploaded by

dmethu35
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views23 pages

System Development Methodologies Summarized Notes

Uploaded by

dmethu35
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

System Development Methodologies Summarized Notes

Lesson 1: Introduction

Systems

Systems

A system is a set of interconnected or interdependent components or parts that work together

to achieve a common goal.

System Design

System design is a phase in the software development process that involves creating a

detailed plan for building a system

System Development

Systems development is a systematic process that includes planning, analysis, design,

deployment, and maintenance phases.

System Analysis

It is a process of collecting and interpreting facts, identifying the problems, and decomposing a

system into its components.

Elements of a system

● Inputs: These are the data that enter the system for processing.

● Processes: It is the element of a system that involves the actual transformation of input

● into output.

● Outputs: Outputs are the results or products generated by the system after processing

the inputs.

1
● Feedback: Feedback is information about the system's performance that is sent back to

the system for monitoring or adjustment.

● Environment: The environment is the subsystem within which an organization operates.

● Boundaries: Boundaries define the limits of the system and separate it from the

external environment.

● Interfaces: Interfaces are the points of interaction between different components or

subsystems within a system.

Characteristics of a System

● Organization: it implies structure and order. It is the arrangement of components that

helps to achieve objectives.

● Interaction: It refers to how each component functions with other components of the

system.

● Interdependence: It means that parts of the organization or computer system depend

on one another.

● Integration: It refers to the holism of systems. It is concerned with how a system is tied

together.

● Central Objective: A system should have a central objective. Objectives may be real or

stated

Factors to Consider when Choosing Information Systems

An information system should be:

● Understandable: Easy to interpret it correctly

● Relevant: This should be pertinent and meaningful to the decision-maker.

● Complete: Contain all the facts that are necessary for the decision-maker

● Available: An information system may be useless if it is not readily accessible

● Reliable: It should be accurate, consistent with facts, and verifiable.

● Concise: Too much information cannot be processed in time and accurately.

2
● Timely: Information must be delivered at the right time and the right place to the right

person.

● Cost-effective: It is not desirable if the solution is more costly than the problem.

System Methodologies

A system development methodology is what is used to structure, plan, and control the process

of developing a system. For Example:

● Spiral

● Prototyping

● Waterfall Model

● Rapid Application Development(RAD)

System Development Issues

● IT Strategy: A long-term plan for achieving a goal, in the context of a changing

technology environment.

● IT Infrastructure: This refers to an enterprise's entire collection of:

○ Hardware

○ Software

○ Networks

○ Data centers facilities

and related equipment used to develop, test, operate, monitor, manage, and/or support

information technology services.

● IT Function: IT department is an important department, complementing and

supplementing the others in numerous ways. Some of the IT functions are:

○ Communication

○ Data Management

○ Marketing

○ Process Improvement

3
○ Enterprise resource planning

Types of Systems

● Physical Systems: Tangible entities that may be static or dynamic in operation.

● Abstract Systems: Conceptual or nonphysical entities.

● OpenSystems An open system has many interfaces with its environment.

● Closed Systems: A closed system is isolated from environmental influences.

● Man-made Information Systems: An information system is the basis for interaction

between the user and the analyst.

4
Lecture 2- Software Development Life Cycle

Software is a computer program. Set of instructions. They can be:

● Proprietary: Software that is owned by an individual or a company

● Open Source: Software in which source code is released under a license that grants

users the rights to study, change, and distribute the software to anyone and for any

purpose.

● Generic (Off-the-shelf): Developed to be sold to a range of customers.

● Bespoke ( Custom): Developed for a single customer according to their specifications.

Software Development Life Cycle

The Software Development Life Cycle (SDLC) is a process used by the software industry to

design, develop and test high-quality software.

● Planning: A plan is a detailed proposal for doing or achieving something.

● Requirements: Requirements are what a system needs to do to provide a benefit

● Designing: A description of the recommended solution is converted into a logical

● and then physical system specifications

5
● Implementation: The information system is coded, tested, installed, and supported in

the organization.

● Testing: Monitor the solution to ensure that it functions properly, reliable, and

predictable.

● Deployment: After successful testing, the product is deployed to the customer for their

use.

● Maintenance: An information system is systematically repaired and improved.

Approaches to SDLC

Prototyping Model: The Prototyping Model involves the creation of a working model

(prototype) of the system to gather user feedback and refine requirements before the full-scale

system is developed.

Joint Application Development (JAD): A collaborative approach to software development that

involves the active participation of stakeholders, including end-users, in the design and

development process.

Rapid Application Development (RAD:) To deliver a high-quality product quickly, with a focus

on iterative development and user feedback.

Agile development: Emphasizes iterative development, where software is built in small,

functional increments, allowing for quick adaptation to changing requirements.

Extreme Programming (XP): Aims to improve software quality and responsiveness to

changing customer requirements through frequent releases in short development cycles.

6
Object-Oriented Approach (OOA): Uses the concept of "objects" to organize and structure

code. It is based on the principles of encapsulation, inheritance, and polymorphism.

Lecture 3- Approaches

Software Development Process (Software Development Life Cycle (SDLC)): The software

development process, is a systematic approach to planning, creating, testing, and deploying

software.

Characteristics of a good process

● Provides guidelines for efficient development of quality software

● Reduces risk and increases predictability

● Promotes a common vision and culture

● Presents the current best practice

Two main approaches to SDLC:

Predictive Approach: Assumes the project can be planned out in advance.

● Requirements are well-defined and understood.

● Low technical risk.

Adaptive Approach: More flexible, assumes the project cannot be planned out in advance.

● Requirements and needs uncertain

● High technical risk

Phases in SDLC

Pre-Project Planning: Initiate, ensure feasibility, plan schedule, and obtain approval for the

project.

7
Analysis: Understand business needs and processing requirements.

Design: Define a solution system based on requirements and analysis decisions.

Implementation: Construct, train users, test, and install the new system.

Maintenance/support: Keep the system running and improve.

Parallel Approach

Instead of doing the design and implementation in sequence, performs a general design for the

whole system and divides the project into a series of distinct subprojects that can be designed

and implemented in parallel

Advantages of Parallel Approach

● Can reduce the schedule time required to deliver a system.

● There is less chance of changes in the business environment causing rework.

Disadvantages of Parallel Approach

● Still suffers from problems caused by paper documentation.

● Sometimes the subprojects are not completely independent.

● Design made in one subproject may affect another, and the project's end may require

significant integrative efforts.

Spiral Approach

• Project cycles through development activities over and over until the project is complete.

• Prototype created by the end of each cycle.

Advantages of Spiral

● Risk Management: Explicit focus on identifying and managing risks throughout the

development process.

● Flexibility: Well-suited for projects with changing or unclear requirements, allowing for

adaptability.

● Client Involvement: Encourages regular client participation and feedback at the end of

each iteration.

8
● Early Prototyping: Incorporates prototyping for early visualization and feedback on the

evolving product.

● Incremental Releases: Supports the development of incremental releases, providing

tangible results sooner.

Disadvantages of Spiral

● Complexity: The model itself can be complex, requiring experienced project

management and team members.

● Documentation Overhead: Involves more planning and documentation compared to

some agile methodologies.

● Resource Intensive: This may demand more resources, especially in terms of time and

personnel.

● Not Ideal for Small Projects: Overkill for small projects with straightforward

requirements.

Iteration Approach

The iteration approach in software development refers to a method where the development

process is divided into a series of repetitive cycles or iterations.

9
Lecture 4 – Waterfall Model

Waterfall Method

The Waterfall Model is a linear approach to software development that follows a sequential

process.

In the Waterfall Model, the development process is divided into distinct phases, and each

phase must be completed before the next one begins.

Applications of Waterfall Method:

● Software product definition is stable.

● Requirements are very well-fixed, clear, and well-documented.

● Technology is understood and is not dynamic.

● There are no ambiguous requirements.

● The project is “small”.

● Enough resources are available to support the software product.

● Required expertise is available.

Advantages of the Waterfall Method

● System requirements are identified long before programming begins.

● Simple and easy to understand and use

● Phases are processed and completed one at a time.

● Clearly defined stages/phases.

● Well-understood milestones.

● Relatively easy to arrange tasks.

Disadvantages of the Waterfall Method

● Design must be completely specified on paper before programming begins.

10
● No working software is produced until late during the life cycle.

● High amounts of risk and uncertainty.

● Not a good model for complex and object-oriented projects.

● Poor model for long and ongoing projects.

● It is difficult to measure progress within stages.

● Cannot accommodate changing requirements.

11
Lecture 5 – V Model

V-Model

● A V Model is an extension of the Waterfall model.

● Also known as the Verification and Validation model.

● The next phase starts only after the completion of the previous phase.

● V Model has a testing phase for each corresponding development stage while waterfall

only tests at the end of the development cycle.

V-Model Applications

● Some situations where the use of V model include:

12
● Requirements are well-defined, clearly documented, and fixed.

● Product definition is stable.

● Technology is not dynamic and is well understood by the project team.

● There are no ambiguous or undefined requirements.

● The project is short.

V-Model Activities – Verification Stages

Requirements Analysis

● Business system requirements.

● Detailed communication with the customer to understand the expectations and exact

requirements.

System Design

● Detailing the complete hardware and communication setup for the product under

development.

Architecture Design

● A technical approach is proposed and based on the technical and financial feasibility

the final decision is taken.

● High level.

Module Design

● Detailed internal design for all the system modules is specified.

● Low level.

Coding

● Actual implementation using computer programming languages.

● The programming language is decided based on the system and architectural

requirements.

13
V-Model Activities – Validation Stages

Unit Testing

● Testing at the code level helps eliminate bugs at an early stage.

● All defects cannot be uncovered by unit testing.

Integration Testing

● Performed to test the coexistence and communication of the internal modules

within the system.

System Testing

● Checks the entire system functionality and the communication of the system

under development with external systems.

● Software and hardware compatibility issues can be uncovered during this

system test execution.

Acceptance Testing

● Acceptance testing is associated with the business requirement analysis phase

and involves testing the product in a user environment.

● Acceptance tests uncover the compatibility issues with the other systems

available in the user environment.

● It also discovers the non-functional issues such as load and performance defects

in the actual user environment

Advantages of V-Model

● Simple and easy to use.

● Testing activities like planning, and test designing happen well before coding.

● Proactive defect tracking as defects can be found at an early stage.

● Avoids the downward flow of the defects.

● This is a highly-disciplined model and Phases are completed one at a time.

● Easy to manage due to the rigidity of the model.

14
Disadvantages of V-model

● High risk and uncertainty.

● Not a good model for complex and object-oriented projects.

● Not suitable for projects where requirements are at a moderate to high risk of changing.

● Very rigid and least flexible. Once an application is in the testing stage, it is difficult to

go back and change functionality.

● No early prototypes of the software are produced.

15
Lecture 6 – System Development

Systems can be developed through:

Outsourcing: Contract from an outside supplier/another organization.

Insourcing: Using an organization's personnel or other resources such as IT specialists to

accomplish a task that was previously outsourced.

Selfsourcing: The internal development and support of IT systems by knowledge workers,

such as yourself, with minimal contribution from IT specialists.

Principles of System Development

● Get the system users involved.

● Use a problem-solving approach.

● Establish phases and activities.

● Document through development.

● Establish standards.

● Manage the process and the projects

● Justify systems as capital investments.

● Don’t be afraid to cancel or revise the scope.

● Divide and conquer.

● Design systems for growth and change.

Use a Problem-Solving Approach

Classical Problem-solving approach

● Study and understand the problem, its context, and its impact.

● Define the requirements that must be met by any solution.

● Identify candidate solutions that fulfill the requirements, and select the “best” solution.

● Design and/or implement the chosen solution.

● Observe and evaluate the solution’s impact, and refine the solution accordingly.

16
Establish Phases and Activities

Manage the Process and Projects

Process management

● An ongoing activity that documents manages, oversees the use of, and improves an

organization’s chosen methodology for system development.

● Process management is concerned with phases, activities, deliverables, and quality

standards that should be consistently applied to all projects.

Project management

● The process of scoping, planning, staffing, organizing, directing, and controlling a

project to develop a system at a minimum cost, within a specified time frame, and with

acceptable quality

Justify Information Systems as Capital Investments

Cost-effectiveness

● Striking a balance between the lifetime costs of developing, maintaining, and operating

an information system and the benefits derived from that system.

Strategic information systems plan

● Formal strategic plan (3-5 years) for building and improving an information technology

infrastructure and the information system applications that use that infrastructure.

Strategic enterprise plan

● Formal strategic plan (3-5 years) for an entire business that defines its mission, vision,

goals, strategies, benchmarks, and measures of progress and achievement.

Cancel or Revise Scope

Creeping commitment

● A strategy in which feasibility and risks are continuously reevaluated throughout a

project.

17
Risk management

● The process of identifying, evaluating, and what might go wrong in a project before it

becomes a threat to the successful completion of the project or implementation of the

information system.

Identifying Systems Development Projects

● Problem – an undesirable situation that prevents the organization from fully achieving

its purpose, goals, and/or objectives.

● Opportunity – a chance to improve the organization even in the absence of an identified

problem.

● Directive - a new requirement that is imposed by management, government, or some

external influence.

18
Lecture 8 – Software Testing and Debugging

Testing: To determine if a code contains errors.

Debugging: To locate the error and fix it.

Programming Errors: Also known as bugs(a moth in the Mark I computer.)

Compilation Errors: Syntax error. Example: missing a semi-colon.

Runtime Errors: Occur at runtime(execution).

Logic Errors: The program runs but produces an incorrect result

Modularization: The problem is broken into sub-problems(modules) and each sub-problem is

tackled separately.

Software Testing

Verification

● The activity of evaluating a software system.

● Determines whether the product of a given phase satisfies the requirements

Validation

● Activities confirming that a product meets its intended use.

● Validation activities also aim at confirming that a product meets its customer’s

expectations.

Failure

● A state is when the external behavior of a system does not conform to that prescribed

in the system specification.

Error/Fault

● Represents mistakes made by people.

19
Test Process Improvement (TPI) Model

● Testing can be a troublesome and uncontrollable process.

● Test process improvement helps you reach quality, cost, and delivery targets.

20
Test Maturity Model (TMM)

● TMM is based on the Capability Maturity Model (CMM). It is a detailed model for test

process improvement. It has 5 levels that define testing capability and the assessment

model.

Testing Stages

Unit Testing - Individual components/modules are tested separately

Integration Testing - Groups of modules that are working together are tested together

System Testing - The whole system is tested together after integration.

Acceptance Testing - Verifying whether the whole system works as intended.

21
Modes of Testing

White Box Testing

● Test cases derived from inspecting the structure of the code

● Mainly used for low-level (unit) testing

Black Box Testing

● it compares actual against expected output for a given set of valid and invalid input.

● Used for all levels of testing.

Software Debugging

Steps Involved In Software Debugging:

● Problem identification and report preparation.

● Verify that the defect is genuine.

● Defect analysis using modeling, documentation, finding, and testing candidate flaws.

● Defect resolution by making required changes to the system.

● Validation of corrections.

Documentation

Test and Debugging Documentation

● To improve the maintainability of the code.

● Include sensible comments, a good coding style, and clear logic.

22
23

You might also like