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

Segment 2 Mid Note

The document outlines the Software Development Process, also known as the Software Development Life Cycle (SDLC), which encompasses various phases from planning to maintenance. It discusses methodologies such as Waterfall, Spiral, and Agile, highlighting their advantages and disadvantages. Additionally, it covers the Joint Application Design (JAD) process, emphasizing collaboration among stakeholders to gather system requirements effectively.

Uploaded by

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

Segment 2 Mid Note

The document outlines the Software Development Process, also known as the Software Development Life Cycle (SDLC), which encompasses various phases from planning to maintenance. It discusses methodologies such as Waterfall, Spiral, and Agile, highlighting their advantages and disadvantages. Additionally, it covers the Joint Application Design (JAD) process, emphasizing collaboration among stakeholders to gather system requirements effectively.

Uploaded by

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

Segment 2: Software Process

Software Development Process


✓ A set of related activities which lead to the production of a high-quality software product
✓ It is also called Software Development Life Cycle (SDLC)
✓ Cycle because the process can be repeated after releasing a prototype
✓ There is no ideal process; different methods depending on the requirement
✓ From Planning to Maintenance
Systems Development Life Cycle (SDLC)
The SDLC is the process of determining how an information system (IS) can support business
needs, designing the system, building it, and delivering it to users. There are almost 20 Phases in
SDLC. But 6 Phases are very general and common.
1) Planning and analysis:
Feasibility Study+ JAD → SRS (Software Requirement Specification)
2) Design:
✓ Specify the hardware, system requirement and design the application architecture and
database design.
✓ Design: high-level design and low-level design.
✓ In high-level design, we design the different blocks of the application.
✓ In low-level design, we write the pseudo-code.
3) Implementation / Coding:
✓ The work is divided in modules/units and actual coding is started.
✓ This is the longest phase of the software development life cycle.
4) Testing:
✓ After the code is developed it is tested against the requirements
✓ Functional testing like unit testing, integration testing, system testing, acceptance
testing is done
✓ Non-functional testing is also done.
5) Deployment:
✓ After successful testing the product is delivered / deployed to the customer for their
use.
✓ During deployment, there are four widely used strategies i.e., Parallel, Direct, Phased and
Pilot.
✓ Parallel: Old and new systems are used at the same time
✓ Direct: Old is replaced by new one
✓ Phased: Parts of the new system are implemented over time
✓ Pilot (Single Location): Entire System used, is used in one location
✓ E-Learning in IIUC (First Six Months→ CSE and another Six Months other department)
6) Maintenance: Problems come up after delivery of the developed software
✓ Corrective Maintenance: to correct errors
✓ Perfective Maintenance: to enhance the functionalities of the system
✓ Adaptive Maintenance: for porting the software to work in a new environment

Joint Application Design (JAD)


✓ Joint application development (JAD) is a structured process in which users, managers, and analysts
work together for several days in a series of intensive meetings to specify or review system
requirements.
✓ It was developed by IBM in the late 1970s.
JAD Participants

JAD project leader Develops an agenda, acts as a facilitator, and leads the JAD session
Top management Provides enterprise-level authorization and support for the project
Provide department-level support for the project and understanding
Managers
of how the project must support business functions and requirements
Provide operational-level input on current operations, desired changes,
Users input and output requirements, user interface issues, andhow the
project will support day-to-day tasks
Systems analysts Provide technical assistance and resources for JAD team members on
and other IT staff issues such as security, backup, hardware, software, and network
members capability
Documents results of JAD sessions and works with systems analysts
Recorder
to build system models and develop CASE tool documentation
JAD Process Steps
✓ Define Session
✓ Research Product
✓ Prepare:
✓ Conduct Session
✓ Draft the Documents:
Advantages of JAD
✓ This technique allows for the simultaneous gathering and consolidating of large amountsof
information.
✓ This technique provides a forum to explore multiple points of view regarding a topic.
✓ This technique produces relatively large amounts of high-quality information in a short
period of time.
Disadvantages of JAD
✓ Requires significant planning and scheduling effort.
✓ Requires significant stakeholder commitment of time and effort.
✓ Requires trained and experienced personnel for facilitation and recording.

Some SDLC Methodologies


✓ Waterfall Model
▪ Classical Waterfall Model
▪ Parallel Waterfall Model
▪ Waterfall V Model
✓ Spiral Model
✓ Agile Methodologies
▪ Scrum
▪ eXtreme Programming (XP)
✓ Other Practices in Agile:
▪ Rapid Application Development (RAD)
▪ Rational Unified Process (RUP)
Heavyweight Methodology Vs Lightweight methodology
✓ Heavyweight is lengthy process because it has many terms, conditions and requirements. (Waterfall, Spiral
Model and Rational Unified Process)
✓ Lightweight is a simple process where there are not many terms and condition. The requirement is also less.
[Scrum, eXtreme Programming (XP), Rapid Application Development (RAD)
Classical Waterfall Model
▪ The first formal description of the waterfall model is often cited as a 1970 article by Winston
W. Royce, although Royce did not use the term waterfall in that article. The earliest use of
the term "waterfall" may have been in a 1976 paper by Bell and Thayer.
▪ The waterfall Model illustrates the software development process in a linear sequential flow;
hence it is also referred to as a linear-sequential life cycle model. Here, each phase must be
completed before the next phase can begin and there is no overlapping in the phases. The
development proceeds to the next phase and there is no turning back.
▪ The model has six phases:

Advantages of the Waterfall Model


▪ The requirements are clearly and accurately stated
▪ Detailed documentation
▪ Careful planning
▪ The start and end points for each phase are set
▪ The tasks remain as stable as possible throughout the development process;
▪ It provides easy control and transparency for the customer due to a strict reporting
system;
▪ Release date for the finished product, as well as its final cost can be calculated prior to
development.
Drawbacks of the Waterfall Model
▪ It is not desirable for complex project where requirement changes frequently
▪ Testing period comes quite late in the developmental process
▪ Documentation occupies a lot of time of developers and testers
▪ Clients valuable feedback cannot be included with ongoing development phase
▪ Small changes or errors that arise in the completed software may cause a lot of problems
The waterfall method is still preferred by some developers because of its predictability and
known costs. You know what you’re paying for and you know when you’re going to get it.

When to Use the Waterfall Model


▪ When quality is more important than cost or schedule.
▪ When requirements are very well known, clear, and fixed.
▪ New version of existing product is needed.
▪ Porting an existing product to a new platform
Parallel Waterfall Development
✓ Here, instead of doing the design and implementation in sequence, a general design for the
whole system is performed.
✓ Then the project is divided into a series of subprojects that can be designed and implemented
in parallel.
Waterfall V-Model (Verification and Validation Model)
▪ It is basically extension of waterfall model but unlike water fall model here in V-model,
testing is done simultaneously with the development phase. The main disadvantage of
water fall model i.e., the Testing Starts after Development ends. But in V-model the
testing starts early in life cycle.

Advantages of the Waterfall V Model


✓ Less bugs: Do testing in every layer
✓ Higher chance of success
✓ Works well for small projects where requirements are easily understood.
Drawbacks of the Waterfall V-model:
✓ If any changes happen in midway, then the test documents along with requirementdocuments
has to be updated.
✓ High confidence of customer is required for choosing the V-Shaped model approach. Since,
no prototypes are produced, there is a very high risk involved in meeting customer
expectations.

When to use the V-model:

✓ The V-shaped model should be used for small to medium-sized projects where requirements
are clearly defined and fixed.
Spiral Model
✓ 1990s by Barry Boehm - a software engineering professor.
✓ Spiral Model is a combination of Iterative Development Model and Waterfall Model with
very high emphasis on risk analysis.
✓ There are specific activities which are done in one iteration (spiral) where the output is a
small prototype of the large software. The same activities are then repeated for all the spirals
till the entire software is build.

Phases of Spiral Model


Phase 1: Planning objectives or identify alternative solutions
✓ In this stage, requirements are collected from customers and then the aims are recognized,
elaborated as well as analyzed at the beginning of developing the project.
✓ It is necessary to define alternatives for implementation (e.g. design A vs. design B) and
to determine the framework conditions as well as costs or time expenditure.
Phase 2: Identifying and resolving the risks
✓ All likely solutions are sketched, and then the best solution among them gets select.
✓ Then the different types of risks linked with the chosen solution are recognized and
resolved through the best possible approach.
Phase 3: Develop the next level of product
✓ As this stage proceeds to the end of this third quadrant, new software
or the next version of existing software is ready to deliver.
Phase 4: Planning the next cycle
✓ As the development process proceeds in the fourth quadrant, the
customers appraise the developed version of the project and reports if
any further changes are required.
✓ At last, planning for the subsequent phase is initiated.
Advantages of the Spiral Model

✓ Suitable for large projects: Spiral models are recommended when the project is large,
bulky or complex to develop.
✓ Risk Handling: There are a lot of projects that have un-estimated risks involved with them.
For such projects, the spiral model is the best SDLC model to pursue because it cananalyze
risk as well as handling risks at each phase of development.
✓ Customer Satisfaction: Customers can witness the development of product at every stage
and thus, they can let themselves habituated with the system and throw feedbacks
accordingly before the final product is made.
✓ Requirement’s flexibility: All the specific requirements needed at later stages can be
included precisely if the development is done using this model.
✓ Strong documentation control
Disadvantage of the Spiral Model
✓ Spiral model is not good for small projects.
✓ This model is more complex and difficult to understand if a new employee is entered in
the project development.
✓ It can be much expensive.
✓ Fast development and software are built at the SDLC.
✓ Not defined end points of the project, so it can take a long time to develop or iterations
can be gone infinitely.
When to use Spiral Model
✓ For medium and big projects.
✓ For high-risk projects.
✓ Requirements are complex
✓ Users are unsure of their needs
✓ If frequent changes required in the project.

Iterative development Approach


✓ Iterative development is when an attempt is made to develop a product with basicfeatures,
which then goes through a refinement process successively to add to the richness in features.
✓ Iterative - performing repeatedly, i.e., adding new functionality in a repetitive or cyclic manner

Incremental development Approach


✓ In an incremental approach, one aims to build pieces of program/product that is complete in
features and richness. In this case, each functionality is built to its fullest and additional
functionalities are added in an incremental fashion.
✓ Incremental - adding new functionality in small chunks
Incremental Iteration Approach

Evolution of Agile Approach


✓ In 2001, seventeen software developers met at a resort in Snowbird, Utah to discuss these
lightweight development methods. Together they published the Manifesto for Agile Software
Development.
✓ In 2009, a group working with Martin wrote an extension of software development principles, the
Software Craftsmanship Manifesto, to guide agile software development according to professional
conduct and mastery.
✓ In 2011, the Agile Alliance created the Guide to Agile Practices (renamed the Agile Glossary in
2016), an evolving open-source compendium of the working definitions of agile practices, terms,
and elements, along with interpretations and experience guidelines from the worldwide
community of agile practitioners.
Agile Manifesto
✓ The Agile Manifesto is made up for four foundational values and 12 key principles

✓ Values
1 Individuals and interactions over processes and tools
2 Working software over comprehensive documentation
3 Customer collaboration over contract negotiation
4 Responding to change over following a plan
✓ Agile Principles

1. Satisfy the Customer: Highest priority is to satisfy the customer through early and
continuous delivery of valuable software.

2. Welcome Change: Welcome changing requirements, even late in development. Agile


processes harness change for the customer’s competitive advantage.

3. Deliver Frequently: Deliver working software frequently, from a couple of weeks to a


couple of months, with a preference to the shorter timescale.
4. Work Together: Business people and developers must work together daily throughout
the project.
5. Build Projects: Build projects around motivated individuals. Give them the
environment and support they need, and trust them to get the job done.
6. Face-To-Face Time: The most efficient and effective method of conveying information
to andwithin a development team is face-to-face conversation.
7. Measure of Progress: Working software is the primary measure of progress.
8. Sustainable Development: Agile processes promote sustainable development. The
sponsors, developers and users should be able to maintain a constant pace indefinitely.
9. Continuous Attention: Continuous attention to technical excellence and good design
enhances agility.
10. Keep It Simple: Simplicity—the art of maximizing the amount of work not being
done—is essential
11. Organized Teams: The best architectures, requirements and designs emerge from self-
organizing teams.
12. Reflect for Effectiveness: At regular intervals, the team reflects on how to become
more effective, then tunes and adjusts its behavior accordingly.

Stages of the Agile Life Cycle


The main steps for Agile project management are as follows:
✓ In the Agile methodology, each project is broken up into several ‗Iterations ‘.
✓ All Iterations should be of the same time duration (between 2 to 8 weeks).
✓ At the end of each iteration, a working product should be delivered.
✓ In simple terms, in the Agile approach the project will be broken up into 10 releases
(assuming each iteration is set to last 4 weeks).
✓ Rather than spending 1.5 months on requirements gathering, in Agile software
development, the team will decide the basic core features that are required in the product
and decide which of these features can be developed in the first iteration.
✓ Any remaining features that cannot be delivered in the first iteration will be taken up in the
next iteration or subsequent iterations, based on priority.
✓ At the end of the first iterations, the team will deliver a working software with the features
that were finalized for that iteration.
✓ There will be 10 iterations and at the end of each iteration the customer is delivered a
working software that is incrementally enhanced and updated with the features that were
shortlisted for that iteration.
Advantages of the Agile Model
✓ Continuous attention to technical excellence and good design.
✓ Customer satisfaction by rapid, continuous delivery of useful software.
✓ People and interactions are emphasized rather than process and tools. Customers,
developers and testers constantly interact with each other.
✓ Working software is delivered frequently (weeks rather than months).
✓ Face-to-face conversation is the best form of communication.
✓ Regular adaptation to changing circumstances. Even late changes in requirements are
welcomed
Drawbacks of the Agile Model
✓ In case of some software deliverables, especially the large ones, it is difficult to assess the
effort required at the beginning of the software development life cycle.
✓ There is lack of emphasis on necessary documentation.
✓ The project can easily get taken off track if the customer representative is not clear what
final outcome that they want.
✓ Only senior programmers are capable of taking the kind of decisions required during the
development process.
Popular Agile Methodologies/Frameworks
➢ Scrum [1995]
➢ eXtreme Programming (XP) [1996]
➢ Dynamic Systems Development Method (DDSM) [1994]
➢ Feature Driven Development (FDD) [1997]
➢ Adaptive Software Development (ASD)
➢ The Crystal Method [1996]
➢ Lean Software Development (LSD)
➢ Disciplined Agile (DA)
➢ Scaled Agile Framework (SAFe)
Other Practices in Agile:
There are many other practices and frameworks that are related to Agile. They include:
➢ Rapid Application Development (RAD) [1991]
➢ Rational Unified Process (RUP) [1994]

.
Agile Methodology Vs Traditional Methodology

Scrum
The goal of Scrum is to dramatically improve productivity in teams and to deliver new software
every 2-4 weeks.

Scrum Events
Sprint: The Sprint is a timebox of one month or less during which the team produces a potentially
shippable product Increment.

Sprint Planning: Sprint planning meeting is first attended by the customers, users, management,
Product owner and Scrum Team where a set of goals and functionality are decided on.

Daily Scrum: It is a daily meeting for approximately 15 minutes


Sprint Review: At the end of the Sprint, the entire team (including product owner) reviews the
results of the sprint with stakeholders of the product to get feedback.

Sprint Retrospective: At the end of the Sprint following the sprint review the team (including
product owner) should reflect upon how things went during the previous sprint and identify
adjustments they could make going forward.
Artifacts
Product Backlog: A product backlog is a list of the new features, changes to existing features, bug
fixes, infrastructure changes or other activities that a team may deliver in order to achieve a specific
outcome. The Product Owner is responsible for maintaining the Product Backlog.

Sprint Backlog: Sprint backlog is a subset of product backlog. It contains the requirements that are
used to develop the current sprint.

Increment: The increment is the collection of the Product Backlog Items that meet the team ‘s
Definition of Done by the end of the Sprint.

Scrum Roles
Scrum Master: Master is responsible for setting up the team, sprint meeting and removesobstacles
to progress
Product owner: The Product Owner creates product backlog, prioritizes the backlog and is
responsible for the delivery of the functionality at each iteration
Scrum Team: Team manages its own work and organizes the work to complete the sprint orcycle

Scrum Lifecycle
1 Establish the Product Backlog.
2 The product owner and development team conduct Sprint Planning.
3 As the Sprint progresses, development team perform the work necessary to deliver the
selected product backlog items.
4 On a daily basis, the development team coordinate their work in a Daily Scrum.
5 At the end of the Sprint the development team delivers the Product Backlog Items selected during
Sprint Planning
6 The Team repeats steps 2–5 until the desired outcome of the product have been met.
Advantages of Scrum

✓ Enables projects where the business requirements documentation is hard


✓ It is a lightly controlled method
✓ Iterative in nature
✓ Easier to cope with the changes.
✓ Daily meetings make it possible to measure individual productivity.
✓ Issues are identified well in advance through the daily meetings
✓ It is easier to deliver a quality product in a scheduled time.
✓ The overhead cost in terms of process and management is minimal
Disadvantages of Scrum

✓ If the team members are not committed, the project will either never complete or fail.
✓ It is good for small, fast-moving projects as it works well only with small team.
✓ This methodology needs experienced team members only.
✓ If any of the team members leave during a development it can have a huge inverse
effect on the project development
✓ Project quality manager is hard to implement and quantify unless the test team are able
to conduct regression testing after each sprint.
eXtreme Programming (XP)
eXtreme Programming (XP) is an agile software development framework that aims to produce
higher quality software, and higher quality of life for the development team. Small/short releases
➢ Metaphor
➢ Simple Design
➢ Refactoring
➢ Pair programming
➢ Collective ownership
➢ Continuous Integration
➢ 40-hour week
➢ On-site customer
➢ Coding Standards
The lifecycle of XP
The lifecycle of an XP is divided into six phases:

✓ Exploration,

✓ Planning,

✓ Iterations to release,

✓ Production,

✓ Maintenance and

✓ Death.
Rapid Application Development (RAD)
✓ Rapid Application Development is heavily focused primarily on rapid
prototyping of software products, frequently iterating based on feedback,
and continuously releasing updated versions of those products to the
market.
✓ The RAD concept was officially introduced to the public in 1991 with the
book Rapid Application Development by James Martin. Rapid application
development has become one of the most popular and powerful
development methods, which falls under theparental category of agile
development techniques.

The James Martin approaches to RAD divides the process into four distinct phases:
1. Requirements planning phase
2. typically use a combination of Joint Application Development (JAD)
techniques and CASE tools to translate user needs into working models.
3. Construction phase – focuses on program and application development
task similar to the SDLC.
4. Cutover phase
Advantages of RAD Model

✓ The time required to develop the software is drastically reduced


✓ All the software prototypes produced can be kept in a repository for future
use.
✓ It is a big cost saver in terms of project budget as well as project time and
cost due to reusability of the prototypes.
✓ It is much easier for a project manager to be accurate in estimating project
costs
✓ Customer giving feedback in the whole process.
✓ It promotes better documentation through written test cases.
Drawbacks of RAD Model
✓ A technically strong team is essential
✓ Documentation is completed in the final phase
✓ The RAD model requires a frequent cycle of prototypes
✓ It is difficult for large-scale projects.

When to use the RAD Model


✓ RAD is particularly useful for small businesses delivering innovative products
in a competitive market place.
✓ The on-the-fly approach accommodates unexpected changing of requirements.
✓ RAD models can be very successful when a quick delivery of a product is
needed for a customer. It is also the best model to choose when there are
going to be changes made to the prototype throughout the process before the
final product is completed.
✓ RAD should only be used when a system can be modulated to be delivered
incrementally. If you need to build an internal business tool or a customer
facing portal, RAD can assist you to deliver better experience to your end
users.
Rational Unified Process (RUP) Model
All efforts, including modeling, is organized into workflows in the Rational Unified
Process (RUP) and is performed in an iterative and incremental manner.

✓ It uses a component-based architecture


✓ Uses visually modeling software
✓ Manage requirements using use-cases and scenarios
✓ Design is iterative and incremental
✓ UP assists in planning quality control and assessment
✓ RUP divides the project into four phases
❖ Inception – By the end of this process a business case should have been
made; feasibility of the project assessed; and the scope of the design
should be set.
❖ Elaboration – In this phase a basic architecture should have been
produced and a plan ofconstruction agreed. Furthermore, a risk analysis
takes place and those risks considered to be major should have been
addressed.
❖ Construction – This process produces a beta-release system. A working
system should be available and sufficient enough for preliminary testing
under realistic conditions.
❖ Transition – The system is introduced to the stakeholders and intended
users. It is crossed when the project team and the stakeholders agree that
the objectives agreed in the inception phase have been met and the user
is satisfied.
Advantages of RUP

✓ When a phase changes, through the use of a workflow, some work can be
carried out in that other phase.
✓ Thus, overlapping of work is possible over the phases of the project.
✓ It is proactively able to resolve the project risks associated with the client's
✓ Less time is required for integration
Drawbacks of RUP

✓ RUP brings an overhead in terms of maintaining the project phases as well


as workflows.
✓ Heavily relies on proficient and expert team members
✓ Integration will only add to the confusion and cause more issues during
the stages of testing
When to Use RUP
✓ This model is best suited for projects where the requirements from the end
users are ambiguous at the beginning. RUP allows the refinement of the
requirements over several iterations.
✓ RUP is definitely suited for software projects in which changes occur in
the design or requirements.

You might also like