0% found this document useful (0 votes)
11 views7 pages

Software Rem Models

The Evolutionary Model divides the development cycle into smaller, incremental phases, allowing users to provide feedback after each cycle, which helps the product evolve over time. It is particularly useful for large projects and object-oriented software development, offering advantages like adaptability to changing requirements and early user involvement, but it also has drawbacks such as communication difficulties and increased management complexity. The Iterative Enhancement Model, on the other hand, focuses on continuous improvement and flexibility, allowing for early delivery of functional components, but it can lead to higher costs and documentation challenges.

Uploaded by

gagan
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)
11 views7 pages

Software Rem Models

The Evolutionary Model divides the development cycle into smaller, incremental phases, allowing users to provide feedback after each cycle, which helps the product evolve over time. It is particularly useful for large projects and object-oriented software development, offering advantages like adaptability to changing requirements and early user involvement, but it also has drawbacks such as communication difficulties and increased management complexity. The Iterative Enhancement Model, on the other hand, focuses on continuous improvement and flexibility, allowing for early delivery of functional components, but it can lead to higher costs and documentation challenges.

Uploaded by

gagan
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

What is the Evolutionary Model?

The Evolutionary development model divides the development cycle into


smaller, incremental waterfall models in which users can get access to the
product at the end of each cycle.
1. Feedback is provided by the users on the product for the planning
stage of the next cycle and the development team responds, often by
changing the product, plan, or process.
2. Therefore, the software product evolves with time.
3. All the models have the disadvantage that the duration of time from the
start of the project to the delivery time of a solution is very high.
4. The evolutionary model solves this problem with a different approach.
5. The evolutionary model suggests breaking down work into smaller
chunks, prioritizing them, and then delivering those chunks to the
customer one by one.
6. The number of chunks is huge and is the number of deliveries made to
the customer.
7. The main advantage is that the customer’s confidence increases as he
constantly gets quantifiable goods or services from the beginning of the
project to verify and validate his requirements.
8. The model allows for changing requirements as well as all work is
broken down into maintainable work chunks.

Evolutionary Model

Application of Evolutionary Model


1. It is used in large projects where you can easily find modules for
incremental implementation. Evolutionary model is commonly used
when the customer wants to start using the core features instead of
waiting for the full software.
2. Evolutionary model is also used in object oriented software
development because the system can be easily portioned into units in
terms of objects.
Necessary Conditions for Implementing this Model
1. Customer needs are clear and been explained in deep to the developer
team.
2. There might be small changes required in separate parts but not a
major change.
3. As it requires time, so there must be some time left for the market
constraints.
4. Risk is high and continuous targets to achieve and report to customer
repeatedly.
5. It is used when working on a technology is new and requires time to
learn.
Advantages Evolutionary Model
1. Adaptability to Changing Requirements: Evolutionary models work
effectively in projects when the requirements are ambiguous or change
often. They support adjustments and flexibility along the course of
development.
2. Early and Gradual Distribution: Functional components or prototypes
can be delivered early thanks to incremental development. Faster user
satisfaction and feedback may result from this.
3. User Commentary and Involvement: Evolutionary models place a
strong emphasis on ongoing user input and participation. This
guarantees that the software offered closely matches the needs and
expectations of the user.
4. Improved Handling of Difficult Projects: Big, complex tasks can be
effectively managed with the help of evolutionary models. The
development process is made simpler by segmenting the project into
smaller, easier-to-manage portions.
Disadvantages Evolutionary Model
1. Communication Difficulties: Evolutionary models require constant
cooperation and communication. The strategy may be less effective if
there are gaps in communication or if team members are spread out
geographically.
2. Dependence on an Expert Group: A knowledgeable and experienced
group that can quickly adjust to changes is needed for evolutionary
models. Teams lacking experience may find it difficult to handle these
model’s dynamic nature.
3. Increasing Management Complexity: Complexity can be introduced
by organizing and managing several increments or iterations,
particularly in large projects. In order to guarantee integration and
synchronization, good project management is needed.
4. Greater Initial Expenditure: As evolutionary models necessitate
continual testing, user feedback and prototyping, they may come with a
greater starting cost. This may be a problem for projects that have
limited funding.
Conclusion
The evolutionary model is a helpful framework in the quickly evolving field
of software development, where requirements are frequently modified and
user expectations change. As with any development process, optimizing
the advantages and minimizing the possible negatives of evolutionary
models in software engineering requires careful evaluation of project-
specific considerations.

What is the Iterative Enhancement Model?


Software development uses a dynamic and adaptable method called the
iterative enhancement Model. The iterative enhancement model
encourages a software product's ongoing evolution and improvement.
This methodology is noticeable due to its concentration on adaptability,
flexibility and change responsiveness. It makes it easier for a product
to evolve because it gives developers the freedom to progressively
enhance the software, making sure that it complies with evolving
specifications, user demands, and market demands. This helps products
evolve more easily.

Life-Cycle of Iterative Enhancement Model


The Iterative Enhancement Model creates an environment where
development teams can more effectively adjust to changing requirements
by segmenting the software development process into smaller, more
manageable parts. Every iteration improves on the one before it, adding
new features and fixing problems found in earlier stages. Members of the
team, stakeholders and end users are encouraged to collaborate and
communicate continuously to make sure the software meets changing
needs and expectations. Until the software is finished being built, the
iteration process is carried out, which involves giving the user the
increments.
Advantages of Iterative Enhancement Model
 Adaptation to changing requirements is made possible by its flexibility
in accomodating modifications and improvement during each iteration.
 Early software iterations provide clients with functional portions of the
product, facilitating prompt feedback and validation.
 Problems and risks can be identified and addressed early in the
developement process, reduces chances of issue for future stages.
 Feedback and constant client involvement are encouraged to make
sure the finished product lives up to user expectations.
 Every iteration is put through testing and improvement, leading to
higher quality product.
Disadvantages of Iterative Enhancement Model
 Especially in larger projects, managing several iterations at once can
add complexity.
 Higher cost
 Due to constant changes, there may be delays in documentation,
making it more difficult to maintain comprehensive documentation.
 Continuous customer engagement may not be possible in all
scenarios, which impacts the effectiveness of the model.
Specific use cases where this model proves
beneficial include:
1. Mobile app developement: Updates and improvements are often
needed for mobile apps to stay current with new devices, operating
system versions and user preferences. By using an iterative process
developers can release the beta versions of their apps, get user
feedback and then improve functionality of those iterations in future
release.
2. Web Application Development: The requirements for developing web
applications frequently change as a result of shifting user demand and
advancements in technology. The Iterative Enhancement Model makes
it possible to developed features incrementally and guaranteeing that
the application can be modified to satisfy changing user and market
demands. In later iterations it also makes it easier to incorporate new
features based on input from users.
3. E-commerce Platforms: Developement in e-commerece field often
involves constant updates. Implementing an iterative approach enables
the introduction of new functionality.
Conclusion
In the conclusion, the Iterative enhanced model has advantages such as
delivery, reducing risk, checking quality, and flexibility. But it also has
drawbacks like complexity, conflict deadlines, increased expenses,
documentation problems. Determing whether to use this model in light of
the particular requirements and properties of the software developement
project requires an understanding of both of its benefits and drawbacks.
Object Oriented Data Model :
In Object Oriented Data Model, data and their relationships are contained
in a single structure which is referred as object in this data model. In this,
real world problems are represented as objects with different attributes. All
objects have multiple relationships between them. Basically, it is
combination of Object Oriented programming and Relational Database
Model as it is clear from the following figure :
Object Oriented Data Model
= Combination of Object Oriented Programming + Relational
database model
Components of Object Oriented Data Model :

Basic Object Oriented Data Model

 Objects –
An object is an abstraction of a real world entity or we can say it is an
instance of class. Objects encapsulates data and code into a single
unit which provide data abstraction by hiding the implementation
details from the user. For example: Instances of student, doctor,
engineer in above figure.

 Attribute –
An attribute describes the properties of object. For example: Object is
STUDENT and its attribute are Roll no, Branch, Setmarks() in the
Student class.

 Methods –
Method represents the behavior of an object. Basically, it represents
the real-world action. For example: Finding a STUDENT marks in
above figure as Setmarks().

 Class –
A class is a collection of similar objects with shared structure i.e.
attributes and behavior i.e. methods. An object is an instance of class.
For example: Person, Student, Doctor, Engineer in above figure.

class student
{
char Name[20];
int roll_no;
--
--
public:
void search();
void update();
}
In this example, students refers to class and S1, S2 are the objects of
class which can be created in main function.
 Inheritance –
By using inheritance, new class can inherit the attributes and methods
of the old class i.e. base class. For example: as classes Student,
Doctor and Engineer are inherited from the base class Person.

Advantages of Object Oriented Data Model :


 Codes can be reused due to inheritance.
 Easily understandable.
 Cost of maintenance can reduced due to reusability of attributes and
functions because of inheritance.
Disadvantages of Object Oriented Data Model :
 It is not properly developed so not accepted by users easily.

You might also like