CS551

advertisement
CS551
Instructor-Yugi Lee
A Tale of Three Disciplines and a Revolution – A Critique
Name : Parameswara Reddy Vajrala
Sid
: 990023498
Paper Title
: A Tale of Three Disciplines and a Revolution
(IEEE Computer society, January 2004)
Author
: Jesse H.Poore
Summary:
In this Paper, author talks about the three different disciplines, namely, circuit engineering,
genetic engineering and software engineering, comparing the developmental approach followed
by each discipline and academic curriculum with industry standards. Software engineering, even
with same level of complexity with the other two disciplines, lacks proper approach to
development of software and software systems continue to have ever larger error counts resulting
in increase of risk to public safety, higher costs of development and increasing financial risk of
undertaking a software project. The main cause of lack of proper approach for the software
development is that it doesn’t follow good science and engineering practices and the other reason
is the gap between the software education and industry practices. Even with the efforts of many
prominent personnel the gap remains same.
Circuit Engineering: Basis for a circuit is a Boolean function. Mathematicians and engineers laid
foundation by exploiting the Boolean algebra associated with circuits and they developed normal
forms for complex functions using the primary operators which make it possible for them to build
any circuit from the basic operators. Engineers defined larger units (components) and prescribed
and cataloged their functional input and output relationship. Developers can reuse these
components instead of building the circuits from scratch. With the advent of mathematical theory
with innovations from physics and engineering, concept of finite state machines revolutionized
the field of circuit engineering. With this advancement, the research was linked to undergraduate
training, text book notation, and industry practice and there was consensus as to what constituted
good professional practice.
Genetic Engineering: genetic engineering is all about what a gene does, where it is located and
which gene causes an observed phenomenon. Genetic instructions in a gene are like circuits to a
function. Genetic engineering holds many parallels with circuit engineering in terms of
mathematical applications and reuse of results. Genetic engineering industry and academia are
committed to the idea that students will be trained in the appropriate life sciences, mathematics
and computer science fundamentals with industry standards making them qualified workers.
Software Engineering: Software engineering has all the benefits that other disciplines have. But
with non-conformist intellect and massive amounts of investments it was deviated from becoming
the disciplined science and engineering.
Following are the few things for the failure of software engineering as a disciplined science.
1. Lack of standard notation and vocabulary with mathematical fidelity and engineering basis.
2. Lack of normal forms and cataloged components
3. Lack of standards for product usability and correctness.
4. Lack of curricula in close rapport with the work force.
5. Lack of workforce trained in the fundamentals and experienced in standard practice.
Revolution: author comes up with three front’s solution to revolutionize the software engineering
process making it worthy of public trust.
1. Certification: Establishing Certification protocols to certify software-hardware
implementations, protocols justifying the use of programming language compilers that fail to
enforce sound practices, certification protocols and centers for many consumer products and
government regulatory agencies for software related to public safety.
2. Licensing: Establish regulatory authorities to license certain practitioners and processes
associated with medical, financial systems and systems related to public safety.
3. Curriculum reform: Curriculum reform solves the problem from the root. Degree of
disciplinary consensus depends on the academic curricula. Well defined curricula can
produce qualified candidates to participate in the development of specific software intensive
products.
Strength:
Methodology of Circuit and genetic engineering discussed in the paper can be adopted as a model
for the software engineering to become a well defined discipline.
Weakness:
Paper is lacking more details about the certification, licensing and curriculum reform
implementations. Implementation makes the development process makes more complex and
increasing cost of development.
Critical Questions:
1. It is difficult to certify a product, because an exhaustive testing is impossible most of the
times and the normal testing is also done by the developer. Hence, certification is difficult to
implement. How the certification can be implemented effectively?
2. Programming environments are changing day-by-day which makes it difficult to give a
license to a process or practitioner. How the licensing thing is implemented?
3. Software engineering almost penetrated to almost all applications, how the unique standard
notion can be implemented?
Download