0% found this document useful (0 votes)
24 views

Software Engineering CA303 Notes

Uploaded by

rohanmudholkar23
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views

Software Engineering CA303 Notes

Uploaded by

rohanmudholkar23
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 113

DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Unit 1 :Introduction to System Concept

Introduction

we are surrounded by systems. There are many systems such as transportation system, education
manufacturing and human economic activity systems.

System: “A system is an orderly grouping of independent components linked together according


to a plan to achieve a specific objective or goal”

 A system is a set or group of components that interact to accomplish some purpose.

 System interacts with their environment.

 E.g brain , spinal cord, nerves etc

System consist of

 Standards: which acceptable performance.


 Measurement: Measuring actual performance.
 Compare: Comparing actual performance.
 Feedback: A method for feedback.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Elements of system

 Input and Output


 Processors
 Control
 Feedback
 Environment
 Boundaries and Interface

1. Input and Output

 A major objective of a system is to produce the output as per the user’s requirement.
 The output could be in the form of goods information as services. It must be done with
expectations of user.
 Inputs are elements that enter the system for processing.
 Output is outcome of processing.

Processors:

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

4. Manmade Information system:

 With the help of information system, we can define some standards for the working of the
system. This we can try to make the system to work according to the standards defined.
 We can define information system as a set of devices, procedures, rules but most of the
work performs manually.
 It provides instructions commands, and feedback. It determines nature of relationship
among decision makers.

5. Formal Information system:

 A formal information system is represented by organization chart. It gives a


representation of the different parts of system and flow of information among them.
 Categories of information: There are three categories of information relate to
management levels and decision managers make.
1. Strategic Information
2. Managerial Information
3. Operational Information
 The first level relates to long range planning policies that are of direct interest to upper
management
 The second level is of direct use of middle management and department heads for
implementation and control.
 The Third level is short term, daily information is used to operate department and enforce
day-to-day rules and regulations of information.

6. Informal Information system:

 The informal information system is employee based system design to meet personnel and
vocational needs and to help in the solution of work-related it is considered to be a useful
system because it works within the framework of the business and its stated policies.
 It is related with what is happening practically rather than what is shown on paper, it is an
employee based system designed to meet personal and vocational needs and help work
related problem.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

7. Computer Based Information System:

 Computer based information is more accurate, more neat and attractive it is possible to
perform different operations easily. Security of data is possible in this system.

8. Management Information System (MIS)

A management information system (MIS) is a computer system consisting of hardware and


software that serves as the backbone of an organization’s operations. An MIS gathers data from
multiple online systems, analyzes the information, and reports data to aid in management
decision-making.

MIS is also the study of how such systems work.

The purpose of an MIS is improved decision-making, by providing up-to-date, accurate data on a


variety of organizational assets, including:

 Financials
 Inventory
 Personnel
 Project timelines
 Manufacturing
 Real estate
 Marketing
 Raw materials
 R&D
The MIS collects the data, stores it, and makes it accessible to managers who want to analyze the
data by running reports.

Advantages:

 Processing time and number of programs written are reduced.


 All applications share centralized files.
 Storage space duplication is eliminated.
 Data are stored once in database and are easily accessible when needed.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

9. Decision Support system (DSS)

 A decision support system (DSS) is a computerized system that gathers and analyzes
data, synthesizing it to produce comprehensive information reports.
 A decision support system differs from an ordinary operations application, whose
function is just to collect data.
 Decision support systems allow for more informed decision-making, timely problem-
solving, and improved efficiency in dealing with issues or operations, planning, and even
management
 The primary purpose of using a DSS is to present information to the customer in an easy-
to-understand way. A DSS system is beneficial because it can be programmed to generate
many types of reports, all based on user specifications. For example, the DSS can
generate information and output its information graphically, as in a bar chart that
represents projected revenue or as a written report.

10. Expert System(ES)

Expert Systems

 Artificial Intelligence is a piece of software that simulates the behavior and judgment of a
human or an organization that has experts in a particular domain is known as an expert
system. It does by acquiring relevant knowledge from its knowledge base and
interpreting it according to the user’s problem. The data in the knowledge base is added
by humans that are expert in a particular domain and this software is used by a non-expert
user to acquire some information. It is widely used in many areas such as medical
diagnosis, accounting, coding, games etc.
 An expert system is an AI software that uses knowledge stored in a knowledge base to
solve problems that would usually require a human expert thus preserving a human
expert’s knowledge in its knowledge base. They can advise users as well as provide
explanations to them about how they reached a particular conclusion or advice.
 One expert system may contain knowledge from more than one human experts thus
making the solutions more efficient.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Limitations:
 Don’t have human-like decision making power.
 Can’t possess human capabilities.
 Can’t produce correct result from less amount of knowledge.
 Requires excessive training.

Advantages:
 Low accessibility cost.
 Fast response.
 Not affected by emotions unlike humans.
 Low error rate.
 Capable of explaining how they reached a solution.

Executive information system (EIS)

An executive information system (EIS) is a decision support system (DSS) used to assist senior
executives in the decision-making process. It does this by providing easy access to important
data needed to achieve strategic goals in an organization. An EIS normally features graphical
displays on an easy-to-use interface.

Executive information systems can be used in many different types of organizations to monitor
enterprise performance as well as to identify opportunities and problems.

Advantages of EIS

1. EIS is easy for upper level executives.

2. EIS provides timely delivery of company summary information.

3. EIS filters data for management.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Integrated system:

Integrated systems, or systems integration, are the process of bringing together component sub-
systems into one functional system. It provides a system with coherence by making the parts or
components work together, or ‘building or creating a whole from parts

It consists of individual computers may be workstations or multiple systems.

Each of them runs a set of standard software and deals initially with it’s own application.

It is a different approach, sometimes called the integrated model and provides truly distributed
system by designing it from scratch. In this integrated model and provides truly.

Sub System:

A Larger system divided into subparts that subparts is known as subsystem.

For example:

Microprocessor of a motherboard. Where Motherboard is system and microprocessor is


subsystem.

Transaction processing system(TPS)

 A Transaction processing system is a type of information system. TPS collect, store,


modify and retrieve the transactions of an organization. A transaction is an event that
generates or modifies data that is eventually stored in an information system.
 It works on transaction in database system. This system is useful in online shopping,
online booking.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Unit 2 :Introduction to software Engineering

Introduction

Software engineering is an engineering branch associated with development of software product


using well-defined scientific principles, methods and procedures. The outcome of software
engineering is an efficient and reliable software product.

Let us first understand what software engineering stands for. The term is made of two words,
software and engineering.

Software is more than just a program code. A program is an executable code, which serves some
computational purpose. Software is considered to be collection of executable programming code,
associated libraries and documentations. Software, when made for a specific requirement is
called software product.

Engineering on the other hand, is all about developing products, using well-defined, scientific
principles and methods.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Software Product:

The Objective of Software engineering is to produce software products

 Software Product are software systems delivered to a customer with the documentation
which describes how to install and use the system.
Software products fall into two broad categories:
 Generic Products: these are stand-alone systems which are produced by a development
organization and sold on the open market to any customer who is able to buy them.
 Customized Products: These are systems which are commissioned by a particular
customer. The software is developed specially for that customer by some contractor.

Software Components:

Computer software has information that exists in two basic forms:

 Non machine executable components


 Machine executable components.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Software components are created through a series of translations that map customer
requirements to machine executable code

Reusability is an important characteristic of a high quality software component. That is


the component should be designed and implement so that it can be reused in many
different programs.

Software components are built using a programming language that has limited
vocabulary, an explicitly defied grammar and well-formed rules of syntax and semantics.

Need of Software Engineering

 The need of software engineering arises because of higher rate of change in user
requirements and environment on which the software is working.
 Large software - It is easier to build a wall than to a house or building, likewise, as the
size of software become large engineering has to step to give it a scientific process.
 Scalability- If the software process was not based on scientific and engineering concept,
it would be easier to re-create new software than to scale an existing one.
 Cost- As hardware industry has shown its skills and huge manufacturing has lower down
the price of computer and electronic hardware. But the cost of software remains high if
proper process is not adapted.
 Dynamic Nature- The always growing and adapting nature of software hugely depends
upon the environment in which user works. If the nature of software is always changing,
new enhancements need to be done in the existing one. This is where software
engineering plays a good role.
 Quality Management- Better process of software development provides better and
quality software product.

SOFTWARE CHARACTERISTICS

 Software is developed: It is not manufactured. It is not something that will automatically


roll out of an assembly line. It ultimately depend on individual skill and creative ability
 Software does not Wear Out : Software is not susceptible to the environmental
melodies and it does not suffer from any effects with time

 Most Software is Created and Not Assembled from Existing Components

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

A Layered Technology of software Engineering

1.Quality Focus:

 Degree of goodness
 Correctness
 Maintainability
 Usablility
 Bedrock for any product:

2. Process:

 What to do?
 Deals with the activity, action and task
 Come out with “how” to question.

3. Method:

 Implimentation
 Communicaiton
 Requirment and design modulation analysis
 Using a programming tools
 Testing and support.

4. Tools:

 Environment:
 Helping hand of process.
 Automated support

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

 Used for code, design test or sell

McCall’s Factor Model

This model classifies all software requirements into 11 software quality factors. The 11
factors are grouped into three categories – product operation, product revision, and product
transition factors.

 Product operation factors − Correctness, Reliability, Efficiency, Integrity, Usability.

 Product revision factors − Maintainability, Flexibility, Testability.

 Product transition factors − Portability, Reusability, Interoperability.

Product Operation Software Quality Factors

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

According to McCall’s model, product operation category includes five software quality
factors, which deal with the requirements that directly affect the daily operation of the
software. They are as follows −

Correctness

These requirements deal with the correctness of the output of the software system. They
include −

 Output mission

 The required accuracy of output that can be negatively affected by inaccurate data or
inaccurate calculations.

 The completeness of the output information, which can be affected by incomplete data.

 The up-to-date of the information defined as the time between the event and the response
by the software

 system.

 The availability of the information.

 The standards for coding and documenting the software system.

Reliability

Reliability requirements deal with service failure. They determine the maximum allowed
failure rate of the software system, and can refer to the entire system or to one or more of its
separate functions.

Efficiency

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

It deals with the hardware resources needed to perform the different functions of the software
system. It includes processing capabilities (given in MHz), its storage capacity (given in MB
or GB) and the data communication capability (given in MBPS or GBPS).

It also deals with the time between recharging of the system’s portable units, such as,
information system units located in portable computers, or meteorological units placed
outdoors.

Integrity

This factor deals with the software system security, that is, to prevent access to unauthorized
persons, also to distinguish between the group of people to be given read as well as write
permit.

Usability

Usability requirements deal with the staff resources needed to train a new employee and to
operate the software system.

Product Revision Quality Factors

According to McCall’s model, three software quality factors are included in the product
revision category. These factors are as follows −

Maintainability

This factor considers the efforts that will be needed by users and maintenance personnel to
identify the reasons for software failures, to correct the failures, and to verify the success of
the corrections.

Flexibility

This factor deals with the capabilities and efforts required to support adaptive maintenance
activities of the software. These include adapting the current software to additional
circumstances and customers without changing the software. This factor’s requirements also
support perfective maintenance activities, such as changes and additions to the software in
order to improve its service and to adapt it to changes in the firm’s technical or commercial
environment.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Testability

Testability requirements deal with the testing of the software system as well as with its
operation. It includes predefined intermediate results, log files, and also the automatic
diagnostics performed by the software system prior to starting the system, to find out whether
all components of the system are in working order and to obtain a report about the detected
faults. Another type of these requirements deals with automatic diagnostic checks applied by
the maintenance technicians to detect the causes of software failures.

Product Transition Software Quality Factor

According to McCall’s model, three software quality factors are included in the product
transition category that deals with the adaptation of software to other environments and its
interaction with other software systems. These factors are as follows −

Portability

Portability requirements tend to the adaptation of a software system to other environments


consisting of different hardware, different operating systems, and so forth. The software
should be possible to continue using the same basic software in diverse situations.

Reusability

This factor deals with the use of software modules originally designed for one project in a
new software project currently being developed. They may also enable future projects to
make use of a given module or a group of modules of the currently developed software. The
reuse of software is expected to save development resources, shorten the development period,
and provide higher quality modules.

Interoperability

Interoperability requirements focus on creating interfaces with other software systems or


with other equipment firmware. For example, the firmware of the production machinery and
testing equipment interfaces with the production control software.

Product
The product is the final outcome of the software development process. A product is built on the
customer's requirements/requests.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Process
The process is a set of steps that are to be followed to create a product. A process is a template
that can be used to create multiple products in a similar fashion.
The following are some of the important differences between Product and Process.

Sr. Key Product Process


No.

Concept The product is the final result of a The process is a sequence or set of
1 development cycle. steps that should be followed to
create a product.

Focus Product development focus is on final The process focuses on each step
2 outcome. to be followed during software
product development.

Life A product life cycle tends to be in the A process life cycle is generally
3
short term. long term.

Goal The main goal of product development The main goal of a process is to
4 is to finish the work and get the product make a good quality products.
delivered successfully.

Software Engineering | Software Product

Software Products are nothing but software systems delivered to the customer with the
documentation that that describe how to install and use the system. In certain cases, software
products may be part of system products where hardware, as well as software, is delivered to
a customer. Software products are produced with the help of the software process. The
software process is a way in which we produce software.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Types of software products:

Software products fall into two broad categories:


1. Generic products:
Generic products are the stand-alone systems that are developed by a production unit and
sold on the open market to any customer who is able to buy them.
2. Customized Products:
Customized products are the systems that are commissioned by a particular customer.
Some contractor develops the software for that customer.

Essential characteristics of Well-Engineered Software Product:


A well-engineered software product should possess the following essential characteristics:
 Efficiency:
The software should not make wasteful use of system resources such as memory and
processor cycles.
 Maintainability:
It should be possible to evolve the software to meet the changing requirements of
customers.
 Dependability:
It is the flexibility of the software that ought to not cause any physical or economic injury
within the event of system failure. It includes a range of characteristics such as reliability,
security and safety.
 In time:
Software should be developed well in time.
 Within Budget:
The software development costs should not overrun and it should be within the budgetary
limit.
 Functionality:
The software system should exhibit the proper functionality, i.e, it should perform all the
functions it is supposed to perform.
 Adaptability:
The software system should have the ability to get adapted to a reasonable extent with the
changing requirements.

Software Process

A software process (also knows as software methodology) is a set of related activities that leads

to the production of the software. These activities may involve the development of the software
from the scratch, or, modifying an existing system.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Any software process must include the following four activities:

1. Software specification (or requirements engineering): Define the main functionalities of


the software and the constrains around them.
2. Software design and implementation: The software is to be designed and programmed.
3. Software verification and validation: The software must conform to its specification
and meets the customer needs.
4. Software evolution (software maintenance): The software is being modified to meet
customer and market requirements changes.

Software Process Models

A software process model is a simplified representation of a software process. Each model

represents a process from a specific perspective.

We’re going to take a quick glance about very general process models. These generic models are

abstractions of the process that can be used to explain different approaches to the software

development. They can be adapted and extended to create more specific processes.

V-Model
The V-model is an SDLC model where execution of processes happens in a sequential manner
in a V-shape. It is also known as Verification and Validation model.
The V-Model is an extension of the waterfall model and is based on the association of a testing
phase for each corresponding development stage. This means that for every single phase in the
development cycle, there is a directly associated testing phase. This is a highly-disciplined
model and the next phase starts only after completion of the previous phase.

V-Model - Design

Under the V-Model, the corresponding testing phase of the development phase is planned in
parallel. So, there are Verification phases on one side of the ‘V’ and Validation phases on the
other side. The Coding Phase joins the two sides of the V-Model.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

The following illustration depicts the different phases in a V-Model of the SDLC.

V-Model - Verification Phases

There are several Verification phases in the V-Model, each of these are explained in detail
below.

Business Requirement Analysis

This is the first phase in the development cycle where the product requirements are understood
from the customer’s perspective. This phase involves detailed communication with the
customer to understand his expectations and exact requirement. This is a very important activity
and needs to be managed well, as most of the customers are not sure about what exactly they
need. The acceptance test design planning is done at this stage as business requirements can
be used as an input for acceptance testing.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

System Design

Once you have the clear and detailed product requirements, it is time to design the complete
system. The system design will have the understanding and detailing the complete hardware and
communication setup for the product under development. The system test plan is developed
based on the system design. Doing this at an earlier stage leaves more time for the actual test
execution later.

Architectural Design

Architectural specifications are understood and designed in this phase. Usually more than one
technical approach is proposed and based on the technical and financial feasibility the final
decision is taken. The system design is broken down further into modules taking up different
functionality. This is also referred to as High Level Design (HLD).
The data transfer and communication between the internal modules and with the outside world
(other systems) is clearly understood and defined in this stage. With this information,
integration tests can be designed and documented during this stage.

Module Design

In this phase, the detailed internal design for all the system modules is specified, referred to
as Low Level Design (LLD). It is important that the design is compatible with the other
modules in the system architecture and the other external systems. The unit tests are an essential
part of any development process and helps eliminate the maximum faults and errors at a very
early stage. These unit tests can be designed at this stage based on the internal module designs.

Coding Phase

The actual coding of the system modules designed in the design phase is taken up in the Coding
phase. The best suitable programming language is decided based on the system and architectural
requirements.
The coding is performed based on the coding guidelines and standards. The code goes through
numerous code reviews and is optimized for best performance before the final build is checked
into the repository.

Validation Phases

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

The different Validation Phases in a V-Model are explained in detail below.

Unit Testing

Unit tests designed in the module design phase are executed on the code during this validation
phase. Unit testing is the testing at code level and helps eliminate bugs at an early stage, though
all defects cannot be uncovered by unit testing.

Integration Testing

Integration testing is associated with the architectural design phase. Integration tests are
performed to test the coexistence and communication of the internal modules within the system.

System Testing

System testing is directly associated with the system design phase. System tests check the entire
system functionality and the communication of the system under development with external
systems. Most of the software and hardware compatibility issues can be uncovered during this
system test execution.

Acceptance Testing

Acceptance testing is associated with the business requirement analysis phase and involves
testing the product in user environment. Acceptance tests uncover the compatibility issues with
the other systems available in the user environment. It also discovers the non-functional issues
such as load and performance defects in the actual user environment.

V- Model ─ Application

V- Model application is almost the same as the waterfall model, as both the models are of
sequential type. Requirements have to be very clear before the project starts, because it is
usually expensive to go back and make changes. This model is used in the medical development
field, as it is strictly a disciplined domain.
The following pointers are some of the most suitable scenarios to use the V-Model application.
 Requirements are well defined, clearly documented and fixed.
 Product definition is stable.
 Technology is not dynamic and is well understood by the project team.
 There are no ambiguous or undefined requirements.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

 The project is short.

V-Model - Pros and Cons

The advantage of the V-Model method is that it is very easy to understand and apply. The
simplicity of this model also makes it easier to manage. The disadvantage is that the model is
not flexible to changes and just in case there is a requirement change, which is very common in
today’s dynamic world, it becomes very expensive to make the change.
The advantages of the V-Model method are as follows −
 This is a highly-disciplined model and Phases are completed one at a time.
 Works well for smaller projects where requirements are very well understood.
 Simple and easy to understand and use.
 Easy to manage due to the rigidity of the model. Each phase has specific deliverables and
a review process.
The disadvantages of the V-Model method are as follows −
 High risk and uncertainty.
 Not a good model for complex and object-oriented projects.
 Poor model for long and ongoing projects.
 Not suitable for the projects where requirements are at a moderate to high risk of
changing.
 Once an application is in the testing stage, it is difficult to go back and change
functionality.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Unit 4: Requirement Engineering

4.1 Introduction

Requirement Engineering is the process of defining, documenting and maintaining the


requirements. It is a process of gathering and defining service provided by the system.
Requirements Engineering Process consists of the following main activities:
 Requirements elicitation
 Requirements specification
 Requirements verification and validation
 Requirements management
Software Engineering | Classification of Software Requirements

According to IEEE standard 729, a requirement is defined as follows:


 A condition or capability needed by a user to solve a problem or achieve an objective
 A condition or capability that must be met or possessed by a system or system component
to satisfy a contract, standard, specification or other formally imposed documents
 A documented representation of a condition or capability as in 1 and 2.
A software requirement can be of 3 types:
 Functional requirements
 Non-functional requirements
 Domain requirements

4.2 Requirement Elicitation


It is related to the various ways used to gain knowledge about the project domain and
requirements. The various sources of domain knowledge include customers, business manuals,
the existing software of same type, standards and other stakeholders of the project.
The techniques used for requirements elicitation include interviews, brainstorming, task analysis,
Delphi technique, prototyping, etc. Some of these are discussed here. Elicitation does not
produce formal models of the requirements understood. Instead, it widens the domain knowledge
of the analyst and thus helps in providing input to the next stage.

Requirements elicitation is perhaps the most difficult, most error-prone and most
communication intensive software development. It can be successful only through an effective
customer-developer partnership. It is needed to know what the users really need.
There are a number of requirements elicitation methods. Few of them are listed below –

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

1. Interviews
2. Brainstorming Sessions
3. Facilitated Application Specification Technique (FAST)
4. Quality Function Deployment (QFD)
5. Use Case Approach
The success of an elicitation technique used depends on the maturity of the analyst, developers,
users and the customer involved.
1. Interviews:
Objective of conducting an interview is to understand the customer’s expectations from the
software.
It is impossible to interview every stakeholder hence representatives from groups are selected
based on their expertise and credibility.
Interviews maybe be open ended or structured.
1. In open ended interviews there is no pre-set agenda. Context free questions may be asked
to understand the problem.
2. In structured interview, agenda of fairly open questions is prepared. Sometimes a proper
questionnaire is designed for the interview.
2. Brainstorming Sessions:
 It is a group technique
 It is intended to generate lots of new ideas hence providing a platform to share views
 A highly trained facilitator is required to handle group bias and group conflicts.
 Every idea is documented so that everyone can see it.
 Finally a document is prepared which consists of the list of requirements and their priority
if possible.
3. Facilitated Application Specification Technique:
It’s objective is to bridge the expectation gap – difference between what the developers think
they are supposed to build and what customers think they are going to get.
A team oriented approach is developed for requirements gathering.
Each attendee is asked to make a list of objects that are-
1. Part of the environment that surrounds the system
2. Produced by the system
3. Used by the system
Each participant prepares his/her list, different lists are then combined, redundant entries are
eliminated, team is divided into smaller sub-teams to develop mini-specifications and finally a
draft of specifications is written down using all the inputs from the meeting.
4. Quality Function Deployment:
In this technique customer satisfaction is of prime concern, hence it emphasizes on the
requirements which are valuable to the customer.
3 types of requirements are identified –

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

 Normal requirements – In this the objective and goals of the proposed software are
discussed with the customer. Example – normal requirements for a result management
system may be entry of marks, calculation of results etc
 Expected requirements – These requirements are so obvious that the customer need not
explicitly state them. Example – protection from unauthorised access.
 Exciting requirements – It includes features that are beyond customer’s expectations and
prove to be very satisfying when present. Example – when an unauthorised access is
detected, it should backup and shutdown all processes.
The major steps involved in this procedure are –
1. Identify all the stakeholders, eg. Users, developers, customers etc
2. List out all requirements from customer.
3. A value indicating degree of importance is assigned to each requirement.
4. In the end the final list of requirements is categorised as –
 It is possible to achieve
 It should be deferred and the reason for it
 It is impossible to achieve and should be dropped off
5. Use Case Approach:
This technique combines text and pictures to provide a better understanding of the requirements.
The use cases describe the ‘what’, of a system and not ‘how’. Hence they only give a functional
view of the system.
The components of the use case deign includes three major things – Actor, Use cases, use case
diagram.
1. Actor – It is the external agent that lies outside the system but interacts with it in some
way. An actor maybe a person, machine etc. It is represented as a stick figure. Actors can
be primary actors or secondary actors.
 Primary actors – It requires assistance from the system to achieve a goal.
 Secondary actor – It is an actor from which the system needs assistance.
2. Use cases – They describe the sequence of interactions between actors and the system.
They capture who(actors) do what(interaction) with the system. A complete set of use cases
specifies all possible ways to use the system.
3. Use case diagram – A use case diiagram graphically represents what happens when an
actor interacts with a system. It captures the functional aspect of the system.
 A stick figure is used to represent an actor.
 An oval is used to represent a use case.
 A line is used to represent a relationship between an actor and a use case.

4.3 Requirement Elaboration

Elaboration means “to work out in detail”. The information obtained during inception &
elicitation is expanded and modified during elaboration. Requirement engineering activity
focuses on developing the technical model of the software that will include : function , features

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

& constraints. Thus , elaboration is an “analysis modeling action”. This model focuses on how
the end user will ‘interact with the system’

3. Elaboration
 In this task, the information taken from user during inception and elaboration and are expanded
and refined in elaboration.
 Its main task is developing pure model of software using functions, feature and constraints of a
software.
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.
The goal of requirement engineering is to develop and maintain sophisticated and descriptive
‘System Requirements Specification’ document.

Requirement Engineering Process

It is a four step process, which includes –

 Feasibility Study
 Requirement Gathering
 Software Requirement Specification
 Software Requirement Validation
Let us see the process briefly -

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.
Referencing to this information, the analysts does a detailed study about whether the desired
system and its functionality are feasible to develop.
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

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

project to organization, cost constraints and as per values and objectives of the organization. It
explores technical aspects of the project and product such as usability, maintainability,
productivity and integration ability.
The output of this phase should be a feasibility study report that should contain adequate
comments and recommendations for management about whether or not the project should be
undertaken.

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.

Software Requirement Specification

SRS is a document created by system analyst after the requirements are collected from various
stakeholders.
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.
The requirements received from client are written in natural language. It is the responsibility of
system analyst to document the requirements in technical language so that they can be
comprehended and useful by the software development team.
SRS should come up with following features:

 User Requirements are expressed in natural language.


 Technical requirements are expressed in structured language, which is used inside the
organization.
 Design description should be written in Pseudo code.
 Format of Forms and GUI screen prints.
 Conditional and mathematical notations for DFDs etc.

Software Requirement Validation

After requirement specifications are developed, the requirements mentioned in this document
are validated. User might ask for illegal, impractical solution or experts may interpret the
requirements incorrectly. This results in huge increase in cost if not nipped in the bud.
Requirements can be checked against following conditions -

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

 If they can be practically implemented


 If they are valid and as per functionality and domain of software
 If there are any ambiguities
 If they are complete
 If they can be demonstrated

Requirement Elicitation Process

Requirement elicitation process can be depicted using the folloiwng diagram:

 Requirements gathering - The developers discuss with the client and end users and
know their expectations from the software.
 Organizing Requirements - The developers prioritize and arrange the requirements in
order of importance, urgency and convenience.
 Negotiation & discussion - If requirements are ambiguous or there are some conflicts in
requirements of various stakeholders, if they are, it is then negotiated and discussed with
stakeholders. Requirements may then be prioritized and reasonably compromised.
The requirements come from various stakeholders. To remove the ambiguity and
conflicts, they are discussed for clarity and correctness. Unrealistic requirements are
compromised reasonably.

 Documentation - All formal & informal, functional and non-functional requirements are
documented and made available for next phase processing.

Requirement Elicitation Techniques

Requirements Elicitation is the process to find out the requirements for an intended software
system by communicating with client, end users, system users and others who have a stake in
the software system development.
There are various ways to discover requirements

Interviews

Interviews are strong medium to collect requirements. Organization may conduct several types
of interviews such as:

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

 Structured (closed) interviews, where every single information to gather is decided in


advance, they follow pattern and matter of discussion firmly.
 Non-structured (open) interviews, where information to gather is not decided in advance,
more flexible and less biased.
 Oral interviews
 Written interviews
 One-to-one interviews which are held between two persons across the table.
 Group interviews which are held between groups of participants. They help to uncover
any missing requirement as numerous people are involved.

Surveys

Organization may conduct surveys among various stakeholders by querying about their
expectation and requirements from the upcoming system.

Questionnaires

A document with pre-defined set of objective questions and respective options is handed over to
all stakeholders to answer, which are collected and compiled.
A shortcoming of this technique is, if an option for some issue is not mentioned in the
questionnaire, the issue might be left unattended.

Task analysis

Team of engineers and developers may analyze the operation for which the new system is
required. If the client already has some software to perform certain operation, it is studied and
requirements of proposed system are collected.

Domain Analysis

Every software falls into some domain category. The expert people in the domain can be a great
help to analyze general and specific requirements.

Brainstorming

An informal debate is held among various stakeholders and all their inputs are recorded for
further requirements analysis.

Prototyping

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Prototyping is building user interface without adding detail functionality for user to interpret the
features of intended software product. It helps giving better idea of requirements. If there is no
software installed at client’s end for developer’s reference and the client is not aware of its own
requirements, the developer creates a prototype based on initially mentioned requirements. The
prototype is shown to the client and the feedback is noted. The client feedback serves as an
input for requirement gathering.

Observation

Team of experts visit the client’s organization or workplace. They observe the actual working of
the existing installed systems. They observe the workflow at client’s end and how execution
problems are dealt. The team itself draws some conclusions which aid to form requirements
expected from the software.

Software Requirements Characteristics

Gathering software requirements is the foundation of the entire software development project.
Hence they must be clear, correct and well-defined.
A complete Software Requirement Specifications must be:

 Clear
 Correct
 Consistent
 Coherent
 Comprehensible
 Modifiable
 Verifiable
 Prioritized
 Unambiguous
 Traceable
 Credible source

Software Requirements

We should try to understand what sort of requirements may arise in the requirement elicitation
phase and what kinds of requirements are expected from the software system.
Broadly software requirements should be categorized in two categories:

Functional Requirements

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Requirements, which are related to functional aspect of software fall into this category.
They define functions and functionality within and from the software system.

Examples -

 Search option given to user to search from various invoices.


 User should be able to mail any report to management.
 Users can be divided into groups and groups can be given separate rights.
 Should comply business rules and administrative functions.
 Software is developed keeping downward compatibility intact.

Non-Functional Requirements

Requirements, which are not related to functional aspect of software, fall into this category.
They are implicit or expected characteristics of software, which users make assumption of.
Non-functional requirements include -

 Security
 Logging
 Storage
 Configuration
 Performance
 Cost
 Interoperability
 Flexibility
 Disaster recovery
 Accessibility
Requirements are categorized logically as

 Must Have : Software cannot be said operational without them.


 Should have : Enhancing the functionality of software.
 Could have : Software can still properly function with these requirements.
 Wish list : These requirements do not map to any objectives of software.
While developing software, ‘Must have’ must be implemented, ‘Should have’ is a matter of
debate with stakeholders and negation, whereas ‘could have’ and ‘wish list’ can be kept for
software updates.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

User Interface requirements

UI is an important part of any software or hardware or hybrid system. A software is widely


accepted if it is -

 easy to operate
 quick in response
 effectively handling operational errors
 providing simple yet consistent user interface
User acceptance majorly depends upon how user can use the software. UI is the only way for
users to perceive the system. A well performing software system must also be equipped with
attractive, clear, consistent and responsive user interface. Otherwise the functionalities of
software system can not be used in convenient way. A system is said be good if it provides
means to use it efficiently. User interface requirements are briefly mentioned below -

 Content presentation
 Easy Navigation
 Simple interface
 Responsive
 Consistent UI elements
 Feedback mechanism
 Default settings
 Purposeful layout
 Strategical use of color and texture.
 Provide help information
 User centric approach
 Group based view settings.

Software System Analyst

System analyst in an IT organization is a person, who analyzes the requirement of proposed


system and ensures that requirements are conceived and documented properly & correctly. Role
of an analyst starts during Software Analysis Phase of SDLC. It is the responsibility of analyst
to make sure that the developed software meets the requirements of the client.
System Analysts have the following responsibilities:

 Analyzing and understanding requirements of intended software


 Understanding how the project will contribute in the organization objectives

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

 Identify sources of requirement


 Validation of requirement
 Develop and implement requirement management plan
 Documentation of business, technical, process and product requirements
 Coordination with clients to prioritize requirements and remove and ambiguity
 Finalizing acceptance criteria with client and other stakeholders

Software Metrics and Measures

Software Measures can be understood as a process of quantifying and symbolizing various


attributes and aspects of software.
Software Metrics provide measures for various aspects of software process and software
product.
Software measures are fundamental requirement of software engineering. They not only help to
control the software development process but also aid to keep quality of ultimate product
excellent.
According to Tom DeMarco, a (Software Engineer), “You cannot control what you cannot
measure.” By his saying, it is very clear how important software measures are.
Let us see some software metrics:
 Size Metrics - LOC (Lines of Code), mostly calculated in thousands of delivered source
code lines, denoted as KLOC.
Function Point Count is measure of the functionality provided by the software. Function
Point count defines the size of functional aspect of software.

 Complexity Metrics - McCabe’s Cyclomatic complexity quantifies the upper bound of


the number of independent paths in a program, which is perceived as complexity of the
program or its modules. It is represented in terms of graph theory concepts by using
control flow graph.
 Quality Metrics - Defects, their types and causes, consequence, intensity of severity and
their implications define the quality of product.
The number of defects found in development process and number of defects reported by
the client after the product is installed or delivered at client-end, define quality of
product.

 Process Metrics - In various phases of SDLC, the methods and tools used, the company
standards and the performance of development are software process metrics.
 Resource Metrics - Effort, time and various resources used, represents metrics for
resource measurement.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

What is a Software Requirements Specification document?

A Software requirements specification document describes the intended purpose, requirements


and nature of a software to be developed. It also includes the yield and cost of the software.

4.6 Fact Finding Technique.

Technique Of Fact Finding In Systems Analysis And Design

1. INTERVIEWS.

This method is used to collect the information from groups or individuals. Analyst selects the
people who are related with the system for the interview. In this method the analyst sits face to
face with the people and records their responses. The interviewer must plan in advance
the type of questions he/ she is going to ask and should be ready to answer any type of question.
He should also choose a suitable place and time which will be comfortable for the respondent.

The information collected is quite accurate and reliable as the interviewer can clear and cross
check the doubts there itself. This method also helps gap the areas of misunderstandings and help
to discuss about the future problems. Structured and unstructured are the two sub categories of
Interview. Structured interview is more formal interview where fixed questions are asked and
specific information is collected whereas unstructured interview is more or less like a casual
conversation where in-depth areas topics are covered and other information apart from the topic
may also be obtained.

2. QUESTIONNAIRES.

It is the technique used to extract information from number of people. This method can be
adopted and used only by an skillful analyst. The Questionnaire consists of series of questions
framed together in logical manner. The questions are simple, clear and to the point. This method
is very useful for attaining information from people who are concerned with the usage of the

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

system and who are living in different countries. The questionnaire can be mailed or send to
people by post. This is the cheapest source of fact finding.

3. OBSERVATION.

Unlike the other fact finding techniques, in this method the analyst himself visits the
organization and observes and understand the flow of documents, working of
the existing system, the users of the system etc. For this method to be adopted it takes an analyst
to perform this job as he knows which points should be noticed and highlighted. In analyst may
observe the unwanted things as well and simply cause delay in the development of the new
system.

4. RECORD VIEW & BACKGROUND READING.

The information related to the system is published in the sources like newspapers, magazines,
journals, documents etc. This record review helps the analyst to get valuable information about
the system and the organization. If an analyst is employed within the organization that is the
subject of the fact gathering exercise, then it is likely that he or she will already have a good
understanding of the organization and its business objectives. If, however, he or she is going in
as an outside consultant, then one of the first tasks is to try to gain an understanding of the
organization. Background reading or research is part of that process. The kind of documents that
are suitable sources of information include the following although reading company reports may
provide the analyst with information about the organization's mission, and so possibly some
indication of future requirements, this technique mainly provides information about the current
system.

5. SAMPLING.

Document sampling can be used in two different ways. First, the analyst will collect copies of
blank and completed documents during the course of interviews and observation sessions. These
will be used to determine the information that is used by people in their work, and the inputs to
and outputs from processes which they carry out, either manually or using an existing computer
system. Ideally, where there is an existing system, screen shots should also be collected in order
to understand the inputs and outputs of the existing system.

Second, the analyst may carry out a statistical analysis of the documents in order to find out

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

about patterns of data. For example, many documents such as order forms contain a header
section and a number of lines of detail. (The sample document in Figure 6.1 shows this kind of
structure.) The analyst may want to know the distribution of the number of lines in an order. This
will help later in estimating volumes of data to be held in the system and in deciding how many
lines should be displayed on screen at one time. While this kind of statistical sampling can give a
picture of data volumes, the analyst should be alert to seasonal patterns of activity, which may

A Software Requirements Specification (SRS) is a document that describes the nature of a


project, software or application. In simple words, SRS document is a manual of a project
provided it is prepared before you kick-start a project/application. This document is also known
by the names SRS report, software document. A software document is primarily prepared for a
project, software or any kind of application.

There are a set of guidelines to be followed while preparing the software requirement
specification document. This includes the purpose, scope, functional and nonfunctional
requirements, software and hardware requirements of the project. In addition to this, it also
contains the information about environmental conditions required, safety and security
requirements, software quality attributes of the project etc.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Unit 5 :Analysis and Design Tools

5.1 Decision Tree

Decision Tree

Decision Tree : Decision tree is the most powerful and popular tool for classification and
prediction. A Decision tree is a flowchart like tree structure, where each internal node denotes a
test on an attribute, each branch represents an outcome of the test, and each leaf node (terminal
node) holds a class label.

What is a Decision Tree?

A decision tree is a map of the possible outcomes of a series of related choices. It allows an
individual or organization to weigh possible actions against one another based on their costs,
probabilities, and benefits.

As the name goes, it uses a tree-like model of decisions. They can be used either to drive
informal discussion or to map out an algorithm that predicts the best choice mathematically.

A decision tree typically starts with a single node, which branches into possible outcomes. Each
of those outcomes leads to additional nodes, which branch off into other possibilities. This gives
it a tree-like shape.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

There are three different types of nodes: chance nodes, decision nodes, and end nodes. A chance
node, represented by a circle, shows the probabilities of certain results. A decision node,
represented by a square, shows a decision to be made, and an end node shows the final outcome
of a decision path.

Advantages & Disadvantages of Decision Trees

Advantages

 Decision trees generate understandable rules.


 Decision trees perform classification without requiring much computation.
 Decision trees are capable of handling both continuous and categorical variables.
 Decision trees provide a clear indication of which fields are most important for prediction
or classification.

Disadvantages

 Decision trees are less appropriate for estimation tasks where the goal is to predict the
value of a continuous attribute.
 Decision trees are prone to errors in classification problems with many class and a
relatively small number of training examples.
 Decision trees can be computationally expensive to train. The process of growing a
decision tree is computationally expensive. At each node, each candidate splitting field
must be sorted before its best split can be found. In some algorithms, combinations of

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

fields are used and a search must be made for optimal combining weights. Pruning
algorithms can also be expensive since many candidate sub-trees must be formed and
compared.

Creating a Decision Tree

Let us consider a scenario where a new planet is discovered by a group of astronomers. Now the
question is whether it could be ‘the next earth?’ The answer to this question will revolutionize
the way people live. Well, literally!

There is n number of deciding factors which need to be thoroughly researched to take an


intelligent decision. These factors can be whether water is present on the planet, what is the
temperature, whether the surface is prone to continuous storms, flora and fauna survives the
climate or not, etc.

Let us create a decision tree to find out whether we have discovered a new habitat.

The habitable temperature falls into the range 0 to 100 Celsius.

Whether water is present or


not?

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Whether flora and fauna flourishes?

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

The planet has a stormy surface?

Thus,we a have a decision tree with us.

Classification Rules:

Classification rules are the cases in which all the scenarios are taken into consideration and a
class variable is assigned to each.

Class Variable:

Each leaf node is assigned a class-variable. A class-variable is the final output which leads to our
decision.

Let us derive the classification rules from the Decision Tree created:

1. If Temperature is not between 273 to 373K, -> Survival Difficult

2. If Temperature is between 273 to 373K, and water is not present, -> Survival Difficult

3. If Temperature is between 273 to 373K, water is present, and flora and fauna is not present ->
Survival Difficult

4. If Temperature is between 273 to 373K, water is present, flora and fauna is present, and a
stormy surface is not present -> Survival Probable

5. If Temperature is between 273 to 373K, water is present, flora and fauna is present, and a
stormy surface is present -> Survival Difficult

Decision Tree

A decision tree has the following constituents:

 Root Node: The factor of ‘temperature’ is considered as the root in this case.
 Internal Node: The nodes with one incoming edge and 2 or more outgoing edges.
 Leaf Node: This is the terminal node with no out-going edge.

As the decision tree is now constructed, starting from the root-node we check the test condition
and assign the control to one of the outgoing edges, and so the condition is again tested and a
node is assigned. The decision tree is said to be complete when all the test conditions lead to a
leaf node. The leaf node contains the class-labels, which vote in favor or against the decision.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Now, you might think why did we start with the ‘temperature’ attribute at the root? If you choose
any other attribute, the decision tree constructed will be different.

Correct. For a particular set of attributes, there can be numerous different trees created. We need
to choose the optimal tree which is done by following an algorithmic approach. We will now see
‘the greedy approach’ to create a perfect decision tree.

Decision table

Decision table is a brief visual representation for specifying which actions to perform depending
on given conditions. The information represented in decision tables can also be represented as
decision trees or in a programming language using if-then-else and switch-case statements.
A decision table is a good way to settle with different combination inputs with their
corresponding outputs and also called cause-effect table. Reason to call cause-effect table is a
related logical diagramming technique called cause-effect graphing that is basically used to
obtain the decision table.
Importance of Decision Table:
1. Decision tables are very much helpful in test design technique.
2. It helps testers to search the effects of combinations of different inputs and other software
states that must correctly implement business rules.
3. It provides a regular way of stating complex business rules, that is helpful for developers as
well as for testers.
4. It assists in development process with developer to do a better job. Testing with all
combination might be impractical.
5. A decision table is basically an outstanding technique used in both testing and requirements
management.
6. It is a structured exercise to prepare requirements when dealing with complex business
rules.
7. It is also used in model complicated logic.
Decision Table in test designing:
CONDITIONS STEP 1 STEP 2 STEP 3 STEP 4
Condition 1
Condition 2
Condition 3
Condition 4
Decision Table: Combinations
CONDITIONS STEP 1 STEP 2 STEP 3 STEP 4

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Condition 1 Y Y N N
Condition 2 Y N Y N
Condition 3 Y N N Y
Condition 4 N Y Y N
Advantage of Decision Table:
1. Any complex business flow can be easily converted into the test scenarios & test cases using
this technique.
2. Decision tables work iteratively that means the table created at the first iteration is used as
input table for next tables. The iteration is done only if the initial table is not satisfactory.
3. Simple to understand and everyone can use this method design the test scenarios & test
cases.
4. It provide complete coverage of test cases which help to reduce the rework on writing test
scenarios & test cases.
5. These tables guarantee that we consider every possible combination of condition values.
This is known as its completeness property.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with
the DSA Self Paced Course at a student-friendly price and become industry ready.

The condition is simple if the user provides correct username and password the user will be
redirected to the homepage. If any of the input is wrong, an error message will be displayed.

Conditions Rule 1 Rule 2 Rule 3 Rule 4

Username (T/F) F T F T

Password (T/F) F F T T

Output (E/H) E E E H

Legend:

 T – Correct username/password
 F – Wrong username/password
 E – Error message is displayed
 H – Home screen is displayed

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Interpretation:

 Case 1 – Username and password both were wrong. The user is shown an error message.
 Case 2 – Username was correct, but the password was wrong. The user is shown an error
message.
 Case 3 – Username was wrong, but the password was correct. The user is shown an error
message.
 Case 4 – Username and password both were correct, and the user navigated to homepage

While converting this to test case, we can create 2 scenarios ,

 Enter correct username and correct password and click on login, and the expected result
will be the user should be navigated to homepage

And one from the below scenario

 Enter wrong username and wrong password and click on login, and the expected result
will be the user should get an error message
 Enter correct username and wrong password and click on login, and the expected result
will be the user should get an error message
 Enter wrong username and correct password and click on login, and the expected result
will be the user should get an error message

As they essentially test the same rule.

Example 2: How to make Decision Table for Upload Screen

Now consider a dialogue box which will ask the user to upload photo with certain conditions like

1. You can upload only '.jpg' format image


2. file size less than 32kb
3. resolution 137*177.

If any of the conditions fails the system will throw corresponding error message stating the issue
and if all conditions are met photo will be updated successfully

Let's create the decision table for this case.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Conditio Case 1 Case 2 Case 3 Case 4 Case 5 Case 6 Case 7 Case 8


ns

Format .jpg .jpg .jpg .jpg Not .jpg Not .jpg Not .jpg Not .jpg

Size Less Less >= 32kb >= 32kb Less Less >= 32kb >= 32kb
than than than than
32kb 32kb 32kb 32kb

resolutio 137*17 Not 137*17 Not 137*17 Not 137*17 Not


n 7 137*177 7 137*177 7 137*177 7 137*177

Output Photo Error Error Error Error Error Error Error


uploade message message message message message message message
d resolutio size size and for format for for
n mismatc resolutio format and format format,
mismatc h n mismatc resolutio and size size, and
h mismatc h n mismatc resolutio
h mismatc h n
h mismatc
h

For this condition, we can create 8 different test cases and ensure complete coverage based on
the above table.

1. Upload a photo with format '.jpg', size less than 32kb and resolution 137*177 and click
on upload. Expected result is Photo should upload successfully
2. Upload a photo with format '.jpg', size less than 32kb and resolution not 137*177 and
click on upload. Expected result is Error message resolution mismatch should be
displayed
3. Upload a photo with format '.jpg', size more than 32kb and resolution 137*177 and click
on upload. Expected result is Error message size mismatch should be displayed
4. Upload a photo with format '.jpg', size more than equal to 32kb and resolution not
137*177 and click on upload. Expected result is Error message size and resolution
mismatch should be displayed
5. Upload a photo with format other than '.jpg', size less than 32kb and resolution 137*177
and click on upload. Expected result is Error message for format mismatch should be
displayed

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

6. Upload a photo with format other than '.jpg', size less than 32kb and resolution not
137*177 and click on upload. Expected result is Error message format and resolution
mismatch should be displayed
7. Upload a photo with format other than '.jpg', size more than 32kb and resolution 137*177
and click on upload. Expected result is Error message for format and size mismatch
should be displayed
8. Upload a photo with format other than '.jpg', size more than 32kb and resolution not
137*177 and click on upload. Expected result is Error message for format, size and
resolution mismatch should be displayed

Condition Rules Decision Rules


1 2 3 4 5 6
1. Within 10 days Y Y Y N N N
2.More than 10,000 Y N N Y N N
3.between 5,000 to 10,000 N Y N N Y N
4. Below 5,000 N N Y N N Y
Action
3% X
2% X
No discount X X X X

Why Decision Table Testing is Important?

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Decision Table Testing is Important because it helps to test different combinations of


conditions and provide better test coverage for complex business logic. When testing the
behavior of a large set of inputs where system behaviour differs with each set of input, decision
table testing provides good coverage and the representation is simple so it is easy to interpret and
use.

In Software Engineering, boundary value and equivalent partition are other similar techniques
used to ensure better coverage. They are used if the system shows the same behavior for a large
set of inputs. However, in a system where for each set of input values the system behavior
is different, boundary value and equivalent partitioning technique are not effective in ensuring
good test coverage.

n this case, decision table testing is a good option. This technique can make sure of good
coverage, and the representation is simple so that it is easy to interpret and use.

This table can be used as the reference for the requirement and for the functionality development
since it is easy to understand and cover all the combinations.

The significance of this technique becomes immediately clear as the number of inputs increases.
Number of possible Combinations is given by 2 ^ n , where n is the number of Inputs. For n =
10, which is very common in the web based testing, having big input forms, the number of
combinations will be 1024. Obviously, you cannot test all but you will choose a rich sub-set of
the possible combinations using decision based testing technique.

Advantages of Decision Table Testing

 When the system behavior is different for different input and not same for a range of
inputs, both equivalent partitioning, and boundary value analysis won't help, but decision
table can be used.
 The representation is simple so that it can be easily interpreted and is used for
development and business as well.
 This table will help to make effective combinations and can ensure a better coverage for
testing
 Any complex business conditions can be easily turned into decision tables
 In a case we are going for 100% coverage typically when the input combinations are low,
this technique can ensure the coverage.

Disadvantages of Decision Table Testing

The main disadvantage is that when the number of input increases the table will become more
complex

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

5.2 Data Flow diagrams(DFD) upto 2nd Level

Data Flow Diagram

Data flow diagram is graphical representation of flow of data in an information system. It is


capable of depicting incoming data flow, outgoing data flow and stored data. The DFD does not
mention anything about how data flows through the system.
There is a prominent difference between DFD and Flowchart. The flowchart depicts flow of
control in program modules. DFDs depict flow of data in the system at various levels. DFD
does not contain any control or branch elements.

Types of DFD

Data Flow Diagrams are either Logical or Physical.

 Logical DFD - This type of DFD concentrates on the system process, and flow of data in
the system.For example in a Banking software system, how data is moved between
different entities.
 Physical DFD - This type of DFD shows how the data flow is actually implemented in
the system. It is more specific and close to the implementation.

DFD Components

DFD can represent Source, destination, storage and flow of data using the following set of
components -

 Entities - Entities are source and destination of information data. Entities are represented
by a rectangles with their respective names.
 Process - Activities and action taken on the data are represented by Circle or Round-
edged rectangles.
 Data Storage - There are two variants of data storage - it can either be represented as a
rectangle with absence of both smaller sides or as an open-sided rectangle with only one
side missing.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

 Data Flow - Movement of data is shown by pointed arrows. Data movement is shown
from the base of arrow as its source towards head of the arrow as destination.

Levels of DFD

 Level 0 - Highest abstraction level DFD is known as Level 0 DFD, which depicts the
entire information system as one diagram concealing all the underlying details. Level 0
DFDs are also known as context level DFDs.

 Level 1 - The Level 0 DFD is broken down into more specific, Level 1 DFD. Level 1
DFD depicts basic modules in the system and flow of data among various modules. Level
1 DFD also mentions basic processes and sources of information.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

 Level 2 - At this level, DFD shows how data flows inside the modules mentioned in
Level 1.
Higher level DFDs can be transformed into more specific lower level DFDs with deeper
level of understanding unless the desired level of specification is achieved.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

5.3 Data Dictionary

Data Dictionary

Data dictionary is the centralized collection of information about data. It stores meaning and
origin of data, its relationship with other data, data format for usage etc. Data dictionary has
rigorous definitions of all names in order to facilitate user and software designers.
Data dictionary is often referenced as meta-data (data about data) repository. It is created along
with DFD (Data Flow Diagram) model of software program and is expected to be updated
whenever DFD is changed or updated.

Requirement of Data Dictionary

The data is referenced via data dictionary while designing and implementing software. Data
dictionary removes any chances of ambiguity. It helps keeping work of programmers and
designers synchronized while using same object reference everywhere in the program.
Data dictionary provides a way of documentation for the complete database system in one
place. Validation of DFD is carried out using data dictionary.

Contents

Data dictionary should contain information about the following

 Data Flow
 Data Structure
 Data Elements
 Data Stores
 Data Processing
Data Flow is described by means of DFDs as studied earlier and represented in algebraic form
as described.

= Composed of

{} Repetition

() Optional

+ And

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

[/] Or

Example

Address = House No + (Street / Area) + City + State


Course ID = Course Number + Course Name + Course Level + Course Grades

Data Elements

Data elements consist of Name and descriptions of Data and Control Items, Internal or External
data stores etc. with the following details:

 Primary Name
 Secondary Name (Alias)
 Use-case (How and where to use)
 Content Description (Notation etc. )
 Supplementary Information (preset values, constraints etc.)

Data Store

It stores the information from where the data enters into the system and exists out of the system.
The Data Store may include -

 Files
o Internal to software.
o External to software but on the same machine.
o External to software and system, located on different machine.
 Tables
o Naming convention
o Indexing property

Data Processin

There are two types of Data Processing:

 Logical: As user sees it


 Physical: As software sees it

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Entity-Relationship Diagrams

ER-modeling is a data modeling method used in software engineering to produce a conceptual


data model of an information system. Diagrams created using this ER-modeling method are
called Entity-Relationship Diagrams or ER diagrams or ERDs.

Purpose of ERD

o The database analyst gains a better understanding of the data to be contained in the
database through the step of constructing the ERD.
o The ERD serves as a documentation tool.
o Finally, the ERD is used to connect the logical structure of the database to users. In
particular, the ERD effectively communicates the logic of the database to users.

Components of an ER Diagrams

1. Entity

An entity can be a real-world object, either animate or inanimate, that can be merely identifiable.
An entity is denoted as a rectangle in an ER diagram. For example, in a school database,

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

students, teachers, classes, and courses offered can be treated as entities. All these entities have
some attributes or properties that give them their identity.

Entity Set

next →← prev

Entity-Relationship Diagrams

ER-modeling is a data modeling method used in software engineering to produce a conceptual


data model of an information system. Diagrams created using this ER-modeling method are
called Entity-Relationship Diagrams or ER diagrams or ERDs.

Purpose of ERD

o The database analyst gains a better understanding of the data to be contained in the
database through the step of constructing the ERD.
o The ERD serves as a documentation tool.
o Finally, the ERD is used to connect the logical structure of the database to users. In
particular, the ERD effectively communicates the logic of the database to users.

Components of an ER Diagrams

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

1. Entity

An entity can be a real-world object, either animate or inanimate, that can be merely
identifiable. An entity is denoted as a rectangle in an ER diagram. For example, in a school
database, students, teachers, classes, and courses offered can be treated as entities. All these
entities have some attributes or properties that give them their identity.

Entity Set

An entity set is a collection of related types of entities. An entity set may include entities with
attribute sharing similar values. For example, a Student set may contain all the students of a
school; likewise, a Teacher set may include all the teachers of a school from all faculties.
Entity set need not be disjoint.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

2. Attributes

Entities are denoted utilizing their properties, known as attributes. All attributes have values.
For example, a student entity may have name, class, and age as attributes.

There exists a domain or range of values that can be assigned to attributes. For example, a
student's name cannot be a numeric value. It has to be alphabetic. A student's age cannot be
negative, etc.

There are four types of Attributes:

1. Key attribute
2. Composite attribute
3. Single-valued attribute
4. Multi-valued attribute
5. Derived attribute

1. Key attribute: Key is an attribute or collection of attributes that uniquely identifies an


entity among the entity set. For example, the roll_number of a student makes him identifiable
among students.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

There are mainly three types of keys:

1. Super key: A set of attributes that collectively identifies an entity in the entity set.
2. Candidate key: A minimal super key is known as a candidate key. An entity set may
have more than one candidate key.
3. Primary key: A primary key is one of the candidate keys chosen by the database
designer to uniquely identify the entity set.

2. Composite attribute: An attribute that is a combination of other attributes is called a


composite attribute. For example, In student entity, the student address is a composite attribute as
an address is composed of other characteristics such as pin code, state, country.

student address is a composite attribute as an address is composed of other characteristics such as


pin code, state, country.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

3. Single-valued attribute: Single-valued attribute contain a single value. For example,


Social_Security_Number.

4. Multi-valued Attribute: If an attribute can have more than one value, it is known as a multi-
valued attribute. Multi-valued attributes are depicted by the double ellipse. For example, a person
can have more than one phone number, email-address, etc.

5. Derived attribute: Derived attributes are the attribute that does not exist in the physical
database, but their values are derived from other attributes present in the database. For example,
age can be derived from date_of_birth. In the ER diagram, Derived attributes are depicted by the
dashed ellipse.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

3. Relationships

The association among entities is known as relationship. Relationships are represented by the
diamond-shaped box. For example, an employee works_at a department, a student enrolls in a
course. Here, Works_at and Enrolls are called relationships.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Relationship set

A set of relationships of a similar type is known as a relationship set. Like entities, a relationship
too can have attributes. These attributes are called descriptive attributes.

Degree of a relationship set

The number of participating entities in a relationship describes the degree of the relationship.
The three most common relationships in E-R models are:

1. Unary (degree1)
2. Binary (degree2)
3. Ternary (degree3)

1. Unary relationship: This is also called recursive relationships. It is a relationship between the
instances of one entity type. For example, one person is married to only one person.

2. Binary relationship: It is a relationship between the instances of two entity types. For
example, the Teacher teaches the subject.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

3. Ternary relationship: It is a relationship amongst instances of three entity types. In fig, the
relationships "may have" provide the association of three entities, i.e., TEACHER, STUDENT,
and SUBJECT. All three entities are many-to-many participants. There may be one or many
participants in a ternary relationship.

In general, "n" entities can be related by the same relationship and is known as n-
ary relationship.

Cardinality

Cardinality describes the number of entities in one entity set, which can be associated with the
number of entities of other sets via relationship set.

Types of Cardinalities

1. One to One: One entity from entity set A can be contained with at most one entity of entity
set B and vice versa. Let us assume that each student has only one student ID, and each student
ID is assigned to only one person. So, the relationship will be one to one.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Using Sets, it can be represented as:

2. One to many: When a single instance of an entity is associated with more than one instances
of another entity then it is called one to many relationships. For example, a client can place many
orders; a order cannot be placed by many customers.

Using Sets, it can be represented as:

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

3. Many to One: More than one entity from entity set A can be associated with at most one
entity of entity set B, however an entity from entity set B can be associated with more than one
entity from entity set A. For example - many students can study in a single college, but a student
cannot study in many colleges at the same time.

Using Sets, it can be represented as:

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

4. Many to Many: One entity from A can be associated with more than one entity from B and
vice-versa. For example, the student can be assigned to many projects, and a project can be
assigned to many students.

Using Sets, it can be represented as:

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Pseudo-code

 Pseudo-code is a tool that can be used to express algorithms more precisely


 Pseudo-code is a combination of programming code and ordinary English
 Pseudo-code allows algorithms to be specified precisely without having to worry about
programming language syntax
 There is currently no firmly established standard for Pseudo Code
 Pseudo-code is not actually executed on a computer, it simply provides a means for
programmers to "Think out" their programs before they implement them
 A carefully prepared pseudo code program can be easily converted to a programming
language such as C++ or Java.
 HOW TO WRITE PSEUDO CODE?
o Any algorithm will eventually need to have its instructions performed by a
computer
o For this reason the keywords used in Pseudo code are based on the main functions
fo a computer.
 Rules for Pseudo-code
o INPUT
 READ get input from a file
 GET get input from the keyboard
o ARITHMETIC / CALCULATIONS
 +_ * / ( ) =
o OUTPUT
 PRINT output to a printer
 WRITE output to a file
 DISPLAY output to a monitor
o STORE
 SET total_price to 0
 total_price = cost_price + tax
o COMPARE
IF student is part time THEN ADD 1 to part time ELSE ADD 1 to full time ENDIF
o REPETITION
 DOWHILE student_total < 50 READ student_record ADD 1 to
student_total ENDDO
 WHILE student_total < 50 READ student_record ADD 1 to student_total
ENDWHILE
 Examples

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Input and Output Design

 A major step in design is the preparation of input and the design of output reports in a
form acceptable to the user.

 Inaccurate input data are the most common cause of errors in data processing. Errors
entered by data entry operators can be controlled by input design

 Input design is the process of converting user oriented inputs to a computer based format
.
 In system design phase, the expanded data flow diagram identifies logical data flows,
data stores, sources and destinations. A system flowchart specifies master files
transaction files and computer programs.

 Input data are collected and organized into groups of similar data. Once identified,
appropriate input media are selected for processing.

Methods and Issues for data capture and input

 Input design consists of developing specifications and procedures for data preparation,
those steps necessary to put transaction data into a usable form for processing and data
entry, the activity of putting the data into the computer for processing.

 The five objectives guide the design of input which are:


 1. Controlling amount of input 3. Avoiding errors in data
2. Avoiding delay, 4. Avoiding extra steps
5. Keep process simple

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Data capture, Data Entry, Data Input

1.Data capture: Data capture is the capture the data from the outside world other than the
system which has been developed. There are general guidelines that will assist the analyst in
formulating an input design. The analyst should start by capturing only those items that must
actually be input.

There are two types of data that must be input when processing transaction.

1. Variable data: Those data items that change for each transaction handled or decision made

2. Identification data: The element of data that uniquely identifies the item being processed

2. Data Entry:

Data entry is to store or enter the data in the database of the existing system when the data input
is been alone. What not to enter is equally important. Input procedure should not require entry
of the following

Constant data: Data that are the same for every entry.

Details that the system can retrieve: stored data that are quickly retrievable from system files

Details that the system can calculate: Results that can be produced by having the system use
combinations of stored and entered data.

To provide the item number and quantity purchased. The design then specifies that the system
will retrieve the unit price and multiply it by the quantity to produce the cost extension for one
item. It also totals all the extensions for an order, calculate sales tax and draw a grand total.
Only a few items need be entered for this processing to occur. Hence data entry is the data that
the user has to enter to complete the transaction.

3. Data Input: To actually input the data in the existing way of format provided by the system.
The goal of designing input data is to make data entry as easy. Logical and free from errors as
possible. In entering data, operators need to know the following.

1. The allocated space for each field.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

2. Field sequence, which must match that in the source document

3. The format in which data fields are entered

Data capture (Issues and Methods)

 The source document is the form on which data are initially captured i.e. recorded
 A well-designed source document is easily completed and allows the process of actually
Recording the data to be rapid
 There are four commonly used methods for data capture.
1. Source data capture with key punching
2. Source data capture with key to storage.
3. Source data capture with scanner.
4. Direct entry through intelligent terminals.

Input Methods and Media

Source data are input into the system in a variety of ways. The following media and devices are
suitable for operation.

1. Punch cards are either 80 or 96 columns wide. Data are arranged in a sequential and logical
order. Operators use a keypunch to copy data from source documents onto cards. This means
that the source document and card design must be considered simultaneously.

2.

Internal Controls for inputs, implement and requirements

Internal controls are been implemented for inputs so as there is a requirement for avoid errors in
the input.

Three main categories of methods are concerned with checking the transaction data and changing
the transaction data.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Checking the transaction: It is essential to identify any transactions that are not valid, that is
not acceptable. Transaction can be invalid because they are incomplete, unauthorized or even
out of order.

1. Batch controls: Batch processing means delaying processing by accumulating the transactions
into batches or groups of records. To control the error rate, batch control uses fixed both size.
At the end of all the batches, the batch totals the number of batches which are processed. That
number should be equal to the number of batches and hence, controls the processing.

2. Transaction validation: The steps of system takes to ensure that the transaction is acceptable
are called transaction validation.

3. Sequence Test: sequence test use codes in the data serial numbers, to test for either of two
different conditions, depending on the characteristics of the application. In some system, the
order of transactions is important. In a bank if a series of withdrawals is mistake. Processed
before a deqosit that actually occurred first, the customer

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

OutPut Design

The Output from an information system should accomplish one or more of the following
objectives.

1. Convey information about past activities, current status or projections of the future.

2. Signal important events, opportunities, problems or warnings.

3. Trigger an action.

4. Confirm an action.

There are many guidelines that will make the analyst’s job easier and more important ensures the
users

Of receiving an understandable report.

1. Report and documents should be designed to read from left to right and top to bottom.

2. the most important items should be the easiest to find

3. All pages should have a title and page number and show the date the output was prepared.

4. All columns should be labeled.

5. Abbreviations should be avoided

Choice for Media and Formats of computer, Generated Outputs.

 The Output of the system is the primary contact between the system and most users. The
quality of this output and its usefulness determines whether the system will be used, so it
is essential to have the best possible output.
 Computer output is the most important and direct source of information to the
user.Effecient intelligible output design should improve the sytems relationships with the
user and help in decision making.
 A major form of output is a hard copy from the printer. Printers should be designed
around the output requirements of the user.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

 The output devices of consider depend on factors such as compatibility of the device with
the system, response time requirements, expected print quality and number of copies
needed.

The following media device are available for providing computer based output.

1. MICR Readers

2. Line, Matrix and laser printers,

3. Computer output micro film.

4. CRT screen display

5. Graph plotters.

Computer output is for people. Hence the format of the computer output should be approved by
the people.

Whether the output is a formatted report or a simple listing of the contents of a file, a computer
process will produce the output.

System output may be:

1. A report

2. A document

3. A message.

Depending on the circumstances and the contents, the output may be displayed or printed .
Output contents originate from these sources:

1. Retrieval from a data store.

2. Transmission from a process or system activity.

3. Directly from an input source. The information can be represented in a:

a. Tabular format

b. Graphic format

1. To facilitate effective presentation of data.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

2. To manage a volume of information.

3. To fulfill personal preference.

c. Printed Output.

d. Visual display output.

Internal Controls for Outputs.

Internal controls for outputs govern the pattern of outputs. It defines the representation of
outputs either on VDU or printed form.

The controls applied on outputs are such as:

1. The size of paper or screen in which the output should fit in.

2. The type of font or color used.

3. Display or print should be in tabular form or graphic form. In graphics pie chart or bar chart.

4. If printed format, then how many number of copies should be printed.

5. Carbonless copies or interleaved carbon copies.

6. Deciding the layout of display screens.

All the above forms the internal controls of outputs.

Examples of Output’s Generated:

1. Types of business graphics:

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Steps involved to prototype and design computer Output

For many end-users output is the main reason for developing the system and the basis on which
they will evaluate the usefulness of the application.

When designing output, systems analysts must accomplish the following

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

1. Determine what information to present.

2. Decide whether to display, print or “speak” the information and select the output medium.

3. Arrange the presentation of information in an acceptable format.

4. Decide how to distribute the output to intended recipients.

To accomplish the activities listed above will require specific decisions, such as whether to use
preprinted forms when preparing reports and documents, how many lines to plan on a printed
page or whether to use graphics and color.

Software Design

Software design is a mechanism to transform user requirements into some suitable form, which
helps the programmer in software coding and implementation. It deals with representing the
client's requirement, as described in SRS (Software Requirement Specification) document, into a
form, i.e., easily implementable using programming language.

The software design phase is the first step in SDLC (Software Design Life Cycle), which moves
the concentration from the problem domain to the solution domain. In software design, we
consider the system to be a set of components or modules with clearly defined behaviors &
boundaries.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Objectives of Software Design

Following are the purposes of Software design:

1. Correctness: Software design should be correct as per requirement.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

2. Completeness: The design should have all components like data structures, modules, and
external interfaces, etc.
3. Efficiency: Resources should be used efficiently by the program.
4. Flexibility: Able to modify on changing needs.
5. Consistency: There should not be any inconsistency in the design.
6. Maintainability: The design should be so simple so that it can be easily maintainable by
other designers.

Software Design Principles

Software design principles are concerned with providing means to handle the complexity of the
design process effectively. Effectively managing the complexity will not only reduce the effort
needed for design but can also reduce the scope of introducing errors during design.

Following are the principles of Software Design

Problem Partitioning

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

For small problem, we can handle the entire problem at once but for the significant problem,
divide the problems and conquer the problem it means to divide the problem into smaller pieces
so that each piece can be captured separately.

For software design, the goal is to divide the problem into manageable pieces.

Benefits of Problem Partitioning

1. Software is easy to understand


2. Software becomes simple
3. Software is easy to test
4. Software is easy to modify
5. Software is easy to maintain
6. Software is easy to expand

These pieces cannot be entirely independent of each other as they together form the system. They
have to cooperate and communicate to solve the problem. This communication adds complexity.

Note: As the number of partition increases = Cost of partition and complexity increases

Abstraction

An abstraction is a tool that enables a designer to consider a component at an abstract level


without bothering about the internal details of the implementation. Abstraction can be used for
existing element as well as the component being designed.

Here, there are two common abstraction mechanisms

1. Functional Abstraction
2. Data Abstraction

Functional Abstraction

i. A module is specified by the method it performs.


ii. The details of the algorithm to accomplish the functions are not visible to the user of the
function.

Functional abstraction forms the basis for Function oriented design approaches.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Data Abstraction

Details of the data elements are not visible to the users of data. Data Abstraction forms the basis
for Object Oriented design approaches.

Modularity

Modularity specifies to the division of software into separate modules which are differently
named and addressed and are integrated later on in to obtain the completely functional software.
It is the only property that allows a program to be intellectually manageable. Single large
programs are difficult to understand and read due to a large number of reference variables,
control paths, global variables, etc.

The desirable properties of a modular system are:

o Each module is a well-defined system that can be used with other applications.
o Each module has single specified objectives.
o Modules can be separately compiled and saved in the library.
o Modules should be easier to use to build.
o Modules are simpler from outside than inside.

Advantages and Disadvantages of Modularity

In this topic, we will discuss various advantage and disadvantage of Modularity.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Advantages of Modularity

There are several advantages of Modularity

o It allows large programs to be written by several or different people


o It encourages the creation of commonly used routines to be placed in the library and used
by other programs.
o It simplifies the overlay procedure of loading a large program into main storage.
o It provides more checkpoints to measure progress.
o It provides a framework for complete testing, more accessible to test
o It produced the well designed and more readable program.

Disadvantages of Modularity

There are several disadvantages of Modularity

o Execution time maybe longer, but not certainly, longer


o Storage size increased perhaps, but is not certainly, increased
o Compilation and loading time may be longer
o Inter-module communication problems may be increased
o More linkage required, run-time may be longer, more source lines must be written, and
more documentation has to be done

Modular Design

Modular design reduces the design complexity and results in easier and faster implementation by
allowing parallel development of various parts of a system. We discuss a different section of
modular design in detail in this section:

1. Functional Independence: Functional independence is achieved by developing functions that


perform only one kind of task and do not excessively interact with other modules. Independence
is important because it makes implementation more accessible and faster. The independent
modules are easier to maintain, test, and reduce error propagation and can be reused in other
programs as well. Thus, functional independence is a good design feature which ensures
software quality.

It is measured using two criteria:

o Cohesion: It measures the relative function strength of a module.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

o Coupling: It measures the relative independence among modules.

2. Information hiding: The fundamental of Information hiding suggests that modules can be
characterized by the design decisions that protect from the others, i.e., In other words, modules
should be specified that data include within a module is inaccessible to other modules that do not
need for such information.

The use of information hiding as design criteria for modular system provides the most significant
benefits when modifications are required during testing's and later during software maintenance.
This is because as most data and procedures are hidden from other parts of the software,
inadvertent errors introduced during modifications are less likely to propagate to different
locations within the software.

Strategy of Design

A good system design strategy is to organize the program modules in such a method that are easy
to develop and latter too, change. Structured design methods help developers to deal with the
size and complexity of programs. Analysts generate instructions for the developers about how
code should be composed and how pieces of code should fit together to form a program.

To design a system, there are two possible approaches:

1. Top-down Approach
2. Bottom-up Approach

1. Top-down Approach: This approach starts with the identification of the main components
and then decomposing them into their more detailed sub-components.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

2. Bottom-up Approach: A bottom-up approach begins with the lower details and moves
towards up the hierarchy, as shown in fig. This approach is suitable in case of an existing system.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Coupling and Cohesion

Module Coupling

In software engineering, the coupling is the degree of interdependence between software


modules. Two modules that are tightly coupled are strongly dependent on each other. However,
two modules that are loosely coupled are not dependent on each other. Uncoupled modules have
no interdependence at all within them.

The various types of coupling techniques are shown in fig:

A good design is the one that has low coupling. Coupling is measured by the number of relations
between the modules. That is, the coupling increases as the number of calls between modules
increase or the amount of shared data is large. Thus, it can be said that a design with high
coupling will have more errors.

Types of Module Coupling

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

1. No Direct Coupling: There is no direct coupling between M1 and M2.

In this case, modules are subordinates to different modules. Therefore, no direct coupling.

2. Data Coupling: When data of one module is passed to another module, this is called data
coupling.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

3. Stamp Coupling: Two modules are stamp coupled if they communicate using composite data
items such as structure, objects, etc. When the module passes non-global data structure or entire
structure to another module, they are said to be stamp coupled. For example, passing structure
variable in C or object in C++ language to a module.

4. Control Coupling: Control Coupling exists among two modules if data from one module is
used to direct the structure of instruction execution in another.

5. External Coupling: External Coupling arises when two modules share an externally imposed
data format, communication protocols, or device interface. This is related to communication to
external tools and devices.

6. Common Coupling: Two modules are common coupled if they share information through
some global data items.

7. Content Coupling: Content Coupling exists among two modules if they share code, e.g., a
branch from one module into another module.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Module Cohesion

In computer programming, cohesion defines to the degree to which the elements of a module
belong together. Thus, cohesion measures the strength of relationships between pieces of
functionality within a given module. For example, in highly cohesive systems, functionality is
strongly related.

Cohesion is an ordinal type of measurement and is generally described as "high cohesion" or


"low cohesion."

Types of Modules Cohesion

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Functional Cohesion: Functional Cohesion is said to exist if the different elements of a module,
cooperate to achieve a single function.

1. Sequential Cohesion: A module is said to possess sequential cohesion if the element of a


module form the components of the sequence, where the output from one component of
the sequence is input to the next.

2. Communicational Cohesion: A module is said to have communicational cohesion, if all


tasks of the module refer to or update the same data structure, e.g., the set of functions
defined on an array or a stack.

3. Procedural Cohesion: A module is said to be procedural cohesion if the set of purpose


of the module are all parts of a procedure in which particular sequence of steps has to be
carried out for achieving a goal, e.g., the algorithm for decoding a message.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

4. Temporal Cohesion: When a module includes functions that are associated by the fact
that all the methods must be executed in the same time, the module is said to exhibit
temporal cohesion.

5. Logical Cohesion: A module is said to be logically cohesive if all the elements of the
module perform a similar operation. For example Error handling, data input and data
output, etc.

6. Coincidental Cohesion: A module is said to have coincidental cohesion if it performs a


set of tasks that are associated with each other very loosely, if at all.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

1. Conditional Call
It represents that control module can select any of the sub module on the basis of some
condition.

2. Loop (Repetitive call of module)


It represents the repetitive execution of module by the sub module.
A curved arrow represents loop in the module.

All the sub modules cover by the loop repeat execution of module.
3. Data Flow
It represents the flow of data between the modules. It is represented by directed arrow with
empty circle at the end.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

4. Control Flow
It represents the flow of control between the modules. It is represented by directed arrow
with filled circle at the end.

5. Physical Storage
Physical Storage is that where all the information are to be stored.

Example : Structure chart for an Email server

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Types of Structure Chart:


1. Transform Centered Structured:
These type of structure chart are designed for the systems that receives an input which is
transformed by a sequence of operations being carried out by one module.
2. Transaction Centered Structure:
These structure describes a system that processes a number of different types of
transaction.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Unit 6 :Software Testing

What is Software Testing?

Software testing is a process of identifying the correctness of software by considering its all
attributes (Reliability, Scalability, Portability, Re-usability, Usability) and evaluating the
execution of software components to find the software bugs or errors or defects.

Software testing provides an independent view and objective of the software and gives surety of
fitness of the software. It involves testing of all components under the required services to
confirm that whether it is satisfying the specified requirements or not. The process is also
providing the client with information about the quality of the software.

Testing is mandatory because it will be a dangerous situation if the software fails any of time due
to lack of testing. So, without testing software cannot be deployed to the end user.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

What is testing

Testing is a group of techniques to determine the correctness of the application under the
predefined script but, testing cannot find all the defect of application. The main intent of testing
is to detect failures of the application so that failures can be discovered and corrected. It does not
demonstrate that a product functions properly under all conditions but only that it is not working
in some specific conditions.

Testing furnishes comparison that compares the behavior and state of software against
mechanisms because the problem can be recognized by the mechanism. The mechanism may
include past versions of the same specified product, comparable products, and interfaces of
expected purpose, relevant standards, or other criteria but not limited up to these.

Testing includes an examination of code and also the execution of code in various environments,
conditions as well as all the examining aspects of the code. In the current scenario of software
development, a testing team may be separate from the development team so that Information
derived from testing can be used to correct the process of software development.

The success of software depends upon acceptance of its targeted audience, easy graphical user
interface, strong functionality load test, etc. For example, the audience of banking is totally
different from the audience of a video game. Therefore, when an organization develops a
software product, it can assess whether the software product will be beneficial to its purchasers
and other audience.

Type of Software testing

We have various types of testing available in the market, which are used to test the application or
the software.

With the help of below image, we can easily understand the type of software testing:

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Manual testing

The process of checking the functionality of an application as per the customer needs without
taking any help of automation tools is known as manual testing. While performing the manual
testing on any application, we do not need any specific knowledge of any testing tool, rather than
have a proper understanding of the product so we can easily prepare the test document.

Manual testing can be further divided into three types of testing, which are as follows:

o White box testing


o Black box testing
o Gray box testing

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Software Engineering | White box Testing


– Software Testing | Basics
White box testing techniques analyze the internal structures the used data structures, internal
design, code structure and the working of the software rather than just the functionality as in black
box testing. It is also called glass box testing or clear box testing or structural testing.
Working process of white box testing:
 Input: Requirements, Functional specifications, design documents, source code.
 Processing: Performing risk analysis for guiding through the entire process.
 Proper test planning: Designing test cases so as to cover entire code. Execute rinse-repeat
until error-free software is reached. Also, the results are communicated.
 Output: Preparing final report of the entire testing process.
Testing techniques:
 Statement coverage: In this technique, the aim is to traverse all statement at least once.
Hence, each line of code is tested. In case of a flowchart, every node must be traversed at
least once. Since all lines of code are covered, helps in pointing out faulty code.

Statement Coverage Example

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

 Branch Coverge: In this technique, test cases are designed so that each branch from all
decision points are traversed at least once. In a flowchart, all edges must be traversed at
least once.

4 test cases required such that all branches of all decisions are covered, i.e, all edges of flowchart are covered

 Condition Coverage: In this technique, all individual conditions must be covered as


shown in the following example:

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Automation testing

Automation testing is a process of converting any manual test cases into the test scripts with the
help of automation tools, or any programming language is known as automation testing. With the
help of automation testing, we can enhance the speed of our test execution because here, we do
not require any human efforts. We need to write a test script and execute those scripts.

Software Engineering | Structure Charts


Structure Chart represents hierarchical structure of modules. It breaks down the
entire system into lowest functional modules; describe functions and sub-functions
of each module of a system to a greater detail. Structure Chart partitions the system
into black boxes (functionality of the system is known to the users but inner details
are unknown). Inputs are given to the black boxes and appropriate outputs are
generated.
Modules at top level called modules at low level. Components are read from top to
bottom and left to right. When a module calls another, it views the called module
as black box, passing required parameters and receiving results.
Symbols used in construction of structured chart
1. Module
It represents the process or task of the system. It is of three types.
 Control Module
A control module branches to more than one sub module.
 Sub Module
Sub Module is a module which is the part (Child) of another module.
 Library Module
Library Module are reusable and invokable from any module.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

1. Conditional Call
It represents that control module can select any of the sub module on the basis
of some condition.

2. Loop (Repetitive call of module)


It represents the repetitive execution of module by the sub module.
A curved arrow represents loop in the module.

All the sub modules cover by the loop repeat execution of module.
3. Data Flow
It represents the flow of data between the modules. It is represented by
directed arrow with empty circle at the end.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

4. Control Flow
It represents the flow of control between the modules. It is represented by
directed arrow with filled circle at the end.

5. Physical Storage
Physical Storage is that where all the information are to be stored.

Example : Structure chart for an Email server

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Types of Structure Chart:


1. Transform Centered Structured:
These type of structure chart are designed for the systems that receives an
input which is transformed by a sequence of operations being carried out by
one module.
2. Transaction Centered Structure:
These structure describes a system that processes a number of different types
of transaction.

Software Engineering | Software Maintenance

Software Maintenance is the process of modifying a software product after it has


been delivered to the customer. The main purpose of software maintenance is to
modify and update software application after delivery to correct faults and to
improve performance.

Need for Maintenance –


Software Maintenance must be performed in order to:

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

 Correct faults.

 Improve the design.

 Implement enhancements.

 Interface with other systems.

 Accommodate programs so that different hardware, software, system


features, and telecommunications facilities can be used.

 Migrate legacy software.

 Retire software.

Categories of Software Maintenance –


Maintenance can be divided into the following:

1. Corrective maintenance:
Corrective maintenance of a software product may be essential either to
rectify some bugs observed while the system is in use, or to enhance the
performance of the system.

2. Adaptive maintenance:
This includes modifications and updating when the customers need the
product to run on new platforms, on new operating systems, or when they
need the product to interface with new hardware and software.

3. Perfective maintenance:
A software product needs maintenance to support the new features that the
users want or to change different types of functionalities of the system
according to the customer demands.

4. Preventive maintenance:
This type of maintenance includes modifications and updations to prevent
future problems of the software. It goals to attend problems, which are not
significant at this moment but may cause serious issues in future.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Reverse Engineering –
Reverse Engineering is processes of extracting knowledge or design information
from anything man-made and reproducing it based on extracted information. It is
also called back Engineering.

Software Reverse Engineering –


Software Reverse Engineering is the process of recovering the design and the
requirements specification of a product from an analysis of its code. Reverse
Engineering is becoming important, since several existing software products, lack
proper documentation, are highly unstructured, or their structure has degraded
through a series of maintenance efforts.

Why Reverse Engineering?

 Providing proper system documentation.

 Recovery of lost information.

 Assisting with maintenance.

 Facility of software reuse.

 Discovering unexpected flaws or faults.

Used of Software Reverse Engineering –

 Software Reverse Engineering is used in software design; reverse


engineering enables the developer or programmer to add new features to the
existing software with or without knowing the source code.

 Reverse engineering is also useful in software testing; it helps the testers to


study the virus and other malware code.

Software Reverse Engineering is a process of recovering the design, requirement


specifications and functions of a product from an analysis of its code. It builds a
program database and generates information from this.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

The purpose of reverse engineering is to facilitate the maintenance work by


improving the understandability of a system and to produce the necessary
documents for a legacy system.
Reverse Engineering Goals:
 Cope with Complexity.
 Recover lost information.
 Detect side effects.
 Synthesize higher abstraction.
 Facilitate Reuse.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Steps of Software Reverse Engineering:


1. Collection Information:
This step focuses on collecting all possible information (i.e., source design
documents etc.) about the software.

2. Examining the information:


The information collected in step-1 as studied so as to get familiar with the
system.

3. Extracting the structure:


This step concerns with identification of program structure in the form of
structure chart where each node corresponds to some routine.

4. Recording the functionality:


During this step processing details of each module of the structure, charts are
recorded using structured language like decision table, etc.

5. Recording data flow:


From the information extracted in step-3 and step-4, set of data flow
diagrams are derived to show the flow of data among the processes.

6. Recording control flow:


High level control structure of the software is recorded.

7. Review extracted design:


Design document extracted is reviewed several times to ensure consistency
and correctness. It also ensures that the design represents the program.

8. Generate documentation:
Finally, in this step, the complete documentation including SRS, design
document, history, overview, etc. are recorded for future use.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Re-engineering

The re-engineering taxonomy defines re-engineering as the examination and alteration of


software product to reconstitute in it a new form and subsequent implementation of new form.
Salzer adapts the traditionally proven methodology constituting 3 steps:

 Reverse Engineering
 Restructuring
 Forward Engineering

Reverse Engineering

 Inventorying of the source codes, DLL s and other software components present
 Decompilation, debugging and recovery of source code
 Making the software up and running in a demo environment to capture the business logic
 Defining the existing architecture
 Generating document for product description, installation and existing architecture

Restructuring

Coming up with an architectural recommendation and best practices for re-engineering them in
the client specified technology
High Level effort estimating of re-engineering for client required technology

Forward Engineering

Conversion of the existing requirements and additional client specified requirements with the
recommended technology and architecture into a software product with our Adaptive Product
Development Lifecycle methodology.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Software Engineering | Software Maintenance


Software Maintenance is the process of modifying a software product after it has been delivered to
the customer. The main purpose of software maintenance is to modify and update software
application after delivery to correct faults and to improve performance.
Need for Maintenance –
Software Maintenance must be performed in order to:
 Correct faults.
 Improve the design.
 Implement enhancements.
 Interface with other systems.
 Accommodate programs so that different hardware, software, system features, and
telecommunications facilities can be used.
 Migrate legacy software.
 Retire software.
Categories of Software Maintenance –
Maintenance can be divided into the following:
1. Corrective maintenance:
Corrective maintenance of a software product may be essential either to rectify some bugs
observed while the system is in use, or to enhance the performance of the system.
2. Adaptive maintenance:
This includes modifications and updating when the customers need the product to run on
new platforms, on new operating systems, or when they need the product to interface with
new hardware and software.
3. Perfective maintenance:
A software product needs maintenance to support the new features that the users want or to
change different types of functionalities of the system according to the customer demands.
4. Preventive maintenance:
This type of maintenance includes modifications and updations to prevent future problems
of the software. It goals to attend problems, which are not significant at this moment but
may cause serious issues in future.
Reverse Engineering –
Reverse Engineering is processes of extracting knowledge or design information from anything
man-made and reproducing it based on extracted information. It is also called back Engineering.
Software Reverse Engineering –
Software Reverse Engineering is the process of recovering the design and the requirements
specification of a product from an analysis of it’s code. Reverse Engineering is becoming
important, since several existing software products, lack proper documentation, are highly
unstructured, or their structure has degraded through a series of maintenance efforts.

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Why Reverse Engineering?


 Providing proper system documentation.
 Recovery of lost information.
 Assisting with maintenance.
 Facility of software reuse.
 Discovering unexpected flaws or faults.
Used of Software Reverse Engineering –
 Software Reverse Engineering is used in software design, reverse engineering enables the
developer or programmer to add new features to the existing software with or without
knowing the source code.
 Reverse engineering is also useful in software testing, it helps the testers to study the virus
and other malware code .

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

References:

1) Database System Concepts By Henry korth and A. Silberschatz

2) SQL, PL/SQL The Programming Language Oracle :- Ivan Bayross, BPB Publication.

3) Database Systems Concepts, Designs and Application by Shio Kumar Singh, Pearson

4) Introduction to SQL by Reck F. van der Lans by Pearson

5) Modern Database Management by Jeffery A Hoffer , V.Ramesh, Heikki Topi ,Pearson

6) Database Management Systems by Debabrata Sahoo ,Tata MacgrawHill

7)www.w3school.com

8) Tutorials List - Javatpoint

Prof. Gayatri A.Amate www.dacc.edu.in


DNYANSAGAR ARTS AND COMMERCE COLLEGE, BALEWADI, PUNE – 45

Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)

Prof. Gayatri A.Amate www.dacc.edu.in

You might also like