Unit-1:: Department of Bca Iii Year Software Engineering
Unit-1:: Department of Bca Iii Year Software Engineering
III YEAR
SOFTWARE ENGINEERING
Unit-1:
Introduction to Software Engineering Some definition – Some size factors
– Quality and productivity factors – Managerial issue. Planning a Software
Project: Defining the problem – Developing a solution strategy – planning the
development process – planning an organization structure – other planning
activities.
Unit-2:
Software Cost Estimation: Software – Cost factors – Software cost
estimation techniques – specification techniques – level estimation – estimating
software maintenance costs.
Unit-3:
Software requirements definition: The software requirements specification
– formal languages and processors for requirements specification.
Unit-4:
Software Design: Fundamental Design concepts – Modules and
modularizing Criteria – Design Notations – Design Techniques – Detailed
Design Consideration – Real time and distributed system design – Test plan –
Mile stones walk through and inspection – Design guide lines.
Unit-5:
Verification and validation techniques: Quality assurance – Static analysis
– symbolic exception – Unit testing and Debugging – System testing – Formal
verification.
5 MARKS
1. Discuss about some factors to consider in project planning.(A11,A12,N14)
Estimations techniques to be used accuracy required.
Life-cycle model, control functions and reviews.
Organizational structure.
Level of formality in specification, test plans, etc.
Level of verification and validation.
Level of configuration management requirement.
Level of quality assurance requirement.
Follow on maintenance responsibilities.
Tools to be developed and used.
Personnel recruitment and training.
(i)Democratic team
This team was first described as egoless team.
Group leadership rotates from member to member based on the task to be performed and the
differing abilities of the team members.
A Democratic team differs from an egoless team is that one team members is designated as team
leader and occupies the position of first among equals.
This is because a team functions best when one individual is responsible for coordinating team
activities and for making final decision.
Advantages:
Opportunities for each team members to contribute to
decision.
To learn from one another.
Increased job satisfaction.
Non-threatening work environment.
Disadvantages:
Week of individual and authority.
(ii)The chief programmer team:
These teams are highly structured.
The chief programmer -design the product.
Implement critical parts of the product.
Makes all the major technical decision.
Work is allocated to the individual programmer by the chief programmers.
A program librarian maintains program listing, design documents, test plans etc., in a central
location.
The chief programmer is assisted by an administrative
program manager.
Advantages:
Centralized decision making.
Reduced communication paths.
Chief programmer is assisted and supported by other team
members.
Ex: doctors, surgeon.
(iii)Hierarchical team:
In combines the aspects of the democratic team and chief programmer team.
Each team should be limited to not more than 5 or 17 members for effective coordination and
communication.
This structure occupies a middle position between the extremes of Democratic teams and chief
programmer teams.
The Project needed assigns, task, attends, reviews, detects problem areas, balances the word load
the participate in technical activities.
This structure limits the number of
communication paths in the Project.
Disadvantages:
The most technical competent programmer
tends to be promoted in to management positions.
Promotion of the best programmer has the
two negative effects.
Losing a good programmer.
Creating a poor manager.
Trivial Project:
No. of programmers: 1
Duration: for a few days, few weeks
Product Size: 500 source line
Packaged in: 10 to 20 subroutines
These Programs are often personal software.
Developed exclusively for the use of the programmer.
Small amount of formal analysis, elaborate design documentation, extensive test planning or
supporting documents are needed.
Small Project:
No. of programmers: 1
Duration: 1 to 6 months
Product Size: 1000 to 2000 source lines
Packaged in 25 to 50 subroutines
Small Programs usually have no interactions with other programs.
Scientific applications written by engineers to solve numerical problems.
Students Projects written in compiler and Operating System.
Small Project requires little interactions between programmers and customers.
Standardized techniques and notations, standardized documents and systematic project
reviews should be used in small projects.
Medium Size Projects:
No. of Programmers: 2 to 5
Duration: 1 to 2 years
Product Size: 10,000 to 15,000 source lines
Packaged in 250 to 1000 routines.
Medium size projects include assemblers, Compilers, Small management information
system, inventory system and Process control applications.
To develop such programs, interaction among programmers and Customers is required.
A certain degree of formality is required in planning, documents and project reviews.
Most application programs and System programs are developed in 2 years or less by 5.
Larger Size Projects:
No. of Programmers: 5 to 20
Duration: 2 to 3years
Product Size: 50,000 to 1 lakhs source lines.
Packaged in several sub systems.
Large programs have significant interactions with other programs and subsystems.
Compilers, Small time sharing systems, database packages, graphic packages and real time
control systems.
Communications among programmers, managers, customers are needed.
The larger project requires more than 1 programming team.
Example, three teams of 5 persons each.
It involves more than 1 level of management.
Systematic process standardized documents and formal reviews are essential.
Very Large Projects:
No. of Programmers: 100 to 1000
Duration: 4 to 5 years
Product Size: 1 million source lines
It consists of several major subsystems each of which forms a large system.
The subsystem has complex, interactions with one another and with other separate we
developed system.
Telecommunication and multitasking.
It includes large OS, large database system and military command or/and control system.
Extremely large Projects:
No. of Programmers: 2000 to 5000
Duration: 5 to 10 years
Product Size: 1 million to 10 million source lines
It consists of several very large subsystems.
It involves real time processing, telecommunications, multitasking and distributed
processing.
Example: Air traffic control, military command or control system.
5. What are the quality and productivity factors or Explain 8 factors of quality and
productivity (N12, A11, N14, A16).
Development and maintenance of software product are complex task.
There is a fundamental difference between writing a small program for PC and developing or
modifying a software product.
Software Quality and programmer productivity can be improved by improving the process used
to develop and maintain software products.
Individual Ability:
Production and maintenance of software products are labor intensive activities.
Productivity and Quality are direct functions of individual ability and effort.
There are two aspects of ability: (i) General competition of the individual
(ii) Familiarity of the individual with the particular application area.
Team communication:
Programming has regarded as an individual and private activity.
Programmers are rarely preceded as public documents and they rarely discuss the exact details
of the work in a systematic manner.
There are 3 levels of product complexity:
1. Application Programs
2. Utility Programs.
3. System level Programs.
Appropriate Notations:
In software engineer the representation schemes have fundamental importance, programming
languages provides compact notations for the implementation phase of software development.
Systematic Approaches:
In every field there are certain accepted procedures and techniques
A Single approach to software development and maintenance will not be adequate to cover all
situations.
Change Control:
The flexibility of software is a great strength and also a great source of difficulty in software
engineering.
Level of Technology:
It includes factors such as programming language.
Machine Environment.
The Programming Practices Software tools
Level of Reliability:
Every software product must possess basic level of reliability.
Both human and machine resources are required to obtain increased reliability.
Problem Understanding:
Failures to understand the true nature of the problem to be solved is a common and difficult
issue.
Often the customer does not truly understand nature of the problem.
Available Time:
Determining optimum staff in levels and proper elapsed times for various activities in software
product development is an important and difficult aspect of cost and resource estimation.
Required Skill:
Software Engineering requires a vast range of skills.
Good Communications
Knowledge of application area.
Facilities and Resources:
Work related factors such as good machine access and quiet place to work are more important.
Software project managers must be effective in dealing with the factors that motivate the
programmers to maintain high product quality, high programmer productivity and high job
satisfaction.
Adequacy of Training:
Express oneself clearly in English.
Develop and Validate software requirements and design specifications.
Management Skills:
Many of the problems in software project management are unique.
Managers experienced in management of computer hardware projects find software project
management to be difficult.
Appropriate Goals:
Primary Goal of software engineering is to development of software products for their intended
use.
Every software product must provide optimal level of: 1. Generality
2. Reliability
3. Efficiency
Raising Expectations:
There are two interrelated aspects of raising expectations
1. How much functionality, reliability and performance can be provided by a given amount of
development effort.
2. Issues of fundamental limitations of software technology.
10 MARKS
1. Explain the steps required to plan a s/w project.(N11,A12)
Planning a software product:
Goals can be formulated using concise statement, constraints.
Goals apply to both development process and work product.
It can be either qualitative or quantitative.
Every development process should provide product on time and within cost estimates .
Opportunities for project personnel to learn new skill.
Requirements include:
Functional requirements.
Performance requirements.
Requirements for hardware, software and firmware and user interface.
Development standards and quality assurance standards for both project and product.
Qualified requirements
Phase accuracy shall be within 0.5 degree.
Response to external interrupts shall be 0.25 second maximum.
50KB of primary memory, excluding file buffers.
Full operation 95% of each 24 hour period.
Qualitative requirements
Accuracy shall be efficient.
Provide real-time response.
Efficient use of primary memory.
95% reliable.
Planning the development process: Note: (Explain any one of the s/w lifecycle model)
Software life cycle activities
1. Define
2. Develop
3. Test
4. Deliver
5. Operate
6. Maintain.
Life cycle activities are given above. These activities are change no single life cycle models are
used.
Different models are used for various software products.
A life cycle model that is understood and accepted by all concerned parties improves project
communications and project manageability, resource allocations, cost control and product quality.
b. Functional format:
In this approach a different team of programmers perform each phase of the Project.
The work products pass from team to team as they evolved.
Functional format involves 3 teams
An analysis team.
A design team and implementation team.
Test formatting and maintenance team.
c. Matrix format
In this format each of the functions has its own management team.
This format involves a group of specialist personnel concerned only with that
function.
Each development project has a project manager concerned only with that Project.
The Project manager generates and reviews documents.
Each functional group participates in each Project.
Ex: software development team members belongs to the development function
similarly testing belong the testing function.
3. Prototype life cycle model(N13, A13)
Importance to the sources of product request, go/no go decisions points and the use of the
prototypes.
Prototype is a mock up or model of the Software product.
A prototype incorporates components of the actual model.
There are several reasons for developing a prototype.
Important reason:
It illustrates input data formats, messages, reports and interactive dialogues for the
customer.
To explore technical problems in the proposed system.
In situations where phased model of analysis, design, implementation is not appropriate.
5 MARKS
1. Write a short note on staffing – level estimation. (A11, A13, N12).
STAFFING LEVEL ESTIMATION
The number of personnel required throughput a software development project is not
constant.
Planning an analysis is performed by a small group of people.
Architectural design by a larger or smaller group.
Detailed design by a larger number of people.
Implementation and system testing requires the largest number of people.
In 1958 modern observed that research and development project follows a cycle of
planning, design, prototype development and use with corresponding personnel
utilization.
RAYLEIGH EQUATION:
Any particular point on the Rayleigh curve represents the number of fulltime
equivalent personnel required at the instant in time
Rayleigh curve is specified by two parameters
o td-the time at which the curve reaches its maximum value
o k-the total area under the curve (i.e.,) the total effort required for the
project
In 1976 Putnam studied 50 army software life cycle using Rayleigh curve.
From his observation, Rayleigh curve reaches its maximum value td, during
system testing and product release for many software products.
From Boehm observation: Rayleigh curve is an accurate estimator of personal
requirements for the development cycle from architectural design through
implementation and system testing.
FSP=PM (0.15TDEV+0.7t) - (0.15TDEV+0.7t) ^2
(0.25(TDEV) ^2 0.15(TDEV) ^2
10 MARK
1. Cost Estimation Techniques. (A12,A14,N15) (OR)
Define work breakdown structure. (A15)
Write any one software cost Estimation Techniques. (A16) (OR)
Discuss in detail COCOMO. (N11, A11, A13) (OR)
Explain about Delphi Cost Estimation Techniques. (N11, N14).
Software cost estimates based on past performance. Historical data are used to identify cost
factors and determine relative factors.
Cost estimates can be either: (I) Top-down cost estimation.
(II) Bottom-up cost estimation.
(I)Top-down cost estimation.
It focus on system level costs, such as computing resources and personnel required
to develop system, Quality assurance training.
(II) Bottom-up cost estimation.
It estimates the cost to develop each module or sub system. It focuses on system
level costs and some of modules developed. Cost estimation techniques are:
1. Expert Judgment.
2. Delphi cost estimation.
3. Work breakdown structure.
4. Algorithmic cost model (COCOMO).
1. Expert Judgment:
PRODUCT HIERARCHY:
Product hierarchy identifies the product components and indicate in which manner
the components are interconnected.
A WBS chart of process hierarchy identifies the work activities and the relationships
among those activities.
Using WBS techniques, costs are estimated by assigning costs to each individual
component in the chart and summing costs.
Product
Data Result
Read Parser validator
module computer
PROCESS HIERARCHY:
It identifies the work activity and relationship among those activities.
Using WBS costs are estimated by assigning cost to each individual component in the chart and
summing the cost.
WBS are the most widely used cost estimation techniques.
Process
Product attributes:
Required reliability 0.75 to 1.40
Database size 0.94 to 1.16
Product complexity 0.70 to 1.65
Computer attributes:
Execution time constraint 1.00 to 1.66
Main storage constraint 1.00 to 1.56
Virtual machine volatility 0.87 to 1.30
Computer turnaround time 0.87 to 1.15
Personnel attributes:
Analyst capability 1.46 to 0.71
Programmer capability 1.42 to 0.70
Applications experience 1.29 to 0.82
Virtual machine experience 1.21 to 0.90
Programming language experience 1.14 to 0.95
Project attributes:
Use of modern programming 1.24 to 0.82
practices
Use of software tools 1.24 to 0.83
Required development schedule 1.23 to 1.10
2. Cost factors. (N13,N14)
Explain: S/w cost factors. (N12)
Explain briefly the Software Cost and quality. (A12, N13, A14, A16).
They are many cost factors:
Most difficult task in software engineering.
Difficult to make estimate during planning phase.
Series of cost estimation.
Preliminary estimate is prepared during planning.
An improved estimate is presented at the software requirements review.
Final estimate is prepares at the preliminary design view.
MAJOR FACTORS
Program ability
Product complexity
Product size
Available time
Required reliability
Level of technology
PROGRAM ABILITY
The goal was to determine relative influence of batch and time shared access on
programmer’s productivity.
Example: 12 experienced programmers were each given two programming problems to
solve some uses batch facilities and some using time sharing.
Resulting differences in individual performance among the programmers were much greater
than could be attributed to the relatively small effect of batch or time shared machine
access.
On very large projects the differences in individual programmer’s ability will tend to
average out.
But on projects involving 5 or fewer programmers, individual difference in ability can be
significant.
PRODUCT COMPLEXITY
There are three categories of software products.
Application programs-include data processing and scientific programs.
Utility programs-it includes compilers, assemblers.
System programs-it includes operating system, DBMS, real time system.
Application programs are developed in environment provided by the language compilers
such as FORTRAN, Pascal.
Utility programs are written to provide user processing environment.
System programs interact directly with the hardware.
Brook’s states that utility programs are three times as difficult to write as application
programs.
System programs are three times as difficult to write as utility programs
Product complexities are 1-3-9 for application, utility, system programs
Boehm uses three levels of product complexity equations of total programmer month of
effort pm is provided in terms of the number of thousands of delivered source instruction,
KDSI.
Programmer cost for the software project=the effort in programmer month*cost per
programmer month.
In this terminology the three levels of product complexity are organic, semidetached,
embedded.
Organic-application, entity-semidetached, embedded system.
Application program: pm=2.4*(KDSI) **1.05
Utility programs: pm=3.2*(KDSI) **1.12
System programs: pm=3.6*(KDSI) **1.20
Example: for a development of a 60,000 line application programs, utility programs and system
programs the ratio of pm: 1 to 1.7 to 2.8
The development time for a program
Application program TDEV=2.5*(pm) **0.38
Utility programs TDEV=2.5*(pm) **0.35
System programs TDEV=2.5*(pm) **0.32
Given the total programmer months for a project and the development time the average staffing
level is obtained by
Application program:176.6pm/17.85mo=9.9 programmers
Utility program: 294pm/18.3mo=16 programmers
System program:489.6pm/18.1mo=27 programmers
Failures in estimating the number of source instructions in a software product is to under
estimate the amounts of housekeeping code require.
House Keeping Code:
Position of the source code that handles input, output, interactive user communication, error
checking and error handling.
PRODUCT SIZE
A large software product is more expensive to develop than a small one.
Boehm equation indicates that the rate of increase in required effort grows with number of
source instruction at an exponential.
Using exponents of 0.91 and 1.83 results in estimates of 1.88 and 3.5 more effort for a
product that is twice as large, and factors of 8.1 and 67.6 for products that are 10 times as
large as known product.
These estimates differ by factors of 1.86(3.5/1.88) for products that are twice as large and
8.3(76.6/8.1) for products that are 10 times as large.
Depending on the exponent used we can easily be off by a factor of 2 in estimating effort for
a product twice the size of a known product and by a factor of 10 for a product 10 times the size of
known product, even if all other factors that influence cost remain constant.
AVAILABLE TIME
Total project effort is sensitive to the calendar time available for project competition.
Software projects require more total effort, if development time is compressed or
expanded from the optional time.
According to Putnam, project effort is inversely proportional to the fourth power of the
development time E=k/(TD**4).
This formula predicts zero effort for infinite development time.
Putnam also states that the development schedule cannot be compressed below about
86%of the nominal schedule regardless of the number of people or resources utilized.
Boehm states that “there is a limit beyond which a software project cannot reduce its
schedule by buying more personnel and equipment “.
REQUIRED LEVEL OF RELIABILITY
The ability of a program to perform a required function under stated conditions for a stated
period of time
Accuracy
Robustness
Completeness
Consistency
These characteristics can be built in to a software product.
There is a cost associated with different has to ensure high reliability.
Product failure may cause slightly inconvenience to the user.
While failure of other products may incur high financial loss or risk to human life.
Development effort multipliers for software reliability.
LEVEL OF TECHNOLOGY
In a software development required project is reflected by
1. Programming language
2. Abstract machine
3. Programming practices
4. Software tools used
Modern programming languages provides additional features to improve programmer productivity
and software reliability
These features include
1. Strong type checking
2. Data abstraction
3. Separate computation
4. Exception handling
Productivity will suffer if programmers must learn a new machine environment as part of the
development process
Modern programming practices include the use of
a) Systematic analysis and design technique
b) Structure designed notations
c) Inspection
d) Structured coding
e) Systematic testing
f) Program development library
Software tools range from elementary tools such as assemblers compilers, interactive text editors
and DBMs.
UNIT III
2 MARKS:-
1. Write note on: petri nets. (Nov 11)
Petri nets were invented in the 1960s by Carl Petri at the University of Bonn, West
Germany.
They provide a graphical representation technique and systematic and systematic methods.
It was invented to overcome the limitations of finite state mechanism.
A petri net is represented as a bipartite directed graph.
The two types of nodes are places and transitions.
PSA:-
The problem statement analyzer is an automated analyzer for processing requirements stated
in PSL.
PSA operate on a database of information collected from PSL description.
PSA provide 4 types of categories: data-base modification reports, reference reports,
summary reports and analysis report.
Section 1 and 2:
It presents an overview of product features and the processing environments.
Section 3:
It includes
1. User displays
2. Report formats
3. Dataflow diagrams
4. Data dictionary
Dataflow diagram specify
Data sources
Data stores
Transformations to be performed on the data.
Flow of data
Data stores
Data store is a conceptual data structure that is logical characteristics of data or given importance on
a dataflow diagrams.
Data stores and data sinks are depicted by shaded rectangles.
Transformations by ordinary rectangles.
Data stores by open ended rectangles
The arcs specify the dataflow.
Dataflow diagrams are not concerned with decision structure or algorithmic details like flowchart.
A data dictionary
Entries include the name of the data item and its attributes.
Section 4:
A SRS specifies the functional requirements for an software product.
It specifies the relationship among inputs, actions and outputs.
Section 5:
Specifies the performance requirements such as
1. Response time for various activities.
2. Processing time for various processes.
3. Memory constraints.
Section 6:
Specifies the exception handling.
It includes actions to be taken and the messages to be display in response to undesired situations or
events.
Possible exceptions include
1. Temporary resource failure.
2. Permanent resource failure
3. Incorrect
4. Inconsistent
5. out of range input data and parameters.
6. Internal values.
7. Parameters.
8. Violations of capacity limits (overflow).
9. Violations of restrictions (divide by zero).
Section 7:
Specifies early subset an implementation priorities for the system under development.
Section 8:
Specifies the modification and enhancement.
Section 9:
Specifies the acceptance criteria (various test).
Section 10:
Contains design hints and guide lines.
Section 11:
Specifies cross reference index.
A cross reference directory should be provided to index to find the specific paragraph numbers in
SRS.
Section 12:
Provides definition of terms that are unfamiliar to the customers and the product developers.
2. What are the formal specification techniques? (April 13, April 14, April 15, April 16, Nov 12,
Nov 13, Nov 15).
RELATIONAL NOTATIONS:-
Implicit equations
It states the properties of a solution without stating a solution method.
E.g. Matrix inversion M*M’=I+E
Matrix inversion is specified such that matrix product of the original matrix M
and the inverse of M (M’), yields the identity matrix I+the error matrix e
(computation error).
Complete specification of matrix inversion must include items such as matrix
size, type of data elements etc.
Given a complete functional specification for matrix inversion, design involves
specifying a data structure, an algorithm for computing the inverse.
Recurrence relations
A Recurrence relation consist of an initial part called the basis and one or more
recursive parts.
The recursive part describes the desired value of a function in terms of other values
of the function.
i. Atoms: the basic symbols in the alphabet of interest from regular expression.
ii. Alternation: if R1 and R2 are regular expression, then (R1 R2) is a regular
expression.
iii. Composition: if R1 and R2 are regular expression, then (R1 R2) is a regular
expression.
iv. Closure: if R1 is a regular expression, then (R1)*is a regular expression.
v. Completeness: nothing else is a regular expression.
Event tables
Event tables specify actions to be taken when events occur under different sets of
conditions.
A two-dimensional event table relates actions to two variables.
f (M,E)=A
M denote the current set of operating conditions
E is the event of interest.
A is the action to be taken.
Tables of higher dimension can be used to incorporate more independent variables.
Transition tables
Transition tables are used to specify changes in the state of a system as a function of
driving forces.
The state of a system summaries the status of all entries in the system in a particular
time.
Given the correct state and the current condition the next state results.
F (Si,Cj)= Sk
Sk=next state
Si=current condition
Cj=current state
Given current state S1 and current input b the system will go to state S0.
F (S1, b) =S0
In transition diagrams state becomes nodes. In a directed craft.
Transitions are represented as arcs between nodes.
3. Explain about any two Formal Languages and Processors for requirements specification.
(Nov 12,Nov 13, April 15, April 15, April 16,Nov 15, Nov 14, Nov 12).
Special purpose language and processor have been used to perform automated analysis of
requirements specifications. Some specification languages are manually applied and others having
automated processors. There are several types.
PSL/PSA
RSL/REVS
SADT
SSA
GIST
i. PSL/PSA
The problem statement language (PSL) was developed by prof. Daniel. The problem statement
analyser is PSL processor. Both were developed as ISDOS projects. This model describes set of
objects, each object has properties, and each property may have property values. Objects may be
inter-connected. These connections are called relationships.
PSL description can be divided into 8 major categories.
System input/output flow.
System Structure.
Data Structure.
Date Derivation.
System size and volume.
System dynamics.
System Properties.
Project Management.
System I/P or O/P deals with interaction between system and its environment.
System Structure is concerned with hierarchies among objects in system.
The data structure aspect includes all the relationships that exits among data used and/or
manipulated by a system as seen by the user of system.
The data derivation an aspect of the system description specifies which data objects are
involved in particular process in system. It describes data relationships that are internal to a
system.
The system size and volume aspect is concerned with the size of the system and those
factors that volume of processing required.
The system dynamics aspect of a system description in which the system behaves over time.
System properties have property value.
The project management required that project related information. This involves
identification of people involved their responsibilities, Schedule cost estimates etc.
PSA
The PSA can provide 4 reports:
1. Database modification Report.
2. Reference Report.
3. Summary Report.
4. Analysis Report.
Structure of PSA:
i. Data base modification reports list changes that have been made since that last report, together with
warning messages. These reports provide a record of changes for error correction and recovery.
ii. Reference report includes the name list reports, which list all the objects in the database with type
and dates of last change.
iii. Summary Report lists all the total number of objects.
iv. Analysis report compares the similarity between input and output.
ii. RSL/REVS
The Requirements Statement Language (RSL) is developed for real-time control systems.
RSL also uses basic concepts such as elements (describe objects), attributes (describe features of
elements), relationships (describe relations between elements), and structures (consist of nodes and
processing steps).
Flow specified in RSL as required network (R-NETS). R-NETs have both graphical and textual
representation.
The REquirements Validation System (REVS) processes and analyses the RSL statements. Note
that both RSL and REVS are components of Software Requirements Engineering Methodology
(SREM).
REVS operates on the RSL statements. Generally, RSL comprises the following components.
Structured Analysis and Design Technique (SADT) uses a graphical notation, and is generally applied
in information processing systems.
It comprises two parts, namely, Structured Analysis (SA) and Design Technique (DT). SA describes
the requirements with the help of diagrams whereas DT specifies how to interpret the results.
The model of SADT consists of an organized collection of SA diagrams. These diagrams facilitate
software engineers to identify the requirements in a structured manner by following a top-down approach
and decomposing system activities, data, and their relationships. The text embedded in these diagrams is
written in natural language, thus, specification language is a combination of both graphical language and
natural language.
The commonly-used SA diagrams include activity diagram (actigram) and data diagram (datagram).
An activity diagram is shown with nodes and arcs. The nodes represent the activities and the arcs
describe the data-flow between the activities. Four different types of arcs can be connected to each node,
namely, input data, control data, processor, and output data.
Processor describes the mechanism, which is in the form of tools and techniques to perform the
transformation.
Output data is the result produced after sending input, performing control activity, and mechanism in
a system.
A data diagram is shown with nodes and arcs, which are similar to that of an activity diagram.
The nodes describe the data objects and the arcs describe the activities. A data diagram also uses
four different types of arcs.
The arcs on the left side indicate inputs and the arcs on the right side indicate the output.
Here, input is the activity that creates a data object whereas output is the activity that uses the data
object.
The 'control activity' (arcs entering from top) controls the conditions in which the node is activated
The 'storage device' (arcs entering from bottom) indicates the mechanism for storing several
representations of a data object.
Note: Both the diagrams, controls are provided by the external environment and by the outputs from
other nodes.
iv. SSA
It was described by Gane and Sarson. There are 4 basic features of SSA.
1. Data flow diagram
2. Data Dictionaries.
3. Procedure Logic Representations
4. Data Store Techniques.
Data flow diagram is similar to SADT actigram, but they do not indicate mechanism and
control.
Data Dictionaries is used to define and record data elements and processing logic
representations.
v. GIST
GIST is a formal specification language developed at the USC/Information Science Institute
by R. Balzar and colleagues.
GIST is a textual language based on a relation model of objects and attributes.
A specification is composed of three parts:
i. A specification of objects types and relationships between these types.
ii. A specification of actions and demons which define transition between possible
states.
iii. A specification of constraints on states and state transitions.