Software Engineering CA303 Notes
Software Engineering CA303 Notes
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Introduction
we are surrounded by systems. There are many systems such as transportation system, education
manufacturing and human economic activity systems.
System consist of
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Elements of system
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:
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
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:
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
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.
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.
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
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
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:
For example:
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Introduction
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Software Product:
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:
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
Software components are built using a programming language that has limited
vocabulary, an explicitly defied grammar and well-formed rules of syntax and semantics.
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
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
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.
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
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.
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.
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.
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
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
Product
The product is the final outcome of the software development process. A product is built on the
customer's requirements/requests.
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.
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 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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
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.
There are several Verification phases in the V-Model, each of these are explained in detail
below.
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.
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
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
4.1 Introduction
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 –
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 –
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.
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
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.
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
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.
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:
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 -
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
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:
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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
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.
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
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 -
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
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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
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.
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
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
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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
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
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.
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!
Let us create a decision tree to find out whether we have discovered a new habitat.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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:
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
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.
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
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.
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
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
Enter correct username and correct password and click on login, and the expected result
will be the user should be navigated to homepage
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
Now consider a dialogue box which will ask the user to upload photo with certain conditions like
–
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
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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
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
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
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
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.
The main disadvantage is that when the number of input increases the table will become more
complex
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Types of DFD
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.
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.
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
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 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
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
[/] Or
Example
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
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Entity-Relationship Diagrams
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,
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
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
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.
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.
1. Key attribute
2. Composite attribute
3. Single-valued attribute
4. Multi-valued attribute
5. Derived attribute
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
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.
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.
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.
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
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.
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Pseudo-code
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
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 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.
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
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
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
1. Report and documents should be designed to read from left to right and top to bottom.
3. All pages should have a title and page number and show the date the output was prepared.
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.
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
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.
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:
a. Tabular format
b. Graphic format
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
c. Printed Output.
Internal controls for outputs govern the pattern of outputs. It defines the representation of
outputs either on VDU or printed form.
1. The size of paper or screen in which the output should fit in.
3. Display or print should be in tabular form or graphic form. In graphics pie chart or bar chart.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
2. Decide whether to display, print or “speak” the information and select the output medium.
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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 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.
Problem Partitioning
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.
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
1. Functional Abstraction
2. Data Abstraction
Functional Abstraction
Functional abstraction forms the basis for Function oriented design approaches.
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.
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Advantages of Modularity
Disadvantages of Modularity
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:
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
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.
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Module Coupling
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
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.
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.
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.
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.
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.
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.
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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.
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.
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:
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:
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
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
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.
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.
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.
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Correct faults.
Implement enhancements.
Retire software.
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.
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
8. Generate documentation:
Finally, in this step, the complete documentation including SRS, design
document, history, overview, etc. are recorded for future use.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Re-engineering
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.
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)
References:
2) SQL, PL/SQL The Programming Language Oracle :- Ivan Bayross, BPB Publication.
3) Database Systems Concepts, Designs and Application by Shio Kumar Singh, Pearson
7)www.w3school.com
Subject: 503 :Software Engineering CLASS: SYBBA(CA) III SEM (2019 PATTERN)