Chapter 1 Introduction To Development Approach SSAD and OOAD
Chapter 1 Introduction To Development Approach SSAD and OOAD
Page 1
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.
Definitions
software engineering defines as:
(1) The application of a systematic, disciplined, quantifiable approach to the
development, operation and maintenance of software; that is, the application of
engineering to software.
(2) The study of approaches as in the above statement.
Fritz Bauer, a German computer scientist, defines software engineering as:
Software engineering is the establishment and use of sound engineering
principles in order to obtain economically software that is reliable and work
efficiently on real machines.
Page 2
Why is Software Engineering required?
Page 3
Importance of Software Engineering
Page 4
4. Handling big projects: Big projects are not done in a couple of days, and
they need lots of patience, planning, and management. And to invest six
and seven months of any company, it requires heaps of planning,
direction, testing, and maintenance. No one can say that he has given four
months of a company to the task, and the project is still in its first stage.
Because the company has provided many resources to the plan and it
should be completed. So to handle a big project without any problem, the
company has to go for a software engineering method.
5. Reliable software: Software should be secure, means if you have
delivered the software, then it should work for at least its given time or
subscription. And if any bugs come in the software, the company is
responsible for solving all these bugs. Because in software engineering,
testing and maintenance are given, so there is no worry of its reliability.
6. Effectiveness: Effectiveness comes if anything has made according to the
standards. Software standards are the big target of companies to make it
more effective. So Software becomes more effective in the act with the
help of software engineering.
1.1 Overview of Software Development with SSAD :- Structured
Systems Analysis and Design (SSAD) Method ,The three most important
techniques that are used in SSAD Method are as follows :
Page 5
Entity Event Modeling
A two-stranded process: Entity Behavior Modeling, identifying, modeling
and documenting the events that affect each entity and the sequence (or
life history) in which these events occur, and Event Modeling, designing
for each event the process to coordinate entity life histories.
Stages
The SSAD method involves the application of a sequence of analysis,
documentation and design tasks concerned with the following.
Stage 0 – Feasibility study
In order to determine whether or not a given project is feasible, there must be
some form of investigation into the goals and implications of the project. For
very small-scale projects this may not be necessary at all as the scope of the
project is easily understood. In larger projects, the feasibility may be done but in
an informal sense, either because there is no time for a formal study or because
the project is a “must-have” and will have to be done one way or the other. A
data flow Diagram is used to describe how the current system works and to
visualize the known problems.
When a feasibility study is carried out, there are four main areas of
consideration:
Technical – is the project technically possible?
Financial – can the business afford to carry out the project?
Organizational – will the new system be compatible with existing practices?
Ethical – is the impact of the new system socially acceptable?
To answer these questions, the feasibility study is effectively a condensed
version of a comprehensive systems analysis and design. The requirements and
usages are analyzed to some extent, some business options are drawn up and
even some details of the technical implementation. The product of this stage is a
formal feasibility study document. SSADM specifies the sections that the study
should contain including any preliminary models that have been constructed and
also details of rejected options and the reasons for their rejection.
Stage 1 – Investigation of the current environment
The developers of SSADM understood that in almost all cases there is some
form of current system even if it is entirely composed of people and paper.
Through a combination of interviewing employees, circulating questionnaires,
observations and existing documentation, the analyst comes to full
understanding of the system as it is at the start of the project. This serves many
purposes (Like examples?).
Page 6
Stage 2 – Business system options
Having investigated the current system, the analyst must decide on the overall
design of the new system. To do this, he or she, using the outputs of the
previous stage, develops a set of business system options. These are different
ways in which the new system could be produced varying from doing nothing to
throwing out the old system entirely and building an entirely new one. The
analyst may hold a brainstorming session so that as many and various ideas as
possible are generated.
The ideas are then collected to options which are presented to the user. The
options consider the following:
Where necessary, the option will be documented with a logical data structure
and a level 1 data-flow diagram.
The users and analyst together choose a single business option. This may be one
of the ones already defined or may be a synthesis of different aspects of the
existing options. The output of this stage is the single selected business option
together with all the outputs of the feasibility stage.
Stage 3 – Requirements specification
This is probably the most complex stage in SSADM. Using the requirements
developed in stage 1 and working within the framework of the selected business
option, the analyst must develop a full logical specification of what the new
system must do. The specification must be free from error, ambiguity and
inconsistency. By logical, we mean that the specification does not say how the
system will be implemented but rather describes what the system will do.
To produce the logical specification, the analyst builds the required logical
models for both the Data-Flow Diagrams (DFDs) and the Logical Data
Model (LDM), consisting of the Logical Data Structure (referred to in other
methods as entity relationship diagrams) and full descriptions of the data and its
relationships. These are used to produce function definitions of every function
which the users will require of the system, Entity Life-Histories (ELHs) which
Page 7
describe all events through the life of an entity, and Effect Correspondence
Diagrams (ECDs) which describe how each event interacts with all relevant
entities. These are continually matched against the requirements and where
necessary, the requirements are added to and completed.
The product of this stage is a complete requirements specification document
which is made up of:
Page 8
All of these aspects must also conform to any constraints imposed by the
business such as available money and standardization of hardware and
software.
The output of this stage is a chosen technical system option.
Stage 5 – Logical design
Though the previous level specifies details of the implementation, the
outputs of this stage are implementation-independent and concentrate on the
requirements for the human computer interface. The logical design specifies
the main methods of interaction in terms of menu structures and command
structures.
One area of activity is the definition of the user dialogues. These are the
main interfaces with which the users will interact with the system. Other
activities are concerned with analyzing both the effects of events in updating
the system and the need to make inquiries about the data on the system. Both
of these use the events, function descriptions and effect correspondence
diagrams produced in stage 3 to determine precisely how to update and read
data in a consistent and secure way.
The product of this stage is the logical design which is made up of:
Data catalogue
Required logical data structure
Logical process model – includes dialogues and model for the update and
inquiry processes
Stress & Bending moment.
Page 9
What is Structured Analysis?
Structured Analysis is a development method that allows the analyst to
understand the system and its activities in a logical way.
It is a systematic approach, which uses graphical tools that analyze and refine
the objectives of an existing system and develop a new system specification
which can be easily understandable by user.
It has following attributes −
It is graphic which specifies the presentation of application.
It divides the processes so that it gives a clear picture of system flow.
It is logical rather than physical i.e., the elements of system do not depend
on vendor or hardware.
It is an approach that works from high-level overviews to lower-level
details.
Page 10
Data Flow Diagrams (DFD) or Bubble Chart
It is a technique developed by Larry Constantine to express the requirements of
system in a graphical form.
It shows the flow of data between various functions of system and
specifies how the current system is implemented.
It is an initial stage of design phase that functionally divides the
requirement specifications down to the lowest level of detail.
Its graphical nature makes it a good communication tool between user
and analyst or analyst and system designer.
It gives an overview of what data a system processes, what
transformations are performed, what data are stored, what results are
produced and where they flow.
Page 11
Square Source or Destination of Data
Types of DFD:-
DFDs are of two types: Physical DFD and Logical DFD. The following table
lists the points that differentiate a physical DFD from a logical DFD.
It provides low level details of hardware, It explains events of systems and data
software, files, and people. required by each event.
It depicts how the current system It shows how business operates; not how
operates and how a system will be the system can be implemented.
implemented.
Context Diagram:-
A context diagram helps in understanding the entire system by one DFD which
gives the overview of a system. It starts with mentioning major processes with
little details and then goes onto giving more details of the processes with the
top-down approach.
The context diagram of mess management is shown below.
Page 12
Data Dictionary:-
A data dictionary is a structured repository of data elements in the system. It
stores the descriptions of all DFD data elements that is, details and definitions
of data flows, data stores, data stored in data stores, and the processes.
A data dictionary improves the communication between the analyst and the
user. It plays an important role in building a database. Most DBMSs have a data
dictionary as a standard feature. For example, refer the following table –
2 TITLE title 60
Decision Trees :-
Decision trees are a method for defining complex relationships by describing
decisions and avoiding the problems in communication. A decision tree is a
diagram that shows alternative actions and conditions within horizontal tree
Page 13
framework. Thus, it depicts which conditions to consider first, second, and so
on.
Decision trees depict the relationship of each condition and their permissible
actions. A square node indicates an action and a circle indicates a condition. It
forces analysts to consider the sequence of decisions and identifies the actual
decision that must be made.
The major limitation of a decision tree is that it lacks information in its format
to describe what other combinations of conditions you can take for testing. It is
a single representation of the relationships between conditions and actions.
For example, refer the following decision tree −
Decision Tables :-
Decision tables are a method of describing the complex logical relationship in a
precise manner which is easily understandable.
Page 14
It is useful in situations where the resulting actions depend on the
occurrence of one or several combinations of independent conditions.
It is a matrix containing row or columns for defining a problem and the
actions.
Pseudocode:-
A pseudocode does not conform to any programming language and expresses
logic in plain English.
It may specify the physical programming logic without actual coding
during and after the physical design.
It is used in conjunction with structured programming.
It replaces the flowcharts of a program.
1.1.1 Basic System Development Life Cycle with different users and
their role in SDLC :-
SDLC Activities
SDLC provides a series of steps to be followed to design and develop a
software product efficiently. SDLC framework includes the following steps:
Page 15
Communication: -
This is the first step where the user initiates the request for a desired software
product. He contacts the service provider and tries to negotiate the terms. He
submits his request to the service providing organization in writing.
Requirement Gathering
This step onwards the software development team works to carry on the
project. The team holds discussions with various stakeholders from problem
domain and tries to bring out as much information as possible on their
requirements. The requirements are contemplated and segregated into user
requirements, system requirements and functional requirements. The
requirements are collected using a number of practices as given -
studying the existing or obsolete system and software,
conducting interviews of users and developers,
referring to the database or
collecting answers from the questionnaires.
Page 16
Feasibility Study:-
After requirement gathering, the team comes up with a rough plan of
software process. At this step the team analyzes if a software can be made to
fulfill all requirements of the user and if there is any possibility of software
being no more useful. It is found out, if the project is financially, practically
and technologically feasible for the organization to take up. There are many
algorithms available, which help the developers to conclude the feasibility of
a software project.
System Analysis :-
At this step the developers decide a roadmap of their plan and try to bring up
the best software model suitable for the project. System analysis includes
Understanding of software product limitations, learning system related
problems or changes to be done in existing systems beforehand, identifying
and addressing the impact of project on organization and personnel etc. The
project team analyzes the scope of the project and plans the schedule and
resources accordingly.
Software Design:-
Next step is to bring down whole knowledge of requirements and analysis on
the desk and design the software product. The inputs from users and
information gathered in requirement gathering phase are the inputs of this
step. The output of this step comes in the form of two designs; logical design
and physical design. Engineers produce meta-data and data dictionaries,
logical diagrams, data-flow diagrams and in some cases pseudo codes.
Coding:-
This step is also known as programming phase. The implementation of
software design starts in terms of writing program code in the suitable
programming language and developing error-free executable programs
efficiently.
Testing:-
An estimate says that 50% of whole software development process should be
tested. Errors may ruin the software from critical level to its own removal.
Software testing is done while coding by the developers and thorough testing
Page 17
is conducted by testing experts at various levels of code such as module
testing, program testing, product testing, in-house testing and testing the
product at user’s end. Early discovery of errors and their remedy is the key
to reliable software.
Integration:-
Software may need to be integrated with the libraries, databases and other
program(s). This stage of SDLC is involved in the integration of software
with outer world entities.
Implementation:-
This means installing the software on user machines. At times, software
needs post-installation configurations at user end. Software is tested for
portability and adaptability and integration related issues are solved during
implementation.
Disposition:-
As time elapses, the software may decline on the performance front. It may
go completely obsolete or may need intense up gradation. Hence a pressing
need to eliminate a major portion of the system arises. This phase includes
archiving data and required software components, closing down the system,
planning disposition activity and terminating system at appropriate end-of-
system time.
Page 18
What is SDLC?
SDLC is a process followed for a software project, within a software
organization. It consists of a detailed plan describing how to develop,
maintain, replace and alter or enhance specific software. The life cycle
defines a methodology for improving the quality of software and the overall
development process.
The following figure is a graphical representation of the various stages of a
typical SDLC.
Page 19
outcome of the technical feasibility study is to define the various technical
approaches that can be followed to implement the project successfully with
minimum risks.
Page 20
Stage 5: Testing the Product :-
This stage is usually a subset of all the stages as in the modern SDLC
models, the testing activities are mostly involved in all the stages of SDLC.
However, this stage refers to the testing only stage of the product where
product defects are reported, tracked, fixed and retested, until the product
reaches the quality standards defined in the SRS.
Page 21
Systems Development Life Cycle is a systematic approach which explicitly
breaks down the work into phases that are required to implement either new
or modified Information System.
Page 22
Gather, analyze, and validate the information.
Define the requirements and prototypes for new system.
Evaluate the alternatives and prioritize the requirements.
Examine the information needs of end-user and enhances the system goal.
A Software Requirement Specification (SRS) document, which specifies
the software, hardware, functional, and network requirements of the
system is prepared at the end of this phase.
System Design:-
Includes the design of application, network, databases, user interfaces,
and system interfaces.
Transform the SRS document into logical structure, which contains
detailed and complete set of specifications that can be implemented in a
programming language.
Create a contingency, training, maintenance, and operation plan.
Review the proposed design. Ensure that the final design must meet the
requirements stated in SRS document.
Finally, prepare a design document which will be used during next
phases.
Implementation:-
Implement the design into source code through coding.
Combine all the modules together into training environment that detects
errors and defects.
A test report which contains errors is prepared through test plan that
includes test related tasks such as test case generation, testing criteria, and
resource allocation for testing.
Integrate the information system into its environment and install the new
system.
Maintenance/Support:-
Include all the activities such as phone support or physical on-site support
for users that is required once the system is installing.
Implement the changes that software might undergo over a period of
time, or implement any new requirements after the software is deployed
at the customer location.
Page 23
It also includes handling the residual errors and resolve any issues that
may exist in the system even after the testing phase.
Maintenance and support may be needed for a longer time for large
systems and for a short time for smaller systems.
Page 24
Maintains analysis and evaluation to arrive at appropriate system which is
more user friendly.
Suggests many flexible alternative solutions, pick the best solution, and
quantify cost and benefits.
Draw certain specifications which are easily understood by users and
programmer in precise and detailed form.
Implemented the logical design of system which must be modular.
Plan the periodicity for evaluation after it has been used for some time,
and modify the system as needed.
Attributes of a Systems Analyst
The following figure shows the attributes a systems analyst should possess −
Interpersonal Skills:-
Interface with users and programmer.
Facilitate groups and lead smaller teams.
Managing expectations.
Page 25
Good understanding, communication, selling and teaching abilities.
Motivator having the confidence to solve queries.
Analytical Skills:-
System study and organizational knowledge
Problem identification, problem analysis, and problem solving
Sound commonsense
Ability to access trade-off
Curiosity to learn about new organization
Management Skills:-
Understand users jargon and practices.
Resource & project management.
Change & risk management.
Understand the management functions thoroughly.
Technical Skills:-
Knowledge of computers and software.
Keep abreast of modern development.
Know of system design tools.
Breadth knowledge about new technologies.
Page 26
conducting the investigation, then requirement Anticipation can be half-
baked.
Requirements Investigation
It is studying the current system and documenting its features for further
analysis.
It is at the heart of system analysis where analyst documenting and
describing system features using fact-finding techniques, prototyping, and
computer assisted tools.
Requirements Specifications
It includes the analysis of data which determine the requirement
specification, description of features for new system, and specifying what
information requirements will be provided.
It includes analysis of factual data, identification of essential
requirements, and selection of Requirement-fulfillment strategies.
Information Gathering Techniques
The main aim of fact finding techniques is to determine the information
requirements of an organization used by analysts to prepare a precise SRS
understood by user.
Ideal SRS Document should −
be complete, Unambiguous, and Jargon-free.
specify operational, tactical, and strategic information requirements.
solve possible disputes between users and analyst.
use graphical aids which simplify understanding and design.
There are various information gathering techniques −
Interviewing
Systems analyst collects information from individuals or groups by
interviewing. The analyst can be formal, legalistic, play politics, or be
informal; as the success of an interview depends on the skill of analyst as
interviewer.
It can be done in two ways −
Unstructured Interview − The system analyst conducts question-answer
session to acquire basic information of the system.
Structured Interview − It has standard questions which user need to
respond in either close (objective) or open (descriptive) format.
Advantages of Interviewing
Page 27
This method is frequently the best source of gathering qualitative
information.
It is useful for them, who do not communicate effectively in writing or
who may not have the time to complete questionnaire.
Information can easily be validated and cross checked immediately.
It can handle the complex subjects.
It is easy to discover key problem by seeking opinions.
It bridges the gaps in the areas of misunderstandings and minimizes
future problems.
Questionnaires
This method is used by analyst to gather information about various issues of
system from large number of persons.
There are two types of questionnaires −
Open-ended Questionnaires − It consists of questions that can be easily
and correctly interpreted. They can explore a problem and lead to a
specific direction of answer.
Closed-ended Questionnaires − It consists of questions that are used
when the systems analyst effectively lists all possible responses, which
are mutually exclusive.
Advantages of questionnaires
It is very effective in surveying interests, attitudes, feelings, and beliefs of
users which are not co-located.
It is useful in situation to know what proportion of a given group
approves or disapproves of a particular feature of the proposed system.
It is useful to determine the overall opinion before giving any specific
direction to the system project.
It is more reliable and provides high confidentiality of honest responses.
It is appropriate for electing factual information and for statistical data
collection which can be emailed and sent by post.
Review of Records, Procedures, and Forms
Review of existing records, procedures, and forms helps to seek insight into
a system which describes the current system capabilities, its operations, or
activities.
Advantages
It helps user to gain some knowledge about the organization or operations
by themselves before they impose upon others.
Page 28
It helps in documenting current operations within short span of time as
the procedure manuals and forms describe the format and functions of
present system.
It can provide a clear understanding about the transactions that are
handled in the organization, identifying input for processing, and
evaluating performance.
It can help an analyst to understand the system in terms of the operations
that must be supported.
It describes the problem, its affected parts, and the proposed solution.
Observation
This is a method of gathering information by noticing and observing the
people, events, and objects. The analyst visits the organization to observe the
working of current system and understands the requirements of the system.
Advantages
It is a direct method for gleaning information.
It is useful in situation where authenticity of data collected is in question
or when complexity of certain aspects of system prevents clear
explanation by end-users.
It produces more accurate and reliable data.
It produces all the aspect of documentation that are incomplete and
outdated.
Feasibility Study
Feasibility Study can be considered as preliminary investigation that helps
the management to take decision about whether study of system should be
feasible for development or not.
It identifies the possibility of improving an existing system, developing a
new system, and produce refined estimates for further development of
system.
It is used to obtain the outline of the problem and decide whether feasible
or appropriate solution exists or not.
The main objective of a feasibility study is to acquire problem scope
instead of solving the problem.
The output of a feasibility study is a formal system proposal act as
decision document which includes the complete nature and scope of the
proposed system.
Steps Involved in Feasibility Analysis
Page 29
The following steps are to be followed while performing feasibility analysis
−
Form a project team and appoint a project leader.
Develop system flowcharts.
Identify the deficiencies of current system and set goals.
Enumerate the alternative solution or potential candidate system to meet
goals.
Determine the feasibility of each alternative such as technical feasibility,
operational feasibility, etc.
Weight the performance and cost effectiveness of each candidate system.
Rank the other alternatives and select the best candidate system.
Prepare a system proposal of final project directive to management for
approval.
Types of Feasibilities
Economic Feasibility:-
It is evaluating the effectiveness of candidate system by using cost/benefit
analysis method.
It demonstrates the net benefit from the candidate system in terms of
benefits and costs to the organization.
The main aim of Economic Feasibility Analysis (EFS) is to estimate the
economic requirements of candidate system before investments funds are
committed to proposal.
It prefers the alternative which will maximize the net worth of
organization by earliest and highest return of funds along with lowest
level of risk involved in developing the candidate system.
Page 30
Technical Feasibility:-
It investigates the technical feasibility of each implementation alternative.
It analyzes and determines whether the solution can be supported by
existing technology or not.
The analyst determines whether current technical resources be upgraded
or added it that fulfill the new requirements.
It ensures that the candidate system provides appropriate responses to
what extent it can support the technical enhancement.
Operational Feasibility:-
It determines whether the system is operating effectively once it is
developed and implemented.
It ensures that the management should support the proposed system and
its working feasible in the current organizational environment.
It analyzes whether the users will be affected and they accept the
modified or new business methods that affect the possible system
benefits.
It also ensures that the computer resources and network architecture of
candidate system are workable.
Behavioral Feasibility:-
It evaluates and estimates the user attitude or behavior towards the
development of new system.
It helps in determining if the system requires special effort to educate,
retrain, transfer, and changes in employee’s job status on new ways of
conducting business.
Schedule Feasibility:-
It ensures that the project should be completed within given time
constraint or schedule.
It also verifies and validates whether the deadlines of project are
reasonable or not.
Page 31
3. Create and sustain focused and motivated teams
4. Determine the team‘s work procedures, reporting systems and
communication infrastructure.
5. Accomplish project objective within time and budget
6. Monitor performance against the plan
7. Resolve technical conflicts and interpersonal conflicts
8. Control changes in the project
9. Report on project activities to upper management
10.Keep the client informed and committed
11.Contribute to the team members performance approval
Responsibilities of a Tester:-
The roles and responsibilities of a tester often vary from organization to
organization. In general, a testers main purpose is to design, develop, and
conduct system tests and supports acceptance testing. The roles and
responsibilities of a tester include the core activities associated with the test
effort. This usually involves identifying the most appropriate implementation
approach specific tests, performing test preparations, executing the tests,
logging outcomes, and administering the defect tracking system.
More detailed aspects of the roles and responsibilities of a tester is included
in the following:
Page 32
1. Analyzing client requirements
2. Understand the software application being tested
3. Prepare test strategy
4. Participating in test plan preparation
5. Preparing test scenarios
6. Preparing test cases (used for module, integration, and system testing
7. Preparing test data (used for test cases)
8. Preparing test environment
9. Analyzing test cases (those prepared by others)
10.Write necessary test scripts
11.Executing the test cases
12.Defect tracking
13.Perform necessary retesting
14.Providing defect information (for developers)
15.Preparing report summaries
16.Preparing lesson learnt documents
17.Conducting review meetings within the team
The testing in this phase can involve many different types of tests, depending on
the project and the company, such as:
Unit testing: testing individual pieces of code to ensure they work
System testing: testing the entire system to ensure it works
Verification testing: ensure that the system does what the requirements
say it should do
Integration testing: ensure that the system communicates to other
systems correctly
Regression testing: make sure that nothing else is broken when this is
implemented after making changes (Impact Analysis Testing).
Page 34
The sequential phases in Waterfall model are −
Requirement Gathering and analysis − All possible requirements of the
system to be developed are captured in this phase and documented in a
requirement specification document.
System Design − The requirement specifications from first phase are
studied in this phase and the system design is prepared. This system
design helps in specifying hardware and system requirements and helps in
defining the overall system architecture.
Implementation − With inputs from the system design, the system is first
developed in small programs called units, which are integrated in the next
phase. Each unit is developed and tested for its functionality, which is
referred to as Unit Testing.
Integration and Testing − All the units developed in the implementation
phase are integrated into a system after testing of each unit. Post
integration the entire system is tested for any faults and failures.
Deployment of system − Once the functional and non-functional testing
is done; the product is deployed in the customer environment or released
into the market.
Maintenance − There are some issues which come up in the client
environment. To fix those issues, patches are released. Also to enhance
the product some better versions are released. Maintenance is done to
deliver these changes in the customer environment.
Page 35
All these phases are cascaded to each other in which progress is seen as
flowing steadily downwards (like a waterfall) through the phases. The
next phase is started only after the defined set of goals are achieved for
previous phase and it is signed off, so the name "Waterfall Model". In
this model, phases do not overlap.
Waterfall Model - Application
Every software developed is different and requires a suitable SDLC
approach to be followed based on the internal and external factors. Some
situations where the use of Waterfall model is most appropriate are −
Requirements are very well documented, clear and fixed.
Product definition is stable.
Technology is understood and is not dynamic.
There are no ambiguous requirements.
Ample resources with required expertise are available to support
the product.
The project is short.
Page 36
Different phases Activities performed in each stage
Requirement During this phase, detailed requirements of the
Gathering stage software system to be developed are gathered
from client
Design Stage Plan the programming language, for
Example Java, PHP, .net
or database like Oracle, MySQL, etc.
Or other high-level technical details of the
project
Built Stage After design stage, it is built stage, that is
nothing but coding the software
Test Stage In this phase, you test the software to verify
that it is built as per the specifications given by
the client.
Deployment stage Deploy the application in the respective
environment
Maintenance stage Once your system is ready to use, you may
later require change the code as per customer
request
Page 37
Development moves from concept, through design, implementation,
testing, installation, troubleshooting, and ends up at operation and
maintenance. Each phase of development proceeds in strict order.
o This model is simple to implement also the number of resources that are
required for it is minimal.
o The requirements are simple and explicitly declared; they remain
unchanged during the entire project development.
o The start and end points for each phase is fixed, which makes it easy to
cover progress.
o The release date for the complete product, as well as its final cost, can be
determined before development.
o It gives easy to control and clarity for the customer due to a strict
reporting system.
o In this model, the risk factor is higher, so this model is not suitable for
more significant and complex projects.
o This model cannot accept the changes in requirements during
development.
o It becomes tough to go back to the phase. For example, if the application
has now shifted to the coding phase, and there is a change in requirement,
It becomes tough to go back and change it.
o Since the testing done at a later stage, it does not allow identifying the
challenges and risks in the earlier phase, so the risk reduction strategy is
difficult to prepare.
Page 39
Any changes in software is Small changes or errors that
made during the process of the arise in the completed software
development may cause a lot of problems
Iterative Model:-
This model leads the software development process in iterations. It
projects the process of development in cyclic manner repeating every step
after every cycle of SDLC process.
The software is first developed on very small scale and all the steps are
followed which are taken into consideration. Then, on every next
iteration, more features and modules are designed, coded, tested and
added to the software. Every cycle produces a software, which is
complete in itself and has more features and capabilities than that of the
previous one.
After each iteration, the management team can do work on risk
management and prepare for the next iteration. Because a cycle includes
small portion of whole software process, it is easier to manage the
development process but it consumes more resources.
Page 40
identify further requirements. This process is then repeated, producing a
new version of the software at the end of each iteration of the model.
Page 41
Iterative Model - Application
Like other SDLC models, Iterative and incremental development has
some specific applications in the software industry. This model is most
often used in the following scenarios −
Requirements of the complete system are clearly defined and understood.
Major requirements must be defined; however, some functionalities or
requested enhancements may evolve with time.
There is a time to the market constraint.
A new technology is being used and is being learnt by the development
team while working on the project.
Resources with needed skill sets are not available and are planned to be
used on contract basis for specific iterations.
There are some high-risk features and goals which may change in the
future
Page 42
The system is put into production when the first increment is delivered.
The first increment is often a core product where the basic requirements
are addressed, and supplementary features are added in the next
increments. Once the core product is analyzed by the client, there is plan
development for the next increment.
Advantages Disadvantages
Page 45
This model considers risk, which often goes un-noticed by most other
models. The model starts with determining objectives and constraints of
the software at the start of one iteration. Next phase is of prototyping the
software. This includes risk analysis. Then one standard SDLC model is
used to build the software. In the fourth phase of the plan of next iteration
is prepared.
Page 46
The development process in Spiral model in SDLC, starts with a small set
of requirement and goes through each development phase for those set of
requirements. The software engineering team adds functionality for the
additional requirement in every-increasing spirals until the application is
ready for the production phase. The below figure very well explain Spiral
Model:
Spiral Model
Diagram
Spiral Model Phases
Page 47
Engineerin It includes testing, coding and deploying software
g at the customer site
Page 48
Prototyping Model is a software development model in which prototype
is built, tested, and reworked until an acceptable prototype is achieved. It
also creates base to produce the final system or software. It works best in
scenarios where the project's requirements are not known in detail. It is an
iterative, trial and error method which takes place between developer and
client.
Page 49
Prototyping Model Phases
Page 51
final acceptable prototype is achieved which forms the basis for
developing the final product.
In this process model, the system is partially implemented before or
during the analysis phase thereby giving the customers an opportunity to
see the product early in the life cycle. The process starts by interviewing
the customers and developing the incomplete high-level paper model.
This document is used to build the initial prototype supporting only the
basic functionality as desired by the customer. Once the customer figures
out the problems, the prototype is further refined to eliminate them. The
process continues until the user approves the prototype and finds the
working model to be satisfactory.
Page 52
Evolutionary Prototyping :-
Here, the prototype developed is incrementally refined based on
customer's feedback until it is finally accepted. It helps you to save time
as well as effort. That's because developing a prototype from scratch for
every interaction of the process can sometimes be very frustrating.
This model is helpful for a project which uses a new technology that is
not well understood. It is also used for a complex project where every
functionality must be checked once. It is helpful when the requirement is
not stable or not understood clearly at the initial stage.
Incremental Prototyping :-
Page 53
In incremental Prototyping, the final product is decimated into different
small prototypes and developed individually. Eventually, the different
prototypes are merged into a single product. This method is helpful to
reduce the feedback time between the user and the application
development team.
Extreme Prototyping:-
Page 54
This method is mainly used for web development. It is consists of three
sequential independent phases:
1) In this phase a basic prototype with all the existing static pages are
presented in the HTML format.
2) In the 2nd phase, Functional screens are made with a simulate data
process using a prototype services layer.
3) This is the final step where all the services are implemented and
associated with the final prototype.
This Extreme Prototyping method makes the project cycling and delivery
robust and fast, and keeps the entire developer team focus centralized on
products deliveries rather than discovering all possible needs and
specifications and adding un-necessitated features.
Page 55
Best practices of Prototyping
Here, are a few things which you should watch for during the prototyping
process:
You should use Prototyping when the requirements are unclear
It is important to perform planned and controlled Prototyping.
Regular meetings are vital to keep the project on time and avoid costly
delays.
Page 56
The users and the designers should be aware of the prototyping issues and
pitfalls.
At a very early stage, you need to approve a prototype and only then
allow the team to move to the next step.
In software prototyping method, you should never be afraid to change
earlier decisions if new ideas need to be deployed.
You should select the appropriate step size for each version.
Implement important features early on so that if you run out of the time,
you still have a worthwhile system
The customers get to see the partial product early in the life cycle. This
ensures a greater level of customer satisfaction and comfort.
New requirements can be easily accommodated as there is scope for
refinement.
Missing functionalities can be easily figured out.
Errors can be detected much earlier thereby saving a lot of effort and cost,
besides enhancing the quality of the software.
The developed prototype can be reused by the developer for more
complicated projects in the future.
Flexibility in design.
Page 58
It is very difficult for software developers to accommodate all the
changes demanded by the clients.
After seeing an early prototype model, the customers may think that the
actual product will be delivered to him soon.
The client may lose interest in the final product when he or she is not
happy with the initial prototype.
Developers who want to build prototypes quickly may end up building
sub-standard development solutions.
An unstable/badly implemented prototype often becomes the final
product.
Require extensive customer collaboration
o Costs customer money
o Needs committed customer
o Difficult to finish if customer withdraw
o May be too customer specific, no broad market
Difficult to know how long the project will last.
Easy to fall back into the code and fix without proper requirement
analysis, design, customer evaluation, and feedback.
Prototyping tools are expensive.
Special tools & techniques are required to build a prototype.
It is a time-consuming process.
Risk of insufficient requirement analysis owing to too much dependency
on the prototype.
Users may get confused in the prototypes and actual systems.
Practically, this methodology may increase the complexity of the system
as scope of the system may expand beyond original plans.
Developers may try to reuse the existing prototypes to build the actual
system, even when it is not technically feasible.
The effort invested in building prototypes may be too much if it is not
monitored properly.
Costly with respect to time as well as money.
There may be too much variation in requirements each time the prototype
is evaluated by the customer.
Poor Documentation due to continuously changing customer
requirements.
It is very difficult for developers to accommodate all the changes
demanded by the customer.
Page 59
There is uncertainty in determining the number of iterations that would be
required before the prototype is finally accepted by the customer.
After seeing an early prototype, the customers sometimes demand the
actual product to be delivered soon.
Developers in a hurry to build prototypes may end up with sub-optimal
solutions.
The customer might lose interest in the product if he/she is not satisfied
with the initial prototype.
What is RAD?
Page 60
In the RAD model, the functional modules are developed in parallel as
prototypes and are integrated to make the complete product for faster product
delivery. Since there is no detailed preplanning, it makes it easier to incorporate
the changes within the development process.
RAD projects follow iterative and incremental model and have small teams
comprising of developers, domain experts, customer representatives and other
IT resources working progressively on their component or prototype.
The most important aspect for this model to be successful is to make sure that
the prototypes developed are reusable
Page 61
RAD Model or Rapid Application Development model is a software
development process based on prototyping without any specific planning. In
RAD model, there is less attention paid to the planning and more priority is
given to the development tasks. It targets at developing software in a short span
of time.
SDLC RAD modeling has following phases
Business Modeling
Data Modeling
Process Modeling
Application Generation
Testing and Turnover
Page 62
RAD Model Diagram
Page 63
Different Phases of RAD Model
There are following five major phases of Rapid Application Development Model
Page 64
The various phases of RAD are as follows:
The business model for the product under development is designed in terms of
flow of information and the distribution of information between various
business channels. A complete business analysis is performed to find the vital
information for business, how it can be obtained, how and when is the
information processed and what are the factors driving successful flow of
information.
2.Data Modeling: The data collected from business modeling is refined into a
set of data objects (entities) that are needed to support the business. The
attributes (character of each entity) are identified, and the relation between these
data objects (entities) is defined.
The data object sets defined in the Data Modelling phase are converted to
establish the business information flow needed to achieve specific business
objectives as per the business model. The process model for any changes or
enhancements to the data object sets is defined in this phase. Process
descriptions for adding, deleting, retrieving or modifying a data object are
given.
Page 65
The actual system is built and coding is done by using automation tools to
convert process and data models into actual prototypes.
The overall testing time is reduced in the RAD model as the prototypes
are independently tested during every iteration. However, the data flow
and the interfaces between all the components need to be thoroughly
tested with complete test coverage. Since most of the programming
components have already been tested, it reduces the risk of any major
issues.
The following illustration describes the RAD Model in detail.
Page 66
When to use RAD Methodology?
When the user will be involved all through the life cycle
Page 67
It is easier to transfer If developers are not
deliverables as scripts, high- committed to delivering
level abstractions and software on time, RAD
intermediate codes are used projects can fail
RUP is based on a set of building blocks and content elements, describing what
is to be produced, the necessary skills required and the step-by-step explanation
Page 68
describing how specific development goals are to be achieved. The main
building blocks, or content elements, are the following:
Roles (who) – A role defines a set of related skills, competencies and
responsibilities.
Work products (what) – A work product represents something resulting
from a task, including all the documents and models produced while
working through the process.
Tasks (how) – A task describes a unit of work assigned to a Role that
provides a meaningful result.
Within each iteration, the tasks are categorized into nine disciplines:
The RUP has determined a project life-cycle consisting of four phases. These
phases allow the process to be presented at a high level in a similar way to how
a 'waterfall'-styled project might be presented, although in essence the key to the
process lies in the iterations of development that lie within all of the phases.
Also, each phase has one key objective and milestone at the end that denotes the
objective being accomplished. The visualization of RUP phases and disciplines
over time is referred to as the RUP hump chart.
Page 69
Page 70
Inception phase :-
The primary objective is to scope the system adequately as a basis for validating
initial costing and budgets. In this phase the business case which includes
business context, success factors (expected revenue, market recognition, etc.),
and financial forecast is established. To complement the business case, a basic
use case model, project plan, initial risk assessment and project description (the
core project requirements, constraints and key features) are generated. After
these are completed, the project is checked against the following criteria:
Stakeholder concurrence on scope definition and cost/schedule estimates.
Requirements understanding as evidenced by the fidelity of the primary
use cases.
Credibility of the cost/schedule estimates, priorities, risks, and
development process.
Depth and breadth of any architectural prototype that was developed.
Establishing a baseline by which to compare actual expenditures versus
planned expenditures.
The idea for the project is stated. The development team determines if the
project is worth pursuing and what resources will be needed.
Project plan, Project goal, risks, use-case model, Project description, are
made.
If the project does not pass this milestone, called the life cycle objective
milestone, it either can be cancelled or repeated after being redesigned to better
meet the criteria.
Elaboration phase :-
Page 71
The primary objective is to mitigate the key risk items identified by analysis up
to the end of this phase. The elaboration phase is where the project starts to take
shape. In this phase the problem domain analysis is made and the architecture of
the project gets its basic form.
The outcome of the elaboration phase is:
A use-case model in which the use-cases and the actors have been
identified and most of the use-case descriptions are developed. The use-
case model should be 80% complete.
A description of the software architecture in a software system
development process.
An executable architecture that realizes architecturally significant use
cases.
Business case and risk list which are revised.
A development plan for the overall project.
Prototypes that demonstrably mitigate each identified technical risk.
A preliminary user manual (optional)
This phase must pass the lifecycle architecture milestone criteria answering the
following questions:
Is the vision of the product stable?
Is the architecture stable?
Does the executable demonstration indicate that major risk elements are
addressed and resolved?
Is the construction phase plan sufficiently detailed and accurate?
Do all stakeholders agree that the current vision can be achieved using
current plan in the context of the current architecture?
Is the actual vs. planned resource expenditure acceptable?
Page 72
If the project cannot pass this milestone, there is still time for it to be canceled
or redesigned. However, after leaving this phase, the project transitions into a
high-risk operation where changes are much more difficult and detrimental
when made.
The key domain analysis for the elaboration is the system architecture.
Construction phase :-
The primary objective is to build the software system. In this phase, the main
focus is on the development of components and other features of the system.
This is the phase when the bulk of the coding takes place. In larger projects,
several construction iterations may be developed in an effort to divide the use
cases into manageable segments to produce demonstrable prototypes.
The project is developed and completed. The software is designed, written, and
tested.
Transition phase :-
The software is released to the public. Final adjustments or updates are made
based on feedback from end users.
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
1. Feasibility Study
2. Requirement Elicitation and Analysis
3. Software Requirement Specification
4. Software Requirement Validation
5. Software Requirement Management
Page 74
1. Feasibility Study:
The objective behind the feasibility study is to create the reasons for developing
the software that is acceptable to users, flexible to change and conformable to
established standards.
When the client approaches the organization for getting the desired product
developed, it comes up with rough idea about what all functions the software
must perform and which all features are expected from the software.
This feasibility study is focused towards goal of the organization. This study
analyzes whether the software product can be practically materialized in terms
of implementation, contribution of project to organization, cost constraints and
Page 75
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.
Types of Feasibility:
Page 76
Requirement elicitation process can be depicted using the following diagram:
Page 77
The requirements come from various stakeholders. To remove the
ambiguity and conflicts, they are discussed for clarity and correctness.
Unrealistic requirements are compromised reasonably.
Page 78
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:
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.
Page 79
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
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 Requirement Specification (SRS) :
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.
Page 80
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 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.
The models used at this stage include ER diagrams, data flow diagrams (DFDs),
function decomposition diagrams (FDDs), data dictionaries, etc.
o Data Flow Diagrams: Data Flow Diagrams (DFDs) are used widely for
modeling the requirements. DFD shows the flow of data through a
system. The system may be a company, an organization, a set of
procedures, a computer hardware system, a software system, or any
combination of the preceding. The DFD is also known as a data flow
graph or bubble chart.
o Data Dictionaries: Data Dictionaries are simply repositories to store
information about all data items defined in DFDs. At the requirements
stage, the data dictionary should at least define customer data items, to
ensure that the customer and developers use the same definition and
terminologies.
o Entity-Relationship Diagrams: Another tool for requirement
specification is the entity-relationship diagram, often called an "E-R
diagram." It is a detailed logical representation of the data for the
organization and uses three main constructs i.e. data entities,
relationships, and their associated attributes.
Page 81
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 -
New requirements emerge during the process as business needs a change, and a
better understanding of the system is developed.
The business and technical environment of the system changes during the
development.
Page 82
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 (understandable)
Modifiable
Verifiable
Prioritized
Unambiguous
Traceable
Credible source
o Clear
o Correct
o Consistent
o Coherent
o Comprehensible (understandable)
o Modifiable
o Verifiable
Page 83
o Prioritized
o Unambiguous
o Traceable
o Credible source
o User Interface requirements
o UI is an important part of any software or hardware or hybrid system. A
software is widely accepted if it is -
o easy to operate
o quick in response
o effectively handling operational errors
o providing simple yet consistent user interface
o 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 -
o Content presentation
o Easy Navigation
o Simple interface
o Responsive
o Consistent UI elements
o Feedback mechanism
o Default settings
o Purposeful layout
o Strategically use of color and texture.
o Provide help information
o User centric approach
o Group based view settings.
Page 84
documented in different forms. The functional requirements are
describing the behavior of the system as it correlates to the system's
functionality.
They define functions and functionality within and from the software
system.
Examples -
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.
Page 85
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.
Requirements elicitation
Requirements specification
Requirements verification and validation
Requirements management
Requirements 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, Elicitation does not
produce formal models of the requirements understood. Instead, it widens the
Page 86
domain knowledge of the analyst and thus helps in providing input to the next
stage.
Requirements Specification:
This activity is used to produce formal software requirement models. All the
requirements including the functional as well as the non-functional
requirements and the constraints are specified by these models in totality.
During specification, more knowledge about the problem may be required
which can again trigger the elicitation process.
The models used at this stage include ER diagrams, data flow diagrams(DFDs),
function decomposition diagrams(FDDs), data dictionaries, etc.
Verification:
It refers to the set of tasks that ensures that the software correctly implements a
specific function.
Validation: It refers to a different set of tasks that ensures that the software that
has been built is traceable to customer requirements.
If requirements are not validated, errors in the requirement definitions would
propagate to the successive stages resulting in a lot of modification and rework.
The main steps for this process include:
The requirements should be consistent with all the other requirements i.e
no two requirements should conflict with each other.
The requirements should be complete in every sense.
The requirements should be practically achievable.
Reviews, buddy checks, making test cases, etc. are some of the methods used
for this.
Requirements Management :-
Requirement management is the process of analyzing, documenting, tracking,
prioritizing and agreeing on the requirement and controlling the communication
to relevant stakeholders. This stage takes care of the changing nature of
requirements. It should be ensured that the SRS is as modifiable as possible so
Page 87
as to incorporate changes in requirements specified by the end users at later
stages too. Being able to modify the software as per requirements in a
systematic and controlled manner is an extremely important part of the
requirements engineering process.
2. User interfaces
3. Hardware interfaces
4. Software interfaces
5. Communication Interfaces
6. Memory constraints
Page 88
2. Design constraints
1. Operations
2. Site adaptation requirements
3. Product functions
4. User characteristics
5. Constraints, assumptions and dependencies
3. Specific requirements
1. External interface requirements
2. Performance requirements
3. Logical database requirement
4. Software system attributes
1. Reliability
2. Availability
3. Security
4. Maintainability
5. Portability
5. Functional requirements
1. Functional partitioning
2. Functional description
3. Control description
6. Environment characteristics
1. Hardware
2. Peripherals
3. Users
7. Other
Page 89
A Software requirements specification document describes the intended
purpose, requirements and nature of software to be developed. It also includes
the yield and cost of the software.
Table of Contents
Page 90
Page 91
1. INTRODUCTION
1.1 PURPOSE
The purpose of this document is to build an online system to manage flights and
passengers to ease the flight management. <<Include the purpose as applicable to
your project >>
1.2 DOCUMENT CONVENTIONS
This document uses the following conventions. <<Include the conventions as per
your application >>
DB Database
ER Entity Relationship
This project is a prototype for the flight management system and it is restricted within
the college premises. This has been implemented under the guidance of college
professors. This project is useful for the flight management team and as well as to
the passengers.
1.5 REFERENCES
www.irtc.co.in
www.airindia.com
2. OVERALL DESCRIPTION
2.1 PRODUCT PERSPECTIVE
A distributed airline database system stores the following information.
Flight details:
Page 92
It includes the originating flight terminal and destination terminal, along
with the stops in between, the number of seats booked/available seats
between two destinations etc.
Customer description:
Reservation description:
Page 93
The diagram shows the layout of airline database system – entity–relationship
model
• One-way
• Round-Trip
• Multi-city
• Flexible Date/time
• Confirmation
• Get all flights whose arrival and departure times are on time/delayed.
ADMINISTRATIVE
Page 95
• Add/Delete a flight
Page 96
Assuming both the transactions are single transactions, we have designed a
distributed database that is geographically dispersed at four cities Delhi,
Mumbai, Chennai, and Kolkatta as shown in fig. below.
3. SYSTEM FEATURES
DESCRIPTION and PRIORITY
The airline reservation system maintains information on flights, classes of seats,
personal preferences, prices, and bookings. Of course, this project has a high
priority because it is very difficult to travel across countries without prior
reservations.
STIMULUS/RESPONSE SEQUENCES
Search for Airline Flights for two Travel cities
Displays a detailed list of available flights and make a
“Reservation” or Book a ticket on a particular flight.
Cancel an existing Reservation.
FUNCTIONAL REQUIREMENTS
Other system features include:
DISTRIBUTED DATABASE:
Distributed database implies that a single application should be able to operate
transparently on data that is spread across a variety of different databases and
connected by a communication network as shown in below figure.
Page 97
Distributed database located in four different cities
CLIENT/SERVER SYSTEM
Page 98
4.4 COMMUNICATION INTERFACES
This project supports all types of web browsers. We are using simple electronic
forms for the reservation forms, ticket booking etc.
5. NONFUNCTIONAL REQUIREMENTS
5.1 PERFORMANCE REQUIREMENTS
The steps involved to perform the implementation of airline database are as
listed below.
A) E-R DIAGRAM
The E-R Diagram constitutes a technique for representing the logical structure
of a database in a pictorial manner. This analysis is then used to organize data as
a relation, normalizing relation and finally obtaining a relation database.
ENTITIES: Which specify distinct real-world items in an application.
PROPERTIES/ATTRIBUTES: Which specify properties of an entity
and relationships.
RELATIONSHIPS: Which connect entities and represent meaningful
dependencies between them.
Page 99
The diagram shows the ER diagram of airline database
B) NORMALIZATION:
The basic objective of normalization is to reduce redundancy which means that
information is to be stored only once. Storing information several times leads to
wastage of storage space and increase in the total size of the data stored.
If a database is not properly designed it can give rise to modification anomalies.
Modification anomalies arise when data is added to, changed or deleted from a
database table. Similarly, in traditional databases as well as improperly designed
relational databases, data redundancy can be a problem. These can be
eliminated by normalizing a database.
Normalization is the process of breaking down a table into smaller tables. So
that each table deals with a single theme. There are three different kinds of
modifications of anomalies and formulated the first, second and third normal
forms (3NF) is considered sufficient for most practical purposes. It should be
Page 100
considered only after a thorough analysis and complete understanding of its
implications.
3. Definition
3.1 Contract
3.2 Customer
3.3 Supplier
3.4 User
Page 101
4.3 Characteristics of good SRS (Correct, Complete, consistent
, unambiguous, verifiable, Modifiable , Traceable )
4.4 Prototyping
4.5 Design in SRS
4.6 Project requirement in SRS
5. Parts of an SRS
5.1 Introduction
5.1.1 Purpose
5.1.2 Scope
5.1.3 Definition
5.1.4 References
5.1.5 Overview
5.2 Overall description
5.2.1 Product Perspective
5.2.2 System Interface
5.2.3 User Interface
5.2.4 Hardware Interface
5.2.5 Software Interface
5.2.6 Communication Interfaces (e.g. local network protocols)
5.3 Specific Requirement
5.3.1 External Interface
5.3.2 Functions
5.3.3 Performance Requirement
5.3.4 Logical Database Requirement
5.3.5 Design Constraints
5.3.6 Software System Attribute
5.3.6.1 Reliability
5.3.6.2 Availability
5.3.6.3 Security
5.3.6.4 Maintainability
5.3.6.5 Portability
5.3.7 Organizing the specific requirement
5.3.7.1 System Mode
5.3.7.2 User Class
5.3.7.3 Object
5.3.7.4 Feature
5.3.7.5 Stimulus
5.3.7.6 Response
5.3.7.7 Functional Hierarchy
5.3.8 Additional Comment
5.4 Supporting Information
5.4.1 Table of Content & Index
Page 102
5.4.2 Appendixes
Note :-
User Interface: - The logical characteristics of each interface between
the software product and its users. All the aspects of optimizing the
interface with the person who must use the system
Software interfaces
This should specify the use of other required software products (e.g., a data
management system, an operating system, or a mathematical package), and
interfaces with other application systems (e.g., the linkage between an accounts
receivable system and a general ledger system). For each required software
product
Page 103
System mode :- Some systems behave quite differently depending on the
mode of operation. For example, a control system may have different sets
of functions depending on its mode: training, normal, or emergency. The
choice depends on whether interfaces and performance are dependent on
mode.
User class
Some systems provide different sets of functions to different classes of users.
For example, an elevator control system presents different capabilities to
passengers, maintenance workers, and fire fighters.
Objects
Objects are real-world entities that have a counterpart within the system. For
example, in a patient monitoring system, objects include patients, sensors,
nurses, rooms, physicians, medicines, etc. Associated with each object is a set
of attributes (of that object) and functions (performed by that object). These
functions are also called services, methods, or processes
Stimulus
Some systems can be best organized by describing their functions in terms of
stimuli. For example, the functions of an automatic aircraft landing system may
be organized into sections for loss of power, wind shear sudden change in roll,
vertical velocity excessive, etc
Response
Some systems can be best organized by describing all the functions in support
of the generation of a response. For example, the functions of a personnel
system may be organized into sections corresponding to all functions associated
with generating paychecks, all functions associated with generating a current
list of employees, etc.
Functional hierarchy
When none of the above organizational schemes prove helpful, the overall
functionality can be organized into a hierarchy of functions organized by either
common inputs, common outputs, or common internal data access. Data flow
diagrams and data dictionaries can be used to show the relationships between
and among the functions and data.
Page 104
(Another) SRS Format With IEEE Standard :-
1. Introduction
a. Background
b. Overall Description
c. Environmental Characteristics
i. Hardware
ii. Peripherals
iii. People
d. Interfaces
i. Interface with Device
ii. Interface with OS
iii. Interface with Database used
iv. Interface with the user
e. Constraints
2. Functional Requirements
a. Functional Partitioning
b. Functional Description
c. Control Description
3. Non Functional Requirements
4. Behavioral Description
a. System State
b. Event &Action
5. Validation Criteria
a. Performance Bound
b. Classes of Test
c. Response to undesired events
Page 105