|
|
 |
Vol. IV, issue no.
4,
August 2003
Software
Engineering - State
of an Art
Published on behalf
of CEPIS
by Novática
(ATI, Spain)
|
Guest
Editor:
Luis
Fernández-Sanz
|
Contents
|
Editions
in other
languages
- Italian,
by Tecnoteca / ALSI
(summary, abstracts, presentation and some articles online.)
- Spanish,
by Novática
(full edition printed; summary, abstracts and presentation
online.)
|
Acrobat
Reader is required to display PDF files
|
|
Software Engineering
- State of an Art
Guest
Editor: Luis Fernández-Sanz
Presentation
Software Engineering.
A Dream Coming True?
[HTML] [PDF:
3 pages, 269 KB]
(includes a list of Useful
References for those interested in knowing more about matters
related
to "Software Engineering").
Luis
Fernández-Sanz
- Guest Editor
Abstract: The guest
editor presents the August 2003 issue de Upgrade, that focuses on a
really
broad field like Software Engineering (SE) which has been driving the
evolution
of software development since the late sixties of the past century. The
papers cover different areas of interest related to the application of
engineering principles to software development and maintenance. As
usual,
a list of useful references is also included
for those interested in knowing more about this subject.
Software Project
Management.
Adding Stakeholder Metrics to Agile Projects [PDF:
5 pages, 370 KB]
Tom Gilb
Abstract: Agile
methods
need to include stakeholder metrics in order to ensure that projects
focus
better on the critical requirements, and that projects are better able
to measure their achievements, and to adapt to feedback. This paper
presents
a short, simple defined process for Evolutionary project management
(Evo),
and discusses its key features.
Model-Driven
Development
and UML 2.0. The End of Programming as We Know It? [PDF:
5 pages, 350 KB]
Morgan Björkander
Abstract: In this
paper, one of the promises of Software Engineering is addressed:
model-driven
development, letting developers to work on the higher and more abstract
level of software models. The contribution of UML 2.0 (Unified Modeling
Language) is presented and the implications for solving the challenges
of tool support and daily problems of software projects are also
analysed.
Component-Based
Software
Engineering [PDF: 6 pages, 269 KB]
Alejandra Cechich and
Mario Piattini-Velthuis
Abstract: As
Component-Based
Software Development (CBSD) starts to be used effectively, building
systems
requires new methodologies and processes not only for development and
maintenance,
but also for other lifecycle phases that are strongly affected. For
example,
some software vendors have begun to successfully sell and license
commercial
off-the-shelf (COTS) components, and this fact leads to a considerable
number of components being available for use. Thus, requirements
engineering
techniques have to change to deal with more flexible requirements to
provide
a match between stakeholder requirements and COTS component’s services.
In addition to changes in activities such as composition and component
specification, that are specific to Component-Based Software
Engineering
(CBSE), there are also a number of managerial issues that require
change.
Many of these issues are not yet established in practice or even
developed.
The main goal of this article is to present some characteristics of a
CBSD
and discuss some of the current issues associated with applying CBSE.
An Overview of
Software
Quality [PDF: 5 pages, 263 KB]
Margaret Ross
Abstract: In this
paper, the author considers current issues in software quality and how
they might change in the future. Future issues such as standards, the
licensing
of computing professionals, the Y2K legacy, off shore outsourcing, and
changes to higher education are also analysed.
Lessons Learned in
Software
Process Improvement [PDF: 4 pages, 259 KB]
José-Antonio
Calvo-Manzano
Villalón, Gonzalo Cuevas-Agustín, Tomás San
Feliu-Gilabert,
Antonio de Amescua-Seco, Mª Magdalena Arcilla-Cobián, and
José-Antonio
Cerrada-Somolinos
Abstract: Nowadays,
Software Process Improvement (SPI) is thriving in the software
industry.
This paper identifies the phases of a software process improvement
project
and describes the lessons learned by SOMEPRO, a Software Engineering R
& D group in the Universidad Politécnica de Madrid, in more
than ten software process improvement projects in Spain, detailing the
aspects an organization has to take into account in order to carry out
this kind of projects.
A New Method for
Simultaneous
Application of ISO/IEC 15504 and ISO 9001:2000 in Software SME’s [PDF:
7 pages, 292 KB]
Antònia
Mas-Pichaco
and Esperança Amengual-Alcover
Abstract: The old
ISO 9000 family of international quality management standards has
evolved
towards a process-based model which is named ISO 9001:2000. Despite the
improvements, this new model still remains too generic for its
effective
application to certain kinds of enterprises, especially if the purpose
is to improve their key processes that vary depending on every
particular
industrial sector. Moreover, before this new standard, the ISO 9000-3
[6]
quality guidelines were available to help organizations to apply the
ISO
9001 requirements to computer software. Although this software standard
has not been recently updated, the international emerging standard,
ISO/IEC
15504, provides a guide on the conduct of software process assessment.
In this article, a mapping between the ISO 9001:2000 and ISO/IEC 15504
standards is provided and a mechanism which implements both models,
aimed
to define the capability levels of the processes in software SME’s
(Small
and Medium Enterprises) and receive ISO 9001:2000 certification, is
established.
Finally, the results obtained from the application of this mechanism on
eight software SME’s are shown.
Empirically-based
Software
Engineering [PDF: 5 pages, 274 KB]
Martin Shepperd
Abstract: This
article
gives a survey of activity in the field of empirically-based Software
Engineering.
It argues that this is an important area of research if practitioners
are
to make decisions on better evidence than mere subjective opinion. The
article describes four areas where empirical data has improved our
understanding
of software technology. These are object-orientation, inspections,
formal
specification and project failure factors. The article concludes that
empirical
Software Engineering is likely to grow in importance but that there
remain
challenges, not least in assessing large scale processes and artifacts,
in dealing with the human or creative aspects of processes and in
overcoming
the publication bias against ‘negative’ results.
Software Engineering
Professionalism
[PDF:
5 pages, 269 KB]
Luis
Fernández-Sanz
and María-José García-García
Abstract: Software
Engineering (SE) has not only become an increasingly important and
emerging
discipline but also as the basis for a differentiated set of
professional
profiles within computing areas. Computing professionalism is not yet
well-defined
in many countries due to a combination of two factors: relative
immaturity
of the field when compared to the other engineering or science-based
professions
and a lack of culture and social recognition. In this paper, we want to
present an overview of different important facts and trends (especially
certification and codes of ethics) that strongly influence the status
of
Software Engineering as a profession.
Searching for the
Holy
Grail of Software Engineering
[PDF: 2 pages,
247 KB]
Robert L. Glass
Abstract: In this
article, the author defends eclecticism in development methods and the
contribution that Software Engineering should make in this respect
whenever
the nature of a project demands flexible methods in order to be
successful.
Free Software
Engineering:
A Field to Explore [PDF: 6 pages, 271
KB]
Jesús M.
González-Barahona
and Gregorio Robles
Abstract: The
challenge
of free software is not that of a new competitor who, under the same
rules,
produces software faster, cheaper and of a better quality. Free
software
differs from ‘traditional’ software in more fundamental aspects,
starting
with philosophical reasons and motivations, continuing with new
economic
and market rules and ending up with a different way of producing
software.
Software Engineering cannot ignore this phenomenon, and the last five
years
or so has seen ever more research into all these issues. This article
takes
a look at the most significant studies in this field and the results
they
are producing, with a view to providing the reader with a vision of the
state of the art and the future prospects of what we have come to call
"Free Software Engineering".
Guest
Editor
Luis
Fernández-Sanz
received
a degree in Informatics Engineering from the Universidad
Politécnica
de Madrid, Spain, in 1989 and a Ph. D. degree in informatics from the
Universidad
del País Vasco, Spain, in 1997 (as well as an extraordinary
mention
for his doctoral thesis). Since 2000, he has been head of the
department
of Programming and Software Engineering at Universidad Europea-CEES
(Madrid,
Spain). He has been the editor of the Software Engineering section of
Novatica
since 1992. He is author or co-author of several books about Software
Engineering
and software measurement, as well as different papers in international
journals and conferences. Coordinator of the Software Quality Group of
ATI, he acted as chair of the VI Spanish Conference on Software Quality
and Innovation organized by ATI.
<lufern AT dpris DOT
esi DOT uem DOT es> (E-mail address written with anti-spamming
disguise.)
The
Editorial
Team of Upgrade
- Chief Editor: Rafael
Fernández Calvo, Madrid (Spain) <rfcalvo AT ati DOT
es>
- Associate Editors:
- François
Louis Nicolet,
Zürich (Switzerland) <nicolet AT acm DOT org>
- Roberto
Carniel,
Udine
(Italy) <rcarniel AT dgt DOT uniud DOT it>
Note: E-mail
addresses
written with anti-spamming disguise.
Presentation
Software Engineering.
A Dream Coming True? [PDF: 3
pages,
717 KB]
(includes
a list of Useful References for those
interested in knowing more about issues related to "Software
Engineering")
This issue focuses on a
really broad field which has been driving the evolution of software
development
since the late sixties: Software Engineering (SE). Clearly much has
already
been said about this discipline, so it is no easy to task to come up
with
a truly original introduction to such an important branch of computing.
In my modest opinion, every software developer, at some time or other,
has wanted to see him or herself as someone who approaches development
as a solid and authentic engineering process.
As I wrote a couple of
years
ago in the issue of
Upgrade and Novatica dedicated
to ‘eXtreme Programming (XP)’ 1 everybody is
looking forward to the time when software can be said to be a truly
engineered
product. We all want to see a general improvement in software quality
and
user satisfaction, avoiding problems caused by delays and budget
overruns,
and Software Engineering should be the way to achieve these objectives.
With a view to contributing to a better understanding of the current
state
of practice and evolution of this discipline, we have decided to
publish
what we hope is an interesting set of papers covering different areas
of
interest related to the application of engineering principles to
software
development and maintenance.
“Software Project
Management.
Adding Stakeholder Metrics to Agile Projects”, by Tom Gilb
is a keen analysis of the implications of the new agile methods in the
field of software development. Gilb has been a well-known expert on
software
project management and quality assurance (e.g. inspections) since his
popular
publications during the eighties.His EVO approach aims to centre all
discussion
on what really matters: stakeholders’ interests and goals.
“Model-Driven
Development
and UML 2.0. The End of Programming as We Know It?” is an enhanced
version of a previous paper by Morgan Björkander.
This
paper is focused on the idea of a truly model driven software
development
(not in itself a new idea) and takes a look at the problems involved in
developing a really practical application. The influence that the new
version
of UML (Unified Modeling Language) has had on this process is also
analysed,
and the contribution as a whole provides an insight into the role
played
by UML and other methodological considerations in the present status of
Software Engineering.
“Component-Based
Software
Engineering” is a paper by Alejandra Cechich and
Mario
Piattini-Velthuis covering the interesting role that components
play in the field of Software Engineering. It is also an example of how
Latin American and European researchers are cooperating to offer
interesting
contributions to the Software Engineering community. The authors
address
different challenges that Component-Based Software Development need to
overcome if we are to take full advantage of a philosophy that I
believe
should be one of the main trends SE needs to follow as a mature
discipline.
Margaret Ross,
considered as a European expert in the field thanks to her privileged
view
expressed in many conferences and journals, contributes “An Overview
of Software Quality”. This reviews important issues concerning
quality
in software development and also deals with the interesting and not
always
sufficiently analysed issue of impaired computer users and the
influence
of legislation regulating this aspect.
“Lessons Learned in
Software
Process Improvement” by the Spanish research group
SOMEPRO
presents the results of their experience in evaluating software
processes
in several organizations. While the previous paper on software quality
presents a general overview of the field, this paper stresses the vital
role played by software process in making far reaching changes and
improvements
to the way we approach development projects to provide applications
which
satisfy customer and user requirements. By applying CMM (Capability
Maturity
Model) evaluation procedures to different types of organizations the
authors
make some interesting recommendations for organisations involved in
process
improvement projects.
But CMM is not the only
way to improve the results of software organizations. SPICE (ISO 15504)
is now helping to establish a new global standard for process
evaluation
and improvement. Clearly it is not easy to adapt all the
recommendations
of these proposals to small-medium sized companies. “A New Method
for
Simultaneous Application of ISO/IEC 15504 and ISO 9001:2000 in Software
SME's” by Antònia Mas-Pichaco and
Esperança
Amengual-Alcover is a new contribution to the always thorny
problem
of applying best practices to organizations where resources are
especially
limited.
Improvement cannot be
achieved
if there is not rigorous data and measurement to support our decisions.
Software engineering proposals should be based on correct empirical
data
and analysis. Martin Shepperd, an outstanding expert in
this
area, presents an interesting overview of empirical Software
Engineering
and its implications for practitioners and researchers in four areas
(object-orientation,
inspections, formal specification and project failure factors). “Empirically-based
Software Engineering” thus addresses the remaining challenges of
the
discipline.
“Software Engineering
Professionalism” by
Luis Fernández-Sanz and María-José
García-García aims to provide a brief overview of
what goes into making up our true perception of software engineers as
specialised
professionals within the field of IT. Educational framework, training
curriculum
proposals, codes of ethics and professional conduct, professional
profiles,
certification, etc: all of these are burning issues whose influence on
the future of the software engineering profession is already apparent.
It is interesting to see
how Software Engineering is by no means a field devoid of controversy.
Robert L. Glass is one of the sharpest and most clear
thinking
of authors, one who never shies away from giving his opinion on any
problem
he sees as hindering the progress of software engineering. In his
article
“Searching for the holy grail of software engineering”,
originally
published in COMMUNICATIONS of the ACM, he defends eclecticism
in
development methods and the contribution that Software Engineering
should
make in this respect whenever the nature of a project demands flexible
methods in order to be successful.
For our final contribution
to our readers we did not want to miss the chance to include an article
about the role that Software Engineering is already playing, and the
even
more important role it will play in the future, in the red hot field of
‘libre’ software. “Free Software Engineering: A Field to Explore”,
by Jesús M. González-Barahona and Gregorio
Robles, analyses existing points of contact between Software
Engineering
and the development of free software, and puts forward a few future
lines
of research in this respect.
I hope this variety of
contributions
will be considered as a representative selection of the extremely wide
field of Software Engineering. We have obviously had to leave out many
areas in this issue, in spite of their importance, but I believe that
the
quality of the authors and the interest of the contents will be more
than
enough to satisfy the needs of our readers, the people to whom our work
is ultimately dedicated .
Translated by Steve
Turpin
Footnote
- Available at <http://www.upgrade-cepis.org/issues/2002/2/upgrade-vIII-2.html>
and at <http://www.ati.es/novatica/2002/156/nv156sum.html>,
respectively.
Guest Editor
Luis
Fernández-Sanz received a degree in Informatics
Engineering
from the Universidad Politécnica de Madrid, Spain, in 1989 and a
Ph. D. degree in informatics from the Universidad del País
Vasco,
Spain, in 1997 (as well as an extraordinary mention for his doctoral
thesis).
Since 2000, he has been head of the department of Programming and
Software
engineering at Universidad Europea-CEES (Madrid, Spain). He has been
the
editor of the Software Engineering section of Novatica since 1992. He
is
author or co-author of several books about Software Engineering and
software
measurement, as well as different papers in international journals and
conferences. Coordinator of the Software Quality Group of ATI, he acted
as chair of the VI Spanish Conference on Software Quality and
Innovation
organized by ATI.
<lufern AT pris DOT esi
DOT uem DOT es> (E-mail address written with anti-spamming disguise)
Useful
References on Software Engineering
Collected
by Luis Fernández-Sanz
and
J. Javier Dolado-Cosín*
*
J. Javier Dolado-Cosín
is lecturer at the Universidad del País Vasco (San
Sebastián,
Spain) and co-editor of the Software Engineering section of
Novática.
The discipline of Software
Engineering is extremely broad, so the following list of references
should
be considered as a very limited selection of the vast wealth of
available
resources. The criteria used to make up the list is based largely on
the
personal teaching, researching, professional and authoring experience
of
the compilers. References not included are not necessarily less useful
than the ones listed below: we have had to choose from a large number
of
candidates.
We have decided against
including specific journal and conference papers due to the vast
universe
of publications. We thought it preferable to refer interested readers
to
web sites (several of which are included in our list) where you can
find
large compilations of references on Software Engineering or related
areas.
And readers should not
forget
to follow up the various references included in the papers published in
this issue.
Books
General Purpose
- R. S. Pressman, Software
Engineering. A practitioners approach, 5th edition,
McGraw-Hill,
2001.
- I. Sommerville, Software
Engineering. A practitioners approach, 6th edition,Pearson,
2000.
- M. Piattini, J.
A.Calvo-Manzano,
J. Cervera, L. Fernández, Análisis y diseño de
aplicaciones informáticas de gestión. Un enfoque de
Ingeniería
del Software, Ra-Ma, 2003 (Spanish).
- J. J. Marciniak,
editor in chief,Encyclopedia
of Software Engineering, John Wiley & Sons, 1995.
Books Referring to
Specific
Areas
-
Configuration
Management:
- W. A.
Babich, Software
Configuration
Management,, Addison-Wesley, 1986.
- H. R.
Berlack, Software
Configuration
Management, John Wiley and Sons, Inc., 1992.
- E. H.
Bersoff, V. D.
Henderson
and S. G. Siegel, Software Configuration Management: An Investment
in
Product Integrity, Prentice-Hall, Inc., 1980.
- W. L.
Bryan, Software
Product
Assurance, Prentice Hall , 1987.
- UML and
Object-Oriented Development:
- P.
Stevens, Using
UML : software
engineering with objects and components, Addison-Wesley, 2000.
- Larman,
Applying UML and
patterns. An introduction to object-oriented analysis and design,
Addison-Wesley,
2002.
- G.
Schneider, Applying
use
cases : a practical guide, Addison-Wesley, 2001.
- A.
Cockburn, Writing
effective
use cases, Addison-Wesley, 2001.
- M.
Grand, Patterns
in Java
: a catalog of reusable design patterns illustrated with UML Vol, I
&
II, John Wiley, 1998.
- G.
Booch, J.
Rumbaugh and I.
Jacobson, The unified modeling language user guide
Addison-Wesley,
1999.
- I.
Jacobson, G.
Booch and J.
Rumbaugh Jacobson, The Unified Software Development Process,
Addison-Wesley,
1999.
- B.
Meyer, Object-oriented
software construction, Prentice Hall PTR, 1997.
- M.
Priestley, Practical
object-oriented
design with UML, McGraw-Hill, 2000.
- Software
Quality and
Related
Areas:
- N. E.
Fenton and S.
L. Pfleeger, Software
metrics: a rigorous and practical approach, International Thomson
Publishing,
1997.
- D. A.
Wheeler, B.
Brykczynski
and R. N. Meeson, Jr, (eds) Software inspection : an industry best
practice,
IEEE Computer Society Press, 1996.
- D. P.
Freedman and
G. M. Weinberg, Handbook
of Walkthroughs, Inspections and Technical Reviews, Little Brown,
1990.
- E.
Yourdon, Structured
Walkthrough,
Prentice-Hall, 1989.
- T. Gilb
and D.
Graham, Software
Inspection, Addison-Wesley, 1993.
- C.
Kaner, J. Falk
and H. Q.
Nguyen, Testing computer software, John Wiley, 1999.
- B.
Beizer, Software Testing
Techniques, International Thomson Computer Press, 1990.
- Software
Project
Management:
- R.
Burke, Project
management:
planning & control techniques, John Wiley & Sons, 1999.
- T.
Gilb, Principles of
Software
Engineering Management, Addison-Wesley Longman, 1989.
- D.
Garmus and D.
Herron, Function
Point Analysis, Measurement Practices for Successful Software Projects,
Addison-Wesley, 2000.
- T. C.
Jones, Estimating
software
costs, McGraw-Hill, 1998.
Standards
Organizations
Events
We
recommend to consult the web pages of IEEE and ACM dedicated to
conferences:
Web sites
A
really
brief list of interesting sites.
“Communications of the
ACM”,
November 2002 issue
In
its November 2002 issue, “Communications of the ACM” published
two
remarkable special selections of articles on the new version of UML
(Unified
Modeling Language) and Software Engineering licensing, respectively.
<http://www.acm.org/cacm/toc/2002/11november_toc_02.html>.
Note
from the Editor of Upgrade: This monograph will be also published
in
Spanish
(full issue printed; summary, abstracts and some articles online) by
Novática,
journal of the Spanish CEPIS society ATI (Asociación de
Técnicos
de Informática) at <http://www.ati.es/novatica/>,
and in Italian (online edition only, containing summary
abstracts
and some articles) by the Italian CEPIS society ALSI and the Italian IT
portal Tecnoteca at <http://www.tecnoteca.it>.
| Last
updated on September 2nd, 2003 |
by
Rafael Fernández Calvo, François Louis Nicolet, and
Roberto
Carniel,
Editorial Team of
Upgrade |
<rfcalvo
AT ati DOT es>
(E-mail address
written
with anti-spamming disguise) |
Copyright
policy:
- Copyright
© CEPIS
2003. All rights reserved.
- Abstracting of the
articles
included in UPGRADE is permitted with credit to the source. For
copying,
reprint, or republication permission, write to the editors.
- Unauthorized
access to
pages,
or parts thereof, in this website reserved exclusively for
persons
authorized by UPGRADE is expressly prohibited. Any unauthorized access
may be prosecuted according to the law.