ssd9刷一下
按照重點(diǎn)看一下ppt
看下課堂題目(先看群里有答案的 再要)
重點(diǎn)
第二章:軟件生命周期模型
第三章:軟件過程
(以上兩章主要使用來出選擇題,概念要理解清楚)
第十一章:需求
(會(huì)出現(xiàn)在簡(jiǎn)答題里面)
第十二章:傳統(tǒng)分析方法
第十三章:面向?qū)ο蠓治龇椒?br>(以上兩章會(huì)出現(xiàn)在最后分析題里面,下面的第十四章也可以看一下,是設(shè)計(jì),結(jié)合前兩章再看一下,注意回答時(shí)表述規(guī)范)
第十四章:設(shè)計(jì)
第十五章:實(shí)現(xiàn)【本章重點(diǎn)是集成(Integration),非常重要?。。 ?br>第十六章:維護(hù)
(以上兩章是考察概念的理解,希望大家熟悉其概念,這兩部分會(huì)在簡(jiǎn)答題里面出現(xiàn),望引起注意?。?br>
第二章 軟件生命周期
software life-cycle models
software development in theory
理想情況下軟件的開發(fā)過程是Linear和Starting from scratch(白手起家)
實(shí)際情況下 原因在于我們會(huì)犯錯(cuò) 以及客戶的需求會(huì)在開發(fā)過程中改變-
Winburg mini case study
Evolution-Tree Model(這個(gè)可以顯示事件發(fā)生的流程 瀑布模型不可以 這個(gè)有baseline比如episode3就是requirement1=>analysis1=>design3=>implementation3)
image.png
Waterfall Model

Lessons of the Winburg mini case study
現(xiàn)實(shí)的開發(fā)過程更c(diǎn)haotic
changes are always neededTeal tractors mini case study
Some changes may be great for the company but disastrous for the software product. 這些change都有可能導(dǎo)致regression fault
Change is inecitableIteration and incrementation
現(xiàn)實(shí)中,沒有“the analysis phase” 這是貫穿于整個(gè)life cycle的 同理之前那個(gè)Evolution-Tree Model里面的各種phrase其實(shí)都不能稱之為phase. Instead, there are multiple instances of each phase. 從另一個(gè)角度來說就是"iteration and incrementation are used in conjunction with one another."
Miller's Law人只能專注于7件事(所以為了處理信息量大的工作 我們用stepwise refinement這是用來解釋為啥要有incremental process)
5個(gè)核心的workflow
requirements workflow
analysis workflow
design workflow
implementation workflow
test workflow
整個(gè)生命周期整個(gè)五個(gè)都有 但是大多數(shù)時(shí)候總有一個(gè)predominates
-
Winburg mini case study revisited
image.png Risks and other aspects of iteration and incrementation
一個(gè)Increment就是一個(gè)mini project 而整個(gè)項(xiàng)目就是一堆這個(gè)組成的
Each iteration can be viewed as a small but complete waterfall life-cycle model
I&I的優(yōu)勢(shì)
1.有很多環(huán)節(jié)可以發(fā)現(xiàn)問題
2.整個(gè)architecture的Robustness(健壯性)在life-cycle的早期就可以被決定
3.empirical evidence
但是這個(gè)模式在軟件規(guī)模極速發(fā)展的背景下,暴露出來一些問題,原因在于lack of user involvement和lack of support from senior executives
- Managing iteration and incrementation
each increment is a waterfall mini project,applied successively - Other life-cycle models
1.code-and-fix model
no design no specification
這是maintennace nightmare
最簡(jiǎn)單也是最昂貴的開發(fā)模式
2.瀑布模型
瀑布模型
瀑布模型的特征:有feedback loops以及它是documentation-driven的
優(yōu)點(diǎn)在于有文檔、對(duì)維護(hù)更友好 缺點(diǎn)也是在于文檔(耗費(fèi)大量勞動(dòng)力)
3.rapid prototyping model
rapid prototyping model
就是比瀑布模型少了feedback
4.open-source life-cycle model
key point:individuals generally work voluntarily on an open-source project in their spare time(社區(qū)中的開發(fā)人員參與有不同的場(chǎng)景corrective/perfective/adaptive maintenance)
open-source life-cycle model
要注意一點(diǎn) 社區(qū)中的開發(fā)人員只參與了postdelivery的maintenance
所以與其稱他們?yōu)閏o-developers 不如叫做co-maintainers
參與到開源項(xiàng)目維護(hù)的分兩種人core group和 peripheral group(外圍人員 就是發(fā)一下錯(cuò)誤報(bào)告的那種小白u(yù)ser)
相比閉源 開源軟件release early and often(因?yàn)椴恍枰詡鋰?yán)密的SQA)
從上面的描述我們不難看出,開源的確適合一部分軟件比如操作系統(tǒng) 瀏覽器 編譯器但是有些就不適合,比如商業(yè)軟件
而且 沒有specification和design也有優(yōu)有劣 eventually a point will be reached when the open-source product is no longer maintainalbe
5.Agile Processes(敏捷開發(fā))
controversial new approach
實(shí)現(xiàn)了敏捷開發(fā)中最為人熟知的paradigm(范例)就是XP(extreme programming)
而XP的一個(gè)很成功的實(shí)踐就是pair programming(結(jié)對(duì)編程)
XP中的一些重要概念(acronyms首字母of XP)
YAGNI(u aren't gonna nedd it)
DTSTTCPW(do the simplest thing that could possibly work)
Agile process中有個(gè)stand-up meeting感覺就像加強(qiáng)版的早會(huì)233
所有以上都是為了Agile process的兩個(gè)基本原則
communication和satisfying the client's needs as quickly ad possible)
顯而易見這種開發(fā)方式適合小規(guī)模的軟件 而其中的key decider就是敏捷開發(fā)對(duì)postdelivery maintenance的影響
6.Synchronize and Stabilize Model
At the end of the day--sychronize(test and debug)
At the end of the bulid --stabilize(freeze the bulid)
7.Sprial Model(螺旋)
Sprial Model
就是rapid prototyping model plus risk anlysis preceding each phase
If all risks cannot be mitigated, the project is immediately terminated.
Full Spiral Model
Full Spiral Model
有不同觀察的維度
radial dimension:cumulative cost to date
angular dimension:progress through the spiral
顯而易見 這種模式只適合大規(guī)模的軟件
-
Comparison of life-cycle models
比較各種模式有不同的角度
The organization
Its management
The skills of the employees
The nature of the product
最佳建議:mix-and-match life cycle model(答題的時(shí)候也要隨時(shí)想到這種萬金油方法學(xué))
Comparison of Life-Cycle Models
第三章 軟件過程
The Unified Process
不是那種一步一步的指導(dǎo)書類型的準(zhǔn)則顯然也不存在這種適應(yīng)所有軟件的準(zhǔn)則
所以統(tǒng)一過程是一種adaptable methodology
UML(unified modeling language) diagrams enalbe software engineers to communicate quickly and accuratelyIteration and incrementation within the object-oriented paradigm
統(tǒng)一過程是一種modeling technique
面向?qū)ο蟮谋举|(zhì)就是iterative and incrementalThe requirement workflow
目的就是為了搞清楚需求The analysis workflow
To analyze and refine the requirements
不在requirements workflow做這些工作的原因是那個(gè)環(huán)節(jié)必須完全comprehensible by the client
SPMP(software project management plan)The design workflow
The aim of the design workflow is to refine the analysis workflow until the material is in a form that can be implemented by the programmer
分傳統(tǒng)的設(shè)計(jì)和面向?qū)ο蟮脑O(shè)計(jì)The implementation workflow
The aim of the implementation workflow is to implement the target software product in the selected implementation languageThe test workflow
The analysis artifacts shoud be checked by means of a reviewPostdelivey maintenance
Retirement
The phases of the Unified Procsess
One-versus two-dimensional life-cycle models
Improving the software process
Capability maturity models
Other software process improvement initiatives
Costs and benefits of software process improvement







