0 ratings 0% found this document useful (0 votes) 36 views 41 pages SE Unit 1
The document provides an overview of software engineering fundamentals, emphasizing the importance of software in various industries and its characteristics such as reliability, ease of change, and low manufacturing costs. It discusses the layered technology of software engineering, which includes quality focus, processes, and methods, and highlights the significance of principles in software development. Additionally, it addresses challenges like the software crisis and legacy software, and outlines a generic software process model consisting of communication, planning, modeling, construction, and deployment.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here .
Available Formats
Download as PDF or read online on Scribd
Go to previous items Go to next items
1.1_Introdu
Software Engineering Fundamentals: Introduction to software engineering, The Nature of Software, Defining Software,
Software Engineering Practice.
SOFTWARE ENGINEERING
FUNDAMENTALS
Computer software has become an integral part of our daily lives. It helps in all sorts of businesses and decision
makings in business, The application of computer software includes : Telecommunication, transportation,
military, medical sciences, online shopping, entertainment industry, office products, education industry,
construction business, IT industry, banking sector and many more.
‘The software applications have a great impact on our social life and cultural life as well. Due to its widespread
use, itis the need of time to develop technologies to produce high quality, user friendly, efficient and economical
software,
Computer software is actually a product developed by software engineers by making use of various software
‘engineering processes and activities.
Software consists of data, programs and the related documents. All these elements build a configuration that is
created as a part of the software engineering process. The main motive behind software engineering isto give a
framework for building software with better quality
‘We can say that the software has become the key element in all computer-based systems and products,
1.2_Nature of Software
‘The nature of software has great impact on software engineering systems. The general nature of software may
describe the important characteristic.
Reliability : If we consider the use of software in air traffic control system and space shuttle, then there should
not be any chances of failure of software.
In these examples, if reliability is not taken into consideration, then the human life is at risk.
In addition to this, there are four other important characteristics that describe the nature of software +
‘Absence of fundamental theory
Ease of change
Rapid evolution of technologies
Low manufacturing cost.W software Engineering (SPPU - Comp) 12,
Software Engineering Fn,
1.2.1 Absence of Fundamental Theory ~
+ fweconsier the example of physles, we see there are fundamental laws of physies, but In sofware thereon
such fundamental laws despite the researches done by the computer scientists, m
+ Because ofthis drawback itis very dificult to do any reasoning about the software until itis develope,
the developers practice few software engineering standards that are not foolproof. But the codes
developing software are following the discipline and some solid principles.
vt
11.2.2 Ease of Change
+ The software has the provision to be altered at any stage of time. Thus, the software development organizaton
take the advantage of this feature. From the customer's point of view, the change is always required througho,
its developmentcycle and even ater its delivery tothe customer.
‘+ Since there are no basic rules of software, there is no rule available to accommodate the changes and its impag
until it is developed. Thus, we can say that the ease of change is a gift of God to the developers and tie
development organizations,
1.2.3 Rapid Evolution of Technologies
‘+ Inthe modern age, the software development technologies and development environments are changing rapidly
with an extreme speed,
‘+ Itbecomes the need of the time to keep the software engineers updated and armed with latest technologies and
skills
‘+ The software engineering standards must also be revised with the technology evolutions.
1.2.4 Low Manufacturing Cost
‘+ The cost of software reproduction and installation is less as compared to a new development. Today nearly 80
percent of the software development contains only maintenance and only 20 percent is new development. This
reflects that manufacturing a product is considerably involves very low cost.
‘The software reusability is an important characteristic that benefits the development organizations a lot in
manufacturing the software at low cost.
1.3 Software Engineering : A Layered Technology
cor
{Q. Elaborate how software engineering is a layered technology. TRACI
. Define Software Engineering, What ae the various categories of software 7
. Define Sofware Engineering.
EERE
‘The term software engineering is defined as :
“By using the principles of sound engineering and its establishment, software is developed that should be
‘economical and should work efficiently on real machines.
Software engineering is a systematic and disciplined approach towards developments of software. The approach
‘must be systematic for operation of the software and the maintenance of it too,W sofware Engineering (SPPU - Comp.) 13 Software Engineering Fundamentals
+ Software engineering is considered asa layered technology. These layers include :
1. Quality focus
Methods
Fig. 1.3.1: Software engineering layers
1.3.1 Qu
ity Focus
Quality is nothing but ‘degree of goodness’. Software quality cannot be measured directly. Good quality
software has following characteristics :
1. Correctness is degree to which software performs its required function.
2 Maintainability is an ease with which software is maintained. Maintenance of software implies change in
software. If software is easy to maintain, then the quality of that software is supposed to be good.
3. Integrity is a security provided so that unauthorized user can not access data or information, e.g. password
authentication.
4. Usability is the efforts required to use or operate the software.
1.3.2 Process
Software process defines a framework that includes different activities and tasks. In short, process defines
following ‘what’ activities and tasks for software development:
1. Whatactivities are to be carried out?
2. What actions will be taken ?
3. What tasks are to be carried out in a given action ?
1.3.3 Methods
‘Method provides technical way to implement the software i, ‘how to’ implement. Methods consist of collection
oftasks that include:
1. Communication : Between customer and developer,
2, Requirement analysis: To state requirements in detail
3. Analysis and design modelling : To build a prototyping model of software to exhibit the requirements clearly,
4. Program construction : Implementation of requirements using conventional programming languages or
automated tools.
5. Testing and support: Test for errors and expected results.is an automated support for software development.
For example:
1. Microsoft front page or Microsoft Publisher can be used as web designing tool.
2. Rational Rose can be used as object oriented analysis and design tool.
1.
5 The Characteristics of Software
Q. What are the software characteristics ?
Q. “Software does not wear out’. State whether this statement is true or false. Justify your answer.
‘+ Software is having some characteristics, those are totally different from hardware characteristics or the
{industrial manufacturing.
* Software is developed o engineered and itis not manufactured like other hardware products.
‘There exist some similarities between development of software and manufacturing of hardware,
Jn both the cases quality is achieved by good design but manufacturing phase of hardware can introduce quality
problems that are absent in software
Both activities depend on people but relationship between people applied and work done is different in both the
cases.
+ Both the cases require the ‘construction of product, but approaches are different,
+ Software does not wear out.
1. Note that, wear out means process of losing the material.
2, Hardware components are affected by dust, temperature and other environmental maladies. Stated simply,
hardware can wear out. However, software does not influence by such environmental means,
3. When hardware component wears out, it can be replaced by spare part. But there are no spare parts for
software, Any software error indicates error in design or coding of that software,
4. Hence software maintenance involves more complexity than hardware maintenance.
5. Mostly software is custom built rather than assembled from existing components,
Computer hardware can be assembled from existing components as per our requirements, But that ¢ not
the case for software. Software is developed according to customer's need,
1.3.6 Software Crisis
Explain the torm : Software crs,
SEES
are development as
+ Most of software engineers refer the problems associated with sow
software crisis".W_ sofware Engineering (SPPU- Comp) 15 Software Engineering Fundamentals
* The causes of software crisis are linked to all the problems and complexities associated with development
process. Following are some most encountered problems associated with development process :
1. Running out of time Le. deadline crossed
Over budget
Software inefficient
Low quality
Not up to expectations of customers
No enough development teams.
1.3.7 Legacy Software
Q. Explain the term : Legacy software, ad
HERES
+ The term legacy software refers to older software developments that were poorly designed and documented. It
had supported for many years. The legacy systems may or may not remain in use.
‘+ Even ifitis no longer used, it may continue to impact the organization due to its historical role. Historic data may
not have been converted into the new system format and may exist within the new system.
1.4 Software Engineering Practice
‘* Practice is a collection of concepts, principles methods and tools those are considered while planning and
developing the software.
‘+ The software engineer implements this collection on daily basis for throughout development process of the
software.
+ Software engineers and managers apply the practice of software engineering.
Elements of Software Practice
Following are the elements of software practice those are applied irrespective of the process model chosen for
the development.
+ Concepts
+ Principles
+ Methods
© Tools,
1.4.1 The Essence of Practice
George Polya has presented the concept “The Essence of Practice” in four sequential steps. These steps ai
+ Tounderstand the problem (Communication and Analysis).
‘+ Toplan the solution (Modeling and software design)
‘+ Tocarry outthe plan (Coding).
© Toexamine the result for accuracy (Testing and software quality assurance),W software Engineering (SPU - Comp) ad
4, To understand the problem (communication and analysis)
«This goals achieved by the basic activities ‘Communication with Customer’ and ‘Requirement analysi,
© Requirement analysis is a communication intensive activity. If there is misinterpretation of ¢
‘requirements, then obviously, the requirement analysis will be wrong.
‘+ Hence, wrong design will be formed and finally implementation will be wrong. So, customer will not get
expected results.
‘+ Hence with ‘customer communication’ data, functions and behaviour of the system to be implemented my
be stated clearly during ‘requirement analysis’ activity.
Im other words, practice is essential to understand problem statement.
2. To plan the solution (Modeling and software design)
‘This goal is achieved by activities *Modeling’ and ‘software design’. Here following issues are considered :
+ Reusable components
0 implement required data, functions and behaviour of the system, the ‘reusab
components are searched. ‘Reusable components’ are the components those developed for some sp
application and can be reused in development of other systems.
Subsystems : The main system requirements are divided into different groups so that by implementi
‘subsystems’, modularized solution can be achieved. By combining all subsystems, the combined result is
produced by main system,
‘imple design : The simple design is created so that design can be easily implemented using appropriate
programming language.
3. To carry out the plan (Code generation)
This goal is achieved in ‘Coding’ step. The design is translated into code by using appro
language. The focus is given on following issues:
a) All design details must reflect into coding ie. actual implementation,
b) Each module of coding must be correct to generate required output,
4. To examine the result for accuracy (Testing and quality assurance)
‘This goal is achieved in Testing and Assurance’ activites, This step focus on following issues:
* Tocheck for expected results.
+ Tocheck whether required testing tools are available
‘+ Tocheck for data, functions and behaviour ofthe system.
« Tocheck whether system is maintaining good quality.
+ Toimplement steps for software quality assurance,
1.4.2 Core Principles
‘The term ‘principle implies “some important lw or assumption’. tnx 7
be followed in every stage of software development. ‘oftware engineering, the principlesWE software Engineering (SPPU ~ Comp)
For example
Software
+ Theprinciples may be applied to ‘software development as whole
+ Principles those ae applied to "Communication stage of software.
+ Principles those are applied to‘Planning stage of software.
+ Principles those are applied to ‘Analysis Modeling stage of software.
+ Principles those are applied to‘Design Modeling’ stage of software.
+ Principles those are applied to Construction’ stage of software.
+ Principles those are applied to Testing’ stage of software
‘+ Principles those are applied to ‘Deployment stage of software
David Hooker's seven principles
David Hooker has proposed seven principles called as ‘core principles. These principles are applied to ‘software
evelopment’ as whole,
+ Principle Number 1 : The reason atall exists.
The complete software is one, which satisfies all the requirements by ‘customer's point of view”. Hence before
beginning a software project, be sure that the software has a business purpose. Hence first priority goes to
‘customer’ satisfaction.
‘+ Principle Number 2: Keep simple but perfect.
‘The software design must be as simple as possible. Ifthere are too many interfaces in the system, it's difficult to
‘construct and implement such type of system. Hence design should be simple enough. But simple design doesn’t
mean to skip the requirements. Hence design should be simple and perfect.
‘Principle Number 3 : Maintain the vision,
‘A clear vision is required for the success of the project. Hence maintain the architectural vision of software while
designing it.
‘+ Principle Number 4: What you produce, others will consume.
Other members in the team may use the software, which is analyzed, designed and constructed by one person in
4 team. After deployment of software to the customer, the software ‘enhancement’ may be required as per
customer's demand. Hence to maintain the software or to extend it, the software may be referred to develop
‘other applications. Hence, the system must be transparent enough,
‘+ Principle Number 5: Be Open to the future.
‘The solution for any problem must be generalized and not specific. The generalized solution can be reused for
‘other applications. The technology changes day to day. Today's software gets outdated tomorrow. The
programming languages used for software development may be outdated tomorrow. Hence the developed
system must be generalized enough to absorb all these changes.
* Principle Number:
"lan ahead for reuse.
‘Reusability is a property of good quality software. ‘Reusable’ software can be used in the development of other
applications. Using Object Oriented programming languages like Ce, t's possible to develop reusable modules.
Mreusable modules are available, then system can be developed very fast,Software Roget
WE software Engineering (SPU Comp.)
* Principle Number 7: Think for better solutions.
‘When we think about something, we get more Ideas. If we are having, solution and we think for better
the better idea will come out. This can improve the quality of system.
Review Questio
41. Why Computer Sofware is important ?
2. Uist and explain the characteristic that describe the nature of software.
3. Define Sofware Engineering. What are the various categories of software 7
‘4. How Software Characteristics are different from Hardware Characteristics ?
5. Explain the term : Software crisis,
6. Explain the term : Legacy software
7. What are the problems associated with development process?
82 SOFTWARE PROCESS
I Unit 7
aN
Software Process : A Generic Process Model, defining a Framework Activity, Mdentiying a Task Set, Process Patterns,
Process Assessment and Improvement. Prescriptive Process Models, The Waterfall Model, Incremental Process Models,
Evolutionary Process Models, Concurrent Models. A Final Word on Evolutionary Processes. Unified Process. Agile software
development : Agile methods, plan driven and agile development. Case studies - Agile Tools - JIRA
2.1 A Generic Process Model
Toe
( State the generic process tramewor actvities
A.software process is collection of va
Communication2 Planning
It includes complete estimation (eg. cost estimation of project) and scheduling (complete timeline
Project development) and tracking.
3. Modeling
+ Itincludes detail requirement analysis and project design (algorithm, flowchart etc).
* Flowchart shows complete pictorial flow of program where as algorithm is step-by-step soh
problem.
4. Construction
M includes coding and testing steps
1) Coding : Design details are implemented using appropriate programming language.
MW) Testing: Testing ts carried ost forthe following reatont:
8) To check whether the flow of coding is correct oF not.
'b) To check out the errors of program eg, in C program just by pressing F7 key we check step by
execution of program or by using “Add-Watch* we add the variables and watch the values of variable
©) To check whether program is giving expected output as per input specifications.
6. Deployment
+ Iincludes software delivery. support and feedback from customer,
+ Hcustomer suppest some corrections, oF demands additional capabilities, then changes are required
such corrections or enhancement.
«© These five generic framework activities can be used for :
3) Development of small programs
1b) Creation of large programs.
)_ Development of large system-based programs.
* In addition to these five generic framework activities, various umbrella activities are also
throughout the development process.
2.1.1 Identifying a Task Set
Software Engineering (SPPU - Comp.) 22 Software
‘Communication
* The software development process starts with communication between customer and developer,
* According to waterfall model customer must state all requirements at the beginning of project.
Regardless of model used, process model is populated by a set of tasks that enable a software team to
develop and ultimately support computer software. But the same set of tasks is not appropriate for all
projects.
For larger projects. different set of tasks will be applicable. In the same
way, for co
different set of tasks will be used. nolan pres
For developing a projec schedule the entire tsk set shouldbe divided on the project time line
eeMY sotoraretngeevng (SPP Comp) 2a Sotorare Process
ee
For each project. the set of tasks will vary depending on the type ofthe project.
+ Following are some types of projects :
© Concept development projects
© New project having certain application
© Application enhancement projects
© Maintenance projects
© Reengineering projects
Ina particular type of project, many factors influence the task set to be chosen.
© These factors include:
© Size of the project
© Number of users
© Stability requirements
© User friendliness
°
Ease of communication between the application developer or user.
© Performance
© Technology used.
An example set of tasks
Consider the example of concept development projects. Following are the sets of tasks those can be applied :
© Concept scope
© Concept planning
Risk assessment and management
Proof of concept
Implementation
© Customer feedback and reaction.
°
0°
‘These are certain activities or the set of tasks those can be applied for the concept development projects.
2.2 Process Patterns
‘+ The software process pattern can be defined as collection of patterns that define a set of activities, actions, work
tasks, work products and related behaviours.
+ A process pattern provides the templates ie. method for describing an important characteristic of software
process.
‘+ Following are the templates for describing a process pattern:
1. Pattern Name
Ie’s2 meaningful name that describes the function within given process, eg. customer-communication.
2 intent
i's objective of given pattern. eg intent of customer-communication is “to establish communication between
customer and developer in order to specify requirements”.WE _sotware Engineering (SPPU— Comp)
3. Pattern Type
There are three types of patterns :
(Task pattern : It defines the action or work task that is part of process. eg. requirement-gathering
pattern,
(i) Stage pattern : It defines framework activity for the process, eg. communication is task pattern,
(ili) Phase pattern: Itdefines sequence of framework activities, -g. spiral model is phase pattern,
4. Initial Context
‘The conditions under which pattern applies are described, eg. planning pattern requires that,
‘+ Customer and developer communication must be established.
‘+ Exact software requirements and goals must be defined.
5. Problem
The problem that is to be solved by the pattern, eg. customer-communication may be described as foll
“Modeling activity is communication intensive activity. If proper requirements are not defined due to la
‘communication, requirements may be misinterpreted’
6. Solution
Itdescribes implementation of pattern.
7. Resulting Context
It’s the result when pattern is successfully implemented for a given problem.
8. Related Patterns
Itis the list ofall process patterns those are related to each other. eg. for communication related patterns are:
Project team formation
‘* Requirements gathering ete.
2.3 Process Assessment and Improvement
«Process assessment is carried out to understand the current state of software process. After assessment,
required the improvement is done.
«By process assessment it is possible to know:
a) Whether software will be delivered on time.
b) Whether software is maintaining predefined quality.
©) Whether software will satisfy customer's all requirements.
2.3.1 Approaches for Process Assessment
‘These are formal techniques those are available for assessing the software process. Different app
assessment of software process a1B soteare Engineering (SPPU~ Comp) - a
1, Standard CMMI Assessment Method for Process Improvement (SCAMP1)
‘This method provides five-step assessment model for Process Assessment
a) Initiating ——_b) Diagnosing
©) Establishing d) Acting
©) Learning
2, CMM-Based Appraisal for Internal Process Improvement (CBA IPI)
‘This method is for checking relative maturity of software organization.
SPICE (1S0/1EC15504)
This standard defines set of requirements for process assessment.
1S0 9001 : 2000 for Software
‘This standard is applicable for software organizations and companies. It applies to any organization that wants
to improve its quality.
2.4 Prescriptive Process Models
+ All the software organizations describe a unique set of framework activities for their own development
Processes. In general, it should adopt all the generic framework activities and the set of tasks defined in
Section 2.1 ie. Generic Process Model. Whatever process model is chosen by the organization, but it should
‘encompass the following framework activities :
1. Communication —2._Planning
3. Modeling 4. Construction 5. Deployment
‘+ The name ‘prescriptive’ is given since the model prescribes set of activities, ations, tasks, quality assurance and
change control mechanism for every project. Each of the prescriptive models also prescribes a workflow.
‘© Workflow is defined as the flow of process elements and the manner in which they are interrelated. All the
generic framework activities are defined earlier, but each of the prescriptive models put different emphasis to
these generic framework activities and give different workflow.
+ _Inthe following section, we describe some of the prescriptive process models:
‘The waterfall model
Incremental process models,
Evolutionary process models
The specialized process models
2.4.1 The Waterfall Model
Q. Explain waterfall model with its advantages and disadvantages. PES
Q. Explain the waterfall model with V model. Sas
Q. Explain why waterfall model of the software engineering is not an accurate reflection of software development activities
SL= Analternative design for ‘Linear Sequential Model'is as shown in Fig. 2.4.2
1.
2
Software Engineering (SPU — Comp)
“This model is also called as ‘Linear sequential model”
begins at system level and goes through analysis,
26
or ‘Classic life cycle model’. Classic lite cycle
‘coding, testing and maintenance.
design,
‘Communication
oe Projectintation
‘+ Requirement
gathoring
Planning
* Estimating
+ Scheduling
+ Tracking
Fig, 2.4.2: The linear sequential mode!
‘Communication
«According to waterfall model customer must state all requirements atthe beginning of project.
Planning
It includes complete estimation (eg. cost
project development) and tracking.
Modeling
© Itincludes detail requirement analysis and project design (algorithm, flowchart etc).
+ Flowchart shows complete pletorial flow of program whereas algorithm is step-by-step solu
problem.
Construction
Itincludes coding and testing steps :
1) Coding: Design details are implemented using appropriate programming language.
“The software development process starts with communication between customer and developer.
Modeling
‘+ Analysis
Construction,
Coding ]
+ Testing
‘Deployment
* Delivery
= Support
+ Feodback
2.4.1: The Waterfall model
estimation of project) and scheduling (complete timeline chartSoftware Process
U) Testing : Testing is carried out to check whether low of coding is correct. to check out the errors of,
program eg. in C program just by pressing F7 key we check step by step execution of program or by using
“Ad-Watch” we add the variables and watch the values of variables, to check whether program is giving
expected outputas per input specifications.
6 Deployment
‘+ Itincludes software delivery, support and feedback from customer.
+ If customer suggest some corrections, or demands additional capabilities then changes are required for
‘such corrections or enhancement.
Morits / Advantages
1. This model is very simple and easy to understand and use.
2. Waterfall model is systematic sequential approach for software development. Hence it is most widely used
paradigm for software development.
3, Inthis approach, each phase is processed and completed at one time and thus avoids phases overlapping.
4. Itis very easy to manage since all the requirements are very well understood in the beginning itself.
5. _ Itestablishes the milestones whenever the products are produced or reviews available.
Demerits / Disadvantages
1. Problems in this model remain uncovered until software testing.
2. One of the disadvantages of this approach is ‘blocking states’. In blocking state, the members of development
‘team waits for other members to complete the dependent tasks. Due to this, huge amount of time spent in
waiting rather than spending time on some productive work, In today’s world, the software work is fast paced
and thus waterfall model is not useful.
3. According to this model customer must state all his requirements at the beginning stage of development. which
{s difficult for the customer,
4. ‘This model is step-by-step systematic sequential approach. Ultimately, customer gets the working version of
software too late. Hence customer requires patience.
5, This approach is actually not realisticand does not match with real projects.
6. Also it does not incorporate the risk assessment.
7, Finally tis useful for smaller projects only where requirements are well understood in the beginning only.
2.4.2 Incremental Process Models
+ Using these models a limited set of customer's requirements are implemented quickly and are delivered to
customer.
‘Then modified and expanded requirements are implemented step by step.
‘Actually, in this approach, the overall functionalities are split to smaller modules and these modules are quickly
developed and delivered. Then refinements are possible in later increments or versions.
‘© In this approach, the initial requirements are very well defined. Each increment is passed through the overall
development cycle ie. phases of classic life cycle discussed earlier.
‘© The customer's feedback is very important after each of the increments (or releases) and nest increment is
developed. This process continues till the product is finished ie. all the requirements are satisfied.W soar tern SPP = Co) a alll
‘+ Following are the two types of incremental process models
‘The incremental model 2. The RAD model
2.4.2(A) The Incremental Model
Cie
2. Explain wth neat diagram incremental model and state ts advantages and disadvantages?
ELAR
‘+ The incremental model combines the elements of waterfall model applied in an interactive fashion,
Increment is generally acore product.
‘+ Each increment produces the product, which is submitted to the customer. The customer suggests
‘modifications.
[El communtenton
Pinning
[)_Medetng ryt, design)
[BD Cenebuetion (ode, te
(ED eotoyment tver tncbnct)
Fig. 24.3: Project calendar time
‘©The next increment implements customer's suggestions and some additional requirements in. previ
Increment. The process is repeated until the producti finished.
‘+ Consider the development of word processing software (like MS Word or Word Sta) using incremental m
4. Increment =
Basic fle management functions like: New, Open, Save, Saveas et. canbe implemented in frst increment.
2 Increment-2
More sophisticated editing and document production capabilites can be Implemented in second i
‘+ Forexample, rulers, margins and multiple font selection can be implemented,
Increment -3
Spelling grammar checking and avto correction of words is implemented in third increment.
4. Increment -4
‘The final advanced page layout capabilities are developed in fourth increment. And so a
finished. ‘And so on till theSoftware Process
2. The incremental mode! is useful when the size of development team is small in the beginning or some team
‘members are not available. Thus early increments can be implemented with small size of eam.
2. Behe product satises the client then the size of team can be increased.
‘iso increments can be properly planned to handle all types of technical risks. For example some application
‘ay require a new hardware that is presently not available. In this situation the increments can be planned to
avoid the use of that hardware.
4. The initial product delivery is faster and cost of developmentis low.
‘Tee customers can respond to the functionalities after each increment and come up with feedback.
Demers | Disedvantages
4. The cestof finished product may be increased inthe end beyond the cost estimated.
2 After each increment the customer can demand for additional functionalities that may cause serious problems
tothe systemarchitecure.
3 Rneedsa very clear and complete planning and design before the whole system is broken into small increments.
2.4.2(8) The RAD Model
|
GQ. Whetere the conditions in which Rapi¢ Application Development model is preferred 7 EES ESS
Q. Exgisin RAD model wih the hel of Gagan
‘+ RAD (Rapid Application Development) model is high-speed adaptation of waterfall model. Using RAD model,
‘software product can be developed within 2 very short period of time ie. almost within 60 to 90 days.
+ The intial activity starts with communication between customer and developer. Depending upon initial
requirements the project planning is done. Now the requirements are divided into different groups and each
requirement group is assigned to different teams.
‘+ Like other approaches, in RAD approach also all the generic framework activities are carried out. These generic
Framework activities are already discussed earlier.
‘+ Whenall teams are ready with their final products, the product of each team is integrated ie. combined to forma
product asa whole.
© InRAD model each team carries out the following steps:
1. Communication: It understands the business problem and information for software.
2. Planning: Since various teams work together on different modules simultaneously, planning is important
part of development process.
It includes :
42) Business Modeling : It includes information flow among different functions in the project eg, what
information will be produced by each function, which functions handles that information etc.
1b) Data Modeling : It includes different data objects used in software and relationship among different
objects.
©) Process Modeling : During process modeling. process descriptions are created. eg. add, modify,
Batacesonar Engincering(SPPU=COmP)
software components ie,
be reused in development
4. Construction: Itincludes
a) Component reuse : Reusable components means the
procedures that are developed for specific application 2”
application.
b) Automatic code generation : The software producing the codes after providing proper
selecting readymade options, eg, Microsoft FrontPage used in Web development, Rational
for Object Oriented analysis and designing
‘whether flow of coding is correct, to check out the er
©) Testing : Testing is carried out to chec!
Jing F7 key we check step by step execution of program
program eg, In C program just by press
using “Add-Watch’ we ada the variables and watch the values of variables, or check whether pr
is giving expected output as per input specifications.
Team: 3
Component rouse
‘Automat code ganoraton
Tesing
Team: 2
Deployment
or * Intogration
—>[Gemmunt Component rouso + Dolivory
‘Automatic code gonoration + Foodback
“Testing
Planning
4
Construction 7
Gomponert rouse
matic code gener
feeenn ‘generation
60-0 daye
Fig. 2.4.4: The RAD Model
Merits / Advantages
1. Using the RAD approach, a product can be developed within very short peri
2, It supports increased reusability of the components a
3. _Itresults in minimal code writing ast supports automatic code ge
-neration,
EEWE software Engineering (SPPU- Comp)
A Software Process
——$
4, Itencourages the customer feedback,
5. Inthis approach, quick initial reviews are possible,
6. Inthis approach, modules integration is done from the beginning thus resolving number of integration issues.
Demerits / Disadvantages.
1, It can be used, if sufficient number of staff is available. Thus,
it requires sufficient man power to create number
of teams.
2. In RAD approach, many teams work parallel to implement different functions of same project. Hence all teams
‘must work with equal speed. If one team lags behind the schedule, overall project delivery will be late.
{system cannot be modularized properly, then building the components for RAD model will be problematic.
4, The RAD model is not appropriate when tech
technology).
I risks are high, (eg. a new application makes heavy use of new
5. This approach is useful for only larger projects,
6 ‘The RAD model had two primary disadvantages as follows
a)
Reduced scalability : It occurs because a RAD application evolves from a prototype to a finished
application, Thus, there is less scope for scalability,
b) Reduced features : It occurs due to time boxing, Time boxing is a time management technique in which the
task is to be completed in a given frame of time called time boxes. Thus, the features are pushed to be
completed to the later releases due to short amount of time.
2.4.3 Evolutionary Process Models
Q. Explain evolutionary process models mentioning the types of projects for which they are suitable,
Sl
TELS
* Evolutionary process models are iterative type models. Using these models the developer can develop
Increasingly more complete versions of the software.
AAs the requirements change very often, the end product may be unrealistic and a complete version of the product
is not possible. To overcome this drawback, the concept of limited version product is introduced and this version
is gradually completed over the period of time,
* Each version is refined based on the feedbacks till it is completed.
Following are the examples of evolutionary process models :
‘The Prototyping paradigm
‘The Spiral model
The Concurrent development model
2.4,3(A) The Prototyping Paradigm
Tin
Q. Explain the prototyping model with its advantages and disadvantages,12
BE _sotware Engineering (SPPU— Comp) 2
fan machine Interaction. Ideally prototype serye,
‘= The prototyping paradigm offers best approach for
mechanism for identifying software requirements
sway prototyping, By using this approach, ther
ren called as throw-a
*+ The prototyping approach i often called as throw awa eMedia demonstration Ist» tg
demonstration of the customer’s requirements Let
prototype.
‘+ Ifworking prototype is built, developer can use software tools if required
prototype can be served as first system’.
(eg report generators).
‘+ This produces working program quickly. Thus,
Conmniaton ‘uck don
Woaoira aa
Deparment ean
cova dace
Conamctono /]
povowre
Fig. 24.5 : The prototyping model
Different phases of prototyping model are
Communication
a) The software prototyping paradigm starts with the communication between the developer and
‘customers.
1b) The software engineer and the customer meet regularly to define the overall objectives of the desi
software and to identify it’s requirements,
ian
8) Quick design focuses on those aspects of software that are visible to the customer.
2 Quick d
1b) Itincludes clear input, output formats and human machine interfaces.
3, Modeling quick design
‘The model of software is now built that gives clear idea of the software to be developed. This enables
developer to better understand the exact requirements
4. Construction of prototype
‘The concept of modeling the quick design leads to the development of prototype. This construction of p
{s deployed by the customer and itis evaluated by the customer itself.
5. Deployment, Delivery, Feedback
a) As picture of software to be built is very clear, customer can give his suggestions as a feedback.
b) result is satisfactory the model is implemented otherwise process is repeated to satisfy customers
requirements.
Merit Advantage
Prototyping makes requirements more clear and system more transparent.WH software Engineering (SPU ~ Comp)
243 Software Process
Domerts / Disadvantags
‘The software developer generally compromises in the quality to get the working prototype quickly.
Due to this reason, sometimes inappropriate operating system or programming language may be selected. He
‘may use and implement inefficient algorithm,
2.4.3(B) The Spiral Model
Q. State the activities of spiral model aa
The Spiral model is combination of well known waterfall model and iterative prototyping, It yields rapid
development of more complete version of software.
Using spiral model software is developed as series of evolutionary releases. During the initial releases, it may be
just paperwork or prototype. But during later releases the version goes towards more completed stage.
Planning
Soedang
commantstion Meiatng
ee esis
ean
Besloyrent onstruction
Dawe Se
Peed
Fig. 2.4.6: The Spiral Model
‘The spiral model can be adopted to apply throughout the entire lifecycle of the application from concept
development to maintenance. The spiral model is divided into set of framework activities defined by software
‘engineer team, Each framework activity represents one segment of spiral as shown in Fig. 2.4.6.
‘The initial activity is shown from centre of circle and developed in clockwise direction. Each spiral of the model
Includes following steps :
1. Communication
‘The software development process starts with communication between customer and developer.
2 Planning
Ie includes complete estimation (eg, cost estimation of project) and scheduling (complete timeline chart for
project development) and risk analysis.
3. Modetting
a)
Itincludes deta requirement analysis and project design (algorithm, flowchart etc)
b) Flowchart shows complete pictorial flow of program whereas algorithm Is step by step solution of problem,at Software Process
Sister tees rr cong) tt se
4
Construction
includes coding and testing steps:
a) Coding : Design details are implemented using appropriate programming language.
D) Testing : Testing is carried out
& Deployment
3) _Itincludes software delivery, support and feedback from customer. If customer suggest some correction,
or demands additional capabilities then changes are required for such corrections or enhancement.
}) Note that after customer evaluation, next spiral implements, ‘customer's suggestions’ plus ‘enhancement
plan’. Thus, each of iteration around the spiral leads to more completed version of software.
Merits Advantages
1. _ In this approach, project monitoring is very easy and more effective compared to other models.
2. Ikveduces the number of risk in software development before they become serious problems.
3. Itis suitable for very high risk projects.
4. Project estimates ie. schedule and cost is more realistic.
5. _ Risk management is in-built feature of spiral model.
& Changes can be accommodated in the later stages of development.
Demerits / Disadvantages
1. _Ifmajor riskis not discovered in early iteration of spiral it may become a major risk in later stages.
2. Each iteration around the spiral leads to more completed version of software. But it's difficult to convince
{especially in contract situation) to the customer that the model is controllable.
3. Cost of this approach is usually high.
4. Itis notsuitable for low risk projects.
5, Rules and protocols must be followed very strictly to implement the approach.
2.4.3(C) Concurrent Models
‘The concurrent development model is also called as concurrent model. This model is more appropriate for
system engineering projects where different engineering teams are involved. In system engineering stage, the
project requirements are considered at system level
Diagrammatically it can be represented as a series of framework activities, task, actions and their associated
states.
Fig. 2.4.7 exhibits one element ofthe concurrent process model.
‘The modelling activity is one of the states and other activities like communication or construction can also be
represented in an analogous manner.
Let the communication activity has completed its first iteration and available in awaiting changes state. The
modelling activity has completed its initial communication and ready to move to under development state
from none state.Engineering (SPPU - Comp.)
Software Process
Under Ropresents the ciate of
development ‘software engineering
‘actnvty oF task
Fig. 2.4.7 : One element of concurrent process model (Le. Modeling activity)
During these transitions, if customer indicates some modification in the requirement, then the modelling
activity transits to awalting changes state from under development state.
Instead of considering activities, actions and tasks as sequence of events,
lefines network of activities.
‘The concurrent process model activities transits from one state to another state and this model is used in all
types of software development and it provides very clear idea ofthe current state of the project.
Merits / Advantages
1. Theconcurrent development model is applicable to all types of software development processes.
2. Itgives very clear picture of currentstate of the project.
3. Itis easy to.use and easy to understand.
4. This approach is flexible and number of releases determined by the development team.
'5. New functionalities as elicited by the client can be accommodated late in the project.
6. Ithas immediate feedback from testing.
Demerits/ Disadvantages
1. Since all the stages in the concurrent development model works concurrently, any change in the requirement
from the client may halt the progress.
‘This may happen due to dependent components among different stages and it lead to more longer development
cycles as compared the planned cycles.
2. Itrequires excellent and updated communication between the team members. This may not be achieved all the
time,
3
‘The SRS must be updated at regular intervals to reflect the changes.: Software Process
BE software Engineering (SPPU~ Comp)
2.4.4 Differentiation between Prescriptive and Evolutionary Process Models
Sr. Prescriptive process models Evolutionary process models
No.
Developed to bring order and structure to the|Evolutionary software processes do not establish the)
software development process maximum speed of the evolution. Due to ahs
development pracess becomes slow.
2. [Defines a distinct set of activities, actions, tasks,|Evolutionary process models lack ~_lexibity
milestones, and work products that are required to| extensibility, and high quality.
engineer high-quality software
3. |Itis more popular. tisless popular.
4. |leprovides complete and fulldeveloped systems. [Time does not allow a full and complete system tobe
developed.
8. [Example Waterfall model Incremental models, _| Example: Prototyping. Spiral and Concurrent models.
2.5_A Final Word on Evolutionary Processes
+ Ithas been noted that modem computer software is characterized by continual change, by very tight time lines,
and by an emphatic need for customer user satisfaction,
+ Inmany cases, time-to-market isthe most important management requirement. If market window is missed
the software project itself may be meaningless. Evolutionary process models were conceived to address these
issues, and yet as a general cass of process models, they too have weaknesses.
+ Despite the unquestionable benefits of evolutionary software processes, we have some concerns. The firs
concern is that prototyping poses a problem to project planning because of the uncertain number of cycles
required to construct the product. Most project management and estimation techniques are based on linear
layouts of activities, so they donot fit completely.
‘+ Second, evolutionary software processes do not establish the maximum speed of the evolution. Ifthe evolutions
occur too fast, without a period of relaxation, itis certain that the process will fall into chaos. On the other hard
if the speed is too slow then productivity could be affected.
# Third, software processes should be focused on flexibility
assertion sounds scary. However, we should prioritize
Extending the development in orderto reach high quality c
opportunity niche has disappeared.
and extensibility rather than on high quality. This
the speed of the development over zer0 defects
ould result ina late delivery ofthe product, when the
This paradigm shift is imposed by the competition on the edge of chaos, Indeed
‘on flexibility extensibility, and speed of development aver high quality does on
‘been proposed by a numberof well-respected software engineering experts. 1
isto develop high-quality softwarel4 in aniterative or incremental manner.
software process that focuses
+ Homer pone a an vtnry rea 2 smPhasize Nexbility, extensibility, and speed of
evelopment. The challenge for software teams and their managers isto ebeche ‘
these critical project and product parameters and customer satisfaction, Pt" # Proper balance betwee?;
WH sofware Engincering (SPPU- Comp.) 2a7 Software Process
2.6 Unified Process
Tian
‘Q. Explain in deta the Unified process indicating workflows and process phases. What are the advantages of Herative
development ? SRE
‘The object oriented methods and programming languages are widely used in software development. Hence
Object Oriented Analysis (OOA) and Object Oriented Design (00D) methods are proposed for Object Oriented
software development.
Object Oriented Process Model similar to that of evolutionary models are used as new paradigm for software
development using object oriented Languages.
During 1990 Rumbaugh, Booch and Jacobson combined, presented a Unified Modeling Language (UML) that
includes notations for modeling and development of OO systems. By 1997 UML became industry standard for
Object Oriented software development and Rational corporation developed automated tools to support UML
methods (ie. Rational Rose software),
* UML provides the necessary technology to support object oriented software engineering practice, but doesn’t
provide the process framework to guide project teams in their application of the technology. Hence, Rumbaugh,
Booch and Jacobson developed the Unified Process, a framework for object oriented software engineering using
UML,
2.6.1 The Phases of Unified Process
Tmeasi
Q. Explain the phases of unified process model,
Gm
Elsboration
Inception
Deployment
Release sid
[Software incroment
Transition
Production
Fig. 2.6.1 : The unified process
‘The unified process includes following phases :
1. Inception phase
It includes customer communication and planning activities,
+ _ Here with customer communication requirements are identifies and architecture for the system is planned.Settorare nigreering (SPP - Cann) zie
‘To understand the requirernents better, the Use case diagram is developed.
‘The Use case diagram shows the relationship between actors (e.g person, machine, another
and use cases (sequence of actions i
management system.
System, ee)
- procedures /functions) Fig, 2.6.2 shows a use case diagram fora)
Payment and tech uedate
Fig. 2.6.2 : Use Cate diagram for Sales Management System
2. Elaboration phase
It includes customer communication and modeling activities of generic process model. Elaboration refines and
expands the use cases developed in inception phase and expands architectural representation to include five
different views of sofware.
© Use case model
© Analysis model
© Design model
+ Implementation model
+ Deployment model
2. Construction phase
+ This phase is equivalent to construction activity for generic software process.
+ Using the architectural model as input the construction
phase develops software components that will
make use of each use case diagram.
+ To acquire this, analysis and design models that were started during elaboration phase are completed t0
reflect the final version of software increment.
4, Transition phase
During this step the software is given to end user for beta testing.
« Nowuser can report the defects and necessary changes.
+ Developing team alzo creates all necessary information regarding developed software.
«Por example, user manuals, troubleshooting guides (Guidelines iso
me trouble occur during handling ofthe
cet omare), and installation procedures. Asa conclusion ofthis phase ‘
software is now ready to release.WF _sonware Engineering (SPPU~ Comp.) 249 Software Process
6. Production phase
Itis equivalent to deployment activity of generic process.
During thts phase
© Ongoing use of software is monitored.
‘+ Support for operating environment is provided,
‘+ Defect reports and requests for changes are submitted and evaluated.
During the time of construction, transition and production phases, preparation of next increments started.
2.6.2 The Iteration among Four Phases
A phase is said to be the period of time between two processes. As shown in Fig. 2.6.1, a software development
life cycle consists of mainly four phases :
a) Inception
b) Elaboration
©) Construction and
4) Transition
Between all these four phases, one important element is present ie. iteration. Iteration actually separates all
these phases. Iteration consists of different set of activities in the project plan and the criteria for evaluation
necessary for future releases.
This software development life cycle is revolves around all these four phases and software development
activities can be divided into these four phases. This development process is highly dependent on continuous
stream of releases. This is the reason why all the four phases of the unified process supports incremental and
iterative development.
2.7_ Agile Software Development
In today’s modern world, businesses spread across the globe in each sphere of life. It has become the global
Phenomenon. Due to this changing environment, the client must respond to new opportunities and to the
volatile market conditions, and to the arrival of new products and services.
The software application is actually the heart of all the business operations. So according to the rapid changing
rules and business ideas, it should respond quickly,
Thus, the developer is supposed to develop the new software quickly to meet the desired requirements in the
stipulated time.
4m fact, in such rapidly changing market condition, rapid development of the software and its urgent delivery is
the need of the time and it is supposed to be the most critical requirement of any software system.
Normally most of the clients are even ready to compromise the quality of software and the requirements at the
cost of faster development of the software and its quick delivery.
Since all the businesses usually operate in the rapidly changing environment, it becomes highly impossible to
gather complete set of requirements. The requirements elicited by the customers in the beginning are always
‘changed since the customers find it difficult to predict the actual working of the software and the challenges to
come across.Software Proce,
20
© Engineering (SPPU = Comp)
equirements change narrated by the
+ Thus, understanding the requirements quickly and accommadate the requlrements Chaney rived by thy
‘customer quickly is the need of the time. Otherwise, delayed delivery of the software may —
out of date,
not work for the a
* Thus, waiting for the complete requirements gathering from the customer ar setuid rapiq
development. Since the requirement of the customer changes with the progress of the reopen
process.
‘+ Due to this reason, the conventional approaches like waterfall model or specification based processes will delay
the final delivery of the software system.
But in some cases like critical control system, the complete analysis of the requirement is mandatory else it may
cost life. For such type of safety systems, plan-driven approach is always the best choice,
Rapid software development processes are the ultimate choice for the development of useful products in quick
time span. In this approach the software is developed as a series of increments.
Agile methods are incremental development methods in which the increments are usually small the new
versions of the system are created rapidly and handed over to the customers within the span of 15 to 20 days
and their feedback is received for the next versions.
2.7.1 Agile Process Model
Ine
Q. Explain about agile process model Hi
‘+ An agile process model includes the concept of development along with a set of guidelines necessary for the
development process. The conceptual design is necessary for the satisfaction of the customer.
+ The concept is also necessary for the incremental delivery of the product. The concept or the philosophy makes
development task simple. The agility team must be highly motivated, updated with latest skill sets and should
focus on development simplicity.
‘= We can say that agile development is an alternative approach to the conventional development in certain
projects.
‘+ The development guidelines emphasize on analysis and design activities and continuous communication
between developers and customers, An agile team quickly responds to changes,
+ The changes may be in development, changes in the team members, andl changes due to new technology. The
agility can be applied to any software process emphasizes rapid delivery of operational software
+ Allthe agile software processes should address three important assumptions:
a) Difficult to predict in advance software requirements
b) Design and construction are interleaved in most of the proj
construction, jects, It fs dificult to predict design before
©) Analysis, design, construction and testing are not much predictable
* Toaddress these assumptions of unpredictability, the
agile development pr
process must adapt incrementally.sore Esinering SPPU= Comp) 221 Sotvare Process
'2.7.1(A) Comparison between the Agile and Evolutionary Process Models
Ts
Q. Compare the agle and evolitonary process models wih a specie process model for each. SEO RE EI
Compare the process between the Agie and evolutionary mode Sa
Sto. Agile process model Evolutionary process model
41, [These models satisfy customer through early and|Using these models the developer can develop
continuous delivery. increasingly more complete versions ofthe software.
2, |Iteanaccommodate changing requirements. |Ityields rapid development of more complete version of
software rather accommodating continuous changing
requirements.
3. [In this development process customer, business| Daily meetings are not required. After one evolution of|
[people and developers must work together daily. |design, customer, business people and developers can}
meet and discuss.
4. |The messages are conveyed orally Le. face-to-face | Oral messages are not so essential.
Conversation is essential
5. | Technical excellence and good design isachieved. |The developer often compromises in order to get]
Jworking prototype quickly. Thus inappropriate!
loperating system or programming language may be|
used simply because it's available and known. Thus|
Inefficient algorithm may be implemented.
2.7.2 Agile Methods
Tia
How Agile! XP methodology will help project managers ? STEERS
‘+ In the early days of software development, developer used to plan the project carefully, focus on quality
assurance and employee the analysis and design methods supported by various CASE tools.
‘© This was the general practice of the software developer community that was responsible for the development of
larger projects such as government projects etc.
‘© This larger projects use larger team and the team members may spread geographically across the world and
they worked on the software for the longer period of time,
'* Therefore, the development period may extend up to the 10 years from the initial specification to the final
delivery ofthe product.
‘+ Such a planed-driven approach will involve significant overheads in all the stages of the development processes
like requirement specification, planning, designing, coding and documentation.
‘+ In order to overcome this heavy weight plan-driven approach, the concept of agile methods was proposed, This
‘methodology mainly focused on the product instead of focusing on the design and documentation part.
‘+ All the agile methods trust on the incremental approach instead of the conventional waterfall approach. The
Incremental approach is the best approach where the customer requirements and the software requirements
change rapidly or frequently. :BE sofware Engineering SPPU comp)
‘The philosophy behind agile methods is also observed in Agile Manifesto that is accepted by mas
‘software developers. The Agile Manifesto is discussed in the Section 2.7.3.
2.7.3 Agile Manifesto
a Soheware buy,
A the beaieg
The Agile Manifesto states that:
“We are uncovering better ways of developing software by doing it and helping others do it
‘Through this work we have come to value,
a) Individuals and interactions work over processes and tools.
1b) Working software takes responsibility of comprehensive documentation.
©) Customer collaboration look after contract negotiation
4) Responding to change after having a good plan’.
Even though these agile methods are based on the concept of incremental development, quicker delivery an
faster deployment, the agile manifesto gives different processes to achieve this.
‘But most ofthe set of principles used by various experts that are based on agile manifesto are very much common,
2.8 _Plan-Driven and Agile Development
1m agile development approaches, the design and implementation are considered as the main activity in the
software development process.
In addition to that, they also use activities like requirement specification, testing, debugging and maintenance
But in a plan-driven approach, output associated with stage is also identified. The output obtained in one stage is
tused as the basis of planning forthe later stages ofthe software process.
© Fig.2.8.1 exhibits comparison between plan-driven and agile approaches to the requirement specification.
Pran-based development
Requirements Requrements Design ana
‘engineering ‘specification implementation
Requirements change
request
{Agile development
‘engineering
Fig. 2.
istinetion between plan-driven and agile approaches tothe requirement specification
‘+ Inplan-driven approach, the iteration may occur within each of the activities and they are communicated with
the help of formal documentation. After this formal communication, final “Requirement Specification” wil bt
produced.W_ software Engineering (SPPU- Comp)
23 Software Process
‘+ In contrast, for an agile approach the iteration occurs across different activities. Observe the Fig. 2.8.1, the
requirement specification and design are developed together to produce final product.
* As discussed earlier, the agile approach employee's incremental development and delivery. Thus, there is a
series of incremental deliveries or we can say that series of versions for the software application under
consideration.
‘+ In general practice, so many software organizations have used agile methods and also use agile practices and
they have integrated these with their plan-driven processes.
2.8.1 Comparison between Plan-driven and Agile Development
Sr.No. Plan-driven development Agile development
1, |Ina plan-driven approach, output associated with stage] In agile development approaches, the design and
{s also identified. The output obtained in one stage is| implementation are considered as the main activity
used as the basis of planning for the later stages of the| in the software development process.
software process.
2. |In plan driven development, Iteration occurs within|In agile development, iteration occurs across
leach of the activities. different activities.
3. [Communication between different activities done with|The requirement specification and design are|
the help of formal documentation and after this| developed together to produce final product.
‘communication, final “Requirement Specification” willbe
produced
4. [Plan-driven software development uses structure to| Agile software development uses flexibility to control
[control risk. risk,
5. _|Plan-driven emphasizes formal communications and| Agile emphasizes continual__informal.
control communications and an ability to react to changes
[and uncertainty.
6._ | tistess adaptive in nature. Itis more adaptive in nature.
7. |Bxamples: Examples : SCRUM, Extreme Programming.
‘Traditional project management, Unified Process.
2.9 Agile Tools : JIRA
* JIRA is an agile tool used for issue tracking and project management by over 25,000 customers in 122 countries
inthe world.
* JIRA lets you prioritize, assign, track, report and audit your issues from software bugs and help-desk tickets to
project tasks and change requests. i
‘* _ JIRAis offered in three packages : 2
a) JIRA Core includes the base software.
D) _ JIRA Software is intended for use by software development teams and includes JIRA Core and JIRA Agile.
©) JIRA Service Deskis intended for use by IT or business service desks.ae
Software Proce,
Software Engineering (SPPU~ Comp)
‘The main features of JIRA for agile software development are the functionality to plan development iteration,
the iteration reports and the bug tracking functionality. : :
‘+ JIRA is a commercial software product that can be licensed for running on-premises or available as a hose,
application. Pricing depends on the maximum number of users.
2.9.1 JIRA Platform
* Every JIRA application (JIRA Software, JIRA Service Desk, and JIRA Core) is built on the JIRA platform. The jy,
platform provides a set of base functionality that is shared across all JIRA applications, like issues, workflows,
search, email and more.
* You can extend and modify this functionality via the integration points provided by the JIRA platforn,
including the JIRA REST APIs, webhooks, plugin modules, ec.
‘+ The pages in this section will help you learn about the JIRA platform and how to develop for it. You'l fing
information on JIRA's architecture and JIRA add-ons, guides to developing for different parts of JIRA, JIRA Data
Centre, and more.
2.9.2 JIRA Architecture
* JIRA is a web application written in Java. Itis deployed as a standard Java WAR file into a java Servlet Container
such as Tomcat.
+ JIRA uses Open Symphony's WebWork 1 to process web requests submitted by users. Please note that WebWork
1, not 2, fs used. WebWork 1 isa MVC framework similar to Struts. Each request is handled by a WebWork acon
which usually uses other objects, such as utility and Manager classes to accomplish a task.
‘+ JIRA uses JSP for the View layer. So most of HTML that s served to the user as the response to their web request
is generated by a JSP. Therefore, to generate a response the WebWork action uses a JSP.
Embedded
cen
aera crowd
Alassian
Scheduler”
quate
E>
Weber OsWorktow | 4 Relational
= DBMS
=o (|
{eet
web rest |e wy o
ote, (9 tity ng
SOAPT ee ‘Active | [Ape
nC object || ins
= Ea
fica Pigs
Fig. 2.9.1: JIRA architectureSoftware Engineering (SPPU Comp.) Software Process
ES,
3 JIRA Database Schema
‘To generate schema information for the JIRA database, e.g. PDF file. You can generate schema information in pdf,
‘xt and dot formats. Note, if you want to generate the schema in PDF format, you need to have Graphviz installed,
1) Download the attached plugin :
a) ForJIRAS: JIRA-schema-diagram-generator-plugin-1.0ar.
) For JIRA 6: JIRA-schema-diagram-generator-plugin-1.0.1jar.
©) For JIRA 7: JIRA-schema-diagram-generator-plugin-1.1.0 jar.
2) _ Install the plugin in your JIRA instance by following the instructions on Managing JIRA's Plugins.
a) Go to the JIRA administration console and navigate to System > Troubleshooting and Support >
Generate Schema Diagram (tick) Keyboard shortcut: g+ g+ start typing generate
b) Enter the tables/columns to omit from the generated schema information, if desired.
©) you want to generate a pdf, enter the path to the Graphviz executable.
) Click Generate Schema
€)_ The'Database Schema' page will be displayed with links to the schema file in txt, dot and pdf format.
1 2.9.4 JIRA Mobile Connect
JIRA Mobile Connect (JMC) is an i0S library that can be embedded into any i0S app to provide following extra
functionality
1, Real-time crash reporting, have users or testers submit crash reports directly to your JIRA instance.
2. User or tester feedback views thatallow users or testers to create bug reports within your app.
3. Rich data input, users can attach and annotate screenshots, leave a voice message, and have their location sent.
4, Two-way communication with users, thank your users or testers for providing feedback on your app.
2.9.5 JIRA Applications
‘+ The JIRA family of applications currently consists of JIRA Software, JIRA Service Desk, and JIRA Core. A JIRA
‘pplication is built on the JIRA platform, and extends and modifies the base functionality provided by the JIRA
platform.
* For example, the JIRA Software application provides software development features that are not part of the JIRA
Platform, such as agile boards, linked development tool information (eg. commits, builds, ete), and software
Project templates
2.9.6 JIRA APIs
‘The JIRA platform provides both Java APIs and REST APIs that you can use to interact with JIRA
Programmatically. These APIs are common toll JIRA applications.Software Process
NY software Engineering (SPPU Comp) aoe
specific functionality. For example,
‘+ Imaddition, RA Software and JIRA Service Desk provide APIs for application-specific fun« ple,
epics, etc.
the JIRA Software REST API has methods for creating sprints, creating boards, retrieving ep!
2.10 Case Study : Agile Tools - JIRA
2.10.1 Introduction : Project Management Tools
* Complaints about project management tools are common in the software development industry. me can be
heard from people in many roles, in companies of al sizes, and from all countries. When tstening totem one
could come to believe that, oddly, none of the more than one hundred tools existent in the market solves the
Problems it should,
* On top of that, it's particularly interesting to note that the most popular tool in the industry, Jira Software, is
notably the most infamous. Most project management tool users, both heavy and light users, have a negative
opinion of Jira weirdly, even those who have never been in direct touch with it, Several times, I have heard
statements like: “I've never used Jira, but | know it sucks,” and "Project management tools such as Jira are
counterproductive because they slow down the team.” I's almost like companies were adopting Jira just to go
‘against the grain.
* Not surprisingly, though, such comments usually come from teams that follow no specific methods and
Processes of work and in which no one has significant experience with project management.
* Assomeone who sometimes as a consultant, sometimes as a mere observer — has been walking amongst a wide
range of companies, of ll sizes and from different countries, and meeting in these companies plenty of people
with negative opinions about PM tools fr almost two decades, I've developed my own strong, but divergent and
sometimes a litle uncomfortable viewpoint about this discussion. And here I will share, in form of a Retional
case study, the basic points that support my viewpoint.
* Remember, although ! will be mentioning specially Jira inthis fictional case, the scenario and arguments are
mostly valid to any other PM tool. Also, consider, evidently, it isnot the goal ofthis article to discuss any
differences (pros and cons etc.) among different PM tools.
+ A project management tool is nothing more than an artefact to su
management, and software development methods and processes. It won'
methods and processes by itself.
'pport product management, project
‘make your team proficient on those
+ Also, methods and processes shouldn't be dependent ofa tool. Theref
P (0
Fe, Your team must have its 0
and processes in place to begin with. ist have its own methods
© Then, when you decide to implement a PM tool, bear in mind its
Boal isto support your met esses,
so it should fit inside them, never the other way around, Your methods and processes,
+ Last but not least, your team needs a project manager. And it's
okay if you decide to name the rol
different. me the role something
2.10.2 Introduction : JIRA Software
190 countries. Some of the organizations that have used JIRA :
‘management include Fedora Commons, Hibernate and the Apache Soften
as ieSoftware Engineering (SPPU
“omp) 2.27
Software Process
+ JIRAis offered in four package
© JIRA Core is intended as generic project management.
© _JIRA Software includes the base software, including agile project management features.
© JIRA Service Management is intended for use by IT operations or business service desks.
© Opsgenie is intended for incident management.
* _ Jira is written in Java and uses the Pico inversion of control container, Apache OFBiz entity engine, and
WebWork 1 technology stack. For remote procedure calls (RPC), Jira supports REST, SOAP, and XML-RPC. jira
integrates with source control programs such as Clearcase, Concurrent Versions System (CVS), Git, Mercurial,
Perforce, Subversion, and Team Foundation Server. It ships with various translations including English, French,
German, Japanese, and Spanish.
Jira supports the Networked Help Desk API for sharing customer support tickets with other issue tracking
systems.
When launched in 2002, Jira was purely issue tracking software, targeted at software developers. The app was
later adopted by non-IT organizations as a project management tool. The process sped up after the launch of
Atlassian Marketplace in 2012, which allowed third-party developers to offer project management plugins for
Jira. BigPicture, Portfolio for Jira, Structure, and Tempo Planner are major project management plugins for ira.
2.10.3 JIRA Scheme
‘* _ Inside JIRA scheme, everything can be configured, and it consists of :
© Workflows
© Issue Types
© Custom Fields
© Screens
© Field Configuration
© Notification
© Permissions
JIRA Issues and Issue types
JIRA issue would track bug or issue that underlies the project. Once you have imported project then you can
create issues,
Under Issues, you will ind other useful features like:
© Issue Types
Workflow's
Screens
Fields
Issue Attributes
Let see JIRA Issue in detail
Issue Types:
00000
* Issue Type displays all types of items that can be created and tracked via JIRA. JIRA Issues are classified under
Various forms like new feature, sub-task, bug, etc. as shown as follows
Various forms like new feature, sub-task, bug, etc. as shown as followSoftware
oe
ware Finglneering. (SPPU = Comp, 7 J
© _Aaile Scrum Isste Type Scheme: Issues and project associated with Agile Scrum will use this scheme.
rer GRD), team Anta veer mogenes ang rsrver new arene
Wet Bch 4 beta tt Tp ete
1 hat Som ee Tare Seng
‘Screen Schoen
1 hole Seu as Tipe Scher
‘eo Type Screen Same
+ Deine Ie
suo 1 hole Senemtoaue Tyee Selene
Fatt Conteyrotons
Pat Corte Steen
1 betas toe Sete
‘There are two types of Issue types schemes in JIRA, one is.
© Default Issue Type Scheme: In default issue type scheme all newly created issues will be added
automatically to this scheme
sue rvres Issue Type Schemes
sue
Se
eg emma Seong cea
fen =e
thes ew eect es re Now Fe
pemvonme \ Sitsiersnncng Stan
- ®
svete,
rae =
aera oy
Srna
=
— —— ee a
ee
rs cotortrs Senceemasctemtesin Gy am
ets Contquiten Sehanas ———847B REN Gechnca isk
(Bug
ee‘© Apart from these two Issue type schemes, you can also add schemes manually as per requirement, for example
‘we have created IT & Support scheme, for these we will drag and drop the issue types from the Available Issue
{ype to Issue type for current scheme as shown in the screen shot below.
Components are sub-sectlons of a project; they are used to group issues within a project into smaller parts.
Components add some structures to the projects, breaking it up into features, teams, modules, subprojects and
‘more. Using components you can generate reports, collect statistics, and display it on dashboards and so on.
‘+ Toad new components, as shown In the above screen you can add name, description, component lead and
default assignee.
BE components
‘ops con be en down wo cont, 6 Diatwa’"Ver aera ms cen Bumbo clare apne ete commoners
ene onctnton Compson Dias Aone
. | [econ cnn) Aas
Thine nga Propet tao
naira
{Issue is created in JIRA, it will be arranged and represented into different fields, this display of field in JIRA
Isknown as a screen. This field can be transitioned and edited through workflow. For each issue, you can assign
the screen type as shown in the screen-shot.
fo add or associate an Issue operation with a screen you have to go in main menu and click on Issues then click
‘on Screen Schemes and then click on “Assoclate an issue operation with a screen” and add the screen according
the requirement.Software Process
‘Associate an Issue Operation with a Screen
Isso Oprabon | reat suo o
Screen _Datout Seen
‘System Administration
Some of the useful features that}IRA admin provides to users are:
°
Audit Log
Under Audit Log, you can view all the details about the issue created, and the changes made in the issues.
Issue Linking
This will show whether your issues link with any other issue that is already present or created in the project
also you can de-activate Issue linking from the panel itself
Mall in JIRA
Using Mail system in admin you can mail issues to an account on a POP or IMAP mail server or messages
written to the file system generated by an external mail service.
Events
An event describes the status the default template and the notification scheme and workflow transition post
function associations for the event. The events are classified in two a System event (JIRA defined events)
and Custom event (User defined events).
Watch list
JIRA allows you to watcha particular issue, which tells you about the notifications of any updates relating to
that issue. To watch an issue, click on the word "watch" in the issue window, and ifyou want to see whe i
watching your issues, you have to click on the number in brackets,
Issue Collectors
In the Form of|TRA Issuer an arue collect allows you to gather feedback on any website. In administration
ifyou click on issue collectors an option will open asking Add Issue Collector. Once you have configured the
look and fel ofan Issue Collector, embed the generated avaScript in any website for feehacte
Development Tools
You can also connect your Software development tools to JIRA tool us
ing this admin function, You have to
enter the URL of the application to connect with JIRA.
How to creato an Issue In JIRA
JIRA Dashboard will open when you enter your user ID and password, Under free
option Project, when you click on it, it will open a window that lis
JIRA dashboard you will find
t out options like Si
Management, Agile Kanban, ira Classic and so on as shown as follows imple Issue Tracking, Projectsoftware Engineering (SPPU- Comp.) 231 Software Process
Select Project Type
Smears Development
Tah ceveogment ass abs Ostnaty
amelyetanare and bosseanaoee
se Serum
mg or ue eveopan wen
becnogy nes bps
Demo Projet
Gove no wes een JRA sen Peet
‘When you click on option Simple Issue Tracking, another window will’ open, where you can mention all the
details about the issue and also assign the issue to the responsible person.
Simple Issue Tracking
Simple lesue Tracking
‘Specty a deserve name and ey fr your
prec For example, the name othe
sppaton fat you ae acting ses
ae Benno i younave more man one user. you aso
ee edo chose a project ad. Ths sent
Proeet eas FY krsbna Rungla Aamir] bene person nat manopes sue aching
Fearne ucemacw tte Ponaene forts poet
~ &)-
When you click on “Submit” button, a window will open where you can perform a list of work like creating
issues, assigning issues, check the status of issues like- resolved, In-Progress or closed and so on.
Leummary” Error auning miepration toting
Pry | Mayor -o
ue pate (Went cs
peter” “Fi keanma Risa Undmvetaor)how
Software Engineering (SPPU Comp ) 2
earl suites
* Once the issue is created a pop-up will appear on your screen sayin yu Soeue Ie
as follows
— =
SAP Testing
* Now if you want to edit an issue or you want to export the issue
{Your mouse on main panel and dick on Issues. Under Issues options cick in search far tenes thas
Fing titers Propet ® oe 61.2 Bug detected whie User A
rs croermy G2 8T-1 Error aunng Integration
Reported by me @sr-2 | Fiters
. ug ceteg My Open Issues
Jecently Viewed oe ue
All issues hdls
Error aun Bug UAT
Maan
FAVORITE FILTERS ———
Timesheet
Bug UAT
Subscriptions
‘+ When you select the “search for Issues” under Issues,a window will appear as sherwn in the screen tho,
Search tenn 20m Time Ome
meee pein mente pertinent ome samen =|
_ ed erie
foe mame
0m oe te
© cnaren ws ee he Sey ew _ .
or we —s Se
Search for Issues option vill bring you to a window where you can see the . .
have issues ST1 and ST2 SUES Created by you like hereW. sonar ragnertng S00 = Comp) ae a
Ra etree eee entree
Here In the sereen shot you can see the Issue "Bug detected while User Acceptance Testing” and all the details
related to it, From here, you can perform multiple tasks like you can
comment on the issues, assigning issues and so on.
stop the progress on issues, edit the issues,
Even you can export Issue detalls to a XML or Word document.
Also, you can view activity going on the issue, reviews on the issue, work log, history of the issue and so on.
Under the time tracking option, you can even see the estimation time to resolve the issues
Inthe same window, you can set a filter for the Issue and save them under Favorite Filters, so when you want to
search or view a particular issue you can locate it using the filter,
To view the summary of the issue, you can click on options summary, this will open a window which will show
all the details of your project and progress on this chart. On the right-hand side of the summary window, there is
an Activity Stream which gives the details about the issues and comments made by the assignee on the issue.
‘sneay
roconey pe
(enter peda ty pet
over tit ao
gue tent pan —
er oy —
' eo
: —
oe cicbosteeh i eel
Explain the RAD model with advantages and disadvantages? :
Explain evolutionary process models mentioning the types of projects for which thoy are suitable,
What do you mean by working and throwaway prototypes? Explain how they are used In prototyping model?
Explain advantages and disadvantages of prototyping model?
State the activities of spiral model.