0% found this document useful (0 votes)
15 views18 pages

Sen Unit01

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)
15 views18 pages

Sen Unit01

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/ 18

1 Software:-

• A Software is a collection of instructions that enable the user to interact with a computer, its hardware,
or perform tasks.

• Computer software, or simply software, is a collection of data or computer instructions that tell the
computer how to work.

• Software is a set of instructions, data or programs used to operate computers and execute specific tasks.

• Opposite of hardware, which describes the physical aspects of a computer, the software is a generic term
used to refer to applications, scripts and programs that run on a device.

• Without software, most computers would be useless. For example, without your Internet browser
software, you could not surf the Internet or read this page.

• Without an operating system, the browser could not run on your computer. The picture shows a
Microsoft Excel box, an example of a spreadsheet. software program.

1.0.1 Software Engineering:-


– Software engineering is an engineering branch associated with development of software product
using well-defined scientific principles, methods and procedures.
– Software Engineering is a systematic approach to the design, development, operation, and
maintenance of a software system.
– The application of a systematic, disciplined, quantifiable approach to the development,
operation and maintenance of software; that is, the application of engineering to software.
– Software engineering is the systematic application of engineering approaches to the
development of software.
– It is branch of computer science that deals with the design, implementation, and maintenance of
complex computer programs.
– The systematic application of scientific and technological knowledge, methods, and experience
to the design, implementation, testing, and documentation of software.
1.0.2 Types of Software:-
Based on the goal, computer software can be divided into:
1. System Software:-
– System software is software designed to provide a platform for other software.
– System Software is a collection of programs written to serve other programs. Some system
software (e.g.- compliers, editors, and file management utilities) processes complex, but
determinate information structures.
– In contrast to system software, software that allows users to do useroriented tasks such as
create text documents, play games, listen to music, or browse the web are collectively
referred to as application software.
– Best examples of system software include operating systems like macOS, Ubuntu (a Linux
distribution) and Microsoft Windows, computational science software, game engines,
industrial automation, and software as a service applications.
2. Application Software:-
– Application software (app for short) is a program or group of programs designed for end
users.
– Application Software consists of standalone programs that solve a specific business need. –
Application in this area process business or technical data in a way that facilities business
operations or management technical decision making.
– Examples of an application include a word processor, a spreadsheet, an accounting
application, a web browser, an email client, a media player, a file viewer, an aeronautical
flight simulator, a console game or a photo editor.
3. Engineering / Scientific Software:-
– Scientific and engineering software satisfies the needs of a scientific or engineering user to
perform enterprise specific tasks.
– Such software is written for specific applications using principles, techniques and formulae
specific to that field. Examples are software like MATLAB, AUTOCAD, PSPICE, ORCAD,
etc.
– Applications range from astronomy to volcanology, from automotive stress analysis to
space shuttle orbital dynamics and from molecular biology to automated manufacturing.
4. Embedded Software:-
– Embedded Software resides within a product or system and is used to implement and
control features and functions for the end user and for the system itself.
– This type of software is embedded into the hardware normally in the Read Only Memory
(ROM) as a part of a large system and is used to support certain functionality under the
control conditions.
– Examples are software used in instrumentation and control applications, washing machines,
satellites, microwaves, washing machines etc.
4. Artificial Intelligence Software:-
– Artificial intelligence (AI) is the simulation of human intelligence processes by machines,
especially computer systems.
– Specific applications of AI include expert systems, natural language processing (NLP),
speech recognition and machine vision.
– The term may also be applied to any machine that exhibits traits associated with a human
mind such as learning and problem-solving.
– The technology can be applied to many different sectors and industries. AI is being tested
and used in the healthcare industry for dosing drugs and different treatment in patients, and
for surgical procedures in the operating room.
– AI Software makes use of non–numerical algorithms to solve complex problems that are
not amenable to computation or straightforward analysis.
– Applications within this area include robotics, expert systems, pattern recognition (image
and voice), artificial neural networks, theorem proving, and game playing.
5. Web Applications:-
– “WebApps”, span a wide array of applications. WebApps are evolving into sophisticated
computing environments that not only provide standalone features, computing functions, and
content to the end user, but also are integrated with corporate databases and business
applications.

1.0.3 Characteristic of Software:-

1. Software is developed or engineered; it is not manufactured in the classical


sense.
– Although some similarities exist between software development and hardware
manufacture, the two activities are fundamentally different.
– In both activities, high quality is achieved through good design, but the manufacturing
phase for hardware can introduce quality problems that are non-existent (or easily corrected)
for software.
– Both activities are dependent on people, but the relationship between people applied and
work accomplished is entirely different.
– Software costs are concentrated in engineering. This means that software projects cannot be
managed as if they were manufacturing projects.
2. Software doesn’t “wear out.” Writing.
– The idealized curve as shown in above figure is a gross oversimplification of actual failure
models for software. However, the implication is clear—software doesn’t wear out. But it
does deteriorate!.
– This contradiction can best be explained by considering the “actual curve” shown in Figure.
– During its life, software will undergo change (maintenance). As changes are made, it is
likely that some new defects will be introduced, causing the failure rate curve to spike as
shown in Figure.

– Before the curve can return to the original steady-state failure rate, another change is requested, causing
the curve to spike again. Slowly, the minimum failure rate level begins to rise
—the software is deteriorating due to change.
3. Although the industry is moving toward component-based construction,
most software continues to be custom built.
– The reusable components have been created so that the engineer can concentrate on the truly innovative
elements of a design, that is, the parts of the design that represent something new.
– In the software world, it is something that has only begun to be achieved on a broad scale. A software
component should be designed and implemented so that it can be reused in many different programs
– A software component should be designed and implemented so that it can be reused in many different
programs. Modern reusable components encapsulate both data and the processing that is applied to the
data, enabling the software engineer to create new applications from reusable parts.
– For example, today’s interactive user interfaces are built with reusable components that enable the
creation of graphics windows, pull-down menus, and a wide variety of interaction mechanisms.
1.0.3 SW Engineering layers: A Layered Technology/Approach:-
Software engineering is a layered technology. The layers of software engineering as shown in the above
diagram are:-
(a) A Quality Focus:-
– Any engineering approach (including software engineering) must rest on an organizational
commitment to quality.
– A quality layer As a Bedrocks or backbones. Which is mainly focus on quality.
– Mainly focus on two types of Quality.
i. Functional.(degree of correctness).
ii. Non-functional.(maintainability and robustness).
– Total quality management, six sigma and similar philosophies foster a continuous
process improvement culture, and it is this culture that ultimately leads to the
development of increasingly more effective approaches to software engineering.
(b)Process Layer:-
– The foundation for software engineering is the process layer.
– Software Engineering process is the glue that holds the technology layers together and enables
rational and timely development of computer software.
– Process defines a framework that must be established for effective delivery of software
engineering technology.
– The software process forms the basis for management control of software projects and
establishes the context in which technical methods are applied, works products (models,
documents, data, reports, forms etc.) are produced, milestones are established, quantity is ensured
and change is properly managed.
– The Process layer Like Road maps or city maps which helps for
i. Timely delivery of software product.
ii. Predefined plan.

iii. Project management and control.

(c) Method Layer:-


– Software Engineering methods provide the technical “how to’s” for building software.
– Methods encompass a broad array of tasks that include communication, requirements analysis,
design modeling, program construction, testing and support.
– The Method layer Provide technique/method various for build sw and each contain multiple
tasks.(Requirement analysis, testing, support etc.)
– For example which language and interaction of components, integration etc.
– Basically method layer provide Technical solution for question as
i. What to do?
ii. How situation arises?

iii. how to trace it?

(d)Tools:-
– Software Engineering tools provide automated or semi-automated support for the process and
the methods.
– When tools are integrated so that information created by one tool can be used by another, a
system for the support of software development, called computer–aided software engineering is
established.
– The Automated and semi-automated tools are Computer added sw working together for
developments.
– Example of tools required for software development as code Editor, modeling, DB, Testing, etc.
2 Software Developments Generic Process Framework:-
1. A process framework establishes the foundation for a complete software process by identifying a
small number of framework activities that are applicable to all software projects, regardless of their
size or complexity.
2. Process defines a framework that must be established for effective delivery of software engineering
technology.
3. The software process forms the basis for management control of software projects and establishes
the context in which technical methods are applied, works products (models, documents, data,
reports, forms etc.) are produced, milestones are established, quantity is ensured and change is
properly managed.
4. In addition, the process framework encompasses a set of umbrella activities that are applicable
across the entire software process.
5. From the below figure, each framework activity is populated by a set of software engineering
actions- a collection of related tasks that produces a major software engineering work product (e.g.
design is a SE action).
6. Each action is populated with individual work tasks that accomplish some part of the work implied
by the action.
7. The Software Development Generic Process Framework can be divide into following main parts.
(a) Software Process.
• A process framework establishes the foundation for a complete software process by identifying
a small number of framework activities that are applicable to all software projects, regardless of
their size or complexity.
• SW engineering process is the glue that holds the technology layers together and enables
rational and timely development of software.
Figure 1: SW Development Generic Process Framework

(b) Process Framework.


A process framework establishes the foundation for a complete software process by identifying a small
number of framework activities that are applicable to all software projects, regardless of their size or
complexity. In addition, the process framework encompasses a set of umbrella activities that are
applicable across the entire software process. Software Process
i. Communication :-

• This framework activity involves heavy communication collaboration with the customer(and the
stakeholders) and encompasses requirements gathering and other related activities.

• Involves communication among the customer and other stake holders; encompasses requirements,
gathering.

ii. Planning :-

• This activity establishes a plan for the software engineering work that follows.

• It describes the technical tasks to be conducted, the risks that are likely, the resources that will be
required, the work products to be produced and a work schedule.

iii. Modeling :-
This activity encompasses the creation of models that allow the developer the customer to
better understand software requirements the design that will achieve those requirements.
iv. Construction:-
This activity combines code generation and the testing that is required to uncover errors
in the code.
v. Deployment:-
The software is delivered to the customer who evaluates the delivered product and
provides feedback based on the evaluation.

(c) Umbrella Activities.


• The umbrella activities nothing but the background process in software development life cycle
which is continuously executing from starting to end of software development process which is
focusing on mainly quality assurance.
• Typical umbrella activities are:
i. Software project tracking and control.
– In this activity, the developing team accesses project plan and compares it with the
predefined schedule.
– If these project plans do not match with the predefined schedule, then the required
actions are taken to maintain the schedule.
ii. Risk management.
– SQA is the planned and systematic pattern of activities which are required to give a
guarantee of software quality.
– For example, during the software development meetings are conducted at every stage of
development to find out the defects and suggest improvements to produce good quality
software.
iii. Formal Technical Reviews (FTR).
– FTR is a meeting conducted by the technical staff.
– The motive of the meeting is to detect quality problems and suggest improvements.
– The technical person focuses on the quality of the software from the customer point of
view.
iv. Measurement.
– Measurement consists of the effort required to measure the software.
– The software cannot be measured directly. It is measured by direct and indirect
measures.
– Direct measures like cost, lines of code, size of software etc.
– Indirect measures such as quality of software which is measured by some other factor.
Hence, it is an indirect measure of software.
v. Software Configuration Management (SCM).
– It manages the effect of change throughout the software process.
vi. Reliability management.
– It defines the criteria for reuse the product.
– The quality of software is good when the components of the software are developed for
certain application and are useful for developing other applications.
vii. Work product preparation and production.
– It consists of the activities that are needed to create the documents, forms, lists, logs
and user manuals for developing a software.
(e) Framework Actions.
• The framework action includes set of task which is include in software development process.
• Task sets consist of a collection of small work tasks, project milestones, work productivity and
software quality assurance points.
2 Software Development Process Models:-
• In software development life cycle, various models are designed and defined. These models are
called as Software Development Process Models.
• On the basis of project motive, the software development process model is selected for
development.
• The SDLC aims to produce a high-quality software that meets or exceeds customer expectations,
reaches completion within times and cost estimates.
• SDLC is a framework defining tasks performed at each step in the software development process. •
SDLC is a process followed for a software project, within a software organization.
• It consists of a detailed plan describing how to develop, maintain, replace and alter or enhance
specific software.
• The life cycle defines a methodology for improving the quality of software and the overall
development process.
• There are various software development life cycle models defined and designed which are
followed during the software development process.
• Each process model follows a Series of steps unique to its type to ensure success in the process of
software development.
• The software development process model can be divide into two categories.
1. Prescriptive Models.
(a) Waterfall Model.

Figure 2: Waterfall Model.

i. The waterfall model, sometimes called the classic life cycle, suggests a systematic, sequential
approach to software development that begins with customer specification of requirements and
progresses through planning, modeling, construction, and deployment, culminating in ongoing
support of the completed software.
ii. The Waterfall Model was the first Process Model to be introduced. It is also referred to as a
linear-sequential life cycle model. It is very simple to understand and use.
iii. In a waterfall model, each phase must be completed before the next phase can begin and there is
no overlapping in the phases.
iv. Situation in which waterfall model is applicable.
• There are times when the requirements for a problem are well understood—when work flows
from communication through deployment in a reasonably linear fashion
• This situation is sometimes encountered when well-defined adaptations or enhancements to an
existing system must be made.
v. Framework activities involved:
A. Communication:- It involves heavy communication with the customer (or stakeholder) and
encompasses requirement gathering and related activities.
B. Planning:- In this activity, effort required, cost/budget, risk analysis ,time duration re estimated (project
plan is made)

C. Modeling:- This activity creates analysis and design models that both developers and customer to better
understand the requirements. Data structure, software architecture and other details are made.

D. Construction:- This activity performs code generation and testing to ensure whether requirements are
fulfilled. Code generation is done first and then testing is done after that.

E. Deployment:- Once the product is fully developed, it is delivered to the customer. Customer evaluates
the product and provides feedback.

vi. Advantages:-
• Simple and easy to understand and use.

• Phases are completed one at a time.

• Works well for smaller projects.

• Clearly defined stages.

viii. Disadvantages.
• Not a good model for complex and object-oriented projects.
• Not suitable for the projects where requirements are at a moderate to high risk of changing. So, risk
and uncertainty is high with this process model.
• Real projects rarely follow the sequential flow that the model proposes. Although the linear model
can accommodate iteration, it does so indirectly. As a result, changes can cause confusion as the
project team proceeds.
• It is often difficult for the customer to state all requirements explicitly. The waterfall model requires
this and has difficulty accommodating the natural uncertainty that exists at the beginning of many
projects.

(b) Incremental process model/ Iterative Model.


Figure 3: Incremental Model.

i. The incremental model combines the elements of waterfall model and they are applied in
an iterative fashion.
ii. The first increment in this model is generally a core product. Each increment builds the
product and submits it to the customer for any suggested modifications.
iii. The next increment implements on the customer’s suggestions and add additional
requirements in the previous increment.

iv. This process is repeated until the product is finished.

vi. Situation in which incremental model is applicable.

• There are many situations in which initial software requirements are reasonably well defined, but
the overall scope of the development effort precludes a purely linear process.

• In addition, there may be a compelling need to provide a limited set of software functionality to
users quickly and then refine and expand on that functionality in later software releases.

• When an incremental model is used, the first increment is often a core product. That is, basic
requirements are addressed but many supplementary features (some known, others unknown)
remain undelivered.

• The plan addresses the modification of the core product to better meet the needs of the customer
and the delivery of additional features and functionality. This process is repeated following the
delivery of each increment, until the complete product is produced. vi. Advantages.

• This model is flexible because the cost of development is low and initial product delivery is faster.
• It is easier to test and debug during the smaller iteration.

• The working software generates quickly and early during the software life cycle.

• The customers can respond to its functionalities after every increment.

vii. Disadvantages.

• The cost of the final product may cross the cost estimated initially.

• This model requires a very clear and complete planning.

• The planning of design is required before the whole system is broken into small increments.

• The demands of customer for the additional functionalities after every increment causes problem
during the system architecture.

(c) Prototype process model.


i. Software prototyping model works best in scenarios where the project’s requirement are not
known. It is an iterative, trial, and error method which take place between the developer and the
client.

ii. Prototype methodology is defined as a Software Development model in which a prototype is


built, test, and then reworked when needed until an acceptable prototype is achieved. It also
creates a base to produce the final system.

iii. Software prototyping is becoming very popular as a software development model, as it enables
to understand customer requirements at an early stage of development.

iv. It helps get valuable feedback from the customer and helps software designers and
developers understand about what exactly is expected from the product under
development.
v. Advantages.
• Quicker user feedback is available leading to better solutions.
• Since a working model of the system is displayed, the users get a better understanding of
the system being developed.
• Increased user involvement in the product even before its implementation.
• Users are actively involved in development. Therefore, errors can be detected in the initial
stage of the software development process.

vi. Disadvantages.
• Poor documentation because the requirements of the customers are changing.
• Prototyping is a slow and time taking process.
• Inefficient algorithm and operating system.
• The Quality and maintainability is not build in system
(d) Spiral Model.

i. Spiral Model is a combination of a waterfall model and iterative model. Each phase in spiral
model begins with a design goal and ends with the client reviewing the progress.
ii. The development team in Spiral-SDLC model starts with a small set of requirement and goes
through each development phase for those set of requirements.
iii. The software engineering team adds functionality for the additional requirement in every-
increasing spirals until the application is ready for the production phase.
iv. Situation in which Spiral model is applicable.
• The prototyping paradigm assists you and other stakeholders to better understand what is
to be built when requirements are fuzzy.
• The prototyping paradigm begins with communication. You meet with other stakeholders
to define the overall objectives for the software, identify whatever requirements are known,
and outline areas where further definition is mandatory.
• Prototyping iteration is planned quickly, and modeling (in the form of a “quick design”)
occurs. A quick design focuses on a representation of those aspects of the software that will
be visible to end users (e.g., human interface layout or output display formats). The quick
design leads to the construction of a prototype.
• [U+F0B7] The prototype is deployed and evaluated by stakeholders, who provide feedback
that is used to further refine requirements. Iteration occurs as the prototype is tuned to
satisfy the needs of various stakeholders, while at the same time enabling you to better
understand what needs to be done.
• When long term project commitment is not feasible due to changes in economic priorities
Advantages.
• Users are actively involved in the development.
• Users get better understanding of the system being developed.
• Errors can be detected much earlier.
• Quick user feedback is available.
• There is always a space for customer feedback.

Disadvantages.
• Risk of not meeting the schedule or budget.
• Overall software quality or maintainability may not get considered when the prototype is
being developed.
• For its smooth operation spiral model protocol needs to be followed strictly.
• An inefficient algorithm may be implemented.
• Inappropriate OS or programming language maybe used simply because it is available.

2. Specialized process models.

Agile Software Development:-


1. Agile SDLC model is a combination of iterative and incremental process models with focus on
process adaptability and customer satisfaction by rapid delivery of working software product.
2. Agile Methods break the product into small incremental builds. These builds are provided in
iterations.
3. Each iteration typically lasts from about one to three weeks.
4. Agile model believes that every project needs to be handled differently and the existing
methods need to be tailored to best suit the project requirements.
5. In Agile, the tasks are divided to time boxes (small time frames) to deliver specific features for
a release.
6. Iterative approach is taken and working software build is delivered after each iteration.
7. Each build is incremental in terms of features; the final build holds all the features required by
the customer.
8. The Agile thought process had started early in the software development and started
becoming popular with time due to its flexibility and adaptability.

• Importance of Software Development.


1. Promotes teamwork and cross training.
2. Functionality can be developed rapidly and demonstrated.
3. Resource requirements are minimum.
4. Suitable for fixed or changing requirements.
5. Delivers early partial working solutions.
6. Good model for environments that change steadily.
7. Transparency i.e it is requires clients to understand that they are seeing a work in progress in
exchange for this added benefit of transparency
8. Early and Predictable Delivery i.e By using time-boxed, fixed schedule Sprints of 1-4 weeks,
new features are delivered quickly and frequently, with a high level of predictability.
9. Predictable Costs and Schedule i.e Because each Sprint is a fixed duration, the cost is
predictable and limited to the amount of work that can be performed by the team in the fixed-
schedule time box.
10. Allows for Change i.e New or changed backlog items can be planned for the next iteration,
providing the opportunity to introduce changes within a few weeks.
11. Focuses on Business Value i.e By allowing the client to determine the priority of features, the
team understands what’s most important to the client’s business, and can deliver the features
that provide the most business value.
12. Focuses on Users i.e Agile commonly uses user stories with business focused acceptance
criteria to define product features. By focusing features on the needs of real users, each feature
incrementally delivers value, not just an IT component.
13. Improves Quality i.e by breaking down the project into manageable units, the project team
can focus on high-quality development, testing, and collaboration.
• Agile software development principles.
1. Our highest priority is to satisfy the customer through early and continuous delivery of
valuable software.
2. Welcome changing requirements, even in late development.
3. Deliver working software frequently (weeks rather than months)
4. Close, daily cooperation between business people and developers
5. Projects are built around motivated individuals, who should be trusted
6. Face-to-face conversation is the best form of communication (co-location)
7. Working software is the primary measure of progress
8. Sustainable development, able to maintain a constant pace
9. Continuous attention to technical excellence and good design
10. Simplicity—the art of maximizing the amount of work not done—is essential
11. Best architectures, requirements, and designs emerge from self-organizing teams
12. Regularly, the team reflects on how to become more effective, and adjusts accordingly

4.0.1 Extreme Programming.


1. Extreme Programming is a software development methodology designed to improve the quality of
software and its ability to properly adapt to the changing needs of the customer or client.

2. Extreme Programming aims to provide iterative and frequent small releases throughout the project,
allowing both team members and customers to examine and review the project’s progress throughout
the entire SDLC.

3. Extreme Programming emphasizes teamwork. Managers, customers, and developers are all equal
partners in a collaborative team.

4. The team self-organizes around the problem to solve it as efficiently as possible.

5. Extreme Programming improves a software project in five essential ways; communication, simplicity,
feedback, respect, and courage.

6. Extreme Programmers constantly communicate with their customers and fellow programmers. They
keep their design simple and clean.

7. They get feedback by testing their software starting on day one. They deliver the system to the
customers as early as possible and implement changes as suggested.

8. Every small success deepens their respect for the unique contributions of each and every team
member. With this foundation Extreme Programmers are able to courageously respond to changing
requirements and technology.

9. There are many small pieces. Individually the pieces make no sense, but when combined together a
complete picture can be seen.

• Advantages of Extreme Programming.


1. Fewer documentation Require.

2. Collaboration with customer.

3. Flexibility to developer.

4. Easy to manage.

• Disadvantages of Extreme Programming.


1. Highly depends on customer interaction.

2. Transfer of technology to new team member may be quite challenging due to lack of
documentation.

3. Follows the approach of iterative process.

4.0.2 Adaptive Software Development:-


1. The Adaptive software development model proposed by Jim Highsmith in (2000) which focusing on
human collaboration and team self-organization as a technique to build complex software and system.
2. Adaptive software development replaces the traditional waterfall cycle with a repeating series of
speculate, collaborate, and learn cycles.

3. The characteristics of an ASD life cycle are that it is mission focused, feature based, iterative,
timeboxed, risk driven, and change tolerant.

4. ASD‘s overall emphasis on the dynamics of self-organizing teams, interpersonal collaboration, and
individual and team learning yield software project teams.

5. The method follows a dynamic lifecycle instead of the traditional, static lifecycle, Plan-Design-Build.

6. It is characterized by constant change, re-evaluation, peering into an uncertain future and intense
collaboration among developers, testers and customers.

Figure 7: Adaptive software development.

7. ASD have three phase as given bellow.


(a) Speculation.

• When the project is initiated then an adaptive cycle planning is conducted.

• Adaptive cycle planning uses project initiation information, the customer’s mission statement, project
constraints (e.g. delivery date), and basic requirements to define the set of release cycles (increments)
that will be required for the project.
• Based on the information obtained at the completion of the first cycle, the plan is reviewed and
adjusted so that planned work better fits the reality.

(b) Collaboration.

• This phase consists of Concurrent component engineering. Effective collaboration with customer is
very important.

• Collaborate would require the ability to work jointly to produce results, share knowledge or make
decisions.

• More concern about collaboration and dealing with concurrency than about the details of designing,
testing, and coding.

(c) Learning.

• This phase consists of Quality review and Final Q/A release.

• During the learning phase, the newest version of the software is released to users.

• This generates the bug and user reports used during the first phase of the project, and the cycle
repeats itself. During this phase components implemented and tested.

8. Advantages of ASD.
• Focused on the end users, which can lead to better and more intuitive products.

• Allows for on-time and even early delivery.

• Encourages more transparency between developers and clients.

9. Disadvantages of ASD.
• Demands extensive user involvement, which can be difficult to facilitate.

• Integrates testing into every stage, which can add to a project’s costs.

• Emphasis on rapid iterating and continuous feedback can lead to scope creep.

You might also like