1.
generic software: sold on the open market to any customer
customized software: commissioned by a particular customer,for only one customer
The difference: generic software is owned by the development company which has a right to determine what features they want to include(Microsoft), and customized software is owned by the factory.
2. Software deterioration
Idealized curve: 起初failure rate很高,但随着时间的增长,failure rate逐渐降低,因为programmer一直在各种patch,最后降低到一个点,然后failure rate不再变化。
Actual curve:起初failure rate逐渐下降,然后因为出现了error和bug所以需要进行一个change,这时就会引入新的bug和error,failure rate又开始上升,然后又下降,然后一直重复下去,(总体上是failure rate是一直呈现上升的趋势吗?)作为software engineerer目的就是减少spike的次数。
3. 软件工程的4个基本特点(fundmental activities):
软件工程的diversity体现在:不同的类型的software都具有这4个特点,但是perform这4个特点具有不同的sequence不同的方法。
4. mission-critical software:在整个软件工程中非常重要的一个部分,需要你了解整个软件的需求,保证整个business或者segment of business,它需要在development开始之前需要 identity full specification,例如real-time software 在aircraft中的作用。但是,在e-commerce systems中,specification和program是一起developed的,一部分一部分的进行开发(?)。
5. Two approaches of software engineering:
(a)sequential:先了解所有的requirements,然后one stage by one stage
(b)iterative:先了解一个requirement然后进行develop,再了解下一个requirement然后进行 develop。
6. Ethics:注意软件工程并不是绝对的freedom,需要保证没有伤害到任何人和组织。
主要体现在4个方面:
Confidentiality(保密):我们经常有权利去访问我们customer的confidential information,我们 需要做的是不能expose
Competence(能力):不要过分夸大自己的能力,自己有多少能力有多少skill就展示多少
Intellectual properties rights(IP 知识产权):不要steal别人的研究成果
computer misuse(滥用):不要用公司电脑做其他事情