• 沒有找到結果。

Ch.1 The Nature of Software

N/A
N/A
Protected

Academic year: 2021

Share "Ch.1 The Nature of Software"

Copied!
13
0
0

加載中.... (立即查看全文)

全文

(1)

Ch.1 The Nature of Software

(2)

• The Evolution

1.1 The Nature of Software

In the early days: User  Computer

Software = “Place a sequence of instructions together to get the computer to do something useful”.

In late 1950’s:

Computer became cheaper and more common.

High level languages were invented.

Programmer

User Computer

In early 1960’s:

Very few large software projects were done by some experts.

Hacker  Cracker

(3)

1.1 The Nature of Software

Case 1.

美国 IBM 公司在 1963 年至 1966 年开发的 IBM360 机的操作系统。这一项目花了 5000 人 - 年的工作量,最多时有 1000 人投入开发工作,写出了近 100 万行源程序。据统计,这 个操作系统每次发行的新版本都是从前一版本中找出 1000 个程 序错误而修正的结果。

这个项目的负责人 F. P. Brooks 事后总结了他在组织开发过程 中的沉痛教训时说:“…正像一只逃亡的野兽落到泥沼中做垂死 的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。…

程序设计工作正像这样一个泥潭,…一批批程序员被迫在泥沼 中拼命挣扎,…谁也没有料到问题竟会陷入这样的困境…”。

IBM360 操作系统的历史教训成为软件开发项目的典型事例为人 们所记取。而 Brooks 博士随后写出了软件工程领域的经典著作

《人月神话》 (The Mythical Man-Month) ,至今畅销不衰。

(4)

1.1 The Nature of Software Software = Product (information transformer)

Vehicle for delivering a product (OS, network, tools)

The same questions are still asked today:

1. Why does it take so long to get software finished?

2. Why are development costs so high?

3. Why can’t we find all errors before we give the software to our customers?

4. Why do we spend so much time and effort maintaining existing programs?

5. Why do we continue to have difficulty in measuring

progress as software is being developed and maintained?

(5)

1.1 The Nature of Software

• What is Software?

Software is a set of items or objects that form a configuration that includes

 instructions (computer programs) that when executed provide desired function and performance,

 data structures that enable the programs to adequately manipulate information, and

 documents that describe the operation and use of the programs.

AND MORE …

• Software is developed or engineered, it is not manufactured in the classical sense.

(6)

1.1 The Nature of Software

• Software doesn’t wear out.

Failure rate

Time

Infant

mortality Wear

out

Failure curve for hardware

idealized curve change

increased failure

rate due to side effects

actual curve

But it does deteriorate!

There are no software spare parts

• Although the industry is moving toward component-based assembly, most software continues to be custom built.

(7)

1.1 The Nature of Software

• Software Application Types

 System software

 Application software

 Engineering/Scientific software

 Embedded software

 Product-line software

 Web-applications

 Artificial intelligence software

(8)

1.1 The Nature of Software

• Legacy Software –– Why must it change?

 software must be adapted to meet the needs of new computing environments or technology.

 software must be enhanced to implement new business requirements.

 software must be extended to make it interoperable with other more modern systems or databases.

 software must be re-architected to make it viable within a network environment.

(9)

1.2 The Changing Nature of Software

• WebApps

 Modern WebApps are much more than hypertext files with a fe w pictures

 WebApps are augmented with tools like XML and Java to allow Web engineers including interactive computing capability

 WebApps may standalone capability to end users or may be int egrated with corporate databases and business applications

 Semantic web technologies (Web 3.0) have evolved into sophis ticated corporate and consumer applications that encompass s emantic databases that require web linking, flexible data repres entation, and application programmer interfaces (API’s) for acc ess

 The aesthetic nature of the content remains an important deter minant of the quality of a WebApp.

(10)

1.2 The Changing Nature of Software

• Mobile Applications

 Reside on mobile platforms such as cell phones or tablets

 Contain user interfaces that take both device characteristics and location attributes

 Often provide access to a combination of web-based resources and local device processing and storage capabilities

 Provide persistent storage capabilities within the platform

 A mobile web application allows a mobile device to access to web-based content using a browser designed to accommodate the strengths and weaknesses of the mobile platform

 A mobile app can gain direct access to the hardware found on the device to provide local processing and storage capabilities

 As time passes these differences will become blurred

(11)

1.2 The Changing Nature of Software

• Cloud Computing

(12)

1.2 The Changing Nature of Software

• Cloud Computing

 Cloud computing provides distributed data storage and processing resources to networked computing devices

 Computing resources reside outside the cloud and have access to a variety of resources inside the cloud

 Cloud computing requires developing an architecture containing both frontend and backend services

 Frontend services include the client devices and application software to allow access

 Backend services include servers, data storage, and server- resident applications

 Cloud architectures can be segmented to restrict access to private data

(13)

1.2 The Changing Nature of Software

• Product Line Software

 Product line software is a set of software-intensive systems that share a common set of features and satisfy the needs of a particular market

 These software products are developed using the same application and data architectures using a common core of reusable software components

 A software product line shares a set of assets that include requirements, architecture, design patterns, reusable

components, test cases, and other work products

 A software product line allow in the development of many products that are engineered by capitalizing on the

commonality among all products with in the product line

參考文獻

相關文件

Rather than requiring a physical press of the reset button before an upload, the Arduino Uno is designed in a way that allows it to be reset by software running on a

Managing and Evaluating an HCS siRNA Screen of the p53 Pathway with AcuityXpress Software.

Students are asked to collect information (including materials from books, pamphlet from Environmental Protection Department...etc.) of the possible effects of pollution on our

Overview of a variety of business software, graphics and multimedia software, and home/personal/educational software Web applications and application software for

 “More Joel on Software : Further Thoughts on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those

• Nokia has been using Socialtext wiki software for a year and a half to facilitate information exchange within its Insight &

 “More Joel on Software : Further Thoughts on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those

Experiment a little with the Hello program. It will say that it has no clue what you mean by ouch. The exact wording of the error message is dependent on the compiler, but it might