1. 请教软件工程专业熟悉人士
原则上同意一楼同学的观点
软件工程一个专业性非常强的专业,近年来随着国家的重视和国外CMM/CMMI过程能力成熟度模型(集成)的应用,现在咱们国家的软件公司都非常重视个人能力。而个人能力最好在软件工程专业实力很强的学校里锤炼。
基于此,我搜索了一下国内开设软件工程专业大学其专业排名:
软件工程硕士是属于计算机一级学科下的二级学科,即属于计算机软件与理论
计算机软件与理论前40名(总共158所高校)
1.上海交通大学,2.南京大学,3.北京大学,4.北京航空航天大学,5.吉林大学,6.清华大学,7.浙江大学,8.西安交通大学,9.东南大学,10.电子科技大学,11.中国科学技术大学,12.哈尔滨工业大学,13.大连理工大学,14.华中科技大学,15.武汉大学,16.复旦大学,17.中山大学,18.西安电子科技大学,19.东北大学,20.西北工业大学,21.北京理工大学,22.北京交通大学,23.南京理工大学,24.重庆大学,25.山东大学,26.四川大学,27.中南大学,28.云南大学,29.上海大学,30.同济大学,31.河海大学,32.北京邮电大学,33.山东科技大学,34.中国人民大学,35.南京邮电大学,36.西北大学,37.武汉理工大学,38.贵州大学,39.陕西师范大学,40.天津大学
所以,我建议楼主去华中科大
2. 基于CMMI的软件工程教程下载
如果有下载,那电绿上面肯定有!
3. 兰州理工大学软件学院的专业介绍
学院招收软件类本科专业和软件职业技术类学生。其中本科专业招收理工类学生,学制四年,学生修满规定学分颁发兰州理工大学本科毕业证书及工学学士学位证书。软件职业技术学院招收专科类学生,学制三年,学生学业期满成绩合格颁发兰州理工大学专科(高职)毕业证书。 一、培养目标
培养“高层次、复合型、国际化”的软件工程人才。
二、主要课程
专业基础课程:高等数序;离散数学;大学英语;马克思主义基本原理,近代史纲要,线性代数;计算机英语;C/C++程序设计;JAVA面向对象的程序设计;软件工程导论 ;计算机组成结构;计算机原理;数据库原理;操作系统;软件工程经济学;算法与数据结构等
三、业务范围和专业方向
学院设有“应用软件开发(Java、.Net)”、“嵌入式”两个专业方向,学生入校后第三年根据能力特长和本人志愿在学院指导下确定专业方向。
(1)应用软件开发(Java、.Net)方向:培养具有扎实的计算机基础知识和现代软件工程能力的专业人才,掌握主流软件框架开发技术,具有较强的软件开发实践能力和技术创新能力,以及较强的外语应用能力和团队协作能力,能够从事软件设计、开发、应用、维护等工作。
主要课程:操作系统原理、计算机体系结构、数据库原理、软件工程、软件工程经济学、软件质量保证与测试、软件项目管理、基于CMMI的软件工程方法、面向服务的体系构架、信息安全、网络编程、数据库开发技术、项目开发实战等。
(2)嵌入式方向:培养具有扎实的计算机基础知识和现代软件工程能力的专业人才,掌握嵌入式系统开发技术和流程,具有较强的系统开发能力和技术创新能力,以及较强的外语应用能力和团队协作能力,能够从事嵌入式系统的设计、开发、测试、维护、管理、推广等工作。
主要课程:操作系统原理、计算机组成原理、计算机体系结构、软件工程、软件工程经济学、软件质量保证与测试、软件项目管理、基于CMMI的软件工程方法、Linux操作系统、嵌入式系统基础、网络编程、物联网应用开发、嵌入式项目实战等。
四、基本学制:四年(包括两年的基础课程学习,一年的专业方向课程学习和一年的企业实训。另外每年暑假组织前往软件企业进行为期两周的认知实习)
五、主要实践性教学环节
包括c课程设计,java课程设计,数据结构与算法课程设计,数据库设计,软件工程课程设计以及软件质量保证与测试课程设计。
六、就业前景
软件工程是目前国内外最热门的专业之一,软件技术人才在我国有着极大的社会需求。毕业生主要面向国内或国际IT公司及各类企事业单位,从事应用软件或嵌入式系统的分析、设计、开发、测试、推广等工作。也可以继续攻读软件工程及相关专业的硕士、博士研究生。 一、培养目标
软件技术专业培养是应软件行业发展需要,掌握计算机科学与技术的基本理论,熟悉计算机软硬件系统,掌握现代软件开发技术,能够从事应用软件开发(WEB应用开发方向、软件外包方向)、嵌入式软件开发(手机软件开发方向)、软件测试(软件测试方向)的应用型人才。
二、主干学科和主要课程
主干学科:计算机科学与技术、电子信息工程。 主要课程:数字电路基础、微型计算机原理及应用(嵌入式系统原理及应用)、计算机操作系统、计算机网络基础、软件工程、算法与数据结构、数据库技术、面向对象程序设计、JAVA程序设计、C++程序设计、嵌入式软件开发技术、网页设计与制作、软件测试技术等。
三、业务范围和专业方向
软件技术专业学生主要学习计算机科学与技术基本理论和基本知识,接受从事计算机软件开发方面的基本训练,具有计算机软件开发的基本能力。
四、基本学制:三年
五、主要实践性教学环节
包括高级程序语言课程设计、算法与数据结构课程设计、计算机组装维护实训、微型计算机原理及应用课程设计、计算机网络课程设计、操作系统课程设计、数据库课程设计、网站设计与管理、软件开发综合训练、实习实训毕业设计等。 一、培养目标
网络技术专业培养掌握计算机网络技术,掌握网络数据库应用,掌握网络安全技术,具有网络工程实践能力,能够从事网络方案设计,网络数据库管理,网站设计与维护,网络工程实施的应用型人才。 二、主干学科和主要课程
主干学科:计算机科学与技术、计算机网络技术。 主要课程:计算机应用基础(包括C程序设计)、数字电路基础、微型计算机原理及应用、计算机操作系统(包括Linux) 、计算机网络基础、局域网技术与组网工程、无线网络技术、网络安全技术、JAVA程序设计基础、JAVA高级程序设计、数据库技术、交换机和路由器的配置、网络应用服务管理、网页制作、网站设计与管理。
三、业务范围和专业方向
网络技术专业学生应具有以下几方面的知识和能力:掌握计算机网络技术和基本知识;掌握网络应用系统的分析和设计的基本方法;具备熟练使用相关网络设备的能力;具有独立工作和从事网络方案设计、网络工程实施的能力。 专业方向:网络方案设计、网站建设和维护,网络安全方案实施、网络数据库建设和维护、网络工程建设。
四、基本学制:
2年校内学习,1年校外实习、实训。
五、主要实践性教学环节
包括微型计算机原理及应用课程设计、操作系统课程设计(重点是软件系统的安装、维护)、网络协议分析实训、网站设计与管理课程设计、JAVA高级程序语言课程设计、数据库课程设计(开发一个基于C/S模式的小型管理系统)、网络设计综合训练、综合实习(一年)等。 一、培养目标
数字媒体艺术专业是一个宽口径的以技术为主,艺术为辅,技术与艺术相结合的新专业。培养具有良好的科学素养以及美术修养、既懂技术又懂艺术、能利用计算机新的媒体设计工具进行艺术作品的设计和创作的复合型应用设计人才。
二、主干学科和主要课程
主干学科:计算机科学与技术、艺术设计 主要课程:计算机应用基础、美术基础、多媒体技术、多媒体通信与网络、动漫艺术概论、动漫设计与制作基础、平面图像制作(PHOTOSHOP)、二维矢量动画设计(FLASH)、三维动画设计、音频制作与合成、摄影技术、视觉传达设计、运动规律、艺术赏析、计算机动画设计与制作、创意与策划、动漫剧作与文案、影视后期制作等。
三、业务范围和专业方向
数字媒体艺术专业学生应具有以下几方面的知识和能力:计算机动漫设计能力、数字声像合成能力、计算机动画制作及影视后期制作能力;计算机多媒体设计软件的能力;数字媒体设计和应用开发的能力。 业务范围:二维、三维动画制作,影视动画制作,影视编辑、影视广告制作,后期合成及网络动画制作以及平面艺术设计、三维艺术设计,能够从事装潢艺术设计、建筑艺术设计、广告艺术设计、环境艺术设计等方面的工作。 专业方向:动漫设计与制作方向,计算机多媒体技术方向。学生毕业后可以在环境艺术设计单位、IT公司、影视公司、动画设计公司、广告公司、网络公司、娱乐游戏公司、政府部门等部门工作。
四、基本学制:
学制三年。2年校内学习,1年校外实习、实训。
五、主要实践性教学环节
包括美术作品与户外写生、图形图像综合训练、虚拟现实技术课程设计、平面动画设计制作实训,三维动画设计制作实训,影视制作实训,动漫设计与制作综合实践,实习实训(一年)等。
4. 软件认证CMM,CMMI对新手来说难学吗
CMMI已经不只是软件的能力成熟度模型,它把软件工程和系统工程合并在一起。因此,有硬件开发的基础也可以学习和使用CMMI模型。
要想入门其实并不难,有专门的培训,3天就够了,但是要高额付费。模型的书有七八百页,看两周应该够了,没有简体中文版。
基于CMM的CBA-IPI评估已经过期,现在大家都使用基于CMMI的SCAMPI评估方法,由SEI授权的评估师进行评估。
从业人员的主要工作就是过程改进。
5. 蓝牙BlueAudio软件支持SPP功能,其中的SPP指什么
spp: serial port profile,用于模拟串口通信,走的是rfcomm的通路。具体specificaiton可以在网上下载。
6. spp协议的默认端口
1.蓝牙串行端口基于SPP协议(Serial Port Profile),能在蓝牙设备之间创建串口进行数据传输
2.SPP的UUID:00001101-0000-1000-8000-00805F9B34FB
3.Android手机一般以客户端的角色主动连接SPP协议设备
连接流程
1.检测蓝牙状态
若蓝牙未打开,则打开蓝牙~
2.注册设备搜索广播信息
使用registerReceiver注册broadcastReceiver来获取搜索设备等消息
3.使用BlueAdatper搜索
使用bluetoothAdapter搜索设备,bluetoothAdapter.startDiscovery()在搜索过程中,系统会发出三个广播信息:
ACTION_DISCOVERY_START:开始搜索
ACTION_DISCOVERY_FINISHED:搜索结束
ACTION_FOUND:找到设备
4.获取搜索到的蓝牙设备信息
在BroadcastReceiver的onReceive()里取得搜索到的蓝牙设备信息(如名称,MAC,RSSI)
5.通过蓝牙设备的MAC地址来建立一个BluetoothDevice对象:
BluetoothDevice romoteDevice = bluetoothAdapter.getRemoteDevice(mDeviceAddress);
6.由BluetoothDevice衍生BluetoothSocket
通过BluetoothSocket的()方法来选择连接的协议/服务,这里用的是SPP(UUID:00001101-0000-1000-8000-00805F9B34FB)
7.使用BluetoothSocket来连接、读写蓝牙设备
读写可以归到一个独立线程去实现~
7. 想问一下,软件工程师培训有什么特点北京哪家培训学校好急急急急~~~
推荐你北京联想利泰
联想利泰提供软件工程师培训
精选实训课程:每门课程都针对软件产业紧缺岗位制定,由公司相关资深研发经理悉心研发。
资深项目经理主讲:指导老师均是来自公司第一线的资深项目经理。
全真项目开发环境:实训项目的研发管理、日常工作都采用企业正式开发环境和开发工具。
企业真实项目训练:所有训练项目均是软件企业的真实项目作为训练。
以提高实际开发经验为主导:实训采用真实的项目、环境,全力提高学员的实际工作能力、经验。
基于项目的协作式互动教学方法:所有实训方式是以项目练习为主,老师指导为辅,同时要求学员参与研讨,充
分互动。
丰富的项目资源储备:经过多年的项目积累,联盟企业储备了大量的、类型丰富的项目供学员练习。
北京联想利泰软件有限公司(以下简称联想利泰)是联想集团成员企业,是国际知名的一流软件工程和技术服务企业,
公司拥有富有经验的软件开发团队和先进的软件开发过程管理体系,为联想集团中央电视台、青岛啤酒等大型企业实施了
各种应用软件项目,业务范围涵盖了协同办公、客户关系管理、呼叫中心、商业智能、企业应用集成等领域。
北京联想利泰软件有限公司(以下简称联想利泰)成立于2004年6月2日,是联想集团成员企业,其前身是成立于1996
年的联想集团研发部软件开发团队。公司总部位于北京市海淀区上地信息产业基地,在武汉、深圳等地设有分支机构。
联想利泰拥有富有经验的软件开发团队和先进的软件开发过程管理体系。2000年,我们率先在国内引入软件能力成熟
度模型CMM,并在2007年2月通过CMMI 5级国际认证,标志着我们能够定量地对软件开发项目进行分析和控制,保证软
件项目品质、交付时间和售后服务,具备了国际一流的软件过程管理能力
联想利泰基于先进的、成熟的软件研发管理能力,秉承与客户真诚合作、做客户信赖的朋友的理念,长期专注于软件
研发与实施。为客户提供灵活的软件工程服务,包括软件系统的需求分析、架构设计、程序开发、质量保证和运行维护等,
严格的管理规范和相应的管理系统,保证我们为客户提供的每个环节的服务都是专业的和高水准的。
联想利泰的使命是:为客户提供信息技术和服务,使工作更加简便、高效;回报股东长远利益,为员工创造发展空间,
提升员工价值。展望未来,我们计划不断提升核心竞争力,全面拓展国际市场,继续秉承客户至上的经营方针,全力打造
诚信的、国际知名的一流软件工程和技术服务企业。
8. 兰州理工大学软件学院的办学特色
学院致力于培养“高层次、复合型、国际化”的软件工程人才。紧密跟踪软件工程领域最新技术发展动向,以高水平的师资队伍、创新的课程体系和完备的实习基地为基础,依托区域优势,加强国际合作,务实创新,追求卓越 。
实施 “2+1+1”的培养模式。前两年是校内教师为主体的通识课程和专业基础课程教学;第三年是双师型的专业课程教学和工程能力训练;第四年由校企师资联合指导,在合作企业在岗实习并参加项目开发完成毕业设计。
结合教育部“卓越工程师教育培养计划”构建课程体系。学院参照国际IEEE/ACMCC2001、SEWBOK、SE2004和我国CCSE2004课程体系及课程建设标准,并吸收国内外大学软件类专业课程体系,制定了既能体现软件新技术发展又能满足企业需要的多层次、多方向、模块化课程体系,形成理论教学、动手能力培养和工程项目实践相结合的教学特色。
注重实践教学。以合作企业在通信、交通、金融、教育、物流、网络服务、移动应用等热门行业实际项目开发为教学内容,紧跟软件技术的最新发展,涵盖软件行业主流的Java开发技术、.Net开发技术和嵌入式系统开发技术,完成不少于3万行程序代码的实际训练。
校企联合,强化实习基地实习。学院与微软、IBM、甲骨文、苹果、中软国际、东软、华为、杰普软件、甘肃万维等10多家国内外软件企业联合建立了实习基地,为提升学生的职业素养和工程实践能力创造良好的平台。 加拿大达内科技公司
达内外企IT培训中心,由美国国际数据集团IDG投资,由来自美国Nasdaq上市的SUN、IBM、亚信、华为、东软等公司的技术骨干、海外留学生和加拿大专业技术人员创办。致力于为中国培养基于Unix/Linux平台、Oracle大型关系数据库、IP网络协议、Web和企业级应用的中高级软件人才。达内凭借优异的业绩和口碑,被北京市教委高校毕业生就业指导中心指定为“首都大学生就业培训基地”。
北京中软集团中软国际有限公司(中软国际)
是根植中国、服务全球的IT服务提供商,致力于为遍及全球的客户提供全面的服务,打造中国智造综合平台。集团业务涵盖以咨询为驱动的解决方案、以专业化为准则的ITO和BPO外包服务和以人才供链为导向的培训服务。
大连东软集团
东软是中国领先的IT解决方案与服务供应商。致力于行业解决方案、产品工程解决方案及相关软件产品、平台及服务等。目前,东软是中国最大的离岸软件外包提供商。东软将“超越技术”作为公司的经营思想和品牌承诺,东软通过开放式创新、卓越运营管理、人力资源发展等战略的实施,全面构造公司的核心竞争力,创造客户和社会的价值。
上海杰普软件科技有限公司(Briup Technology,Inc. )
是专注于软件外包、研发咨询、高端IT培训的高新技术企业。公司在电信、金融、电子商务等方面有着丰富的专业开发、管理和培训经验。公司依托拥有丰富开发及培训经验的师资团队,培养企业紧缺的中高端开发人才。推出的解决大学生就业问题的DSP方案,已成功向各大软件企业输送了数千名人才,也确保了杰普软件外包业务的高效性和扩展性。
四川华迪信息技术有限公司
主要从事行业应用软件开发、系统集成、软件与信息服务外包、软件与网络开发技术培训、大学生实习实训与IT职业技能培训等业务。拥有一支技术功底扎实、行业服务经验丰富、职业化素质高的工程师队伍,专注于电力、教育、通信行业开展信息化服务。是教育部软件工程专业大学生实习实训基地和国家级职业教育实训基地。
学院设有“应用软件开发(Java、.Net)”、“嵌入式”两个专业方向,学生入校后第三年根据能力特长和本人志愿在学院指导下确定专业方向。
应用软件开发(Java、.Net)方向:培养具有扎实的计算机基础知识和现代软件工程能力的专业人才,掌握主流软件框架开发技术,具有较强的软件开发实践能力和技术创新能力,以及较强的外语应用能力和团队协作能力,能够从事软件设计、开发、应用、维护等工作。
嵌入式方向:培养具有扎实的计算机基础知识和现代软件工程能力的专业人才,掌握嵌入式系统开发技术和流程,具有较强的系统开发能力和技术创新能力,以及较强的外语应用能力和团队协作能力,能够从事嵌入式系统的设计、开发、测试、维护、管理、推广等工作。
培养目标
本专业紧密跟踪软件工程领域最新技术发展动向,以高水平的师资队伍、创新的课程体系和完备的实习基地为基础,依托区域优势,培养 “高层次、复合型、国际化”的软件工程人才。
专业方向和主要课程
专业方向:学院设有“应用软件开发(Java、.Net)”、“嵌入式”两个专业方向,学生入校后第三年根据能力特长和本人志愿在学院指导下确定专业方向。
主要课程:操作系统原理、计算机体系结构、数据库原理、软件工程、软件工程经济学、软件质量保证与测试、软件项目管理、基于CMMI的软件工程方法等。
主要实践教学环节
以合作企业在通信、交通、金融、教育、物流、网络服务、移动应用等热门行业实际项目开发为教学内容,紧跟软件技术的最新发展,涵盖软件行业主流的Java开发技术、.Net开发技术和嵌入式系统开发技术,完成不少于3万行程序代码的实际训练。
同时与微软、IBM、甲骨文、中软国际、大连东软、华为、杰普软件、甘肃万维等10多家国内外软件企业联合建立了实习基地,为提升学生的职业素养和工程实践能力创造良好的平台。
基本学制
四年。
实施 “2+1+1”的培养模式。前两年是校内教师为主体的通识课程和专业基础课程教学;第三年是双师型的专业课程教学和工程能力训练;第四年由校企师资联合指导,在合作企业在岗实习并参加项目开发完成毕业设计。
学位授予条件
符合《兰州理工大学关于授予学士学位的有关规定》条件的毕业生,可授予工学学士学位。 序 号 课 程 名 称 课题负责人 职 称 备 注
1 数据结构、数据库技术(群) 张 永 教 授 校级重点课程(群)
2 大学计算机基础 王连相 高 工 校级重点课程
3 信号与系统、通信原理(群) 王惠琴 副教授 院级重点课程
4计算机组成原理任学惠 讲 师 院级重点课程
5 操作系统 王旭阳 副教授 院级重点课程
6 Linux 赵 宏 教授 院级重点课程
7 计算机网络实验指导书 杜红林 讲 师 院级重点课程
8 计算机组成原理实验指导书 杜红林 讲 师 院级重点课程
9 信号与系统 何继爱 副教授 院级重点课程
10 通信原理 王维芳 讲 师 院级重点课程
11 网络与信息安全 冯 涛 教 授 院级重点课程
12 计算机图形学 赵付青 副教授 院级重点课程
课程名称:数据库原理
课程级别:省级精品课程
课程负责人:李明
课程简介:《数据库原理》课程的内容涵盖三个方面:数据库基础理论、数据库设计、数据库新技术。内容包括:数据库技术的基本概念与发展,关系数据库,关系数据库标准语言SQL,关系数据理论,数据库设计,数据库恢复技术,并发控制,数据库安全性,数据库完整性,分布式数据库,面向对象数据库,并行数据库简介,数据仓库与数据挖掘技术,XML数据库等。
依据不同层次的需求,我们为全校本科生开设了不同学时的“数据库原理”、“数据库开发技术”、“网络与数据库编程”等课程,并为研究生开设了“数据库理论与技术”、“数据挖掘”、“数据库系统与数据仓库”等课程。
结合数据库技术的发展和应用,进行了教材建设,调整和优化了教学内容,出版了“数据库原理及应用”教材(西南交通大学出版社,2007),编写了“数据库学习指导书”、“数据库上机指导书”、“课程设计指导书”等,建立了开放式Oracle平台。
应用软件开发方向主要课程:操作系统原理、计算机体系结构、数据库原理、软件工程、软件工程经济学、软件质量保证与测试、软件项目管理、基于CMMI的软件工程方法、面向服务的体系构架、信息安全、网络编程、数据库开发技术、项目开发实战等。
嵌入式方向主要课程:操作系统原理、计算机组成原理、计算机体系结构、软件工程、软件工程经济学、软件质量保证与测试、软件项目管理、基于CMMI的软件工程方法、Linux操作系统、嵌入式系统基础、网络编程、物联网应用开发、嵌入式项目实战等。
9. 软件工程的作品目录
中文版
出版者的话
译者序
前言
第一部分软件工程导论
第1章概述
11专业化软件开发
111软件工程
112软件工程的多样性
113软件工程和Web
12软件工程人员的职业道德
13案例研究
131胰岛素泵控制系统
132用于心理健康治疗的患者信息系统
133野外气象站
要点
进一步阅读材料
练习
参考书目
第2章软件过程
21软件过程模型
211瀑布模型
212增量式开发
213面向复用的软件工程
22过程活动
221软件描述
222软件设计和实现
223软件有效性验证
224软件进化
23应对变更
231原型构造
232增量式交付
233Boehm的螺旋模型
24Rational统一过程
要点
进一步阅读材料
练习
参考书目
第3章敏捷软件开发
31敏捷方法
32计划驱动开发和敏捷开发
33极限编程
331极限编程中的测试
332结对编程
34敏捷项目管理
35可扩展的敏捷方法
要点
进一步阅读材料
练习
参考书目
第4章需求工程
41功能需求和非功能需求
411功能需求
412非功能需求
42软件需求文档
43需求描述
431自然语言描述
432结构化描述
44需求工程过程
45需求导出和分析
451需求发现
452采访
453脚本
454用例
455深入实际
46需求有效性验证
47需求管理
471需求管理规划
472需求变更管理
要点
进一步阅读材料
练习
参考书目
第5章系统建模
51上下文模型
52交互模型
521用例建模
522时序图
53结构模型
531类图
532泛化
533聚合
54行为模型
541数据驱动的建模
542事件驱动模型
55模型驱动工程
551模型驱动体系结构
552可执行UML
要点
进一步阅读材料
练习
参考书目
第6章体系结构设计
61体系结构设计决策
62体系结构视图
63体系结构模式
631分层体系结构
632容器体系结构
633客户机-服务器体系结构
634管道和过滤器体系结构
64应用体系结构
641事务处理系统
642信息系统
643语言处理系统
要点
进一步阅读材料
练习
参考书目
第7章设计与实现
71利用UML进行面向对象设计
711系统上下文与交互
712体系结构的设计
713对象类识别
714设计模型
715接口描述
72设计模式
73实现问题
731复用
732配置管理
733宿主机-目标机开发
74开源开发
要点
进一步阅读材料
练习
参考书目
第8章软件测试
81开发测试
811单元测试
812选择单元测试案例
813组件测试
814系统测试
82测试驱动开发
83发布测试
831基于需求的测试
832情景测试
833性能测试
84用户测试
要点
进一步阅读材料
练习
参考书目
第9章软件进化
91进化过程
92程序进化的动态特性
93软件维护
931维护预测
932软件再工程
933通过重构进行预防性维护
94遗留系统管理
要点
进一步阅读材料
练习
参考书目
第二部分可依赖性和信息安全性
第10章社会技术系统
101复杂系统
1011系统总体特性
1012系统非确定性
1013成功标准
102系统工程
103系统采购
104系统开发
105系统运行
1051人为错误
1052系统进化
要点
进一步阅读材料
练习
参考书目
第11章可依赖性与信息安全性
111可依赖性特征
112可用性和可靠性
113安全性
114信息安全性
要点
进一步阅读材料
练习
参考书目
第12章可依赖性与信息安全性描述
121风险驱动的需求描述
122安全性描述
1221危险识别
1222危险评估
1223危险分析
1224风险降低
123可靠性描述
1231可靠性度量
1232非功能性的可靠性需求
1233功能可靠性描述
124信息安全性描述
125形式化描述
要点
进一步阅读材料
练习
参考书目
第13章可依赖性工程
131冗余性和多样性
132可依赖的过程
133可依赖的系统体系结构
1331保护性系统
1332自监控系统体系结构
1333N-版本编程
1334软件多样性
134可依赖的编程
要点
进一步阅读材料
练习
参考书目
第14章信息安全工程
141信息安全风险管理
1411生存期风险评估
1412运行风险评估
142面向信息安全的设计
1421体系结构设计
1422设计准则
1423部署设计
143系统生存能力
要点
进一步阅读材料
练习
参考书目
第15章可依赖性与信息安全保证
151静态分析
1511检验和形式化方法
1512模型检测
1513自动静态分析
152可靠性测试
153信息安全性测试
154过程保证
155安全性和可依赖性案例
1551结构化论证
1552结构化的安全性论证
要点
进一步阅读材料
练习
参考书目
第三部分高级软件工程
第16章软件复用
161复用概览
162应用框架
163软件产品线
164COTS产品的复用
1641COTS解决方案系统
1642COTS集成系统
要点
进一步阅读材料
练习
参考书目
第17章基于组件的软件工程
171组件和组件模型
172CBSE过程
1721面向复用的CBSE
1722基于复用的CBSE
173组件合成
要点
进一步阅读材料
练习
参考书目
第18章分布式软件工程
181分布式系统的问题
1811交互模型
1812中间件
182客户机-服务器计算
183分布式系统的体系结构模式
1831主从体系结构
1832两层客户机-服务器结构
1833多层客户机-服务器结构
1834分布式组件体系结构
1835对等体系结构
184软件作为服务
要点
进一步阅读材料
练习
参考书目
第19章面向服务的体系结构
191服务作为可复用的组件
192服务工程
1921可选服务的识别
1922服务接口设计
1923服务实现和部署
1924遗留系统服务
193使用服务的软件开发
1931工作流设计和实现
1932服务测试
要点
进一步阅读材料
练习
参考书目
第20章嵌入式软件
201嵌入式系统设计
2011实时系统建模
2012实时编程
202体系结构模式
2021观察和反应
2022环境控制
2023处理管道
203时序分析
204实时操作系统
要点
进一步阅读材料
练习
参考书目
第21章面向方面的软件工程
211关注点分离
212方面、连接点和切入点
213采用方面的软件工程
2131面向关注点的需求工程
2132面向方面的设计和编程
2133检验和有效性验证
要点
进一步阅读材料
练习
参考书目
第四部分软件 管理
第22章项目管理
221风险管理
2211风险识别
2212风险分析
2213风险规划
2214风险监控
222人员管理
223团队协作
2231成员挑选
2232小组的结构
2233小组的沟通
要点
进一步阅读材料
练习
参考书目
第23章项目规划
231软件报价
232计划驱动的开发
2321项目计划
2322规划过程
233项目进度安排
234敏捷规划
235估算技术
2351算法成本建模
2352COCOMO Ⅱ模型
2353项目的工期和人员配备
要点
进一步阅读材料
练习
参考书目
第24章质量管理
241软件质量
242软件标准
243复查与审查
2431复查过程
2432程序审查
244软件度量和量度
2441产品量度
2442软件组件分析
2443度量歧义
要点
进一步阅读材料
练习
参考书目
第25章配置管理
251变更管理
252版本管理
253系统构建
254发布版本管理
要点
进一步阅读材料
练习
参考书目
第26章过程改善
261过程改善过程
262过程度量
263过程分析
264过程变更
265CMMI过程改善框架
2651分阶段的CMMI模型
2652连续CMMI模型
要点
进一步阅读材料
练习
参考书目
术语表
英文版
CONTENTS
Preface v
Part 1 Introction to Software Engineering 1
Chapter 1 Introction 3
1.1 Professional software development 5
1.2 Software engineering ethics 14
1.3 Case studies 17
Chapter 2 Software processes 27
2.1 Software process models 29
2.2 Process activities 36
2.3 Coping with change 43
2.4 The rational unified process 50
Chapter 3 Agile software development 56
3.1 Agile methods 58
3.2 Plan-driven and agile development 62
3.3 Extreme programming 64
3.4 Agile project management 72
3.5 Scaling agile methods 74
Chapter 4 Requirements engineering 82
4.1 Functional and non-functional requirements 84
4.2 The software requirements document 91
4.3 Requirements specification 94
4.4 Requirements engineering processes 99
4.5 Requirements elicitation and analysis 100
4.6 Requirements validation 110
4.7 Requirements management 111
Chapter 5 System modeling 118
5.1 Context models 121
5.2 Interaction models 124
5.3 Structural models 129
5.4 Behavioral models 133
5.5 Model-driven engineering 138
Chapter 6 Architectural design 147
6.1 Architectural design decisions 151
6.2 Architectural views 153
6.3 Architectural patterns 155
6.4 Application architectures 164
Chapter 7 Design and implementation 176
7.1 Object-oriented design using the UML 178
7.2 Design patterns 189
7.3 Implementation issues 193
7.4 Open source development 198
Chapter 8 Software testing 205
8.1 Development testing 210
8.2 Test-driven development 221
8.3 Release testing 224
8.4 User testing 228
Chapter 9 Software evolution 234
9.1 Evolution processes 237
9.2 Program evolution dynamics 240
9.3 Software maintenance 242
9.4 Legacy system management 252
Part 2 Dependability and Security 261
Chapter 10 Sociotechnical systems 263
10.1 Complex systems 266
10.2 Systems engineering 273
10.3 System procurement 275
10.4 System development 278
10.5 System operation 281
Chapter 11 Dependability and security 289
11.1 Dependability properties 291
11.2 Availability and reliability 295
11.3 Safety 299
11.4 Security 302
Chapter 12 Dependability and security specification 309
12.1 Risk-driven requirements specification 311
12.2 Safety specification 313
12.3 Reliability specification 320
12.4 Security specification 329
12.5 Formal specification 333
Chapter 13 Dependability engineering 341
13.1 Rendancy and diversity 343
13.2 Dependable processes 345
13.3 Dependable system architectures 348
13.4 Dependable programming 355
Chapter 14 Security engineering 366
14.1 Security risk management 369
14.2 Design for security 375
14.3 System survivability 386
Chapter 15 Dependability and security assurance 393
15.1 Static analysis 395
15.2 Reliability testing 401
15.3 Security testing 404
15.4 Process assurance 406
15.5 Safety and dependability cases 410
Part 3 Advanced Software Engineering 423
Chapter 16 Software reuse 425
16.1 The reuse landscape 428
16.2 Application frameworks 431
16.3 Software proct lines 434
16.4 COTS proct reuse 440
Chapter 17 Component-based software engineering 452
17.1 Components and component models 455
17.2 CBSE processes 461
17.3 Component composition 468
Chapter 18 Distributed software engineering 479
18.1 Distributed systems issues 481
18.2 Client–server computing 488
18.3 Architectural patterns for distributed systems 490
18.4 Software as a service 501
Chapter 19 Service-oriented architecture 508
19.1 Services as reusable components 514
19.2 Service engineering 518
19.3 Software development with services 527
Chapter 20 Embedded software 537
20.1 Embedded systems design 540
20.2 Architectural patterns 547
20.3 Timing analysis 554
20.4 Real-time operating systems 558
Chapter 21 Aspect-oriented software engineering 565
21.1 The separation of concerns 567
21.2 Aspects, join points and pointcuts 571
21.3 Software engineering with aspects 576
Part 4 Software Management 591
Chapter 22 Project management 593
22.1 Risk management 595
22.2 Managing people 602
22.3 Teamwork 607
Chapter 23 Project planning 618
23.1 Software pricing 621
23.2 Plan-driven development 623
23.3 Project scheling 626
23.4 Agile planning 631
23.5 Estimation techniques 633
Chapter 24 Quality management 651
24.1 Software quality 655
24.2 Software standards 657
24.3 Reviews and inspections 663
24.4 Software measurement and metrics 668
Chapter 25 Configuration management 681
25.1 Change management 685
25.2 Version management 690
25.3 System building 693
25.4 Release management 699
Chapter 26 Process improvement 705
26.1 The process improvement process 708
26.2 Process measurement 711
26.3 Process analysis 715
26.4 Process change 718
26.5 The CMMI process improvement framework 721
Glossary 733
Subject Index 749
Author Index 767
10. 软件工程中的cmm是什么,有哪五个层次
CMM是指“能力成熟度模型”,其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM。它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。
CMM是是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。CMM分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。
CMM是由美国卡内基梅隆大学软件工程研究所1987年研制成功的,是目前国际上最流行最实用的软件生产过程标准和软件企业成熟度等级认证标准。目前,我国已有软件企业通过了CMM标准认证 。
SW-CMM(Capability Maturity Model For Software 软件生产能力成熟度模型,以下简称"CMM"),是87年由美国卡内基梅隆大学软件工程研究所(CMU SEI)研究出的一种一种用于评价软件承包商能力并帮助改善软件质量的方法,其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。
其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件生产中的困难。CMM它是目前国际上最流行、最实用的一种软件生产过程标准,已经得到了众多国家以及国际软件产业界的认可,成为当今企业从事规模软件生产不可缺少的一项内容。
CMM目前通用流行的版本是1.1(Version1.1)。《按照软件工程研究所(SEI)的原来计划,CMM的改进版版本2.0(V2.0)是要在1997年的11月完成的。但是,美国国防部办公室要求软件工程研究所(SEI)延迟发放公布CMM版本2.0,直至他们完成另一个更为紧迫的项目-CMMI。
CMMI(Capability Maturity Model Integration能力成熟度模型集成),是美国国防部的一个设想。他们希望把所有现存的与将被发展出来的各种能力成熟度模型,集成到一个框架中去。这个框架用于解决两个问题:第一,软件获取办法的改革;第二,从集成产品与过程发展的角度出发,建立一种包含健全的系统开发原则的过程改进。
CMM为软件企业的过程能力提供了一个阶梯式的改进框架,它基于过去所有软件工程过程改进的成果,吸取了以往软件工程的经验教训,提供了一个基于过程改进的框架;它指明了一个软件组织在软件开发方面需要管理哪些主要工作、这些工作之间的关系、以及以怎样的先后次序,一步一步的做好这些工作而使软件组织走向成熟。
一、CMM的诞生
信息时代,软件质量的重要性越来越为人们所认识。软件是产品、是装备、是工具,其质量使得顾客满意,是产品市场开拓、事业得以发展的关键。而软件工程领域在1992年至1997年取得了前所未有的进展,其成果超过软件工程领域过去15年来的成就总和。
软件管理工程引起广泛注意源于20世纪70年代中期。当时美国国防部曾立题专门研究软件项目做不好的原因,发现70%的项目是因为管理不善而引起,而并不是因为技术实力不够,进而得出一个结论,即管理是影响软件研发项目全局的因素,而技术只影响局部。到了20世纪90年代中期,软件管理工程不善的问题仍然存在,大约只有10%的项目能够在预定的费用和进度下交付。软件项目失败的主要原因有:需求定义不明确;缺乏一个好的软件开发过程;没有一个统一领导的产品研发小组;子合同管理不严格;没有经常注意改善软件过程;对软件构架很不重视;软件界面定义不善且缺乏合适的控制;软件升级暴露了硬件的缺点;关心创新而不关心费用和风险;军用标准太少且不够完善等等。在关系到软件项目成功与否的众多因素中,软件度量、工作量估计、项目规划、进展控制、需求变化和风险管理等都是与工程管理直接相关的因素。由此可见,软件管理工程的意义至关重要。
软件管理工程和其它工程管理相比有其特殊性。首先,软件是知识产品,进度和质量都难以度量,生产效率也难以保证。其次,软件系统复杂程度也是超乎想象的。因为软件复杂和难以度量,软件管理工程的发展还很不成熟。
软件管理工程的发展,在经历了从70年代开始以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征的结构化生产时代,到90年代中期,以CMM模型的成熟模型和日益为市场接受为标志,已经进入以过程成熟模型CMM、个体软件过程PSP和群组软件过程TSP为标志的以过程为中心的时代,而软件发展第三个时代,及软件工业化生产时代,从90年代中期软件过程技术的成熟和面向对象技术、构件技术的发展为基础,已经渐露端倪,估计到2005年,可以实现真正的软件工业化生产,这个趋势应该引起软件企业界和有关部门的高度重视,及早采取措施,跟上世界软件发展的脚步。软件生产转向以改善软件过程为中心,是世界各国软件产业或迟或早都要走的道路。
软件过程改善是当前软件管理工程的核心问题。50多年来计算事业的发展使人们认识到要高效率、高质量和低成本地开发软件,必须改善软件生产过程。软件管理工程走过了一条从70年代开始以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试到90年代中期以过程成熟模型CMM、个体软件过程PSP和群组软件过程TSP为标志的以过程为中心向着软件过程技术的成熟和面向对象技术、构件技术的发展为基础的真正软件工业化生产的道路。软件生产转向以改善软件过程为中心,是世界各国软件产业或迟或早都要走的道路。软件工业已经或正在经历着"软件过程的成熟化",并向"软件的工业化"渐进过渡。规范的软件过程是软件工业化的必要条件。
软件过程研究的是如何将人员、技术和工具等组织起来,通过有效的管理手段,提高软件生产的效率,保证软件产品的质量。由此诞生了软件过程的三个流派:CMU-SEI的CMM/PSP/TSP;ISO 9000质量标准体系;ISO/IEC 15504(SPICE)。
CMM/PSP/TSP即软件能力成熟度模型/ 个体软件过程/群组软件过程,是1987年美国 Carnegie Mellon 大学软件工程研究所(CMU/SEI)以W.S.Humphrey为首的研究组发表的研究成果"承制方软件工程能力的评估方法";SO 9000质量标准体系是在70年代由欧洲首先采用的,其后在美国和世界其他地区也迅速地发展起来。目前,欧洲联合会积极促进软件质量的制度化,提出了如下ISO9000软件标准系列:ISO9001、ISO9000-3、ISO9004-2、ISO9004-4、ISO9002;ISO/IEC 15504(SPICE)是1991年国际标准化组织采纳了一项动议,开展调查研究,按照CMU-SEI的基本思路,产生的技术报告ISO/IEC 15504--信息技术软件过程评估
目前,学术界和工业界公认美国 Carnegie Mellon 大学软件工程研究所(CMU/SEI) 以W.S.Humphrey为首主持研究与开发的软件能力成熟度模型CMM是当前最好的软件过程,已成为业界事实上的软件过程的工业标准。
二、CMM的发展
1987年美国 Carnegie Mellon 大学软件工程研究所(CMU/SEI)以W.S.Humphrey为首的研究组发表了CMM/PSP/TSP 技术,为软件管理工程开辟了一条新的途经。
CMM框架用5个不断进化的层次来评定软件生产的历史与现状:其中初始层是混沌的过程,可重复层是经过训练的软件过程,定义层是标准一致的软件过程,管理层是可预测的软件过程,优化层是能持续改善的软件过程。任何单位所实施的软件过程,都可能在某一方面比较成熟,在另一方面不够成熟,但总体上必然属于这5个层次中的某一个层次。而在某个层次内部,也有成熟程度的区别。在CMM框架的不同层次中,需要解决带有不同层次特征的软件过程问题。因此,一个软件开发单位首先需要了解自己正处于哪一个层次,然后才能够对症下药地针对该层次的特殊要求解决相关问题,这样才能收到事半功倍的软件过程改善效果。任何软件开发单位在致力于软件过程改善时,只能由所处的层次向紧邻的上一层次进化。而且在由某一成熟层次向上一更成熟层次进化时,在原有层次中的那些已经具备的能力还必须得到保持与发扬。
软件产品质量在很大程度上取决于构筑软件时所使用的软件开发和维护过程的质量。软件过程是人员密集和设计密集的作业过程:若缺乏有素训练,就难以建立起支持实现成功是软件过程的基础,改进工作亦将难以取得成效。CMM描述的这个框架正是勾列出从无定规的混沌过程向训练有素的成熟过程演进的途径。
CMM包括两部分"软件能力成熟度模型"和"能力成熟度模型的关键惯例"。"软件能力成熟度模型"主要是描述此模型的结构,并且给出该模型的基本构件的定义。"能力成熟度模型的关键惯例"详细描述了每个"关键过程方面"涉及的"关键惯例"。这里"关键过程方面"是指一组相关联的活动;每个软件能力成熟度等级包含若干个对该成熟度等级至关重要的过程方面,它们的实施对达到该成熟度等级的目标起到保证作用。这些过程域就称为该成熟度等级的关键过程域,反之有非关键过程域是指对达到相应软件成熟度等级的目标不起关键作用。归纳为:互相关联的若干软件实践活动和有关基础设施的一个集合。而"关键惯例"是指使关键过程方面得以有效实现和制度化的作用最大的基础设施和活动,对关键过程的实践起关键作用的方针、规程、措施、活动以及相关基础设施的建立。关键实践一般只描述"做什么"而不强制规定"如何做"。各个关键惯例按每个关键过程方面的5个"公共特性"(对执行该过程的承诺,执行该过程的能力,该过程中要执行的活动,对该过程执行情况的度量和分析,及证实所执行的活动符合该过程)归类,逐一详细描述。当作到了某个关键过程的的全部关键惯例就认为实现了该关键过程,实现了某成熟度级及其以低级所含的全部关键过程就认为达到到了了该级。
上面提到了CMM把软件开发组织的能力成熟度分为5个的等级。除了第1级外,其他每一级由几个关键过程方面组成。每一个关键过程方面都由上述5种公共特性予以表征。CMM给每个关键过程了一些具体目标。按每个公共特性归类的关键惯例是按该关键过程的具体目标选择和确定的。如果恰当地处理了某个关键过程涉及的全部关键惯例,这个关键过程的各项目标就达到了,也就表明该关键过程实现了。这种成熟度分级的优点在于,这些级别明确而清楚地反映了过程改进活动的轻重缓急和先后顺序。