0% found this document useful (0 votes)
49 views13 pages

Evaluating Software Engineering Practices

This document summarizes a survey of software engineering practices in Palestine. The survey found that: 1) Most IT companies and organizations in Palestine did not fully utilize common software engineering practices such as documentation, coding standards, and testing. 2) Usage of software engineering standards varied between organizations, as most did not document their projects and testing processes were lacking. 3) The conclusion suggests that in order to improve software quality and productivity in Palestine, organizations need to enhance their use of software engineering practices.

Uploaded by

ijscmc
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
49 views13 pages

Evaluating Software Engineering Practices

This document summarizes a survey of software engineering practices in Palestine. The survey found that: 1) Most IT companies and organizations in Palestine did not fully utilize common software engineering practices such as documentation, coding standards, and testing. 2) Usage of software engineering standards varied between organizations, as most did not document their projects and testing processes were lacking. 3) The conclusion suggests that in order to improve software quality and productivity in Palestine, organizations need to enhance their use of software engineering practices.

Uploaded by

ijscmc
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

International Journal of Soft Computing, Mathematics and Control (IJSCMC),Vol .4, No.

1, February 2015

EVALUATING SOFTWARE ENGINEERING PRACTICES


IN PALESTINE
Mohammed Alnajjar1, Prof. Samy S. Abu Naser2
1

Faculty of Information Technology, The Islamic University of Gaza, Palestine


2
Information Technology Department, Al-Azhar University, Gaza, Palestine

Abstract
Software Engineering, the art and science of building improved software, is a core requirement of the
majority computer science curriculum.
Our ongoing research program focuses on three aspects of the global development of software in Palestine:
(1) collection of quantitative data regarding current practice and performance in a variety of organizations;
(2) determination of the adoption of competing models of software development across the organizations,
and (3) analysis of the impact of different development practices on performance.
This paper show the results of a survey of software development projects principally centered in using
software engineering principles.
The aim of this research is to measure the effectiveness of using software engineering practices on the
productivity and quality of the software. The study showed the variation of using these practices from doing
project management, requirements gathering methods, documentations, coding standard and testing. And
try to give some directions to enhance the quality and productivity of the software in Palestine.
The conclusion of the survey was the majority of IT companies and organizations in Palestine did not use
most of common software engineering practices as required, the usage of software standards varied among
them, as most of them did not document their projects, and the testing process was negative.

KEYWORDS
Software engineering, software practices, software development methodology.

I. INTRODUCTION
Software engineering practices are the activities in software development process that contributes
toward the satisfaction of the project goals, Software development practices are: Requirements
engineering, System analysis, High-level design/architecture, Low-level design, Coding,
Integration, Design and code reviews, Testing, Maintenance, Project management, Configuration
management[5,6,7,8,9].

DOI : 10.14810/ijscmc.2015.4104

35

International Journal of Soft Computing, Mathematics and Control (IJSCMC), Vol.4, No. 1, February 2015

During the past few years, the software development sector in Palestine has grown very fast for
several reasons as:
Large number of graduates in programming and engineering are equipped with different
skills in software development,
All organizations are directed to use IT in their work,
Availability of computers and internet in every home, office and organization.
Most of the used software are developed locally in Palestine, by local companies, IT units in the
organizations or individuals.
Now we can see in every organization, ministry or institute there is an IT unit responsible for
developing the applications to the organization, and monitoring the operation of these
applications. Most of these units have a common structure including manager, analyst and
programmers.
But if we take a quick look to its work practices specially in applying software engineering
practices, we can feel its neglected by most of them, in other words we rarely found the
organization apply all software engineering practices and methods, for example: some of them use
requirements specification documents, design analysis but do not do project planning, others do
project planning but do not document the analysis process and so on. Furthermore, there is no
interest in testing process by the local companies and organizations in Palestine, so we noticed
that many problems occurred when release the products for use. So these factors have influence
on the quality of the software, strengths and the maintenance.
The objective of this paper / survey is designed to investigate the usage of the software
engineering practices by the developers in our organizations in Palestine, and measure the effect
of use or negated of these practices on the quality of the software and the cost.
Several factors proved to be statistically significant at various levels: for example, the use of
prototypes, customer specifications, computer-aided software engineering (CASE) tools, parallel
development, recoding, project team management, testing strategies, reuse of code, module size,
communication between team members, and quality of software engineers.
In particular, we found that spending more time and effort on customer specifications improved
both development speed and productivity. The results also indicated that prototyping, better
software engineers, a smaller team and less code rework contributed to faster development time.
Finally, more time and effort spent on testing and integration had a negative effect on overall
development time. Their overall results suggest that early planning and customer specifications
are crucial to productivity, while doing it right the first time is essential for reducing
development time[7].
Today, software projects still frequently run over budget and over time. The size of the problem in
the industry has been significantly condensed through the application of software engineering and
enhanced project management. Software engineering is currently a core module in Computer
Science degrees, as well as being offered as a more dedicated degree in its own right.
36

International Journal of Soft Computing, Mathematics and Control (IJSCMC), Vol.4, No. 1, February 2015

Our research has inspected the level of use that a number of different software engineering
methods received from academic researchers. We have also measured relation between software
engineering usage and particular outcomes such as publication rates and funding. We have
discovered some resistance to applying software engineering in academia, and through the use of
interviews and case studies we have examined this problem and formulated a new software
development life cycle that addresses the specific needs and concerns of academic researchers.
The motivation for our study was to investigate the degree to which different types of
development practices associated with particular development models are used across a large
sample of projects, regardless of location. In particular, we were interested in assessing the
penetration of different practices falling across a spectrum ranging from those associated with
more traditional waterfall-style approaches, which tend to emphasize achieving control and
discipline in development, to those that underpin more flexible, iterative models of development,
which place a greater emphasis on speed and flexibility in adapting to a set of (potentially
uncertain and evolving) customer requirements [4].
Our intention was to expand the analysis of these techniques, in a way that we could examine the
dependencies on other contextual factors such as the type of software (e.g., systems versus
applications).

II. SURVEY
To achieve our objectives, we conducted a survey of software development practices in Palestine;
Companies participating in the survey included UNRWA Organization, IT Unit in Al-Azhar
University, IT Unit in Islamic university, IT Unit in transportation ministry, some local
companies, and individuals.
The main purpose was to add some quantitative analysis to the discussion over whether practices
and performance levels in software development at major firms and organizations in Palestine
were comparable, better, or worse to major firms in Palestine. The size of these organizations
diverse from low size organization to big size organization, Size: Very Small (2 10 Employee),
Small (10 30 Employee), Medium (30- 500 Employee), Large (>500 Employee), these
organization classified as 50% is profit organization and 50% nonprofit organization as outlined
in Fig1 and table1.

37

International Journal of Soft Computing, Mathematics and Control (IJSCMC), Vol.4, No. 1, February 2015

Figure 1. Participants Organizations Size

We also found that 72.2% of these organizations develop applications for its use, and 27.8%
produce software to others.
Table 1: Participant Company Sizes
Value

Count

Very Small (2 - 10 Employee)


Small (10 - 30 Employee)
Medium (30- 500 Employee)
Large (>500 Employee)

8
1
2
8

Percent
%
42.1%
5.3%
10.5%
42.1%

The sample covered the various responsibilities in software development process. Table 2
illustrates the distribution of the job responsibilities in the sample. However, some participants
may have more than one position, most of them were programmers.

Figure 2: Participants roles Software Development process

Furthermore, the sample shows that 63.2% of the participants are responsible for other team
members in their institutes. 33.2 % of them are responsible for 2 employees, 33.3 % of them are
38

International Journal of Soft Computing, Mathematics and Control (IJSCMC), Vol.4, No. 1, February 2015

responsible for 3 employees, 11.1 % of them are responsible for 7 employees, 11.1 % of them are
responsible for 9-12 employee, 11.1 % of them are responsible for 12-15 employee.

Table 2: Participant Roles


Value
Team Leader
Project Manager
System Analyst
Programmer
Graphic Designer
Tester
Technical
Support
IT Manager

Cou
nt
8
3
11
14
4
5
6

Percent
%
42.1%
15.8%
57.9%
73.7%
21.1%
26.3%
31.6%

21.1%

We found 89.5% of them works on diverse projects at the same time and 10.5% just work on a
single project.
The questionnaire asked about the number of experience years in the software development. Fig. 3
and Table 3 shows the distribution of responses to this question in the sample.

Figure 3. Participant experience years

Table 3: Participant years of experience


Value

Cou

Percent
39

International Journal of Soft Computing, Mathematics and Control (IJSCMC), Vol.4, No. 1, February 2015
Less than one year
Two - three years
Three - five years
More than five years

nt
4
5
6
4

%
21.1%
26.3%
31.6%
21.1%

We asked about the nature of the applications that they work on, there are variation among them,
some of them work on developing desktop application, work on developing web applications,
Mobil applications, or other applications; moreover, some of them work on more than one type of
application(see Table 4).
Table 4: Types of applications
Value
Desktop applications
Web applications
Mobile applications
Others

Count
14
13
1
2

Percent
%
73.7%
68.4%
5.3%
10.5%

The survey was carried out by filling out an electronic form. The form had a total of 27 questions
about the development process, divided into six parts: General information about the Participants
characteristics, Software Engineering, Specifications analysis, project planning, Implementation
Standards and testing. The survey was available from 1st of November to the 30th of November. It
was announced to software developments groups by means of discussion lists and direct email
messages sent to professionals and institutions. The parsed contents of answer Analyzed
statistically using Excel.

III. SURVEY RESULTS


In this section we will present results of survey about using Software Engineering methods and
practices in Palestine, and how it was used within computer departments in the different institutes.
Yet, in a business sense, locking a project into a particular design early may not produce the best
product for a customer in a changing market.
We found that the use of early prototypes opportunities for customers to provide early feedback
on the design was associated with higher output rates and lower defects, probably because
projects were able to make early adjustments to this feedback (meets the customer needs).
Results reported here are based on 19 respondents, of which 50% came from companies and
private institutions, 50% from not-for-profit institutions.

3.1 Requirements Analysis:

40

International Journal of Soft Computing, Mathematics and Control (IJSCMC), Vol.4, No. 1, February 2015

We designed a set of questions to check the usage of some requirements analysis activates in
software development life cycle, beginning from requirements elicitation process toward
producing software requirements specification document. The questions measured the usage of
these activities, and the results varied among the participants.
We asked about the analysis for the developed systems before coding them, we found that 55.6%
of them always do analysis before coding, and 44.4% rarely do not make analysis.
About using IEEE standards for making software requirements specification report, we found
33.3% of them always us it, 44.4 % rarely use it, 22.2 % do not use it.
The most important question was about using requirements elicitation techniques, we found most
of them use interviews for this regard (72.2 %), Table 5 and Fig. 4 summarizes these results.

Figure 4. Requirements elicitation techniques

In case of ambiguous user needs, 89.5% of them propose prototype of the developed system and
give it to the customer and then take the feedback to extract the requirements.
Table 5: Types of Requirements elicitation techniques
Value
Interviews
Questionnaires
Client Documents
Scenarios
Rapid Prototypes

Count
13
1
1
1
2

Percent %
72.2%
5.6%
5.6%
5.6%
11.1%

About Tools Used in requirements analysis, most of them use general tools in requirements
analysis process as Ms Office including Visio, and some of them use specialized tools as UML
Studio and rational rows, Table 6 shows the usage percentage for every tool.
Table 6: Requirements analysis tools
Value

Count

Percent %
41

International Journal of Soft Computing, Mathematics and Control (IJSCMC), Vol.4, No. 1, February 2015
UMLStudio
Rational Rose
Visio
Ms Office
Others

6
5
12
12
4

31.6%
26.3%
63.2%
63.2%
21.1%

There are several software development methodologies, we asked the participants about using
these methods, and we found most of them use flowchart because its known and simple (80%),
Fig. 7 shows the usage percentage for every method.

Figure 7. Requirements elicitation techniques

We investigated some issues related to requirement analysis process as, user involvement in
requirement analysis process, 57.9 % say that lack of user involvement in requirements process
affect the speed of software production, and 55.6 % of them say that Poor communication
between developers and customers may be led to poorly understood requirements, poor userinterface design, 52.9 % of them say that the analyst experience is essential factor in requirement
analysis process to extract most of the user requirements,33.3% of them collect all the
requirements from the customer before starting the development process, 38.9 % of them use
standards in requirements documentation in your organization,47.4 % of them communicates with
the client to get approval on the defined requirements, Table 7 shows the distribution of responses
to this questions in the sample.

Table 7: Requirements analysis process


Question

Rarely
(<25%)

Sometimes
(25-49%)

Often
(50-

Almost
always

Don't
know /
42

International Journal of Soft Computing, Mathematics and Control (IJSCMC), Vol.4, No. 1, February 2015
Lack of user involvement
Poor communication between
developers and customers
The analyst experience
Collect all the requirements
before start development
Use standards in requirements
documentation
customers change the
requirements after
development
The developer communicates
with the client to get approval

10.5%
2
11.1%
2
0.0%
0
5.6%
1
16.7%
3
16.7%
3

15.8%
3
11.1%
2
11.8%
2
22.2%
4
16.7%
3
27.8%
5

74%)
15.8%
3
22.2%
4
35.3%
6
38.9%
7
27.8%
5
16.7%
3

(75%+)
57.9%
11
55.6%
10
52.9%
9
33.3%
6
38.9%
7
38.9%
7

N/A
0.0%
0
0.0%
0
0.0%
0
0.0%
0
0.0%
0
0.0%
0

10.5%
2

10.5%
2

31.6%
6

47.4%
9

0.0%
0

3.2 Project Planning:


We designed a set of questions to check including planning activities in software development life
cycle, beginning from make project planning for the developed projects toward producing
software project plan document.
The questions measured the usage of these activities, and the results varied among the
participants. We asked about doing analysis for the developed system before coding, we find
55.6% of them always do analysis before coding, and 44.4% rarely make any analysis.
We investigated some issues related to project planning, 33.3% of them prepare project plan
report for the developed projects, and 15.8 % prepare monitoring reports, 28.9 % of them use time
planning that allows keeping track of projects, personal tasks, and other activities, 16.7 % of them
make enough risk management for your projects. Table 8 shows the distribution of responses to
this questions in the sample.

Table 8: Project Planning Activities


Question

Rarely
(<25%)

Sometimes
(25-49%)

Often
(5074%)

Almost
always
(75%+)

Don't
know /
N/A
43

International Journal of Soft Computing, Mathematics and Control (IJSCMC), Vol.4, No. 1, February 2015
Preparing Project plan reports
Preparing monitoring reports to
evaluate the progress.
Using time planning and to-do list
software.
Needs to change Time plane according
to late in project development.
Making enough risk management.
The challenges faced by someone
building a three-month application are
quite different than the challenges faced
by someone building a one-year
application.
Omitting necessary tasks from estimates
can add 20 to 30 percent to a
development schedule.

22.2%
4
47.4%
9
22.2%
4
33.3%
6
33.3%
6
21.1%
4

16.7%
3
10.5%
2
16.7%
3
22.2%
4
22.2%
4
26.3%
5

27.8%
5
21.1%
4
22.2%
4
27.8%
5
22.2%
4
15.8%
3

33.3%
6
15.8%
3
38.9%
7
16.7%
3
16.7%
3
36.8%
7

0.0%
0
5.3%
1
0.0%
0
0.0%
0
5.6%
1
0.0%
0

26.3%
5

21.1%
4

26.3%
5

21.1%
4

5.3%
1

3.3 software development methods and tools


About Tools used in development process, we found visual studio commonly used by most of
them 86.7 % in Palestine, followed by Delphi 40 %, see Fig. 8.

Figure 8. Development Tools

About using version control systems to share the resources of the projects among the team
member, most of them use Visual SourceSafe (SVN) with percentage 46.7 %, but 33.3 % don't
use any versioning system, see table 9.
Table 9: Types Of Used versioning system
Value
Visual SourceSafe (SVN)
Cvs
Subversion

Count
7
2
2

Percent %
46.7%
13.3%
13.3%
44

International Journal of Soft Computing, Mathematics and Control (IJSCMC), Vol.4, No. 1, February 2015
Other Open Source revision control
system
None

6.7%

33.3%

About the used programming languages in development process, C# is the most used language
73.3 %, and 60% of them use java language, see table 10.
Table 9: Types of Used programming languages
Value
Delphi
Java
C#
C
C++
PHP
Asp
Javascript / ECMAScript
SQL (all variants)
Matlab
Other

Count
6
9
11
2
3
2
6
5
12
2
4

Percent %
40%
60%
73.3%
13.3%
20%
13.3%
40%
33.3%
80%
13.3%
26.7%

80% of them have coding standards in their organizations, 20% dont use as seen in Fig. 9.

Figure 9. Using Coding Standards

3.4 Using Testing


Testing activities are neglected in our organizations in Palestine; we have asked some questions
about using testing in software development.

45

International Journal of Soft Computing, Mathematics and Control (IJSCMC), Vol.4, No. 1, February 2015

One of these questions was about having testers in IT units and the companies in Palestine
responsible for testing process, 73.3% of them dont have testers in their institutes, and 26.7 %
have testers. But we found 100% of the developers test their code by themselves. 53.3 % of them
make test cases plans the in testing process.
About the type of tests that they do, most of them involved in unit testing and database testing, see
the figure 10.

Figure 10. Used Testing Types

About using automated testing tools, some of them use it just 13.3 %, but 77.3 % do not use
automated testing tools.

IV. CONCLUSION
Even though the number of collected surveys is still modest, it is adequate enough to get some
conclusions about the use of software engineering methodologies in our institutions in Palestine.
We can feel that software engineering practices are neglected by most of them, in other words we
seldom find the organization apply all software engineering practices and methods, and also there
is no interest in testing process by the local companies and organizations in Palestine, so we
noticed that lots of problems occurred when release the products for use.
So these factors have an effect on the quality of the software, strengths and the maintenance. The
running applications need time to reach consistent state according to weakens in its structure or
insufficient usage of software engineering practices.

REFERENCES
[1]
[2]
[3]
[4]

Nuha El-Khalili , Dima Damen, Software Engineering Practices in Jordan . The 4th International
Multi conference on Computer Science and Information Technology, Amman, Jordan, 4/4/2006
Ian Sommerville, SOFTWARE ENGINEERING- Ninth Edition, Addison-Wesley; 9 edition , 2010.
Andre Oboler, Examining the use of Software Engineering by Computer Science Researchers, 2012
Dr. Laurie Williams, Introduction to Software Engineering Practices and Methods, 2009.
46

International Journal of Soft Computing, Mathematics and Control (IJSCMC), Vol.4, No. 1, February 2015
[5]
[6]
[7]
[8]
[9]

Roger Pressman and Bruce Maxim Software Engineering: A Practitioner's Approach, McGraw-Hill
Science/Engineering/Math; 8 edition, 2014
Dr. Richard Hall Thayer and Dr. Merlin Dorfman, SOFTWARE ENGINEERING ESSENTIALS,
Volume I: The Development Process, Software Management Training; Fourth edition, 2012.
Eric J. Braude and Michael E. Bernstein, Software Engineering: Modern Approaches, Wiley; 2 edition,
2010
Len Bass and Paul Clements Software Architecture in Practice (3rd Edition) (SEI Series in Software
Engineering), Addison-Wesley Professional; 3 edition, 2012
Karl Wiegers, and Joy Beatty, Software Requirements (3rd Edition) (Developer Best Practices),
Microsoft Press; 3 edition , 2013

47

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy