0% found this document useful (0 votes)
25 views6 pages

CMM Model and Waterfall Method Overview

The document outlines various methodologies for system development, focusing on the Capability Maturity Model (CMM) which assesses organizations on five maturity levels from Initial to Optimizing. It also discusses specific development methods like the Waterfall model, Joint Application Development (JAD), Prototyping, Rapid Application Development (RAD), and the Evolutionary model, each with their advantages and disadvantages. These methodologies aim to improve software development processes, enhance user involvement, and manage project risks effectively.

Uploaded by

wedomap682
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views6 pages

CMM Model and Waterfall Method Overview

The document outlines various methodologies for system development, focusing on the Capability Maturity Model (CMM) which assesses organizations on five maturity levels from Initial to Optimizing. It also discusses specific development methods like the Waterfall model, Joint Application Development (JAD), Prototyping, Rapid Application Development (RAD), and the Evolutionary model, each with their advantages and disadvantages. These methodologies aim to improve software development processes, enhance user involvement, and manage project risks effectively.

Uploaded by

wedomap682
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Methodologies of system development

CMM MODEL

CMM model is used to assess an organization procedures of developing software systems


against a scale of five process maturity levels. Each level ranks the organization according to
its standardization of processes in the subject area being assessed. The subject areas can be as
diverse as software engineering, systems engineering, project management, risk management,
system acquisition, information technology (IT) services and personnel management.

Levels of the CMM

There are five levels of the CMM:

• Level 1 - Initial
o Processes are usually ad hoc and the organization usually does not provide a
stable environment. Success in these organizations depends on the competence
and heroics of the people in the organization and not on the use of proven
processes. In spite of this ad hoc, chaotic environment, maturity level 1
organizations often produce products and services that work; however, they
frequently exceed the budget and schedule of their projects.
o Organizations are characterized by a tendency to over commit, abandon
processes in the time of crisis, and not be able to repeat their past successes
again.
o Software project success depends on having quality people.
• Level 2 - Repeatable
o Software development successes are repeatable. The processes may not repeat
for all the projects in the organization. The organization may use some basic
project management to track cost and schedule.
o Process discipline helps ensure that existing practices are retained during
times of stress. When these practices are in place, projects are performed and
managed according to their documented plans.
o Project status and the delivery of services are visible to management at
defined points (for example, at major milestones and at the completion of
major tasks).
o Basic project management processes are established to track cost, schedule,
and functionality. The minimum process discipline is in place to repeat earlier
successes on projects with similar applications and scope. There is still a
significant risk of exceeding cost and time estimate.
• Level 3 - Defined
o The organization’s set of standard processes, which is the basis for level 3, is
established and improved over time. These standard processes are used to
establish consistency across the organization. Projects establish their defined
processes by the organization’s set of standard processes according to tailoring
guidelines.
o The organization’s management establishes process objectives based on the
organization’s set of standard processes and ensures that these objectives are
appropriately addressed.
o A critical distinction between level 2 and level 3 is the scope of standards,
process descriptions, and procedures. At level 2, the standards, process
descriptions, and procedures may be quite different in each specific instance
of the process (for example, on a particular project). At level 3, the standards,
process descriptions, and procedures for a project are tailored from the
organization’s set of standard processes to suit a particular project or
organizational unit.
• Level 4 - Managed
o Using precise measurements, management can effectively control the software
development effort. In particular, management can identify ways to adjust and
adapt the process to particular projects without measurable losses of quality or
deviations from specifications. At this level organization set a quantitative
quality goal for both software process and software maintenance.
o Subprocesses are selected that significantly contribute to overall process
performance. These selected subprocesses are controlled using statistical and
other quantitative techniques.
o A critical distinction between maturity level 3 and maturity level 4 is the
predictability of process performance. At maturity level 4, the performance of
processes is controlled using statistical and other quantitative techniques, and
is quantitatively predictable. At maturity level 3, processes are only
qualitatively predictable.
• Level 5 - Optimizing
o Focusing on continually improving process performance through both
incremental and innovative technological improvements. Quantitative process-
improvement objectives for the organization are established, continually
revised to reflect changing business objectives, and used as criteria in
managing process improvement. The effects of deployed process
improvements are measured and evaluated against the quantitative process-
improvement objectives. Both the defined processes and the organization’s set
of standard processes are targets of measurable improvement activities.
o Process improvements to address common causes of process variation and
measurably improve the organization’s processes are identified, evaluated, and
deployed.
o Optimizing processes that are nimble, adaptable and innovative depends on
the participation of an empowered workforce aligned with the business values
and objectives of the organization. The organization’s ability to rapidly
respond to changes and opportunities is enhanced by finding ways to
accelerate and share learning.
o A critical distinction between maturity level 4 and maturity level 5 is the type
of process variation addressed. At maturity level 4, processes are concerned
with addressing special causes of process variation and providing statistical
predictability of the results. Though processes may produce predictable
results, the results may be insufficient to achieve the established objectives. At
maturity level 5, processes are concerned with addressing common causes of
process variation and changing the process (that is, shifting the mean of the
process performance) to improve process performance (while maintaining
statistical probability) to achieve the established quantitative process-
improvement objectives.

Waterfall method
In this model, the development process flows in only one direction. This means that a phase
cannot be started until the previous phase is completed. An output of one stage provides the
input to the next stage in the process.

Requirements

Analysis and Design

Coding and Testing

Implementation

Maintenance

Advantages Disadvantages
• It is linear and therefore very • Tester role only happen in the
easy to be implemented test phase
• Required amount of resources • Unable to make any changes
are minimal to middle or any phases after
• A documentation is produced the process started
at every stage of waterfall • Waterfall model is not
model development simultaneous
• After every major stage of • Only able to use when the
coding, testing is done to requirements are fixed
check whether the code • Unable to move back to the
running is correct or not previous phase
• If any mistake happen on
middle phases, should start
from the scratch

i. Joint application development (JAD):- in this method of system development, users,


managers and analysts work together. System requirements are reviewed in every stage
of development process. There is a lot of structured meetings between the user and the
analyst.
Disadvantages
One, the wrong problems can be addressed, the wrong people get invited to participate
and there are inadequate resources for solving problems. Two, you have to pay extra
close attention to who was picked to participate on a project. Three, you have to make
sure that everyone has an opportunity to voice their opinions and thoughts.

The JAD approach provides the following benefits:


•Accelerates design
•Enhances quality
•Promotes teamwork with the customer
•Creates a design from the customer's perspective
•Lowers development and maintenance costs

JAD achieves these benefits because of the following factors:

•The decision makers are all present.


•The facilitator keeps the group focused on the goals.
•Differing views are handled immediately.
•Most errors are caught in the Analysis and Design stages.
•The system design reflects the user's desires.
•Issues are resolved quickly.
•Assumptions are documented and understood.
•The process tends to gain momentum, not lose it.

ii. Prototyping. Is is the process of building a scaled down working version of the required
system, try to see whether it fits the user requirement, if it doesn’t, the prototype is
thrown away and another is developed or modifications are done.

Advantages of Prototyping Model

1) When prototype is shown to the user, he gets a proper clarity and 'feel' of the functionality of the
software and he can suggest changes and modifications.
2) This type of approach of developing the software is used for non-IT-literate people. They usually are not
good at specifying their requirements, nor can tell properly about what they expect from the software.
3) When client is not confident about the developer's capabilities, he asks for a small prototype to be built.
Based on this model, he judges capabilities of developer.
4) Sometimes it helps to demonstrate the concept to prospective investors to get funding for project.
5) It reduces risk of failure, as potential risks can be identified early and mitigation steps can be taken.
6) Iteration between development team and client provides a very good and conductive environment
during project.
7) Time required to complete the project after getting final the SRS reduces, since the developer has a
better idea about how he should approach the project.

Disadvantages of Prototyping Model:

1) Prototyping is usually done at the cost of the developer. So it should be done using minimal
resources. It can be done using Rapid Application Development (RAD) tools. Please note sometimes
the start-up cost of building the development team, focused on making prototype, is high.
2) Once we get proper requirements from client after showing prototype model, it may be of no use.
That is why, sometimes we refer to the prototype as "Throw-away" prototype.
3) It is a slow process.
4) Too much involvement of client, is not always preferred by the developer.
5) Too many changes can disturb the rhythm of the development team.
iii. Rapid application development (RAD):- in this approach of software development, it
utilizes prototyping method to delay producing a system design until after user
requirements are clear or well structured.
Advantages

• Flexible and adaptable to changes


• Can handle large projects without a doubt
• RAD realizes an overall reduction in project risk
• RAD realizes an overall reduction in project risk.
• Generally Rad incorporates short development cycles (According to the
[Link])

Disadvantages

• Cant use for small projects


• Requires more resources and money to implement RAD
• All applications are not competible with RAD
• RAD is not appropriate hen technical risks are high
• Need both customer and developer commitments to complete a project. Otherwise
RAD wil fail

Evolutionary Model

Evolutionary model is also called as incremental [Link] this kind


of development
first the core product is developed and is delivered to the
[Link] many of the known/unknown additional features are n
ot delivered. Some of these will be delivered to the
customer in the subsequent [Link] the new version the
existing product may be modified and new
functionality may also be added.

ADVANTAGES

· Provides quickly an initial version of the system.


· Involves all development teams.
· Initial supports changing requirements.
· Risk analysis is better.
· Initial operating time is less.
· Better suited for large and mission-critical projects.
· During life cycle software is produced early which facilitates customer evaluation and
feedback.
DISADVANTAGES

· Quick fixes may be involved.


· The systems structure can be corrupted by continuous change.
· Invisible process not well-supported by documentation.
· Special tools and techniques may be necessary.
· The client may have the impression the first version is very close to the final product and
thus be less patient.
· Not suitable for smaller projects.
· Management is more complex.
· Highly skilled resources are required for risk analysis.
· Project's progress is highly dependent upon the risk analysis phase.

Common questions

Powered by AI

The Waterfall method is a linear approach where each phase must be completed before the next one begins, without going back to previous phases. This structure makes it easy to implement with minimal resources and produces comprehensive documentation at each stage, but it is inflexible if changes are needed after a phase is completed. In contrast, iterative models like the Prototyping Model allow for continuous user feedback and iterative refinement, producing a scaled-down version of the system to gauge requirements and make improvements based on user interactions. This iterative process tends to reduce risks of failure and improve user satisfaction by regularly incorporating user feedback .

At CMM Level 4, organizations establish quantitative quality goals for both software process and maintenance, enabling management to utilize precise measurements to effectively control the software development effort. By selecting and controlling subprocesses through statistical and other quantitative techniques, these goals bring about a heightened level of predictability in process performance. This quantitative approach ensures that management can adjust and adapt processes to suit specific project needs without deviating from predefined quality specifications, thereby maintaining consistent performance and quality in software processes and maintenance .

Implementing the Evolutionary Model in software development poses challenges related to process structure and client expectations. The ongoing evolution of the system can lead to quick fixes and continuous changes that may corrupt the system structure. Moreover, the process often lacks well-supported documentation, making it "invisible" and relying heavily on effective communication. Clients may perceive the initial version as near-final, leading to impatience or pressure on the development team. Moreover, the requirement for skilled resources for risk analysis and complex management needs might not align easily with client expectations of straightforward progress, leading to potential misalignments in project understanding and delivery timelines .

The JAD method enhances teamwork and decision-making efficiency by involving all critical stakeholders—users, managers, and analysts—in structured, collaborative workshops. Unlike traditional requirements-gathering methods, which may involve sequential and sometimes disconnected interviews or meetings, JAD provides a real-time, consensus-driven environment. The presence of decision-makers from various functional areas ensures that differing views are addressed immediately, which speeds up decision-making processes and reduces the time spent on follow-ups. This approach ensures that the system's design reflects user needs accurately and all assumptions are documented collectively, leading to a comprehensive understanding and reducing the likelihood of misinterpretation or underdeveloped requirements .

Although the RAD model requires significant resource allocation and client commitment to succeed, it manages to reduce overall project risk through its adaptable nature and emphasis on rapid, iterative prototyping. By engaging users in the process to clarify and refine requirements continually, RAD allows developers to adjust the design to user feedback, minimizing the risk of unmet expectations. Additionally, the short development cycles inherent in RAD enable quick delivery of functional components, providing early visibility into project direction and potential issues. This iterative approach reduces the risk of significant failures by allowing for adjustments before systemic integration .

A critical distinction between CMM Level 4 and Level 5 lies in how each level addresses process variation and improves processes. Level 4 focuses on controlling processes using precise measurements and statistical techniques to manage special causes of process variation, ensuring statistical predictability of outcomes. However, while the processes at this level produce predictable results, they may not suffice to fully achieve the established objectives. In contrast, Level 5 targets common causes of process variation and shifts the mean of process performance to achieve continuous and measurable improvements, aligning closely with organizational objectives. This involves the empowered workforce and innovative process changes capable of adapting to changing business goals .

The Waterfall model offers advantages in documentation and testing processes by ensuring comprehensive documentation at every development stage. Each stage produces specific deliverables that detail the progression and development, facilitating clear communication and alignment of expectations. Testing in the Waterfall model occurs after every major coding phase, ensuring that only fully developed functionalities are tested, compared to iterative approaches where testing is ongoing. This structured approach can provide clear, distinct phases with defined criteria for success before moving forward, which can be beneficial in environments where stringent oversight and documentation are prioritized over flexibility .

The primary drawbacks of the Prototyping Model include its potential high costs if the prototype significantly deviates from final requirements, as the initial model often becomes a "throw-away." The process can be slow due to frequent iterations and client involvement, which might not always be desired by developers due to potential disruptions. Additionally, too many changes can disturb the development team's rhythm, increasing the complexity of the process management and possibly leading to issues in meeting project timelines and requirements if not carefully managed. These factors can increase the risk of delayed or costlier project outcomes .

The Evolutionary Model, also known as the incremental model, is more suitable for large and mission-critical projects due to its ability to deliver an initial version of the system early in the development process, allowing for customer evaluation and feedback. This iterative process supports changing requirements and better risk analysis, which are crucial in large projects where requirements can evolve significantly over time. Although the model involves more complexity and demands highly skilled resources for effective risk analysis, its capacity to manage and adapt to change makes it less appropriate for smaller projects where such resources and iterative work structures may not be as feasible or cost-effective .

The JAD approach enhances quality by involving users, managers, and analysts in a series of structured meetings throughout the development process. This collaborative environment ensures that system requirements are continually reviewed and aligned with user needs, promoting designs that reflect the customer's perspective. By having decision-makers present and addressing differing views promptly, JAD improves clarity and reduces misunderstandings. As errors are caught early in the Analysis and Design stages, the costs associated with later stage fixes are minimized. Additionally, this approach promotes teamwork and reduces the development and maintenance costs, as issues are resolved quickly, and assumptions are documented and understood .

You might also like