6.1) AIS Selection & Development Strategies Part 2 Flashcards
What is the systems development lifecycle (SDLC) ? (4)
- Systems Development Lifecycles (SDLC) is the cost-effective and time-efficient process that development teams use to design and build high-quality software.
- The goal of SDLC is to minimize project risks through forward planning
- This methodology outlines a series of steps that divide the software development process into tasks you can assign, complete, and measure.
- SDLC was established in 1970 by Winston W. Boyce
What are the two approaches to SDLC?
1) The waterfall approach to SDLC
2) Unified Process approach to SDLC
What is the waterfall approach? (4)
- The Waterfall is a linear-sequential approach to software development
- In this approach, each phase must be completed before the next phase
can begin, with no overlap. - It relies on detailed top-down upfront planning, where requirements are gathered and documented extensively before moving on to design and implementation. This top-down approach assumes that requirements are fully understood and defined at the beginning of the
project. - Waterfall is often used and well-suited for small to medium-sized
projects, within regulated environments with manageable scope, fixed scope, budget and duration as well as projects that can be easily divided into sequential phases and completed within a reasonable timeframe
What are the key principles of the waterfall apporach to SDLC? (3)
- Sequential structure.
- Strong focus on documentation.
- Low customer involvement.
What is ‘sequential structure’ ?
- Typically includes phases such as
Requirements, Design, Implementation,
Verification, and Maintenance.
What is a strong focus on documentation?
Extensive details that define project
requirements and implementation process.
What is low customer involvement?
- Requirements must be agreed upon early during the project lifecycle. Once requirements are defined, the development process strongly focuses on meeting the agreed requirements.
What are the advantages of waterfall approach? (5)
1.Simplicity: Waterfall is easy to understand and implement,
making it suitable for projects with straightforward
requirements and well-defined deliverables. Its linear
nature simplifies project management and progress
tracking.
2. Structured Approach: Waterfall offers a structured and
disciplined approach to development, with distinct phases
(requirements, design, implementation, testing,
deployment) that provide clarity on project milestones and
deliverables.
3. Documentation: Waterfall emphasizes comprehensive
documentation at each phase, ensuring that requirements,
designs, and other project details are well-documented.
This documentation can serve as a reference point for
stakeholders and future maintenance.
4. Stability: Once a phase is completed in Waterfall, its
deliverables are typically not subject to change, providing
stability in project scope and requirements. This can be
advantageous for projects where requirements are unlikely
to change significantly.
5. Risk Management: Waterfall addresses risks upfront during
the planning phase, allowing for early identification and mitigation strategies. By defining requirements and designs early in the process, Waterfall aims to minimize risks
associated with unclear objectives.
What are the disadvantages of the waterfall approach? (5)
-
Limited Flexibility: Waterfall is inflexible when it comes to
accommodating changes in requirements, as each phase
must be completed before moving on to the next. Changes
late in the development process can be costly and timeconsuming to implement. -
Late Feedback: Stakeholder feedback is typically gathered
at the end of the development process, during the testing
phase. This late feedback can result in costly rework if
requirements or designs need to be adjusted based on
stakeholder input. -
Long Delivery Time: Waterfall projects often have long
delivery times, as each phase must be completed sequentially before proceeding to the next. This can result
in delays in delivering value to customers or stakeholders. -
Higher Risk of Failure: Since Waterfall assumes that
requirements are fully understood and defined upfront,
there is a higher risk of project failure if requirements are
misunderstood or change significantly during development. -
Limited Customer Involvement: Waterfall typically involves limited customer involvement after the initial requirements phase, which can lead to misunderstandings or
misalignment between the final product and customer
expectations.
What is the Unified process approach to SDLC? (5)
- An iterative, incremental, architecture-centric, and use-case-driven approach to software development.
- Consists of four phases (inception, elaboration, construction, and transition.
- Unified Process approach focuses on enlarging and refining a system through multiple iterations, with cyclic feedback and adaptation.
- The system is developed incrementally over time, iteration by iteration;
thus, this approach is also known as iterative and incremental software
development. - Suitable for projects with complex requirements, large-scale, custom software development and dynamic customer requirements
What are the key principles of the unified process? (3)
1) Use-case-centric: A use-case defines the interaction between two or more entities.
2) Architecture-centric approach: Involves creating a blueprint of the organization of the software system.
3) Iterative and incremental approach: Each iteration of the systems development is
treated as a mini-project.
What are the advantages of the UP approach to SDLC? (5)
-
Iterative Development: UP is an iterative and incremental
approach to software development, allowing for continuous
feedback and refinement throughout the project lifecycle. This
iterative nature enables early detection and mitigation of risks
and uncertainties. -
Flexibility: UP offers flexibility in tailoring the process to suit the
specific needs of the project and the organization. It provides a
customizable framework that can be adapted to different
project sizes, domains, and team compositions. -
Risk Management: UP emphasizes risk management
throughout the development process, with a focus on
identifying, analyzing, and mitigating risks at each iteration. By
addressing risks proactively, UP helps minimize the likelihood of
project failures and delays. -
Customer Involvement: UP encourages active customer
involvement throughout the project, ensuring that the
delivered software meets user needs and expectations.
Customers are engaged in requirements elicitation,
prioritization, and validation, leading to higher satisfaction with
the final product. -
Continuous Improvement: UP promotes continuous process
improvement through regular retrospectives and lessons
learned sessions. By reflecting on past experiences and
feedback, teams can identify areas for improvement and make
adjustments to their development practices accordingly.
What are the disadvantages to the UP approach? (5)
-
Complexity: The Unified Process framework can be complex and challenging to implement, especially for smaller teams or projects
with limited resources. Its comprehensive nature may require
significant upfront investment in training and infrastructure. -
Documentation Overhead:
UP places a strong emphasis on
documentation, which can result in overhead and administrative
burden, particularly in projects where documentation is perceived as
a bureaucratic process rather than a valuable tool for communication and knowledge sharing. - Resource Intensive: Implementing UP effectively requires dedicated resources, including skilled personnel, tools, and infrastructure. For organizations with limited resources or tight budgets, the overhead associated with adopting UP may be prohibitive.
-
Potential for Scope Creep: While UP allows for flexibility in
accommodating changes to requirements, it also carries the risk of scope creep if changes are not managed effectively. Without proper
governance and change control mechanisms, iterations may expand
beyond their intended scope, leading to schedule delays and
increased costs. -
Dependency on Stakeholder Availability: Active customer
involvement is a key principle of UP, but it relies on the availability
and commitment of stakeholders to participate in requirements
elicitation, reviews, and feedback sessions. In projects where
stakeholders are not fully engaged or accessible, achieving
meaningful collaboration can be challenging.
What are the challenges with using the traditional SDLC? (5)
- Demands for development resources are so numerous that AIS projects can be
backlogged for several years. - A newly designed AIS does not always meet user needs.
- The development process can take so long that the system no longer meets company needs.
- Users are unable to specify their needs adequately.
- Changes to the AIS are often difficult to make after requirements have been frozen into specifications.
What is Agile methodologies and what does it do? (4)
- Agile methodologies are a set of frameworks and practices for iteratively developing
software. - Agile Methodologies were formalized at a meeting in 2001 by a group of like-minded software developers.
- Agile was introduced to combat some of the challenges experienced with SDLC.
- Agile is guided by the 12 Principles
encapsulated in the Agile Software
Manifesto