0% found this document useful (0 votes)
12 views

IT project Assignment

The Software Development Life Cycle (SDLC) is a structured process consisting of seven stages aimed at delivering high-quality software that meets user requirements. Extreme Programming (XP) is an Agile methodology within SDLC that emphasizes collaboration, frequent feedback, and iterative development, making it suitable for small projects and those with rapidly changing requirements. The Unified Process (UP) is another iterative approach that focuses on stakeholder collaboration and flexibility, but can be complex and resource-intensive.

Uploaded by

yosefmuluye42
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views

IT project Assignment

The Software Development Life Cycle (SDLC) is a structured process consisting of seven stages aimed at delivering high-quality software that meets user requirements. Extreme Programming (XP) is an Agile methodology within SDLC that emphasizes collaboration, frequent feedback, and iterative development, making it suitable for small projects and those with rapidly changing requirements. The Unified Process (UP) is another iterative approach that focuses on stakeholder collaboration and flexibility, but can be complex and resource-intensive.

Uploaded by

yosefmuluye42
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

Software Development Life Cycle (SDLC)

- Software development life cycle (SDLC) is a structured process that is used to design, develop, and
test good-quality software.
- SDLC, or software development life cycle, is a methodology that defines the entire procedure of
software development step-by-step.
- The goal of the SDLC life cycle model is to deliver high-quality, maintainable software that meets the
user’s requirements.

The Software Development Life Cycle (SDLC) has seven stages:

 Planning: The first stage, where a basic plan is developed based on business requirements

 Analysis: Gathering requirements and analyzing them

 Design: Designing mockups

 Development: Coding or implementation

 Testing: Ensuring the software's quality and functionality at each stage

 Implementation: Deploying the product

 Maintenance: Maintaining the product

Some models of the SDLC include:

- Extreme programming (XP) Model


- Unified process (UP) Model
- COTS =Commercial Off-The-Shelf software

Extreme programming (XP)

What is Extreme Programming (XP)?

Extreme programming (XP) is one of the most important software development frameworks of Agile models. It is used
to improve software quality and responsiveness to customer requirements.
Extreme Programming (XP) is an Agile software development methodology that focuses on delivering high-quality
software through frequent and continuous feedback, collaboration, and adaptation.

XP emphasizes a close working relationship between the development team, the customer, and stakeholders, with an
emphasis on rapid, iterative development and deployment.

Applications of Extreme Programming (XP)

Some of the projects that are suitable to develop using the XP model are given below:

 Small projects: The XP model is very useful in small projects consisting of small teams as face-to-face meeting
is easier to achieve.

 Web development projects: The XP model is well-suited for web development projects as the development
process is iterative and requires frequent testing to ensure the system meets the requirements.

 Collaborative projects: The XP model is useful for collaborative projects that require close collaboration
between the development team and the customer.

 Projects with tight deadlines: The XP model can be used in projects that have a tight deadline, as it
emphasizes simplicity and iterative development.

 Projects with rapidly changing requirements: The XP model is designed to handle rapidly changing
requirements, making it suitable for projects where requirements may change frequently.

 Projects where quality is a high priority: The XP model places a strong emphasis on testing and quality
assurance, making it a suitable approach for projects where quality is a high priority.

Life Cycle of Extreme Programming (XP)

The Extreme Programming Life Cycle consist of five phases:

Life Cycle of Extreme Programming (XP)

1. Planning: The first stage of Extreme Programming is planning. During this phase, clients define their needs in
concise descriptions known as user stories. The team calculates the effort required for each story and
schedules releases according to priority and effort.

2. Design: The team creates only the essential design needed for current user stories, using a common analogy
or story to help everyone understand the overall system architecture and keep the design straightforward and
clear.
3. Coding: Extreme Programming (XP) promotes pair programming i.e. wo developers work together at one
workstation, enhancing code quality and knowledge sharing. They write tests before coding to ensure
functionality from the start (TDD), and frequently integrate their code into a shared repository with
automated tests to catch issues early.

4. Testing: Extreme Programming (XP) gives more importance to testing that consist of both unit tests and
acceptance test. Unit tests, which are automated, check if specific features work correctly. Acceptance tests,
conducted by customers, ensure that the overall system meets initial requirements. This continuous testing
ensures the software’s quality and alignment with customer needs.

5. Listening: In the listening phase regular feedback from customers to ensure the product meets their needs
and to adapt to any changes.

Values of Extreme Programming (XP)

There are five core values of Extreme Programming (XP)

Values of Extreme Programming (XP)

1. Communication: The essence of communication is for information and ideas to be exchanged amongst
development team members so that everyone has an understanding of the system requirements and goals.
Extreme Programming (XP) supports this by allowing open and frequent communication between members of
a team.

2. Simplicity: Keeping things as simple as possible helps reduce complexity and makes it easier to understand
and maintain the code.

3. Feedback: Feedback loops which are constant are among testing as well as customer involvements which
helps in detecting problems earlier during development.

4. Courage: Team members are encouraged to take risks, speak up about problems, and adapt to change
without fear of repercussions.

5. Respect: Every member’s input or opinion is appreciated which promotes a collective way of working among
people who are supportive within a certain group.
Advantages of Extreme Programming (XP)

 Slipped schedules: Timely delivery is ensured through slipping timetables and doable development cycles.

 Misunderstanding the business and/or domain − Constant contact and explanations are ensured by including
the client on the team.

 Canceled projects: Focusing on ongoing customer engagement guarantees open communication with the
consumer and prompt problem-solving.

 Staff turnover: Teamwork that is focused on cooperation provides excitement and goodwill. Team spirit is
fostered by multidisciplinary cohesion.

 High-quality code: XP practices like pair programming, test-driven development, and refactoring can lead to
fewer defects and higher code quality.

 Customer satisfaction: XP's frequent releases and customer involvement can lead to higher customer
satisfaction.

 Improved communication: XP's focus on communication can lead to better collaboration between
stakeholders and the team.

 Reduced risk: XP's early and continuous delivery, along with frequent feedback, can help identify and mitigate
risks more effectively.

 Costs incurred in changes: Extensive and continuing testing ensures that the modifications do not impair the
functioning of the system. A functioning system always guarantees that there is enough time to accommodate
changes without impairing ongoing operations.

 Business changes: Changes are accepted at any moment since they are seen to be inevitable.

 Production and post-delivery defects: the unit tests to find and repair bugs as soon as possible.

Disadvantages

 Customer participation: Customers must participate in the XP process.

 Time investment: XP can be a relatively large time investment.

 Costs: XP can be relatively expensive.

 Documentation: XP's focus on coding can lead to less comprehensive documentation, which can impact
future scalability and maintenance.
 Resource-heavy: XP practices can be resource-heavy.

 Scaling: XP can be difficult to scale.

 Feedback: XP can have an overemphasis on feedback.

Unified Process in OOAD

The Unified Process (UP) is a flexible and iterative approach to developing software. It focuses on creating working
software increments, collaborating with team members, and adapting to changes.

The Unified Process Model (UPM), also known as the Rational Unified Process (RUP), is a software development
process that uses an iterative and incremental approach to build systems

 Advantages

 Risk Management: Identifying and addressing risks early in the project lifecycle, minimizing project
delays and budget overruns.

 Quality Assurance: Focus on quality throughout the development process, resulting in higher-quality
software.

 Stakeholder Collaboration: Active involvement and collaboration among stakeholders, ensuring that
the final product meets their needs.

 Flexibility and Adaptability: Ability to accommodate changing requirements and project conditions,
allowing for adjustments at each iteration.

 Iterative Development: Early and continuous delivery of working software, leading to faster validation
of requirements.

 Meets customer needs: RUP ensures that customer needs are met, even if they change over time.

 Short iterations: RUP's short iterations allow teams to release frequently and test code thoroughly.

 Cost-saving: RUP's lack of unnecessary processes and documentation can lead to significant cost
savings.
 Disadvantages

 Complex: RUP is a complex methodology that can be difficult to implement, especially for smaller
teams, businesses, or projects.

Perceived complexity and resource-intensiveness, requiring additional time and effort, especially for
small teams.

 Requires experts: RUP relies on the expertise of professionals to assign tasks and produce results, so
it may be difficult to implement without an expert on staff.

 Time-consuming documentation: The amount of documentation required for RUP can be time-
consuming and expensive.

 Confusion in testing: RUP's emphasis on ongoing integration can cause confusion during testing for
larger projects with multiple components and software teams.

 Overhead: The associated overhead, including documentation and formalized processes, may
increase project costs and reduce productivity.

 Learning Curve: Requirement for a solid understanding of UP principles and practices, posing
challenges for teams transitioning from traditional methods.

COTS = Commercial Off-The-Shelf software

Commercial Off-the-Shelf (COTS) software is a model for pre-built software products that are ready to use and
purchase without extensive customization.

COTS software is designed to meet the needs of the general public and is available for sale, lease, or license.

Some advantages of COTS software include:

 Convenience: COTS software is easy to access and use.

 Cost: COTS software is generally less expensive than custom-developed solutions.

 Installation: COTS software is easy to install.

 Trial versions: COTS software often includes trial versions.

Some disadvantages of COTS software include:

 User requirements: COTS software may not meet all user requirements.
 Security: COTS software may have security vulnerabilities.

 Customer support: Customer support for COTS software may be terminated.

Examples of COTS software include:

 Microsoft Office

 Gmail, Outlook, and Zoho Mail

 Microsoft Teams, Zoom, and Skype

 Microsoft Windows, Linux, and MacOS

You might also like