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

SE group Assignment 1

The document outlines various software engineering methodologies, including Waterfall, Prototyping, V-Model, Spiral, Feature-Driven Development (FDD), Extreme Programming (XP), Scrum, and Adaptive Software Development (ASD). Each methodology is described with its advantages and disadvantages, focusing on aspects like flexibility, customer involvement, and risk management. Additionally, it includes specific examples of systems like a Personal Insulin Pump and a Mental Health Case Patient Management System.

Uploaded by

graphicsra41
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

SE group Assignment 1

The document outlines various software engineering methodologies, including Waterfall, Prototyping, V-Model, Spiral, Feature-Driven Development (FDD), Extreme Programming (XP), Scrum, and Adaptive Software Development (ASD). Each methodology is described with its advantages and disadvantages, focusing on aspects like flexibility, customer involvement, and risk management. Additionally, it includes specific examples of systems like a Personal Insulin Pump and a Mental Health Case Patient Management System.

Uploaded by

graphicsra41
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

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

Department of Computer Science


Q#1
❖ A Personal Insulin Pump:
An embedded system in an insulin pump used by diabetics to maintain blood glucose control.
This Figure is an activity diagram which shows how the insulin pump works for diabetics.

Blood Sugar Analyze Sensor Sensor Blood Sugar


Sensor Reading Data level

Compute
Insulin

Insulin
Dose

Insulin Control Insulin Pump Compute Pump


Pumped Pump Data Commands

❖ A Mental Health Case Patient Management System:


A System used to maintain records of people receiving care for mental health problems.

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

Model Size (Projects) Inc/ ite Cost Risk Change


WaterFall Large-scale No High High No
Prototype Medium scale Incremental Medium Medium Yes
prototypes
V-Model Large scale No High High Limited Change
incrementation
Spiral Small to Incremental Low Low Yes
medium Releases

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:

FDD involves the following steps:

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.

3. Prioritization: Prioritizing the features based on business value and complexity.

4. Development: Developing the features in short iterations (usually 2-4 weeks).

5. Testing: Testing the features through automated and manual testing.

6. Deployment: Deploying the features to production.

7. Feedback: Gathering feedback from the end-users and stakeholders.

Working:

FDD works by:

1. Breaking down the development process into short iterations.


2. Focusing on delivering functional features to the end-user.
3. Prioritizing features based on business value and complexity.
4. Involving the end-users and stakeholders throughout the development process.
5. Emphasizing automated and manual testing.
6. Deploying features to production regularly.
Advantages:

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.

4. Requires Significant Planning: FDD requires significant planning and prioritization.

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:

- Humanity: recognizing the value of individuals and interactions

- Economics: delivering value to customers and stakeholders

- Mutual Benefit: ensuring benefits for all parties involved

- Self-Similarity: applying XP principles at all levels of development

- Kaizen: continuous improvement and learning

Practices:

- Pair Programming

- Test-Driven Development (TDD)

- Continuous Integration

- Continuous Refactoring

- Collective Code Ownership

- Customer Involvement

- 40-Hour Work Week

- Planning Game

Goals:

- Deliver high-quality software that meets customer needs

- Improve team collaboration and communication

- Reduce development time and costs

- Increase customer satisfaction

- Encourage continuous learning and improvement

.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.

• Scrum uses iterative process. Silent features of scrum are:


• Scrum is light-weighted framework.
• Scrum emphasizes self-organization.
• Scrum is simple to understands.
• Scrum framework help the team to work together.

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.

Product Backlog: according to prioritize features the product is organized.

Sprint Backlog: It is divided into two parts product assigned features to sprint and sprint planning
meeting.

Working:

In Scrum, there are three main roles:

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:

1. Scrum framework is fast moving and money efficient.


2. Scrum framework works by dividing the large product into small sub-products.
3. In scrum customer satisfaction is very important.
4. Scrum is adaptive in nature because it has short sprint.
5. As scrum framework rely on constant feedback therefore quality of product increases in less
time.

Dis-Advantages:

1. Scrum framework do not allow changes into their sprint.


2. Scrum framework is not fully described model.
3. It can be difficult for the scrum to plan, structure and organize a project that lacks a clear
definition.
4. The daily scrum meetings and frequent reviews require substantial resources.

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

Release Software increment Learning Collaboration


adjustments for subsequent cycles

Speculation: In this phase the project is initiated and adaptive cycle planning is conducted.

Adaptive cycle planning uses project.

Initiation info: The customers mission statement.

Project constrains: e.g delivery dates or user description.

Basic requirements: to define the set of release cycle.

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:

1. Increased customer satisfaction.


2. Improved project flexibility.
3. Early and frequent feedback.
4. Quick response to changes.
5. Reduced risk of project failure.

Dis-Advantages:

1. Potential for scope creep.


2. Requires highly skilled team members.
3. Difficulty in estimating timelines and costs.
4. Dependency on customer availability and involvement.
5. Possible challenges in maintaining documentation.

25-April-2024

You might also like