Introduction to System Analysis and Design
Systems Development Life Cycle (SDLC)
The Systems Development Life Cycle (SDLC) is the foundation of how we build information systems. Think of it as a roadmap that guides us through the entire process of creating software, from the initial idea to the final product. The SDLC consists of four main phases that work together to ensure successful system development.
- Planning Phase
Determine why we should build the system and what value it will provide. During this phase, we develop project proposals, analyze whether the project is feasible, and create detailed work plans. - Analysis Phase
Understanding what the system needs to do. We talk to users, gather requirements, and create models of both the current system and how the new system should work. - Design Phase
Figure out exactly how we're going to build the system. We create detailed specifications for the system's architecture, user interfaces, databases, and programs. - Implementation Phase
Actually build and test the system. This includes writing code, conducting various types of testing, installing the system, training users, and providing ongoing support after the system goes live.
SDLC Methodologies
While the SDLC tells us what steps to take, methodologies tell us how to take those steps. There are several different approaches, each suited to different types of projects.
- Structured Development
Like building a house – you complete each phase before moving to the next.- Waterfall method, Move sequentially through each phase.
- Parallel Development, Similar to waterfall, but allows different parts of the system to be developed simultaneously.
- Rapid Application Development (RAD)
More flexible. It's like building a model of the house first, then improving it based on feedback.- Prototyping, Create working models of the system early on.
- Phased Development, Release the system in versions, adding more features over time.
- Agile Development
The most flexible approach. It's like building the house room by room, getting feedback, and adjusting your plans as you go.- SCRUM
- eXtreme Programming

Object-Oriented Analysis and Design (OOAD)
Object-Oriented Analysis and Design is a modern approach to building systems that focuses on organizing software as a collection of cooperating objects, rather than a set of functions.
- Driven by use cases (specific ways users will interact with the system)
- Centered around good architecture
- Built incrementally with constant testing and refinement
Object-oriented systems are built around several key concepts that make them powerful and flexible.
- Classes and objects
The building blocks – think of a class as a blueprint (like a car design) and objects as specific instances of that blueprint (like actual cars on the road). - Encapsulation
Like putting an engine in a car – users don't need to know how it works internally, they just need to know how to use it. - Inheritance
Allows us to create specialized versions of classes (like how an electric car is still a car, but with specific differences). - Polymorphism
Lets different objects respond to the same message in different ways – just like how different types of cars might respond differently when you press the accelerator.
The Unified Process
The Unified Process is a comprehensive framework for developing object-oriented systems. It's organized into four main phases:
- Inception (planning and initial analysis)
- Elaboration (detailed design)
- Construction (building the system)
- Transition (deploying the system)
What makes it unique is that it also includes various workflows that run throughout these phases. Think of the phases as time periods and the workflows as activities that happen during those periods.
Engineering Workflows:
- Business Modeling
Maps and analyzes the business context, processes, and rules to understand how the system will fit into the organization. - Requirements
Captures and documents all system requirements through stakeholder interviews, use cases, and requirement specifications. - Analysis
Examines and structures the requirements into detailed system specifications and architectural models. - Design
Creates detailed technical specifications for how the system will be built, including interfaces, databases, and components. - Implementation
Involves the actual coding and construction of the system according to the design specifications. - Testing
Verifies system functionality and quality through various testing methods and test case executions. - Deployment
Handles the final system delivery, including installation, user training, and transition to production.
Supporting Workflows:
- Project Management
Oversees the entire project lifecycle, including planning, scheduling, resource allocation, and risk management. - Configuration and Change Management
Controls and tracks all system changes, versions, and configurations throughout development. - Environment
Provides and maintains the technical infrastructure and tools needed for development. - Operations and Support
Ensures ongoing system maintenance, user support, and performance optimization after deployment. - Infrastructure Management
Manages the technical backbone of the system, including hardware, networks, and security.
Unified Modeling Language (UML)
UML a common language to discuss and understand the system. It's like having a standard set of blueprints for software. It provides different types of diagrams that help us visualize and document various aspects of a system.
- Structure diagrams
Show how the system is organized (like a building's floor plan) - Behavior diagrams
Show how the system works (like showing how people move through the building).