1. Software Engineering(CMP-3310)
Short Questions
i) Define Stakeholders?
Ans: In software engineering, stakeholder can be “ any one who can be benefits in a direct or indirect
way from the system which is being developed”. For example business manager,marketing people,
software engineer, support engineer etc.
ii) What arethe drawbacks of protypingmodel?
Ans: In prototyping model, software quality suffers becausecus tomer cries foul and demand “a few
fixes” to make the prototype a workingmodel and developers often make implementation in order
to get a prototype working quickly withoutconsideringother factors in mind likeOS, programming
languageetc.
iii) Differentiate between incremental and evolutionary development?
Ans: The increment process model delivers the software system in small butusablepieces and each
piece builds on pieces already delivered and on the other hand evolutionary development model is
iterative which produces an increasingly morecomplete version of the software with each iteration
iv) Why formal methods are not widely used?
Ans: Formal methods arenot widely used because they extent the development cycle, requiredifficult
mathematics, that inadequatetools existand they are incompatiblewith other software packages.
v) What is risk analysis?
Ans: A possibility of sufferingfrom loss in softwaredevelopment process is called as softwarerisk.Loss
can be anything,increasein software cost, development of poor quality softwareetc. software risk
existbecause future is uncertain and there aremany known and unknown things that cannotbe
incorporated in the project plan.
vi) Discuss howinformation systems arelinked to the business objectives of an organization?
Ans: Information systems play an integral rolein in every industry , helpingcompanies to improve
Business processes,achievecostefficiencies,deriverevenue growth, and maintain a competitive
Advantage in the market place.
vii) Write the steps that areinvolvein process improvements?
Ans: 1) Process measurement, which includes the attributes of the current process.
2) Process analysis,in which currentprocess is assessed and bottlenecks, weaknesses are identified.
3) Process change, in which changes to the process havebeen identified.
viii) Write the name of requirements elicitation techniques?
Ans: Requirements elicitation techniques involves brainstorming,document analysis,focus groups,
Interface analysis,interviews, observations,process modelingand prototyping.
ix) How are architecturedesign can be represented?
Ans: Software architecturedesign enables software to,
a) Analyze the effectiveness of design in meeting its stated requirement.
b) Consider architectural alternatives ata stage when makingdesign changes is still relatively easy.
c) Reduce the risks associated with the construction of the software.
2. x) Listout the different elements of design model?
Ans: The design model has four elements,
1) Data
2) Architecture
3) Components
4) Interface
xi) Differentiate between ad-hoc & acceptancetesting?
Ans: Ad-hoc testing means learn the application and then test itand tester should havegood knowledge
before testing the software and on the other hand acceptancetesting is a testing technique which
is performed to determine whether or not the software system met the requirements specification.
xii) What aredesign patterns? explain with the suitableexamples?
Ans: In software engineering, a design pattern is a general repeatable solution to a commonly occurring
problem in software design. It’s not a finished design that can be transformed directly to code. It is
a description or template for how to solvea problem for many different situations.Examples of
design patterns are creational patterns,structural patterns and behavioral patterns.
xiii) What is the benefit of modular design?
Ans: In modular design,software can be divideinto separatenamed and addressiblecomponents which
are integrated to satisfy problemrequirement. We modularizea design so that development can be
easily planned and changes in the software design can easily beaccommodated. Testing and
debugging can be conducted more efficiently.
xiv) What arethe benefits of information hiding?
Ans: The intent of information hidingis to hidethe details of data structure and procedural processing
behind a module interface. It gives benefits when modifications arerequired duringtesting and
maintenance because data and procedure arehidingfrom other parts of software, unintentional
errors introduced duringmodification areless.
xv) How quality is related to the standards?
Ans: In software development, specified standardsdefinea set of development criteria,If the criteria are
not followed duringsoftware development , lack of quality will almostsurely result.
xvi) How do you monitor risks to the project mitigate them?
Ans: To mitigate the risks to,the management team must make strategy, like
Meet with the current staff to determine causes.
Mitigate those causes that areour under control before project start.
Organizeproject team so that information abouteach development activity is dispersed.
Assign a backup staff member for every critical technologist.
Long Questions
1) Discuss thevarious stages in the systemdevelopment life cycle(SDLC)
applied to information systemdevelopment?
3. Ans: The system development lifecycle(SDLC) is a conceptual model used in project management that
describethe stages involved in an information system development projectfrom an initi al feasibility
study through maintenance of the completed application.
SystemPlanning:
Planningphaseis mostcrucial step in creatinga successful system,duringthis phaseyou decide
exactly what you want to do and problems you aretrying to solve.
SystemAnalysis:
In this phasea feasibility study made for the project to determine whether it’s organizationally,
economically,socially,technologically feasible.Itis very important to maintain a strong
communication level with the clients to make sure you have a clear vision of the finished product
and it’s function.
SystemDesign:
The design phasecomes after a good understandingof customer’s requirements, this phasedefine
elements of a system, the components, the security level, modules,architecture and different
interfaces,type of data that goes through the system.
Implementation & deployment:
It is actual construction phasein which code is written and if the system contains hardwarethen
Implementation phasecontain configuration and finetuningfor the hardware to meet certain
requirements and functions.
In this phasesystem is ready to be installed in customer’s premises and ready to run.
Systemtesting & Integration:
Bringingdifferent components and subsystems together to create a whole integrated system.
Testing is becoming more and more important to ensure customer’s satisfaction and itcan be
performed by real users or a team of specialized personnel.
Systemmaintenance:
In this phaseperiodic maintenanceof the system will be carried outto make sure that the system
won’t become obsolete, this will includereplacingthe old hardwareand continuously evaluating
system’s performance.
2)
a) Write brief note on scope of softwareengineering in different fields?
Ans: Software engineering is a desciplinewhoseaimis the production of fault-free software,
delivered on the time, within the budget that satisfies theuser’s needs. Furthermore the
software must be easy to modify when the user’s needs change. The scope of software
engineering is extremely broad . In general five expects are involved:
Historical aspects
Economical aspects
Maintenance aspects
Requirements, analysisand design aspects
Team development aspects
These five aspects can be categorized in the field of mathematics, Computer science, Economics
, Management and psychology.
4. b) Write a brief note on requirements engineering and type of
requirements?
Ans:Requirement engineering means that requirements of a product are defined, managed and
testing systematically.
Types of requirements
1) User requirements :
Statements in natural languageplus diagrams of the services the system provides and
Its operational constraints.Written for customers.
2) System requirements:
A structured document setting out detailed descriptions of the system’s functions,
services and operational constraints.Defines what should be implemented so, may be
part of contractbetween clientand contractor.
Q:3) Compare and contrastb/w spiralmodel and Incrementalprocess
Model?
Ans: Incremental process model:
Incremental process model delivers softwarein small butusablepieces and each piece is buildson
pieces already delivered. Firstincrement includes basic requirements and a plan of next increment is
prepared in which modificationsand additional features in the firstincrement are take place.
Increment can be planned to manage technical risksand focus more on the delivery of operation
Product with each increment.
while develop a software through this model, user requirements areprioritized and the highest
priority requirements are included in early increments.
Early increments acts as prototype to help elicitrequirements for later increments.
The big advantageof incremental process model is the lower risk of overall projectfailure.
Spiral model:
The spiral model,also known as spiral lifecyclemodel is a systems development lifecycle(SDLC)
model used in information technology(IT) . This model of development combines the features of
prototyping model and waterfall model. The spiral model is favored for large,expansiveand the
complicated projects.Followingsteps are involved in spiral model:
1. The new system requirements are defined.
2. A preliminary design iscreated for the system and firstprototype is created.
3. A second prototype is evolved by evaluatingthe firstprototype in terms of its strengths
weaknesses and its risks.
4. The existingprototype is evaluatingin the same manner as was the previous prototype and
these preceding steps are iterated until the customer satisfied.
Q:4)
a) Compare and contrast refactoring with re-engineering?
Re-factoring:
Refactoring is the process of changingthe software in such a way that it does not alter the external
Behavior of the code yet improves its internal structure. By refactoringsourcecode, we can improve
Its structure, and make itmore efficient, scalable,maintainableor reusablewithout actual changingin
any function of program itself.
5. Re-engineering:
Software re-engineering is the process of software development which is done to improve the
maintainability of a software system. Re-engineering a software system has two key advantages:
As the software is already existing,the risk is lessas compared to develop a new software.
The cost of re-engineering is significantly lessthan developinga new software.
b) Write a brief note on Formal methods?
Formal methods are techniques and tools based on mathematics and formal logic.
Formal methods allowsoftwareengineers to create specifications,usingmathematical notations
That is more complete, more consistentand more unambiguous.The mathematics used in formal
Software engineering relies heavily on the set theory and formal logic.In many safety critical or
Mission critical systems,failurecan havehigh costs.Many safety critical systems cannotbe
Completely tested without endangering the lives of people they are designed to protect.
Use of formal specificationsreduces the number of errors dramatically,which means that the
Customer will encounter few errors when the product is deployed.
Q:5) Write a brief note on the following:
a) Transaction processing
Transaction processingsystems aredesigned to process user’s requests for information
from database. An example of transaction isthecustomer’s request to withdraw money from
bank accountthrough ATM. This involves getting details of the customer’s account, checkingthe
balance,modifyingthe balanceetc.
b) Component based development
It is a branch of software engineering which supports the re-use based approach to defining,
Implementing, and composingloosely coupled independent components into systems.
In other words all processes areplaced into separatecomponents so that all of the data and functions
Insideeach component is semantically related.
c) Extreme Programming
Extreme Programming is softwaredevelopment methodology which is intended to improve
software quality and responsiveness to changingcustomer’s requirements. It is a type of agile
software development, itadvocates “frequent releases”in short development cycles which is intended
to improve productivity and checkpoints atwhich new customer’s requirements can be adopted.
d) CMM
The capability maturity model(CMM) is used to develop and refine an organization’s
software development process.This model describea five level evolutionary path of increasingly
organized, and systematically moremature processes.