SE WK 3 Lec 7 8 9

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 16

Software Engineering (CSC-205)

Instructor: Tayyaba Baseer Email: Tayyaba@biit.edu.pk

WK-3-Lecture 7-8-9
 Computer Aided Software Engineering (CASE) Tools
 Rapid Application Development
 Evolutionary Software Process Models
a. Incremental Model
b. Spiral Model
Software Engineering (CSC-205)

Instructor: Tayyaba Baseer Email: Tayyaba@biit.edu.pk

1. Computer Aided Software Engineering (CASE) Tools


Computer-aided software engineering (CASE) tools are software applications that
support various activities throughout the software development life cycle (SDLC).
These tools provide automated assistance in tasks such as requirements analysis,
design, coding, testing, and maintenance. Here's an explanation of CASE tools
along with their key features and benefits:
Definition: CASE tools are a set of software applications designed to assist
software engineers, developers, and other stakeholders in the creation,
management, and maintenance of software systems. They provide a suite of
integrated functionalities to streamline and automate various aspects of the
software development process.
Key Features:
 Modeling and Design: CASE tools often include graphical modeling
capabilities to create visual representations of system architecture,
data models, process flows, and user interfaces.
 Requirements Management: Some CASE tools offer features for
capturing, organizing, and managing requirements, including
traceability and version control.
 Code Generation: Many CASE tools support automatic code
generation from design models, reducing manual coding effort and
ensuring consistency between design and implementation.
 Testing and Debugging: Some CASE tools provide functionalities
for test case generation, test execution, and debugging to help ensure
software quality and reliability.
 Documentation: CASE tools often include features for generating
documentation, such as design specifications, user manuals, and
technical reports, to facilitate communication and knowledge sharing
among team members.
Software Engineering (CSC-205)

Instructor: Tayyaba Baseer Email: Tayyaba@biit.edu.pk

 Collaboration and Version Control: Many CASE tools support


collaboration among team members through features like version
control, access control, and shared repositories.
 Integration with Development Environments: Some CASE tools
integrate seamlessly with popular development environments and
platforms, enabling developers to work within their preferred tools
while leveraging the benefits of CASE functionalities.
2. Rapid Application Development model (RAD)
The Rapid Application Development Model was first proposed by IBM in the
1980s. The RAD model is a type of incremental process model in which there is
extremely short development cycle. When the requirements are fully understood
and the component-based construction approach is adopted then the RAD model is
used. Various phases in RAD are Requirements Gathering, Analysis and Planning,
Design, Build or Construction, and finally Deployment.
The critical feature of this model is the use of powerful development tools and
techniques. A software project can be implemented using this model if the project
can be broken down into small modules wherein each module can be assigned
independently to separate teams. These modules can finally be combined to form
the final product. Development of each module involves the various basic steps as
in the waterfall model i.e. analyzing, designing, coding, and then testing, etc. as
shown in the figure. Another striking feature of this model is a short time span i.e.
the time frame for delivery(time-box) is generally 60-90 days.
Software Engineering (CSC-205)

Instructor: Tayyaba Baseer Email: Tayyaba@biit.edu.pk

Multiple teams work on developing the software system using RAD model
parallel.
This model consists of 4 basic phases:
1. Requirements Planning – It involves the use of various techniques used in
requirements elicitation like brainstorming, task analysis, form analysis, user
scenarios, FAST (Facilitated Application Development Technique), etc. It
also consists of the entire structured plan describing the critical data,
methods to obtain it, and then processing it to form a final refined model.
2. User Description – This phase consists of taking user feedback and building
the prototype using developer tools. In other words, it includes re-
examination and validation of the data collected in the first phase. The
dataset attributes are also identified and elucidated in this phase.
3. Construction – In this phase, refinement of the prototype and delivery takes
place. It includes the actual use of powerful automated tools to transform
processes and data models into the final working product. All the required
modifications and enhancements are too done in this phase.
Software Engineering (CSC-205)

Instructor: Tayyaba Baseer Email: Tayyaba@biit.edu.pk

4. Cutover – All the interfaces between the independent modules developed by


separate teams have to be tested properly. The use of powerfully automated
tools and subparts makes testing easier. This is followed by acceptance
testing by the user.
The process involves building a rapid prototype, delivering it to the customer, and
taking feedback. After validation by the customer, the SRS document is developed
and the design is finalized.
When to use RAD Model?
When the customer has well-known requirements, the user is involved throughout
the life cycle, the project can be time-boxed, the functionality delivered in
increments, high performance is not required, low technical risks are involved and
the system can be modularized. In these cases, we can use the RAD Model. when it
is necessary to design a system that can be divided into smaller units within two to
three months. when there is enough money in the budget to pay for both the
expense of automated tools for code creation and designers for modeling.
Advantages:
 The use of reusable components helps to reduce the cycle time of the
project.
 Feedback from the customer is available at the initial stages.
 Reduced costs as fewer developers are required.
 The use of powerful development tools results in better quality products in
comparatively shorter time spans.
 The progress and development of the project can be measured through the
various stages.
 It is easier to accommodate changing requirements due to the short iteration
time spans.
 Productivity may be quickly boosted with a lower number of employees.
Disadvantages:
Software Engineering (CSC-205)

Instructor: Tayyaba Baseer Email: Tayyaba@biit.edu.pk

 The use of powerful and efficient tools requires highly skilled professionals.
 The absence of reusable components can lead to the failure of the project.
 The team leader must work closely with the developers and customers to
close the project on time.
 The systems which cannot be modularized suitably cannot use this model.
 Customer involvement is required throughout the life cycle.
 It is not meant for small-scale projects as in such cases, the cost of using
automated tools and techniques may exceed the entire budget of the project.
 Not every application can be used with RAD.
3. Evolutionary Software Process Models
a. Incremental Model.
b. Spiral Model.
3.1 Incremental process model
The incremental process model is also known as the Successive version model.
First, a simple working system implementing only a few basic features is built and
then that is delivered to the customer. Then thereafter many successive iterations/
versions are implemented and delivered to the customer until the desired system is
released.
Software Engineering (CSC-205)

Instructor: Tayyaba Baseer Email: Tayyaba@biit.edu.pk

A, B, and C are modules of Software Products that are incrementally developed


and delivered.
Life cycle activities:
Requirements of Software are first broken down into several modules that can be
incrementally constructed and delivered. At any time, the plan is made just for the
next increment and not for any kind of long-term plan. Therefore, it is easier to
modify the version as per the need of the customer. The Development Team first
undertakes to develop core features (these do not need services from other
features) of the system.
Once the core features are fully developed, then these are refined to increase levels
of capabilities by adding new functions in Successive versions. Each incremental
version is usually developed using an iterative waterfall model of development.
As each successive version of the software is constructed and delivered, now the
feedback of the Customer is to be taken and these were then incorporated into the
next version. Each version of the software has more additional features than the
previous ones.
Software Engineering (CSC-205)

Instructor: Tayyaba Baseer Email: Tayyaba@biit.edu.pk

After Requirements gathering and specification, requirements are then split into
several different versions starting with version 1, in each successive increment, the
next version is constructed and then deployed at the customer site. After the last
version (version n), it is now deployed at the client site.
Types of Incremental model:
1. Staged Delivery Model: Construction of only one part of the project at a time.
2. Parallel Development Model – Different subsystems are developed at the same
time. It can decrease the calendar time needed for the development, i.e. TTM
(Time to Market) if enough resources are available.
Software Engineering (CSC-205)

Instructor: Tayyaba Baseer Email: Tayyaba@biit.edu.pk

When to use this:


1. Funding Schedule, Risk, Program Complexity, or need for early realization of
benefits.
2. When Requirements are known up-front.
3. When Projects have lengthy development schedules.
4. Projects with new Technology.
 Error Reduction (core modules are used by the customer from the beginning
of the phase and then these are tested thoroughly)
 Uses divide and conquer for a breakdown of tasks.
 Lowers initial delivery cost.
 Incremental Resource Deployment.
5. Requires good planning and design.
6. The total cost is not lower.
7. Well-defined module interfaces are required.
Advantages-
1. Prepares the software fast.
Software Engineering (CSC-205)

Instructor: Tayyaba Baseer Email: Tayyaba@biit.edu.pk

2. Clients have a clear idea of the project.


3. Changes are easy to implement.
4. Provides risk handling support, because of its iterations.
Disadvantages-
1. A good team and proper planned execution are required.
2. Because of its continuous iterations the cost increases.

3.2 Spiral model

The spiral model is an evolutionary software process model which is a


combination of iterative nature of prototyping and controlled and systematic
aspects of the traditional waterfall model.

This model was originally proposed by Boehm. It provides the potential for rapid
development of incremental versions of the software.

In this model, software development takes place in a series of developed releases.


In the initial stage iterations, the release or model might be a paper model or
a prototype. In the later stages, a complete version of the software is produced.

A spiral model is made up of set different framework activities made by the


software engineering team. Look at the following spiral model diagram:
Software Engineering (CSC-205)

Instructor: Tayyaba Baseer Email: Tayyaba@biit.edu.pk

The model is divided into some framework activities, also called task regions.
Every framework activity represents one section of the spiral path. As the
development process starts, the software team performs activities that are indirect
by a path around the spiral model in a clockwise direction. It begins at the center of
the spiral model.

Typically, there are between three and six task regions. The above figure depicts a
spiral model that contains 6 task regions.

Phases of Spiral Model (Tasks Regions)

 Customer communication tasks required establishing effective


communication between developer and customer.
 Planning-tasks required defining resources, timelines, and other project
related information.
 Risk analysis tasks required to assess both technical and management risks.
 Engineering tasks required building one or more representations of the
application.
 Construction and release tasks required to construct, test, install, and provide
user support.
Software Engineering (CSC-205)

Instructor: Tayyaba Baseer Email: Tayyaba@biit.edu.pk

 Customer evaluation-tasks required to obtain customer feedback based on an


evaluation of the software representations created during the engineering
stage and implemented during the installation stage.

Each of the regions is populated by a set of work tasks, called a function set, which
is adapted to the characteristics of the project to be undertaken. For small
projects, the number of work tasks and their formality is low. For larger, more
critical projects, each job region contains more work tasks that are defined to
achieve a higher level of formality. In all cases, the umbrella activities, e.g. –
software configuration management and software quality assurance are applied.

Advantages of the Spiral Model

A spiral model is a realistic approach to the development of large-scale systems


and software. Check out some of its advantages:

1. Estimates (i.e. budget, schedule, etc.) become more realistic as work progresses
because more critical issues are discovered earlier.

2. It is more able to cope with the changes that software development entails.

3. Software engineers can get their hands in and start working on a project earlier.

Uses of the spiral model


As mentioned before, the spiral model is best used in large, expensive and
complicated projects. Other uses include:

 projects in which frequent releases are necessary;


 projects in which changes may be required at any time;
 long term projects that are not feasible due to altered economic priorities;
 medium to high risk projects;
Software Engineering (CSC-205)

Instructor: Tayyaba Baseer Email: Tayyaba@biit.edu.pk

 projects in which cost and risk analysis is important;


 projects that would benefit from the creation of a prototype; and
 projects with unclear or complex requirements.

Other benefits of the spiral model include:

 Flexibility - Changes made to the requirements after development has started


can be easily adopted and incorporated.
 Risk handling - The spiral model involves risk analysis and handling in every
phase, improving security and the chances of avoiding attacks and breakages.
The iterative development process also facilitates risk management.
 Customer satisfaction - The spiral model facilitates customer feedback. If the
software is being designed for a customer, then the customer will be able to see
and evaluate their product in every phase. This allows them to voice
dissatisfactions or make changes before the product is fully built, saving the
development team time and money.
Limitations of the spiral model
Limitations of the spiral model include:

 High cost - The spiral model is expensive and, therefore, is not suitable for
small projects.
 Dependence on risk analysis - Since successful completion of the project
depends on effective risk handling, then it is necessary for involved personnel
to have expertise in risk assessment.
 Complexity - The spiral model is more complex than other SDLC options. For
it to operate efficiently, protocols must be followed closely. Furthermore, there
is increased documentation since the model involves intermediate phases.
Software Engineering (CSC-205)

Instructor: Tayyaba Baseer Email: Tayyaba@biit.edu.pk

 Hard to manage time - Going into the project, the number of required phases is
often unknown, making time management almost impossible. Therefore, there
is always a risk for falling behind schedule or going over budget.
The Spiral Model is a software development methodology that is used to handle
various types of risks that are associated with complex and large-scale software
development projects. It was proposed by Barry Boehm in 1986 and is often
considered an evolution of the Waterfall model. The Spiral Model is
characterized by its iterative and incremental approach to software
development, where the project is divided into multiple cycles or "spirals."

The primary types of risks that the Spiral Model is designed to address
include:

Technical Risks: These are risks associated with the complexity of the software
being developed. In the Spiral Model, each spiral represents a cycle of
development that includes planning, design, coding, testing, and evaluation. At
the end of each spiral, a prototype or partial system is developed and evaluated.
This allows for the identification and mitigation of technical risks early in the
project, reducing the likelihood of major technical problems later on.

Cost Risks: Software development projects often face uncertainties related to


cost estimation. The Spiral Model allows for the refinement of cost estimates as
the project progresses through its various spirals. Project managers can make
adjustments based on the feedback and results from each iteration, helping to
manage and control project costs.
Software Engineering (CSC-205)

Instructor: Tayyaba Baseer Email: Tayyaba@biit.edu.pk

Schedule Risks: Managing project schedules can be challenging, especially in


large and complex software projects. The iterative nature of the Spiral Model
allows for the continual monitoring and adjustment of project schedules. If any
deviations or delays are identified, corrective actions can be taken in
subsequent spirals to keep the project on track.

Requirement Risks: Gathering and defining software requirements can be a


major challenge, as they often change or evolve throughout the project. The
Spiral Model accommodates changing requirements by allowing for regular
reviews and updates of the requirements as the project progresses. This
flexibility helps in addressing requirement-related risks.

Business Risks: Business risks include factors such as market changes, evolving
customer needs, and shifts in business priorities. The Spiral Model encourages
continuous communication and feedback with stakeholders, making it easier to
adapt to changing business conditions and ensure that the software aligns with
the organization's goals.

Communication Risks: In any software development project, effective


communication among team members, stakeholders, and users is critical. The
Spiral Model emphasizes regular communication and collaboration, helping to
mitigate communication risks that can lead to misunderstandings,
misalignment, and delays.

Overall, the Spiral Model is well-suited for projects where there is a high level
of uncertainty and risks that cannot be completely identified and addressed at
Software Engineering (CSC-205)

Instructor: Tayyaba Baseer Email: Tayyaba@biit.edu.pk

the beginning of the project. It promotes a risk-driven approach to development


by allowing for iterative development, frequent evaluations, and risk
management at each stage. This makes it a valuable methodology for managing
and reducing various types of risks in software development.

You might also like