Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

SE Module 1

Download as pdf or txt
Download as pdf or txt
You are on page 1of 30

UNIT 1

Software Development Life Cycle (SDLC)

A life cycle model maps the various activities performed on a software product from its inception to
retirement. Different life cycle models may plan the necessary development activities to phases in
different ways.

The stages of SDLC are as follows:


Stage1: Planning and requirement analysis

Requirement Analysis is the most important and necessary stage in SDLC.

The senior members of the team perform it with inputs from all the stakeholders and domain experts or
SMEs in the industry.

Business analyst and Project organizer set up a meeting with the client to gather all the data like what
the customer wants to build, who will be the end user, what is the objective of the product. Before
creating a product, a core understanding or knowledge of the product is very necessary.

Stage2: Defining Requirements

Once the requirement analysis is done, the next stage is to certainly represent and document the
software requirements and get them accepted from the project stakeholders.

This is accomplished through "SRS"- Software Requirement Specification document which contains all
the product requirements to be constructed and developed during the project life cycle.

Stage3: Designing the Software

The next phase is about to bring down all the knowledge of requirements, analysis, and design of the
software project. This phase is the product of the last two, like inputs from the customer and
requirement gathering.

Stage4: Developing the project


In this phase of SDLC, the actual development begins, and the programming is built. The implementation
of design begins concerning writing code. Developers have to follow the coding guidelines described by
their management and programming tools like compilers, interpreters, debuggers, etc. are used to
develop and implement the code.

Stage5: Testing

After the code is generated, it is tested against the requirements to make sure that the products are
solving the needs addressed and gathered during the requirements stage.

During this stage, unit testing, integration testing, system testing, acceptance testing are done.

Stage6: Deployment

Once the software is certified, and no bugs or errors are stated, then it is deployed.

Then based on the assessment, the software may be released as it is or with suggested enhancement in
the object segment.

Stage7: Maintenance

Once when the client starts using the developed systems, then the real issues come up and
requirements to be solved from time to time.

Software Processes
The term software specifies to the set of computer programs, procedures and associated documents
(Flowcharts, manuals, etc.) that describe the program and how they are to be used.

A software process is the set of activities and associated outcome that produce a software product.
Software engineers mostly carry out these activities.

These are four key process activities, which are common to all software processes. These activities are:
Software specifications: The functionality of the software and constraints on its operation must be
defined.

Software development: The software to meet the requirement must be produced.

Software validation: The software must be validated to ensure that it does what the customer wants.

Software evolution: The software must evolve to meet changing client needs.

Some examples of the types of software process models that may be produced are:

1.A workflow model: This shows the series of activities in the process along with their inputs, outputs
and dependencies. The activities in this model perform human actions.

2. A dataflow or activity model: This represents the process as a set of activities, each of which carries
out some data transformations. It shows how the input to the process, such as a specification is
converted to an output such as a design. The activities here may be at a lower level than activities in a
workflow model. They may perform transformations carried out by people or by computers.

3. A role/action model: This means the roles of the people involved in the software process and the
activities for which they are responsible.

Software Crisis

Size: Software is becoming more expensive and more complex with the growing complexity and
expectation out of software. For example, the code in the consumer product is doubling every couple of
years.

Quality: Many software products have poor quality, i.e., the software products defects after putting into
use due to ineffective testing technique. For example, Software testing typically finds 25 errors per 1000
lines of code.

Cost: Software development is costly i.e. in terms of time taken to develop and the money involved. For
example, Development of the FAA's Advanced Automation System cost over $700 per lines of code.

Delayed Delivery: Serious schedule overruns are common. Very often the software takes longer than
the estimated time to develop, which in turn leads to cost shooting up. For example, one in four
large-scale development projects is never completed.

Waterfall model
This model has five phases: Requirements analysis and specification, design, implementation, and unit
testing, integration and system testing, and operation and maintenance. The steps always follow in this
order and do not overlap. The developer must complete every phase before the next phase begins.

Requirements analysis and specification phase: The aim of this phase is to understand the exact
requirements of the customer and to document them properly. Both the customer and the software
developer work together so as to document all the functions, performance, and interfacing requirement
of the software. It describes the "what" of the system to be produced and not "how."In this phase, a
large document called Software Requirement Specification (SRS) document is created which contained a
detailed description of what the system will do in the common language.

2. Design Phase: This phase aims to transform the requirements gathered in the SRS into a suitable form
which permits further coding in a programming language. It defines the overall software architecture
together with high level and detailed design. All this work is documented as a Software Design
Document (SDD).
3. Implementation and unit testing: During this phase, design is implemented. If the SDD is complete,
the implementation or coding phase proceeds smoothly, because all the information needed by
software developers is contained in the SDD.

During testing, the code is thoroughly examined and modified. Small modules are tested in isolation
initially. After that these modules are tested by writing some overhead code to check the interaction
between these modules and the flow of intermediate output.

4. Integration and System Testing: This phase is highly crucial as the quality of the end product is
determined by the effectiveness of the testing carried out. The better output will lead to satisfied
customers, lower maintenance costs, and accurate results. Unit testing determines the efficiency of
individual modules. However, in this phase, the modules are tested for their interactions with each
other and with the system.

5. Operation and maintenance phase: Maintenance is the task performed by every user once the
software has been delivered to the customer, installed, and operational.

When to use SDLC Waterfall Model?

 When the requirements are constant and not changed regularly.

 A project is short

 The situation is calm

 Where the tools and technology used is consistent and is not changing

 When resources are well prepared and are available to use.

Advantages of Waterfall model

 This model is simple to implement also the number of resources that are required for it is
minimal.

 The requirements are simple and explicitly declared; they remain unchanged during the entire
project development.

 The start and end points for each phase is fixed, which makes it easy to cover progress.
 The release date for the complete product, as well as its final cost, can be determined before
development.

 It gives easy to control and clarity for the customer due to a strict reporting system.

Disadvantages of Waterfall model

 In this model, the risk factor is higher, so this model is not suitable for more significant and
complex projects.

 This model cannot accept the changes in requirements during development.

 It becomes tough to go back to the phase. For example, if the application has now shifted to the
coding phase, and there is a change in requirement, It becomes tough to go back and change it.

 Since the testing done at a later stage, it does not allow identifying the challenges and risks in
the earlier phase, so the risk reduction strategy is difficult to prepare.

V-Model

V-Model also referred to as the Verification and Validation Model. In this, each phase of SDLC must
complete before the next phase starts. It follows a sequential design process same as the waterfall
model. Testing of the device is planned in parallel with a corresponding stage of development.
There are the various phases of Verification Phase of V-model:

Business requirement analysis: This is the first step where product requirements understood from the
customer's side. This phase contains detailed communication to understand customer's expectations
and exact requirements.

System Design: In this stage system engineers analyze and interpret the business of the proposed
system by studying the user requirements document.

Architecture Design: The baseline in selecting the architecture is that it should understand all which
typically consists of the list of modules, brief functionality of each module, their interface relationships,
dependencies, database tables, architecture diagrams, technology detail, etc. The integration testing
model is carried out in a particular phase.

Module Design: In the module design phase, the system breaks down into small modules. The detailed
design of the modules is specified, which is known as Low-Level Design

After designing, the coding phase is started. Based on the requirements, a suitable programming
language is decided. There are some guidelines and standards for coding. Before checking in the
repository, the final build is optimized for better performance, and the code goes through many code
reviews to check the performance.

There are the various phases of Validation Phase of V-model:

 Unit Testing: In the V-Model, Unit Test Plans (UTPs) are developed during the module design
phase. These UTPs are executed to eliminate errors at code level or unit level. A unit is the
smallest entity which can independently exist, e.g., a program module. Unit testing verifies that
the smallest entity can function correctly when isolated from the rest of the codes/ units.

 Integration Testing: Integration Test Plans are developed during the Architectural Design Phase.
These tests verify that groups created and tested independently can coexist and communicate
among themselves.

 System Testing: System Tests Plans are developed during System Design Phase. Unlike Unit and
Integration Test Plans, System Tests Plans are composed by the client?s business team. System
Test ensures that expectations from an application developer are met.

 Acceptance Testing: Acceptance testing is related to the business requirement analysis part. It
includes testing the software product in user atmosphere. Acceptance tests reveal the
compatibility problems with the different systems, which is available within the user
atmosphere. It conjointly discovers the non-functional problems like load and performance
defects within the real user atmosphere.
When to use V-Model?

 When the requirement is well defined and not ambiguous.

 The V-shaped model should be used for small to medium-sized projects where requirements are
clearly defined and fixed.

 The V-shaped model should be chosen when sample technical resources are available with
essential technical expertise.

Advantage (Pros) of V-Model:

 Easy to Understand.

 Testing Methods like planning, test designing happens well before coding.

 This saves a lot of time. Hence a higher chance of success over the waterfall model.

 Avoids the downward flow of the defects.

 Works well for small plans where requirements are easily understood.

Disadvantage (Cons) of V-Model:

 Very rigid and least flexible.

 Not a good for a complex project.

 Software is developed during the implementation stage, so no early prototypes of the software
are produced.

 If any changes happen in the midway, then the test documents along with the required
documents, has to be updated.

Verification: It involves a static analysis method (review) done without executing code. It is the process
of evaluation of the product development process to find whether specified requirements meet.

Validation: It involves dynamic analysis method (functional, non-functional), testing is done by


executing code. Validation is the process to classify the software after the completion of the
development process to determine whether the software meets the customer expectations and
requirements.
Incremental Model

Incremental Model is a process of software development where requirements divided into multiple
standalone modules of the software development cycle. In this model, each module goes through the
requirements, design, implementation and testing phases. Every subsequent release of the module adds
function to the previous release. The process continues until the complete system achieved.

The various phases of incremental model are as follows:

1. Requirement analysis: In the first phase of the incremental model, the product analysis expertise
identifies the requirements. And the system functional requirements are understood by the
requirement analysis team. To develop the software under the incremental model, this phase performs
a crucial role.

2. Design & Development: In this phase of the Incremental model of SDLC, the design of the system
functionality and the development method are finished with success. When software develops new
practicality, the incremental model uses style and development phase.

3. Testing: In the incremental model, the testing phase checks the performance of each existing function
as well as additional functionality. In the testing phase, the various methods are used to test the
behavior of each task.

4. Implementation: Implementation phase enables the coding phase of the development system. It
involves the final coding that design in the designing and development phase and tests the functionality
in the testing phase. After completion of this phase, the number of the product working is enhanced and
upgraded up to the final system product

When we use the Incremental Model?

 When the requirements are superior.

 A project has a lengthy development schedule.

 When Software team are not very well skilled or trained.

 When the customer demands a quick release of the product.

 You can develop prioritized requirements first.

Advantage of Incremental Model

 Errors are easy to be recognized.

 Easier to test and debug

 More flexible.

 Simple to manage risk because it handled during its iteration.

 The Client gets important functionality early.

Disadvantage of Incremental Model

 Need for good planning

 Total Cost is high.

 Well defined module interfaces are needed.


Prototype Model

The prototype model requires that before carrying out the development of actual software, a working
prototype of the system should be built. A prototype is a toy implementation of the system.

In many instances, the client only has a general view of what is expected from the software product. In
such a scenario where there is an absence of detailed information regarding the input to the system, the
processing needs, and the output requirement, the prototyping model may be employed.

Steps of Prototype Model

 Requirement Gathering and Analyst

 Quick Decision

 Build a Prototype

 Assessment or User Evaluation

 Prototype Refinement

 Engineer Product
Advantage of Prototype Model

 Reduce the risk of incorrect user requirement

 Good where requirement are changing/uncommitted

 Regular visible process aids management

 Support early product marketing

 Reduce Maintenance cost.

 Errors can be detected much earlier as the system is made side by side.

Disadvantage of Prototype Model

 An unstable/badly implemented prototype often becomes the final product.

 Require extensive customer collaboration

 Costs customer money

 Needs committed customer

 Difficult to finish if customer withdraw

 May be too customer specific, no broad market

 Difficult to know how long the project will last.

 Prototyping tools are expensive.

 Special tools & techniques are required to build a prototype.

 It is a time-consuming process.

Spiral Model

Using the spiral model, the software is developed in a series of incremental releases. During the early
iterations, the additional release may be a paper model or prototype. During later iterations, more and
more complete versions of the engineered system are produced.

The Spiral Model is shown in fig:


 Objective setting: Each cycle in the spiral starts with the identification of purpose for that cycle,
the various alternatives that are possible for achieving the targets, and the constraints that
exists.

 Risk Assessment and reduction: The next phase in the cycle is to calculate these various
alternatives based on the goals and constraints. The focus of evaluation in this stage is located
on the risk perception for the project.

 Development and validation: The next phase is to develop strategies that resolve uncertainties
and risks. This process may include activities such as benchmarking, simulation, and prototyping.

 Planning: Finally, the next step is planned. The project is reviewed, and a choice made whether
to continue with a further period of the spiral. If it is determined to keep, plans are drawn up for
the next step of the project.

When to use Spiral Model?

 When deliverance is required to be frequent.

 When the project is large

 When requirements are unclear and complex


 When changes may require at any time

 Large and high budget projects

Advantages

 High amount of risk analysis

 Useful for large and mission-critical projects.

 Disadvantages

 Can be a costly model to use.

 Risk analysis needed highly particular expertise

 Doesn't work well for smaller projects.

Disadvantages

 Can be a costly model to use.

 Risk analysis needed highly particular expertise

 Doesn't work well for smaller projects.

Iterative Model
In this Model, you can start with some of the software specifications and develop the first version of the
software. After the first version if there is a need to change the software, then a new version of the
software is created with a new iteration. Every release of the Iterative Model finishes in an exact and
fixed period that is called iteration.
The various phases of Iterative model are as follows:

1. Requirement gathering & analysis: In this phase, requirements are gathered from customers and
check by an analyst whether requirements will fulfil or not. Analyst checks that need will achieve within
budget or not. After all of this, the software team skips to the next phase.

2. Design: In the design phase, team design the software by the different diagrams like Data Flow
diagram, activity diagram, class diagram, state transition diagram, etc.

3. Implementation: In the implementation, requirements are written in the coding language and
transformed into computer programmes which are called Software.

4. Testing: After completing the coding phase, software testing starts using different test methods.
There are many test methods, but the most common are white box, black box, and grey box test
methods.

5. Deployment: After completing all the phases, software is deployed to its work environment.

6. Review: In this phase, after the product deployment, review phase is performed to check the
behaviour and validity of the developed product. And if there are any error found then the process
starts again from the requirement gathering.

7. Maintenance: In the maintenance phase, after deployment of the software in the working
environment there may be some bugs, some errors or new updates are required. Maintenance involves
debugging and new addition options.

When to use the Iterative Model?

 When requirements are defined clearly and easy to understand.

 When the software application is large.

 When there is a requirement of changes in future.

Advantage(Pros) of Iterative Model:

 Testing and debugging during smaller iteration is easy.


 A Parallel development can plan.

 It is easily acceptable to ever-changing needs of the project.

 Risks are identified and resolved during iteration.

 Limited time spent on documentation and extra time on designing.

Disadvantage(Cons) of Iterative Model:

 It is not suitable for smaller projects.

 More Resources may be required.

 Design can be changed again and again because of imperfect requirements.

 Requirement changes can cause over budget.

 Project completion date not confirmed because of changing requirements.

RAD (Rapid Application Development) Model


RAD is a linear sequential software development process model that emphasizes a concise development
cycle using an element based construction approach. If the requirements are well understood and
described, and the project scope is a constraint, the RAD process enables a development team to create
a fully functional system within a concise time period.

RAD (Rapid Application Development) is a concept that products can be developed faster and of higher
quality through:

 Gathering requirements using workshops or focus groups

 Prototyping and early, reiterative user testing of designs

 The re-use of software components

 A rigidly paced schedule that refers design improvements to the next product version

 Less formality in reviews and other team communication

 RAD - Rapid Application Development - Model


The various phases of RAD are as follows:

1.Business Modelling: The information flow among business functions is defined by answering
questions like what data drives the business process, what data is generated, who generates it, where
does the information go, who process it and so on.

2. Data Modelling: The data collected from business modeling is refined into a set of data objects
(entities) that are needed to support the business. The attributes (character of each entity) are
identified, and the relation between these data objects (entities) is defined.

3. Process Modelling: The information object defined in the data modeling phase are transformed to
achieve the data flow necessary to implement a business function. Processing descriptions are created
for adding, modifying, deleting, or retrieving a data object.

4. Application Generation: Automated tools are used to facilitate construction of the software; even
they use the 4th GL techniques.

5. Testing & Turnover: Many of the programming components have already been tested since RAD
emphasis reuse. This reduces the overall testing time. But the new part must be tested, and all
interfaces must be fully exercised.
When to use RAD Model?

 When the system should need to create the project that modularizes in a short span time (2-3
months).

 When the requirements are well-known.

 When the technical risk is limited.

 It should be used only if the budget allows the use of automatic code generating tools.

Advantage of RAD Model

 This model is flexible for change.

 In this model, changes are adoptable.

 Each phase in RAD brings highest priority functionality to the customer.

 It reduced development time.

 It increases the reusability of features.

Disadvantage of RAD Model

 It required highly skilled designers.

 All application is not compatible with RAD.

 For smaller projects, we cannot use the RAD model.

 On the high technical risk, it's not suitable.

 Required user involvement.

Agile Model
Agile methods break tasks into smaller iterations, or parts do not directly involve long term planning.
The project scope and requirements are laid down at the beginning of the development process. Plans
regarding the number of iterations, the duration and the scope of each iteration are clearly defined in
advance.

Each iteration is considered as a short time "frame" in the Agile process model, which typically lasts
from one to four weeks. The division of the entire project into smaller parts helps to minimize the
project risk and to reduce the overall project delivery time requirements. Each iteration involves a team
working through a full software development life cycle including planning, requirements analysis,
design, coding, and testing before a working product is demonstrated to the client.
Phases of Agile Model:

 Requirements gathering

 Design the requirements

 Construction/ iteration

 Testing/ Quality assurance

 Deployment

 Feedback

1. Requirements gathering: In this phase, you must define the requirements. You should explain
business opportunities and plan the time and effort needed to build the project. Based on this
information, you can evaluate technical and economic feasibility.

2. Design the requirements: When you have identified the project, work with stakeholders to define
requirements. You can use the user flow diagram or the high-level UML diagram to show the work of
new features and show how it will apply to your existing system.

3. Construction/ iteration: When the team defines the requirements, the work begins. Designers and
developers start working on their project, which aims to deploy a working product. The product will
undergo various stages of improvement, so it includes simple, minimal functionality.

4. Testing: In this phase, the Quality Assurance team examines the product's performance and looks for
the bug.

5. Deployment: In this phase, the team issues a product for the user's work environment.

6. Feedback: After releasing the product, the last step is feedback. In this, the team receives feedback
about the product and works through the feedback.

Agile Testing Methods:

 Scrum

 Crystal
 Dynamic Software Development Method(DSDM)

 Feature Driven Development(FDD)

 Lean Software Development

 eXtreme Programming(XP)

1) Scrum
SCRUM is an agile development process focused primarily on ways to manage tasks in team-based
development conditions.It is the most popular agile framework, which concentrates particularly on how
to manage tasks within a team-based development environment. Scrum uses iterative and incremental
development model, with shorter duration of iterations. Scrum is relatively simple to implement and
focuses on quick and frequent deliveries.

There are three roles in it, and their responsibilities are:

Scrum Master: The scrum can set up the master team, arrange the meeting and remove obstacles for
the process

Product owner: The product owner makes the product backlog, prioritizes the delay and is responsible
for the distribution of functionality on each repetition.

Scrum Team: The team manages its work and organizes the work to complete the sprint or cycle.

Daily Scrum: Each day during the sprint, a brief meeting called the daily scrum is conducted. This
meeting helps set the context for each day’s work and helps the team stay on track. All team members
are required to attend the daily scrum.

Sprint review meeting: At the end of each sprint, the team demonstrates the completed functionality at
a sprint review meeting, during which, the team shows what they accomplished during the sprint.
Typically, this takes the form of a demonstration of the new features, but in an informal way; for
example, PowerPoint slides are not allowed. The meeting must not become a task in itself nor a
distraction from the process.

Scrum is the type of Agile framework. It is a framework within which people can address complex
adaptive problem while productivity and creativity of delivering product is at highest possible values.
Scrum uses Iterative process.
Silent features of Scrum are:

 Scrum is light-weighted framework

 Scrum emphasizes self-organization

 Scrum is simple to understand

 Scrum framework help the team to work together

Lifecycle of Scrum:

Sprint:

A Sprint is a time-box of one month or less. A new Sprint starts immediately after the completion of the
previous Sprint.

Release:

When the product is completed then it goes to the Release stage.

Sprint Review:

If the product still have some non-achievable features then it will be checked in this stage and then the
product is passed to the Sprint Retrospective stage.
Sprint Retrospective:

In this stage quality or status of the product is checked.

Product Backlog:

According to the prioritize features the product is organized.

Sprint Backlog:

Sprint Backlog is divided into two parts Product assigned features to sprint and Sprint planning meeting.

Advantage of using Scrum framework:

 Scrum framework is fast moving and money efficient.

 Scrum framework works by dividing the large product into small sub-products. It’s like a divide
and conquer strategy

 In Scrum customer satisfaction is very important.

 Scrum is adaptive in nature because it have short sprint.

 As Scrum framework rely on constant feedback therefore the quality of product increases in less
amount of time

Disadvantage of using Scrum framework:

 Scrum framework do not allow changes into their sprint.

 Scrum framework is not fully described model. If you wanna adopt it you need to fill in the
framework with your own details like Extreme Programming(XP), Kanban, DSDM.

 It can be difficult for the Scrum to plan, structure and organize a project that lacks a clear
definition.

 The daily Scrum meetings and frequent reviews require substantial resources.

ref text:
2) Extreme Programming (XP)

eXtreme Programming(XP)

This type of methodology is used when customers are constantly changing demands or requirements, or
when they are not sure about the system's performance.

XP is a lightweight, efficient, low-risk, flexible, predictable, scientific, and fun way to develop a
software.

A key assumption of Extreme Programming is that the cost of changing a program can be held mostly
constant over time.

This can be achieved with −

 Emphasis on continuous feedback from the customer

Short iterations

 Design and redesign

 Coding and testing frequently

 Eliminating defects early, thus reducing costs

 Keeping the customer involved throughout the development

 Delivering working product to the customer

Some of the basic activities that are followed during software development by using XP model are given
below:

Coding: The concept of coding which is used in XP model is slightly different from traditional coding.
Here, coding activity includes drawing diagrams (modeling) that will be transformed into code, scripting
a web-based system and choosing among several alternative solutions.

Testing: XP model gives high importance on testing and considers it be the primary factor to develop a
fault-free software.

Listening: The developers needs to carefully listen to the customers if they have to develop a good
quality software. Sometimes programmers may not have the depth knowledge of the system to be
developed. So, it is desirable for the programmers to understand properly the functionality of the
system and they have to listen to the customers.

Designing: Without a proper design, a system implementation becomes too complex and very difficult
to understand the solution, thus it makes maintenance expensive. A good design results elimination of
complex dependencies within a system. So, effective use of suitable design is emphasized.

Feedback: One of the most important aspects of the XP model is to gain feedback to understand the
exact customer needs. Frequent contact with the customer makes the development effective.

Extreme Programming involves −

 Writing unit tests before programming and keeping all of the tests running at all times. The unit
tests are automated and eliminates defects early, thus reducing the costs.

 Starting with a simple design just enough to code the features at hand and redesigning when
required.

 Programming in pairs (called pair programming), with two programmers at one screen, taking
turns to use the keyboard. While one of them is at the keyboard, the other constantly reviews
and provides inputs.Integrating and testing the whole system several times a day.

 Putting a minimal working system into the production quickly and upgrading it whenever
required.

 Keeping the customer involved all the time and obtaining constant feedback.

Applications of Extreme Programming (XP):

Small projects: XP model is very useful in small projects consisting of small teams as face to face
meeting is easier to achieve.

Projects involving new technology or Research projects: This type of projects face changing of
requirements rapidly and technical problems. So XP model is used to complete this type of projects.

Extreme Programming Advantages

 Slipped schedules − and achievable development cycles ensure timely deliveries.

 Cancelled projects − Focus on continuous customer involvement ensures transparency with the
customer and immediate resolution of any issues.

 Costs incurred in changes − Extensive and ongoing testing makes sure the changes do not break
the existing functionality. A running working system always ensures sufficient time for
accommodating changes such that the current operations are not affected.

 Production and post-delivery defects: Emphasis is on − the unit tests to detect and fix the
defects early.
 Misunderstanding the business and/or domain − Making the customer a part of the team
ensures constant communication and clarifications.

 Business changes − Changes are considered to be inevitable and are accommodated at any
point of time.

CASE Tools
CASE stands for Computer Aided Software Engineering. It means, development and maintenance of
software projects with help of various automated software tools.

CASE tools are set of software application programs, which are used to automate SDLC activities. CASE
tools are used by software project managers, analysts and engineers to develop software system.

There are number of CASE tools available to simplify various stages of Software Development Life Cycle
such as Analysis tools, Design tools, Project management tools, Database Management tools,
Documentation tools are to name a few.

Components of CASE Tools

CASE tools can be broadly divided into the following parts based on their use at a particular SDLC stage:

Central Repository - CASE tools require a central repository, which can serve as a source of common,
integrated and consistent information. Central repository is a central place of storage where product
specifications, requirement documents, related reports and diagrams, other useful information
regarding management is stored. Central repository also serves as data dictionary.

Upper Case Tools - Upper CASE tools are used in planning, analysis and design stages of SDLC.
Lower Case Tools -

Lower CASE tools are used in implementation, testing and maintenance.

Integrated Case Tools - Integrated CASE tools are helpful in all the stages of SDLC, from
Requirement gathering to Testing and documentation.

Case Tools Types

 Diagram tools

These tools are used to represent system components, data and control flow among various
software components and system structure in a graphical form.

 Process Modeling Tools

Process modeling is method to create software process model, which is used to develop the
software. Process modeling tools help the managers to choose a process model or modify it as
per the requirement of software product.

 Project Management Tools

These tools are used for project planning, cost and effort estimation, project scheduling and
resource planning. Project management tools help in storing and sharing project information in
real-time throughout the organization.

 Documentation Tools

Documentation in a software project starts prior to the software process, goes throughout all
phases of SDLC and after the completion of the project. Documentation tools generate
documents for technical users and end users.

Technical users refer to system manual, reference manual, training manual, installation
manuals etc. The end user documents describe the functioning and how-to of the system such
as user manual.
 Analysis Tools

These tools help to gather requirements, automatically check for any inconsistency, inaccuracy
in the diagrams, data redundancies or erroneous omissions.

 Design Tools

These tools help software designers to design the block structure of the software, which may
further be broken down in smaller modules using refinement techniques. These tools provides
detailing of each module and interconnections among modules.

Configuration Management Tools

 Change Control Tools

They deal with changes made to the software after its baseline is fixed or when the software is
first released.

 Programming Tools

These tools consist of programming environments like IDE (Integrated Development


Environment), in-built modules library and simulation tools. These tools provide comprehensive
aid in building software product and include features for simulation and testing.

 Prototyping Tools

Prototyping CASE tools essentially come with graphical libraries. They can create hardware
independent user interfaces and design. These tools help us to build rapid prototypes based on
existing information. The simulated version of the software product to be built is called a
prototype in software. The look and feel of the product is provided by the prototype and the
several aspects of the actual product can be simulated using prototyping.

 Web Development Tools

Web tools also provide live preview of what is being developed and how will it look after
completion.

 Quality Assurance Tools

Quality assurance in a software organization is monitoring the engineering process and


methods adopted to develop the software product in order to ensure conformance of quality as
per organization standards

 Maintenance Tools

Software maintenance includes modifications in the software product after it is delivered.


Technique for automatically logging, error reporting, generation of error tickets automatically
and root cause analysis are used in the maintenance phase of the SDLC to help the software
organizations.

What is Burndown Chart in Scrum?

A burn down chart is a graphical representation of work left to do versus time. It is often used
in agile software development methodologies such as Scrum. However, burn down charts can
be applied to any project containing measurable progress over time.

It is useful for predicting when all of the work will be completed. In the Daily Scrum the
Development Team updates the Sprint Burn Down and plots the remaining work of the day.

A burndown chart is almost a “must” have tool for a Scrum team for the following main
reasons:

 monitoring the project scope creep

 Keeping the team running on schedule

 Comparing the planned work against the team progression


How to Create a Burndown Chart?

To create this graph, determine how much work remains by summing the Sprint Backlog estimates every
day of the Sprint. The amount of work remaining for a Sprint is the sum of the work remaining for the
whole Sprint Backlog. Keep track of these sums by day and use them to create a graph that shows the
work remaining over time.

Burndown Chart Example


Duration: 5 days
Sprint Backlog: 8 tasks
Velocity: 80 available hours
Step 1 – Create Estimate Effort
Suppose your ideal baseline for using the available hours over the sprint. So in the simplest for this is
the available hours divided by number of days. In this example, 80 hours over 5 days equating to 16
hours a day. In order to create the project burn-down chart, the data needs to be captured as a daily
running total starting with 80 hours than 64 hours left 1 (80 – 16) at end of day, 48 hours left at end of
day 2, etc.

Step 2 – Track Daily Process


The daily progress is then captured in the table against each task. It is important to remember
that the value captured for each day is the estimated effort to complete the task, not the actual
effort.

Step 3 – Compute the Actual Effort


The total remaining effort needs to be captured at the end of each day. This is the total (sum) of
all of the estimated time remaining at the end of each day.

Step 4 – Obtain the Final Dataset


When the data is available, the project burn-down chart can be created. This
is relatively simple using the line chart option available within Excel.

Step 5 – Plot the Burndown using the Dataset


It is very simple to create a project burn-down chart as following, as long as
you know what data you are tracking.

You might also like