You are on page 1of 2

Software Evolution is a term which refers to the process of developing software initially, CMMI It is not a software process model.

ess model. It is a framework that is used to analyze the


then timely updating it for various reasons, i.e., to add new features or to remove obsolete approach and techniques followed by any organization to develop software products. It
functionalities etc. The evolution process includes fundamental activities of change also provides guidelines to further enhance the maturity of the process used to develop
analysis, release planning, system implementation and releasing a system to customers. those software products. It is based on profound feedback and development practices
The cost and impact of these changes are accessed to see how much system is affected by adopted by the most successful organizations worldwide. This model describes a strategy
the change and how much it might cost to implement the change. If the proposed changes for software process improvement that should be followed by moving through 5 different
are accepted, a new release of the software system is planned. During release planning, all levels. Each level of maturity shows a process capability level. All the levels except level 1
the proposed changes (fault repair, adaptation, and new functionality) are considered. are further described by Key Process Areas (KPA).
A design is then made on which changes to implement in the next version of the system. Principles of Capability Maturity Model (CMM) People’s capability is a competitive issue.
The process of change implementation is an iteration of the development process where Competition arises when different organizations are performing the same task (such as
the revisions to the system are designed, implemented and tested. >> The necessity of software development). In such a case, the people of an organization are sources of
Software evolution: Software evaluation is necessary just because of the strategy and skills, which in turn results in better performance of the organization.>> The
following reasons: people’s capability should be defined in relation to the business objectives of the
a) Change in requirement with time: With the passes of time, the organization’s needs and organization>>>An organization should invest in improving the capabilities and skills of the
modus Operandi of working could substantially be changed so in this frequently changing people as they are important for its success.>> The management should be responsible for
time the tools(software) that they are using need to change for maximizing the enhancing the capability of the people in the organization. >>The improvement in the
performance.b) Environment change: As the working environment changes the capability of people should be done as a process. This process should incorporate
things(tools) that enable us to work in that environment also changes proportionally same appropriate practices and procedures.>> The organization should be responsible for
happens in the software world as the working environment changes then, the providing improvement opportunities so that people in the organization can take
organizations need reintroduction of old software with updated features and functionality advantage of them. >>Since new technologies and organizational practices emerge rapidly,
to adapt the new environment.c) Errors and bugs: As the age of the deployed software organizations should continually improve their practices and develop the abilities of
within an organization increases their preciseness or impeccability decrease and the people. 5 LEVLS Level 1: Initial At the first level, the software development process is ad
efficiency to bear the increasing complexity workload also continually degrades. So, in that hoc and occasionally chaotic. Success depends on individual effort, as few processes are
case, it becomes necessary to avoid use of obsolete and aged software. All such obsolete clearly defined. The success of the development process depends on the managers, who
Softwares need to undergo the evolution process in order to become robust as per the are often able to withstand the pressure to speed up the process 2 Repeatable At the
workload complexity of the current environment. d) Security risks: Using outdated repeatable level, project management processes include cost, schedule, and functionality
software within an organization may lead you to at the verge of various software-based tracking. For projects with similar applications, the procedure is already in place to build on
cyberattacks and could expose your confidential data illegally associated with the software prior successes. 3 Defined At the defined level, the software development process is
that is in use. So, it becomes necessary to avoid such security breaches through regular standardized, integrated into all organizational processes, and managed by management
assessment of the security patches/modules are used within the software. If the software and software engineering teams. Each project follows an approved version of the
isn’t robust enough to bear the current occurring Cyber attacks so it must be changed organization’s standard software development and maintenance process. 4 Managed At
(updated).e) For having new functionality and features: In order to increase the the managed level, software development is checked and controlled in great detail to
performance and fast data processing and other functionalities, an organization need to ensure high-quality products. the managed level refers to a process capability where an
continuously evolute the software throughout its life cycle so that stakeholders & clients of organization can predict how its quality will change and take appropriate action when
the product could work efficiently. necessary. Optimizing At the optimizing level, the quantitative feedback from the process
CHARS It is intangible, meaning it cannot be seen or touched.>>It is non-perishable, and experimenting with innovative ideas and technologies help continuous improvement.
meaning it does not degrade over time.
>>It is easy to replicate, meaning it can be copied and distributed easily.
WATERFALL MODEL It is the first approach and the basic model used in software
>>It can be complex, meaning it can have many interrelated parts and features.
development. It is a simple model that is easy to use as well as understand. The execution
>>It can be difficult to understand and modify, especially for large and complex systems.
happens in the sequence order, which means that the outcome of the one-stage is equal to
>>It can be affected by changing requirements, meaning it may need to be updated or
the input of another stage. That's why it is also known as the Linear-sequential life cycle
modified as the needs of users change.>>It can be affected by bugs and other issues,
model.//To avoid the overlapping issues of the multiple phases, every stage should be
meaning it may need to be tested and debugged to ensure it works as intended.
completed before moving to the next stage. Each stage of the waterfall model involves the
deliverable of the previous stage, like requirements, are transferred to the design phase,
SRS The production of the requirements stage of the software development process is design moved to development, and so on. When we have the Life critical (hospital
Software Requirements Specifications (SRS) (also called a requirements document). This application) and Machine critical (Military project), we will widely use the waterfall model.
report lays a foundation for software engineering activities and is constructing when entire // The waterfall model is a linear, sequential approach to the software development
requirements are elicited and analyzed. SRS is a formal report, which acts as a lifecycle (SDLC) that is popular in software engineering and product development.
representation of software that enables the customers to review whether it (SRS) is The waterfall model uses a logical progression of SDLC steps for a project, similar to the
according to their requirements. Also, it comprises user requirements for a system as well direction water flows over the edge of a cliff. It sets distinct endpoints or goals for each
as detailed specifications of the system requirements. phase of development. Those endpoints or goals can't be revisited after their completion.
The SRS is a specification for a specific software product, program, or set of applications Dr. Winston W. Royce at the Lockheed Software Technology Center introduced the concept
that perform particular functions in a specific environment. It serves several goals in a paper published in 1970 on his experience developing software for satellites. However,
depending on who is writing it. First, the SRS could be written by the client of a system. Royce didn't use the term waterfall; instead, he referred to the downstream value of
Second, the SRS could be written by a developer of the system. The two methods create documentation. // This methodology is good for teams and projects that want to
entirely various situations and establish different purposes for the document altogether. develop a project according to fixed or unchanging requirements set forth at the
beginning of the project. Waterfall projects have a high degree of process definition
The first case, SRS, is used to define the needs and expectation of the users. The second
with little or no output variability. Waterfall is also a good choice if the project is
case, SRS, is written for various purposes and serves as a contract document between
constrained by cost or time.
customer and developer.
The waterfall model continues to be used in industrial design applications. It's often cited
CHARS>> Correctness: User review is used to provide the accuracy of requirements stated as the first software development methodology. The model is also used more generally as
in the SRS. SRS is said to be perfect if it covers all the needs that are truly expected from a high-level project management methodology for complicated, multifaceted projects.
the system. 2 Completeness: The SRS is complete if, and only if, it includes the following The waterfall model is divided into various stages, which are as follows:1 Requirement
elements:(1). All essential requirements, whether relating to functionality, performance, collection2Feasibility study3Design4Coding5TESTING6Installation
design, constraints, attributes, or external interfaces.(2). Definition of their responses of
7Maintenance
the software to all realizable classes of input data in all available categories of situations. 3. UMBRELLA ACTIVITIES Software engineering is a collection of interconnected phases. These
Consistency: The SRS is consistent if, and only if, no subset of individual requirements steps are expressed or available in different ways in different software process models.
described in its conflict.4Unambiguousness: SRS is unambiguous when every fixed
Umbrella activities are a series of steps or procedures followed by a software development
requirement has only one interpretation. This suggests that each element is uniquely
team to maintain the progress, quality, changes, and risks of complete development tasks.
interpreted. In case there is a method used with multiple definitions, the requirements These steps of umbrella activities will evolve through the phases of the generic view of
report should determine the implications in the SRS so that it is clear and simple to software development.
understand. 5 Ranking for importance and stability: The SRS is ranked for importance and i. Software Project tracking and control: It allows the software team to assess progress
stability if each requirement in it has an identifier to indicate either the significance or against the project plan and take necessary action to maintain the schedule.
stability of that particular requirement.6Modifiability: SRS should be made as modifiable as ii. Formal Technical Reviews: It assesses software engineering work products to uncover
likely and should be capable of quickly obtain changes to the system to some extent.
and remove errors before they are propagated to the next action or activity.
Modifications should be perfectly indexed and cross-referenced. 7 Verifiability: SRS is iii. Software Quality Assurance: It defines and conducts the activities required to ensure
correct when the specified requirements can be verified with a cost-effective system to software quality. It is a methodology of checking the software development process with a
check whether the final software meets those requirements. The requirements are verified predefined set of standards.
with the help of reviews. 8 Traceability: The SRS is traceable if the origin of each of the iv. Software Configure Management: It is the task of tracking and controlling changes in the
requirements is clear and if it facilitates the referencing of each condition in future software development part. It manages the effects of change throughout the software
development or enhancement documentation.9Design Independence: There should be an process.v. Documentation: At first, all the project planning and other activities should be
option to select from multiple design alternatives for the final system. More specifically,
hard-copy documents and then the production gets started here.
the SRS should not contain any implementation details. 10Testability: An SRS should be vi. Re-usability Management: It defines criteria for work product reuse and establishes
written in such a method that it is simple to generate test cases and test plans from the mechanisms to achieve reusable components.
report. 11Understandable by the customer: An end user may be an expert in his/her
vii. Measurement: It defines process, project and product measures that assist the team in
explicit domain but might not be trained in computer science.12 The right level of delivering software that meets customer’s needs, it can be used in conjunction with all
abstraction: If the SRS is written for the requirements stage, the details should be other frameworks.
explained explicitly.

You might also like