1594268743_SE-LM
1594268743_SE-LM
1594268743_SE-LM
HANDOUT
on
SOFTWARE ENGINEERING
Vision
Mission
=====================================================================
==
2. Pre-Requisites
Familiar with the fundamental concepts of computers.
3. Course Objectives:
Illustrate basic taxonomy and terminology of the software engineering.
Plan and monitor the control aspects of project.
4. Course Outcomes:
Upon successful completion of the course, the students will be able to
CO1: explain the basic concepts of Software Engineering.
CO2: select the suitable process model based on the client requirements.
CO3: calculate software proficiency in terms of cost and schedule.
CO4: list the specifications of end-user according to business needs.
CO5: choose the appropriate architectural style for a given Scenario.
CO6: infer the system model for a sample case study.
CO7: deduce test cases by following different testing methodologies.
CO8: Explore the basic concepts of software engineering.
5. Program Outcomes:
Graduates of the Computer Science and Engineering Program will have
a) an ability to apply knowledge of mathematics, science, and engineering
b) an ability to design and conduct experiments, as well as to analyze and interpret
data
c) an ability to design a system, component, or process to meet desired needs
within realistic constraints such as economic, environmental, social, political,
ethical, health and safety, manufacturability, and sustainability
d) an ability to function on multidisciplinary teams
e) an ability to identify, formulate, and solve engineering problems
f) an understanding of professional and ethical responsibility
g) an ability to communicate effectively
h) the broad education necessary to understand the impact of engineering solutions
in a global, economic, environmental, and societal context
i) a recognition of the need for, and an ability to engage in life-long learning,
j) a knowledge of contemporary issues
k) an ability to use the techniques, skills, and modern engineering tools necessary
for engineering practice.
a B c d e f G h i j k
CO1 H
CO2 M
CO3 M
CO4 M
CO5 L
CO6
CO7
CO8
No. of Periods
Topic
Theory Tutorial
UNIT –1: Introduction to Software Engineering
The evolving role of software 1
Changing nature of software 2 1
Software myths 2
The software problem: cost, schedule and quality 2
1
Scale and change 1
8 2
UNIT – 2: Software Process
Process and project 1
1
Software development process models: waterfall model 2
Prototyping , Iterative development 2
Relational unified process, Extreme programming and 1
3
agile process.
8 2
UNIT – 3: Planning a software project
Effort estimation 2
1
Project schedule and staffing 2
Quality planning 2
1
risk management planning 2
8 2
Unit – I
Figure 1.2 depicts failure rate curve of software and it takes the
form of “idealized curve”.
Software Engineering 9
Undiscovered defects will cause high failure rates early in the life of
a program. However, these are corrected and the curve flattens as
shown in Figure 1.2.
During its life, software will undergo change (maintenance).
As changes are made, it is likely that some new defects will be
introduced, causing the failure rate curve to spike as shown in
Figure 1.2.
3. Although the industry is moving toward component-based assembly,
most software continues to be custom built
A software component should be designed and implemented so
that it can be reused in many different programs.
Modern reusable components encapsulate both data and the
processing applied to the data, enabling the software engineer to
create new applications from reusable parts.
For example, today's graphical user interfaces are built using
reusable components such as windows, pull-down menus, and a
wide variety of interaction mechanisms.
2. Changing nature of software
The nature of software has changed a lot over the years. It has
changed from writing programs by individuals for their personal use
to writing very complex software to run a nuclear power plant.
Its nature mainly depends on the type of software used. Given below
are the different types of software being used in different applications.
System Software
System Software is a collection of programs written to provide service
to other programs.
It needs heavy interaction with computer hardware.
It contains complex data structures and multiple external interfaces
Examples: Compilers, Editors, File Management Utilities, other
System Applications Drivers and Networking Software.
Application Software
Application Software consists of standalone programs that are used to
solve specific business needs.
It is used to process technical data/technical decisions and control
business functions in real time.
Examples: Conventional Data Processing Applications, Real-Time
Manufacturing Process Control, point-of-sale etc.
Engineering/Scientific Software
It is characterized by conventional numerical algorithms.
It is used to create interactive applications to take on real time.
Examples: Computer Aided Design(CAD/CAM), System Simulation,
Weather prediction system, Interactive Applications in Educational
Field.
Embedded Software
Software that resides within a product or system is called as
Embedded Software.
Examples: Keypad control for a Microwave Oven, Smart dustbins etc.
Product-line Software
This type of software provides specific capability for use by many
different customers.
Examples: Word Processing, Spreadsheets, Computer Graphics,
Database Management, Multimedia & Entertainment and Business
Financial Applications.
Web Applications
It can be considered as a set of linked hypertext files.
Web Application Software has grown relevant as E-Commerce & B2B
applications grow in importance.
Examples: E-commerce sites, Air line reservation system, IRCTC etc.
Artificial Intelligence Software
This type of software uses Non-Numerical Algorithms to solve complex
problems.
Myth2: Until I get the program "running" I have no way of assessing its
quality.
Reality: One of the most effective software quality assurance
mechanisms is formal technical review. Software reviews can effectively
detect the problems in requirements documents, design documents, test
plans, and code.
Myth3: The only deliverable work product for a successful project is the
working program.
Reality: A working program is only one part of a software delivery. Apart
from this several other documents such as analysis, design and testing
documents, user manuals etc. may also be created during software
development.
Myth4: Software engineering will make us create voluminous and
unnecessary documentation and will invariably slow us down.
Reality: Software engineering is not about creating documents. It is
about creating quality. Better quality leads to reduced rework. And
reduced rework results in faster delivery times.
4. The Software Problem
The software developed by a student as part of his laboratory work
consists of few hundred Lines of Code (LOC). Such systems tend to
have a very limited purpose and a very short life span. We can afford
to throw them away and replace them with an entirely new software
rather than attempt to reuse them or repair them.
On the other hand, industrial strength software is developed by a
team of people and consists of few thousand Lines of Code (LOC).
These are the applications that exhibit a very rich set of behaviors and
are used by a large number of customers. Such systems tend to have
a very long life span. Ex. Air-traffic control system, Railway
Reservation System etc.
Thus, the problem domain for software engineering is developing an
industrial strength software. This should be produced at reasonable
cost, in a reasonable time, and should be of good quality.
As shown in the above figure, more formal methods are used for
developing large and complex projects to make sure that cost,
schedule, and quality are under control.
Change
Change is another characteristic of the problem domain and should
be handled properly.
It is obvious that, all the requirements of the system are not known at
the beginning. As the development proceeds and time passes,
additional requirements are identified, which need to be incorporated
in the software being developed. This requires that, suitable methods
are to be developed to accommodate the change efficiently. Otherwise,
change requests can trouble the project and can consume up to 30 to
40% of the development cost.
UNIT-I
Assignment-Cum-Tutorial Questions
SECTION-A
Objective Questions
1) What is Software? [ ]
a) Software is set of programs.
b) Software is documentation and configuration of data.
c) Both a and b
d) None of the mentioned
2) What are the characteristics of software? [ ]
a) Software is developed or engineered; it is not manufactured in the classical
sense.
b) Software doesn’t “wear out”.
c) Software can be custom built or custom build.
d) All mentioned above
3) The process of developing a software product using software engineering
principles and methods is referred to as, ______________. [ ]
a) Software myths
b) Scientific Product
c) Software Evolution
d) None of the above
4) Software consists of __________. [ ]
a) Reliability
b) Robustness
c) Fault Tolerance
d) Portability
e) All of the above.
6) As per an IBM report, “31%of the project get cancelled before they are completed,
53% overrun their cost estimates by an average of 189% and for every 100
projects, there are 94 restarts”. What is the reason for these statistics? [ ]
a)Lack of adequate training in software engineering
b)Lack of software ethics and understanding
c)Management issues in the company
d) All of the mentioned
7) Compilers, Editors software comes under which type of software? [ ]
a) System software b) Application software
c) Scientific software d) None of the above
8) Which of the following cannot be applied with the software according to Software
Engineering Layers? [ ]
a) Process b) Methods
c) Manufacturing d) None of the above.
9) Choose the correct option according to the given statement. [ ]
Statement 1: Software is a physical rather than a logical system element.
Statement 2: Computer software is the product that software engineers design and
build.
Statement 3: Software is a logical rather than a physical system element.
Statement 4: Software is a set of application programs that are built by software
engineers.
a) Statement 1 and 2 are correct.
b) Only Statements 2 and 3 are correct.
c) Statements 2, 3 and 4 are correct
10) From the following which quality deals with maintaining the quality of the
software product? [ ]
a) Quality assurance b)Quality control
b) Quality efficiency d)None of the above
11) Which one of the following is not a symptom of the present software crisis: [ ]
a) Software is expensive
b) It takes too long to build a software product
c) Software is delivered late
d) Software products are required to perform very complex tasks
12) Which one of the following characteristics of software products being developed
is not a symptom of software crisis? [ ]
SECTION-B
SUBJECTIVE QUESTIONS
1) Define Software and Software Engineering? List out the important characteristics
of software.
2) Discuss the changing nature of the software.
3) Identify different Myths and Realities related to software. Explain briefly.
4) Describe the major driving forces of a Software Project.
5) Illustrate different Software Quality Attributes? Explain briefly.
6) Give a conclusion about the statement “Software is easy to change, because
Software is flexible”
7) Analyze how the Failure Curve of Hardware and Software can be differentiated?
8) Categorize some problems that will come up if the methods you currently use for
developing small software are used for developing large software systems.
9) Suppose a program for solving a problem cost C and industrial strength software
for solving that problem costs 10 C. where do you think this extra 9 C cost is
spent? suggest a possible breakdown of this extra cost.
SECTION-C
GATE QUESTIONS
1) If you are given extra time to improve the reliability of the final product
developing a software product, where would you spend this extra time?
Unit – II
SOFTWARE PROCESS
maintain all details regarding the SPF installments collected from the
miners. GMC employed a reputed software vendor Adventure Software
Inc. to undertake the task of developing the software for automating the
maintenance of SPF records of all employees. GMC realized that besides
saving manpower on bookkeeping work, the software would help in
speedy settlement of claim cases. GMC indicated that the amount it can
afford for this software to be developed and installed is Rs. 50 millions.
Adventure Software Inc. deputed their project manager to carry out the
feasibility study. The project manager discussed the matter with the top
managers of GMC to get an overview of the project. He also discussed the
issues involved with the several field PF officers at various mine sites to
determine the exact details of the project. The project manager identified
two broad approaches to solve the problem. One was to have a central
database which could be accessed and updated via a satellite connection
to various mine sites. The other approach was to have local databases at
each mine site and to update the central database periodically through a
dial-up connection. These periodic updates could be done on a daily or
hourly basis depending on the delay acceptable to GMC in invoking
various functions of the software. The project manager found that the
second approach was very affordable and more fault-tolerant as the local
mine sites could still operate even when the communication link to the
central database temporarily failed. The project manager quickly
analyzed the database functionalities required, the user-interface issues,
and the software handling communication with the mine sites. He arrived
at a cost to develop from the analysis. He found that the solution
involving maintenance of local databases at the mine sites and periodic
updating of a central database was financially and technically feasible.
The project manager discussed his solution with the GMC management
and found that the solution was acceptable to them as well.
Design
During the integration and system testing phase, the modules are
integrated in a planned manner.
Finally, when all the modules have been successfully integrated and
tested, system testing is carried out.
Maintenance
Many studies carried out in the past confirm this and indicate that
the relative effort of development of a typical software product to its
maintenance effort is roughly in the 40:60 ratio.
Advantages
Provides a working model to the user early in the process, so, it
increases user's confidence.
The developer gains experience and insight by developing a prototype
that results better implementation of requirements.
The prototyping model serves to clarify requirements which are not
clear; hence, it reduces ambiguity and improves communication
between the developers and users.
There is a great involvement of users in software development. Hence,
the requirements of the users are met to the greatest extent.
Helps in reducing risks associated with the software.
Disadvantages
If the user is not satisfied by the developed prototype, then a new
prototype is developed. This process goes on until a perfect prototype
is developed. Thus, this model is time consuming and expensive.
The developer loses focus of the real purpose of prototype and hence,
may compromise with the quality of the software. For example,
developers may use some inefficient algorithms or inappropriate
programming languages while developing the prototype.
Prototyping can lead to false expectations. For example, a situation
may be created where the user believes that the development of the
system is finished when it is not.
Where to Use Prototype Model?
Prototyping is an attractive idea for complicated and large systems for
which there is no manual process or existing system to help determine
the requirements.
This might be needed for novel systems.
2.3 Iterative Development
The iterative development process model counters the third and fourth
limitations of the waterfall model and tries to combine the benefits of
both prototyping and the waterfall model.
The basic idea is that the software should be developed in increments,
each increment adding some functionality to the system until the full
system is implemented.
There are two approaches in iterative model.
The first approach called the iterative enhancement model works as
follows;
A simple initial implementation is done for a subset of requirements
that are assumed to be important for the customer.
A project control list is created that contains, in order, all the tasks
that must be performed to obtain the final implementation.
Each step consists of removing the next task from the list, designing
the implementation for the selected task, coding and testing the
Advantages
In today’s world clients do not want to invest too much money without
seeing returns. The iterative model permits this—after each iteration
some working software is delivered.
Disadvantages
Inception phase
Elaboration phase
Construction phase
Transition phase
Inception Phase
Elaboration Phase
Construction Phase
Transition Phase
Using these estimates and the stories, release planning is done which
defines which stories are to be built in which system release, and the
dates of these releases.
Acceptance tests are performed to test the software before the release.
At a time, only one user story is planned, developed and tested using
acceptance testing.
Advantages
Disadvantages
Can be misinterpreted…
XP, and other agile methods, are suitable for situations where the
volume and pace of requirements change is high, and where
requirement risks are considerable.
UNIT-II
Assignment-Cum-Tutorial Questions
SECTION-A
Objective Questions
b) Simpler to manage
c) Divided workload
d) Early feedback
5) Which phase of the RUP is used to establish a business case for the system [ ]
a) Transition b) Elaboration
c) Construction d) Inception
SECTION-B
SUBJECTIVE QUESTIONS
1) What is a process model? How do process models differ from one another?
2) What is the oldest paradigm for software engineering? Why does the waterfall model
sometimes fail?
3) Write about the Rational unified process model in detail.
4) Compare the waterfall model with the Unified process model.
5) Explain about agile methodology & extreme programming as software development
process models.
6) Describe prototyping model in detail. Discuss how to select a particular process
model based on characteristics of a project.
7) Categorize the strengths and weaknesses of waterfall, iterative development and
prototyping.
8) Analyze why does iterative process makes it easier to manage change.
9) Is it possible to combine the process models? If so explain with an example.
10) Which process model is suitable for medium scale projects, justify it.
SECTION-C
GATE QUESTIONS
(a) 1-a, 2-b, 3-c, 4-d (b) 1-d, 2-a, 3-b, 4-c
(c) 1-d, 2-b, 3-a, 4-c (d) 1-c, 2-a, 3-b, 4-d (Gate CS
2015)
(a) The requirements document also describes how the requirements that are listed in the
document are implemented efficiently.
(b) Consistency and completeness of functional requirements are always achieved in practice.
(d) Requirements review is carried out to find the errors in system design (GATE CS 2014)
3) What is the appropriate pairing of items in the two columns listing various activities
encountered in a software life cycle? [ ]
UNIT –III
3. Get the total coding efforts using the coding effort of different types
of modules and the counts for them.
4. Using the effort distribution for similar projects, estimate the effort
for other tasks and the total effort.
5. Refine the estimates based on project-specific factors.
Advantages
Greater accuracy.
It is simple and easy.
Disadvantages
Project Category a b c d
Organic 3.2 1.05 2.5 0.38
Semi-detached 3.0 1.12 2.5 0.35
Embedded 2.8 1.20 2.5 0.32
Example 3.1
Assume that a system for student course registration is planned to be
developed and its estimated size is approximately 10,000 lines of code.
The organization is proposed to pay Rs. 25000 per month to software
engineers. Compute the development effort, development time, and the
total cost for product development.
Solution
The project can be considered an organic project since, its size (10 KLOC)
lies between 2-50 KLOC. Thus, from the basic COCOMOmodel,
Development Effort (E) = 3.2 × (10) 1.05 = 35.90 PM
Development Time (T) = 2.5 × (35.90) 0.38 = 9.747 Months
Total Product Development Cost
= Development Time *Salaries of Engineers
= 9.747 × 25000
= Rs. 2,43,675/-
3.1.3.2 Intermediate COCOMO Model
The basic COCOMO model determines the effort and time based on
the project size.
There are certain other factors that can affect the project size and
hence the development effort and time.
Therefore, Boehm has introduced 15 cost drivers, considering the
various aspects of product development environment.
These cost drivers are used to adjust the project complexity and are
termed as effort adjustment factors (EAF).
These cost drivers are classified as Computer Attributes, Product
Attributes, Project Attributes, and Personnel Attributes.
Example 3.2
Suppose a library management system (LMS) is to be designed for an
academic institution. From the project proposal, the following five major
components are identified:
Online data entry - 1.0 KLOC
Data update - 2.0 KLOC
File input and output - 1.5 KLOC
Library reports - 2.0 KLOC
Query and search - 0.5 KLOC
The database size and application experience are very important in this
project. The use of the software tool and the main storage is highly
considerable. The virtual machine experience and its volatility can be kept
low. All other cost drivers have nominal requirements. Use the COCOMO
model to estimate the development effort and the development time.
Solution
The LMS project can be considered an organic category project. The total
size of the modules is 7 KLOC. The development effort and development time
can be calculated as follows:
Development effort
Initial effort (Ei) = 3.2×(7)1.05
= 24.6889 PM
The estimated effort (E) is 21.6785 PM. The total size is 7 KLOC, which is
between 2 KLOC and 32 KLOC. Thus, the actual percentage of effort can be
calculated as follows:
Organic (2 KLOC) 6 16 26 42 16
Semidetached (32
7 17 25 33 25
KLOC)
Semidetached (128
7 17 24 31 28
KLOC)
Organic (2 KLOC) 10 19 24 39 18
Semidetached (32
20 26 21 27 26
KLOC)
Semidetached (128
22 27 19 25 29
KLOC)
This occurs because only a few people can be used in the initial
phases of requirements analysis and design. The human resources
requirement peaks during coding and unit testing, and during system
testing and integration, again fewer people are required.
Generally speaking, design requires about a quarter of the schedule,
build consumes about half, and integration and system testing
consume the remaining quarter. COCOMO gives 19% for design, 62%
for programming, and 18% for integration.
The above figure shows that defects are injected during requirements
analysis, design and coding and then defects are identified and
removed using QC activities.
The QC activities for defect removal include requirements reviews,
design reviews, code reviews, unit testing, integration testing, system
testing, acceptance testing, etc.
Hence, ensuring quality revolves around two main themes:
Reduce the defects being injected, and
Increase the defects being removed.
The first is often done through standards, methodologies, following of
good processes, etc., which help reduce the chances of errors by the
project personnel.
The quality plan therefore focuses mostly on planning suitable quality
control tasks for removing defects.
Reviews and testing are two most common QC activities utilized in a
project to remove the defects.
Risk Identification
In this potential risks that affect the software product are identified
along with their sources, root causes, consequences and types.
Different types of risks may arise. Eg. Requirements risks, technology
risks, organizational risks, tool risks, human resources risks,
estimation risks etc.
Risk Analysis
In this each risk is analyzed independently by examining and
assessing its impact, probability, and seriousness.
It can be done using different techniques like metrics, decision trees
and scenario analysis.
The list of risks is then grouped and prioritized/ranked based on the
risk analysis. It helps in resource allocation and management.
Boehm defined the risk exposure (RE) to establish risk priorities. It
measures the impact of a risk in terms of loss.
RE is defined as the probability of an undesired outcome times the
expected loss if that outcome occurs.
RE = Prob(UO) * Loss(UO)
Where Prob(UO) is the probability of occurrence of the undesirable
outcome and
Loss(UO) is the total loss incurred due to that undesirable outcome.
Risk Planning
Once the risks are identified and prioritized, an appropriate
management policy is developed to handle the risks.
The project manager uses risk resolution strategies for reducing
the risks. These are
Risk avoidance – avoiding the risks. It is the most effective way.
Project managers should not take decisions of working in a new
way that may increase the risk.
o Eg. Not paying money by debit card.
Risk minimization – focus on identifying the options for reducing
the likelihood or consequences of the risk.
Unit – IV
Software Requirements Analysis and Specification
4.1. Value of a Good SRS
An SRS establishes the basis for agreement between the client and the
supplier on what the software product will do.
i.e. it acts as the contract between the client (or the customer) and the
developer (the supplier).
So, through SRS, the client clearly describes what he expects from the
supplier, and the developer clearly understands what capabilities to
build in the software.
An SRS provides a reference for validation of the final product.
i.e. the SRS helps the client to determine whether the software meets
the requirements.
Without SRS it is not possible for the client to check whether the
software meets all the stated requirements in the SRS.
Similarly, without SRS it is not possible for the developer to convince
the client that all the requirements have been fulfilled.
A high-quality SRS is a prerequisite to high-quality software.
Many errors are made during the requirements phase. Good SRS can
minimize changes and errors in the requirements.
Cost of fixing errors in requirements, design, coding, testing and
maintenance increases exponentially.
A high-quality SRS reduces the development cost.
Improving the quality of requirements substantially reduces the
development cost.
Requirements validation
It ensures that the SRS specifies all the requirements of the software
and the SRS is of good quality.
The requirements process ends with the production of a high quality
SRS.
4.3. Requirement Specification
For many years requirements are specified using stories or scenarios. But,
today use case approach is followed to specify the requirements. Before
discussing the specification of requirements, let’s see the following.
4.3.1 Desirable Characteristics of an SRS
To properly satisfy the basic goals, an SRS should have certain properties
and should contain different types of requirements. Some of the desirable
characteristics of an SRS are
1. Correct – The SRS is correct iff every requirement stated therein is
one that the software shall meet. There is no tool or procedure that
assures correctness.
2. Complete - The SRS is complete if everything the software is
supposed to do and the responses of the software to all classes of
input data are specified in the SRS.
3. Unambiguous - the SRS is unambiguous if and only if every
requirement stated has one and only one interpretation (or meaning).
4. Verifiable – the SRS is verifiable if and only if every stated
requirement is verifiable. A requirement is verifiable if there exists
some cost-effective process that can check whether the final software
meets that requirement.
5. Consistent – the SRS is consistent if there is no requirement that
conflicts with another. For example, suppose a requirement states
that an event e is to occur before another event f. But then another
set of requirements states (directly or indirectly by transitivity) that
event f should occur before event e. Such a requirement is said to be
inconsistent requirement.
SE UNIT-IV
Assignment-Cum-Tutorial Questions
A) Objective Questions
3) As Software Manager, when you will decide the number of people required
for a software project? [ ]
a) Before the scope is determined.
b) Before an estimate of the development effort is made
c) After an estimate of the development effort is made.
d) None of the above
4) Which of the following is not a ‘concern’ during the management of a
software project? [ ]
a) Money d) Time
b) Product quality e)Project/product information
c) Product quantity
5) How does a software project manager need to act to minimize the risk of
software failure? [ ]
a) Double the project team size
b) Request a large budget
c) Form a small software team
d) Track progress
e) Request for more period of time.
6) Which one of the following is a functional requirement [ ]
a) Maintainability
b) Portability
c) Robustness
SECTION-B
Descriptive Questions
1) Explain briefly the value of good SRS and the Requirements Engineering
Process.
2) Give the Structure of Software Requirements Specification Document.
3) Design a SRS Document for Online Banking System?
4) Describe the Functional Specification Technique with use cases.
5) What is SRS? Discuss the characteristics of SRS.
6) Design a SRS Document for ATM System?
7) Design a SRS Document for Library Management System?
Unit – V
Software Architecture and Design
clients (who pay for the system), analysts (who analyze the
requirements of the system), designers (who design), testers (who
test), document writers (who prepare user manuals) etc. Through the
architecture, the stakeholders gain an understanding of the system.
In addition, it acts as a vehicle for providing communication between
the stakeholders.
2. Reuse – For a long time, the software engineering world is been
working toward a discipline where software can be assembled from
parts that are developed by different people and are available for
others to use. For example, the components like date, money, APIs etc
are the reusable components which are used in many software
systems. The architecture facilitates the analysts to decide which
components can be reused and which can be developed. This is a
crucial decision which speeds up the development of the software
system.
3. Construction and Evolution – As we know that, the software
architecture partitions the system into parts that are relatively
independent to each other. This allows that different development
teams to work on simultaneously on different parts.
4. Analysis – One of the important properties of the architecture is that
it can be used to analyze the system before the system is actually
built. It allows the designers to analyze the system in terms of its
cost, reliability, performance, etc. For example, while building a
website for shopping, it is possible to analyze the response time or
throughput for a proposed architecture, given some assumptions
about the request load and hardware. It can then be decided whether
the performance is satisfactory or not, and if not, what new
capabilities should be added (for example, a different architecture or a
faster server for the back end) to improve it to a satisfactory level.
Module View
In a module view, the system is viewed as a collection of modules and
their relationships.
Each module performs a well defined functionality. For example, the
module view of Tic-tac software is shown below.
Allocation View
An allocation view focuses on how the different software units are
allocated to resources like the hardware, file systems, and people.
That is, an allocation view specifies the relationship between software
elements and the environments in which the software system is
executed.
They expose structural properties like which processes run on which
processor, and how the system files are organized on a file system.
For example, the allocation view of library system is shown below.
That is, the system is decomposed into modules, modules are then
decomposed into sub modules, sub modules are then decomposed
into sub-sub modules and so on until the modules are small enough
to handle them easily. This forms the hierarchy of modules.
There are four major steps in the methodology.
1. Restate the problem as a data flow diagram
2. First-level factoring
3. Identify the input and output data elements
4. Factoring of input, output, and transform branches
2. First-level Factoring
Each bubble in the DFD represents a function performed by the system. The
bubbles are decomposed into sub-functions at the successive levels of the
DFD. Decomposition of a bubble is also known as factoring a bubble. For
example, in the above DFD Compute-RMS can be factored as shown below
leading to level 1 DFD.
Example 2
Consider the problem of determining the number of different words in an
input file. The data flow diagram for this problem is shown below.
Object-oriented design
It is the modern style of design.
In object-oriented design, the main building block is an object or a
class.
It follows bottom-up approach (i.e. we start with the objects, objects
are then combined into components, components are then combined
to form the entire system).
In this, the system is coded in an object oriented language like Java.
An object is an entity or thing in the real world. For example, in
Library Management system we could find set of objects such as
Student, Book, Professor etc.
A class is a set of objects that share the same attributes and
operations.
Object oriented design is best expressed in UML (Unified Modelling
Language).
In UML, a class is represented as a rectangle with three compartments
as shown below.
Example 1
Let us we discuss the object-oriented design using a simple example - Dice
game example in which a player picks up and rolls the dice. If the dice face
value total seven, they win; otherwise, they lose.
After investigating this problem, we can find the following classes to solve
the problem.
o Player
Notice that although in the real world a player rolls the dice, in the software
design the DiceGame object "rolls" the dice. An inspection of the interaction
diagram leads to the final class diagram shown below. Since a play message
is sent to a DiceGame object, the DiceGame class requires a play method,
while class Die requires a roll and getFaceValue method.
Example 2
The word counting problem - determine the number of different words in an
input file.
UNIT V
Assignment-Cum-Tutorial Questions
Objective Questions
1) A component model defines standards for [ ]
a) Properties b) Methods
c) Mechanisms d) All of the mentioned
2) What makes a good architecture? [ ]
a) The architecture may not be the product of a single architect or a small group
b) The architect should have the technical requirements for the system and an
articulated and prioritized list of qualitative properties
c) The architecture may not be well documented
d) All of the mentioned
3) To capture and access data from the store by various components we use
[ ]
a) Component Connector Structure
b) Work-Allocation of Modules
c) Component and Hardware Dependency
d) Module Dependency Structure
4) Identify the architectural style which is most frequently used as web system backend
[ ]
a) Client Server Architectural Style
b) Shared Data Style
c) Peer to-Peer Style / Object Oriented Style
d) Publish-Subscribe Style
5) Select the architectural style which is used for Events like Mouse Clicking, mouse drag
and database events etc [ ]
a) Peer-to-Peer Style
b) Client server Style
c) shared Data style
d) Publish-Subscribe Style
6) Which of the following can be considered regarding client and server? [ ]
a) Client and Server is an architectural style
b) Client and Server may be considered as an architectural style
c) Client and Server is not an architectural style
d) None of the mentioned
7) Choose the option that does not define Function Oriented Software Design [ ]
a) It consists of module definitions
b) Modules represent data abstraction
c) Modules support functional abstraction
d) None of the above
8) What type of relationship is represented by Shape class and Square ? [ ]
a) Realization b) Generalization
c) Aggregation d) Dependency
10) Which design defines the logical structure of each module and their interfaces that is
used to communicate with other modules. [ ]
SECTION-B
Descriptive Questions
10) What are the metrics that can be used to study complexity of an object-oriented
design.
11) Draw DFDs for
a. ATM and
b. Word Count problem.
*****
Module
Data
Access to other modules
Functions
The above figure shows that the functions within the module can only
access the data in the module. Functions outside the module cannot
access the data because the data is not visible to these functions.
However, the module may provide an interface through which other
functions can access the data present in the module.
In java, information hiding can be achieved by an object or class.
Test deliverables - Could be a list of test cases that were used, detailed
results of testing including the list of defects found, test summary
report, and data about the code coverage.
Schedule and Task allocation – specifies schedule for doing testing
and the persons who are responsible for doing the testing.
2. Test Case Design - In this set of test cases are designed for
performing the testing. Test cases can be designed using black box or
white box testing techniques.
3. Test Case Execution - With the specification of test cases, the next
step in the testing process is to execute them. Testing tools can be
used to execute test cases. During test case execution, defects are
found. These defects are then fixed and testing is done again to verify
the fix. The following figure shows the life cycle of a defect.
The figure shows that the defects found during the testing are submitted
to the module developer at which stage the defect is said to be in
Submitted state. Then, the developer debugs the program and fixes the
bug in the program. At this time the defect is said to be in Fixed state.
After this, the tester again tests the program to see whether bug fixation
is over. If it is over then the bug is said to be in the Closed state.
Example 1
A program reads three numbers, A, B, and C, with a range [1, 50] and prints
the largest number. Design test cases for this program using equivalence
class partitioning testing technique.
Solution
First we partition the domain of input as valid input values and invalid
values, getting the following classes:
Now the test cases can be designed from the above derived classes, taking
one test case from each class such that the test case covers maximum valid
input classes, and separate test cases for each invalid class. This is shown
below.
Example 2
Example 1
The characters in column 1 must be an A or B. The character in column
2 must be a digit. In this situation, the file update is made. If the
character in column 1 is incorrect, message x is issued. If the character
in column 2 is not a digit, message y is issued. Design the cause-effect
graph for this scenario.
Solution
First identify the causes and effects in the problem statement.
Example 2
Consider the following scenario.
Design the test cases for this scenario using cause-effect graphing
technique.
Solution
Identify the causes and effects and draw the graph.
C1 C2 C3 C4 C5 e1 e2 e3 e4
1 0 0 1 0 1 0 0 0
1 0 0 0 1 0 1 0 0
0 1 0 1 0 0 1 0 0
0 1 0 0 1 0 0 1 0
0 0 1 1 0 0 0 1 0
0 0 1 0 1 0 0 0 1
*****
UNIT –VI
Assignment-Cum-Tutorial Questions
Objective Questions
SECTION-B
Descriptive Questions
Which one of the following option provide the set of non-redundant tests
using equivalence class partitioning approach from input perspective for
black box testing?
A) T1, T2, T3, T6 (GATE 2011)
B) T1, T3, T4, T5
C) T2, T4, T5, T6
D) T2, T3, T4, T5