Podcast
Questions and Answers
Which of these are systems development methodologies?
What is the primary goal of Rapid Application Development (RAD)?
To quickly develop parts of a system for user feedback.
RAD methodologies emerged in the 1990s.
True
Which tools are recommended for use in RAD methodologies?
Signup and view all the answers
What is a major drawback of phased development methodologies?
Signup and view all the answers
Prototyping methodologies perform phases sequentially.
Signup and view all the answers
What is the purpose of user feedback in the prototyping process?
Signup and view all the answers
Study Notes
System Analysis & Design
- Presented by Menna Ibrahim Gabr
Chapter 2 Agenda Part 3
- Systems Development Methodologies
- RAD
- Agile Development
- Selecting The Appropriate Development Methodology
Systems Development Methodologies
- SDM
- Structured Design (checked)
- Rapid Application Development (RAD)
- Agile Development
Rapid Application Development (RAD)
- Newer class of systems development methodologies that emerged in the 1990s
- RAD-based methodologies attempt to address weaknesses of structured design methodologies
- By adjusting the SDLC phases to quickly get some part of the system developed and into the users' hands
- Allows users to better understand the system and suggest revisions
- Recommends analysts use special techniques and tools to speed up analysis, design, and implementation
- Examples of tools include CASE tools, Joint Application Design (JAD) sessions, fourth-generation programming languages (e.g., Perl, Python, Ruby, SQL), and code generators
Rapid Application Development (RAD) - Continued
- Combination of the changed SDLC phases and tools/techniques improves speed and quality of systems development
- Potential problem: managing user expectations
- User's understanding of information technology might expand system requirements
Rapid Application Development (RAD) - Components
- Phased Development
- Prototyping
- Throwaway Prototyping
Phased Development
- Methodology that breaks an overall system into a series of sequentially developed versions
- Analysis phase identifies the overall system concept and categorizes requirements into versions
- Most important requirements bundled into the first version
- Leads into design and implementation, but only for the requirements of version 1
- Once version 1 is implemented, work begins on version 2, with new requirements and user experience
- Process continues until system is complete or no longer in use
Prototyping
- Methodology that performs analysis, design, and implementation concurrently and repeatedly in a cycle until the system is completed
- Basics of analysis and design performed immediately, with quick and dirty program development of the initial prototype, which provides a minimal number of features
- First prototype shown to users and project sponsor, and comments used to reanalyze, redesign and reimplement until agreement on functionality
- After the prototype is installed, refinement occurs until it's accepted as the new system
Prototyping - Pros
- Very quickly provides a system that users can interact with
- Reassures users that project team is working on the system (no long delays)
- Quickly refines requirements, allows users to interact with a prototype to better understand what it can and cannot do
Prototyping - Cons
- Fast-paced system releases challenge attempts to conduct careful, methodical analysis
- Significant changes to the prototype may cause initial design decisions to become poor ones
- Problems might not be recognized until well into the development process related to complex systems
Throwaway Prototyping
- Prototypes are done at a different point in the SDLC
- Different purpose and appearance than previously discussed prototypes
- Used for analysis and developing ideas for the system concept
- Understanding issues and developing a design prototype
- Not a working system, but represents part of the system that needs refinement, with enough detail to understand problems
Throwaway Prototyping - Continued
- Serves as a tool for understanding an idea and identifying issues and problems
- Users may not completely understand many suggested features, or technical challenges
- For example, web page mockups can simulate a system without functionality
Throwaway Prototyping Pros
- Balance well-thought-out analysis and design phases, with advantages of refining key issues before developing the system
- Methodologies might take longer to produce the final system (prototypes don't become the final system) but produce more stable and reliable systems
Agile Development
- Iterative and flexible approach to software development, emphasizing collaboration, adaptability, and continuous improvement
- Includes the following key principles:
- Customer collaboration over contract negotiation
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Responding to change over following a plan
- Continuous feedback and adaptation is fundamental. At the end of each iteration, the progress is reviewed, feedback is gathered, and improvements are incorporated into subsequent iterations
- Allows for early and frequent delivery to increasing customer satisfaction and reducing risk of large-scale failures
- Includes sub-methodologies such as Extreme Programming, Scrum, and Kanban
Extreme Programming (XP)
- Founded on four core values: communication, simplicity, feedback, and courage
- Developers provide rapid feedback to end users continuously
- Developers follow the KISS principle
- Developers make incremental changes (not only accepting change but also embracing change).
- Developers have a quality-first mentality, which supports team members in developing their own skills.
- Uses continuous testing, simple coding performed by pairs, and close interactions with end users.
- Phases of analysis, design, and implementation are performed iteratively after a planning process.
XP Loop
- Planning/feedback loops
- Release plan
- Iteration plan
- Acceptance test
- Stand-up meeting
- Pair negotiation
- Unit test
- Pair programming
Core Values of XP
- Testing and efficient coding practices (code is tested each day and placed into integrative testing environment)
- Refactoring (to restructure code and keep it simple)
How the story begins in (XP)?
- XP projects start with user stories describing system needs
- Programmers code in small modules and test them
- Users need to provide clarification for questions and issues
- Teams use common names, descriptions, and coding practices
Who should use XP?
- Suitable for small projects with highly motivated, cohesive, stable, and experienced teams
- Project success is doubtful if projects are large or teams are not jelled
- Lack of detailed analysis/design documentation with XP can make maintaining large systems challenging
Selecting the Appropriate Development Method
- Many methodologies exist with no one methodology best for all scenarios
- Organizations may have standards and policies to guide methodology choices
Selecting the Appropriate Development Methodology - Factors
- Clarity of user requirements
- Familiarity with technology
- System complexity
- System reliability
- Short time schedules
- Schedule visibility
Additional Notes
- Throwaway prototyping is generally appropriate for projects with unclear user requirements, or high risk technologies
- Phased development is a good methodology when early interactions between user and system are valuable or needed, but detailed analysis and design might be less important
- Prototyping approaches are good when time to market is key, but system reliability might suffer in critical systems
- Traditional structured development methods can handle large and complex systems, but they might be slow in user involvement or feedback
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Explore the key concepts of Systems Development Methodologies in this quiz, including Rapid Application Development (RAD) and Agile Development. Understand the strengths and weaknesses of various methodologies and how to select the appropriate one for different scenarios. This quiz will help solidify your knowledge of SDM and its practical applications.