You are on page 1of 35

Software – problems and prospects

Giảng viên: Hoàng Thanh Tùng


Khoa Công nghệ thông tin
Trường Đại học Điện Lực
Email: tunght@epu.edu.vn
CONTENT

1. Introduction
2. Meeting users’ needs
3. The cost of software production
4. Meeting deadlines
5. Software performance
6. Portability
7. Maintenance
8. Reliability
9. Human–computer interaction
10.A software crisis?
LEARNING OUTCOME

1. Reviews the goals of software engineering

2. Describes the difficulties of constructing large-scale software

3. Analyses the problems that software engineers face


INTRODUCTION

Từ vựng Từ loại Ý nghĩa


Particular Adj Riêng biệt
Concern V Quan tâm
Encounter N Sự bắt gặp
Variety N Sự đa dạng
Attempt V Nỗ lực
Surround V Bao xung quanh
Domestic Adj Nội địa
Distinguish V Phân biệt
Off-the-shelf Adj Bán sẵn
Tailor-made Adj Thiết kế riêng
Predict V Dự đoán
Forecast N Sự dự báo
INTRODUCTION

Software Engineering is about methods, tools and techniques used for


developing software. This particular chapter is concerned with the reasons for
having a field of study called software engineering, and with the problems that
are encountered in developing software. This book as a whole explains a variety
of techniques that attempt to solve the problems and meet the goals of software
engineering
Công nghệ phần mềm là tất cả các phương thức, công cụ và kỹ thuật được sử
dụng cho việc phát triển phần mềm. Chương đặc biệt này quan tâm đến các lý do
cho việc nghiên cứu công nghệ phần mềm, và các vấn đề gặp phải trong việc
phát triển phần mềm. Toàn bộ cuốn sách này giải thích nhiều kỹ thuật khác nhau
nhằm nỗ lực giải quyết các vấn đề và đáp ứng các mục tiêu của công nghệ phần
mềm.
INTRODUCTION

Software surrounds us everywhere in the industrialized nations – in domestic


appliances, communications systems, transportation systems and in businesses.
Software comes in different shapes and sizes – from the program in a mobile
phone to the software to design a new automobile. In categorizing software, we
can distinguish two major types
Phần mềm có ở xung quanh chúng ta ở khắp mọi nơi tại các quốc gia công
nghiệp - trong các thiết bị gia dụng, hệ thống thông tin liên lạc, hệ thống giao
thông vận tải và trong các doanh nghiệp. Phần mềm có nhiều hình dạng và kích
cỡ khác nhau – từ chương trình trong điện thoại di động đến phần mềm hoạt
động trên xe hơi. Trong phân loại phần mềm, chúng ta có thể chia thành hai loại
chính:
INTRODUCTION

+ system software is the software that acts as tools to help construct or support
applications software. Examples are operating systems, databases, networking
software, compilers.
+ applications software is software that helps perform some directly useful or
enjoyable task. Examples are games, the software for automatic teller machines
(ATMs), the control software in an airplane, e-mail software, word processors,
spreadsheets.
+ Phần mềm hệ thống là phần mềm đóng vai trò như là công cụ để xây dựng hay hỗ
trợ các phần mềm ứng dụng. VD: Hệ điều hành, phần mềm cơ sở dữ liệu, phần mềm
mạng, trình biên dịch
+ Phần mềm ứng dụng là phần mềm giúp thực thi một vài công việc cụ thể nào đó.
VD: Games, phần mềm trên máy ATM, phần mềm điều khiển trên máy bay, email,
phần mềm xử lý văn bản, bảng tính
INTRODUCTION

Within the category of applications software, it can be useful to identify the following categories of
software:
+ games
+ information systems – systems that store and access large amounts of data, for example, an airline seat
reservation system
+ real-time systems – in which the computer must respond quickly, for example, the control software for a
power station
Từ việc phân loại phần mềm ứng dụng, việc xác định các loại phần mềm sau có thể sẽ hữu ích:
+ Trò chơi điện tử
+ Các hệ thống thông tin – các hệ thống có thể lưu trữ và xử lý lượng lớn dữ liệu. VD: Hệ thống đặt vé máy
bay
+ Các hệ thống thời gian thực – nằm trong các máy tính mà cần phải phản hồi nhanh. VD: Phần mềm điều
khiển ở nhà máy điện
INTRODUCTION

+ embedded systems – in which the computer plays a smallish role within a larger
system, for example, the software in a telephone exchange or a mobile phone.
Embedded systems are usually also real-time systems
+ office software – word processors, spreadsheets, e-mail
+ scientific software – carrying out calculations, modeling, prediction, for example,
weather forecasting.
+ Các hệ thống nhúng – nằm trong các máy tính cấu thành nên một hệ thống lớn hơn.
VD: Các phần mềm trong các điện thoại. Các hệ thống nhúng cũng thường là thời gian
thực
+ Phần mềm văn phòng – Các phần mềm soạn thảo văn bản, bảng tính, thư điện tử.
+ Phần mềm khoa học – Thực hiện việc tính toán, mô hình hóa, dự đoán. VD: Phần
mềm dự báo thời tiết
INTRODUCTION

Software can either be off-the-shelf (e.g. Microsoft Word) or tailor-made for a particular application
(e.g. software for the Apollo moon shots). The latter is sometimes called bespoke software.
All these types of software – except perhaps information systems – fall within the remit of software
engineering. Information systems have a different history and, generally, different techniques are used
for their development. Often the nature of the data (information) is used to dictate the structure of the
software, so that analysis of the data is a prime step, leading to the design of the database for the
application. This approach to software development is outside the scope of this book
Phần mềm có thể là bán sẵn (được chuẩn hóa để sản xuất hàng loạt) (VD: Microsoft Word) hoặc được
thiết kế riêng cho 1 ứng dụng cụ thể (VD: Phần mềm cho máy chụp ảnh mặt trăng Apollo). Loại này
còn được gọi là phần mềm chuyên biệt.
Tất cả các loại phần mềm – có lẽ là trừ các hệ thống thông tin – đều nằm trong phạm vi của công nghệ
phần mềm. Các hệ thống thông tin có lịch sử khác, và thông thường, bản chất của dữ liệu (thông tin)
được sử dụng để quy định cấu trúc của phần mềm, Do đó, phân tích dữ liệu là bước quan trọng nhất,
dẫn đến việc thiết kế cơ sở dữ liệu cho ứng dụng. Cách tiếp cận phát triển phần mềm này nằm ngoài
phạm vi của cuốn sách này
INTRODUCTION

Constructing software is a challenging task, essentially because software is complex. The


perceived problems in software development and the goals that software development seeks to
achieve are:
Xây dựng phần mềm là một nhiệm vụ đầy thách thức, về cơ bản là vì phần mềm rất phức tạp.
Các vấn đề được nhận thức trong phát triển phần mềm và các mục tiêu mà phát triển phần
mềm tìm cách đạt được là:
+ meeting users’ needs đáp ứng nhu cầu người dùng
+ low cost of production chi phí sản xuất thấp
+ high performance hiệu suất cao
+ portability tính di động
+ low cost of maintenance chi phí bảo trì thấp
+ high reliability độ tin cậy cao
+ delivery on time. giao hàng đúng hẹn.
INTRODUCTION

Each goal is also considered to be a problem because software engineering has generally
been rather unsuccessful at reaching them. We will now look at each of these goals in turn.
Later we will look at how the goals relate one to another.
In the remainder of this book we shall see that the development of particular types of
software requires the use of special techniques, but many development techniques have
general applicability
Mỗi mục tiêu cũng được coi là một vấn đề bởi vì công nghệ phần mềm nói chung đã
không thành công trong việc tiếp cận chúng. Bây giờ chúng ta sẽ lần lượt xem xét từng
mục tiêu này. Sau đó, chúng ta sẽ xem xét các mục tiêu liên quan với nhau như thế nào.
Trong phần còn lại của cuốn sách này, chúng ta sẽ thấy rằng việc phát triển các loại phần
mềm cụ thể yêu cầu sử dụng các kỹ thuật đặc biệt, nhưng nhiều kỹ thuật có khả năng áp
dụng rộng rãi.
MEETING USERS’ NEEDS

Từ vựng Từ loại Ý nghĩa


Obvious Adj Rõ ràng
Remark N Nhận xét
Carried out N Thực hiện
Abandon N Bỏ rơi
Rewoke N Làm lại
Deduce V Suy ra
Reliability N Độ tin cậy
MEETING USERS’ NEEDS

Bị bỏ rơi hoặc làm


Được sử dụng sau lại
khi điều chỉnh

Được sử dụng Chuyển giao


ngay khi chuyển nhưng không
giao được sử dụng

Được thanh toán


nhưng không
chuyển giao

Fig 1.1. Effectiveness of typical large software projects


Hiệu quả của các dự án phần mềm tiêu biểu
MEETING USERS’ NEEDS

It seems an obvious remark to make that a piece of software must do what its users want
of it. Thus, logically, the first step in developing some software is to find out what the
client, customer or user needs. This step is often called requirements analysis or requirements
engineering. It also seems obvious that it should be carried out with some care
Có vẻ như một nhận xét rõ ràng là một phần mềm phải làm những gì người dùng yêu cầu. Vì
vậy, về mặt logic, bước đầu tiên trong việc phát triển phần mềm là tìm hiểu xem khách hàng
hoặc người dùng cần gì. Bước này thường được gọi là phân tích nhu cầu. Và rõ ràng rằng nó
nên được thực hiện với một cách cẩn thận
There is evidence, however, that this is not always the case. As evidence, one study of the
effectiveness of large-scale software projects, Figure 1.1, found that less than 2% were used as
delivered
Tuy nhiên, đã có bằng chứng cho thấy rằng không phải lúc nào việc phân tích yêu cầu này
cũng được thực hiện một cách cẩn thận. Trong một nghiên cứu về tính hiệu quả của các dự án
phần mềm quy mô lớn, Fig 1.1, cho thấy rằng ít hơn 2% được sử dụng ngay khi chuyển giao
MEETING USERS’ NEEDS

These figures are one of the few pieces of hard evidence available, because (not surprisingly)
organizations are rather secretive about this issue. Whatever the exact figures, it seems that a large
proportion of systems do not meet the needs of their users and are therefore not used as supplied.
It may be, of course, that smaller systems are more successful
Những số liệu này là một trong số ít bằng chứng, bởi vì (không có gì ngạc nhiên) các tổ chức giữ
bí mật về vấn đề này. Dù con số chính xác là bao nhiêu, có vẻ như một tỷ lệ lớn các hệ thống
không đáp ứng được nhu cầu của người dùng và do đó không được sử dụng như mong muốn. Tất
nhiên, có thể là các hệ thống nhỏ hơn sẽ thành công hơn
We might go further and deduce that the main problem of software development lies in
requirements analysis rather than in any other areas, such as reliability or cost, which are discussed
below. The task of trying to ensure that software does what its users want is known as validation
Chúng ta có thể đi xa hơn và suy luận rằng vấn đề chính của phát triển phần mềm nằm ở giai đoạn
phân tích yêu cầu hơn là ở bất kỳ khâu khác, chẳng hạn như độ tin cậy hoặc chi phí, sẽ được thảo
luận bên dưới. Nhiệm vụ cố gắng đảm bảo rằng phần mềm thực hiện những gì người dùng muốn
được gọi là validation
THE COST OF SOFTWARE PRODUCTION

Từ vựng Từ Ý nghĩa Từ vựng Từ Ý nghĩa


loại loại
Gross national product N Tổng sản phẩm quốc gia Reflect V phản ánh

Estimate V Ước lượng Clarify V Làm rõ

Major Adj Lớn, đa số, chính Adequate Adj Đầy đủ

Manned Adj Có người lái In advance Adv Làm cái gì đó trước


Productivity N Năng suất, hiệu suất Estimate V Ước lượng

Layperson N Người không có kiến thức chuyên môn Underestimate V Đánh giá thấp

Disgraceful Adj Đáng hổ thẹn Effort N Nỗ lực


Programming statement N Câu lệnh lập trình Battleground N Chiến trường
Enormous Adj Rất lớn Mass production N Sản xuất hàng loạt

Apparent Adj Rõ ràng Miniaturize V Thu nhỏ


THE COST OF SOFTWARE PRODUCTION

Từ vựng Từ Ý nghĩa Từ vựng Từ Ý nghĩa


loại loại
Escalate V Leo thang Arguably Adv Có thể cho rằng

Perception N Nhận thức Feasible Adj Khả thi

Influence N Ảnh hưởng Arguably Adv Có thể cho rằng

Syndrome N Hội chứng


Convey V Truyền đạt

Revolution N Cuộc cách mạng

Sophistication N Sự phức tạp, tinh vi


Outstrips V Vượt qua

Mushroomed V Mọc lên như nấm

Facility N Tiện ích


THE COST OF SOFTWARE PRODUCTION

Examples of costs
First of all, let us get some idea of the scale of software costs in the world. In the USA it is estimated that about
$500 billion are spent each year on producing software. This amounts to 1% of the gross national product. The
estimated figure for the world is that $1,000 billion is spent each year on software production. These figures are
set to rise by about 15% each year. The operating system that IBM developed for one of its major range of
computers (called OS 360) is estimated to have cost $200 million. In the USA, the software costs of the manned
space program were $1 billion between 1960 and 1970
These examples indicate that the amount spent on software in the industrialized nations is of significant
proportions
Ví dụ về chi phí
Trước hết, chúng ta hãy cùng tìm hiểu quy mô chi phí phần mềm trên thế giới. Ở Mỹ, người ta ước tính rằng
khoảng 500 tỷ đô la được chi mỗi năm cho việc sản xuất phần mềm. Con số này tương đương với 1% tổng sản
phẩm quốc gia. Con số ước tính cho thế giới là 1.000 tỷ đô la được chi mỗi năm cho sản xuất phần mềm. Con số
này tăng khoảng 15% mỗi năm. Hệ điều hành mà IBM đã phát triển cho một trong những dòng máy tính của họ
(được gọi là OS 360) được ước tính trị giá 200 triệu USD. Ở Hoa Kỳ, chi phí phần mềm của chương trình đưa
người lên không gian là 1 tỷ đô la từ năm 1960 đến 1970
Những ví dụ này chỉ ra rằng số tiền chi cho phần mềm ở các quốc gia công nghiệp chiếm tỷ lệ đáng kể
THE COST OF SOFTWARE PRODUCTION

Programmer productivity
The cost of software is determined largely by the productivity of the programmers and the salaries
that they are paid. Perhaps surprisingly, the productivity of the average programmer is only about
10–20 programming language statements per day. To the layperson, a productivity of 20 lines of
code per day may well seem disgraceful. However, this is an average figure that should be
qualified in two ways. First, enormous differences between individual programmers – factors of
20 – have been found in studies. Second, the software type makes a difference: applications
software can be written more quickly than systems software.
Chi phí của phần mềm được xác định chủ yếu bởi năng suất của các lập trình viên và tiền lương
mà họ được trả. Có lẽ đáng ngạc nhiên là năng suất của một lập trình viên trung bình chỉ khoảng
10–20 câu lệnh mỗi ngày. Đối với người không có chuyên môn, năng suất 20 dòng mã mỗi ngày
có vẻ đáng xấu hổ. Tuy nhiên, đây là một con số trung bình nên được đánh giá theo hai cách. Đầu
tiên, sự khác biệt rất lớn giữa các lập trình viên – thừa số của 20 – đã được chỉ ra trong các nghiên
cứu. Thứ hai, loại phần mềm tạo nên sự khác biệt: phần mềm ứng dụng có thể được viết nhanh
hơn phần mềm hệ thống.
THE COST OF SOFTWARE PRODUCTION

Also, this apparently poor performance does not just reflect the time taken to carry out coding,
but also includes the time required to carry out clarifying the problem specification, software
design, coding, testing and documentation. Therefore, the software engineer is involved in
many more tasks than just coding. However, what is interesting is that the above figure for
productivity is independent of the programming language used – it is similar whether a low-
level language is used or a high-level language is used. It is therefore more difficult than it
initially appears to attribute the level of productivity to laziness, poor tools or inadequate
methods
Ngoài ra, hiệu suất kém này không chỉ phản ánh thời gian cần thiết để thực hiện viết mã, mà còn
bao gồm thời gian cần thiết để thực hiện làm rõ việc đặc tả vấn đề, thiết kế phần mềm, viết mã,
kiểm thử và viết tài liệu. Do đó, kỹ sư phần mềm tham gia vào nhiều công việc hơn là chỉ viết mã.
Tuy nhiên, điều thú vị là con số trên về năng suất không phụ thuộc vào ngôn ngữ lập trình được sử
dụng – ngôn ngữ bậc thấp hay ngôn ngữ bậc cao được sử dụng đều giống nhau. Do đó, khó khi
sớm quy mức năng suất cho sự lười biếng, công cụ kém hoặc phương pháp không phù hợp
THE COST OF SOFTWARE PRODUCTION

SELF-TEST QUESTION
A well-known word processor consists of a million lines of code. Calculate how many
programmers would be needed to write it, assuming that it has to be completed in five years.
Assuming that they are each paid $50,000 per year, what is the cost of development?
Một trình xử lý văn bản nổi tiếng bao gồm một triệu dòng mã. Hãy tính xem cần bao nhiêu lập
trình viên để viết nó, giả sử rằng nó phải được hoàn thành trong 5 năm. Giả sử rằng mỗi người
được trả 50.000 đô la mỗi năm, chi phí phát triển là bao nhiêu?
Một người viết trung bình được 20 dòng code 1 ngày => 5 năm (1825 ngày) thì viết được 36,500
dòng code => Số người cần để viết 1 triệu dòng code là 1,000,000/36,500 ~ 27 người.
Nếu được trả $50,000 mỗi năm cho 1 người thì số tiền phải trả cho cả dự án sẽ là 50,000 * 27 * 5
= $ 6,750,000
THE COST OF SOFTWARE PRODUCTION

Predicting software costs


It is very difficult to predict in advance how long it will take to write a particular piece of
software. It is not uncommon to underestimate the required effort by 50%, and hence the cost
and delivery date of software is also affected
Rất khó dự đoán trước sẽ mất bao lâu để viết một phần mềm cụ thể. Không có gì lạ khi những
nỗ lực cần thiết để hoàn thành dự án bị đánh giá thấp tới 50%, và do đó, chi phí và ngày giao
phần mềm cũng bị ảnh hưởng
THE COST OF SOFTWARE PRODUCTION

Hardware versus software costs


The relative costs of hardware and software can be a lively battleground for controversy. In
the early days of computers, hardware was costly and software relatively cheap. Nowadays,
thanks to mass production and miniaturization, hardware is cheap and software (labor
intensive) is expensive. So the costs of hardware and software have been reversed. These
changes are reflected in the so-called “S-shaped curve”, Figure 1.2, showing the relative costs
as they have changed over the years
Chi phí tương ứng của phần cứng và phần mềm có thể là một vấn đề gây tranh cãi. Trong
những ngày đầu của máy tính, phần cứng đắt tiền và phần mềm tương đối rẻ. Ngày nay, nhờ
sản xuất hàng loạt và thu nhỏ, phần cứng rẻ và phần mềm (chi phí lao động) đắt. Vì vậy, chi
phí phần cứng và phần mềm đã được đảo ngược. Những thay đổi này được phản ánh trong cái
được gọi là “đường cong hình chữ S”, hình 1.2, thể hiện thay đổi qua các năm của các chi phí
tương ứng giữa phần cứng và phần mềm
THE COST OF SOFTWARE PRODUCTION

Changes in the relative costs of hardware and software


Những thay đổi trong chi phí tương đối giữa phần cứng và phần mềm
THE COST OF SOFTWARE PRODUCTION

Hardware versus software costs


Whereas, in about 1955, software cost typically only about 10% of a project, it has now
escalated to 90%, with the hardware comprising only 10%. These proportions should be
treated carefully. They hold for certain projects only and not in each and every case. In fact,
figures of this kind are derived largely from one-off large-scale projects.
We will now look at a number of issues that affect the popular perception of software and its
costs
Trong khi, năm 1955, chi phí phần mềm chỉ chiếm khoảng 10% giá trị của dự án, ngày nay, nó
leo lên tới 90%, với chi phí dành cho phần cứng chỉ là 10%. Tỉ lệ này nên được xem xét một
cách cẩn thận. Chúng chỉ đúng trong 1 số dự án cụ thể chứ không phải cho mọi trường hợp.
Trên thực tế, các số liệu này được lấy từ các dự án đơn có quy mô lớn
Bây giờ chúng ta sẽ xem xét một số vấn đề ảnh hưởng đến quan điểm phổ biến về phần mềm
và chi phí của nó
THE COST OF SOFTWARE PRODUCTION

SELF-TEST QUESTION
Someone buys a PC, with processor, monitor, hard disk and printer. They also buy an
operating system and a word processing package. Calculate the relative costs of hardware and
software
Lack of information in the book. Therefore, user need to answer by themselves.
THE COST OF SOFTWARE PRODUCTION

The impact of personal computers


Perhaps the greatest influence on popular perceptions of software costs has come about with the advent
of personal computing. Many people buy a PC for their home, and so come to realize very clearly what
the costs are.
First is the “rock and roll” factor. If you buy a stereo for $200, you don’t expect to pay $2,000 for a
CD. Similarly, if you buy a PC for $1,000, you don’t expect to pay $10,000 for the software, which is
what it would cost if you hired a programmer to write it for you. So, of course, software for a PC either
comes free or is priced at about $50 or so. It can be hard to comprehend that something for which you
paid $50 has cost millions of dollars to develop.
Có lẽ tác động lớn nhất lên quan điểm về chi phí phần mềm đến từ sự ra đời của máy tính cá nhân.
Nhiều người mua máy PC và nhanh chóng nhận ra chi phí dành cho phần mềm máy tính.
Yếu tố đầu tiên là “rock and roll”. Nếu bạn một dàn âm thanh với giá 200 USD, bạn không muốn trả
2,000 USD cho một cái đĩa CD. Tương tự, nếu bạn mua một PC với giá 1,000 USD, bán sẽ không
muốn trả 10,000 USD cho phần mềm, đó là chi phí để thuê 1 lập trình viên để viết phần mềm đó cho
bạn. Vì vậy, tất nhiên, phần mềm cho PC sẽ miễn phí hoặc có giá khoảng 50 đô la. Có thể bạn sẽ thấy
khó hiểu rằng một thứ mà bạn đã trả 50 đô la lại tiêu tốn hàng triệu đô la để phát triển.
THE COST OF SOFTWARE PRODUCTION

The impact of personal computers


Second is the teenager syndrome. Many school students write programs as part of their
studies. So a parent might easily think, “My kid writes computer programs. What’s so hard
about programming? Why is software so expensive?
Thứ hai là hội chứng thiếu niên. Nhiều học sinh viết chương trình như là một phần của nghiên
cứu của họ. Vì vậy, cha mẹ có thể dễ dàng nghĩ rằng: “Con tôi viết chương trình máy tính. Lập
trình có gì khó? Tại sao phần mềm lại đắt như vậy?
THE COST OF SOFTWARE PRODUCTION

Software packages
There has been another significant reaction to the availability of cheap computers. If you want
to calculate your tax or design your garden, you can buy a program off the shelf to do it. Such
software packages can cost as little as $50. The reason for the remarkably low price is, of
course, that the producers of the software sell many identical copies – the mass production of
software has arrived.
Đã có một phản ứng tiêu biểu khác đối với sự tồn tại của các máy tính rẻ. Nếu bạn muốn tính
thuế hay thiết kế khu vườn của bạn, bạn có thể mua một chương trình phổ thông để làm việc
đó. Những gói phần mềm như vậy có thể chỉ giá khoảng 50 USD. Tất nhiên, lý do cho cái giá
thấp tới mức vậy là nhà sản xuất phần mềm bán rất nhiều bản sao – một sự sản xuất hàng loạt
THE COST OF SOFTWARE PRODUCTION

Software packages
The problem with an off-the-shelf package is, of course, that it may not do exactly what you
want it to do and you may have to resort to tailor-made software, adapt your way of life to fit
in with the software, or make do with the inadequacies.
Đương nhiên, vấn đề với những gói sản xuất hàng loạt này là nó có thể không thực hiện được
chính xác những gì bạn muốn và bạn vẫn có thể phải nhờ đến những phần mềm chuyên dụng,
điều chỉnh yêu cầu của bạn để phù hợp với phần mềm, hoặc khắc phục những thiếu sót
Nonetheless, the availability of cheap packages conveys the impression that software is cheap
to produce.
Tuy nhiên, sự tồn tại của những gói phần mềm giá rẻ đã truyền cảm tưởng rằng phần mềm có
thể được sản xuất với giá rẻ
THE COST OF SOFTWARE PRODUCTION

Application development tools


If you want to create certain types of applications software very quickly and easily, several
development tools are available. Notable examples of these tools are Visual Basic and Microsoft
Access. These tools enable certain types of program to be constructed very easily, and even
people who are not programmers can learn to use tools like a spreadsheet (e.g. Microsoft Excel).
Thus a perception is created that programming is easy and, indeed, that programmers may no
longer be necessary. The truth is, of course, that some software is very simple and easy to write,
but most commercially used software is large and extremely complex
Nếu bạn muốn tạo ra những kiểu ứng dụng cụ thể nhanh và dễ, có một vài công cụ để phát triển.
Các ví dụ đáng chú ý là Visual Basic và Microsoft Access. Những công cụ này cho phép một số
kiểu chương trình có thể được xây dựng theo một cách rất dễ, và thậm chí không cần là lập trình
viên cũng có thể học để sử dụng giống như đối với các bảng tính (VD Excel). Do đó, có quan
điểm rằng việc lập trình là dễ, thậm chí, không cần lập trình viên. Đương nhiên sự thật là có thể
có 1 số chương trình đơn giản và dễ viết, nhưng hầu hết các phần mềm thương mại thì lớn và
thực sự phức tạp
THE COST OF SOFTWARE PRODUCTION

The IT revolution
The sophistication of today’s software far outstrips that of the past. For example, complex
graphical user interfaces (GUI’s) are now seen as essential, systems are commonly
implemented on the web, and the sheer size of projects has mushroomed. People and
organizations expect ever more facilities from computers. Arguably, as hardware becomes
available to make previously impractical software projects feasible, software costs can only
continue to escalate.
Sự tinh xảo của phần mềm ngày nay vượt xa so với trước đây. Ví dụ: Các giao diện người dùng
đồ họa phức tạp (GUI) hiện được coi là thiết yếu, các hệ thống thường được triển khai trên web
và quy mô của các dự án đã mọc lên như nấm. Mọi người và các tổ chức mong đợi nhiều tiện
ích hơn từ máy tính. Có thể cho rằng, khi phần cứng trở nên sẵn có để làm cho các dự án phần
mềm không thực tế trước đây trở nên khả thi, chỉ có chi phí phần mềm là tiếp tục tăng lên.
THE COST OF SOFTWARE PRODUCTION

The IT revolution
In summary, what we see today is that software is expensive:
+ relative to the gross national product
+ because developers exhibit apparently low productivity
+ relative to the cost of hardware
+ in popular perception
Tổng kết lại, những gì chúng ta thấy ngày nay là phần mềm rất tốt kém:
+ so với tổng sản phẩm quốc gia
+ bởi vì các lập trình viên thể hiện năng suất rõ ràng thấp
+ liên quan đến chi phí phần cứng
+ trong nhận thức phổ biến
THANK YOU

You might also like