SE group Assignment 1
SE group Assignment 1
Students
Muqadas Bibi 22024119-147
Sibgha tul Rehman 22024119-148
Hafsa Toor 22024119-149
Noor ul Ain Syed 22024119-157
BSCS-IV-B-EVE
Course
CS-321
Software Engineering
Instructor
Mr. Muhammad Jabbar
Compute
Insulin
Insulin
Dose
Setup
Register Consultation
Patient
Receptionist Health Visitors
Check on
View Record Treatment
Edit Record
Nurse Doctor
General
Report
Condition,
Cost of treatment
Export
Medical Records report Administrative staff Statistics
Q#2
Waterfall Model
Advantages:
1. Easy to manage: The Waterfall Model is a linear and sequential approach, making it easy to
manage and understand.
2. Predictable timeline: The model follows a fixed timeline, making it easier to predict when each
phase will be completed.
Disadvantages:
1. No flexibility: The Waterfall Model is inflexible and does not allow for changes once the process
has started.
2. High risk: If errors or issues are discovered late in the process, it can be costly and time-
consuming to fix them.
Prototyping Model
Advantages:
1. Flexibility: The Prototyping Model allows for flexibility and iteration, making it easier to make
changes as needed.
2. Early feedback: The model provides early feedback from users, which can help identify and fix
issues early on.
Disadvantages:
1. Time-consuming: The Prototyping Model can be time-consuming, as it involves multiple
iterations and feedback loops.
2. Lack of structure: The model can lack structure, leading to a disorganized and chaotic
development process.
V-Model
Advantages:
1. Testing emphasis: The V-Model places a strong emphasis on testing, which can help ensure a
high-quality product.
2. Clear phases: The model has clear and distinct phases, making it easier to understand and manage.
Disadvantages:
1. Rigid: The V-Model is a rigid and inflexible approach, making it difficult to make changes once
the process has started.
2. Limited feedback: The model does not provide for early feedback from users, which can lead to
issues being discovered late in the process.
Spiral Model
Advantages:
1. Flexibility: The Spiral Model is flexible and adaptable, making it easier to make changes as
needed.
2. Risk management: The model allows for risk management and assessment, helping to identify and
mitigate potential issues.
Disadvantages:
1. Complex: The Spiral Model can be complex and difficult to understand, especially for smaller
projects.
2. High overhead: The model requires significant overhead in terms of planning and management,
which can be time-consuming and costly.
Q#3
Feature-Driven Development (FDD) is an iterative and incremental software development process
that emphasizes delivering functional features to the end-user. It is a variant of Agile methodology
that focuses on delivering value to the customer through regular, frequent deliveries of working
software.
Description:
1. Domain Object Modeling: Identifying and modeling the domain objects and their relationships.
2. Feature List Creation: Creating a list of features based on the domain objects and their
relationships.
Working:
1. Faster Time-to-Market: FDD enables organizations to deliver functional features to the end-user
quickly.
2. Improved Customer Satisfaction: FDD involves the end-users and stakeholders throughout the
development process, ensuring that the delivered features meet their requirements.
3. Increased Transparency: FDD provides clear visibility into the development process and progress.
4. Reduced Risk: FDD reduces the risk of project failure by breaking down the development process
into short iterations.
5. Improved Team Collaboration: FDD encourages collaboration among team members and
stakeholders.
Disadvantages:
1. Requires High Customer Involvement: FDD requires active involvement from the end-users and
stakeholders, which can be challenging.
2. Requires Skilled Resources: FDD requires skilled resources, including developers, testers, and
project managers.
3. Can be Complex: FDD can be complex, especially for large and complex projects.
5. Can be Resource-Intensive: FDD can be resource-intensive, especially for large and complex
projects.
XP Model
Extreme Programming (XP) is an iterative and incremental software development method that
emphasizes technical practices, customer satisfaction, and teamwork. It's an Agile framework that
focuses on delivering high-quality software in short iterations, with a strong emphasis on testing,
refactoring, and continuous improvement.
Values:
- Communication
- Simplicity
- Feedback
- Courage
- Respect
Principles:
Practices:
- Pair Programming
- Continuous Integration
- Continuous Refactoring
- Customer Involvement
- Planning Game
Goals:
.Advantages:
1. Improved quality: XP's emphasis on testing and refactoring leads to high-quality code.
2. Faster time-to-market: XP's iterative approach and focus on delivering small, working pieces of
software lead to faster release cycles.
3. Increased customer satisfaction: XP's customer involvement and iterative approach ensure that
the software meets customer needs.
4. Greater flexibility: XP's adaptability to change allows for quick responses to changing
requirements.
5. Improved team morale: XP's emphasis on collaboration, shared responsibility, and continuous
improvement leads to a more motivated and engaged team.
6. Reduced risk: XP's iterative approach and focus on delivering working software reduce the risk of
project failure.
Disadvantages:
1. Steep learning curve: XP's emphasis on technical practices like TDD and pair programming can be
challenging for new team members.
2. High overhead: XP's emphasis on testing, refactoring, and pair programming can increase
development time and effort.
3. Overemphasis on coding: XP's focus on coding practices can lead to neglect of other important
aspects of software development, like architecture and design.
4. Difficult to scale: XP's emphasis on collaboration and communication can become challenging as
team size increases.
5. Requires high customer involvement: XP's customer involvement can be challenging if customers
are not available or willing to participate.
6. May not be suitable for all projects: XP's iterative approach and focus on delivering small pieces
of software may not be suitable for projects with complex dependencies or strict regulatory
requirements.
Scrum (Software Development)
A software development method originally proposed by Schwaber and bedden in early 1990.
Scrum is the type of Agile framework. It is a framework within which people can address complex
adaptive problem while productivity and creativity of delivering product is at highest possible values.
Sprint: A sprint is a time box of one month or less. A new sprint starts immediately after the
completion of previous sprint. Release: When product is completed it goes to release stage.
Sprint Backlog: It is divided into two parts product assigned features to sprint and sprint planning
meeting.
Working:
the Product Owner, the Scrum Master, and the Development Team.
The Product Owner represents the stakeholders and is responsible for prioritizing the work and
defining the goals. The Scrum Master is like a facilitator, ensuring that the Scrum framework is
followed and helping the team overcome any obstacles. The Development Team is responsible for
actually doing the work and delivering the product incrementally.
During each sprint, the team selects a set of tasks from the product backlog, which is a prioritized list
of all the work that needs to be done. These tasks are broken down into smaller units called user
stories. The team then estimates the effort required for each user story and commits to completing
them within the sprint.
Every day, the team holds a brief stand-up meeting to discuss progress, challenges, and plans for the
day. This helps keep everyone aligned and aware of any potential issues. At the end of each sprint,
there's a sprint review where the team showcases the completed work to stakeholders, and a
retrospective where they reflect on what went well and what could be improved.
The iterative nature of Scrum allows for flexibility and adaptability. The team regularly reviews and
adjusts their approach based on feedback and changing requirements. This helps ensure that the
product being developed meets the needs of the stakeholders and that the team is continuously
improving their processes.
Advantages:
Dis-Advantages:
Adaptive Software Development (ASD) was developed by James A.Highsmith in the late 1990s as a
response to the limitations of traditional software development methodologies. It is a collaborative
approach to “managing complex systems”.
Highsmith approach was born after his various experiences in working with different software
development teams’ challenges like:
• Changing requiremnets
• Deadlines
ASD emerged as a flexible and adaptive methodology that emphasizes collaboration and continuous
adaption to change. Over the years, ASD has gained recognition as an effective approach to software
development in environments where requirements are uncertain and it has influenced after agile
methodologies and continuous to evolve and meet the modern software project needs.
ASD Phases: In ASD “life cycle” it incorporates three steps which are as below
1. Speculation
2. Collaboration
3. Learning
Speculation
Speculation: In this phase the project is initiated and adaptive cycle planning is conducted.
Based on information obtained at the completion of the first cycle, the plan is reviewed and adjusted
so that the planned work fits the reality.
Collaborate: Complex applications are not built they evolve. They require that a large volume of
information be collected, analyzed and applied to the problem. This results in diverse knowledge
requirements that can only be handled by team collaboration. It requires to work together to
produce result, share knowledge or make decisions. In the context of project management it
portrays a balance between managing with traditional management techniques and creating and
maintaining the collaborative environment needed for emergence.
Learning:
1. The learn part of the lifecycle is vital for the success of the project.
2. Learning is much more than technical training. It is an attitude that every team member
brings to the project.
3. Team has to enhance their knowledge constantly, using practices such as…
• Technical reviews
• Project Retrospectives
• Customer Focus Groups
4. Reviews should be done after each iteration.
5. The team learns…..
• About product changes
• More fundamental changes in underlying assumptions about how the products are being
developed
• The iterations need to be short, so that the team can learn from small rather than large
mistakes.
Advantages:
Dis-Advantages:
25-April-2024