For Total max Marks – 150 {120 + Int.30 (24 Mid + 6 Assign)} / 200 {160 + Int.
40 (32
Mid +8 Assign)}
GEETANJALI INSTITUTE OF TECHNICAL STUDIES, UDAIPUR
Ist MODEL PAPER(2) 2018-19
B.Tech II Year, III Semester
Sub: Software Engineering (Code :3CS4-07)
Time: 3 Hr Max Marks: 120
Q. Question M CO
No a
. r
k
PART-A (Compulsory)
Q. Can you differentiate computer software and computer program? 2 CO234-07.1
1 Software- the programs and other operating information used by a computer. Software
(a) can be made up of more than one program. All-encompassing term that is often used in
contrast to hardware (the tangible parts of a computer)
Application- A program or group of programs that is designed for the end user.
Application software (an application) is a set of computer programs designed to permit
the user to perform a group of coordinated functions, tasks, or activities. Application
software cannot run on itself but is dependent on system software to execute.
Program- A set of instructions telling a computer what to do.
"All applications are programs, but a program is not necessarily an application. For
example, there are always lots of programs running on the background of an operating
system, but since they weren't developed for the end-user, they are not applications. On
the other hand, Windows Media Player and Firefox, for example, are applications.
They have a Graphical User Interface
(b) Draw Phases software process or Software Development Life Cycle 2 CO234-07.1
SDLC?
(c ) What are software project estimation techniques available? 2 CO234-07.2
• Decomposition technique CountingLinesofCodeandFunctionPoints
• Empirical technique PutnamandCOCOMO.
(d What does software project manager do? 2 CO234-07.2
)
Roles of a Project Manager
Leader
A project manager must lead his team towards success. He should
provide them direction and make them understand what is expected of
them.
Liaison
The project manager is a link between his clients, his team and his own
supervisors. He must coordinate and transfer all the relevant information
from the clients to his team and report to the upper management.
Mentor
He must be there to guide his team at every step and ensure that the team
has cohesion. He provides advice to his team wherever they need it and
points them in the right direction.
Responsibilities of a Project Manager
Planning
In order for a project to be successful and completed within a specified
time the project manager for a software company must plan effectively.
This also includes:
Scope: The project manager must clearly define the scope of the project
and answer questions like, who is the customer? What need will the
software satisfy? How will it be beneficial to others? What are the
operational requirements for the project?
Activity Schedules: Making activity schedules and planning out the
activities according o the time frame is extremely important. He must
first list out the jobs to be done and then allot specific jobs to team
members. For each job there are different tasks to be accomplished
which must be clearly outlined. Identifying and specifying the critical
activities of the project and then equally delegating the roles to each
member of the team.
Gantt Chart: Once the activities and their different tasks have been
outlined, he must list all the activities in a Gantt chart and allot time
frames for their completion. This always helps in deciding deadlines for
the various activities and also in refining the project plan as it moves
along.
Potential Risks: He must plan for any hindrances that might occur
during the course of the project. Risk management is an integral part of
the project and ensures the presence of a backup plan. Some of the
potential risks could be:
• Design variations
• Variations by the client
(e) Describe the finite State Machine. 2 CO234-07.3
finite-state machine (FSM) or finite-state automaton (FSA, plural:
automata), finite automaton, or simply a state machine, is a mathematical
model of computation. It is an abstract machine that can be in exactly one of a
finite number of states at any given time. The FSM can change from one state
to another in response to some external inputs; the change from one state to
another is called a transition. An FSM is defined by a list of its states, its initial
state, and the conditions for each transition. Finite state machines are of two
types - deterministic finite state machines and non-deterministic finite state
(f) Define the Requirement analysis principle in short. 2 CO234-07.3
1. The information Domain
a) Information content
b) Information
c) Information Structure
2. Functional Model
3. Behavioural Model
4. Partitioning
5. Essential and Implementation views
(g) Elaborate Characteristic of good design. 2 CO234-07.4
1. Considers the Sophistication of the Team that Will Implement It
2. Uniformly Distributes Responsibility and Intelligence
3. Is Expressed in a Precise Design Language
4. Selects Appropriate Implementation Mechanisms
5. Is Robustly Documented
6. Eliminates Duplication
7. Is Internally Consistent and Unsurprising
8. Exhibits Maximum Cohesion and Minimum Coupling
9. Is as Simple as Current and Foreseeable Constraints will Allow
10. Provides the Necessary Functionality
(h Give the Name of Design Fundamental. 2 CO234-07.4
)
1. Decomposition and Modularity
2. Abstraction
3. Stepwise Refinement
4. Software Architecture
5. Control Hierarchy
6. Data Structure
7. Software Procedure
8. Structural Partitioning
9. Information Hiding
(i) Analysis the Object Oriented design concepts. 2 CO234-07.5
1. Object, Operation and Message
2. Design Issues
• By Bertrand Meyer
• Decomposability
• Compos ability
• Understand ability
• Continuity
• Protection
3. Classes, Instances and Inheritance
4. Object Description
(j) Define OOD Methods. 2 CO234-07.5
In this method we take a slightly different view of systems development from what we
have examined before. In the previous section we tended to view our system from a
functional or process-based viewpoint, and related this to the data structure. While this
approach does produce well-designed, working systems, the current opinion among
many practitioners is that the resulting systems tend to be rigid and make it difficult to
respond quickly to changes in user requirements.
Unlike its two predecessors, the object-oriented approach combines data and processes
(called methods) into single entities called objects. Objects usually correspond to the
real things a system deals with, such as customers, suppliers, contracts, and invoices.
Object-oriented models are able to thoroughly represent complex relationships and to
represent data and data processing with a reliable notation, which allows an easier mix
of analysis and design in a growth process. The aim of the Object-Oriented approach is
to make system elements more modular, thus improving system quality and the
efficiency of systems analysis and design.
(g)
PART-B (Attempt only 5 out of 7)
Q. Describe the Incremental Model and Merit and Demerit of it. 8 CO234-07.1
2
In incremental model the whole requirement is divided into various builds.
Mul ple development cycles take place here, making the life cycle a “mul -
waterfall” cycle. Cycles are divided up into smaller, more easily managed
modules. Incremental model is a type of so ware development model like V-
model, Agile model etc.
n this model, each module passes through the requirements, design,
implementa on and tes ng phases. A working version of so ware is
produced during the rst module, so you have working so ware early on
during the so ware life cycle. Each subsequent release of the module adds
func on to the previous release. The process con nues ll the complete
system is achieved. Ex.
In the diagram above when we work incrementally we are adding piece by
piece but expect that each piece is fully nished. Thus keep on adding the
pieces un l it’s complete. As in the image above a person has thought of the
applica on.
Then he started building it and in the first iteration the first module of
the application or product is totally ready and can be demoed to the
customers.
Likewise in the second iteration the other module is ready and
integrated with the first module. Similarly, in the third iteration the
whole product is ready and integrated. Hence, the product got ready
step by step.
Diagram of Incremental model:
Advantages of Incremental model:
• Generates working software quickly and early during the
software life cycle.
• This model is more flexible – less costly to change scope and
requirements.
ti
ti
ti
ti
ti
ft
fi
ti
fi
ft
ti
ti
ft
ft
ti
Q. Compute the function point value for a project with the following 8 CO234-07.2
3
information domain characteristics
Here Number of user input=32, Output=60,Inquires=24,
Files=8,Interface =2
Assuming the weighting factor values are average. The various
complexity adjustment values are average
Q Explain the Softwarae protoyping and Specification 8 CO234-07.3
4.
Prototyping
Prototyping is building user interface without adding detail
functionality for user to interpret the features of intended software
product. It helps giving better idea of requirements. If there is no
software installed at client’s end for developer’s reference and the
client is not aware of its own requirements, the developer creates a
prototype based on initially mentioned requirements. The prototype is
shown to the client and the feedback is noted. The client feedback
serves as an input for requirement gathering.
1. Aprototyping Scenerio(Following Step Should Follow)
Fig Use Prototype for Requirement
2. Approaches of Prototyping
• Thowaway approach
• Evolutionary approach
3. The Cost of Potyping
4. Prototying Methods and Tools
• Fourth Gerneration Techniques
• Reusable Software Components
• Foemal Specification and Protyping Environments
Q Describe effective modular design in brief. (Cohesion& Coupling). 8 CO234-07.4
5.
Coupling
Coupling is a measure that defines the level of inter-dependability
among modules of a program. It tells at what level the modules
interfere and interact with each other. The lower the coupling, the
better the program.
There are five levels of coupling, namely -
• Content coupling - When a module can directly access or modify or
refer to the content of another module, it is called content level
coupling.
• Common coupling- When mul ple modules have read and write
access to some global data, it is called common or global coupling.
• Control coupling- Two modules are called control-coupled if one of
them decides the func on of the other module or changes its ow of
execu on.
• Stamp coupling- When mul ple modules share common data
structure and work on di erent part of it, it is called stamp coupling.
• Data coupling- Data coupling is when two modules interact with
each other by means of passing data (as parameter). If a module
passes data structure as parameter, then the receiving module
should use all its components.
Cohesion
■ Definition
The degree to which all elements of a component are
directed towards a single task.
The degree to which all elements directed towards a
task are contained in a single component.
The degree to which all responsibilities of a single class
are related.
■ Internal glue with which component is constructed
■ All elements of component are directed toward and essential for
performing the same task.
Functional
Sequential
Communicational
Procedural
ti
ti
ff
ti
ti
fl
Q Describe the Object Modularization 8 CO234-07.5
6.
Object-oriented programming (OOP) is compatible with the modular programming
concept to a large extent. Modular programming enables multiple programmers to
divide up the work and debug pieces of the program independently.
Modules in modular programming enforce logical boundaries between components
and improve maintainability. They are incorporated through interfaces. They are
designed in such a way as to minimize dependencies between different modules.
Teams can develop modules separately and do not require knowledge of all modules
in the system.
Each and every modular application has a version number associated with it. This
provides developers flexibility in module maintenance. If any changes have to be
applied to a module, only the affected subroutines have to be changed. This makes
the program easier to read and understand.
Modular programming has a main module and many auxiliary modules. The main
module is compiled as an executable (EXE), which calls the auxiliary module
functions. Auxiliary modules exist as separate executable files, which load when the
main EXE runs. Each module has a unique name assigned in the PROGRAM
statement. Function names across modules should be unique for easy access if
functions used by the main module must be exported.
Languages that support the module concept are IBM Assembler, COBOL, RPG,
FORTRAN, Morpho, Zonnon and Erlang, among others.
The benefits of using modular programming include:
• Less code has to be written.
• A single procedure can be developed for reuse, eliminating the need to
retype the code many times.
• Programs can be designed more easily because a small team deals with only
a small part of the entire code.
• Modular programming allows many programmers to collaborate on the same
application.
• The code is stored across multiple files.
• Code is short, simple and easy to understand.
• Errors can easily be identified, as they are localized to a subroutine or
function.
• The same code can be used in many applications.
Q Explain formal requirment specification 8 CO234-07.1
7.
Formal technique
A formal technique is a mathematical method to specify a hardware and/or software
system, verify whether a specification is realizable, verify that an implementation
satisfies its specification, prove properties of a system without necessarily running
the system, etc. The mathematical basis of a formal method is provided by the
specification language.
Formal specification language
A formal specification language consists of two sets syn and sem, and a relation sat
between them. The set syn is called the syntactic domain, the set sem is called the
semantic domain, and the relation sat is called the satisfaction relation. For a given
specification syn, and model of the system sem, if sat (syn, sem), as shown in fig. 3.6,
then syn is said to be the specification of sem, and sem is said to be the specificand of
syn.
Syntactic Domains
The syntactic domain of a formal specification language consists of an alphabet of
symbols and set of formation rules to construct well-formed formulas from the
alphabet. The well-formed formulas are used to specify a system.
Semantic Domains
Formal techniques can have considerably different semantic domains. Abstract data
type specification languages are used to specify algebras, theories, and programs.
Programming languages are used to specify functions from input to output values.
Concurrent and distributed system specification languages are used to specify state
sequences, event sequences, state-transition sequences, synchronization trees, partial
orders, state machines, etc.
Satisfaction Relation
Given the model of a system, it is important to determine whether an element of the
semantic domain satisfies the specifications. This satisfaction is determined by using
a homomorphism known as semantic abstraction function. The semantic abstraction
function maps the elements of the semantic domain into equivalent classes. There can
be different specifications describing different aspects of a system model, possibly
using different specification languages. Some of these specifications describe the
Q Assume that the size of an organic type software product has been 8 CO234-07.2
8.
estimated to be 32,000 lines of source code. Assume that the
average salary of software engineers be Rs. 15,000/- per month.
Determine the effort required to develop the software product and
the nominal development time.
Solution: As per the basic COCOMO estimation formula for organic
software:
Effort = 2.4 * (32)1.05 = 91 PM
Nominal development time = 2.5 * (91)0.38 = 14 months
Cost required to develop the product = 14 * 15,000
PART-C (Attempt only 4 out of 5)
Q. Explain RAD Model with neat and clean diagram. Give the 15 CO234-07.1
6 advantages and Disadvantage.
AD model is Rapid Application Development model. It is a type of incremental
model. In RAD model the components or functions are developed in parallel as if
they were mini projects. The developments are time boxed, delivered and then
assembled into a working prototype.
This can quickly give the customer something to see and use and to provide
feedback regarding the delivery and their requirements.
Diagram of RAD-Model:
The phases in the rapid application development (RAD) model are:
Business modeling: The information flow is identified between various business
functions.
Data modeling: Information gathered from business modeling is used to define
data objects that are needed for the business.
Process modeling: Data objects defined in data modeling are converted to
achieve the business information flow to achieve some specific business objective.
Description are identified and created for CRUD of data objects.
Application generation: Automated tools are used to convert process models into
code and the actual system.
Testing and turnover: Test new components and all the interfaces.
Advantages of the RAD model:
• Reduced development time.
• Increases reusability of components
• Quick initial reviews occur
• Encourages customer feedback
• Integration from very beginning solves a lot of integration issues.
Disadvantages of RAD model:
• Depends on strong team and individual performances for identifying
business requirements.
Q. Explain the Risk Identification, Projection, Assessment, 15 CO234-07.2
7
Management and Monitoring.
Description
Risk is the possibility of suffering loss. In a development project, the loss
describes the impact to the project which could be in the form of diminished
quality of the end product, increased costs, delayed completion, or failure. Risk
Management is a software engineering practice with processes, methods, and tools
for managing risks in a project. It provides a disciplined environment for proactive
decision-making to:
• assess continuously what can go wrong (risks identification and
assessment).
• determine what risks are important to deal with (risk priorotization).
• implement strategies to deal with those risk (risk resolution).
Dr. Barry Boehm in [2] describes 6 essential activities for risk management,
classified as risk assessment and control:
• Risk Assessment
o Risk Identification - produces lists of the project-specific risk
items likely to compromise a project's success.
o Risk Analysis - assesses the loss probability and loss magnitude
for each identified item, and it assesses compound risks in risk-
item interactions.
o Risk Priorotization - produces a ranked ordering of the risk
items identified and analyzed.
• Risk Control
o Risk Management Planning - helps prepare to address each risk
item, including the coordination of the individual risk-item
plans with each other and with the overall project plan.
o Risk Resolution - produces a situation in which risk items are
eliminated or otherwise resolved.
o Risk Monitoring- involves tracking the project's progress toward
resolving its risk items and taking corrective action where
appropriate.
Frequent and recurring implementation of the six activities is required for the
success of the project. A set of risk management steps have been provided below:
Define risk management procedure & tools
The first step in developing the Risk Management Plan is to define the procedure
you will follow to identify, analyze and prioritize risks.
Create initial risk list
Before you decide upon your risk management strategies, it is a good to anticipate
the kinds of risk you will need to deal with. Early in the Inception phase, create an
initial list of risks, and use these to guide you. You could use the "Risk Checklist"
provided below to create the initial list of risks.
Assign risk management team
Decide which project team members will be responsible for managing the projects
risks. It is important for this team to be representative of both technical and
managerial functions.
Decide strategies for managing top 10 risks
For each risk on the Risk List, the risk management team should decide upon the
approach that will be used to keep the risk in check, and how to remedy the
situation if the risk should occur (a contingency plan).
Define risk indicators for top 10 risks
For each risk in the risk list, identify a measurable condition that, if it should
occur, tells you that the risk is about to become reality. These conditions are the
risk indicators. The project manager will monitor these risk indicators throughout
Q. Explain Process specification behavioural modelling 15 CO234-07.3
8
The Process Speci cation
The Process Specification (PSPEC) is used to describe all
flow model processes that appear at the final level of
refinement. It is a “mini” specification for each transform at
the lowest refined of a DFD.
DFDs: A Look Ahead
Control Flow Diagrams
The diagram represents “events” and the processes that manage these events.
An “event” is a Boolean condition that can be ascertained by:
• Listing all sensors that are "read" by the software.
• Listing all interrupt conditions.
• Listing all "switches" that are actuated by an operator.
• Listing all data conditions.
• Recalling the noun/verb parse that was applied to the processing narrative,
review all "control items" as possible CSPEC inputs/outputs.
The Control Model
• The control flow diagram is "superimposed" on the DFD and shows events
that control the processes noted in the DFD.
• Control flows—events and control items—are noted by dashed arrows.
fi
Q. Explain the Data Procedural design 15 CO234-07.4
7 Component-level design, also called procedural design, occurs after data,
architectural, and interface designs have been established
What is it? Data, architectural, and interface design must be translated into
operational software. To accomplish this, the design must be represented at a level
of abstraction that is close to code.
Component-level design establishes :-
1. The algorithmic detail required to manipulate datastructures,
2. Effect communication between software components via their interfaces,
and
3. Implement the processing algorithms allocated to eachcomponent.
Who does it? A software engineer performs component-level design.
Why is it important? You have to be able to determine whether the program will
work before you build it. The component-level design represents the software in a
way that allows you to review the details of the design for correctness and
consistency with earlier design representations (i.e., the data, architectural, and
interface designs). It provides a means for assessing whether data structures,
interfaces, and algorithms will work.
What are the steps? Design representations of data, architecture, and interfaces
form the foundation for component-level design. The processing narrative for
each component is translated into a proceduraldesign model using a set of
structured programming constructs.Graphical, tabular, or text-based notation is
used to represent the design
approach is to represent the procedural design using some intermediate
(e.g.,graphical, tabular, or text-based) representation that can be translated easily
into source code
16.1 STRUCTURED PROGRAMMING
In the late 1960s, Dijkstra and others proposed the use of a set of constrained
logical constructs from which any program could be formed
The constructs are sequence, condition, and repetition. Sequence implements
processing steps that are essential in the specification of any algorithm. Condition
provides the facility for selected processing based on some logical occurrence,
and repetition allows for looping. These three constructs are fundamental to
structuredprogramming—an important component-level design technique.
The structured constructs were proposed to limit the procedural design of software
to a small number of predictable operations. Complexity metrics indicate that the
use of the structured constructs reduces program complexity and thereby enhances
readability, testability, and maintainability.logical chunks that allow a reader to
recognize procedural elements of a module, rather than reading the design or code
line by lineAny program, regardless of application area or technical complexity,
can be designed and implemented using only the three structured constructs
16.1.1 Graphical Design Notation
Figure 16.1 illustrates three structured construct
Q. Design the class, use case and activity diagram of Library 15 CO234-07.5
8 Management system.
Class diagram of Library Management
Use Case Diagram of Library Management