Académique Documents
Professionnel Documents
Culture Documents
from
http://www.rajanaryal.com.np/
http://hutrajshrestha.com.np/
Visit site For bsc csit syllabus/old
question/notes/solution
You can follow the site for more notes.
Our Social Links
My Facebook Read my blog Follow me on twitter
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Tribhuvan University
2073
Bachelor Level / Third Year /Six Semester/Science Full Marks: 100
(Software Engineering)
Software Engineering:
Software engineering is an engineering discipline which is concerned with all aspects of
software production
•Software engineers should adopt a systematic and organized approach to their work and use
appropriate tools and techniques depending on the problem to be solved, the development
constraints and the resources available.
Characteristics of Software:
1. Portable: The ability of software to perform same functions across all
environments and platforms, demonstrate its portability.
3. Integrity: Just like medicines have side-effects, in the same way a software may
have a side-effect i.e. it may affect the working of another application. But a
quality software should not have side effects.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
4. Efficiency: This characteristic relates to the way software uses the available
resources. The software should make effective use of the storage space and
execute command as per desired timing requirements.
7. Modularity: Any software is said to made of units and modules which are
independent of each other.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Spiral Model:
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Phases of Spiral Model:
Process is represented as a spiral rather than as a sequence of activities with
backtracking.
●Each loop in the spiral represents a phase in the process.
● No fixed phases such as specification or design - loops in the spiral are chosen
depending on what is required.
● Risks are explicitly assessed and resolved throughout the process.
●A risk-driven software process framework (the spiral model) was proposed by Boehm
(1988).
2) Project monitoring is very easy and effective. Each phase, as well as each loop, requires a review from
concerned people. This makes the model more transparent.
3) Risk management is one of the in-built features of the model, which makes it extra attractive
compared to other models.
4) Changes can be introduced later in the life cycle as well. And coping with these changes isn’t a very
big headache for the project manager.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
5) Project estimates in terms of schedule, cost etc. become more and more realistic as the project
moves forward and loops in spiral get completed.
6) It is suitable for high risk projects, where business needs may be unstable.
It is important to build the correct system correctly and that cannot happen without defining
accurate, precise, and valid requirements. Requirements must be accurate in that they must
capture the actual meaning of customer inputs and not attempt to interpret or embellish those
inputs. Requirements must be precise in that if a customer says they want a certain detail, say
temperature displayed in degrees Fahrenheit, it is important to deliver that detail. Don't
assume that degrees in Celsius should be just as good. That is not precisely what the customer
wanted. Requirements must be valid. If the customer wants a microwave oven controller
system that is cost-effective but adequate, do not provide a controller system that is leading
edge with functionality beyond what was desired and then expect to charge the customer for
budget overruns. All of the requirements that led to the "gold-plating" were invalid. Building an
incorrect system correctly is still total failure.
The end result of the requirements engineering activities is a populated System Requirements
Specification (or SRS) and a completed System Specification.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
4. Explain the concept of incremental model with example.
Ans:
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
5. What is the need of feasibility study? Explain the various type of
feasibility study with example.
Ans:
Importance of feasibility study:
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
converting the ideas into working systems. Technical feasibility also involves
evaluation of the hardware, software, and other technology requirements of the
proposed system. As an exaggerated example, an organization wouldn’t want to
try to put Star Trek’s transporters in their building—currently, this project is not
technically feasible.
2. Economic Feasibility - this assessment typically involves a cost/ benefits
analysis of the project, helping organizations determine the viability, cost, and
benefits associated with a project before financial resources are allocated. It also
serves as an independent project assessment and enhances project credibility —
helping decision makers determine the positive economic benefits to the
organization that the proposed project will provide.
3. Legal Feasibility - this assessment investigates whether any aspect of the
proposed project conflicts with legal requirements like zoning laws, data
protection acts, or social media laws. Let’s say an organization wants to construct
a new office building in a specific location. A feasibility study might reveal the
organization’s ideal location isn’t zoned for that type of business. That
organization has just saved considerable time and effort by learning that their
project was not feasible right from the beginning.
4. Operational Feasibility - this assessment involves undertaking a study to
analyze and determine whether—and how well—the organization’s needs can be
met by completing the project. Operational feasibility studies also analyze how a
project plan satisfies the requirements identified in the requirements analysis
phase of system development.
5. Scheduling Feasibility - this assessment is the most important for project
success; after all, a project will fail if not completed on time. In scheduling
feasibility, an organization estimates how much time the project will take to
complete.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
7. What is software requirements
specification (SRS)? Mention the principle and
characteristics of software requirements
specification (SRS).
Ans:
A software requirements specification (SRS) is a detailed description of
a software system to be developed with its functional and non-functional
requirements. The SRS is developed based the agreement between
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
customer and contractors. It may include the use cases of how user is going
to interact with software system. The software requirement specification
document consistent of all necessary requirements required for project
development. To develop the software system we should have clear
understanding of Software system. To achieve this we need to continuous
communication with customers to gather all requirements.
A good SRS defines the how Software System will interact with all internal
modules, hardware, communication with other programs and human user
interactions with wide range of real life scenarios. Using the Software
requirements specification (SRS) document on QA lead, managers creates
test plan. It is very important that testers must be cleared with every detail
specified in this document in order to avoid faults in test cases and its
expected results.
Complete
Consistent
Feasible
Modifiable
Unambiguous
Testable
Complete
It means that all the required information to implement (read Code) the requirement. There is no
need to assume anything in order to implement the same. One of the important aspects of
completeness is to also have measuring units, if applicable.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Consistent
Consistency is an important aspect of requirements. It means that all inputs to any process, must
be processed similarly. It should not happen that processes produce different outputs for inputs
coming from different sources.
Feasible
This is one of the crucial part of requirements capturing. All the requirements included in the
SRS must be feasible to implement.
Modifiable
Every SRS document must be modifiable. In the modern software projects, requirements are
never static and don’t stop coming after the SRS document is signed off. We can’t expect the
customers to stop altering the requirements or adding new requirements as we also need to look
at business needs.
Unambiguous
can only be interpreted in one way, it means that the requirement is unambiguous. All subjective
words or statements must be eliminated from the requirements.
Testable
A testable requirement can be defined as a requirement, which can be tested and validated using
any of the following methods:
Inspection
Walkthrough
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Demonstration
Testing
There are various names for the same thing. Some call it software inspection, which
also could extend to the design and its documentation, some call it code inspection
which relates more to the source code. A third name would be Fagan Inspection, called
after the person who invented this quality assurance and testing method.
Code inspections are a highly efficient test method which cannot be substituted by any
other test methods. It is time consuming but according to statistics it will find up to 80%
of the contained faults, if done properly. However it all depends on the methods and
checks applied and on the diligence of the inspectors. It must not be confused with the
so called "code review" or "walk through" which is usually done in a single meeting
lasting for a couple of hours. A proper code inspection may take several days and
needs the help of tools to browse the symbols in order to find the places where they are
used. Proper inspections can be applied for almost all work products in the software life
cycle. At the first glance they may look very time consuming. But statistical evaluations
have shown that over the whole life cycle of the software development they even save
resources and thus money and improve the quality of the product.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Most people are not aware that the manual static testing methods i.e. inspection, review
and walk through are defined in the "IEEE Standard for Software Reviews". This is the IEEE
1028-1997 standard. I want to give a short overview on the main definitions in this standard,
however I will not discuss the "Management Review" which is in the widest sense a check of a
project's performance and the related documents. I will also omit a discussion of the Audits
described in the standard, which a more related to having external checks on work products and
processes. I will focus on the review techniques for technical work products as they are typically
used within a company.
9. What is Software quality assurance (SQA)? What are the various quality
concepts of SQA?
Software quality assurance (SQA) is a process that ensures that developed software meets and
complies with defined or standardized quality specifications. SQA is an ongoing process within
the software development life cycle (SDLC) that routinely checks the developed software to
ensure it meets desired quality measures.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
9. What is software design? Explain the various principle
and design concepts of software design
Ans:
Software design is the process by which an agent creates a specification of a software artifact,
intended to accomplish goals, using a set of primitive components and subject to constraints.
Software design may refer to either "all the activity involved in conceptualizing, framing,
implementing, commissioning, and ultimately modifying complex systems" or "the activity
following requirements specification and before programming, as in a stylized software engineering
process.
Verification Validation
Are we building the system right? Are we building the right system?
The objective of Verification is to make sure The objective of Validation is to make sure
that the product being develop is as per the that the product actually meet up the user’s
requirements and design specifications. requirements, and check whether the
specifications were correct in the first place.
Verification process explains whether the Validation process describes whether the
outputs are according to inputs or not. software is accepted by the user or not.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Verification is carried out before the Validation activity is carried out just after
Validation. the Verification.
a.) DFD
A data flow diagram (DFD) maps out the flow of information for any process or system.
It uses defined symbols like rectangles, circles and arrows, plus short text labels, to
show data inputs, outputs, storage points and the routes between each
destination. Data flowcharts can range from simple, even hand-drawn process
overviews, to in-depth, multi-level DFDs that dig progressively deeper into how the data
is handled. They can be used to analyze an existing system or model a new one. Like
all the best diagrams and charts, a DFD can often visually “say” things that would be
hard to explain in words, and they work for both technical and nontechnical audiences,
from developer to CEO. That‟s why DFDs remain so popular after all these years. While
they work well for data flow software and systems, they are less applicable nowadays to
visualizing interactive, real-time or database-oriented software or systems.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
c.) Estimation technique:
In order to successful software project & proper execution of task, the Estimation
Techniques plays vital role in software development life cycle. The technique which is used
to calculate the time required to accomplish a particular task is called Estimation
Techniques. To estimate a task different effective Software Estimation Techniques can
be used to get the better estimation.
There are different Software Testing Estimation Techniques which can be used for
estimating a task.
1) Delphi Technique
2) Work Breakdown Structure (WBS)
3) Three Point Estimation
4) Functional Point Method
Tribhuvan University
2071(II)
Bachelor Level / Third Year /Six Semester/Science Full Marks: 100
(Software Engineering)
1.) What are the different phases in software development life cycle?
Explain.
Ans: There are various software development approaches defined and designed which are
used/employed during development process of software, these approaches are also referred as
“Software Development Process Models” (e.g. Waterfall model, incremental model, V-
model, iterative model, RAD model, Agile model, Spiral model, Prototype model etc.). Each
process model follows a particular life cycle in order to ensure success in process of software
development.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
There are following six phases in every Software development life cycle model:
1) Requirement gathering and analysis: Business requirements are gathered in this phase.
This phase is the main focus of the project managers and stake holders. Meetings with managers,
stake holders and users are held in order to determine the requirements like; Who is going to use
the system? How will they use the system? What data should be input into the system? What
data should be output by the system? These are general questions that get answered during a
requirements gathering phase. After requirement gathering these requirements are analyzed for
their validity and the possibility of incorporating the requirements in the system to be
development is also studied.
Finally, a Requirement Specification document is created which serves the purpose of guideline
for the next phase of the model. The testing team follows the Software Testing Life Cycle and
starts the Test Planning phase after the requirements analysis is completed.
2) Design: In this phase the system and software design is prepared from the requirement
specifications which were studied in the first phase. System Design helps in specifying hardware
and system requirements and also helps in defining overall system architecture. The system
design specifications serve as input for the next phase of the model.
In this phase the testers comes up with the Test strategy, where they mention what to test, how
to test.
4) Testing: After the code is developed it is tested against the requirements to make sure that
the product is actually solving the needs addressed and gathered during the requirements phase.
During this phase all types of functional testing like unit testing, integration testing, system
testing, acceptance testing are done as well as non-functional testing are also done.
5) Deployment: After successful testing the product is delivered / deployed to the customer for
their use.
As soon as the product is given to the customers they will first do the beta testing. If any
changes are required or if any bugs are caught, then they will report it to the engineering team.
Once those changes are made or the bugsare fixed then the final deployment will happen.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
6) Maintenance: Once when the customers starts using the developed system then the actual
problems comes up and needs to be solved from time to time. This process where the care is
taken for the developed product is known as maintenance.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
•Involves checking and review processes and system testing.
•System testing involves executing the system with test cases that are derived from the
specification of the real data to be processed by the system.
Software evolution
Software is inherently flexible and can change.
•As requirements change through changing business circumstances, the software that supports
the business must also evolve and change.
•Although there has been a demarcation between development and evolution (maintenance)
this is increasingly irrelevant as fewer and fewer systems are completely new.
Project Planning:
Project planning is a discipline for stating how to complete a project within a certain
timeframe, usually with defined stages, and with designated resources. One view of
project planning divides the activity into:
Identifying deliverables
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Supporting plans may include those related to: human resources, communication
methods, and risk management.
Computer hardware and software project planning within an enterprise is often done
using a project planning guide that describes the process that the enterprise feels has
been successful in the past.
Project Scheduling:
Project scheduling is a mechanism to communicate what tasks need to get done and
which organizational resources will be allocated to complete those tasks in what
timeframe. A project schedule is a document collecting all the work needed to deliver
the project on time.
But when it comes to creating a project schedule, well, that’s something few have deep
experience with.
What and who is being scheduled, and for what purposes, and where is this scheduling
taking place, anyway?
A project is made up of many tasks, and each task is given a start and end (or due date),
so it can be completed on time. Likewise, people have different schedules, and their
availability and vacation or leave dates need to be documented in order to successfully
plan those tasks.
For example, most tools have task lists, which enable the manager to schedule multiple
tasks, their due dates, sometimes the planned effort against that task, and then assign
that task to a person. The software might also have resource scheduling, basically the
ability to schedule the team’s availability, but also the availability of non-human
resources like machines or buildings or meeting rooms.
Because projects have so many moving parts, and are frequently changing, project
scheduling software automatically updates tasks that are dependent on one another,
when one scheduled task is not completed on time. It also generates automated email
alerts, so team members know when their scheduled tasks are due or overdue, and to let
the manager know when someone’s availability has changed.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
5.) What do you mean by software requirement? Explain the
requirements engineering process with example.
Ans: The software requirements are description of features and
functionalities of the target system. Requirements convey the expectations
of users from the software product. The requirements can be obvious or
hidden, known or unknown, expected or unexpected from client’s point of
view.
Requirement Engineering
The process to gather the software requirements from client, analyze and
document them is known as requirement engineering.
Feasibility Study
Requirement Gathering
Software Requirement Specification
Software Requirement Validation
Feasibility study
When the client approaches the organization for getting the desired product
developed, it comes up with rough idea about what all functions the
software must perform and which all features are expected from the
software.
This feasibility study is focused towards goal of the organization. This study
analyzes whether the software product can be practically materialized in
terms of implementation, contribution of project to organization, cost
constraints and as per values and objectives of the organization. It explores
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
technical aspects of the project and product such as usability,
maintainability, productivity and integration ability.
Requirement Gathering
If the feasibility report is positive towards undertaking the project, next
phase starts with gathering requirements from the user. Analysts and
engineers communicate with the client and end-users to know their ideas
on what the software should provide and which features they want the
software to include.
SRS defines how the intended software will interact with hardware, external
interfaces, speed of operation, response time of system, portability of
software across various platforms, maintainability, speed of recovery after
crashing, Security, Quality, Limitations etc.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
the implementation of systems and software. They are used to describe a system, to
analyze its behavior, and to aid in its design by verifying key properties of interest
through rigorous and effective reasoning tools. These specifications are formal in the
sense that they have a syntax, their semantics fall within one domain, and they are able
to be used to infer useful information.
Objectives
●To explain why formal specification techniques help discover problems in system
requirements
●To describe the use of algebraic techniques for interface specification
●To describe the use of model-based techniques for behavioral specification
Formal methods
● Formal specification is part of a more general collection of techniques that are known
as „formal methods‟
●These are all based on mathematical representation and analysis of software
● Formal methods include
• Formal specification
• Specification analysis and proof
• Transformational development
• Program verification
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Market Conditions - Policies, which changes over the time, such as
taxation and newly introduced constraints like, how to maintain
bookkeeping, may trigger need for modification.
Client Requirements - Over the time, customer may ask for new
features or functions in the software.
Types of maintenance
In a software lifetime, type of maintenance may vary based on its nature. It
may be just a routine maintenance tasks as some bug discovered by some
user or it may be a large event in itself based on maintenance size or
nature. Following are some types of maintenance based on their
characteristics:
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
8.) Explain the clean room software development with example.
Ans:
Cleanroom software engineering is a process for developing high-quality
software with certified reliability. Originally developed by Harlan Mills, the
"cleanroom" name was borrowed from the electronics industry, where clean
rooms help prevent defect during fabrication. In that sense, cleanroom
software engineering focuses on defect prevention, rather than defect
removal, and formal verification of a program's correctness. The Cleanroom
Reference Model provides guidelines for defining development teams and
project roles, most importantly, the distinction between testers and
developers. Having testing and development in the same group is a conflict
of interest, while splitting them into separate groups allows for natural
competition to push the project toward higher quality results.
1. Incremental planning
In this task, the incremental plan is developed.
The functionality of each increment, projected size of the increment and the
cleanroom development schedule is created.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
The care is to be taken that each increment is certified and integrated in
proper time according to the plan.
2. Requirements gathering
Requirement gathering is done using the traditional techniques like analysis,
design, code, test and debug.
A more detailed description of the customer level requirement is developed.
3. Box structure specification
The specification method uses box structure.
Box structure is used to describe the functional specification.
The box structure separate and isolate the behavior, data and procedure in
each increment.
4. Formal design
The cleanroom design is a natural specification by using the black box
structure approach.
The specification is called as state boxes and the component level diagram
called as the clear boxes.
5. Correctness verification
The cleanroom conducts the exact correctness verification activities on the
design and then the code.
Verification starts with the highest level testing box structure and then
moves toward the design detail and code.
The first level of correctness takes place by applying a set of 'correcting
questions'.
More mathematical or formal methods are used for verification if
correctness does not signify that the specification is correct.
6. Code generation, inspection and verification
The box structure specification is represented in a specialized language and
these are translated into the appropriate programming language.
Use the technical reviews for the syntactic correctness of the code.
7. Statistical test planning
Analyzed, planned and designed the projected usages of the software.
The cleanroom activity is organized in parallel with specification, verification
and code generation.
8. Statistical use testing
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
The exhaustive testing of computer software is impossible. It is compulsory
to design limited number of test cases.
Statistical use technique execute a set of tests derived from a statistical
sample in all possible program executions.
These samples are collected from the users from a targeted population.
9. Certification
After the verification, inspection and correctness of all errors, the
increments are certified and ready for integration.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
number. A link is desired between the user and functional requirements as it will certify the testing
prerequisites. The end result is an accountability matrix that will allow you to trace your tests back to
the requirements.
4. GAP ANALYSIS
A review of the functional specifications occurs and a gap analysis is created. The gap analysis is used to
determine risk, or the difference between the desired performance and the existing performance. These
risks should be documented and prioritized. If a gap is identified as a high risk, it becomes important to
ensure that your procedures will mitigate the risk.
5. INSTALLATION PROTOCOL
The installation protocol document outlines how the software should be installed. This would
customarily be provided by your vendor. The document may also include hardware specifications and
installation instructions. Typically, it will include areas to document verification of specifications for the
hardware and software.
6. INSTALLATION REPORT
This document serves as evidence that the software was installed correctly according to the vendor
recommendations and design. If your vendor performed the installation, they will provide you with this
information.
7. TESTING PROTOCOL
The testing protocol document outlines the specific objectives, procedures, data sets, test scenarios,
expected results and acceptance criteria for the system testing process. These protocols should test the
software components your company will utilize. It is not necessary to test every setting available. The
software vendor should have already tested the various setting combinations. The testing protocol
should simply include evidence that a test was performed. Evidence might include screen shots and
report print outs documenting the projected result. This information will be used to generate the testing
report.
8. TESTING REPORT
The testing report is an outline of the testing that has occurred. Typically, it will include an executive
summary of the test execution that addresses adherence to test procedures, acceptability of results, as
well as any unexpected results.
9. SYSTEM RELEASE/GO-LIVE
The system release allows the software to be used in production. By this time, the users have been
trained, data has been entered and business scenarios have been completed. The users can now begin
using the software.
10. VALIDATION COMPLETE
Once the validation is complete, the system must be maintained in a validated state. Maintaining this
state requires that standard operating procedures are in place for addressing problematic concerns and
resolution, change control, record retirement, etc. If changes are required within the system, the
changes should be reviewed and assessed for risk. Necessary changes should be authorized,
documented, tested and approved before implementation occurs.
10.) Explain the security assessment.
Ans:
Security assessment
•Security assessment has something in common with safety assessment.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
•It is intended to demonstrate that the system cannot enter some state (an unsafe or an
insecure state) rather than to demonstrate that the system can do something.
•However, there are differences
–Safety problems are accidental; security problems are deliberate;
–Security problems are more generic - many systems suffer from the same problems; Safety
problems are mostly related to the application domain
CASE is the use of computer-based support in the software development process; a CASE tool is
a computer-based product aimed at supporting one or more software engineering activities
within a software development process; a CASE environment is a collection of CASE tools and
other components together with an integration approach that supports most or all of the
interactions that occur among the environment components, and between the users of the
environment and the environment itself.
b.) Reverse engineering is taking apart an object to see how it works in order to
duplicate or enhance the object. The practice, taken from older industries, is now
frequently used on computer hardware and software. Software reverse engineering
involves reversing a program's machine code (the string of 0s and 1s that are sent to
the logic processor) back into the source code that it was written in, using program
language statements.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Software reverse engineering is done to retrieve the source code of a program because
the source code was lost, to study how the program performs certain operations, to
improve the performance of a program, to fix a bug (correct an error in the program
when the source code is not available), to identify malicious content in a program such
as a virus or to adapt a program written for use with one microprocessor for use with
another.
c.)
Reliability validation involves exercising the program to assess whether or not it has reached
the required level of reliability.
•This cannot normally be included as part of a normal defect testing process because data for
defect testing is (usually) atypical of actual usage data.
•Reliability measurement therefore requires a specially designed data set that replicates the
pattern of inputs to be processed by the system.
Reliability validation activities
•Establish the operational profile for the system.
•Construct test data reflecting the operational profile.
•Test the system and observe the number of failures and the times of these failures.
•Compute the reliability after a statistically significant number of failures have been observed.
Tribhuvan University
2071
Bachelor Level / Third Year /Six Semester/Science Full Marks: 100
(Software Engineering)
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Generic
- developed to be sold to a range of different customers e.g. PC software such as Excel
or Word. In this the organization that develops the software controls the software
specification.
● Bespoke (Customized)
- developed for a single customer according to their specification. For example air traffic
control system. In this the client organization that is buying the software controls the
software specification.
Functional requirements
•Describe functionality or system services
•Depend on the type of software, expected users and the type of system where the software is
used
•Functional user requirements may be high-level statements of what the system should do but
functional system requirements should describe the system services in detail
•The system shall provide appropriate viewers for the user to read documents in the document
store.
•Every order shall be allocated a unique identifier (ORDER_ID) which the user shall be able to
copy to the account’s permanent storage area.
Non-functional requirements
•Define system properties and constraints e.g. reliability, response time and storage
requirements. Constraints are I/O device capability, system representations, etc.
•Process requirements may also be specified mandating a particular CASE system, programming
language or development method
•Non-functional requirements may be more critical than functional requirements. If these are
not met, the system is useless
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
•External requirement
–7.6.5 The system shall not disclose any personal information about customers apart from their
name and reference number to the operators of the system
Process iteration
•System requirements ALWAYS evolve in the course of a project so process iteration where
earlier stages are reworked is always part of the process for large systems.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
•Iteration can be applied to any of the generic process models.
•Two (related) approaches
–Incremental delivery;
–Spiral development.
Incremental delivery
•Rather than deliver the system as a single delivery, the development and delivery is broken
down into increments with each increment delivering part of the required functionality.
•User requirements are prioritized and the highest priority requirements are included in early
increments.
•Once the development of an increment is started, the requirements are frozen though
requirements for later increments can continue to evolve.
Project management is important because it ensures what is being delivered, is right, and will deliver
real value against the business opportunity.
Every client has strategic goals and the projects that we do for them advance those goals. Project
management is important because it ensures there’s rigor in architecting projects properly so that they
fit well within the broader context of our client’s strategic frameworks Good project management
ensures that the goals of projects closely align with the strategic goals of the business.
2. Leadership
Without project management, a team can be like a ship without a rudder; moving but without direction,
control or purpose. Leadership allows and enables a team to do their best work. Project management
provides leadership and vision, motivation, removing roadblocks, coaching and inspiring the team to do
their best work.
Project management is important because it ensures there’s a proper plan for executing on strategic
goals.
As project managers, we position ourselves to prevent such a situation and drive the timely
accomplishment of tasks, by breaking up a project into tasks for our teams. Oftentimes, the foresight to
take such an approach is what differentiates good project management from bad. Breaking up into
smaller chunks of work enables teams to remain focused on clear objectives, gear their efforts towards
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
achieving the ultimate goal through the completion of smaller steps and to quickly identify risks,
since risk management is important in project management.
Project management is important because it ensures proper expectations are set around what can be
delivered, by when, and for how much.
Without proper project management, budget estimates and project delivery timelines can be set that
are over-ambitious or lacking in analogous estimating insight from similar projects. Ultimately this
means without good project management, projects get delivered late, and over budget.
5. Quality Control
Projects management is important because it ensures the quality of whatever is being delivered,
consistently hits the mark.
6. Risk Management
Project management is important because it ensures risks are properly managed and mitigated against
to avoid becoming issues.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Requirements discovery
The process of gathering information about the required and existing systems and
distilling the user and system requirements from this information.
Interaction is with system stakeholders from managers to external regulators.
Systems normally have a range of stakeholders.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Requirement discovery methods:
● Interview
● Questionnaire
● Survey
Interviewing
Types of interview
● Closed interviews based on per-determined list of questions
● Open interviews where various issues are explored with stakeholders.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
5.) Discuss evolutionary prototyping and throw-away prototyping in
the software process.
Ans:
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Throwaway prototyping model:
Throwaway Prototyping Model is especially useful when the project needs are vaguely and
poorly laid out. It functions by providing proof that something can indeed be done in terms of
systems and strategies. Throwaway Prototyping Model is used for certain projects and will
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
eventually be discarded after the project has been completed. It is also known as Close-Ended
Prototyping.
There are 5 phases involved when using Throwaway Prototyping model.
Although most requirements are unknown because the process works through “discovery
method”, the basics should be identified so that the project can begin.
• Planning
The ability of the project management team to plan well is necessary for Throwaway Prototyping
model to work. The team is a huge factor for its success; with this model you can expect
numerous surprises coming your way so having the skills necessary to resolve problems is a
must.
Once planning has been completed, implementation of the project will then take place.
Prototypes will be created and introduced to end users who will utilize them for testing and
evaluation purposes. At this time, they will be providing feedback, clarify needs and relay
requirements.
As per requirements of end users derived through feedback and testing, the prototypes will be
continuously altered until such time it has reached near-perfection.
• Finalization
Once everything has been set and issues have been properly addressed, the prototype will then
be “thrown away” and a product or service will be developed, taking into consideration the
feedback derived during the verification process.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
7.) What are the advantages of designing and documenting software
architecture? What is repository model?
Ans:
Advantages:
1. Stakeholder communication: The architecture is a high-level presentation of the
system that may be used as a focus for discussion by a range of different stakeholders.
2. System analysis: Making the system architecture explicit at an early stage in the
system development requires some analysis. Architectural design decisions have a
profound effect on whether or not the system can meet critical requirements such as
performance, reliability, and maintainability.
3. Large-scale reuse: A model of system architecture is a compact, manageable
description of how a system is organized and how the components interoperate. The
system architecture is often the same for systems with similar requirements and so can
support large-scale software reuse.
Repository model:
Subsystems making of a system must exchange information, so that they can work together
effectively. There are two fundamental ways in which this can be done.
All shared data is held in a central database that can be accessed by all subsystems.
Each subsystem maintains its own database. Data is interchanged with other subsystem
by passing massage to them.
This model is suitable to the application when data is gathered by one subsystem and used by
another subsystem.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Class Roles or Participants
Class roles describe the way an object will behave in context. Use the UML object symbol to
illustrate class roles, but don't list object attributes.
Messages
Messages are arrows that represent communication between objects. Use half-arrowed lines to
represent asynchronous messages. Asynchronous messages are sent from an object that will not
wait for a response from the receiver before continuing its tasks. For message types, see below.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Lifelines
Lifelines are vertical dashed lines that indicate the object's presence over time.
Destroying Objects
Objects can be terminated early using an arrow labeled "<< destroy >>" that points to an X. This
object is removed from memory. When that object's lifeline ends, you can place an X at the end
of its lifeline to denote a destruction occurrence.
Loops
A repetition or loop within a sequence diagram is depicted as a rectangle. Place the condition for
exiting the loop at the bottom left corner in square brackets
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Ans:
Verification
requirements.
whether the products of a give development phase satisfy the conditions imposed at eh start of
the phase.
Validation
Validation is the process of evaluating a system or component during or at the end of the
therefore, ‘end-to-end’ verification. Validation occurs through the utilization of various testing
approaches.
The development of a V & V plan is essential to the success of a project. The plan must
be development early in the project. Careful planning is required to get the most out of
testing and inspection process. Effective V & V plan requires many considerations that
are:
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
goals must address those attributes of the product that correspond to its user
expectations.
3. Organizational Responsibilities:
The organizational structure of a project is a key planning consideration for
project managers. An important aspect of this structure is a delegation of V & V
activities to various organizations.
5. Problem Tracking:
Software V & V plan to develop a mechanism for documenting problems
o When the problem occurred
o Where the problem occurred
o Evidence of the problem
o Priority for solving problem
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Top -Down testing good if major flaws occur Bottom-Up Testing good if major flaws occur
3
toward the top of the program. toward the bottom of the program.
4 In this test condition difficult to create. In this test condition easy to create.
5 Observation of test output is more difficult. Observation of test output is easier.
Tribhuvan University
2069
Bachelor Level / Third Year /Six Semester/Science Full Marks: 100
(Software Engineering)
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
3.) Define the COCOMO model with example.
Ans: The Constructive Cost Model (COCOMO) is an algorithmic software cost
estimation model developed by Barry Boehm. The model uses a basic
regression formula, with parameters that are derived from historical project
data and current project characteristics.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
COCOMO 81 was developed with the assumption that a waterfall process would be used and
that all software would be developed from scratch.
•Since its formulation, there have been many changes in software engineering practice and
COCOMO 2 is designed to accommodate different approaches to software development.
Unit Testing
Integration Testing
Functional Testing
System Testing
Stress Testing
Performance Testing
Usability Testing
Acceptance Testing
Regression Testing
Beta Testing
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Unit Testing
Unit testing is the testing of an individual unit or group of related units. It falls under the class of
white box testing. It is often done by the programmer to test that the unit he/she has implemented
is producing expected output against given input.
Integration Testing
Integration testing is testing in which a group of components are combined to produce output. Also,
the interaction between software and hardware is tested in integration testing if software and
hardware components have any relation. It may fall under both white box testing and black box
testing.
Functional Testing
Functional testing is the testing to ensure that the specified functionality required in the system
requirements works. It falls under the class of black box testing.
System Testing
System testing is the testing to ensure that by putting the software in different environments (e.g.,
Operating Systems) it still works. System testing is done with full system implementation and
environment. It falls under the class of black box testing.
Stress Testing
Stress testing is the testing to evaluate how system behaves under unfavorable conditions. Testing is
conducted at beyond limits of the specifications. It falls under the class of black box testing.
Performance Testing
Performance testing is the testing to assess the speed and effectiveness of the system and to make
sure it is generating results within a specified time as in performance requirements. It falls under the
class of black box testing.
Usability Testing
Usability testing is performed to the perspective of the client, to evaluate how the GUI is user-
friendly? How easily can the client learn? After learning how to use, how proficiently can the client
perform? How pleasing is it to use its design? This falls under the class of black box testing.
Acceptance Testing
Acceptance testing is often done by the customer to ensure that the delivered product meets the
requirements and works as the customer expected. It falls under the class of black box testing.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Regression Testing
Regression testing is the testing after modification of a system, component, or a group of related
units to ensure that the modification is working correctly and is not damaging or imposing other
modules to produce unexpected results. It falls under the class of black box testing.
Beta Testing
Beta testing is the testing which is done by end users, a team outside development, or publicly
releasing full pre-version of the product which is known as beta version. The aim of beta testing is to
cover unexpected errors. It falls under the class of black box testing.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
12.) Write short notes on (any two):-
a.) User Interface Prototyping
Ans: User interface (UI) prototyping is an iterative analysis technique in which users are
actively involved in the mocking-up of the UI for a system. UI prototypes have several
purposes:
As an analysis artifact that enables you to explore the problem space with your
stakeholders.
As a requirements artifact to initially envision the system.
As a design artifact that enables you to explore the solution space of your
system.
A vehicle for you to communicate the possible UI design(s) of your system.
A potential foundation from which to continue developing the system (if you
intend to throw the prototype away and start over from scratch then you don't
need to invest the time writing quality code for your prototype).
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
b.) Software Inspection (see in 2073 Q8.)
c.) Source Code Translation (See in 2071 Q12)
Tribhuvan University
2068
Bachelor Level / Third Year /Six Semester/Science Full Marks: 100
(Software Engineering)
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
3. What are the important activities that are carried out during the
feasibility study phase? Explain.
4. What are the different categories of software development projects
according to the COCOMO estimation model? Explain.
Ans: See in 2069 Q3.
5. What are the five desirable characteristics of a good software
requirements specification (SRS) document?
Ans:See in 2073 Q7.
6. What are the main advantages of using an object-oriented design
approach over a function-oriented approach? Explain.
Ans:
Object-oriented databases make the promise of reduced maintenance, code reusability, real world
modeling, and improved reliability and flexibility. However, these are just promises and in the
real world some users find that the object-oriented benefits are not as compelling as they
originally believed. For example, what is code reusability? Some will say that they can reuse
much of the object-oriented code that is created for a system, but many say there is no more code
reusability in object-oriented systems than in traditional systems. Code reusability is a subjective
thing, and depends heavily on how the system is defined. The object-oriented approach does
give the ability to reduce some of the major expenses associated with systems, such as
maintenance and development of programming code. Here are some of the benefits of the
object-oriented approach:
Reduced Maintenance: The primary goal of object-oriented development is the assurance that
the system will enjoy a longer life while having far smaller maintenance costs. Because most of
the processes within the system are encapsulated, the behaviors may be reused and incorporated
into new behaviors.
Real-World Modeling: Object-oriented system tend to model the real world in a more
complete fashion than do traditional methods. Objects are organized into classes of objects, and
objects are associated with behaviors. The model is based on objects, rather than on data and
processing.
Improved Reliability and Flexibility: Object-oriented system promise to be far more reliable
than traditional systems, primarily because new behaviors can be "built" from existing objects.
Because objects can be dynamically called and accessed, new objects may be created at any
time. The new objects may inherit data attributes from one, or many other objects. Behaviors
may be inherited from super-classes, and novel behaviors may be added without effecting
existing systems functions.
High Code Reusability: When a new object is created, it will automatically inherit the data
attributes and characteristics of the class from which it was spawned. The new object will also
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
inherit the data and behaviors from all superclasses in which it participates. When a user creates
a new type of a widget, the new object behaves "wigitty", while having new behaviors which are
defined to the system.
Black box testing is the Software White box testing is the software testing
testing method which is used to test method in which internal structure is being
1 the software without knowing the known to tester who is going to test the
internal structure of code or program. software.
This type of testing is carried out by Generally, this type of testing is carried out
2 testers. by software developers.
Black box testing means White box testing means structural test or
6 functional test or external testing. interior testing.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
10. Differentiate between interface specification and behavioral
specification.
11. Explain class diagram with example.
Ans:
Many people consider class diagrams a bit more complicated to build compared with
ER diagrams. Most of the time it‟s because of the inability to understand the different
relationships between class diagram. This article explains how to correctly determine
and implement the different class diagram relationships that are applicable in object-
oriented modeling. What‟s more, you can easily create class diagrams using our
diagramming tool.
Class diagrams are the main building block in object-oriented modeling. They are used
to show the different objects in a system, their attributes, their operations and the
relationships among them.
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html
Simple class diagram with attributes and operations
In the example, a class called “loan account” is depicted. Classes in class diagrams are
represented by boxes that are partitioned into three:
http://www.rajanaryal.com.np/index.html http://www.hutrajshrestha.com.np/soln.html