Lecture 3: Systems Development Methodologies
Lecture 3: Systems Development Methodologies
Chapter 1 Overview
- Topics Covered in Chapter 1:
- Systems analysis and design
- System development life cycle (SDLC)
- Roles and skills required by a systems analyst and other project team members
- Systems development methodologies
- Unified process and its extensions
- Basic characteristics of object-oriented systems analysis
- Fundamentals of object-oriented systems analysis and design
Systems Development Methodology
- Definition:
- A formalized approach to implementing the SDLC.
- It encompasses a set of activities and processes that result in a software or system.
- Different classifications exist for methodologies, each unique based on its focus within the SDLC.
Users and Developers of Methodologies
Who uses and develops these methodologies?
- Used by government agencies and private organizations.
- Developed by consulting firms and software vendors.
Focus Areas:
- Business processes.
- Data that supports the business.
Classification of Systems Development Methodologies
- Methodology Classifications
- Process-oriented Methodology
- Data-centered Methodology
- Structured Methodology
- Waterfall Development
- Parallel Development
- Rapid Action Development (RAD) Methodology
- Phased
- Prototyping
- Throwaway Prototyping
- Agile Development Methodology
- eXtreme Programming
- SCRUM
1. Process-Oriented Methodology
Description:
- Facilitates understanding of roles and responsibilities among team members.
- Fosters individual collaboration to achieve desired outcomes.
- Provides a structured approach to reaching those outcomes.
Example:
plaintext aParent aRefrigerator aCupboard aSandwich aLunch aLunchBag Getjelly GetPeanut Butter GetMilk GetBread GetCookies GetLunchBag CreateSandwich CreateLunch PutLunchinBag- Figure 1-1: A Simple Behavioral Model for Making Lunch
2. Data-Centered Methodology
Description:
- Concentrates on defining which system should be produced based on available data.
- Considers how that content should be organized and stored.
Example:
- Database architecture.
3. Structured Development Methodology
Overview:
- This is the first classification of systems development methodology and has dominated since the 1980s.
- It adopts a formal, step-by-step approach throughout the SDLC.
Examples of Structured Development Methodology:
- Waterfall Development
- Parallel Development
i. Waterfall Development Methodology
Characteristics:
- Currently the most commonly used methodology.
- Follows a linear sequence flow, progressing from one phase to the next.
- Deliverables are presented to the Project Sponsor for approval.
- Movement to the next phase occurs only after the current phase receives approval.
Advantages:
- System requirements are identified well in advance of programming.
- Minimizes changes to requirements during project progression.
- Best suited for smaller projects where requirements are well-defined.
- Facilitates easy tracking of resources, time, and costs.
Disadvantages:
- Lacks flexibility in handling changes.
- Delays testing processes until program completion.
- Not ideal for complex projects where requirements frequently change.
- Missing essential requirements may lead to costly post-implementation adjustments.
ii. Parallel Development
Overview:
- Divides the project into sub-projects that can be executed concurrently.
- Aims to mitigate delays between the analysis phase and system delivery.
- Upon completion of all sub-projects, components are integrated, and the system is delivered to the Client.
Advantages:
- Significantly reduces the time to system delivery.
- Allows teams to work simultaneously, enhancing efficiency.
Disadvantages:
- May lead to production delays if changes are not properly integrated.
- Managing and tracking multiple active branches/sub-projects can be challenging.
- Potential for inconsistencies across components.
4. Rapid Application Development (RAD)
Overview:
- Focuses on iterative development of prototypes while gathering user feedback.
- Emerged in the 1990s as a response to the need for faster development timelines.
- Suitable for projects that require quick completion, adequate budget, and sufficient user availability for testing.
Examples of RAD:
- Phased Development
- Prototyping
Characteristics:
- Merges analysis and design phases into a single phase.
- Develops a working prototype of the system.
- Adapts based on continuous user feedback.
- Ensures user involvement at each development phase.
Advantages:
- Facilitates quicker development cycles with significant cost reductions.
- Allows for faster delivery times.
- Provides greater flexibility and interaction between the development team and business stakeholders.
- Enables developers to produce prototypes at various stages of the development process.
Disadvantages:
- Prioritizing speed can compromise quality.
- User unavailability may hinder feedback processes.
Questions?
Next Topic
- Lecture 4: Software Development Methodologies
End
- Thank you!