Académique Documents
Professionnel Documents
Culture Documents
RAJENDRA SALOKHE
CHAPTER 1
THE SOFTWARE PROCESS
SOFTWARE ENGINEERING
Software engineering is the systematic planning of large software project. The process
involves from manpower planning to cost-estimating, satisfying user need, testing of
the project, quality assurance, software maintenance etc. Though logical , and is
developed rather than manufactures, software engineering is an systematic and
quantifiable approach as any other physical project and thus involves management,
mathematics , ergonomic concepts
.
The concept of software engineering was first introduced by Mr. F.L.Bauer in 1968 in
the NATO Software Engineering conference. The differentiation was made between
software engineering and programming and analysis. Other methods are single
activities while software engineering is a group activity.
Typical formal definitions of software engineering are
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
1] SYSTEM SOFTWARE.
System softwares actas interface between the inner core and the programs or
application software. The inner core of computers understand the machine language
which is in the form of 0/1 . System softwares are the control softwares which help
the computer start. Vaguely it is the mother tongue of the computer for the computers
understand this language when it starts. The system softwares decide how the data can
be stored, retrived, deleted , how the programs can be executed System softwares are
also called as operating systems. The development of system software started with
UNIX as multiuser, multitasking operating system , CP/M , DOS , WINDOWS,
LINUX and lot other. System software are cotrol programs and they control the
operations of the computer.
2] APPLICATION SOFTWARES :
System softwares are not sufficient to operating the computers. Some system
softwares provide word processing packages as WORD PAD etc and some games etc.
What we need for commercial use is three basic packages a] Word Processors b]
Spread sheet c] Data base management. These and othe packages are available as
application software and they communicate with the inner core with the help of
system software . Some of the aplication softwares are
MicroSoft Office
Lotus SmartSuit
MS-Acess
AutoCAD , Page Maker , Corel Draw etc.
3] SPECIAL APPLICATION SOFTWARES OR PACKAGES :
The application software are readymade softwares through which you can develop
systems for your use. However you do not have any flexibilty in these packages and
you want to develop a software as per you needs. This is provided by the software
packages as FoxPro. Visual Basic, C++ etc. These are special application softwares
AVAILABILITY OF SOFTWARE
Though you have to purchase most of the software , some software are available on
following terms
SHAREWARE :
LITEWARE : Limited
FREEWARE : Available
: Source code of the software is made available. Source code is the basic
programming instructions in the English like languages which are nave made
available to you along with the package.
OPEN SOURCE
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
software
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
was available to COBOL program only. Sometimes the data was also stored in the
binary format in the above packages.
4] Data security was made available by packages like Access and Oracle. They stored
data in binary tables. Yet the problem of accessing data through other packages
continued.
5] Microsoft came up with OLEDB(although it sounds like Object Linking and
Embedding Data Base there is no long form for this ) and ODBC (Object Database
Connectivity ) techniques to access data from various packages into one. Thus you
could use Visual Basic at from end and Oracle, Access or FoxPro at back end.)
6] After data compatibility the Code or program compatibility was thought of. Thus
Microsoft came up with .net technology where programs written in various languages
as VC++, J#, CS#, VB.net were converted into a common code and run. The latest
Framework of Windows consists of BCL(Base Class Library) and CLR (Common
Run Time). The BSL is the collection of thousands of functional codes which are
readily available to use. Thus making the software development easy. The CLR is the
heart of framework that contains procedures to covert the code into runtime code.
LANGUAGE GENERATIONS
: Fist generation languages were machine languages. Difficult to
understand
FIRST GENERATION
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
The development stage notes down how the objectives can be met.
Analysing risks, testing and deployment.
2] DEVELOPMENT:
3] SUPPORT:
In support stage the feedback is obtained from the customer to improve the
product or the errors or bugs in the software are cleared. The outputs are modified as
per requirements of the end user.
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)
The software development life cycle describes how the software should be developed.
It encompasses the various processes in software development as Guideline to
organize, plan, staff, budget, schedule and manage software project work over
organizational time, space, and computing environments. They describe the
documents to be delivered, the quality, cost and other phases of software
development.
The software development occurs in phases. Each phase has a certain work to
perform. It contributes to the part of the development cycle. Thee models are
descriptive and perspective type. The descriptive type describes the past process.
There is a feedback to the phases and the same phase can be referred back as required.
There are many models of software life cycles and we will describe a few.
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
Feasibility
study
Requirements
analysis and
applications
Design and
specifications
Coding and
module
testing
WATERFALL LIFE CYCLE
MODEL
Developed by Royce in 1970
Integration
and system
testing
Integration
and system
testing
The waterfall model or classic life cycle model or linear sequential model is shown in
the above figure. The phases are shown like falling water. Briefly the phases are as
follows
The first stage is to study whether the project is feasible or not.
This takes in to consideration the requirement, time schedule and cost of the project.
1] FEASIBILITY
STUDY:
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
AND MODULE
TESTING:
6] DELIVERY
Modify
Customer
feedback
PROTOTYPE
MODEL
Testing at
end user
The prototype model is a simple feed back type model. Where the developers listen to
the customers and revise the software. The customer again tests the software and
gives feed back.
SPIRAL MODEL
The project starts at the conceptual stage at the start of the spiral. Every stage then
will go through the phases of Requirement, Planning, and Risk analysis, Engineering,
Completion, Testing phases. Requirement stage will mean starting of new phase Thus
the New product, Modification and maintenance stages will go through Requirement,
Planning, and Risk analysis, Engineering, Completion, Testing phases. The rotation of
the spiral is in the clockwise direction
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
RISK
ANALYSIS
ENGINEERING
PLANNING
CONCEPT
NEW PRODUCT
MODIFY
COMPLETION
MAINTENANCE
REUIREMENT
SPIRAL
MODEL
TRIAL/TESTING
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
10
CHAPTER II
PROJECT MANAGEMENT AND PLANNING
DEFINITIONS
The project management institute has following definitions
"Project management is the application of knowledge, skills, tools and techniques to
project activities to meet project requirements."
"The planning, monitoring and control of all aspects of the project and the motivation
of all those involved in it to achieve the project objectives on time and to the specified
cost, quality and performance."
Project is a temporary piece of work with a finite end date undertaken to create a
unique product or service. Projects bring form or function to ideas or needs.
"Project management is the complete set of tasks, techniques, tools applied during
project execution" (DIN 69901)
We can summersie project management as managing and organising the available and
procurable resources so thet the project is completed in the defined scope and time
and the quality and cost of the project is maintained.
Some of the resources available are money, material, space, provisions,
communications, energy etc.
SELECTING MANPOWER
Not only programmers but peple right from helpers to managers are required to be
selected. However we are concerning here with the software people. We have already
defined the qualities required in software engineers. However the following are
considered while employment.
: The Manager has to decide the required qualification. An enterence
test is to be conducted to check the logic capacity. Normally thetest is conducted on
programming expertise like C/C++.
1] QUALIFICATION
2] EXPERIENCE
4]QUALITY OF PERSONS:
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
11
D] User representative : They represent the user. Too manycan create chaios.
E] System consultants : Outside people who provide consultancy
F] Vendor representative : Representatives of the venodrs supplying machines and
software
G] Internal auditors : Keep track of the account related activiteis.
PROJECT PLANNING
Project planning is the important aspect of any engineering , for that matter in any
activity. Wars are also planned. However many managers seem to neglect he planning
aspect. The plan gives a view of the progress of the activity. Thus any changes
required can be immediately implemented. When the project is behind schedule
increasingthe manpower doesnot always work for software projects. Employees
leavingthe jobs is another problem.
THE GANTT CHART AS PLANNING TOOL :
Henry Gantt was consider the father of planning and control. He developed the Gantt
or Bar charts for project planning, The Bar charts help in scheduling the project. The
give an overview of tight and slack times available durin the project and help in work
scheduling,
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
12
PROJECT
100 points
WORK
BREAKDOWN
STRUCTURE
MODULE 01
30 DAYS
DATA ENTRY 10
MODULE 02
15 DAYS
DATA ENTRY 05
MODULE 03
35 DAYS
DATA ENTRY
EDIT/PRINT 20
EDIT/ PRINT 10
EDIT/PRINT
MODULE 04
20 DAYS
15
20
10
EDIT/PRINT 10
DATA ENTRY
One of the most important WBS design principles is called the 100% Rule. The
Practice Standard for Work Breakdown Structures (Second Edition), published by the
Project Management Institute (PMI) defines the 100% Rule as follows:
The 100% Rule...states that the WBS includes 100% of the work defined by
the project scope and captures ALL deliverables internal, external, interim
in terms of the work to be completed, including project management. The
100% rule is one of the most important principles guiding the development,
decomposition and evaluation of the WBS. The rule applies at all levels within
the hierarchy: the sum of the work at the child level must equal 100% of the
work represented by the parent and the WBS should not include any work
that falls outside the actual scope of the project, that is, it cannot include more
than 100% of the work It is important to remember that the 100% rule also
applies to the activity level. The work represented by the activities in each
work package must add up to 100% of the work necessary to complete the
work package.)
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
13
Though WBS looks like organizational hierarchy it is not so. It is a project plan.
CRITICAL PATH METHOD (CPM)
The critical path method was developed by a company Dupont for the maintenance
schedule of its plant. The critical path method gives graphical view of the activity.
The importance of this method is to find out the critical path i.e. the longest activity,
which decided the time period of the activity and concentrate on this activity, and not
to leave any loose paths in this activity. If the activities not falling on the critical path
are delayed then it will not affect the total project time.
Critical Path
1-4-6-7
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
14
PERT
DIAGRAM
The pert charts are quite similar to CPM charts. In PERT charts the nodes are marked
with the numbers as 10,20 etc. The name of the activity and the duration for
completion is shown. While the project is in process the nodes are reviewed serially.
E.g. First node number 10 is reviewed and found out if it is completed or not. Then
node no 20 is reviewed. The critical path is also determined which is 9 weeks in the
above diagram through nodes 20,30,60 and 70. Some activities may depend on
completion of earlier activity.
New activities may arise during the project is in process. That time new nodes can be
inserted and numbered 15,25 etc.
In pert the time for completion of activity is divided in three types
1] Optimistic time: Shortest time
2] Most likely time: Specifies the probable practical time
3] Pessimistic time: The longest time the activity may take
Because of the introduction of the Most likely time concept it is possible to PERT
charts to determine the probability of finishing the project before time. It is also
disadvantageous because the critical path may change due to some of the activities
getting not completed in time
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
15
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
16
The rolling wave is a short-term concept. The project is broken it to parts and is
worked out in detail for that short term. Another part is worked out when one part is
finished.
EXERCISE:
1] A bicycle company manufactures a bicycle in 100 minutes. The level 2 operations
are frameset (15), crank set (5), Wheels (30), breaking system(5), shifting system
(5),integration (35), project management(5) . At level 3 The frameset assembly is
broken up into The frame(7), handle bar(2) ,fork(3), seat(3) and the wheels assembly
is broken into
Front wheel (13), rear wheel (17) the Integration is divided into
Concept(3) , design(5), assembly(10) , testing(17)
Draw a WBS chart for the above activity pertaining to 100 % rule
2] State the difference between CPM and PERT charts
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
17
CHAPTER III
MODERN SOFTWARE ENGINEERING TECHNIQUES
JOINT APPLICATION DESIGN. (JAD)
In this process the knowledge specialists and IT specialists have a meeting several
time to define and review the business requirements so that new information
technology systems can be developed. This system was developed by Chuck Morris
and Tony Crawford of IBM in 1970. They conducted many workshops to strengthen
and spread the concept The following steps are taken during the 8/10 days workshop
PROJECT OBJECTIVES AND LIMITATIONS: The participants were prepared with
planning and scoping of the project. . Scoping decides the business functions that are
in the scope of the project. Points like whether the project was tried earlier, whether
there are any false starts? , What is the political feasibility? , Whether any failures
were there? . All these points are discussed.
1] IDENTIFY
2] CRITICAL
3] DOCUMENTATION
4 ] DEFINE
5] SELECTING
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
18
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
19
UPPER CASE TOOLS : The tools used for the analysis and design phase of the
software development lifecycle (diagramming tools, report and form generators,
analysis tools) are called upper case tools
LOWER CASE TOOLS The tools used to support data base schema generation,
program generation, implementation, testing, configuration management are
called lower case tools. These are back end tools.
Some of the categories of the case tools available are
UML
Some times there is repetitive and iterative logic . The code generators are helpful in
such conditions.
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
20
DATA MODELING :
Data modeling is the systematic organization data and related information. The data
is organised in structures and is stored in a collection called Relational Data Base
Management System which stores forms, queries, relations, stored procedures
,classes, triggers alongwith the tables.
The structured order of data makes it very easy to mange. For any project a single
data base becomes sufficient for it can store multiple tables. The table contain
columns and fields and store information.
UNIFIED MODELING LANGUAGE (UML)
UML is a specification language for object modeling . It is non proprietory language
developed by Rumbaugh, Grady Booch and Ivar Jacobson
UML includes standardised graphical notation for creating an abstract model of the
system. UML include 13 type of diagrams based on thre major ctegories.
STRUCTURE DIAGRAMS
Class diagram
Component diagram
Composite structure diagram
Deployment diagram
Object diagram
Package diagram
BEHAVIOR DIAGRAMS
Activity diagram
State Machine diagram
Use case diagram
INTERACTION DIAGRAMS
Collaboration (UML 1.x)/Communication diagram (UML 2.0)
Interaction overview diagram (UML 2.0)
Sequence diagram
UML Timing Diagram (UML 2.0)
QVT TOOLS
QVT stand for Query/Views/Transformations. QVT defines a standard way to
transform source models into target models
CONFUGURATION MANAGEMENT TOOLS
Software Configuration Management (SCM) is part of configuration management
(CM). Roger Pressman, in his book Software Engineering: A Practitioner's Approach,
says that software configuration management (SCM) is a "set of activities designed to
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
21
control change by identifying the work products that are likely to change, establishing
relationships among them, defining mechanisms for managing different versions of
these work products, controlling the changes imposed, and auditing and reporting on
the changes made." In other words, SCM is a methodology to control and manage a
software development project.
Confururation mangement concern with reproducing in a revised , enhanced form the
product already available or developed.
CAPABILTY MATURITY MODEL (CMM)
This model was developed by the U.S. Department of Defence in 1984. It is similar to
ISO 9001 . The ISO standards specify an quality system ..
There are 5 lavels of the model defined.
At the initial level, processes are disorganized, even chaotic. Success is likely
to depend on individual efforts, and is not considered to be repeatable, because
processes would not be sufficiently defined and documented to allow them to
be replicated.
At the defined level, an organization has developed its own standard software
process through greater attention to documentation, standardization, and
integration.
At the managed level, an organization monitors and controls its own processes
through data collection and analysis.
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
22
Object code
MY.OBJ
OTHER
.OBJ files
linker
Executable
Code
MY.EXE
The window programs almost follow the same path. Instead of the components being
embedded in the exe files they are kept seperatel as DLL file (Dynamic Link Library )
The DLL programs can be used at runtime. One executable program can reference
many DLL files or many programs can reference on DLL file. The problem is that the
refernce to the DLL is required to be registerd in the Windo registry. Thus when the
progam is uninstalled the refernce may not be removed. Also the DLL are not version
compatble. This problem is called as DLL Hell and is removed in the .net technology.
In .net technolgy a program is converteds into a common Intermidiate Language code.
The DLL files are stored in a special folder called assemblies. The DLLs are
differentiated according to the Name, Versio no and software key. If any one of these
parameters are different then the DLL is considered as different. Thus it makes
possible to store DLL with same names of differen version
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
4GL
RAJENDRA SALOKHE
HIGHER LAVEL
LANGUAGE
23
ARTIFICIAL
INTELLIGENCE
ASSEMBLY LANGUAGE
THE
SOFTWARE
HIRARCHIE
MACHINE LANGUAGE
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
24
CHAPTER IV
SOFTWARE COST ESTIMATING
COMPONENTS
As compared to engineering projects the software cost estimating is a little difficult
task. You ask to develop a software for your personal needs and the programmer may
quote say R.10000/- . He is not sure if this is low or high. The next person asks the
same project and the quote may be Rs.5000/- and so on.
However the project can be broken into physical and logical components as
THE PHYSICAL COMPONENTS
The physical components are the components whose cost can be directly evaluated.
These include hardware, operating systems, run time software, establishment charges,
electricity, water, renting, licenses, work permits, taxes, overhead and approximate
hidden costs. The major categories shown in the diagram are
THE LOGICAL COMPONENTS
COST
ESTIMATION
COMPONENTS
The logical components are the components whose cost can not be directly evaluate.
This include
A] FRAMEWORK DEVELOPMENT
Exception handling
Logging
Email/Fax
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
25
Printing
Data Export
Resource Files
Deployment
B] PRESENTATION
Custom controls
Validation
C] BUSINESS
Validating data
Data manipulations
D] DATA STORAGE
Database design
Indexing
Performance tuning
E] DATA FORMATTER
The Data formatter ensures that the format of the data is correct. If a particular
data were of type float, then the data formatter would convert the data passed to
it into a float before assigning it
After breaking the project into such methods the cost for individual items can be
worked out.
COnstructive COst Model (COCOMO)
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
26
The COCOMO model was developed by Barry Boehm in 1981 to estimate the
number of man months required to develop a software project. The COCOMO model
is based on the Effort equation to estimate number of Person-Months.
SOURCE LINES OF CODE
The base of calculation is SLOC (source Lines of Code ) or how many lines are going
to be there in the source code. These lines are calculated on the following guidelines
Only Source lines that are DELIVERED as part of the product are included -test drivers and other support software is excluded
SOURCE lines are created by the project staff -- code created by applications
generators is excluded
The LOC depends on the Programming language and is shown in the following table
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
27
ab
bb
cb
db
Organic
2.4
1.05
2.5
0.38
Semi-detached
3.0
1.12
2.5
0.35
Embedded
3.6
1.20
2.5
0.32
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
28
Ratings
Cost Drivers
Very
Very Extra
Low Low Nominal High High High
Product attributes
Required software reliability
Size of application database
Complexity of the product
1.15 1.40
0.94 1.00
1.08 1.16
1.00
Memory constraints
1.00
Hardware attributes
0.87 1.00
1.15 1.30
0.87 1.00
1.07 1.15
Analyst capability
0.86 0.71
Applications experience
0.91 0.82
0.86 0.70
0.90
0.95
0.91 0.82
0.91 0.83
1.04 1.10
Personnel attributes
Project attributes
Use of software tools
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
29
E=ai(KLOC)(bi).EAF
where E is the effort applied in person-months, KLOC is the estimated number of
thousands of delivered lines of code for the project and EAF is the factor calculated
above. The coefficient ai and the exponent bi are given in the next table.
Software project ai
bi
Organic
3.2
1.05
Semi-detached
3.0
1.12
Embedded
2.8
1.20
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
30
Technical staff and business staff should collaborate and cooperate with each other.
The DSDM has 7 phases ,which are as follows.
Phase Map
developed by
Benjamin J.J. Voijt
1 PRE-PROJECT:
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
31
framework, the Business Study provides the basis for all subsequent
work. Like the
Feasibility Study, it is as short as possible (the duration measured in
weeks rather
than months), while achieving sufficient understanding und the
requirements.
4 FUNCTIONAL MODEL ITERATION (FMI)
The focus of Functional Model Iteration is on refining the businessbased aspects of the computer system, i.e. building on the highlevel processing and information requirements identified during the
Business Study.
5 DESIGN & BUILD ITERATION (DBI)
covers
the
cutover
from
the
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
32
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
33
CHAPTER V
RISK ANALYSIS
It is said that No Risk- No gain . Every business , project and running entities will
have risk. When you take a risk you know that the event may occur but do not
consider it to happen. Risk is an unwanted event . It may happen or may not happen.
Risk can be defined in 4 ways
1] An unwanted event that may or may not happen
2] A cause of unwanted event that may or may not happen.
3] Probability of unwanted event
4] Statistical expectation value of unwanted event.
Other definitions of risk available are
"The possibility of suffering harm or loss; danger."
"a measure of the probability and severity of adverse effects."
a measure of the probability and severity of adverse effects inherent in the
development of software that does not meet its intended functions and performance
requirements.
CALCULATING RISK
The following things should be considered while arriving at risk factors. It should be
taken into account that every person has a right not to take any risk.
: It should be clear as to what type of risk
tone is taking, Whether it is monitory , ethical or any other type.
1] RISK
2] THE
3] DESIGNS ON RISK SHOULD BE TAKEN ON THE BASIS OF WEIGHING TOTAL RISK AGAINST TOTAL
BENEFITS. : If the benefits are far worth than the risk then the risk can be accepted. If
the risk is more than the benefits then it should not be acceptable.
: Once the risk is analysed an expert
should be called to decide whether the risk should be accepted or not.
4] DECISION
5] RISK
6] RISK
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
34
MANAGING RISKS
Software Risk Management is a set of practices that enable software development
projects to assess overall project risk and identify, prioritize, and manage specific
risks
Unless the risk is identified you can not proceed with managing.
The risks are analyzed on the basis of greater risks, smaller risk ,
THE RISK
Anton D. Buttigieg
at various phases.
: The response to the risk should be decided. i. e. the
actions that will be taken when the risk occurs.
4] DECIDE
5] MONITOR
THE RISKS
: The risk may have an impact for a certain period which should
be monitored
6] RISK
CONTROL
stage.
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
35
Anton D. Buttigieg
The risk occurs in the every function of the project . However in software projects the
following areas are more prone to risks.
Testing Risks
Code Risks
Design Risks
Requirement Risks
Exercise :
1] What are the various definitions of the risk
2] Discuss risk planning with the help of the planning diagram shown .
3] How can one manage the risk?
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
36
CHAPTER VI
SOFTAWARE QUALITY AND TESTING
It is difficult to define the quality of the software as it depends on what the software
needs of end user are. The essential qualities of software are
ESSENTIAL QUALITIES OF SOFTWARE
1] The software should be accurate
2] It should be bug free and one should rely on it.
3] Software should be roubust
4] It should be user friendly and understandable.
5] It should be maitainable and reusable
6] It should be usable on many platforms - Portable
7] Design of software should be modular and strucural
8] The sotware hould be testable.
9] The software should provide required security.
Walter B. Newsom has defined the quality of quality- team in 9 Cs
9 CS OF QUALITY
1] Capability
2] Confidence
3] Challenge
4] Criteria
5] Credibility
6] Consistency
7] Compensation
8] Cost
9] Communication
DEFINITIONS OF SOFTWARE QUALITY
A definition in Steve McConnell's Code Complete similarly divides software into two
pieces: internal and external quality characteristics. External quality characteristics
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
37
are those parts of a product that face its users, where internal quality characteristics
are those that do not .
Dr. Tom DeMarco says "a product's quality is a function of how much it changes the
world for the better" .
Gerald Weinberg in Quality Software Management: Systems Thinking is "Quality is
value to some person."
All the definitions stress on the personal judgment of the quality
QUALITY DEPENDANCIES
Quality of software depends on the following factore
: There are many languages in which a software can be
developed and many methods to develop it. People can use effcient or inefficeint
logics.
1] SOURCE
CODE QUALITY
2]RELIABILTY
3] REQUIREMENTS
4] DESIGN
5] PROGRAMMING
6] TESTING
7] RUNTIME
QUALITY CIRCLE
Quality circle was the concept first introduced in Japan. In this method all the
emplyees from worker lavel to the chairman are involved in the quality control and
motivated to give higher quality.
TESTING
At initial stages the software testing was not given important consideration. However
today the software testing has become a very important function.Testing is also
related to quality .Testing was initially introduced by Glenford J. Myers in 1979
Testing is defined as
"the process of questioning a product in order to evaluate it"
Some of the codes regarding Testing are :
"An effective way to test code is to exercise it at its natural boundaries." -- Brian
Kernighan
"Program testing can be used to show the presence of bugs, but never to show their
absence!" -- Edsger Dijkstra
"Beware of bugs in the above code; I have only proved it correct, not tried it." -Donald Knuth
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
38
"A relatively small number of causes will typically produce a large majority of the
problems or defects (80/20 Rule)." -- Pareto principle
There are 3 categories of testing
This is done by the tester by giving inputs to the software and
testing the outputs. The tester is not required to have a knowledge of any codes.
1] BLACK BOX TESTING :
: The tester has the knowledge of code but he will do the testing
at the black box lavel.
3] GRAY BOX TESTING
The V
concept
S.E..Snook
The V concept above shows that testing should start at the Requirement definition
stage. As the project proceeds it shuld be tested at various stages.
METHODS OF TESTING
FUNCTIONAL TESTING
SECURITY TESTING
PERFORMANCE TESTING
STRESS TESTING
RELIABILITY TESTING
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
ENVIRONMENT TESTING
INSTALLATION TESTING
RECOVERY TESTING
ERROR GUESSING
39
Full life cycle object oriented technique chart is given by Scott W. Ambler as follows.
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
40
TYPES OF TESTING
The various types of tests performed are as follows
: This testis performed on a unit or a single module so that the
performance of the module is determined at the module level only.
1] UNIT TEST
: This test is performed when the complete package is ready. All the
modules are tested together
3] SYSTEM TEST
4] ACCEPTANCE TEST
5] AD-HOC
: This test is conducted when the software is ready for delivery. The
functionalities are tested before handing over the project to the end user. Some times
done in-house also.
6]ALPHA
TESTING
8] AUTOMATED TESTING
:( Discussed below)
AUTOMATED TESTING :
Testing tools are available to test the correctness of the software. They identify the
bugs or inefficiencies in the software . Many tools are available the examples being
WinRunner , TestComplete and QuickTest. These tools automatically generate a
code called test scripts. The software will be run and the user responses are generated
through the testing tool. Responses are noted.
The TestComplete software advertises its product as
AutomatedQAs TestComplete breaks this stereotype. It delivers
automated functional, unit, regression, manual, data-driven,
object-driven, distributed and HTTP load, stress and scalability
testing in one easy-to-use and totally integrated package at an affordable
price.
TestComplete is a full-featured environment for automated testing of
Windows, .NET, Java, WPF (XAML) applications, web pages, web
servers and web services. It has been designed to free developers and
QA departments from the massive drain on time and energy required by
manual testing.
The automated tests are time consuming. Mostly the simplest tests are automated.
However they are more accurate than manual testing.
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
41
EXERCISE
1] Define qualities of software.
2] What is object oriented testing ?
3] Elaborate on automated testing.
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
42
CHAPTER VII
FLOW CHARTS
MANAGEMENT INFORMATION SYSTEM (MIS)
The management needs lot of information to base the decisions for the efficient
running of the project/ business. Say from inventory , the management will need
information like Age Analysis, ABC Analysis, stock of costly items, the credibility of
vendors, the reorder level of items etc. As the process goes on the management
information needs also grow. It has become very easy to fulfill these needs with the
help of computers.
DEFINITIONS OF MIS:
DEFINITION
OF
JORDEN B. DAVIS:
DISPLAY
PROCESS
DATA
INPUT/OUTPUT
DOCUMENT
MAGNETIC DISK
DECISION
CONNECTOR
PREPERATION
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
43
START
READ
A,B
yes
DISPLAY
A
IS A>B
no
DISPLAY
B
END
The computer first reads 2 numbers. Say A and B. The two numbers are
compared. If A is greater than B then A is displayed otherwise B is displayed which
means the greatest number is displayed.
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
44
START
INPUT A,B,C
C
yes
no
B>C?
yes
A>B?
no
OUTPUT B
A>C?
yes
no
OUTPUT C
OUTPUT A
END
At the second branch when A is not greater than B which means B is greater then B is
compared with C . Still is B is greater then B is the greatest otherwise C is greatest.
FINDING THE SUM OF FIRST 10 NUMBERS
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
45
START
SUM=0
I=1
I=I+1
SUM=SUM+I
END
IS I>=10 ?
PRINT SUM
Reading and
displaying data
Read
Record
End Of
File ?
End
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
Stream 1
say
Mechanical
Start
Merit
student
Admission Process
Data Flow
Diagram
Stream 1
say
Electrical
46
Stream 1
say Civil
Registrar
Principal
Cashier
End
The student from merit list approaches the admission counter. His application is
directed to the registrar. The registrar checks the number of seats available in the
required stream and then sends the application to the principal who finally decided the
admission. On paying of fees to the cashier, the process is complete.
ALGORYTM
The step for logic of a program is called algorithm. Algorithm is not a chart like
representation.
The algorithm for obtaining sum of 5 numbers can be written as follows
1] Read five numbers
2] Sum the numbers
3] Display Sum
4] End
EXERCISE :
1] Draw a flow chart to find factorial of a number.
2] Draw a data flow diagram making payment to the party.
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
47
CHAPTER VIII
DYNAMIC HTML
The initial stage of HTML development was in the plain text form. The abilty of
linking to another page or paragraph through words, images , buttons etc made HTML
an important tool on the internet. It is a language of internet explorer. Till internet
explorer version 3.0 only plain text was supported. Text formatting facilities or
movements were not allowed. So it was static type language. Version 4.0 of Internet
Explorer supported a HTML version which had 2 important facilities.
1] Cascaded styles sheets (CSS)
2] Use of Java Script / VB Script languages.
And thus this was called DHTML or dynamic hypertext mark up language.
<html>
<head>
<title>DHTML DEMO 01</title>
</head>
<BODY style="background-color:'pink'".
<h1 Style = "text-align:centre">Centre for Advanced Technologies
</h1>
<hr>
</body>
</html>
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
48
<HTML>
<HEAD>
<TITLE>Welcome to Aruta Publishers </TITLE>
<STYLE>
H1 {font: 35pt Times;}
H2 {font: 14pt cursive;
text-indent: .5in;
margin-right: 1in;
margin-left: .5in}
</STYLE>
</HEAD>
<BODY BGCOLOR="#000000" TEXT="#FF0000" LINK="#FF0000"
VLINK="#FF0000" ALINK="#000000">
<h1 ALIGN="CENTER">
<font color="#FFFF00">ARUTA PUBLISHERS</font>
</h1>
<H2>"The following page will give you guiding links for
earning money ,
for referral links and jobsites. We however do not take any
responsibility
for any transactions you make with the link owners. We are not
responsible
for just anything. These are guidelines only. We are not in the
business of
paying money online or any sort of that type. We are a publishing
company" </H2>
<H2><span style="background-color:
color="#FFFF00"> "View
#000000"><font
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
49
</H1>
</BODY>
</HTML>
Black
#000000
Dark Blue
#000088
Green
#008000
Yellow
#FFFF00
White
#FFFFFF
Red
#FF000
DIV TAG
DIV tag divides the page into segments or divisions. This segments can be placed at
required positions.
<html>
<head>
<title>DHTML DEMO 01</title>
</head>
<BODY style="background-color:'pink'".
<h1 Style = "text-align:centre">Centre for Advanced Technologies
</h1>
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
50
<hr>
<div Style = "position:absolute; left :100; top:120 ; width:200; zindex=0;">
<P style= "font-family:cursive; font-size:20 pt; font-weight:bold">
Learn Software Engineering
</p>
</div>
</body>
</html>
Absolute position is decided with relation to the top left edge of the page. You can
also specify Relative position which is in relation to other segment.
<html>
<head>
<title> Demo of DIV </title>
</head>
<body>
<div id= pict1 style="position:absolute; left:300; top:150">
<img border="0" src="porcupine.jpg" width="170" height="119">
</div>
<div id= pict2 style="position:absolute; left:500; top:150">
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
51
The two pictures will be shown in the explorer. They are put in
different segments.
USING JAVA SCRIPT:
Java script is a scripting language based on Java and supported by Internet Explorer
and Netscape navigator. Java script is the subset of the Java language extending
limited functionality .
MOVING TEXT EXAMPLE
The following script will set the text moving on the page
<html>
<head>
<title>MOVING TEXT</title>
<script language="javascript">
var pos=0;
var direction=1;
function Move() {
obj=document.getElementById("head1");
pos += direction;
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
52
<html>
<head>
<script type="text/javascript">
function ChangeBackground (bgd)
{
document.body.style.background=bgd
}
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
53
</script>
</head>
<body>
<b>Mouse over the colored squares and the background color will
change!</b>
<table width="300" height="100">
<tr>
<td onmouseover="ChangeBackground('red')"
onmouseout="ChangeBackground('transparent')"
bgcolor="red">
</td>
<td onmouseover="ChangeBackground('blue')"
onmouseout="ChangeBackground('transparent')"
bgcolor="blue">
</td>
<td onmouseover="ChangeBackground('green')"
onmouseout="ChangeBackground('transparent')"
bgcolor="green">
</td>
</tr>
</table>
</body>
</html>
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
54
In the above program when you click on any of the squares the background will
change to that color. When the mouse is moved over to the square the
changeBackground function is executed with the color as the parameter. This color
is set to the background.
The program below will show glowing text when the mouse is moved over the
text
<html>
<head>
<style>
h1
{
width:400;
}
</style>
<script type="text/javascript">
var i
function glow()
{
i=0
interval=setInterval("makeglow()",10)
}
function back()
{
clearInterval(interval)
document.getElementById('myHeader').style.filter=false
}
function makeglow()
{
i++
if (i<5)
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
55
{
document.getElementById('myHeader').style.filter="glow(strength=" + i +
")"
}
else if (window.interval)
{
clearInterval(interval)
}
}
</script>
</head>
<body>
<h1 id="myHeader" onmouseover="glow()" onmouseout="back()">Mouse over
this header</h1>
</body>
</html>
.
EXERCISE
Design a web page of your own.
-------------------------------------------------------------------------------------------------------
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
56
APPENDIX
OTHER CONCEPTS
FISH BONE DIAGRAM
The fishbone diagrams were developed by Kaoru Ishikawa in 1960. The diagram was
developed to find out the causes of failure in the project deadlines. The main bone
was for the failure and the other lines for various causes . The diagram looked like a
bone of the fish and thus called the fish bone diagram.
Mother
Nature
The 8 P's
Price, Promotion, People, Processes, Place / Plant, Policies, Procedures & Product
(or Service) (recommended for administration and service industry).
The 4 S's
SOFTWARE ENGINEERING
RAJENDRA SALOKHE
57
Define the process improvement goals that are consistent with customer
demands and enterprise strategy.
Measure the current process and collect relevant data for future comparison.
Improve or optimize the process based upon the analysis using techniques like
Design of Experiments.
Control to ensure that any variances are corrected before they result in defects.
Set up pilot runs to establish process capability, transition to production and
thereafter continuously measure the process and institute control mechanisms
DMADV
Define the goals of the design activity that are consistent with customer
demands and enterprise strategy.
Design details, optimize the design, and plan for design verification. This
phase may require simulations.
Verify the design, set up pilot runs, implement production process and
handover to process owners.
-------------------------------------------------------------------------------------------------------