Software Analysis and Design

Photo by UX Store on Unsplash

Software Analysis and Design

Chapter 1

Introduction

In today's world, we've grown up surrounded by ubiquitous computing, where computers are an integral part of our daily lives. From smartphones to laptops and wearable devices, we are all connected to the digital realm. Some of us have even tried our hand at programming or developed our own applications. This blog post sheds light on the significance of information systems and the crucial roles they play in both historical and modern contexts.

Understanding Information Systems

An information system is a complex network of interrelated components that gather, process, store, and provide information necessary for various business tasks. It's important to note that an information system isn't just hardware and software—it always includes people who operate the system and perform various tasks.

The terms "information system" and "computer application" are often used interchangeably, but there's a subtle difference. A computer application is a software program that runs on a computing device to perform specific functions, while an information system encompasses people, procedures, and the software itself. Think of it as the distinction between an iPhone app and the entire system that supports it.

Creating an information system begins with identifying a need and ends with its productive use. Systems analysis and systems design are key components of this process.

Systems analysis involves understanding and specifying what the new system should accomplish, delving into the details of its functions and operations.

Systems design, on the other hand, outlines how the system will be implemented to meet those needs, specifying the components and how they will work together.

The System Development Life Cycle (SDLC)

In the world of information systems development, managing projects effectively is crucial. The development of a new information system is typically approached as a project—a planned endeavour with a defined start and end date, aimed at producing a specific outcome. To successfully undertake these projects, you need a structured framework to guide and coordinate the work of the project team. This is where the System Development Life Cycle (SDLC) comes into play.

Understanding the SDLC

The SDLC serves as a comprehensive framework that encompasses all the activities necessary for researching, constructing, deploying, and often maintaining an information system. These activities span various stages, including planning, systems analysis, systems design, programming, testing, and user training. Additionally, the SDLC incorporates project management activities essential for the successful deployment of the new information system.

Core Processes in the SDLC

While there are various approaches to the SDLC, it universally consists of six core processes, each crucial to the development of any information system:

  1. Identify the Problem or Need and Obtain Approval: The first step involves recognizing the problem or need that the information system aims to address. Approval from relevant stakeholders is obtained to proceed with the project.

  2. Plan and Monitor the Project: In this phase, project planning and monitoring take center stage. Teams outline what needs to be done, how to do it, and who is responsible for each task.

  3. Discover and Understand the Details: Understanding the intricacies of the problem or need is critical. It involves a thorough analysis of what is required to meet the project's objectives.

  4. Design the System Components: Once the problem is understood, the system components are designed. This phase answers the question of how the system will function in practice.

  5. Build, Test, and Integrate System Components: The development process is set in motion, encompassing programming and the integration of various system components.

  6. Complete System Tests and Deploy the Solution: Extensive testing is conducted to ensure the system meets its intended objectives. Once validated, the solution is deployed, effectively satisfying the identified need.

Iterative Development: Building Systems Gradually

Iterative development is a flexible approach to system development where the system is built incrementally. Instead of creating the entire system at once, core components are developed first, and additional pieces are added iteratively. This approach, often associated with Agile development, breaks down the project into mini-projects, allowing the information system to evolve organically.

Key Aspects of Iterative Development

  • The Process: Iterative development divides the project into iterations, with each iteration encompassing all core development processes. At the end of each iteration, a functional part of the system is completed and evaluated. Iterations usually last two to four weeks.

  • Advantages: Iterative development enables partial deployment of the system, addresses complex challenges early, and enhances flexibility to adapt to new requirements or issues as they arise.

Questions

Potential questions for the test:

  1. What is the difference between an information system and a computer application?

  2. What is the purpose of systems analysis? Why is it important?

  3. What is the difference between systems analysis and systems design?

  4. What is a project?

  5. What is the purpose of the system development life cycle (SDLC)?

  6. What are the six core processes of the SDLC?

  7. What is meant by Agile development and iterative development?