0% found this document useful (0 votes)
26 views50 pages

Oose Unit-1 New

The document outlines the syllabus for the course CCS356 - Object Oriented Software Engineering for B.Tech Information Technology students in their sixth semester. It includes five units covering software processes, requirements analysis, software design, testing and maintenance, and project management, along with a detailed lecture plan and recommended textbooks. The course emphasizes agile development methodologies and practical applications of software engineering principles.

Uploaded by

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

Oose Unit-1 New

The document outlines the syllabus for the course CCS356 - Object Oriented Software Engineering for B.Tech Information Technology students in their sixth semester. It includes five units covering software processes, requirements analysis, software design, testing and maintenance, and project management, along with a detailed lecture plan and recommended textbooks. The course emphasizes agile development methodologies and practical applications of software engineering principles.

Uploaded by

Mahalakshmi V
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 50

CCS356 – OBJECT ORIENTED SOFTWARE ENGINEERING

III YEAR / VI SEMESTER (B.Tech - INFORMATION TECHNOLOGY)

UNIT - I SOFTWARE PROCESS AND AGILE DEVELOPMENT

PREPARED BY

Mrs.V.MAHALAKSHMI, M.E., (AP/IT)

VERIFIED BY

HOD PRINCIPAL CEO/CORRESPONDENT

DEPARTMENT OF INFORMATION TECHNOLOGY

SENGUNTHAR COLLEGE OF ENGINEERING – TIRUCHENGODE

1
CREDIT POINT

ANNA UNIVERSITY, CHENNAI


AFFILIATED INSTITUTIONS
R-2021

B.TECH INFORMATION TECHNOLOGY

SEMESTER VI

PERIODS TOTAL
S. COURSE CATE
COURSE TITLE GORY
PER WEEK CONTACT CREDITS
NO. CODE
L T P PERIODS
THEORY
Object Oriented Software
1. CCS356 PCC 3 0 2 5 4
Engineering
2. OBT351 Food, Nutrition and Health OEC 3 0 0 3 3
3. CCS366 Software Testing and Automation PEC 2 0 2 4 3
4. CCS341 Data Warehousing PEC 2 0 2 4 3
5. CCS354 Network Security PEC 2 0 2 4 3
Multimedia and Animation / NM
6. CCS352 PEC 2 0 2 4 3
course
Well Being with Traditional
7. MX3085 Practices - Yoga, Ayurveda and MC 3 0 0 3 0
Siddha
PRACTICALS
Mobile Applications Development
8. IT3681 PCC 0 0 3 3 1.5
Laboratory
TOTAL - - - - 20.5

2
SYLLABUS
CCS356 – OBJECT ORIENTED SOFTWARE ENGINEERING

UNIT I SOFTWARE PROCESS AND AGILE DEVELOPMENT 9


Introduction to Software Engineering, Software Process, Perspective and Specialized
Process Models – Introduction to Agility- Agile process- Extreme programming- XP Process-
Case Study.

UNIT II REQUIREMENTS ANALYSIS AND SPECIFICATION 9

Requirement analysis and specification – Requirements gathering and analysis – Software


Requirement Specification – Formal system specification – Finite State Machines – Petrinets
– Object modelling using UML – Use case Model – Class diagrams – Interaction diagrams –
Activity diagrams – State chart diagrams – Functional modelling – Data Flow Diagram - CASE
TOOLS.

UNIT III SOFTWARE DESIGN 9


Software design – Design process – Design concepts – Coupling – Cohesion – Functional
independence – Design patterns – Model-view-controller – Publish-subscribe – Adapter –
Command – Strategy – Observer – Proxy – Facade – Architectural styles – Layered - Client
Server - Tiered - Pipe and filter- User interface design-Case Study.

UNIT IV SOFTWARE TESTING AND MAINTENANCE 9

Testing – Unit testing – Black box testing– White box testing – Integration and System
testing– Regression testing – Debugging - Program analysis – Symbolic execution – Model
Checking- Case Study.
UNIT V PROJECT MANAGEMENT 9
Software Project Management- Software Configuration Management - Project Scheduling-
DevOps: Motivation-Cloud as a platform-Operations- Deployment Pipeline: Overall
Architecture Building and Testing-Deployment- Tools- Case Study

TOTAL: 45 PERIODS
TEXT BOOK
1.Bernd Bruegge and Allen H. Dutoit, “Object-Oriented Software Engineering: Using UML,
Patterns and Java”, Third Edition, Pearson Education, 2009.
2. Roger S. Pressman, Object-Oriented Software Engineering: An Agile Unified Methodology,
First Edition, Mc Graw-Hill International Edition, 2014.
REFERENCES
1. Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli, Fundamentals of Software Engineering, 2nd
edition, PHI Learning Pvt. Ltd., 2010.

3
SENGUNTHAR COLLEGE OF ENGINEERING, TIRUCHENGODE- 637205
DEPARTMENT OF INFORMATION TECHNOLOGY
LECTURE PLAN

Subject Code : CCS356

Subject Name : Object Oriented Software Engineering

Name of the faculty & Designation : Mrs.V.Mahalakshmi & AP/IT

Course : VI Semester - B.Tech., IT

Academic Year : 2023 – 2024(EVEN SEMESTER)

RECOMMENDED TEXT BOOKS / REFERENCE BOOKS

Sl .No Title of the Book Author Reference

Object-Oriented Software
Bernd Bruegge,
1 Engineering: Using UML, T1
Allen H. Dutoit
Patterns and Java
Object-Oriented Software
2 Engineering: An Agile Unified Roger S. Pressman T2
Methodology

4
NO. OF
TOPIC REFERENCES TEACHING
HOURS
Unit – I : SOFTWARE PROCESS AND AGILE
DEVELOPMENT
Introduction to SE T1-Ch1 Black Board 1

Software Process T1-Ch1 Black Board 1

Perspective and Specialized T1-Ch1 Black Board 1


Process Models
Introduction to Agility T1-Ch1 Black Board 1

Agile process T1-Ch1 Black Board 1

Extreme programming T1-Ch1 Black Board 1

XP Process T1-Ch1 Black Board 1

Case Study T1-Ch1 Black Board 1


Unit-II : REQUIREMENTS ANALYSIS AND
SPECIFICATION
Requirement analysis and
Black Board
specification. T1-Ch2 1
Requirements gathering and T1-Ch2 Black Board 1
analysis
Finite State Machines Black Board
T1-Ch2 1
Petrinets T1-Ch2 Black Board 1
Object modelling using UML T1-Ch2 Black Board 1

Use case Model: Class digm T1-Ch2 Black Board 1

Interaction diagrams & T1-Ch2 Black Board 1


Activity diagrams
State chart diagrams T1-Ch2 Black Board 1
Functional modeling
Data Flow Diagram - CASE
T1-Ch2 Black Board 1
TOOLS.
Unit III : SOFTWARE DESIGN
Software design T1-Ch3 Black Board 1
Design process T1-Ch3 Black Board 1
Design concepts T1-Ch3 Black Board 1
Coupling & Cohesion T1-Ch3 Black Board 1
Functional independence Black Board 1
T1-Ch3
Design patterns Black Board 1
T1-Ch3
5
Model-view-controller T1-Ch3 Black Board 1
Publish-subscribe – Adapter T1-Ch3 Black Board 1
Observer – Proxy – Facade
T1-Ch3 Black Board 1
Command – Strategy
T1-Ch3 Black Board 1
Tiered - Pipe and filter
T1-Ch3 Black Board 1
User interface design -
T1-Ch3 Black Board 1
Case Study
Unit IV : SOFTWARE TESTING AND
MAINTENANCE
Testing – Unit testing
T2-Ch1 Black Board 1

Black box testing– White box T2-Ch1 Black Board 1


testing
Integration and System testing T2-Ch1 Black Board 1

Regression testing T2-Ch1 Black Board 1

Debugging T2-Ch2 Black Board 1


Program analysis 1
T2-Ch2 Black Board

Symbolic execution T2-Ch2 Black Board 1

Model Checking- Case Study T2-Ch2 Black Board 1


Unit V : PROJECT MANAGEMENT

Software Project T2-Ch3 Black Board 1


Management.
Project Scheduling T2-Ch3 Black Board 1
Software Configuration T2-Ch3 Black Board 1
Management
DevOps: Motivation T2-Ch3 Black Board 1

Cloud as a platform T2-Ch3 Black Board 1


Deployment Pipeline T2-Ch3 Black Board 1
Deployment - Tools T2-Ch3 Black Board 1

Case Study T2-Ch3 Black Board 1

Total Lecture Hours 45

Revision Hours 05

Total 50

6
UNIT I
SOFTWARE PROCESS AND AGILE DEVELOPMENT

 Introduction to Software Engineering

 Software Process

 Perspective and Specialized Process Models

 Introduction to Agility

 Agile process

 Extreme programming

 XP Process

 Case Study.

7
UNIT I

LIST OF IMPORTANT QUESTIONS

PART A

1. List out the five activities of a generic process framework for software engineering.

2. Draw the flow diagram of Iterative process flow and parallel flow.

3. List out the goals of software engineering.

4. What are the various categories of software?

5. What is a Software Process?

6. Define an evolutionary prototype.

7. List any two agile process Models?

8. Define software engineering.

9. What is software? List its characteristics.

10. Name the umbrella activities in software process.

11. If you have to develop a word processing software product, what process models will
you choose? Justify our answer.
12. Depict the relationship between Work product, task, activity and system.

13. What led to transition from product oriented development to process oriented
development?
14. Mention the characteristics of software contrasting it with characters of hardware.

15. What are the pros and cons of Iterative software development models?

8
PART B

1. Compare the waterfall, prototyping and spiral Model? What is the role of user participation
in the selection of a life-cycle model? List out the various prescriptive process model
available in software development with appropriate diagram?
2. Explain the phases in Extreme programming process. Explain the steps involved for Extreme
Programming (XP)?

3. What is agility? Elaborate the agile principles?

4. Explain in detail about Software Process?

5. Explain the function of incremental delivery process model with a neat sketch.

6. Explain how work break down structures is used in software engineering. Discuss
how software project scheduling helps in timely release of a product.

9
UNIT I

PART A

1. List out the five activities of a generic process framework for software engineering.

Five framework activities are described in a process framework for software


engineering. Communication, planning, modeling, construction, and deployment are all
examples of framework activities.

2. Draw the flow diagram of Iterative process flow and parallel flow.

 An iterative process flow repeats one or more of the activities before proceeding to the next.

 A parallel process flow executes one or more activities in parallel with other activities.

Fig 1: process flow


3. List out the goals of software engineering.

 Readable
 Correct
 Reliable
 Reusable
 Extendable

10
 Flexible
 Efficient
4. What are the various categories of software?
 System Software
 Application Software
 Engineering/Scientific Software
 Embedded Software
 Web applications
 AI Software.
5. What is Software Process?

 Software process is defined as the structured set of activities that are required to
develop the software system.
 Activities – Specification, design & implementation, validation & evolution

6. Define an evolutionary prototype.


Evolutionary prototyping is a software development method where the developer or
development team first constructs a prototype. After receiving initial feedback from the
customer, subsequent prototypes are produced, each with additional functionality or
improvements, until the final product emerges.
7. List any two agile process Models?
 Extreme programming(XP)
 Adaptive software development(ASD)
 Dynamic System Development Method(DSDM)
 Scrum
 Crystal
 Feature Driven Development(FDD)
 Agile modeling(AM)

8. Define software engineering.


Software engineering is a systematic engineering approach to software development.
According to IEEE's definition software engineering can be defined as the application of a
systematic, disciplined, quantifiable approach to the development, operation, and maintenance
of software, and the study of these approaches; that is, the application of engineering to
software.
11
9. What is software? List its characteristics?
Software is defined as collection of computer programs, procedures, rules and data.
Six of the most important quality characteristics are

 maintainability
 correctness
 reusability
 reliability
 portability and efficiency

10. Name the umbrella activities in software process.


 Software project tracking and control.
 Risk management.
 Software Quality Assurance.
 Formal Technical Reviews.
 Software Configuration Management.
 Work product preparation and production.
 Reusability management.
 Measurement.

11. If you have to develop a word processing software product, what process model will you
choose? Justify our answer.
 The word processing software product can be developed using incremental model.
 It focuses on the aspects of the word processing software that are visible to the customer
/ end user.
 The feedback is used to refine the prototype

12. Depict the relationship between Work product, task, activity and system.
 Process frame work activities
 Umbrella activities
 Frame work activities
 Task sets

12
13. What led to transition from product oriented development to process oriented
development?
 Product techniques to designing software - Large numbers of software projects do not meet
their expectations in terms of functionality, cost, or delivery schedule. Process - Composed
of line practitioners who have varied skills, the group is at the center of the collaborative

effort of everyone in the organization who is involved with software engineering process
improvement.
 Process-oriented view on cooperating software components based on the concepts and
terminology of a language/action perspective on cooperative work provides a more suitable
foundation for the analysis, design and implementation of software components in business
applications.
14. Mention the characteristics of software contrasting it with characters of hardware.
 Software is easier to change than hardware. The cost of change is much higher for
hardware than for software.
 Software products evolve through multiple releases by adding new features and rewriting
existing logic to support the new features. Hardware products consist of physical
components that cannot be refactored after manufacturing, and cannot add new
capabilities that require hardware changes.
 Specialized hardware components can have much longer lead times for acquisition than
is true for software.
 Hardware design is driven by architectural decisions. More of the architectural work must
be done up front compared to software products.
 The cost of development for software products is relatively flat over time. However, the
cost of hardware development rises rapidly towards the end of the development cycle.
 Testing software commonly requires developing thousands of test cases. Hardware
testing involves far fewer tests. Hardware must be designed and tested to work over a
range of time and environmental conditions, which is not the case for software.

13
15. What are the pros and cons of Iterative software development models?

Advantages:

 In iterative model we can only create a high-level design of the application before we
actually begin to build the product and define the design solution for the entire product.
 Building and improving the product step by step.
 can get the reliable user feedback
 Less time is spent on documenting and more time is given for designing.

Disadvantages
 Each phase of an iteration is rigid with no overlaps
 Costly system architecture or design issues may arise because not all requirements are
gathered up front for the entire lifecycle

16. Differentiate verification and validation?

Verification Validation
1. Verification is a static practice of 1. Validation is a dynamic mechanism of
verifying documents, design, code and validating and testing the actual product.
program.
2. It does not involve executing the code. 2. It always involves executing the code.
3. It is human based checking of 3. It is computer based execution of
Documents and files. Program.
4. Verification uses methods like 4. Validation uses methods like black box
inspections, reviews, walkthroughs, and (functional) testing, gray box testing, and
Desk-checking etc. white box (structural) testing etc.
5. Verification is to check whether the 5. Validation is to check whether software
software conforms to specifications. Meets the customer expectations and
requirements.

17. Define system engineering.


System Engineering means designing, implementing, deploying and operating systems
which include hardware, software and people.

14
18. What is cyclomatic complexity?
Cyclomatic complexity is a software metric (measurement), used to indicate the complexityof
a program. It is a quantitative measure of the number of linearly independent paths through a
program's source code.
19. Software does not wear out. Justify?
Software doesn‟t “wear out” : Considering the given figure 01. This is often called the
bath tub curve. It indicates that, at the beginning of the life of hardware it shows high failure
rate as it contains many defects. By time, the manufacturers or the designers repair these
defects and it becomes idealized or gets into the steady state and continues. But after that,
as time passes, the failure rate rises again and this may be caused by excessive temperature,
dust, vibration, improper use and so on and at one time it becomes totally unusable

FIG 2: Software does not wear out


20. Differentiate waterfall and V model.

WATERFALL MODEL V-MODEL

The cost of Waterfall model is low. V-model is expensive.

Waterfall model is a continuous V-model is a simultaneous


process. process.

Waterfall model is less used now-a- V-model is widely used in


days in software engineering. software engineering.

In Waterfall model testing activities In V-model testing


start after the development activities activities start with the first
are over. stage.

15
21. List two deficiencies in waterfall model. Which process model do you suggest to
overcome each deficiency?
 Once an application is in the testing stage, it is very difficult to go back and change something
that was not well-thought out in the concept stage.
 No working software is produced until late during the life cycle.

22. Identify the sequence of stages involved in a typical project life cycle

 There are 5 phases to the project life cycle (also called the 5 process groups)—initiating,
planning, executing, monitoring/controlling, and closing. Each of these project phases
represents a group of interrelated processes that must take place.

23. Write notes on estimation techniques


There are different Software Testing Estimation Techniques which can be used for estimating
a task.
1) Delphi Technique
2) Work Breakdown Structure (WBS)
3) Three Point Estimation
4) Functional Point Method

24. What is software prototyping?


 Software prototyping is the activity of creating prototypes of software applications, i.e.,
incomplete versions of the software program being developed.
 It is an activity that can occur in software development and is comparable to prototyping as
known from other fields, such as mechanical engineering or manufacturing
25. What are the activities in Task sets?
 Actual work done
 Collection of S/W Engineering work
 Project Mile stones
 SQA points

26. What is CMM?

The Capability Maturity Model (CMM) is a methodology used to develop and refine an
organization's software development process. The model describes a five-level evolutionary path
of increasingly organized and systematically more mature processes. They are;
 Initial
16
 Repeatable
 Defined
 Managed
 Optimizing.
27. What is Layered Technology?
Software engineering is a fully layered technology, to develop software we need to go from one layer
to another. All the layers are connected and each layer demands the fulfillment of the previous layer.
Fig: The diagram shows the layers of software development.

FIG 3: Layered Technology

28. Define Specialized Model.


Specialized process models take on many of the characteristics of one or more of the traditional
models .However; these models tend to be applied when a specialized or narrowly defined software
engineering approach is chosen.
There are 3 types of specialized process models:
1. Component Based Development
2. Formal Methods Model
3. Aspect Oriented Software development
29. Define XP Process.
Extreme Programming (XP) is an agile software development framework that aims to produce
higher quality software and higher quality of life for the development team. XP is the most
specific of the agile frameworks regarding appropriate engineering practices for software
development.

FIG 4: XP Process

17
PART B

1. Compare the waterfall, prototyping and spiral Model? What is the role of user participation
in the selection of a life-cycle model? List out the various prescriptive process model
available in software development with appropriate diagram?

Waterfall Model:
The Waterfall Model was the first Process Model to be introduced. It is also referred to as a linear-
sequential life cycle model. It is very simple to understand and use. In a waterfall model, each
phase must be completed before the next phase can begin and there is no overlapping in the
phases. The following illustration is a representation of the different phases of the Waterfall Model.

FIG 5: Waterfall Model

The sequential phases in Waterfall model are −


 Requirement Gathering and analysis − All possible requirements of the system to be
developed are captured in this phase and documented in a requirement specification
document.

 System Design − The requirement specifications from first phase are studied in this phase
and the system design is prepared. This system design helps in specifying hardware and system
requirements and helps in defining the overall system architecture.
 Implementation − With inputs from the system design, the system is first developed in
small programs called units, which are integrated in the next phase. Each unit is developed

18
and tested for its functionality, which is referred to as Unit Testing.
 Integration and Testing − All the units developed in the implementation phase are
integrated into a system after testing of each unit. Post integration the entire system is
tested for any faults and failures.
 Deployment of system − Once the functional and non-functional testing is done; the
product is deployed in the customer environment or released into the market.

 Maintenance − There are some issues which come up in the client environment. To fix
those issues, patches are released. Also to enhance the product some better versions are
released. Maintenance is done to deliver these changes in the customer environment.
Waterfall Model - Application
Every software developed is different and requires a suitable SDLC approach to be followed
based on the internal and external factors. Some situations where the use of Waterfall model is
most appropriate are −
 Requirements are very well documented, clear and fixed.
 Product definition is stable.
 Technology is understood and is not dynamic.
 There are no ambiguous requirements.
 Ample resources with required expertise are available to support the product.
 The project is short.
Waterfall Model - Advantages
 Simple and easy to understand and use
 Easy to manage due to the rigidity of the model. Each phase has specific deliverables and
a review process.
 Phases are processed and completed one at a time.
 Works well for smaller projects where requirements are very well understood.
 Clearly defined stages.
 Well understood milestones.
 Easy to arrange tasks.
 Process and results are well documented.

19
Waterfall Model - Disadvantages
The major disadvantages of the Waterfall Model are as follows −
 No working software is produced until late during the life cycle.
 High amounts of risk and uncertainty.
 Not a good model for complex and object-oriented projects.
 Poor model for long and ongoing projects.
 Not suitable for the projects where requirements are at a moderate to high risk of
changing. So, risk and uncertainty is high with this process model.

 It is difficult to measure progress within stages.


 Cannot accommodate changing requirements.

 Adjusting scope during the life cycle can end a project.

Incremental Process model

 The incremental model combines the elements of waterfall model and they are applied in an
iterative fashion.
 The first increment in this model is generally a core product.
 Each increment builds the product and submits it to the customer for any suggested modifications.
 The next increment implements on the customer's suggestions and add additional requirements in
the previous increment.
 This process is repeated until the product is finished.
For example, the word-processing software is developed using the incremental model.

FIG 6: Incremental model

20
Advantages of incremental model
This model is flexible because the cost of development is low and initial product delivery is
faster.
 It is easier to test and debug during the smaller iteration.
 The working software generates quickly and early during the software life cycle.
 The customers can respond to its functionalities after every increment.
Disadvantages of the incremental model
 The cost of the final product may cross the cost estimated initially.
 This model requires a very clear and complete planning.
 The planning of design is required before the whole system is broken into small increments.
 The demands of customer for the additional functionalities after every increment causes
problem during the system architecture.

Spiral Model
 The spiral model, initially proposed by Boehm, is an evolutionary software process model
that couples the iterative feature of prototyping with the controlled and systematic
aspects of the linear sequential model. It implements the potential for rapid development
of new versions of the software. 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.
Each cycle in the spiral is divided into four parts:
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.

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.
The development phase depends on the remaining risks. For example, if performance or user-
interface risks are treated more essential than the program development risks, the next phase

may be an evolutionary development that includes developing a more detailed prototype for
solving the risks.
21
The risk-driven feature of the spiral model allows it to accommodate any mixture of a
specification-oriented, prototype-oriented, simulation-oriented, or another type of approach. An
essential element of the model is that each period of the spiral is completed by a review that
includes all the products developed during that cycle, including plans for the next cycle. The spiral
model works for development as well as enhancement projects.

FIG 7: SPIRAL model


Application of Spiral Model:
o When deliverance is required to be frequent.
o When the project is large
o When requirements are unclear and complex
o When changes may require at any time
o Large and high budget projects
Advantages
o High amount of risk analysis
o Useful for large and mission-critical projects.
Disadvantages
o Can be a costly model to use.
o Risk analysis needed highly particular expertise
o Doesn't work well for smaller projects.

22
1. 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. RAD (Rapid Application
Development) is a concept that products can be developed faster and of higher quality through:
o Gathering requirements using workshops or focus groups
o Prototyping and early, reiterative user testing of designs
o The re-use of software components
o A rigidly paced schedule that refers design improvements to the next product version
o Less formality in reviews and other team communication

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 dataobject.
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.
Application of RAD Model:
o When the system should need to create the project that modularizes in a short span time
(2-3 months).
o When the requirements are well-known.
o When the technical risk is limited.
o When there's a necessity to make a system, which modularized in 2-3 months of period.
o It should be used only if the budget allows the use of automatic code generating tools.

23
FIG 8: RAD Model
Advantage of RAD Model
o This model is flexible for change.
o In this model, changes are adoptable.
o Each phase in RAD brings highest priority functionality to the customer.
o It reduced development time.
o It increases the reusability of features.
Disadvantage of RAD Model
o It required highly skilled designers.
o All application is not compatible with RAD.
o For smaller projects, we cannot use the RAD model.
o On the high technical risk, it's not suitable.
o Required user involvement.

2. 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. A prototype usually turns out to be a very crude version of the actual system, possible
exhibiting limited functional capabilities, low reliability, and inefficient performance as compared
to actual software. In many instances, the client only has a general view of what is expected from
the software product.

24
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.

FIG 8: Prototype Model

Steps of Prototype Model


1. Requirement Gathering and Analyst
2. Quick Decision
3. Build a Prototype
4. Assessment or User Evaluation
5. Prototype Refinement
6. Engineer Product
Advantage of Prototype Model
1. Reduce the risk of incorrect user requirement
2. Good where requirement are changing/uncommitted
3. Regular visible process aids management
4. Support early product marketing
5. Reduce Maintenance cost.
6. Errors can be detected much earlier as the system is made side by side.
Disadvantage of Prototype Model
1. An unstable/badly implemented prototype often becomes the final product.
2. Require extensive customer collaboration
o Costs customer money
o Needs committed customer
o Difficult to finish if customer withdraw

25
o May be too customer specific, no broad market
3. Difficult to know how long the project will last.
4. Easy to fall back into the code and fix without proper requirement analysis, design,
customer evaluation, and feedback.
5. Prototyping tools are expensive.
6. Special tools & techniques are required to build a prototype.
7. It is a time-consuming process

2. Explain the phases in Extreme programming process. Explain the steps involved for
Extreme Programming (XP)?

Extreme Programming (XP)


 The Extreme Programming is commonly used agile process model.
 It uses the concept of object-oriented programming.
 A developer focuses on the framework activities like planning, design, coding and
testing. XP has a set of rules and practices.

FIG 9 :XP PROCESS


The XP process comprises four framework activities:

1. Planning
 Planning starts with the requirements gathering which enables XP team to understand
the rules for the software.
 The customer and developer work together for the final requirements.
2. Design
 The XP design follows the 'keep it simple' principle.
 A simple design always prefers the more difficult representation.

26
3. Coding
 The coding is started after the initial design work is over.
 After the initial design work is done, the team creates a set of unit tests which can test
each situation that should be a part of the release.
 The developer is focused on what must be implemented to pass the test.
 Two people are assigned to create the code. It is an important concept in coding
activity.
4. Testing
 Validation testing of the system occurs on a daily basis. It gives the XP team a regular
indication of the progress.
 'XP acceptance tests' are known as the customer test.

XP values : Following are the values for extreme programming


1. Communication

 Building software development process needs communication between the developer


and the customer.
 Communication is important for requirement gathering and discussing the concept.
2. Simplicity
The simple design is easy to implement in code.
3. Feedback
Feedback guides the development process in the right direction.
4. Courage
In every development process there will always be a pressure situation. The courage or
the discipline to deal with it surely makes the task easy.
5. Respect
Agile process should inculcate the habit to respect all team members, other stake holders
and customer.
Applications:
The success of projects, which follow Extreme Programming practices, is due to
 Rapid development.
 Immediate responsiveness to the customer‘s changing requirements.
 Focus on low defect rates.

 System returning constant and consistent value to the customer.


 High customer satisfaction.
 Reduced costs.
27
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.

 Staff turnover − Intensive team collaboration ensures enthusiasm and good will.
Cohesion of multi-disciplines fosters the team spirit.
Extreme Programming Disadvantages
 One more disadvantage of XP is that this methodology does not measure code quality
assurance. It may cause defects in the initial code.
 XP is not the best option if programmers are separated geographically.

3. Outline the Spiral life cycle model with a Neat diagram?


Spiral Model: The spiral model, initially proposed by Boehm, is an evolutionary software
process model that couples the iterative feature of prototyping with the controlled and
systematic aspects of the linear sequential model. It implements the potential for rapid
development of new versions of the software. 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
Each cycle in the spiral is divided into four parts:
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.

28
Risk Assessment and reduction: The next phase in the cycle is to calculate these various
alternatives based on the goals and constraints.

FIG 10 : Spiral life cycle model

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. The development phase depends on the remaining risks. For
example, if performance or user- interface risks are treated more essential than the program
development risks, the next phase may be an evolutionary development that includes
developing a more detailed prototype for solving the risks.
The risk-driven feature of the spiral model allows it to accommodate any mixture of a
specification-oriented, prototype-oriented, simulation-oriented, or another type of approach. An
essential element of the model is that each period of the spiral is completed by a review that
includes all the products developed during that cycle, including plans for the next cycle.
29
Application of Spiral Model:
o When deliverance is required to be frequent.
o When the project is large
o When requirements are unclear and complex
o When changes may require at any time
o Large and high budget projects

Advantages
o High amount of risk analysis
o Useful for large and mission-critical projects.

Disadvantages
o Can be a costly model to use.
o Risk analysis needed highly particular expertise
o Doesn't work well for smaller projects.

4. What is agility? Elaborate the agile principles?


 Agility means effective (rapid and adaptive) response to change, effective communication
among all stockholder. Drawing the customer onto team and organizing a team so that it is
in control of work performed
Agility Principles:
The Agile Alliance defines twelve lightness principles for those that need to attain agility:
1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable
software.
2. Welcome changing requirements, even late in development. Agile processes harness change for
the customer‘s competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a
preference to the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they need,
and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a development
team is face-to-faceconversation.
30
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should
be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity–the art of maximizing the amount of work not done–is essential.
11. The best architectures, requirements, and designs emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its
behavior accordingly.

5. Explain the function of incremental delivery process model with a neat sketch.

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.

FIG 11: Incremental Model

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

31
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
Application:
o When the requirements are superior.
o A project has a lengthy development schedule.
o When Software team are not very well skilled or trained.
o When the customer demands a quick release of the product.
You can develop prioritized requirements first.
o
Advantage of Incremental Model
o Errors are easy to be recognized.
o Easier to test and debug
o More flexible.
o Simple to manage risk because it handled during its iteration.
o The Client gets important functionality early.
Disadvantage of Incremental Model
o Need for good planning
o Total Cost is high.
o Well defined module interfaces are needed.

6. Explain how work break down structures is used in software engineering. Discuss how
software project scheduling helps in timely release of a product.
A Work Breakdown Structure includes dividing a large and complex project into simpler,
manageable and independent tasks. The root of this tree (structure) is labelled by the Project
name itself. For constructing a work breakdown structure, each node is recursively decomposed
into smaller sub-activities, until at the leaf level, the activities becomes undividable and
independent. It follows a Top-Down approach.
Steps:
 Step-1: Identify the major activities of the project.
 Step-2: Identify the sub-activities of the major activities.
 Step-3: Repeat till undividable, simple and independent activities are created.

32
FIG 12: Top-Down approach
Construction of Work Breakdown Structure
Firstly, the project managers and top level management identifies the main deliverables of the
project. After this important step, these main deliverables are broke down into smaller higher-

level tasks and this complete process is done recursively to produce much smaller independent
tasks. It depends on the project manager and team that upto which level of detail they want to
break down their project.
Generally the lowest level tasks are the most simplest and independent tasks and takes less than
two weeks worth of work. Hence, there is no rule for upto which level we may build the work
breakdown structure of the project as it totally depends upon the type of project we are working
on and the management of the company. The efficiency and success of the whole project majorly
depends on the quality of the Work Breakdown Structure of the project and hence, it implies its
importance.

Uses:
 It allows to do a precise cost estimation of each activity.

 It allows to estimate the time that each activity will take more precisely.
 It allows easy management of the project.
 It helps in proper organization of the project by the top management

Project Scheduling

Project-task scheduling is a significant project planning activity. It comprises deciding which


functions would be taken up when. To schedule the project plan, a software project manager
wants to do the following:

1. Identify all the functions required to complete the project.


2. Break down large functions into small activities.
3. Determine the dependency among various activities.
33
4. Establish the most likely size for the time duration required to complete the activities.
5. Allocate resources to activities.
6. Plan the beginning and ending dates for different activities.
7. Determine the critical path. A critical way is the group of activities that decide the duration
of the project.
7. What is the impact of reusability in software development process?
The concept of reusability is widely used in order to reduce cost, effort, and time of software
development. Reusability also increases the productivity, maintainability, portability, and reliability
of the software products. That is the reusable software components are evaluated several times in
other systems before.

What can be reused?

It is great to know about the kinds of artifacts associated with software development that can be
used again. Almost all artifacts associated with software development, including project plan and
test plan, can be used again. However, the important items that can be effectively used again
are,
1. Requirements specification
2. Design
3. Code
4. Test cases
5. Knowledge
Basic issues in any reuse program
The following are some of the basic issues that must be for starting any reuse program,
1. Component creation
2. Component indexing and storing
3. Component search
4. Component understanding
5. Component adaptation
6. Repository maintenance

Component creation

The reusable components have to be first identified. The selection of the correct kind of
components having the potential for reuse is best.

34
Component indexing and storing
Indexing requires classification of the again usable components so that they can be easily found
when looking for a component for reuse. The components need to be stored in a Relational
Database Management System (RDBMS) or an Object-Oriented Database System (ODBMS) for
efficient access when the number of components becomes large.

Component searching

The programmers need to search for correct components matching their needs in a database of
components. To be able to search components efficiently, the programmers require a perfect
method to tells the components that they are looking for.

Component understanding

The programmers need a prefect and sufficiently complete understanding of what the component
does to be able to decide whether they can reuse the component or not. To understand, the
components should be well documented and should do something simple in the code.
Component adaptation
Before they can be reused, the components may need adaptation, since a selected component
may not exactly be mixed the problem at hand. However, tinkering with the code is also not the
best solution because this is very likely to be a source of faults.

Repository maintenance

It once is created requires repeated maintenance. New components, as and when made have to
be entered inside the repository. The faulty components have to be followed. Further, when new
applications mixed, the older applications become obsolete. In this case, the obsolete
components might have to be deleted from the repository.
Domain analysis
The aim is to find the reusable pieces for a problem domain.

8. Explain the component based software development model with a neat sketch.
 Component-based development (CBD) is a procedure that accentuates the design and
development of computer-based systems with the help of reusable software components. With
CBD, the focus shifts from software programming to software system composing. Component-
based development techniques involve procedures for developing software systems by choosing
ideal off-the-shelf components and then assembling them using a well-defined software
architecture. With the systematic reuse of coarse-grained components, CBD intends to deliver

35
better quality and output. Component-based development is also known as component- based
software engineering (CBSE).
 Object-oriented modeling results in a plethora of fine-grained classes, objects and relationships.
It is very hard to discover reusable parts among these smaller units. The idea behind CBD is to
integrate the related parts and reuse them collectively. These integrated parts are known as
components. Component-based development techniques consist of non-conventional
development routines, including component evaluation, component retrieval, etc. It is important
that the CBD is carried out within a middleware infrastructure that supports the process, for
example, Enterprise Java Beans.

FIG 13: Evolution of CBSE

The key goals of CBD are as follows:


 Save time and money when building large and complex systems: Developing complex
software systems with the help of off-the-shelf components helps reduce software
development time substantially. Function points or similar techniques can be used to verify
the affordability of the existing method.
 Enhance the software quality: The component quality is the key factor behind the
enhancement of software quality.
 Detect defects within the systems: The CBD strategy supports fault detection by testing
the components; however, finding the source of defects is challenging in CBD.
Some advantages of CBD include:
 Minimized delivery:
 Search in component catalogs
 Recycling of pre-fabricated components
 Improved efficiency:
 Developers concentrate on application development
36
 Improved quality:
 Component developers can permit additional time to ensure quality
 Minimized expenditures

9. List out the various umbrella activities which support software development process and
discuss about their necessity in maintaining the quality in both software process that is
being developed for railway reservation system.
Software engineering is a collection of co-related steps. These steps are presented or accessed
in different approaches in different software process models. Umbrella activities are a set of
steps or procedure that the software engineering team follows to maintain the progress,
quality, change and risks of the overall development tasks. These steps of umbrella activities
will evolve through the phases of generic view of software development.
Umbrella Activities in software engineering
1. Software Project Tracking and Control
2. Formal Technical Reviews
3. Software Quality Assurance
4. Software Configuration Management
5. Document Preparation and Production
6. Re-usability Management
7. Measurement and Metrics
8. Risk Management

Software Project Tracking and Control


Before the actual development begins, a schedule for developing the software is created. Based
on that schedule the development will be done. However, after a certain period of time it is
required to review the progress of the development to find out actions which are in need to be
taken to complete the development, testing etc. in time. The outcome of the review might require
the development to be rescheduled.
Formal Technical Reviews
Software engineering is done in clusters or modules, after completing each module, it is good
practice to review the completed module to find out and remove errors so their propagation to the
next module can be prevented.

37
Software Quality Assurance
The quality of the software such user experience, performance, load handling capacity etc. should
be tested and confirmed after reaching predefined milestones. This reduces the task at the end
of the development process. It should be conducted by dedicated teams so that the development
can keep going on.
Software Configuration Management
Software configuration management (SCM) is a set of activities designed to control change by
identifying the work products that are likely to change, establishing relationships among them,

defining mechanisms for managing different versions of these work products.


Document preparation and production
All the project planning and other activities should be hardly copied and the production get started
here.
Re-usability Management
This includes the backing up of each part of the software project they can be corrected or any
kind of support can be given to them later to update or upgrade the software at user/time demand.
Measurement & Metrics
This will include all the measurement of every aspects of the software project.
Risk Management
Risk management is a series of steps that help a software team to understand and manage
uncertainty. It‘s a really good idea to identify it, assess its probability of occurrence, estimate its
impact, and establish a contingency plan that─ ‗should the problem actually occur.

Railway reservation system is proposed, with following benefits:


 Computerization of reservation system will reduce a lot of daily paperwork and hence load on the
staff of admin department.
 Machine does all the calculations. Hence, chances of error are low. Reservation, Cancellation or
updation lists of Ticket‘s can easily be maintained and retrieved and any required additions,
deletion or updation can easily be performed.
This system provides User Name-Password validation, hence unauthorized access is prevented.
Product functions: Users with varying levels of familiarity with computers will mostly use this
system. With this in mind, an important feature of this software is that it can be relatively simple to
use. The scope of this project encompasses: Search, Selection, Review, Travel Information,
Payment, and Cancellation.

38
10. Draw the layered architecture of software engineering and What are the merits and
demerits of using formal methods for developing a software.(or) What are the pros and
cons of using mathematical approach for software development?

Software engineering is a layered technology, Referring to Figure, any engineering approach


(including software engineering) must rest on an organizational commitment to quality. Total
quality management, Six Sigma, and similar philosophies foster a continuous process
improvement culture, and it is this culture that ultimately leads to the development of
increasingly more effective approaches to software engineering.

FIG 14: SE LAYERS

The bedrock that supports software engineering is a quality focus. The foundation for software
engineering is the process layer. The software engineering process is the glue that holds the
technology layers together and enables rational and timely development of computer software.
Process defines a framework that must be established for effective delivery of software
engineering technology. The software process forms the basis for management control of
software projects and establishes the context in which technical methods are applied, work
products (models, documents, data, reports, forms, etc.) are produced, milestones are
established, quality is ensured, and change is properly managed.
Software engineering methods provide the technical how-to‘s for building software. Methods
encompass a broad array of tasks that include communication, requirements analysis, design
modeling, program construction, testing, and support. Software engineering methods rely on a
set of basic principles that govern each area of the technology and include modeling activities
and other descriptive techniques.

Software engineering tools provide automated or semi automated support for the process and the
methods. When tools are integrated so that information created by one tool can be used by another,
a system for the support of software development, called computer-aided software engineering, is
established.

39
Table Advantages and Disadvantages of Formal Methods Model:

Advantages Disadvantages
1. Discovers ambiguity, 1. Time consuming and expensive.
incompleteness, and inconsistency 2. Difficult to use this model as a
in the software. communication mechanism for non
2. Offers defect-free software. technical personnel.
3. Incrementally grows in effective 3. Extensive training is required since
solution after each iteration. only few developers have the
4. This model does not involve high essential knowledge to implement
complexity rate. this model.
5. Formal specification language
semantics verify self-consistency.

11. Assume that you are a technical manager of a software development organization. A client
approached for a software solution. The problems stated by the client have uncertainties
which led to loss of it not planned and solved. Which software development model youwill
suggest for this project-justify. Explain that model with its pros and cons and neat sketch.
 Rapid application development is a software development methodology that uses
minimal planning in favor of rapid prototyping. A prototype is a working model that is
functionally equivalent to a component of the product.
 In the RAD model, the functional modules are developed in parallel as prototypes and
are integrated to make the complete product for faster product delivery. Since there
is no detailed preplanning, it makes it easier to incorporate the changes within the
development process.
RAD Model Vs Traditional SDLC
 The traditional SDLC follows a rigid process models with high emphasis on requirement
analysis and gathering before the coding starts. It puts a pressure on the customer to
sign off the requirements before the project starts and the customer doesn‘t get the feel
of the product as there is no working build available for a long time.

 The customer may need some changes after he actually gets to see the software,
however the change process is quite rigid and it may not be feasible to incorporate
40
major changes in the product in traditional SDLC.
 RAD model focuses on iterative and incremental delivery of working models to the
customer. This results in rapid delivery to the customer and customer involvement
during the complete development cycle of product reducing the risk of non conformance
with the actual user requirements.

Advantage of RAD Model


o This model is flexible for change.
o In this model, changes are adoptable.
o Each phase in RAD brings highest priority functionality to the customer.
o It reduced development time.
o It increases the reusability of features.
Disadvantage of RAD Model
o It required highly skilled designers.
o All application is not compatible with RAD.
o For smaller projects, we cannot use the RAD model.
o On the high technical risk, it's not suitable.
o Required user involvement.

12. What is the role of user participation in the selection of a life-cycle model?Explain the
concepts of software life cycle model.
V-Model:

 The V-model is an SDLC model where execution of processes happens in a sequential


manner in a V-shape. It is also known as Verification and Validation model.
 The V-Model is an extension of the waterfall model and is based on the association of a
testing phase for each corresponding development stage. This means that for every single
phase in the development cycle, there is a directly associated testing phase. This is a
highly- disciplined model and the next phase starts only after completion of the
previous phase.
 Under the V-Model, the corresponding testing phase of the development phase is planned in
parallel. So, there are Verification phases on one side of the „V‟ and Validation phases on

41
the other side. The Coding Phase joins the two sides of the V-Model. The following
illustration depicts the different phases in a V-Model of the SDLC.

V-Model - Verification Phases


There are several Verification phases in the V-Model, each of these are explained in detail
below.

FIG 15: V-Model


Business Requirement Analysis
This is the first phase in the development cycle where the product requirements are understood
from the customer‘s perspective. This phase involves detailed communication with the customer
to understand his expectations and exact requirement. As most of the customers are not sure about
what exactly they need. The acceptance test design planning is done at this stage as business
requirements can be used as an input for acceptance testing.

42
System Design
Once you have the clear and detailed product requirements, it is time to design the complete
system.
Architectural Design
Architectural specifications are understood and designed in this phase. Usually more than one
technical approach is proposed and based on the technical and financial feasibility the final
decision is taken.The system design is broken down further into modules taking up different
functionality. This is also referred to as High Level Design (HLD).
Module Design
In this phase, the detailed internal design for all the system modules is specified, referred to
as Low Level Design (LLD). The unit tests are an essential part of any development process and
helps eliminate the maximum faults and errors at a very early stage.
Coding Phase
The actual coding of the system modules designed in the design phase is taken up in the Coding
phase. The best suitable programming language is decided based on the system and
architectural requirements.
Validation Phases
The different Validation Phases in a V-Model are explained in detail below.
Unit Testing
Unit tests designed in the module design phase are executed on the code during this validation
phase. Unit testing is the testing at code level and helps eliminate bugs at an early stage, though
all defects cannot be uncovered by unit testing
Integration Testing
Integration testing is associated with the architectural design phase. Integration tests are
performed to test the coexistence and communication of the internal modules within the system.
System Testing

System testing is directly associated with the system design phase. System tests check the
entire system functionality and the communication of the system under development with
external systems. Most of the software and hardware compatibility issues can be uncovered
during this system test execution.

43
Acceptance Testing
Acceptance testing is associated with the business requirement analysis phase and involves
testing the product in user environment.
It also discovers the non-functional issues such as load and performance defects in the actual
user environment.
V- Model ─ Application
 Requirements are well defined, clearly documented and fixed.
 Product definition is stable.
 Technology is not dynamic and is well understood by the project team.
 There are no ambiguous or undefined requirements.
 The project is short.
The advantages of the V-Model method are as follows −
 This is a highly-disciplined model and Phases are completed one at a time.
 Works well for smaller projects where requirements are very well understood.
 Simple and easy to understand and use.
 Easy to manage due to the rigidity of the model. Each phase has specific deliverables and
a review process.
The disadvantages of the V-Model method are as follows −
 High risk and uncertainty.
 Not a good model for complex and object-oriented projects.
 Poor model for long and ongoing projects.
 Not suitable for the projects where requirements are at a moderate to high risk of
changing.
 Once an application is in the testing stage, it is difficult to go back and change a
functionality.
 No working software is produced until late during the life cycle.
Iterative Model
In this Model, we 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 Iterative Model allows the accessing earlier phases, in which the variations made
respectively. The final output of the project renewed at the end of the Software Development Life
Cycle (SDLC) process.
44
FIG 16: Iterative model
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 nextphase.
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.

45
Advantage (Pros) of Iterative Model:
1. Testing and debugging during smaller iteration is easy.
2. A Parallel development can plan.
3. It is easily acceptable to ever-changing needs of the project.
4. Risks are identified and resolved during iteration.
5. Limited time spent on documentation and extra time on designing.
Disadvantage (Cons) of Iterative Model:
1. It is not suitable for smaller projects.
2. More Resources may be required.
3. Design can be changed again and again because of imperfect requirements.
4. Requirement changes can cause over budget.
5. Project completion date not confirmed because of changing requirements.
Application:
1. When requirements are defined clearly and easy to understand.
2. When the software application is large.
3. When there is a requirement of changes in future.
Concurrent models
Concurrent models are those models within which the various activities of software development
happen at the same time, for faster development and a better outcome. The concurrent model is
also referred to as a parallel working model.
The concurrent development model, sometimes called concurrent engineering, allows a software
team to represent iterative and concurrent elements of any of the process models. For example,
the modeling activity defined for the spiral model is accomplished by invoking one or more of the
following software engineering actions: prototyping, analysis, and design

46
FIG 17: Concurrent models
Figure provides a schematic representation of one software engineering activity within the modeling
activity using a concurrent modeling approach. The activity—modeling—may be in any one of the
states noted at any given time. Similarly, other activities, actions, or tasks (e.g., communication or
construction) can be represented in an analogous manner. All software engineering activities exist
concurrently but reside in different states.
The modeling activity (which existed in the inactive state while initial communication was
completed, now makes a transition into the under development state. If, however, the customer
indicates that changes in requirements must be made, the modeling activity moves from the under
development state into the awaiting changes state. Concurrent modeling defines a series of
events that will trigger transitions from state to state for each of the software engineering activities,
actions, or tasks

Advantages:

 Error detection is easier.


 Concurrent models give the paradigm for the development.
 Feedback can be collected rapidly.

47
Disadvantages:
 Software requires more maintenance.
 Developing a good model is a little complicated.
 Software quality is not assured.
13. Elucidate the key features of the software process models with suitableexamples.

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:
1. Software specifications: The functionality of the software and constraints on its
operation must be defined.
2. Software development: The software to meet the requirement must be produced.
3. Software validation: The software must be validated to ensure that it does what the
customer wants.
4. Software evolution: The software must evolve to meet changing client needs.

The Software Process Model


A software process model is a specified definition of a software process, which is presented from
a particular perspective. Models, by their nature, are a simplification, so a software process model
is an abstraction of the actual process, which is being described. Process models may contain
activities, which are part of the software process, software product, and the roles of people
involved in software engineering. 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.

48
There are several various general models or paradigms of software development:
1. The waterfall approach: This takes the above activities and produces them as separate
process phases such as requirements specification, software design, implementation, testing,
and so on. After each stage is defined, it is "signed off" and development goes onto the
following stage.
2. Evolutionary development: This method interleaves the activities of specification,
development, and validation. An initial system is rapidly developed from a very abstract
specification.
3. Formal transformation: This method is based on producing a formal mathematical system
specification and transforming this specification, using mathematical methods to a program.
These transformations are 'correctness preserving.' This means that you can be sure that the
developed programs meet its specification.
4. System assembly from reusable components: This method assumes the parts of the
system already exist. The system development process target on integrating these parts rather
than developing them from scratch.

14. Explain the various levels of capability maturity model integration.

The Software Engineering Institute (SEI) has developed a comprehensive model predicated on
a set of software engineering capabilities that should be present as organizations reach different
levels of process maturity. To determine an organization‘s current state of process maturity the
CMMI uses two ways, (i) as a continuous model and (ii) as a staged model. In the case of a
continuous model each process area is rated according to the following capability levels.
Level 0 : Incomplete
The process are is either not performed or does not achieve all goals and objectives defined by the
CMMI for level 1 capability.
Level 1 : Performed
All the specific goals has been achieved and work tasks required to produce defined products has
been conducted.
Level 2 : Managed
All level 1 criteria have been achieved. All work associated with the process area conforms to an
organizationally defined policy, all people are doing their jobs, stakeholders are actively involved in
the process area, all work tasks and work products are monitored, controlled and reviewed.

49
Level 3 : Defined
All level 2 criteria have been achieved. In addition, the process is ―tailored from the organization‘s
set of standard processes according to the organization‘s tailoring guidelines and contributes
work products, measures and other process improvement information to the organizational
process assets.‖
Level 4 : Quantitatively Managed
All level 3 criteria have been achieved. In addition, the process area is controlled and
improved using measurement and quantitative assessment. ―Quantitative objectives for quality and
process performance are established and used as a criteria in managing the process.‖
Level 5 : Optimized
All capability level 4 criteria have been achieved. In addition, the process area is adapted
and optimized using quantitative means to meet changing customer needs and to continually
improve the efficacy of the process area under consideration.
The staged CMMI model defines the same process areas, goals and practices as the
continuous model. The primary difference is that the staged model defines five maturity levels
rather than five capability levels.

50

You might also like