當(dāng)前位置:機(jī)電之家首頁(yè) >> 工程造價(jià)>> 工程論文 >> 軟件工程論文 >> 軟件工程中10個(gè)最重要的理念
軟件工程中10個(gè)最重要的理念

1.軟件開(kāi)發(fā)最終是由人來(lái)執(zhí)行和完成而不是機(jī)器。

# Software development is performed by human beings. This notion was first popularized by Gerald Weinberg in 1971, with a book entitled The Psychology of Computer Programming (the silver anniversary edition of the book was republished in 1998). McConnell noted that estimating models like COCOMO-II demonstrate the significant cost/effort multipliers associated with having talented, experienced personnel on a project. He also suggests that we can draw three conclusions from this point: (a) the success of companies like Google, Yahoo, and Microsoft is not accidental, and is partially due to their emphasis on hiring talented people; (b) recruiting talented staff members is easily cost-justified; and (c) spending money on employee retention programs is cost-justified.

2.增量開(kāi)發(fā)是必須的

Incrementalism is essential. Steve distinguishes between “incremental” and “iterative” development; by “incrementalism,” he refers to the idea of developing a little bit at a time, in contrast to the big-bang software development approach.

3.迭代開(kāi)發(fā)是必須的

Iteration is essential. This is a familiar concept, but Steve warned us to avoid accepting the all-or-nothing extremes of iteration. You don’t have to accept the “keep iterating forever” extreme, nor do you have to accept the “no iterations are allowed” waterfall approach.

4.增加一個(gè)缺陷的成本是延長(zhǎng)了開(kāi)發(fā)周期

The cost to increase a defect increases over time, throughout the development life cycle. This is a concept that has been widely accepted for the past 25 years, and McConnell says he has rbbbbidated its truth with data as recent as 2004, including XP/agile projects. I was somewhat surprised by this, because a common argument from the XP/agile enthusiasts is that modern tools have made the old concept irrelevant — i.e., the XP/agile people argue that it doesn’t cost much to fix a requirements defect later in the development process, because modern IDE tools make it easy to redevelop software. McConnell obviously disagrees with this point, and I’ll have to look into it further before I make up my own mind.

5.軟件開(kāi)發(fā)過(guò)程的瀑布模型是重要的內(nèi)核(每一個(gè)增量或迭代都是一個(gè)小瀑布)

There is an important kernel of truth in the waterfall model of development. McConnell suggests that the primary activities of software development are discovery (of what the requirements really are), invention (of a solution), and construction (i.e., implementation of that invented solution). And he argues that while these activities can overlap and take place somewhat concurrently, there is an intrinsically sequential nature to the activities.

6.精確的軟件估算需要增加整個(gè)軟件系統(tǒng)的開(kāi)發(fā)周期

The accuracy of estimates (about the schedule, effort, and cost) for a project increases over time throughout the development of a software system. There is a great deal of uncertainty in the initial estimates that we create at the beginning of a project. The “cone of uncertainty,” as McConnell calls it, does not narrow by itself, it must be actively managed. As a result, McConnell concludes that iteration must be iterative, project planning must be incremental, and that estimates aren’t meaningful unless they contain a debbbbbbion of their uncertainty.

7.最強(qiáng)大的重用是重用任何可復(fù)用的事物而不僅僅是代碼復(fù)用

The most powerful form of reuse is reuse of everything — not just code. We’ve long known that we should be reusing designs, plans, checklists, role, etc; and McConnell reminds us that we should be reusing processes for developing systems. Indeed, that’s what SEI-CMM level 3 is all about.

8.風(fēng)險(xiǎn)管理給軟件開(kāi)發(fā)過(guò)程提供重要的洞察力

Risk management provides important insights into software development. McConnel notes that most projects spend more than 50% of their effort on unplanned work, and that the role of risk management is to reduce unplanned work.

9.不同類型和規(guī)模的軟件需要不同類型的開(kāi)發(fā)方法論

Different kinds of software calls for different kinds of software development approaches. The “one size fits all” approach to software development bbbbbbologies is just plain silly

10.軟件工程體系和指南是軟件開(kāi)發(fā)人員的重要資產(chǎn)

The Software Engineering Body of Knowledge (SWEBOK) is an important asset for software developers. SWEBOK has detailed information about 10 different areas of software development, including the familiar ones of analysis, design, construction, and testing. McConnell notes that it can be used for curriculum development, career development, certification, interviewing, and building a technical skills inventory.
 

作者:未知 點(diǎn)擊:574次 [打印] [關(guān)閉] [返回頂部]
本文標(biāo)簽:軟件工程中10個(gè)最重要的理念
* 由于無(wú)法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請(qǐng)《軟件工程中10個(gè)最重要的理念》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
關(guān)于“軟件工程中10個(gè)最重要的理念”的更多資訊

電子樣本

SN系列樣冊(cè)
:鞏經(jīng)理
:13915946763
:南京塞姆泵業(yè)有限公司
個(gè)人求購(gòu)

吳小姐 【求購(gòu)】  粉碎機(jī)  2025-12-5
 【求購(gòu)】  冶煉用的重...  2025-12-5
柳女士 【求購(gòu)】  斷路器  2025-12-5
林志揚(yáng) 【求購(gòu)】  無(wú)石棉墊片  2025-12-4
張一帆 【求購(gòu)】  首件測(cè)試儀  2025-12-4
王飛 【求購(gòu)】  gf流量計(jì)  2025-12-4
 【求購(gòu)】  全自動(dòng)印刷...  2025-12-4
 【求購(gòu)】  LED屏  2025-12-3
VIP公司推薦