analysis i

advertisement
MANAGING THE DEVELOPMENT OF LARGE SOFTWARE SYSTEMS
Dr. Winston W. Rovce
INTRODUCTION
l am going to describe my pe,-.~onal views about managing large software developments. I have had
various assignments during the past nit,.: years, mostly concerned with the development of software packages
for spacecraft mission planning, commanding and post-flight analysis. In these assignments I have experienced
different degrees of successwith respect to arriving at an operational state, on-time, and within costs. I have
become prejudiced by my experiences and I am going to relate some of these prejudices in this presentation.
COMPUTER PROGRAM DEVELOPMENT FUNCTIONS
There are two essential steps common to all computer program developments, regardless of size or
complexity. There is first an analysis step, followed second by a coding step as depicted in Figure 1. This sort
of very simple implementation concept is in fact all that is required if the effort is sufficiently small and if the
final product is to be operated by those who built it - as is typically done with computer programs for internal
use. It is also the kind of development effort for which most customers are happy to pay, since both steps
involve genuinely creative work which directly contributes to the usefulness of the final product. An
implementation plan to manufacture 13rger software systems, and keyed only to these steps, however, is doomed
• tofailure. Many additional development steps are required, none contribute as directly to the final product as
analysis and coding, and all drive up the development costs. Customer personnel typically would rather not pay
for them, and development personnel would rather not implement them. The prime function of management
is to sell these concepts to both groups and then enforce compliance on the part of development personnel.
ANALYSIS
CODING
Figure 1. Implementation steps to deliver a small computer program for internal operations.
A more grandiose approach to software development is illustrated in Figure 2. The analysis and coding
steps are still in the picture, but they are preceded by two levels of requirements analysis, are separated by a
program design step, and followed by a testing step. These additions are treated separately from analysis and
coding because they are distinctly different in the way they are executed. They must be planned and staffed
differently for best utilization of program resources.
Figure 3 portrays the iterative relationship between successive development phases for this scheme.
The ordering of steps is based on the following concept: that as each step progresses and the design is further
detailed, there is an iteration with the preceding and succeeding steps but rarely with the more remote steps in
the sequence. The virtue of all of this is that as the design proceeds the change process is scoped down to
manageable limits. At any point in the design process after the requirements analysis is completed there exists
a firm and c~seup~ moving baseline to whi(:h to ~turn in the event of unforeseen design difficulties. What we
have is an effective fallback position that tends to maximize the extent of early work that is salvageable and
preserved.
Reprinted from Proceedings, IEEE WESCON, August 1970, pages 1-9.
Co_pyright © 1_9_70 by The Institute of Electrical and Electronics Et)gineers,, .328
Inc. Originally published by TRW.
I SYSTEM
I
ANALYSIS
PROGRAM
DESIGN
I
coo,.o
TESTING
I OPERATIONS
Figure 2. Implementation steps to develop a large computer program for delivery to a customer.
I believe in this concept, but the implementation described above is risky and invites failure. The
problem is illustrated in Figure 4. The testing phase which occurs at the end of the development cycle is the
first event for which timing, storage, input/output transfers, etc., are experienced as distinguished from
analyzed. These phenomena are not precisely analyzable. They are not the solutions to the standard partial
differential equations of mathematical physics for instance. Yet if these phenomena fail to satisfy the various
external constraints, then invariably a major redesign is required. A simple octal patch or redo of some isolated
code will not fix these kinds of difficulties. The required design changes are likely to be so disruptive that the
software requirements upon which the design is based and which provides the rationale for everything are
violated. Either the requirements must be modified, or a substantial change in the design is required. In effect
the development process has returned to the origin and one can expect up to a lO0-percent overrun in schedule
and/or costs.
One might note that there has been a skipping-over of the analysis and code phases. One cannot, of
course, produce software without these steps, but generally these phases are managed with relative ease and
have little impact on requirements, design, and testing. In my experience there are whole departments
consumed with the analysis of orbit mechanics, spacecraft attitude determination, mathematical optimization
of payload activity and so forth, but when these departments have completed their difficult and complex work,
the resultant program steps involvea few lines of serial arithmetic code. If in the execution of their difficult
and complex work the analysts have made a mistake, the correction is invariably implemented by a minor
change in the code with no disruptive feedback into the other development bases.
However, I believe the illustrated approach to be fundamentally sound. The remainder of this
discussion presents five additional features that must be added to this basic approach to eliminate most of the
development risks.
329
I SYSTEM !
REQUIREMENTSIBI~
~"'i so,w.,~ I
ANALYSIS
~1111I~ pRI~OGRAM
~ l l l I CODING Ii
TESTING
OPERATIONS
Figure 3. Hopefully, the ~terat=ve interact=on between the various phases
is confined to successive steps.
I
.~oSYoS,T.~EM-, .".1S l.,~
I so,w..~ !.
I ANALYSIS
PROGRAM
DESIGN
I coo,.G I,~
!
I O. ATO.S!
TESTING I
Figure 4. Unfortunately, for the process illustrated, the design iterations are
never confined to the successive steps.
330
STEP 1: PROGRAM DESIGN COMES FIRST
The first step towards a fix is illustrated in Figure 5. A preliminary program design phase has been
inserted between the software requirements generation phase and the analysis phase. This procedure can be
criticized on the basis that the program designer is forced to design in the relative vacuum of initial software
requirements without any existing analysis..As a result, his preliminary design may be substantially in error as
compared to his design if he were to wait until the analysis was complete. This criticism is correct but it misses
the point. By this technique the program designer assures that the software will not fail because of storage,
timing, and data flux reasons. As the analysis proceeds in the succeeding phase the program designer must
impose on the analyst the storage, timing, and operational constraints in such a way that he senses the
consequences. When he justifiably requires more of this kind of resource in order to implement his equations
it must be simultaneously snatched from his analyst compatriots. In this way all the analysts and all the
program designers will contribute to a meaningful design process which will culminate in the proper allocation
of execution time and storage resources. If the total resources to be applied are insufficient or if the embryo
operational design is wrong it will be recognized at this earlier stage and the iteration with requhements and
preliminary design can be redone before final design, coding and test commences.
How is this procedure implemented? The following steps are required.
1) Begin the design process with program designers, not analysts or programmers.
2) Design, define and allocate the data processing modes even at the risk of being wrong. Allocate
processing, functions, design the data base, define data base processing, allocate execution time, define
interfaces and processing modes with the operating system, describe input and output processing, and define
preliminary operating procedures.
3) Write an overview document that is understandable, informative and current. Each and every
worker must have an elemental understanding of the system. At least one person must have a deep understanding
of the system which comes partially from having had to write an overview document.
/ ALLOCATE ~ A DESCRIBE
/ sO..oOO,,. / c %
I
Figure 5. Step 1 : Insure that a preliminary program design is complete before analysis begins.
331
STEP2: DOCUMENT THE DESIGN
At this point it is appropriate to raise the issue of - "how much documentation?" My own view is
"quite a lot;" certainly more than most programmers, analysts, or program designers are willing to do if left to
their own devices. The first rule of managing software development is ruthless enforcement of documentation
requirements.
Occasionally I am called upon to review the progress of other software design efforts. My first step is
to investigate the state of the documentation, If the documentation is in serious default my first
recommendation is simple. Replace project management. Stop all activities not related to documentation.
Bring the documentation up to acceptable standards. Management of software is simply impossible withouta
very high degree of documentation. As an example, let me offer the following estimates for comparison. In
order to procure a 5 million dollar hardware device, I would expect that a 30 page specification would provide
adequate detail to control the procurement. In order to procure5 million dollars of software Iwould estimate
~ 1[,00 pa~e specification is about right in order to achieve comparable control,
Why so much documentation?
1) Each designer must communicate with interfacing designers, with his management and possibly
with thecustorner. A verbal record is too intangible to provide an adequate basis for an interface or
managementdecision.
An acceptable written description forces the designer to take an unequivocal position and
provide tangible evidence of completion. It prevents the designer from hiding behind the-"l am90-percent
finished" - syndrome month after month.
2) During the early phase of software development the documentationi .sthe specification and i._~.st he
design. Until coding begins these three nouns (documentation, specification, design) denoteasingtething. If
the documentation is bad the design is bad. If the documentation does not yet exist there is as yet no design,
only people thinking and talking about the design which is of some value, but not much.
3) The real monetary value of good documentation begins downstream in the development process
during the testing phase and continues through operations and redesign. The value of documentation can be
described in terms of three concrete, tangible situations that every program manager faces.
a) During the testing phase, with good documentation the manager can concentrate personnel on the
mistakes in the program. Without good documentation every mistake, large or small, is analyzed by one man
who probably made the mistake in the first place because he is the only man who understands the program area.
b) During the operational phase, with good documentation the manager can use operation-oriented
personnel to operate the program and to do a better job, cheaper. Without good documentation the software
must be operated by those who built it. Generally these people are relatively disinterested in operations and do
not do as effective a job as operations-oriented personnel. It should be pointed out in this connection that in
an operational situation, if there is some hangup the software is always blamed first. In order either to absolve
the software or to fix the blame, the software documentation must speak clearly.
c) Following initial operations, when system improvements are in order, good documentation permits
effective redesign, updating, and retrofitting in the field. If documentation does not exist, generally the entire
existing framework of operating software must be junked, even for relatively modest changes.
Figure 6 shows a documentation plan which is keyed to the steps previously shown. Note that six
documents are produced, and at the time of delivery of the final product, Documents No, 1, No. 3, No. 4,
No. 5, and No. 6 are updated and current.
332
/,
I0:
wZ
/oo i ,~ g ~
Irl o i0 . i
..
IIII ~,- ,,*,1 =
•.~
illl z~~$_~~ m u,
E
X
E
8
"0
Ill N
~, .~-
r"
.2
/"
z_ ,,,. ~ ~ E
~OLU
a. .~
N
N
iI- ,,~<Z,- ~w
t-
LL
333
STEP 3: DO IT TWICE
After documentation, the second most important criterion for success revolves around whether the
product is totally original. If the computer program in question is being developed for the first time, arrange
matters so that the version finally delivered to the customer for operational deployment is actually the second
version insofar as critical design/operations areas are concerned. Figure 7 iltustrates how this might be carried
out by means of a simulation. Note that it is simply the entire process done in miniature, toatime scale that
is relatively small with respect to the overall effort. The nature of this effort can vary widely depending
primarily on the overall time scale and the nature of the critical problem areas to be modeled. If the effort runs
30 months then this early development ofapilot model might be scheduled for 10 months. For this schedule,
fairly formal controls, documentation procedures, etc., can be utilized. If, however, the overall effort were
reduced to 12 months, then the pilot effort could be compressed to three months perhaps, in order to gain
sufficient leverage on the mainline development. In this case a very special kind of broad competence is
required on the part of the personnel involved. They must have an intuitive feel for analysis, coding, and
program design. They must quickly sense the trouble spots in the design, model them, model their alternatives,
forget the straightforward aspects of the design which aren't worth studying at this early point, and finally
arrive at an error-free program. In either case the point of all this, as with a simulation, is that questions of
timing, storage, etc. which are otherwise matters of judgment, can now be studied with precision. Without
this simulation the project manager is at the mercy of human judgment. With the simulation he can at least
perform experimental tests of some key hypotheses and scope down what remains for human judgment, which
in the area of computer program design (as in the estimation of takeoff gross weight, costs to complete, or the
daily double) is invariably and seriously optimistic.
I I,,,
1I
ANALYSIS I
! PROGRAM I
I DES,GN I
-U coo,.o I
LI .,s.,.o
USAGE
PRPERLOIMGIRNAAMR YI %
DESIGN
ANALYSIS
i PROGRAM
DESIGN
TESTING
[
OPERATIONS
Figure 7. Step 3: Attempt to do the job twice - the first result provides an early simulation of the final product.
334
STEP 4: PLAN, CONTROL AND MONITOR TESTING
Without question the biggest user of project resources, whether it be manpower, computer time, or
management judgment, is the test phase. It is the phase of greatest risk in terms of dollars and schedule. It
occurs at the latest point in the schedule when backup alternatives are least available, if at all.
The previous three recommendations to design the program before beginning analysis and coding, to
document it completely, and to build a pilot model are all aimed at uncovering and solving problems before
entering the test phase. However, even after doing these things there is stillatest phase and there are still
important things to be done. Figure 81ists some additional aspects to testing. In planning for testing, Iwould
suggest the following for consideration.
1) Many parts of the test process are best handled by test specialists who did not necessarily
contribute to the original design. If it is argued that only the designer can perform a thorough test because
only he understands the area he built, this is a sure sign of a failure to document properly. With good
documentation it is feasible to use specialists in software product assurance who will, in my judgment, do a
better job of testing than the designer.
2) Most errors are of an obvious nature that carl be easily spotted by visual inspection. Every bit
of an analysis and every bit of code should be subjected to a simple visual scan by a second party who did not
do the original analysis or code but who would spot things like dropped minus signs, missing factors of two,
jumps to wrong addresses, etc., which are in the nature of proofrea0ing the analysis and code. Do not use the
computer to detect this kind of thing - it is too expensive.
3) Test every logic path in the computer program at least once with some kind of numerical check. If
Iwereacustomer, Iwould not accept delivery until this procedure was completed and certified. This step will
uncover the majority of coding errors.
While this test procedure sounds simple, for a large, complex computer program it is relatively difficult
to plow through every logic path with controlled values of input. In fact there are those who will argue that it
is very nearly impossible. In spite of this Iwould persist in my recommendation that every logic path be
subjected to at least one authentic check.
4) After the simple errors (which are in the majority, and which obscure the big mistakes) are removed,
then it is time to turn over the software to the test area for checkout purposes. At the proper time during the
course of development and in the hands of the proper person the computer itself is the best device for
checkout. Key management decisions are: when is the time and who is the person to do final checkout?
STEP 5: INVOLVE THE CUSTOMER
For some reason what a software design is going to do is subject to wide interpretation even after
previous agreement. It is important to involve the customer ina formal way so that he has committed
himself at earlier points before final delivery. To give the contractor free rein between requirement
definition and operation is inviting trouble. Figure g indicates three points following requirementsdefinition
where the insight, judgment, and commitment of the customer carl bolster the development effort.
SUMMARY
Figure 10 summarizes the five steps that I feel necessary to transform a risky development process
into one that will provide the desired product. I would emphasize that each item costs some additional sum
of money. If the relatively simpler process without the five complexities described here would work
successfully, then of course the additional money is not well spent. Ii, my experience, however, the simpler
method has never worked on large software development efforts and the costs to recover far exceeded those
required to finance the five-step process listed.
335
l~
~m~ I T
_~ L_ ~.L
I wSig
I ~o_~E,
_ I " o ~ .~
O..va W
r
/,
336
rE
2
o
'1
E
8
tO
E
"O
E
o
E
8
te,.
Q..
,m
LL
C
Ql .
/
(/)
I--
z~
i , , . ua ,~L
r.n rr n
In.J
ii1
,<
z<
E
337
Z
o_
I.- <
r,ill
Q.
o
/'L__J
r0
(J
ft.0
.E
~n
E
E
>o
+.~
I
E
o
E
4..,
o
r-
Q.
c~
ii
I|
I'
(.-
II
:i] . ~ '
ll
e ~$ ~ ~ i
n |8~( ~ u
I I .. I s""
O0 0@'
0 O° ~
d
p@@@@@@~S.
Iw
R
PENGELOLAAN PENGEMBANGAN SISTEM SOFTWARE BESAR
Dr Winston W. Rovce
PENDAHULUAN
Aku ini akan menjelaskan pe saya, -. ~ pandangan onal tentang pengelolaan pengembangan
perangkat lunak besar. Saya telah memiliki
berbagai tugas selama nit terakhir,:. tahun, sebagian besar berkaitan dengan pengembangan
paket perangkat lunak
untuk perencanaan misi pesawat ruang angkasa, analisis memerintah dan post-flight. Dalam
tugas ini saya telah mengalami
derajat yang berbeda hormat successwith untuk tiba pada keadaan operasional, tepat waktu,
dan dalam biaya. Saya memiliki
menjadi berprasangka oleh pengalaman saya dan saya akan berhubungan beberapa prasangka
tersebut dalam presentasi ini.
KOMPUTER FUNGSI PENGEMBANGAN PROGRAM
Ada dua langkah penting yang umum untuk semua perkembangan program komputer,
terlepas dari ukuran atau
kompleksitas. Ada pertama merupakan langkah analisis, diikuti kedua oleh langkah coding
seperti digambarkan pada Gambar 1. Semacam ini
konsep implementasi yang sangat sederhana sebenarnya semua yang diperlukan jika upaya
ini cukup kecil dan jika
produk akhir yang akan dioperasikan oleh orang-orang yang membangunnya - seperti yang
biasanya dilakukan dengan program komputer untuk intern
gunakan. Itu juga merupakan jenis pengembangan usaha yang sebagian besar konsumen
senang untuk membayar, karena kedua langkah
melibatkan pekerjaan yang benar-benar kreatif yang secara langsung berkontribusi terhadap
kegunaan dari produk akhir. Sebuah
rencana implementasi untuk memproduksi sistem perangkat lunak 13rger, dan mengetik
hanya untuk langkah-langkah ini, bagaimanapun, adalah ditakdirkan
• tofailure. Banyak langkah pengembangan tambahan yang diperlukan, tidak berkontribusi
langsung ke produk akhir sebagai
analisis dan coding, dan semua menaikkan biaya pengembangan. Personil pelanggan
biasanya lebih suka tidak membayar
bagi mereka, personil dan pengembangan lebih suka tidak menerapkannya. Fungsi utama dari
manajemen
adalah menjual konsep ini kepada kedua kelompok dan kemudian menegakkan kepatuhan
pada bagian dari pengembangan personil.
ANALISIS
PENGKODEAN
Gambar 1. Implementasi langkah-langkah untuk memberikan program komputer kecil untuk
operasi internal.
Pendekatan yang lebih megah untuk pengembangan perangkat lunak diilustrasikan pada
Gambar 2. Analisis dan coding
langkah masih dalam gambar, tetapi mereka didahului oleh dua tingkat analisis kebutuhan,
dipisahkan oleh
desain tahap program, dan diikuti dengan langkah pengujian. Penambahan ini diperlakukan
secara terpisah dari analisis dan
coding karena mereka jelas berbeda dalam cara mereka dieksekusi. Mereka harus
direncanakan dan dikelola
berbeda untuk pemanfaatan terbaik dari sumber daya program.
Gambar 3 menggambarkan berulang hubungan antara fase pengembangan berturut-turut
untuk skema ini.
Urutan langkah-langkah ini didasarkan pada konsep berikut: bahwa setiap langkah kemajuan
dan desain lebih lanjut
rinci, ada iterasi dengan mendahului dan langkah tapi jarang dengan langkah-langkah lebih
jauh dalam
urutan. Keutamaan semua ini adalah bahwa sebagai desain berlangsung proses perubahan
scoped ke
batas dikelola. Pada setiap titik dalam proses desain setelah analisis kebutuhan selesai
terdapat
perusahaan dan c ~ ~ seup bergerak ke dasar WHI (:. jam sampai ~ berubah dalam hal desain
kesulitan tak terduga Apa yang kita
telah merupakan posisi mundur yang efektif yang cenderung memaksimalkan tingkat
pekerjaan awal yang diselamatkan dan
diawetkan.
Dipetik dari Prosiding, IEEE WESCON Agustus 1970, halaman 1-9.
Co_pyright © 1_9_70 oleh The Institute of Electrical and Electronics Et) gineers,, 0,328
Inc Awalnya diterbitkan oleh TRW.
Aku SISTEM
Saya ANALISIS
PROGRAM
DESAIN
Aku coo,. O
PENGUJIAN
Saya OPERASI
Gambar 2. Implementasi langkah-langkah untuk mengembangkan program komputer yang
besar untuk pengiriman ke pelanggan.
Saya percaya pada konsep ini, namun implementasi yang dijelaskan di atas adalah berisiko
dan mengundang kegagalan. Itu
masalah diilustrasikan pada Gambar 4. Tahap pengujian yang terjadi pada akhir siklus
pengembangan adalah
Acara pertama yang waktu, penyimpanan, input / output transfer, dll, yang berpengalaman
yang dibedakan dari
dianalisis. Fenomena ini tidak tepat dianalisis. Mereka bukan solusi parsial standar
persamaan diferensial fisika matematika misalnya. Namun, jika fenomena ini gagal untuk
memenuhi berbagai
kendala eksternal, maka selalu desain ulang utama diperlukan. Sebuah oktal patch yang
sederhana atau mengulang beberapa terisolasi
kode tidak akan memperbaikinya macam kesulitan. Perubahan desain yang dibutuhkan
cenderung sangat mengganggu bahwa
persyaratan perangkat lunak di mana desain didasarkan dan yang memberikan alasan untuk
segala sesuatu yang
dilanggar. Entah persyaratan harus dimodifikasi, atau perubahan substansial dalam desain
diperlukan. Sebetulnya
proses pembangunan telah kembali ke asal dan satu dapat mengharapkan hingga lo0 persen
overrun di jadwal
dan / atau biaya.
Seseorang mungkin mencatat bahwa telah terjadi skipping-over analisis dan fase kode.
Seseorang tidak bisa,
Tentu saja, memproduksi perangkat lunak tanpa langkah-langkah ini, tetapi umumnya fase ini
dikelola dengan relatif mudah dan
memiliki dampak kecil pada persyaratan, desain, dan pengujian. Dalam pengalaman saya ada
seluruh departemen
dikonsumsi dengan analisis mekanika orbit, pesawat ruang angkasa penentuan sikap,
optimasi matematika
kegiatan muatan dan sebagainya, tapi ketika departemen ini telah menyelesaikan pekerjaan
yang sulit dan kompleks,
program yang dihasilkan langkah beberapa baris involvea kode aritmatika serial. Jika dalam
pelaksanaan sulit mereka
dan pekerjaan yang kompleks para analis telah membuat kesalahan, koreksi selalu
dilaksanakan oleh minor
perubahan kode dengan tidak ada umpan balik mengganggu ke dalam basis pembangunan
lainnya.
Namun, saya percaya pendekatan yang diilustrasikan secara fundamental suara. Sisa ini
Diskusi menghadirkan lima fitur tambahan yang harus ditambahkan ke pendekatan dasar ini
untuk menghilangkan sebagian besar
risiko pembangunan.
329
Saya SYSTEM!
REQUIREMENTSIBI ~
~ "'I begitu, w., ~ I
ANALISIS
~ ~ 1111I pri ~ ogram
~ L l l I CODING Ii
PENGUJIAN
OPERASI
Gambar 3. Mudah-mudahan, ~ terat = ve berinteraksi = on antara berbagai tahapan terbatas
pada langkah-langkah yang berurutan.
Aku. ~ OSYoS, T. ~ EM-,. ".1 S l., ~
Saya jadi, w .. ~!.
Saya ANALISIS
PROGRAM
DESAIN
Aku coo,. G I, ~
! PENGUJIAN Saya
Aku O. ATO.S!
Gambar 4. Sayangnya, untuk proses ilustrasi, iterasi desain tidak pernah terbatas pada
langkah-langkah yang berurutan.
330
LANGKAH 1: PROGRAM DESAIN DATANG PERTAMA
Langkah pertama menuju memperbaiki diilustrasikan pada Gambar 5. Sebuah program awal
tahap desain telah
disisipkan di antara persyaratan perangkat lunak tahap generasi dan tahap analisis. Prosedur
ini dapat
dikritik atas dasar bahwa perancang program dipaksa untuk merancang dalam vakum relatif
perangkat lunak awal
persyaratan tanpa analisis yang ada .. Akibatnya, desain awal nya mungkin secara substansial
dalam kesalahan seperti
dibandingkan dengan desain jika ia menunggu sampai analisis itu selesai. Kritik ini sudah
benar, tetapi itu meleset
titik. Dengan teknik ini desainer Program menjamin bahwa perangkat lunak tidak akan gagal
karena penyimpanan,
waktu, dan alasan fluks data. Sebagai analisis berlangsung pada fase berikutnya perancang
program yang harus
memaksakan pada analis penyimpanan, waktu, dan kendala operasional sedemikian rupa
bahwa ia merasakan
konsekuensi. Ketika ia dibenarkan membutuhkan lebih dari jenis sumber daya dalam rangka
menerapkan persamaan nya
harus secara simultan direnggut dari rekan-rekan analis nya. Dengan cara ini semua analis
dan semua
perancang program akan berkontribusi pada proses desain bermakna yang akan berujung
pada alokasi yang tepat
waktu pelaksanaan dan sumber daya penyimpanan. Jika total sumber daya yang akan
diterapkan tidak mencukupi atau jika embrio
desain operasional yang salah itu akan diakui pada tahap awal dan iterasi dengan
requhements dan
desain awal dapat diulang sebelum rancangan akhir, coding dan pengujian dimulai.
Bagaimana prosedur ini dilakukan? Langkah-langkah berikut diperlukan.
1) Mulai proses desain dengan perancang program, bukan analis atau programer.
2) Desain, mendefinisikan dan mengalokasikan mode pengolahan data bahkan dengan risiko
menjadi salah. Membagikan
pengolahan, fungsi, desain basis data, mendefinisikan pengolahan data base, mengalokasikan
waktu eksekusi, mendefinisikan
interface dan mode pengolahan dengan sistem operasi, menggambarkan input dan
pengolahan output, dan menentukan
prosedur operasi awal.
3) Menulis dokumen ikhtisar yang dapat dimengerti, informatif dan terkini. Setiap
pekerja harus memiliki pemahaman unsur dari sistem. Setidaknya satu orang harus memiliki
pemahaman yang mendalam
dari sistem yang datang sebagian dari memiliki untuk menulis dokumen ikhtisar.
/ ALOKASI ~ A DESCRIBE / sO .. ooo,,. / C%
Saya
Gambar 5. Langkah 1: Asuransikan bahwa rancangan program awal selesai sebelum analisis
dimulai.
331
STEP2: DOKUMEN DESAIN
Pada titik ini tepat untuk mengangkat isu - "? Berapa banyak dokumentasi" Pandangan saya
sendiri adalah
"Cukup banyak," jelas lebih dari kebanyakan programmer, analis, atau perancang program
bersedia melakukan jika dibiarkan
perangkat mereka sendiri. Aturan pertama mengelola pengembangan perangkat lunak adalah
penegakan kejam dokumentasi
persyaratan.
Kadang-kadang saya dipanggil untuk meninjau kemajuan upaya desain perangkat lunak lain.
Langkah pertama saya adalah
untuk menyelidiki keadaan dokumentasi, dokumentasi Jika berada dalam standar yang serius
pertama saya
Rekomendasi sederhana. Ganti manajemen proyek. Menghentikan semua kegiatan yang tidak
berhubungan dengan dokumentasi.
Bawa dokumentasi hingga standar yang dapat diterima. Manajemen perangkat lunak hanya
mungkin withouta
tingkat yang sangat tinggi dokumentasi. Sebagai contoh, saya menawarkan perkiraan berikut
untuk perbandingan. Di
memesan untuk mendapatkan 5 juta dolar perangkat keras, saya akan berharap bahwa
spesifikasi halaman 30 akan memberikan
detil yang memadai untuk mengontrol pengadaan. Untuk procure5 juta dolar perangkat lunak
estimasi Iwould
~ 1 [, 00 pa ~ e spesifikasi adalah benar dalam rangka mencapai kontrol yang sebanding,
Mengapa begitu banyak dokumentasi?
1) Setiap desainer harus berkomunikasi dengan interfacing desainer, dengan manajemen dan
mungkin
dengan thecustorner. Sebuah catatan lisan terlalu berwujud untuk memberikan dasar yang
cukup untuk sebuah antarmuka atau managementdecision.
Sebuah keterangan tertulis diterima memaksa desainer untuk mengambil posisi tegas dan
memberikan bukti nyata penyelesaian. Ini mencegah desainer dari bersembunyi di balik-"l
am90 persen
selesai "- sindrom bulan demi bulan.
2) Selama tahap awal pengembangan perangkat lunak documentationi spesifikasi. Sthe dan
i._ ~. St dia
desain. Sampai coding dimulai tiga kata benda (dokumentasi, spesifikasi, desain)
denoteasingtething. Jika
dokumentasi yang buruk desain yang buruk. Jika dokumentasi tidak ada belum ada belum ada
desain,
hanya orang-orang berpikir dan berbicara tentang desain yang beberapa nilai, tapi tidak
banyak.
3) nilai moneter riil dokumentasi yang baik dimulai hilir dalam proses pembangunan
selama fase pengujian dan terus melalui operasi dan desain ulang. Nilai dokumentasi dapat
dijelaskan dalam tiga beton, situasi nyata bahwa setiap manajer program dihadapinya.
a) Selama fase pengujian, dengan dokumentasi yang baik manajer dapat berkonsentrasi
personil pada
kesalahan dalam program ini. Tanpa dokumentasi yang baik setiap kesalahan, besar atau
kecil, dianalisis oleh satu orang
yang mungkin membuat kesalahan di tempat pertama karena ia adalah satu-satunya orang
yang mengerti daerah program.
b) Selama fase operasional, dengan dokumentasi yang baik manajer dapat menggunakan
berorientasi operasi
personil untuk mengoperasikan program dan untuk melakukan pekerjaan yang lebih baik,
lebih murah. Tanpa dokumentasi yang baik perangkat lunak
harus dioperasikan oleh orang-orang yang membangunnya. Umumnya orang-orang ini relatif
tertarik dalam operasi dan melakukan
tidak seefektif pekerjaan sebagai personil operasi berorientasi. Ini harus ditunjukkan dalam
hubungan ini bahwa dalam
situasi operasional, jika ada beberapa hangup software selalu dipersalahkan pertama. Dalam
rangka baik untuk membebaskan
perangkat lunak atau untuk memperbaiki kesalahan, dokumentasi perangkat lunak harus
berbicara dengan jelas.
c) Setelah operasi awal, ketika perbaikan sistem dalam rangka, dokumentasi yang baik
memungkinkan
redesign efektif, memperbarui, dan perkuatan di lapangan. Jika dokumentasinya tidak ada,
umumnya seluruh
Kerangka ada perangkat lunak operasi harus dibuang, bahkan untuk perubahan yang relatif
sederhana.
Gambar 6 menunjukkan rencana dokumentasi yang bersemangat untuk langkah-langkah yang
ditunjukkan sebelumnya. Perhatikan bahwa enam
dokumen diproduksi, dan pada saat pengiriman produk akhir, Dokumen No, 1, No 3, No 4,
No 5 dan No 6 diperbarui dan saat ini.
332
/,
I0: WZ
/ Oo i, ~ ~ g
IRL. . o I0. i
IIII ~, -,, *, 1 =
•. ~
llll z ~ ~ ~ ~ $ _ m u,
E
X
E
8
"0 Ill N ~, ~. r"
.2 / "
z_,,,. ~ ~ E
~ OLU
a. . ~
NN
iI-,, ~ <Z, - ~ w
tLL
333
LANGKAH 3: DO IT DUA KALI
Setelah dokumentasi, kriteria kedua yang paling penting untuk sukses berkisar apakah
produk benar-benar asli. Jika program komputer tersebut sedang dikembangkan untuk
pertama kalinya, mengatur
hal sehingga versi akhirnya disampaikan kepada pelanggan untuk penyebaran operasional
sebenarnya kedua
desain versi daerah sejauh kritis / operasi yang bersangkutan. Gambar 7 iltustrates bagaimana
hal ini dapat dilakukan
keluar melalui simulasi. Perhatikan bahwa hal itu hanya seluruh proses dilakukan dalam
miniatur, skala toatime bahwa
relatif kecil sehubungan dengan upaya menyeluruh. Sifat usaha ini dapat bervariasi
tergantung
terutama pada skala waktu keseluruhan dan sifat dari masalah daerah penting untuk
dimodelkan. Jika usaha berjalan
30 bulan kemudian pengembangan model awal ofapilot mungkin dijadwalkan selama 10
bulan. Untuk jadwal ini,
kontrol cukup formal, prosedur dokumentasi, dll, dapat dimanfaatkan. Namun, jika upaya
menyeluruh yang
dikurangi menjadi 12 bulan, maka upaya percontohan dapat dikompresi hingga tiga bulan
mungkin, untuk mendapatkan
kemauan kuat pada pengembangan jalur utama. Dalam hal ini jenis yang sangat khusus
kompetensi luas adalah
diperlukan pada bagian dari personil yang terlibat. Mereka harus memiliki nuansa intuitif
untuk analisis, coding, dan
desain program. Mereka harus cepat merasakan tempat masalah dalam desain, model yang
mereka, memodelkan alternatif mereka,
melupakan aspek sederhana dari desain yang tidak layak belajar pada titik awal ini, dan
akhirnya
tiba di program bebas dari kesalahan. Dalam kedua kasus tujuan dari semua ini, seperti
simulasi, adalah bahwa pertanyaan
waktu, penyimpanan, dll yang dinyatakan masalah penghakiman, sekarang dapat dipelajari
dengan presisi. Tanpa
simulasi ini manajer proyek adalah pada belas kasihan penilaian manusia. Dengan simulasi
dia setidaknya bisa
melakukan tes percobaan beberapa hipotesis kunci dan ruang lingkup bawah apa yang tersisa
untuk penilaian manusia, yang
di bidang desain program komputer (seperti dalam estimasi berat lepas landas kotor, biaya
untuk menyelesaikan, atau
harian ganda) adalah selalu optimis dan serius.
Aku I,,,
1 Saya
ANALISIS Saya
! Program Saya
Saya DES, GN I
U-coo,. O I
LI., S.,. O
PENGGUNAAN
PRPERLOIMGIRNAAMR YI%
DESAIN
ANALISIS
i PROGRAM
DESAIN
PENGUJIAN
[OPERASI
Gambar 7. Langkah 3: Mencoba untuk melakukan pekerjaan dua kali - hasil pertama
memberikan simulasi awal dari produk akhir.
334
LANGKAH 4: RENCANA, PENGENDALIAN DAN PENGUJIAN MONITOR
Tanpa pertanyaan pengguna terbesar sumber daya proyek, apakah itu tenaga, waktu
komputer, atau
pertimbangan manajemen, adalah tahap uji coba. Ini adalah fase risiko terbesar dalam hal
dolar dan jadwal. Itu
terjadi pada titik terbaru dalam jadwal ketika alternatif cadangan yang paling tersedia, jika
sama sekali.
Sebelumnya tiga rekomendasi untuk merancang program sebelum memulai analisis dan
coding, untuk
dokumen itu benar, dan untuk membangun model percontohan semua bertujuan untuk
mengungkapkan dan memecahkan masalah sebelum
memasuki tahap uji coba. Namun, bahkan setelah melakukan hal-hal ada fase stillatest dan
masih ada
hal penting yang harus dilakukan. Gambar 81ists beberapa aspek tambahan untuk pengujian.
Dalam merencanakan untuk pengujian, Iwould
menyarankan berikut untuk dipertimbangkan.
1) Banyak bagian dari proses pengujian terbaik ditangani oleh spesialis uji yang tidak tentu
berkontribusi pada desain aslinya. Jika ia berpendapat bahwa hanya perancang dapat
melakukan tes menyeluruh karena
hanya dia mengerti daerah yang dibangun, ini adalah tanda pasti dari kegagalan untuk
mendokumentasikan dengan baik. Dengan baik
dokumentasi itu layak untuk menggunakan spesialis dalam jaminan produk perangkat lunak
yang akan, dalam penilaian saya, melakukan
pekerjaan yang lebih baik daripada pengujian desainer.
2) Sebagian besar kesalahan yang bersifat jelas bahwa carl dengan mudah terlihat oleh
inspeksi visual. Setiap bit
dari analisis dan setiap sedikit kode harus dikenakan scan visual sederhana oleh pihak kedua
yang tidak
melakukan analisis asli atau kode tapi siapa yang akan melihat hal-hal seperti menjatuhkan
tanda minus, faktor dua hilang,
melompat ke alamat yang salah, dll, yang dalam sifat proofrea0ing analisis dan kode. Jangan
gunakan
komputer untuk mendeteksi hal semacam ini - itu terlalu mahal.
3) Uji setiap jalur logika dalam program komputer setidaknya sekali dengan beberapa jenis
pemeriksaan numerik. Jika
Iwereacustomer, tidak Iwould menerima pengiriman sampai prosedur ini selesai dan
bersertifikat. Langkah ini akan
mengungkap sebagian besar kesalahan coding.
Sementara prosedur tes ini terdengar sederhana, untuk besar, program komputer kompleks itu
relatif sulit
untuk membajak melalui semua jalur logika dengan nilai terkendali masukan. Bahkan ada
orang yang akan berpendapat bahwa itu
sangat hampir mustahil. Meskipun ini Iwould bertahan dalam rekomendasi saya bahwa setiap
jalur logika menjadi
mengalami setidaknya satu cek otentik.
4) Setelah kesalahan sederhana (yang berada dalam mayoritas, dan yang mengaburkan
kesalahan besar) dihapus,
maka sudah saatnya untuk menyerahkan perangkat lunak untuk menguji area untuk tujuan
checkout. Pada saat yang tepat selama
program pembangunan dan di tangan orang yang tepat komputer itu sendiri adalah perangkat
terbaik untuk
checkout. Keputusan manajemen utama adalah: kapan waktu dan siapa orang untuk
melakukan checkout akhir?
LANGKAH 5: LIBATKAN PELANGGAN
Untuk beberapa alasan apa desain perangkat lunak akan lakukan adalah tunduk pada
interpretasi yang luas bahkan setelah
perjanjian sebelumnya. Hal ini penting untuk melibatkan pelanggan ina cara yang formal
sehingga ia telah melakukan
dirinya pada titik awal sebelum pengiriman akhir. Untuk memberikan kontraktor kebebasan
antara kebutuhan
definisi dan operasi mengundang masalah. Gambar g menunjukkan tiga poin berikut
requirementsdefinition
dimana wawasan, penilaian, dan komitmen carl pelanggan meningkatkan upaya
pembangunan.
RINGKASAN
Gambar 10 merangkum lima langkah yang saya merasa perlu untuk mengubah proses
pembangunan berisiko
menjadi satu yang akan menyediakan produk yang diinginkan. Saya akan menekankan bahwa
setiap item biaya beberapa dim tambahan
uang. Jika proses yang relatif sederhana tanpa lima kompleksitas dijelaskan di sini akan
bekerja
berhasil, maka tentu saja tambahan uang tidak dihabiskan dengan baik. Ii, pengalaman saya,
bagaimanapun, sederhana
Metode tidak pernah bekerja pada upaya pengembangan perangkat lunak besar dan biaya
untuk memulihkan jauh melebihi mereka
diperlukan untuk membiayai proses lima langkah yang terdaftar....
Google Translate for Business:Translator ToolkitWebsite TranslatorGlobal Market Finder
Turn off instant translationAbout Google TranslateMobilePrivacyHelpSend feedback
Download