0 ratings0% found this document useful (0 votes) 1K views118 pagesSoftware Notes
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
SUBJECT CODE : 210253
Choice Based Credit System
SAVITRIBA] PHULE PUNE UNIVERSITY - 2019 SYLLABUS
S.E. (Computer / Al&DS) Semester - IV.
SOFTWARE ENGINEERING
(For END SEM Exam - 70 Marks)
Mrs. Anuradha A. Puntambekar
M.E. (Computer)
Formerly Assistant Professor in
PE.S, Moder College of Engineering,
. Pune
Written by Popular Authors of Text Books of Technical Publications
Covers Entire Syllabus [2 Question - Answer Format
Exact Answers and Solutions
Chapterwise Solved SPPU Questions Aug. - 2017 to Dec. - 2022
{SOLVED SPPU QUESTION PAPERS
+Dec.-2017 *May-2018 + Dec.-2018 »May- 2019
¢Oct.- 2019 ¢ Dec.-2019 » June~2022 «Dec. - 2022
A Guide For Engineering StudentsTABLE OF CONTENTS
Lesrbemede
—_—_————
Chapter - 3 Estimation and Scheduling (3 - 1) to (3 - 29)
3.1 The Project Planning Process .... 1
3.2 Defining Software Scope and Checking Feasibility......
3.3 Resources Management
3.4 Software Project Estimation..........-++++-+
3.5 Decomposition Techniques .........--ss+essee-
3.6 Empirical Estimation Models.......ssssssesescsee
3.7 Object Point based Estimation.....
3.8 Project Scheduling........-...:+ssse
3.9 Defining a Task Set for the Software Project...
3.10 Task Network..
3.11 Scheduling with Time Line Chart
3.12 Schedule Tracking Tools.
3.13 Preparing Requirement Traceability Matri
Unit IV
RT
Chapter - 4 Design Engineering (4 - 1) to (4 - 30)
Part I’: Design Concepts
4.1 Introduction to Design...sssssssessserssesersersers
Esai ber Serica Ndo oh Sembee Bee a ee
v)4.2 The Design Process...
4.3 Software Quality Guidelines and AttriDUteS.....srsserrsserreennecsenn 4-2
4.4 Design Concepts..........++
4.5 Object-Oriented Design Concept .
4.6 Design Classes ..........ssesssererereres
4.7 The Design Model......sssssesesssese
4.8 Component-Level Design ....----ssessee
4,9 Class Based DeSign .....-sssecssssecssrersssrsssesnerensreennees
4.10 Conduction Component Level Design... 4-24
4.11 Component Level Design for Web App....ssersserereesreeersessessesseass 4-25
Part II: Architectural Design
4.12 Software Architecture
4.13 Architectural Styles........
Chapter - 5 Risks and Configuration Management
(5 - 1) to (5 - 20)
Part I : Risk Management
5.1 Introduction to Risk Management .........sscsssssesesecsrereessseneesennes 5-1
5.2 Software RiSkS .....sc1-000. ouonsosevesasesoneonsoucsavesacasasusnnonesscssonsvasaiesseat 5-3
5.3. Risk Identification ..ccsssussssssssssusssssssseseaesssessusssssessstsenmnssseesessend “A
5.4 Risk Projection...........ccesccsscssesesssmessssesssssssesssesssssssssaserssecessesseesess1o
5.5 RISK RefiNEMENE carncrnrctsransnane
Risk Mitigation, Monitoring and Management
The RMMM Plan.
(vi)Part II : Software Configuration Management
5.8 Software Configuration Management. insesnesreuees 5-11
5.9 The SCM REpOSitOry ......-erseeeeessieen
5.10 The SCM Process ..ssssssessssesssecsserecersrsssceseessstecssnaes
5.11 Configuration Management for any
Suitable Software System
ne LS SSY are
Chapter - 6 Software Testing (6 - 1) to (6 - 33)
se 1
sie 2
6-5
oo 6
6.1 A Strategic Approach to Software Testing «sss
6.2. Verification and Validation
6.3 Organizing for Software Testing.......
6.4 Software Testing Strategy - The Big Picture...
6.5 Criteria for Completion of Testing...........ssses»
6.6 Strategic ISSUCS......2. eres
6.7 Test Strategies for Conventional Software
6.8 Test Strategies for Object-Oriented Software
6.9 Test Strategies for WebApps....
6.10 Validation Testing.
6.11 Validation-Test Criteria..........
6.12 Types of Testing...
6.13 White Box Testing........esesnve
6.14 Black Box Testing......-sssseseere
6.15 Comparison between Black Box Testing and
White Box Testing.
Solved SPPU Question Papers ——~S~SC*S A) tO B=)
(vil) -ion and Scheduling
“emcee
smn }
enn
3,1: The Project Planning Process
plain ect planning process: /
at E ae a an activity in which the project manager makes
Ans, : © Project p!
reasonable estimates of resources, cost ‘and Schedule.
In order to make these estimates, it is necessary t0 prepare a project plan
ein
and the beginning of the project and as the project proceeds this plan can
be updated appropriately. .
« Following figure represents
project planning process.
various task sets that are associated with
Fig. Q.1.1 Project planning process
Step 1: This is an initial stage in which the scope and feasibility of the
project is determined. This stage helps to identify the functions
and features that can be delivered to the end user.
Step 2: Risks are identified and analyzed.
Step 3: The required resources such as human resources, environmental
Tesources, and reusable software resources can be determined.
« Step 4: The estimation for cost and efforts is made, In this stage the
problem is first decomposed, then using the size, function point or
Use cases the estimates are made.
ar
Set B-)Software Engineering 3-2 Estimation and Scheduling
Step 5: Using the scheduling tools or task networks the schedule for the
project is prepared.
prevent
arcana
i
|: 3.2: Defining Software Scope and hocking Feasibi ity | |
Q.2 Write a short note on - Software scope and its need.
Ans. : Software scope describes four things -
© The function and features that are to be delivered to end-users.
o The data which can be input and output.
©. The content of the software that is presented to user.
o Performance, constraints, reliability and interfaces that bounds the
System.
* There are two ways by which the scope can be defined -
1. A scope can be defined using the narrative description of the software
obtained after communication with all stakeholders.
2. Scope can be defined as a set of use cases developed by the end users.
e' Inthe scope description, various functions are described. These functions
are evaluated and refined to provide more details before the estimation of
the project.
¢ For performance consideration, processing and response time
requirements are analyzed.
¢ The constraints identify the limitations placed on the software by external
hardware or any other existing system.
Q.3 What are the four dimensions of software feasibility ?
Ans. : Following are the four dimensions of software feasibility. To ensure
the feasibility of the software project the set of questions based on these
dimension has to be answered. Those are as given below -
1. Technology
« Isa project technically feasible ?
+ Isit within the state of art ?
a
A Gulde for Engineering Studentsj
i
i
43 Estimation and Scheg,
| tScheatny,
‘Are the defects to be reduced to a level that satisfies the apnea,
° : ™
2. Finance
» Isit financially feasible?
a cost of software oon
Is the development cost completed at OTBANIZAtion, its
client, or market affordable ?
«Are the defects to be reduced to a level that satisfies the application
3
need ?
3. Time -
Will the project's time to market beat the competition ?
4, Resource
Does the organization have the resources needed to succeed ?
© Putnam and Meyers suggests that scoping is not enough. Once scope is
understood, and and feasibility have been identified the next task is
estimation of the Resources required to accomplish the software
development effort.
j
| 3.3: Resources Management |
i
Q.4 What is the need for defining a software scope ? What are the
categories of software engineering resources 2
5 [SPPU : Dec.-17,May-18, End Sem, Marks 7]
_ Ans, : Need for defining software scope : Refer Q.2.
Categories of software engineering resources :
_ ® There are three major categories of software engineering resources -
1. Peoples
2. Reusable software components
3. Development environment i.e, hardware and software tools.
“I
é
Sofnvare Engineering ———
Ts
OTS component
c Hardware
Full experience
component Network
Part experience resources
component
New component
Fig. Q.4.1 Project resources
(1) Human resources :
Both organizational position (such as manager, senior software engineer
and so on) and the specialty (database telecommunication, client/server
etc) are specified for a relatively small project. A single individual may
perform all software engineering tasks, by consulting with the specialist
whenever needed.
For larger projects, software team may be geographically at different
locations. Hence, the location of each human resource is specified. The
number of people required for a software project can be determined only
after an estimate of development effort (e.g. person-months) is made.
(2) Reusable software resources :
There are four reusable software resource categories that should be.
considered at planning -
A
Off-the-shelf components (OTS Components)
Existing software acquired from a third party or has been developed
internally for a past project.Software Engineeri 338. Estimation and Scheay
2. Full experience components
The software to be built for the current project resembles the exist
specification, design, code or test data developed for past Projeae
Members of the current software team that have had full experience ; int
application area represented by these components.
3. Partial experience component
Tn this category, existing specifications as for full experience components
but it requires extensive modification. The members of the software
project team have only limited experience in the application area, Fig
degree of risk involvement is there while using the components belonging
to this category.
4, New components
According to need and specification of the current project the software
components can be built by the software team.
(3) Environmental resources :
The Software Engineering Environment (SEE) incorporates hardware and
software.
Hardware provides a platform for using the tools required to produce work
products. These work products are the outcome of good software Engineering
practice.
: em
| 3.4: Software Project Estimation
Q.5 What is need of project estimation ? What are the steps while
estimation of software? — B@ (SPPU : May-19, Dec.-19, End Sem, Marks 8]
* Ans: Need:
+ The different parameters of a project that need to be estimated include -
Droject size, effort required to complete the project, project duration, and
cost.
* Accurate estimation of these parameters is important, because it helps in
Quoting an appropriate project cost to the customer.
A Guide for Engineering Students
A—OO”-”-—-|—|.—.—t—~—~—
Software Engineering 3-6 Estimation and Scheduling
«The software estimation helps in understanding the scope of the project.
The project estimation also forms the basis for resource planning and
scheduling.
Steps for software estimation : The four basic steps in software
estimation are;
the development product. This generally ends
Step 1 : Estimate the size of
but there are other
up in either Lines of Code (LOC) or Function Points (FP),
possible units of measure.
y comparing it with the existing systems of the same
The size is estimated b:
kind. The experts use it to predict the required size of various components of
software and then add them to get the total size.
Step 2 : Estimate the effort in person-months or person-hours. Effort
estimation is used to help draft project plans and budgets in the early stages
of the software development life cycle. This practice enables a project
manager to accurately predict costs and allocate resources accordingly.
Step 3 : Estimate the schedule in calendar months. Effective project
scheduling leads to success of project, reduced cost, and increased customer
satisfaction.
Step 4 : Estimate the project cost in dollars or in local currency.
i ™
| 3,5: Decomposition Techniques |
ana se
Q.6 What is LOC-based estimation ? Explain with a suitable example.
Ge [SPPU : Dec.-11, June-22,Marks 8]
Ans, : ¢ Size oriented measure is derived by considering the size of software
that has been produced.
¢ The organization builds a simple record of size measure for the software
projects. It is built on past experiences of organizations.
* Itisa direct measure of software.
ee
A Guide for Engineering Students
i
iim Eg i ey Se tate, poet aSo
Software. Engineering 3-7 Estimation and Scheduling
Asimple set of size measure that can be developed is as given below :
9: Size = Kilo Lines of Code (KLOC)
o. Effort = Person/month
o. Productivity = KLOC/person-month
o Quality = Number of faults/KLOC
o | Cost = S/KLOC
o Documentation = Pages of documentation/KLOC
+ The size measure is based on the lines of code computation. The lines of
code is defined as one line of text in a source file.
While counting the lines of code the simplest standard is:
© Don’t count blank lines.
o Don’t count comments.
o Count everything else.
© The size oriented measure is not universally accepted method.
Example
Consider an ABC project with some important modules such as
1. User interface and control facilities
2D graphics analysis
. 3D graphics analysis
Database management
. Computer graphics display facility
. Peripheral control function
. Design analysis models
Estimate the project in based on LOC
ane Sw oN
For estimating the given application we consider each module as separate
- tion and corresponding lines of code can be estimated in the following
ie as
A Guide for Engineering StudentsSoftware Engineering 3-8 Estimation and Scheduling
= = 1
Function Estimated LOC
| User Interface and Control Facilities(UICF) : 2500
2D graphics analysis(2DGA) | 5600
3D Geometric Analysis function(3DGA) 6450
Database Management(DBM) | 3100
[Computer Graphics Display Facility(CGDF) 4740
Peripheral Control Function(PCF) 2250
Design Analysis Modules (DAM) 7980 ~ |
Total Estimation in LOC 32620
Expected LOC for 3D Geometric analysis function based on three point
estimation is -
© Optimistic estimation 4700
© Most likely estimation 6000
o Pessimistic estimation 10000
s Soo +4*S + Sires! 16
Expected value = [4700 + (4 * 6000) + 10000] /6 — 6450
« Areview of historical data indicates -
1. Average productivity is 500 LOC per month
2. Average labor cost is $6000 per month
Then cost for lines of code can be estimated as
cost / LOC = (6000 / 500) = $12
By considering total estimated LOC as 32620
¢ Total estimated project cost = (32620 * 12) =$391440
* Total estimated project effort = (32620 / 500) = 65 Person-months
Q.7 Explain the FP based estimation technique.
> [SPPU : May-18, Dec.-22, End Sem, Marks 6, June-22, Marks 5]
OR How to calculate FP and how it is used in estimation of software
project ? EE [SPPU : Dec.-19, End Sem, Marks 5]
A Guide for Engineering Studentsaw:
‘Sofware Engineering
Ans, : The function point model is based on functionality of the delivered
3-9 Estimation and Scheduling
application.
© These are generally independent of the programming language used.
» Function points are derived using:
co Countable measures of the software requirements domain
co Assessments of the software complexity.
How to calculate function point ?
The data for following information domain characteristics are collected :
1, Number of user inputs - Each user input which provides distinct
application data to the software is counted.
2.. Number of user outputs - Each user, output that provides application
data to the user is counted, e.g. screens, reports, error messages.
3, Number of user inquiries - An on-line input that results in the
generation of some immediate software response in the form of an output.
4. Number of files - Each logical master file, i.e. a logical grouping of data
that may be part of a database or a separate file.
5. Number of external interfaces - All machine-readable interfaces that are
used to transmit information to another system are counted.
The organization needs to develop criteria which determine whether a
particular entry is simple, average or complex. The weighting factors should
be determined by observations or by experiments.
Count Weighting factor Count
Domain
characteristics
Simple | Average | Complex
Number of user © % 4 6
input
‘Number of user 4 5 7
output
‘A Guide for Engineering Suuden®
gilSoftware Engineering 3-10
-10 Estimation and Scheduling
Number of user 3 4 6
inquiries | |
Number of files | 7 | 15
= | }
Number of | 5 7 10
extemal |
interfaces |
Count Total
The count table can be computed with the help of above given table.
Example
FP focuses on information domain values rather than software functions.
Thus we create a function point calculation table for ABC project, discussed
inQeé.
INFO DOMAIN | Opt. most | pessimistic | Esti. Weight FP
VALUE likely value | factor
___ ee te
NO.OFINPUTS | 95 | 28 32 | m1] 4 ji
etl on | 12 |
NO.OF OUTPUTS | 44 | 47 20 Vv 5 | 85
NOLOEINQURIES | 7.) , 33 30 23.1 5 | 116
ae
NO: OF FILES 5s | 5 7 53 | 10 | 53
Ino. OF
; 2 | 2 3 2 7 445
EXTERNAL
INTERFACES
8 ae
[COUNT TOTAL 381
* For this example we assume average complexity weighting factor.
* ‘Each of the complexity weighting factor is estimated and the complexity
adjustment factor is computed using the complexity factor table below.
(Based on the 14 questions)
on
A Guide for Engineering Students-
Software Engineering 3-1 Estimation and Scheduling
Sr, No. Factor Value (F)).
1. [Back-up and recovery ? 4
-| 3, |Data communication ? 2
3, _ [Distributed processing ? 0
4, |Performance critical ? 4
; 5 Existing operational environment 9 3
6 |On-line data entry ? 4
7. |Input transactions over multiple screens ? 5
Information domain values complex ? 5
10 |Intemal processing complex ? 5
fp
11, |Code designed for reuse ? it
12. |Conversion / installation in design? . - 3
13. |Multiple installations ? 5
Sa t«*d
14. | Application designed for change 2 5
2@)782
The estimated number of adjusted FP is derived using the following
formula :
FP ESTIMATED = (FP COUNT TOTAL + [COMPLEXITY ADJUSTMENT
FACTOR]
: FP ESTIMATED = COUNT TOTAL * (0.65 + (0.01 *? = &))1
Complexity adjustment factor = (0.65 + (0.01 * 52)] = 1.17
« FP ESTIMATED = (381 * 1.17) = 446 (Function point count adjusted
with complexity adjustment factor)
|S Sr ES
A Guide for Engineering StudentsSoftware Engineering
ip
¢ A review of historical data indicates -
Estimation and Scheduling
1. Average productivity is 6.5 FP/Person month
2. Average labor cost is $6000 per month
Calculations for cost per function point, total estimated project cost and total
effort
1. The cost per function point = (6000 / 6.5) = $923
2. Total estimated project cost = (446 * 923) = $411658
3. Total estimated effort = (446 / 6.5) = 69 Person-month.
Q.8 Compare the Lines of Code (LOC) and Function Point (FP) based
estimation techniques with suitable example.
ISP [SPPU : May-19, Dec 22, End Sem, Marks 8]
Fanction Point based
metrics
Ans. :
Sr. LOC based metrics
No.
1. | Size oriented software metrics is
by considering the size of the
software that has been produced in
lines of code.
2. | ForaLOC based metric the
software orgaiization maintains
simple records in tabular form.
The typical table entries are :
Project name, LOC, Effort, Pages
of documents, errors, defects, total
number of people working on
project.
Function oriented metrics use a
measure of functionality delivered
by the software.
Most widely used function oriented
metric is the function point (FP)
computation of the function point is
based on characteristics of
software’s information domain and
complexity.
Example of LOC Based Metrics : Refer Q.6.
Example of Function Point Based ‘Metrics : Refer Q.7.
Q.9 What is software project estimation ? How use cases are used in
estimation ?
USP [SPPU : May-11, Marks 6]
A Guide for Engineering Studentsaati
Soj Ei
ineerit 3-13 Estimation and Schedulin,
Ans, ; i imation i
Software project estimation 1s a process of predicting the time, effort,
cost and scope of the project.
Estimation with Use case :
Use-cases also provide a software team with insight into software scope
on Tequirements, But there are some difficulties in developing
estimations using use cases due to the following reasons
"There are varieties of ways by which use cases can be described.
There is no unique format for them.
‘Use-cases represent an external view (User's view) of the software,
These are also written at different levels of abstraction. That means
some use cases may be written to expose only primary functions
where as some other use cases may describe each function in more
detail.
= The complexity of the functions and features cannot be described by
USE Cases.
= The complex behaviour involved in many functions and features is
also not described in use cases.
* In spite of these difficulties the use cases can be used for estimation, but
only if they are considered within the context of structured hierarchy
that use cases describe.
Smith argues that any level of structured hierarchy -
1 Can be described by at the most 10 Use-cases.
2, Each use-case would not contain more than 30 distinct scenarios.
* Therefore before using the use cases for the estimation -
o The level within the structured hierarchy must be established.
©. The average length of each use case must be determined.
© The type of software application for which estimation is calculated
must be defined,
© The rough system architecture is defined.
A Guide for Engincering Students3-14 Estimation and. Scheduling
Software Engineering _
isti e used to
After establishing these characteristics, empirical data can be u:
° en the structured
estimate LOC or FP for ¢ac
can be used to compute t
h use case. Thi
he efforts required to
hierarchical data
develop the system.
is useful to compute this estimation -
o Following formula
= + wh - 1
N «LOC ave [(Sa/SI )
LoC estimates =
+ (Pa/Ph - 1) * LOC giust
where N. =. Actual number of Use-cases /
LOC. = Historical average LOC/Use-case for this type
avg
subsystem
= don '1n%' of LOC,
LOC, dust Adjustment based 0: fr ae
n = Defined locally and represents the difference between
this project and "Average’ project
Sa = Actual scenarios per use-case
Sh = Average scenarios per use-case for this type subsystem
Pa = Actual pages per use-case
Average pages per use-case for this type of subsystem
number of
Ph =
The above expression is used to develop a rough estimation of the
LOC, based on the actual number of use-cases adjusted, by the number of
scenarios and page length of the use-cases.
Q.10 What is project decomposition ? What are the work tasks for
communication process using process decomposition ?
E& [SPPU : Dec.-15, End Sem, Marks 9, June 22, Marks 8]
Ans. : Project decomposition is the process of dividing components of a
large project into smaller, more manageable portions, often called
deliverables. This process helps project managers assign tasks more easily
and assists in time management and workflow. As team members complete
tasks associated with their deliverables, they complete steps within the
decomposed workflow, working toward the eventual completion of an entire
project.
A Guide for Engineering StudentsBe Software Engineering 3-18 Estimation and Scheduling
Work task for communication process :
« Various factors that influence the tasks sets are -
1. Size of project 2. Project development staff
3,. Number of user of that project 4. Application longetivity
5. Complexity of application 6. Performance constraints
7. Use of technologies
© Task set example : Consider the concept development type of the Project,
‘Various tasks sets in this type of project are -
© Defining scope : This task is for defining the scope, goal or objective |
of the project.
© Planning : It includes the estimate for schedule, cost and people fo,
completing the desired concept.
co Evaluation of technology risks : It evaluates the risk associated with
the technology used in the project.
o Concept implementation : It includes the concept representation in
the same manner as expected by the end user.
Q.11 Discuss with suitable example - Process based estimation.
E> [SPPU : June-22, Marks 5]
‘Ans. : © This is the most commonly used estimation technique for estimating
the project based on the processes used.
In this technique, the process is decomposed into relatively size set «|
tasks and the effort required to accomplish each task is estimated. i
© The estimation begins with identification of software functions ental
from the project scope. Then a series of software process activities must|
be performed for each function. The function and software proces)
activities are presented in a tabular form. Then planner estimates isl
efforts for each software function. f
For example : f
In this technique for each of the business function software engineering tasbs)
such as analysis, design, coding and testing is carried out. The estimate!
——————————
:
‘A Guide for Engineering Studet®
lis aSoftware Engineering 3-16 Estimation and Scheduling
efforts for cach of these functions are identified and their sum is obtained. In
the following table, the sum of all the rows and columns is taken and the
effort for each b business function is estimated in percentage,
Da activiry
[interface and
| control
facilities
ICA)
| 2D graphics
| Geometric
analysis
function
| GDGA)
| Database
| Management
(DBM)
5.95
'
| Facility
i |(cape)
oe
A Gulde for Engineering StudemssCC means customer communication CE means customer evaluation
The percentage effort is calculated based on the total 48.
For instance we get the total for the task Design as 22.25
22.25 * 100 / 48 = 46 % approximately
Thus the percentage efforts for all the software engineering tasks are
computed.
Based on average labor cost of $6000 per month
1. Total estimated project Effort = 48 persons-month
2. Total estimated project cost = (6000 * 48) = $288000
Or et
| Empirical Estimation Models
Q.12 Explain COCOMO II model.
UG} [SPPU : Dec.-11, Marks 8, Dec.-16, End Sem, Marks 5]
Ans. : COCOMO II is applied for modern software development practices
addressed for the projects in 1990's and 2000’s.
The sub-models of COCOMO II model are -
1. Application composition model
« For estimating the efforts required for the prototyping projects and the
projects in which the existing software components are used application
composition model is introduced.
ae
Gecone
° A Guide for Engineering Stndent
aeSoftware Engineering 3-18 Estimation and Scheduling
« The estimation in this model is based ‘on the number of application points
The application points are similar to the object points.
« This estimation is based on the level of difficulty of object points. Boehm
has suggested the object point productivity in the following manner.
- Jerri
Developers experience | Verylow} Low Nominal | High | Very high
and capability
CASE maturity Verylow} Low | Nominal] High | Very high
Productivity | 4 7 13 25 50
(NOP/Month) |
« Effort computation in application-composition model can be done as
follows -
PM = (NAPO*FH#1) 7 PROD
where
PM means effort required in terms of person-months.
NAP means number of application points required.
% reuse indicates the amount of reused components in the project.
These reusable components can be screens, reports or the modules
used in previous projects.
PROD is the object point productivity. These values are given in the
above table.
2. An early design model
* This model is used in the early stage of the project development. That is
after gathering the user requirements and before the project development
actually starts, this model is used. Hence approximate cost estimation can
be made in this model.
* The estimation can be made based on the functional points,
* In early stage of development different ways of implementing user
Tequirements can be estimated, ;
be
A Guide for Engineering Students
aera\
Software Engineering 3-19 Estimation and Scheduti
- ing
© The effort estimation (in terms of person month) in this model can be
made using the following formula :
Effort = Ax size xM
where
Boehm has proposed the value of coefficient A = 2.94,
Size should be in terms of Kilo source lines of code i.e. KSLOC.
The lines of code can be computed with the help of function point.
The value of B is varying ftom 1.1 to 1.24 and depends upon the project,
M is based on the characteristics such as
1. Product reliability and complexity (RCPX)
2. Reuse required (RUSE)
3. Platform difficulty (PDIF) r
4. Personnel capability (PERS)
5. Personnel experience (PREX) F
6. Schedule (SCED)
7, Support facilities (FCIL)
These characteristics values can be computed on the following scale - P
Fl acl
very Very
low high
« Hence the effort estimation can be given as ;
B
PM = 2.94xsize XM I
M= RUSE X PDIF x PERS x PREX x SCED x FCIL f
a
3. Areuse model !
This model considers the systems that have significant amount of cok
which is reused from the earlier software systems. The estimation made 4
reuse model is nothing but the efforts required to integrated the reustl
models into the new systems.
AH
. .
‘A Guide for Engineering Studet®
—Software Engineering 3-20 Estimation and Scheduling
« There are two types of reusable codes : black box code and white box
code. The black box code is a kind of code which is simply integrated
with the new system without modifying it. The white box code is a kind of
code that has to be modified to some extent before integrating it with the
new system, and then only it can work correctly.
© There is third category of code which is used in reuse model and it is the
code which can be generated automatically. In this form of reuse the
standard templates are integrated in the generator. To these generators, the
system model is given as input from which some additional information
about the system is taken and the code can be generated using the
templates.
« The efforts required for automatically the generated code is
PM = (ASLOC x AT/100)/ATPROD
where
AT is percentage of automatically generated code.
ATPROD is the productivity of engineers in estimating such code
e Sometimes in the reuse model some white box code is used along with the
newly developed code. The size estimate of newly developed code is
equivalent to the reused code. Following formula is used to calculate the
| __ effort in such a case -
i ESLOC = ASLOC x (1-AT/ 100) x AAM
a where
i ESLOC means equivalent number of lines of new source code.
| ASLOC means the source lines of code in the component that has to be
adapted.
AAM is adaptation Adjustment multiplier. This factor is used to take into the
dt!) efforts required to reuse the code.
i) 4. Post architecture model
* This model is a detailed model used to compute the efforts. The basic
formula used in this model is
A Gude for Engineering StudentsEffort =
« In this model efforts shoul
formula A is the amount of
help of three components -
1, The estimate about new
g-2 Estimation and Schedulin,
B
Ax Size xM
ld be estimated more accurately. In the above
code. This code size estimate is made with the
lines of code that is added in the program.
2. Equivalent number of Source Lines Of Code (ESLOC) used in Teuse
model.
3. Due to changes in requirements the lines of code get modified. Thy
estimate of amount of code being modified.
The exponent term B has three possible values that are related to the
levels of project comp!
lexity. The values of B are continuous rathey
than discrete. It depends upon the five scale factors. These scale
factors vary from very low to extra high (i.e. from 5 to 0).
.© These factors are -
Scale factor for component B
|Precedentedness
Development flexibility
—————
Architecture / risk resolution | Amount of risk that is allowed to carry out. Very|
Description
fo —__—___|
This factor is for previous experience of|
organisation. Very low means no previous|
experience and high means the organisation knows|
the application domain.
Flexibility in development process. Very low
means the typical process is used. Extra high|
means client is responsible for defining the process,
goals.
low means little risk analysis is permitted and|
extra high means high risk analysis is made.
Team cohesion
Represents the working environment of the team.
‘Very low cohesion means poor communication or|
interaction between the team members and extra
high means there is no communication problem)
A Guide for Engineering StudentsSoftware Engineering 3-22 Estimation and Scheduting
and team can work in a good spirit.
L
Process maturity This factor affects the process maturity of the
organisation. This value can be computed using!
Capacity Maturity Model (CMM) questionnaire,
|for computing the estimates CMM maturity level
can be subtracted from 5.
Add up all these rating and then whatever value you get, divide it by 100.
Then add the resultant value to 1.01 to get the exponent value.
« This model makes use of 17 cost attributes instead of seven. These
attributes are used to adjust initial estimate.
1
Cost attribute Type of Purpose
attribute
RELY Product System reliability that is required. |
CPLX Product Complexity of system modules
DATA Product Size of the data used from database
DOCU Product Some amount of documentation used
RUSE Product | Percentage of reusable components
TIME Computer Amount of time required for execution
PVOL Computer | Votaity of development platform.
STOR Computer | Memory constraint
ACAP Personnel _ Project analyst’s capability to analyse the
Project.
roar | Fenomel [Progammercapably
PCON Personnel "| Personnel continuity
PEXP Personnel Programmer’s experi i j nie
Xperience in project domain.
LTEX Personnel Experience of languages and tools that are
used.
A Guide for Engineering SwdentsKey
Software Engineerin;
Q43 Explain COCOMO model for project estimation with suitable
example
> [SPPU: May-16, Dec.-17, 18, End Sem, Marks 7, Dec.-22, Marks 9]
Ans, : Refer Q.12.
| 3.7: Object Point based Estimation |
Lowrise
saimenenreomessnnessunsnassauenensennet
Q14 Discuss with suitable example - Object Point (OP) based
estimation. E> [SPPU : June-22, Marks 5]
‘Ans. : Lorenz and Kidd suggested the estimation technique for object
oriented project. The steps for this estimation technique are as follows -
"1. Using requirement model, develop use cases and determine the count. As
the project proceeds, the number of use cases may get changed.
2, Using the requirement model, determine the number of key classes.
3. Categorize the type of interface and develop the multiplier. For example
Interface Type i Multiplier
No GUI 2.0
Text based interface 2.25
25
|
3.0
po
Multiply the key classes by these multipliers to obtain the number of
support classes,
4, Now multiply the key and support classes by average number of work
units per class. Approximately there are 15-20 person-days per class.
Graphical User Interface
el
‘A Guide for Engineering Students
eS aSoftware Engineering 3-24 Estimation and Scheduling
.8 : Project Scheduling
Q.15 What is project scheduling ? What are the basic principles of
project scheduling ? B&F [SPPU : Dec.-16, 22, End Sem. Marks 6, Dec.-19,
June-22. End Sem, Marks 5]
Ans. : Definition : Software project scheduling can be defined as an activity
that distributes the estimated effort across the planned project duration by
allocating the effort to specific software engineering tasks.
1, Compartmentalization : The project must be compartmentalized into a
number of manageable activities, actions and tasks. To accomplish
compartmentalization, both the product and the process are decomposed.
2. Interdependency : The interdependency of each compartmentalized
activity, action, or task must be determined. Some tasks must occur in
sequence while others can occur in parallel.
Time allocation : Each task to be scheduled must be allocated some
number of work units. In addition, each task must be assigned a start date
and a completion date that are a function of the inter dependencies and
whether work will be conducted on a full-time or part-time basis.
3.
4. Effort validation : As time allocation occurs, the project manager must
ensure that no more than the allocated number of people have been
scheduled at any given time.
5. Defined responsibilities : Every task that is scheduled should be
assigned to a specific team member.
6. Defined outcomes : Every task that is scheduled should have a defined
outcome. For software projects, the outcome is normally a work product
or a part of work product.
_
. Defined milestones : Every task or group of tasks should be associated
with a project milestone. A milestone is accomplished when one or more
work products has been reviewed for quality.
A Guide for Engineering StudentsDefining a Task Set for th for the S Software Project
Qi6 Define task set for the software project. ct. Also enlist the various types
of os
+ © Definition of task set : The task set is a collection of software
cst work tasks, milestones, and work products that must be
accomplished to complete particular project.
Every process model consists of various tasks sets. Using these tasks sets
the software team define, develop or ultimately support computer
software.
+ There is no single task that is appropriate for all the projects but for
developing large, complex projects the set of tasks are required. Hence
every effective software process should define a collection of task sets
depending upon the type of the project. .
» Using tasks sets the high quality software can be developed and any
unnecessary work can be avoided during software development.
The number of tasks sets will vary depending upon the type of the project.
Various types of projects are enlisted below -
1, Concept Development project : These are the projects in which new
business ideas or the applications based on new technologies are to be
developed.
2, New application development project : These projects are
developed for satisfying a specific customer need.
3. Application upgradation project : These are kind of projects in
which existing software application needs a major change. This
change can be for performance improvement, or modifications within
the modules and interfaces.
4, Application maintenance project : These are kind of projects that
correct, adapt or extend the existing software applications.
5. Reengineering projects : These are the projects in which the legacy ‘
systems are rebuilt partly or completely.
—_—_—_—_—_—_—_——————
A Guide for Engineering StudentsSoftware Engineering 3-26 Estimation and Scheduling
oe
3.10 : Task Network
rk in project scheduling ? Explain with an
Q.17 What is a task netwo
example.
O& [SPPU : May-11, 18, 19, End Sem, Marks 6, Dec.-17, End Sem, Marks 8]
it is used in scheduling of software
OR What is a task network ? How
G& [SPPU : May -11, Dec.-13, Marks 8]
project ?
‘Ans. : ¢ The task is a small unit of work.
« The task network or an activity network is a graphical representation,
with:
(1) Nodes corresponding to activities.
(2) Tasks or activities are linked if there is a dependency between them.
(3) The task network for the product development is as shown in
Fig. Q.17.1 Task network
» The task network definition helps project manager to understand the
project work breakdown structure.
The project manager should be aware of interdependencies among various
tasks, It should be aware of all those tasks which lie on the critical path.
r mene
| 3.11: Scheduling with Time Line Chart —
Q.18 What is time line chart ? How it is used in scheduling of software
project ? OP [SPPU : Dec.-12, Marks 8, Dec.-16, End Sem, Marks 5,
May -18, End Sem, Marks 6
: A Guide for Englacering StudentsSoftware Engineerit 3-27 Estimation and Scheduling
‘Ans, 1 © In software project scheduling the timeline chart is created. The
purpose of timeline chart is to emphasize the scope of individual task,
Hence set of tasks are given as input to the time line chart.
© The time line chart is also called as Gantt chart.
« The time line chart can be developed for entire project or it can be
developed for individual functions.
© Intime line chart
1) All the tasks are listed at the leftmost column.
2) The horizontal bars indicate the time required by the corresponding
task.
3) When multiple horizontal bars occur at the same time on the calendar,
then that means concurrency can be applied for performing the tasks,
4) The diamonds indicate the milestones.
« In most of the projects, after generation of time line chart the project
tables are prepared. In project tables all the tasks are listed along with
actual start and end dates and related information.
ai Sept Oct, Nov.
6 [13 |20|27| 3 |10}47|24]311 Lhe l2i}2e!
Dec. Jan,
1825] 1 | 8 [15422
4
|
Fig. Q.18.1 Time line chart
A Guide for Engineering StudentsSoftware Engineering 3-28 Estimation and Scheduling
oe
| 3.12: Schedule Tracking Tools
Q.19 Write short note on - DART.
Ans. ! © This tool enables you to track the changes to record being made by
users.
Many organizations deploy the Daily activity reporting and tracking tool
that monitors the progress of the software project.
DART collects the activity data and keep track of the work flow.
DART can compute the set of business queries which are also called as
indicators that can be used to keep track of the performance.
The aim of DART is to empower software project stakeholders in their
daily discussion regarding the performance of the project.
———
| 38
i
Q.20 Explain the concept of requirement traceability matrix. Also
specify the advantages of requirement traceability matrix.
Ans. : © Requirements are tracked by Requirements Traceability Matrix
(RTM).
© RTM traces all the requirements from design, development, and testing.
© The traceability matrix is typically a worksheet that contains the
requirements with its all possible test scenarios and cases and their current
state, i.e. if they have been passed or failed. This would help the testing
team to understand the level of testing activities done for the specific
}
i
: Preparing Requirement Traceability Matrix
product.
Parameters to be included in requirement traceability matrix
(1) Requirement ID
(2) Requirement type and description
(3) Test cases
(4) Test case status
A Guide for Engineering StudentsPd
Software Engineering 3-29 Estimation and Scheduling
Example
>
Requirement Testcase ID Status
Description
Login the website
TC#003
Advantages of requirements traceability matrix
1. Itconfirms 100 % test coverage.
. Ithighlights any requirements missing or document inconsistencies,
nv
3. It shows the overall defects or execution status with a focus on business
requirements.
4, Ivhelps in analysing or estimating the impact on the QA team's work with
respect to revisiting or re-working on the test cases.
END... &
A Guide for Engineering Studen’s
aea
| Design Engineering
Part CEU e ele kd
4, a Introduction to Design
Unit IV
Q.1 Explain the term - Software Design.
Ans. : Definition : Software design is model of software which translates the
requirements into finished software product in which the details about the
software data structures, architecture, interfaces and components that are
necessary to implement the system are given.
Q.2 What are the characteristics of a well formed design class 7
[E> [SPPU : Dec.-12, Marks 6]
Ans. :
1. The good design should implement all the requirements specified by
the customer. Even if there are some implicit requirements of the
software product then those requirements should also be implemented by
the software design.
2. The design should be simple enough so that the software can be
understood easily by the developers, testers and customers. ,
3. The design should be comprehensive. That means it should provide
complete picture of the software.
prerreranee
| 4.2: The Design Process
Q.3 Elaborate software design process
Ans. : # Software design is an iterative Process in which the requirements
are translated into the blueprint of the software. Tnitially the software is
represented at high level of abstraction, but during the subsequent
iterations data, functional and behavioural requirements are traced in more
detail.
a
4-D
I a eres4-2 Design Engineerin,
Software Engineerit
ana iteration leads to design
finement - made during each itera!
es at much lower level of abstraction. Throughout the
representations oftware is assessed by
software design process the quality of the s
considering certain characteristics of the software design.
sass
4.3 : Software Quallty Guidelines and Attributes |
i » Sateen : :
seamen
sonore
eee design.
attributes, considered in software
™ = = [SPPU: Dec.-12, Marks 8, Dec.-16, End Sem, Marks 5)
Ant e The design quality attributes popularly known as FURPS
8. 3 nn
: (Functionality, Usability, Reliability, Performance and Supportability) is
asetof criteria developed by Hewlett and Packard.
« Following table represents meaning of each quality attribute,
Quality Meaning
| armies | etter |
Functionality |Functionality can be checked by assessing the set of features and
capabilities of the functions. The functions should be general and
should not work only for particular set of inputs. Similarly the,
| security aspect should be considered while designing the function,
‘Usability ‘The usability can be assessed by knowing the usefulness of the
{ y ne
Reliability Reliability is a measure of frequency and severity of failure.
Repeatability refers to the consistency and repeatability of the
measures. The Mean Time to Failure (MTTF) is a metric that is
widely used to measure the product's performance and reliability.
=
Performance _ {It is a measure that represents the response of the system.
Measuring the performance means measuring the processing speed,
memory usage, response time and efficiency.
Supportability [It is also called maintainability. It is the ability to adopt the
enhancement or changes made in the software. It also means the
ability to withstand in a given environment.
A Guide for Engineering SdensSoftware Engineering _ 4-3 Design Engin eering
Q.5 What are the design quality guidelines? t@P [SPPU : May-14, Marks 8]
Ans. : ¢ The quality guidelines are as follows -
1, The design architecture should be created using following issues -
o The design should be created using architectural styles and
patterns,
o Each component of design should posses good design
characteristics.
o The implementation of design should be evolutionary, so that testing
can be performed at each phase of implementation.
2. In the design the data, architecture, interfaces and components should be
clearly represented.
3. The design should be modular. That means the subsystems in the design
should be logically partitioned.
4. The data structure should be appropriately chosen for the design of
specific problem.
5. The components should be used in the design so that functional
independency can be achieved in the design.
6. Using the information obtained in software requirement analysis the
design should be created.
7. The interfaces in the design should be such that the complexity between
the connected components of the system gets reduced. Similarly interface
of the system with external interface should be simplified one.
8. Every design of the software system should convey its meaning
appropriately and effectively,
Q.6 What are the software design quality attribute and guidelines ?
E> [SPPU : Dec.-19, End Sem, Marks 7]
Ans. : Refer Q.4 and Q.
4 : Design Concepts
Q.7 Explain the following design concepts. i) Refinement ii) Modularity
iii) Architecture, GH [SPPU May-11, Marks 6, May-13, Marks 8]
ea
A Guide for Engineering StudentsSoftware Engineering 4-4 Design Engineering
Ans. : i) Refinement:
» Refinement is actually a process of elaboration.
Stepwise refinement is a top-down design strategy proposed by Niklaus
WIRTH.
« The architecture of a program is developed by successively refining levels
of procedural detail.
« The process of program refinement is analogous to the process of
refinement and partitioning that is used during requirements analysis.
« Abstraction and refinement are complementary concepts. The major
difference is that - In the abstraction low-level details are suppressed,
Refinement helps the designer to elaborate low-level details.
ii) Modularity :
© The software is divided into separately named and addressable
components that called as modules.
* Modularization should be such that the development can be planned
easily, software increments can be defined and delivered, changes can be
more easily accommodated and long term maintenance can be carried out
effectively.
« Meyer defines five criteria that enable us to evaluate a design method
with respect to its ability to define an effective modular system :
1. Modular decomposability : A design method provides a systematic
mechanism for decomposing the problem into sub-problems. This
reduces the complexity of the problem and the modularity can be
achieved.
2. Modular composability : A design method enables existing design
components to be assembled into a new system.
Modular understandability : A module can be understood as 4
standalone unit. It will be easier to build and easier to change.
3
we
‘A Guide for Engineering Students
—ON
Software Engineering 4-5 Design Engineering
4. Modular continuity : Small changes to the system requirements
result in changes to individual modules, rather than system-wide
changes.
5. Modular protection : An aberrant condition occurs within a module
and its effects are constrained within the module.
lil) Architecture :
Architecture means representation of overall structure of an integrated
system. In architecture various components interact and the data of the
structure is used by various components. These components are called system
elements. Architecture provides the basic framework for the software system
so that important framework activities can be conducted in systematic
manner.
In architectural design various system models can be used and these are
Model . Functioning
Structural model —_ | Overall architecture of the system can be Tepresented
using this model.
——
Framework model | This model shows the architectural framework and |
corresponding applicability.
=
Dynamic model _| This model shows the reflection of changes on the system |
due to external events.
Process model The sequence of processes and their functioning is
Tepresented in this model.
Functional model, | The functional hierarchy occurring in the system is
represented by this model.
Q.8 Differentiate between abstraction and refinement.
GS} [SPPU : Dec.-12, June 22, Marks 4]
Abstraction and refinement are complementary concepts. The major
difference is that - in the abstraction low-level details are suppressed.
Refinement helps the designer to elaborate low-level details.
Ans, :
A Guide for Engineering StudentsSoftware Engineering 4-6 Design Engineering
Q.9 List the design concepts. Explain refinement and refactoring. Give
the importance of Refactoring in improving the quality of software.
UG [SPPU : June-22, Marks 9)
Ans. : Design concepts are -
i) Abstraction
ii) Modularity
iii) Architecture
iv) Refinement
v) Patter
vi) _ Information Hiding
vii) Functional Independence
viii) Refactoring
Refinement ; Refer Q.7(i).
Refactoring : Refer Q.10.
Q.10 What do you understand by refactoring ? Give the importance of
refactoring in improving quality of software.
UG [SPPU : May-15, End Sem, Marks 6, Dec.-18, End Sem,
Oct.-19, In Sem, Marks 5]
‘Ans. : Refactoring is necessary for simplifying the design without changing
the function or behaviour. Fowler has defined refactoring as “The process of
changing a software system in such a way that the external behavior of the
design do not get changed, however the internal structure gets improved”,
Benefits of refactoring are -
© The redundancy can be achieved.
« Inefficient algorithms can be eliminated or can be replaced by efficient
one. :
¢ Poorly constructed or inaccurate data structures can be removed or
Teplaced.
* Other design failures can be rectified.
The decision of refactoring particular component is taken by the designer of
the software system.
eel
A Guide for Engineering StudentsSoptware Engineering 4-7 Design Engineering
Q.11 What do you mean by the term cohesion and coupling in context of
software design ? How are these concepts useful in arriving at a good
design of a system ?
CGP [SPPU : Dec.-16, End Sem, Marks 5, Aug.-17, In Sem, Marks 3]
‘Ans. : Cohesion :
» With the help of cohesion the information hiding can be done.
» Acohesive module performs only “one task” in software procedure with
little interaction with other modules. In other words cohesive module
performs only one thing.
« Different types of cohesion are :
J. Coincidentally cohesive : The modules in which the set of tasks are
related with each other loosely then such modules are called
coincidentally cohesive.
2: Logically cohesive : A module that performs the tasks that are
logically related with each other is called logically cohesive.
3. Temporal cohesion : The module in which the tasks need to be
executed in some specific time span is called temporal cohesive.
4. Procedural cohesion : When processing elements of a module are
related with ‘one another and must be executed in some specific order
then such module is called procedural cohesive.
5. Communicational cohesion : When the processing elements of a
module share the data then such module is communicational cohesive.
¢ The goal is to achieve high cohesion for modules in the system.
Coupling :
© Coupling effectively represents how the modules can be “connected” with
other module or with the outside world,
* Coupling is a measure of interconnection among modules in a program
structure.
+ Coupling depends on the interface complexity between modules.
ee
A Gulde for Engineering Students
rs5
4-8 Des
sign
Software Engineerin, Engin eer
© The goal is to strive for lowest possible coupling among Mody ley \
jy
software design.
© The property of good couplin,
Prop cts, It should also reduce the cost jn fe ag :
hy
g is that it should reduce or Void g che k
impact and ripple effe
changes. testing and maintenance.
Various types of coupling are = ;
i) Data coupling : The data coupling is possible by parameter Passing
data interaction.
ii) Control coupling : The modules share related control data in cont |
coupling.
iii) Common coupling : In common coupling common data or g elobay
data is shared among the modules.
iv) Content coupling : Content coupling occurs when one module makes
use of data or control information maintained in another module,
Q.12 Justify * A cohesive design should have high cohesiveness ang low
coupling”. BS [SPPU : April-15, In Sem, Marks 4
Ans, : ¢ Low coupling is an approach to interconnecting the components in a
system or network so that those components, are less dependant upon each
other.
High cohesiveness indicate that module perform only one task.
« Ideally the components in the system must be least dependent on each
other and every component must perform only one task at particular
instance.
* Hence it is said that the system must have high cohesiveness and low
coupling.
Q.13 A Design should have high cohesive and low coupling. Justify:
BH (SPU : Dec.-18, Oct.-19, In Sem, Marks 5]
Ans. : Refer Q.12.
Q.14 Differentiate between -
tes of
software design ? How are these ee coupling i em
useful for good design of a system ?
0 [SPPU : June-22, Ma!
rks 4)
= ring sidenae
Software Engineering 4-9 Design Engineering
Ans. :
Sr. Coupling Cohesion
No.
j}—
| 1. |Coupling represents how the In cohesion, the cohesive module
modules are connected with other performs only one thing.
modules or with the outside world.
2. | With coupling interface With cohesion, data hiding can be
complexity is decided. done.
3. |The goal of coupling is to achieve The goal of cohesion is to achieve
lowest coupling, high cohesion.
{| |
4. | Various types of couplings are - Various types of cohesion are -
a om, Logi
Data coupling, Control coupling, na cokes a
Common coupling and Content cobesioGy tee 7
fl Procedural cohesion and
coupling. wees y
Communicational cohesion.
eb
Q.15 Define following design concepts - i) Pattern ii) Information hiding
I> [SPPU : Aug.-27, In Sem, Marks 4]
ili) Architecture iv) Refinement
Ans. : i) Pattern : According to Brad Appleton the design pattern can be
s - It is a named nugget (something valuable) of insight which
defined a:
problem within 2
conveys the essence of proven solution to @ recurring
certain context.
In other words, design pattern acts as a design solution for 2 particular
problem occurring in specific domain. Using design pattern designer can
determine whether-
« Pattern can be reusable,
Pattern can be used for current work. , :
«Pattern can be used to’ solve similar kind of problem. with different
functionality.
“A Guide for Engineering StudentsSt
Software Engineering 4-10 Design Engineering
ii) Information hiding :
© Information hiding is one of the important property of effective modular
design.
* The term information hiding means the modules are designed in such g
way that information contained in one module cannot be accessible to the
other module (the module which does not require this information).
© Due to information hiding only limited amount of information can be
passed to other module or to any local data structure used by other
module.
« The advantage of information hiding is basically in testing ang
maintenance.
© Due to information hiding some data and procedures of one module can
be hidden from another module. This ultimately avoids introduction of
errors module from one module to another. Similarly one can make
changes in the desired module without affecting the other module.
iii) Architecture : Refer Q.7(iii).
iv) Refinement : Refer Q.7(ii).
Q.16 What is the relationship between modularity and functional
ES [SPPU : Dec.-18, End Sem, Marks 5]
dependence ?
Ans. : © The functional independence can be achieved by developing the
functional modules with single-minded approach.
e By using functional independence functions may be compartmentalized
and interfaces are simplified.
¢ Independent modules are easier to maintain with reduced error
propagation.
¢ Functional independence is a key to good design and design is the key to
software quality. ,
© The major benefit of functional independence is in achieving effective
modularity.
© The functional independence is assessed using two qualitative criteria -
Cohesion and coupling.
sean eenSoftware Engineering 4-H Design Engineering
Q.17 Explain about various design concepts considered during design.
‘ GH [SPPU : April-15, In Sem, Marks 6, Aug.-17, In Sem, Marks 3]
Ans. : Refer Q.7 and Q.13.
Q.18 Why modularity is important in software projects ?
Ans. : Modularity is important in software projects because of following
reasons ;
(1) Modularity reduces complexity and helps in easier implementation.
(2) The parallel development of different parts of the system is possible due
to modular design.
(3) Changes made during testing and maintenance become manageable and
they do not affect the other modules.
Q.19 Differentiate between : Abstraction and modularization.
Ans. : Abstraction is a software design concept which is applied to refine
software solution. In the process of abstraction only necessary information is
abstracted form requirement analysis to create the software solution in broad
terms. While moving through different levels of abstraction the procedural
and data abstraction are prepared. During abstraction the Procedural and data
objects are prepared.
Modularity is a design concept in which requirements are divided into
separately named and addresable components called as modules. Modularity
in design reduces complexity and helps in easier implementation.
| 4.5 : Object-Oriented Design Concept |
Q.20 Explain object oriented design.
Ans. : Object is an important clement of an Object Oriented Design (OOD).
Various objects and their interaction with each other objects is graphically
Tepresented in object oriented design. An object is an entity which can be
obtained from its belonging class and it posses attributes and operations, The
typical presentation of Object. ori
lented system is depicted by following
Fig. Q.20.1. ope ’
|
|
|Software Engineerin; 4-12 Design Engineer, |
ae eee eevee
i
val
f |
i! 46: Design Clases :
Q.21 Explain the types of design classes. ES [SPPU : Dec.-13, Marks 6]
Ans. : Design classes are defined as the classes that describe some elements |
of problem domain, focus on various aspects of problem from user's point of
view.
The goals of design classes is :
1. To refine the analysis classes by providing the detail design, so that
further implementation can be done easily. ;
N
- To create new set of classes for implementing the infrastructure of the
software.
There are five different types of design classes.
Fig. Q.21.1 Types of design classes
A Guide for Engineering Sudentsi —————
sare Engineerin 4-13 Design Engineeri
Sof
4, User interface class : The user interface class defines all the abstractions
that are necessary for Human Computer Interface(HCl). The user
interface classes is basically a visual representation of the HCI.
2, Business domain class : Business domain classes are the refinement of
analysis classes. These classes identify the attributes and services that
are needed to implement some clements of business domain.
3, Process class ¢ Process class implement lower level business abstractions
used by the business domain.
4. Persistent class : These classes represent the data store such as databases
which will be retained as it is even after the execution of the software.
5, System class : These classes are responsible for software management
and control functions that are used for system operation.
Tithe Desk aod |
| 4.7: The Design Model
Q.22 Describe the design model with a neat diagram and give the
traceability of each layer of design model to analysis model.
* GP [SPPU : Dec.-11, Marks 8]
‘Ans. : « The process dimension denotes that the design model evolutes due
to various software tasks that get executed as the part of software process.
e The abstract dimension represents level of details as each element of
analysis model is transformed into design equivalent.
In following Fig. Q.22.1 the dashed line shows the boundary between
analysis and design model. (See Fig. Q.22.1 on next page.)
.
¢ Inboth the analysis and design models the same UML diagrams are used
but in analysis model the UML diagrams are abstract and in design model
these diagrams are refined and elaborated. Moreover in design model the
implementation specific details are provided.
a ana anan
"4 Gulie for Engineering StudentsSoftware Engineering 4-14 Design Engineering
fer
peer
Baployment evel
interface
Fig. 0.22.1 Dimension of design model
© Along the horizontal axis various elements such as architecture element,
interface element, component level elements and deployment level |
elements are given. It is not necessary that these elements have to be
developed in sequential manner. First of all the preliminary architecture
design occurs then interface design and component level design occur in
parallel. The deployment level design ends up after the completions of
complete design model.
Q.23 Explain the elements of design model. 03? [SPPU : May-13, Marks 8]
Ans. : Following are the elements of design model -
{1) Data design elements
The: data design represents the high level of abstraction. This data
Tepresented at data design level is refined gradually for implementing the
computer based system. The data has great impact on the architecture of
(FNP EEN ELI AE: PORE TE PAI BE SIERO SEALE
‘A Guide for Engineering StudentsSoftware Engineering 4-15 Design Engineering
software systems. Hence structure of data is very important factor in software
design. Data appears in the form of data structures and algorithms at the
program component level. At the application level it appears as the
database and at the business level it appears as data warehouse and data
mining. Thus data plays an important role in software design.
(2) Architectural design elements
The architectural design gives the layout for overall view of the software.
‘Architectural model can be built using following sources -
Data flow models or class diagrams
Information obtained from application domain
Architectural patterns and styles.
(3) Interface design elements
Interface Design represents the detailed design of the software system. In
interface design how information flows from one component to other
component of the system is depicted. Typically there are three types of
interfaces - 5‘
~_, User interface ; By this interface user interacts
with the system. For example - GUI
External interface : This is the interface of the
‘system components with the external entities.
For example - Networking.
Internal interface : This is an interface which represents
the inter component communication of the system. For
example - Two classes can communicate with each other
by operations or by passing messages
Fig. 0.23.1
(4) Component level design elements
* The component level design is more detailed design of the software
system along with the specifications. The component level design
elements describe the internal details of the component. In component
level design all the local data objects, required data structures and
algorithmic details and procedural details are exposed.
i= EEE ERTEEEREREEREEPEEE
J A Guide for Engineering StudentsS
joftware 4-16 Design En, ineerin,
«© Fig. Q.23.2 represents that component order makes use of anothe,
T
Interface
Dependency
relation
Fig. Q.23.2 Components
» The order is dependent upon the component form. These two objects can
be interfaced with each other.
(5) Deployment level design elements
The deployment level design elements indicate how software functions and
software subsystems are assigned to the physical computing environment of
the software product.
KE
Fig. Q.23.3 Deployment diagram
eS
AGulde for Engineering StudentsSoftware Engineering 4017 Design Engineering,
For example web browsers may work in mobile phoned or they may run on
client PC or can execute on server machines.
Q.24 What are the elements in data design ? What are the guidelines for
the data design ? G@® [SPPU : May-14, Marks 8]
Ans. : Elements of data design :
1) Data structure : At the program component level, the data structure is
associated with algorithms
2) Databases : At the application level data model 1s converted to
databases.
3) Datawarehouse : At the business level, the collection of information
stored in various databases is identified and Datawarehouse is formed.
Guideline for data design :
1) The systematic analysis principles applied to function and behaviour
should also be applied to data.
2) All the data structures and operations to be performed should be
identified.
3) A data dictionary should be established and used to define both data and
program design.
4) Low level data decisions should be deferred until late in the design.
5) A library of useful data structures and operations must be developed well
in advance.
(6) A software design and programming language should support the
specification and realization of abstract data types.
Q.25 What are the deployment level design elements ?
GE} [SPPU : Dec.-11, Marks 4]
Ans, : Refer Q.23(5),
Q.26 Enlist the golden rules of user interface design.
GP [SPPU : Dec.-22, Marks 6]
Ans, ; Thao Mandel has proposed three golden rules for user interface
design -
—
‘A Guide for Engineering SudentsSoftware Engineering 4n18 Design Engineerin
|, Place the user in control
2, Reduce the user's memory load
3. Make the interface consistent.
1. Place the user in contro!
«Following are the design principles that allow user to control the system ;
i) Define the interaction modes in such a way that user will be
restricted from doing the unnecessary actions.
ii) The interaction should be flexible : The user interaction should be
flexible. For example in the Microsoft power point slide show the slide
transition is possible using mouse clicks as well as using keyboard. Such
flexibility allows any user to operate the system as per his comfort.
iii) Provide the facility of ‘undo’ or ‘interruption’ in user interaction
iv) Allow user to customize the interaction : It is observed that in while
handling user interface certain actions need to be done repeatedly. It
saves the time if these actions are collected in a Macro.
¥) Hide technical details from the user : This feature is essential for a
casual user. User should not be aware of system commands, operating
system functions or file management functions.
vi) The objects appearing on the screen should be interactive with the
user.
2. Reduce the user's memory load
¢ Following are the principles suggested by Mandel to reduce the memory
load of the user.
1. Do not force the user to have short term memory : The user interface
should be such that the user need not have to remember past actions and
results. And this can be achieved by providing proper visual interface.
2. Establish meaningful defaults
Meaningful default options should be available to the user. For example
in the Microsoft word the user can set the default font size as per his
eee
A Guide for Engineering Students_—
4-19
separ bnglneering
lot only this, there should be some reset option available to the
choice. N
wiser in order to get back the original values.
3, Use intuitive shortcuts : For quick handling of the system such short
: cuts are required in the user interface. For example control+s key 1s for
saving the file or control+o is for opening the file.
. Make the interface consistent
The user interface should be consistent. This consistency can be
maintained at three levels such as,
The visual information (all screen layouts) should be consistent
throughout and it should be as per the design standards.
There should be limited set of input holding the non conflicting
°
information.
The information flow transiting from one task to another should be
consistent.
4.8 : Component-Level Design
Q.27 Describe notations used for deployment diagram. Describe the
importance of deployment diagram. BF [SPPU : Dec.-22, Marks 9]
Ans, : Notations :
Node :.
* A node is a physical element that exists at run time and represents a
computational resource. It generally has at least some memory and some
processing capability.
* Graphically the node is represented as cube.
« Example -
Fig. Q.27.1 Node
‘A Guide for Engineering StudentsSoftware Engineering = 4-21 Design Engineering
« Example -
AG
Client 1
worhatation
~ Connections
Client 2 >
Fig. Q.27.3 Connections
Importance : Following applications of deployment diagram illustrates its
importance,
1) The deployment diagram is used to represent the deployment of software
elements to various hardware components.
2) This diagram illustrates the runtime processing of hardware.
3) It is used to model the network and hardware topology of a system.
4) Itis also used to model distributed networks and systems.
5) The deployment diagram is used for aodelling the embedded system.
pemmnateirinmanan
;
* 7; 4,9: Class Based [Design
onl
Q.28 Explain class based modeling with suitable example.
ES [SPPU : April-16, In Sem, Marks 4, May-16, End Sem, Marks 7]
OR Explain object oriented view of component level design with suitable
example, B® [SPPU : Dec.-22, Marks 6]
Ans. : * Component is Tepresented as a part of architectural model. It collects
the information about the system as a part of analysis model.
* If object oriented software engineering approach is adopted then the
component level design will emphasize on elaboration of analysis classes
and refinement of infrastructure classes.
ccm
A Guide for Engineering SudentsSoftware Engineering 4-20 Design Engineering
Components :
Components are nothing but the physical packaging of the logical
elements such as classes, interfaces and collaborations.
employee
designation.exe
:
\\ <>
node
<> 7
Address
S,
Department
Components
Fig. Q.27.2 Nodes and components
Connections :
* The association is the most common relationship used by the nodes
among themselves. The association is actually a physical telationship such
as Ethernet connection, shared bus or RS -232 cables.
« For distant processors the indirect connections such as satellite
communication can also be used.
SS rs
A Guide for Engineering Students
_—Software Engineering 4-22 Design Engineering
* The detailed description of attributes, operations and interfaces of these
infrastructure classes is required during the system building.
For example : "Consider an ATM System in which the customer with an
ATM card can establish session with the system. First of all he inserts the
card into the system and enters the PIN. The console of the system reads the
card and authenticates the customer. The system has console containing
display and keyboard.
The session with the system can be accomplished by the transaction. Using
the withdraw! transaction the customer can get the requested amount through
cash dispenser. .
In above problem statement underlined words denote objects of the system.
Hence -
1) ATM system is controller object.
2) Individual components can be
© Card reader
« Console
« Cash dispenser
3) The initiating object is customer.
4) The controlling objects are
© Session
¢ Transaction
Various objects can then be as shown below.
ATM System
int id
Char — Bankname[20]
Re
Char — BankAdd[20]
HH
int State
int Switch _ON
Di Ilj re Engineerin, 4-23
wi ee Design Engineerin,
int Switch_OFF
int Customer_State
_ A aA@_
run () |
Switchon ()
pC
Switchoff ()
getID () |
fp
getplace () |
Startup_system ()
Shutdown_system () |
Card reader
‘Cash dispenser
int money
enter_PIN()
‘Check_initial_amt ()
select choice ()
dispense_amp ()rea
Software Engineering 4-26 Design Engineering
Q.29 Explain the guidelines of component level design.
- WH [SPPU : Dec.-17, End Sem, Dec.=18, End Sem, Marks 5,
June 22, Marks 9, Dec.-22, Marks 6)
onents are the part of architectural model. The
nts. The
Ans. : © Components : Comp:
naming conventions should be established for componel
component names should be specified from the problem domain. These
names should be meaningful.
« Interfaces ; Interfaces serve important role in
collaboration. The interface should be drawn as circle with a solid line
connecting it to another element. This indicates that the element to which
it is connected offers the interface. The interface should flow from left
tant interfaces must be drawn.
ommunication and
side of component. Only impor
« Dependencies and interfaces : The dependencies must be shown from
left to right. The inheritance should be shown from bottom to top ie. from
se class. The component interdependencies should be
|
;
I
derived to ba
represented via interfaces.
nr
i
\ 4.10 : Conduction Component Level Design
Q.30 Enlist the steps that are applied for component level design.
Ans. : Following is a set of steps that are applied for component level
design -
1. Identify all the design classes from the problem domain.
2. Identify all the design classes from the infrastructure domain.
3. Detail out all the design classes which are not the reusable components.
aan RRR TEE
a. When components communicate or collaborate then represent their
communication using messages.
b. Identify interfaces for each component.
c. Define the attributes of the classes by specifying the data types and
deciding the data structures.
d. Specify all the operations by describing the processing flow within
each operation.
A Guide for Engineering Students4-25
ware Engineering Design Engineering
fy the databases and files and identify the Classes that are involved
soft!
4, Speci
in handling them
pescribe the behavioural representation for the class,
Design the deployment diagram fro providing additional implementation.
Factor the component level design.
Panay
Find out alternative design solutions as well.
jaa : Component Level Design for Web Apps
ncentnrnin
Q.31 Write short note on - Functional design at the component level,
‘Ans. ¢ Modern web applications provide various useful functionalities
such as :
i) Processing of contents and navigation in dynamic fashion,
ii) Performing computations or data processing operations dynamically.
iii) Efficient query processing and access to database.
iv) Establishing data interfaces with external corporate systems.
« Toachieve these functionalities, it is necessary to design and construct the
functional components of web applications.
« The Web contents and above mentioned functionalities are combined to
create functional architecture.
+ A functional architecture is a representation of the functional domain of
the WebApplications and describes the key functional components in the
WebApplications and how these components interact with each other.
cla a ee Uenih sca tt e- BP 001 4)
i
/
erent
1
12 is Software Architecture |
Q.32 Explain software architecture as a concept of softtare design.
B®} [SPPU : May~12, Marks 4]
OR What do you mean by software architecture ? Explain with suitable
example, §@ [SPPU : April-16, In Sem, Marks 4]
mr ae
‘A Guide for Engineering Studen’s
You might also like
SEN Winter 2014,15,16,17,18,19
SEN Winter 2014,15,16,17,18,19
210 pages