Vous êtes sur la page 1sur 57

SOFTWARE ENGINEERING

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

"the application of a systematic, disciplined, quantifiable approach to the


development, operation, and maintenance of software".

"an engineering discipline that is concerned with all aspects of software


production"

"the establishment and use of sound engineering principles in order to


economically obtain software that is reliable and works efficiently on real
machines"

The IEEE has defined software engineering as


1] The application of a systematic ,disciplined ,quntifiable approach to the
development , operation and maintenance ofsoftware i.e. the application of
engineering to software
2] The study of approches as mentioned in 1.
WHAT IS SOFTWARE ?
Software are programms which operate the computer and othes devices. It is set of
instructions for the electronic device to operate. Without softwares we can not put life
into the computers. There are three major types of softwares

-------------------------------------------------------------------------------------------------------

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 :

A limited period free trial is available.

LITEWARE : Limited

period trail but some features are disabled.

FREEWARE : Available

free but there are copy right restrictions

PUBLIC DOMAIN SOFTWARE

: Free software and no restrictions

: 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

HISTORY OF SOFTWARE ENGINEERING


The history of software engineering evolves with the advent of
developments.

software

1940 : Machine code was written by hand


1950 : Assemblers and interpreter were created which could convert the English like
language to machine language
1960: Optimising compilers and interpreters were used. Concept of software
engineering was introduced.
1970 Operating systems, code repositories were introduced.
1980 Personal computers were widespread.
1990 Object oriented approach wide spread. Internet wide spread.
2000 Java, .net concepts introduced which made the programming easy.
PRINCIPALS OF SOFTWARE ENGINEERING :
The principals of software engineering are
1] Quality is at the top
2] High quality software is possible.
3] Give products to the customers early.
4] Determine the problems before writing the requirements.
5] Evaluate design alternatives.
6] Use an appropriate process model.
7] Minimise intellectual distance.
8] Good management is important than good technology.
9] People are the key to success.
10] Follow with care.
11] Accept responsibility.

-------------------------------------------------------------------------------------------------------

SOFTWARE ENGINEERING

RAJENDRA SALOKHE

QUALITIES OF SOFTWARE ENGINEER


1] He must be well versed with modern software technology.
2] He should be a good programmer
3] He should be good in algorithms i.e. steps of logic
4] He should have management concepts as planning, quality awareness
5] He should be able to communicate with the end user , understand his needs and
convert the needs into programming logic.
6] He should be good at creating the model of the software project.
SOFTWARE PROJECT AS OTHER PROJECT.
Software is not an manufacturing activity. It is an development activity. However it
resembles with the manufacturing activity and can be managed like manufacturing
activity with management skills. The individuals my develop components and later on
it can be combined to form the final software so it resembles a real manufacturing
activity. It is like a factory where all the workers are not engineers. Similarly all
programmers can not be said to be software engineers.
Software projects have the same characteristics as that of manufacturing activity as
planning, re-sourcing, testing ,quality control , delivery schedules ,maintenance etc.
There are however less chances of physical damage and life of the product. The life of
the product depends on new technology coming up as a program written in COBOL
may get outdated . ( This is however not a case . COBOL programs are still running
on the mainframes.)
EVOLUTION OF SOFTWARE
1] In early days there was a punched card system. The data and programs were
punched on a card or a paper and fed to the computer every time the program was to
be executed and the results obtained.
2] Later the tapes were used to store data and programs but the access was slow since
the data was stored linearly and sequentially.
3] The hard disk brought a major breakthrough in storage devices since the data
access became fast. However most of the programming packages as FORTRAN,
BASIC ,COBOL ,DBASE, FOXPRO etc were storing the data linear sequentially and
mostly in text format and there was no data security. The data was mostly available to
the package which was using the data. e . g. the data stored through COBOL program

-------------------------------------------------------------------------------------------------------

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

: Were assembly languages. A little higher level. Still


used in programming microprocessors.
SECOND GENERATION LANGUAGES
THIRD GENERATION LANGUAGES:

English like languages as Fortran, COBOL etc. evolved


as third generation languages. They were much easy to program into.
: These languages were made more specific to the
applications. It is thought that programming expertise is not needed for programming
the computers. ORACLE, INFORNIX, INGRESS , SYBASE emerged as 4 th
generation languages .They are categorised as
FORTH GENERATION LANGUAGES

General Use : SQL , POWER BUILDER etc.


Database query languages : INFORMIX, SQL etc.
Report generators: ORACLE REPORTS, LINC etc
Data manipulation, analysis, and reporting languages: INFORMIX, PL/SQL etc.
Database driven GUI Application Development: UNIFACE
Screen painters and generators:ORACLE FORMS
Web development languagues : COLD FUSION
FIFTH GENERATION LANGUAGES

: Pertain to developing human like logic. LISP

-------------------------------------------------------------------------------------------------------

SOFTWARE ENGINEERING

RAJENDRA SALOKHE

THE ARTIFICIAL INTELLIGENCE


Artificial intelligence is the branch which concentrate on making the computer work
like humans. The human brain processes the information in the image form while the
computer processes the information in figures. The decision of human beings are
many times based on emotions, environment and other factors. Humans can derive
conclusion based on the previous examples. e.g. If apple is a fruit and Ram likes fruits
then Ram likes apple. Computers cannot derive such conclusions. A language called
LISP (List processing) is developed to impart artificial intelligence in computers.
However it cannot be said to be very successful so far
PHASES OF SOFTWARE ENGINEERING
There are three major phases evolved in software engineering
The definition phase defines what the project is, what are the process
requirements, what are inputs available, what out puts are to be given. The software to
be used etc.
1] DEFINITION:

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

WATERFALL LIFE CYCLE MODEL

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:

2] REQUIREMENTS ANALYSIS AND APPLICATIONS: This

identifies the exact requirement of the


system. The customer, developer and marketing organisations are involved in this
phase, A lot of interaction between end user and developers are required as the end
user is mostly unaware of the computer logic and the developer is unaware of the end
user requirements. The false interpretations may lead to a bad logic that is
cumbersome to replace.
The design phase works out the overall logic or the high
level logic for the project. This may produce project documentation. The
specifications are noted down and the various programmers at various stages are made
aware of the project. This process involves what/how analysis i.e. it determines what
exactly the requirements are and how to implement them. At design state it is also
determined as to what software system should be used. The various specifications are
dotted down. The various methods for achieving results are considered, discussed and
finalised.
3] DESIGN AND SPECIFICATIONS:

-------------------------------------------------------------------------------------------------------

SOFTWARE ENGINEERING

RAJENDRA SALOKHE

At above three stages a code may be developed for


suitability and logic testing. At coding and module testing stage the actual code for
delivering to the customer and testing at the customer end is developed.
4] CODING

AND MODULE

TESTING:

The modules developed in the above stages are


integrated and tested as a whole system. This is almost the last step at the developers
end.
5] INTEGRATION

AND SYSTEM TESTING:

AND MAINTENANCE: The system is finally delivered. On line working starts


in full. However many times a feed back is received form the end users and it may be
required to go back to previous stages.

6] DELIVERY

THE PROTOTYPE MODEL

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

THE RAPID APPLICATION DEVELOPMENT MODEL (RAD)


The rapid development model breaks the project in different modules. Each module is
developed separately in the scheduled time. The phases are business modelling ->
Data Modelling -> Process Modelling -> Application Generation -> Testing
There are lot of other model and there is no such thing as a standard model. You to
select a model that suits best to your project or have your own model. The
implementation of project in the scheduled time, proper cost and quality is important.
EXERCISE:
1] Explain spiral model
2] Define software engineering
3] How software engineering is similar to other projects.
4] List different phases of software life cycle.
5] Explain how software development has lead towards program compatibility.

-------------------------------------------------------------------------------------------------------

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

: Suitable experience is to be decided

: Qualified and suitable candidate differ. I hve seen a case where a


person with B.Sc. qualifiction and knowledge of AutoCAD was selected against B.E.
person. Sometimes honesty, hardworking and native are sutable crieteries.
3] SUITABILITY

4]QUALITY OF PERSONS:

Do not compromise the quality of persons

The following cadres are required in a software project


A] System Analysts: They work with the users and develop the logic rquired for the
sotware
B] Programmers : Write programs as per the modules given to them
C] System managers : They maintain the systems in working conditions
-------------------------------------------------------------------------------------------------------

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

THE WORK BREAK DOWN STRUCTURE; (WBS)


The work break down system diagram shows the project schedule in a tree structure.
The root node represents the major activity to be conducted and this activity is then
broken down into child nodes.
This diagram gives a view of how the activiteis are broken down in small and finer
activites so that the attention to very samll actvities is not missed. The nodes can be
labeled with an information like name of the person resposible, time schedule ,
starting and ending date s etc. However it doeno give a rescheduling perspective as
given by the Gantt chart.

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

The steps in developing CPM charts are as follows


1] List all the activities.
2] Decide the sequence in which the same are required to be carried out.
3] Note down the time require for each activity. With details as earliest start time,
earlier finish time, latest start and finish times.
4] Determine the slack time for each activity. The slack time is normally the
difference between earliest start and latest start time.
5] Draw the diagram
6] Revise the diagram if necessary.

-------------------------------------------------------------------------------------------------------

SOFTWARE ENGINEERING

RAJENDRA SALOKHE

14

PROGRAM EVALUATION AND REVIEW TECHNIQUE (PERT)

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

THE RESPOSIBILITY MATRIX


-------------------------------------------------------------------------------------------------------

SOFTWARE ENGINEERING

RAJENDRA SALOKHE

15

It is a table of responsibilities assigned to various persons. The example is shown in


following figure :

ROLLING WAVE CONCEPT


-------------------------------------------------------------------------------------------------------

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

SUCCESS FACTORS: It is decided what is required to be achieved. What are


the chances that all the success factors can be met etc.

2] CRITICAL

AND DESIGN : What documentation and design will be produced as


the outcome of the seminar? Decide on the diagrams to be provided . Decide on the
narratives to be created.

3] DOCUMENTATION

THE SCHEDULE OF WORKSHOP : The workshop can be scheduled for 8 to 10


days. However the first 3 days are spent in acquainting the members with each other
and make them a team for the project.

4 ] DEFINE

PARTICIPANTS: The participants can be system owner, Project leader,


Session leader, recorder, customers, and silent observers

5] SELECTING

The workshop material is prepared by the


project manager before the workshop begins. This is in the form of documentation;
slide shows etc. and gives a preamble of the project activity.
6] PREPARING

THE WORKSHOP MATERIAL:

COMMERCIAL OFF THE SHELF CONSIDERATION


A commercial offthe-shelf (COTS) item is one that is sold, leased, or licensed to
the general public; offered by a vendor trying to profit from it; supported and evolved
by the vendor who retains the intellectual property rights; available in multiple,
identical copies and used without modification of the internals.
Business practices are the tasks, duties, and functions performed to support the
objectives of an organization.
A commercial item is one customarily used for nongovernmental purposes that has
been or will be sold, leased, or licensed (or offered for sale, lease, or license) to the
-------------------------------------------------------------------------------------------------------

SOFTWARE ENGINEERING

RAJENDRA SALOKHE

18

general public. An item that includes modifications customarily available in the


commercial marketplace or minor modifications made to meet federal government
requirements is still a commercial item. In addition, services such as installation,
maintenance, repair, and training that are procured for support of an item described
above are considered commercial items if they are offered to the public under similar
terms and conditions or sold competitively in substantial quantities based on
established catalog or market prices.

The above definitions are given by the secretariat of defense U.S.


The figure shows involvement of market place software in the development during
software projects.
Thus some of the components of the project may be available in the market. This
should be studied and the components can be obtained.
The commercial off the shelf modules may always not be suitable. They pose a risk of
non compatibly, inefficiency and versatility. Required changes may not be available.
The customer service may hamper.
COMPUTER AIDED SOFTWARE ENGINEERING (CASE)
The computer aided software engineering involves the role of other software in the
development of software. The term CASE was first introduced by Naste Corporation
in 1982. They developed a graphic and text editor. Case tools help in development and
maintenance, design and analysis of the software. Case tools generate software codes.
However they may be a separate module. There are more than 200 CASE tools
available.
Case tools are separated in 2 groups
-------------------------------------------------------------------------------------------------------

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

Code generation tools

Data modeling tools

UML

QVT or Model transformation Tools

Configuration management tools

We will briefly review the tools


CODE GENERATION TOOLS
The code generator reads the common basic information (Meta data ) of the project
and builds a source code which is fast and accurate thus saving a lot of manpower.
However the generated code should be tested and evaluated the code generator gives a
boost and liveliness to the project. In many software we find an entities called
Wizards. The wizards are nothing but code generators. They generate code on the
basis of the information you provide.

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 repeatable level, basic project management techniques are established,


and successes could be repeated, because the requisite processes would have
been made established, defined, and documented.

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.

At the optimizing level, processes are constantly being improved through


monitoring feedback from current processes and introducing innovative
processes to better serve the organization's particular needs.

FAILURES IN CASE TOOLS


The failures in CASE tools occurs due to following factors
1] Lethargy of management
2] Expectations too wide.
3] Lack of pre-operative work.
4] Unawareness of new methodologies
5] Misuse
6] Depending on CASE tools as total solution
7] Documentation not to standard
-------------------------------------------------------------------------------------------------------

SOFTWARE ENGINEERING

RAJENDRA SALOKHE

22

8] Considering CASE as risk element


COMPONENT BASED SOFTWARE ENGINEERING (CBSE)
This branch of software engineering sets the techniques to decompose the system into
functional and logical components which may indepedantly run. These components
are related to each other or communication is set between the components through
suitable interfaces.
Component is simply a object written to required specification. Components are
higher lavel objects.
Let us see how the programs are created
Source code
MY.C

The C program Execution


assembler

Object code
MY.OBJ

OTHER
.OBJ files

linker
Executable
Code
MY.EXE

The other .obj files are separately


written programs and may be called
as components

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

HARD WARE / MACHINE

The three major standards for component software are proposed


1] CORBA (Common Object Request Broker Architecture) CORBA makes client
server request possible.
2] Microsoft COM : Suitable for Windows operating system. This specifies metods
for using components produced off the shelf to be used in the single application. The
recent technology developed by Microsoft is .NET
3] Sun JavaBean : It is aportable format. The Java applete accomodates the
sofisticated software components .
EXERCISE
1] What is COTS ?
2] Discuss various CASE tools.
3] What are some of the reasons for the CASE tools may fail.

-------------------------------------------------------------------------------------------------------

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

The framework development include following items

Data access components

Exception handling

Logging

Email/Fax

-------------------------------------------------------------------------------------------------------

SOFTWARE ENGINEERING

RAJENDRA SALOKHE

25

Printing

Data Export

Services (web services, remoting, DCOM, COM+, application server etc.)

Security (authorization, authentication, code access, encryption)

Resource Files

Deployment

Miscellaneous (utilities, constants, enumerations)

B] PRESENTATION

GUI (Forms and controls)

Custom controls

Validation

Animation and Graphics

C] BUSINESS

Coding (for work flows and business requirements)

Validating data

Formulas and calculations

Data manipulations

Implementing business rules

D] DATA STORAGE

Database design

Writing SQLs, procedures, triggers

Indexing

Performance tuning

Flat Files (including text, XML, graphics, multimedia, etc.)

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

One SLOC is one logical line of code

Declarations are counted as SLOC

Comments are not counted as SLOC

The LOC depends on the Programming language and is shown in the following table

THE COST ESTIMATION PROCESS


The cost estimation process can be diagrammatically represented as

-------------------------------------------------------------------------------------------------------

SOFTWARE ENGINEERING

RAJENDRA SALOKHE

27

THE BASIC COCOMO MODEL


The basic COCOMO equations take the form
E=ab(KLOC)bb
D=cb(E)db
P=E/D
where E is the effort applied in person-months, D is the development time in
chronological months, KLOC is the estimated number of delivered lines of code for
the project (expressed in thousands), and P is the number of people required. The
coefficients ab, bb, cb and db are given in the following table.
Software project

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

THE COST DRIVERS


Further developments of COCOMO model included cost drivers. Some of the cost
drivers are as follows.

-------------------------------------------------------------------------------------------------------

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

0.75 0.88 1.00

1.15 1.40

0.94 1.00

1.08 1.16

0.70 0.85 1.00

1.15 1.30 1.65

Run-time performance constraints

1.00

1.11 1.30 1.66

Memory constraints

1.00

1.06 1.21 1.56

Hardware attributes

Volatility of the virtual machine environment

0.87 1.00

1.15 1.30

Required turnabout time

0.87 1.00

1.07 1.15

Analyst capability

1.46 1.19 1.00

0.86 0.71

Applications experience

1.29 1.13 1.00

0.91 0.82

Software engineer capability

1.42 1.17 1.00

0.86 0.70

Virtual machine experience

1.21 1.10 1.00

0.90

Programming language experience

1.14 1.07 1.00

0.95

1.24 1.10 1.00

0.91 0.82

Application of software engineering methods 1.24 1.10 1.00

0.91 0.83

Required development schedule

1.04 1.10

Personnel attributes

Project attributes
Use of software tools

1.23 1.08 1.00

The Intermediate Cocomo formula now takes the form...


-------------------------------------------------------------------------------------------------------

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

DYNAMIC SYSTEMS DEVELOPMENT MEHOD (DSDM)


The DSDM was based on Rapid Application Development. It was developed in 1990
in U.K.
DSDM is based on the 9 principles that are all essential. The user involvement in the
project is given utmost importance. The 9 principles are
1] ACTIVE USER INVOLVEMENT IS IMPERATIVE/ ESSENTIAL

This is the most important principle for the DSDM is based on


user involvement.
2] TEAMS MUST BE EMPOWERED TO MAKE DECISIONS

The user as well as project team participants should be given


limited authority to take decisions.
3] FOCUS ON FREQUENT DELIVERY

The teams should deliver the software and documents for


testing as soon at ready and not wait for the entire project to
be completed.
4] FITNESS FOR BUSINESS IS CRITERION FOR ACCEPTED DELIVERABLES

The software should not be ad-hoc. It should fit the needs of


the business
5] ITERATIVE AND INCREMENTAL DEVELOPMENT IS MANDATORY

It should be accepted as software is subject to change.


6] ALL CHANGES DURING DEVELOPMENT MUST BE REVERSIBLE

It should be possible to reverse all the changes if required so.


-------------------------------------------------------------------------------------------------------

SOFTWARE ENGINEERING

RAJENDRA SALOKHE

30

7] REQUIREMENTS ARE BASE LINED AT HIGH-LEVEL

The high level requirements are specified which are


considered as base line. The decisions to make changes in the
modules should adhere to the baseline.
8] TESTING IS INTEGRATED THROUGHOUT THE LIFECYCLE

Testing to be carried out at development stages also.


9] COLLABORATIVE AND CO-OPERATIVE APPROACH

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:

The Pre-Project phase includes project suggestion and selection of a


proposed project
candidate. The pre-project determines if a project should be realized
at all.
2 FEASIBILITY STUDY

The normal considerations in a Feasibility Study are a definition of


the problem to be
addressed, assessments of the likely costs and technical feasibility
of delivering a
computer system to solve the business problem.
3 BUSINESS STUDY

Having decided in the Feasibility Study that DSDM is an appropriate


method
-------------------------------------------------------------------------------------------------------

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)

The Design and Build Iteration is where the computer system is


engineered to a sufficiently high standard to be safely placed in the
hands of the users. A given
.6 IMPLEMENTATION

The Implementation phase


development environment to

covers

the

cutover

from

the

the operational environment.


7 POST-PROJECT

Post-project tasks include measurements on how the deployed


system is performing and if any further enhancements are required.
Usually these measures take place about 6 month after the project
technically finished.
Not all the phases are compulsory.
EXERCISE
1] what are the factors in the cost estimation which can not be directly evaluated.
2] Describe the COCOMO model.
3] What is the roll of Source Line of Code ?
4] What are the 9 essential principles of DSDM ?

-------------------------------------------------------------------------------------------------------

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

MUST HAVE A WELL DEFINED MEANING

2] THE

SEVERITY OF THE RISK SHOULD BE JUDGED ACCORDING TO THE SEVERITY OF THE

: The outcome of the risk should be identified and the severity


should be judged. One should ask a question like What worst can happen ?
OUTCOME OF THE RISK

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

ON RISK SHOULD BE TAKEN BY EXPERTS.

REDUCING MEASURES SHOULD HAVE SET STANDARDS : There should be standards


available for risk reducing measures so that for same situations same decisions may
be taken.

5] RISK

6] RISK

ASSESSMENT SHOULD BE BASED ON SCIENTIFIC FACTS

: The risk assessment should

have scientific basis.

-------------------------------------------------------------------------------------------------------

SOFTWARE ENGINEERING

RAJENDRA SALOKHE

34

: Sometimes the risks are


overlooked but the serious risk can always be found out if the project is carefully
analyzed.
7] IF

THERE IS SERIOUS RISK THEN IT CAN ALWAYS BE FOUND

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

"Software risk management is important because it helps avoid disasters,


rework, and overkill, but more importantly because it stimulates win-win
situations" - The National Aeronautics and Space Administration (NASA),
1999
Managing the risk has the following steps
1] IDENTIFY THE RISK :

Unless the risk is identified you can not proceed with managing.

2] ANALYZE THE RISK :

The risks are analyzed on the basis of greater risks, smaller risk ,

priority risks etc.


3] PLAN

THE RISK

: The risks can be planned so that they are expected to occur

Anton D. Buttigieg

Risk Planning approach

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

THE RISK RESPONSE

5] MONITOR

THE RISKS

: The risk may have an impact for a certain period which should

be monitored
6] RISK

CONTROL

: The risk if occurs should be controlled and brought to no impact

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

: The failure rate should be less

3] REQUIREMENTS
4] DESIGN

: The requiremnts should be very precise.

: The best method to fulfil the requirement

5] PROGRAMMING
6] TESTING

: Use of proper programming tools.

: Testing methods should be available.

7] RUNTIME

: It should run properly at the end user.

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 knowledge of coding and he can write some


code to improve the software. The tester is more knowledgable.
2] WHITE 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 basic things to be considered in testing are


1] The testing of software is required to be done from user and developers point of
view. It is done to ensure that the system is performing correctly.
2] Testing is done to pointout the difference in required and actual output. Testing is
different that quality . It can not comment or report on the quality of the coding or
software.
3] Tesing reports observations. The tester is not supposed to improve on thesoftware.
4] It is assumed that there will be errors.
5] Tests can be repeated.
6] Testing should start at the earliest stage of software development.
7] The testing should be done by third party. The programmer should not test his own
program.

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

: Test if the software meets functional requirements

: Password and user account security.

PERFORMANCE TESTING
STRESS TESTING

: Test runtime performance, efficiency etc.

: Repeated handling of huge data and memory problems.

RELIABILITY TESTING

: How much the user can rely on the system .

-------------------------------------------------------------------------------------------------------

SOFTWARE ENGINEERING

RAJENDRA SALOKHE

ENVIRONMENT TESTING

: Setup of the system.

INSTALLATION TESTING

: Testing of installation procedures.

RECOVERY TESTING
ERROR GUESSING

39

: How the system recovers from failures.

: Listing the possible error.

DATA COMPATIBILITY TESTING


USER INTERFACE TESTING
ACCEPTANCE TESTING

: Whether the data is compatible.

: Test various interfaces used by the user.

: Acceptance of the system by the user.

HELP INFORMATION TESTING

: Whether proper help is provided in the software.

MANUAL PROCEDURE TESTING

: whether the manual provides proper information.

OBJECT OREINTED TESTING


Projects can be incrementally developed and tested. There is no need to even
syntacticallycompleteawholeapplication.Assoonasoneclass(orevenoneroutine)
iscompleteditcanbecompiledandobjectscanbecreated,executedandtested.This
leadstogreatermotivation(resultsarevisiblemorequickly)andabetterabilityto
copewitherrors(sinceearlyerrorscanbefoundandremovedbeforemoreerrorsare
made,avoidingthehardertofindcasesofmultipleinteractingerrors).

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 on two or more related modules testing


their combined functionality.
2]FUNCTIONAL TEST

: This test is performed when the complete package is ready. All the
modules are tested together
3] SYSTEM TEST

4] ACCEPTANCE TEST

: This test is performed on the basis of acceptance from the point

of view of the user.


TEST : This test is normally conducted by an experienced tester. This is a
type of random 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

: The software is widely distributed in the beta form to whosoever can


use the same. The feedback is gathered and it is improved if required.
7] BETA 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:

An integrated , user-machine system for providing information to support


operations , management and decision making functions of an organization . The
system utilizes computer hardware and software , manual procedures , models for
analysis , planning , control , decision making and a database
Definition of Robert J. Thierauf and George W. Raynolds
A collection of subsystems and related program parts or modules that are
interconnected in a manner which fulfills the information requirements necessary to
plan , oraganise, direct and control business activities. It is a system for producing and
delivering timely information that will support management in accomplishing its
specific tasks in an enterprise
THE FLOW CHARTS
The charts showing flow of logic are called flow charts. The following symbols are
used in flow charts.
TERMINATOR
START/END

DISPLAY

PROCESS

DATA
INPUT/OUTPUT

DOCUMENT
MAGNETIC DISK

DECISION

CONNECTOR

PREPERATION

-------------------------------------------------------------------------------------------------------

SOFTWARE ENGINEERING

RAJENDRA SALOKHE

43

The Terminator box is used to show the start/end operations


The Process Box is used to show that process is done on the data
The Decision box is used to show the branching as per the decision. It will have one
input and three outputs.
Display Box is used to show that the data is being displayed
Input/Output box is used to show the data being inputted/outputted.
Connector box is used when the flow chart is long and required to be shown or more
than one pages.
Magnetic Box shows the input being taken from the magnetic disk.
Document box show the requirement of document.
Preparation Box shows the preparation stage.
Let us see some simple flow charts.
1] FLOW CHART TO FIND LARGEST NUMBER BETWEEN 2 NO.S

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

FLOWCHART TO FIND LARGEST OF 3 NUMBERS


Three numbers A,B and C are inputted. A is compared with B. If A is greater then it is
compared with C. Still if A is greater than A is the greatest other wise C is greatest.

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

Initially we set the variable SUM to 0 and I to 1


Then I is added to SUM. Thus sum becomes 1
The condition I>=10 is checked. At this stage it is false so 1 is added in I. I becomes
2. This value of I (2) is added to SUM (1) so SUM becomes 3.
I becomes 3 and it is added to SUM that was 3. So sum becomes 6.
When I becomes 10 the loop exists and SUM is printed which is 55.

-------------------------------------------------------------------------------------------------------

SOFTWARE ENGINEERING

RAJENDRA SALOKHE

45

START

SUM=0
I=1
I=I+1
SUM=SUM+I
END

IS I>=10 ?

PRINT SUM

DATA FLOW DIAGRAMS:


The data flow diagrams are similar to flow charts only that they show the flow of data
or information. The simplest diagram is as shown
start
Display
Record

Reading and
displaying data

Read
Record

End Of
File ?

End

Flowchart for reading and displaying data is shown above


A little complicated diagram will be to show the admission process in a polytechnic.

-------------------------------------------------------------------------------------------------------

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>&quot;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&quot; </H2>
<H2><span style="background-color:
color="#FFFF00">&nbsp;&quot;View

#000000"><font

our&nbsp; publications before you proceed to make money


&quot;</font></span> </H2>
<H1 ALIGN=CENTER>
<A HREF="publications.htm">Click Here ...</A>
-------------------------------------------------------------------------------------------------------

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

<img border="0" src="Langur.jpg" width="198" height="129">


</div>
</body>
</html>

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

if (pos >= 100 || pos <= -100) direction = 0 - direction;


obj.style.left=pos;
window.setTimeout("Move();",25);
}
</script>
</head>
<body onLoad="Move();">
<h1 align="center" style="position: relative;" ID="head1">
CENTRE FOR ADVANCED TECHNOLOGIES</h1>
<p>The heading of this page moves back and forth
across the page. This is done using DHTML and the
style attributes that control positioning.</p>
</body>
</html>

You will find this text moving on the screen.

<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.

abcd are the main


causes and e,f,g,h etc
are related causes.

The causes were based on 6Ms , 8Ps and 4Ss as follows


The 6 M's

Machine, Method, Materials, Measurement, Man and


(Environment) (recommended for manufacturing industry).

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

Surroundings, Suppliers, Systems, Skills (recommended for service industry).


THE PARETO PRINCIPAL
Vilfedo Pareto was an Italian economist. He made an observation that 80% of the
income went to 20% of the people. He conducted the study world wide and
surprisingly found the same results.
This principal was applied by a scientist Joseph M Juran to selling and quality. He
stated that 80% of the sale comes from 20% parties and 80% of the program
execution is based on 20% of the code. This principal was also applied to inventory
control and lead to A-B-C analysis and six-sigma which is discussed further. This
principal surprisingly applies to many concepts as risk management.
-------------------------------------------------------------------------------------------------------

SOFTWARE ENGINEERING

RAJENDRA SALOKHE

57

THE SIX SIGMA


Six Sigma is a set of practices originally developed by Motorola to systematically
improve processes by eliminating defects. A defect is defined as nonconformity of a
product or service to its specifications.Statistically the 6 Sigma means defect free. In
particular, processes that operate with six sigma quality produce at defect levels below
3.4 defects per (one) million opportunities (DPMO). Six Sigma's implicit goal is to
improve all processes to that level of quality or better. Six Sigma has two key
methodologiesDMAIC and DMADV
DMAIC

Basic methodology consists of the following five steps Define-Measure-AnalyseImprove-Control

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.

Analyze to verify relationship and causality of factors. Determine what the


relationship is, and attempt to ensure that all factors have been considered.

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

Basic methodology consists of the following five steps:

Define the goals of the design activity that are consistent with customer
demands and enterprise strategy.

Measure and identify CTQs (critical to qualities), product capabilities,


production process capability, and risk assessments.

Analyze to develop and design alternatives, create high-level design and


evaluate design capability to select the best design.

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.

-------------------------------------------------------------------------------------------------------

Vous aimerez peut-être aussi