软件工程硕士开题报告范文
一、课题的意义
选择一个适合的产品开发过程对于成功完成产品开发有着至关重要的作用。一个定义良好的过程,可以有效地指导和监控产品开发实践活动,提高产品开发的效率、质量和可预测性。但是,如果过程定义不合理,却会反过来制约我们的工作,导致挫折、低效、低质量甚至失败。
产品开发是一个多学科综合的过程。以消费电子产品为例,在产品开发过程中,软件、硬件、结构件和定制件等各个学科和专业小组的活动互相依赖、交叉并行。传统的产品开发过程往往采用串行、离散、重量级的方法,存在着以下问题:
串行的产品开发过程不能有效支持产品开发的迭代本质,项目的风险往往在后期集中爆发,导致项目进度失控或产品草率交付。
传统产品开发过程把各个学科和专业小组的活动视为一系列静态的、离散的过程,对于多学科交叉并行活动缺少有效综合与协调。
传统产品开发过程采用的重量级方法导致大量的文档工作和漫长的开发周期,难以快速交付高质量的产品。
随着产品的智能化、自动化和信息化程度越来越高,产品的功能和结构日趋复杂,其开发难度也不断增大。同时,技术和工艺水平的飞速提高,以及激烈的市场竞争导致产品的更新换代更加频繁,也使得开发时间日益缩短。在开发难度提高和开发时间缩短的双重压力下,传统的产品开发过程已经不能满足消费电子产品开发的需要。因此,建立一个高效的产品开发过程有着重大的意义。
二、国内外现状分析
为了解决传统串行的产品开发过程导致的产品设计改动量大、开发周期长、成本高、质量差等问题,人们提出了并行工程(Concurrent Engineering)与集成产品和过程开发(Integrated Product and Process Development, IPPD)的思想,这些思想对于建立产品开发过程有着重要的指导意义。但是并行工程与IPPD本身并没给出具体的产品开发过程定义,尤其是对于产品开发的迭代本质和多学科交叉并行特性缺乏具体的过程方法予以支持。
在产品开发中,系统工程(Systems Engineering)起着统领全局,综合、协调各个学科和专业小组的关键作用。对于产品开发过程方法的研究和实践,是系统工程的重要组成部分。在系统工程领域,现有的各种系统生命周期模型和系统工程过程模型从各个不同的方面对产品开发过程进行了描述,现有的重量级的产品开发过程大多数正是在这些模型的基础上建立起来的。但这些模型本身比较抽象化和一般化,不足以作为产品开发过程定义。同时,由于系统工程长期以来主要应用于大型/超大型系统(如武器系统、航天飞机等),在应用这些模型进行产品过程定义时必须非常小心,否则容易产生过于重量级的过程。
反观软件工程(Software Engineering)领域,对于软件开发过程的研究和实践近年取得了很大的进展,迭代开发正取代传统的瀑布模型逐渐成为软件过程方法的主流。基于迭代开发的产品化的软件开发过程——RUP的出现,标志着迭代开发方法的成熟。以迭代开发为核心的一批敏捷方法(Agile Methods),代表着软件开发过程研究和实践中极为活跃的部分。但是这些过程和方法主要关注于软件开发过程,对于其他学科的活动通常只是作为软件开发过程的外部环境加以考虑,而不是从全局上予以综合和协调。
产品开发、系统工程、软件工程3个领域的过程方法各有所长,但都满足不了消费电子产品开发过程的要求,尤其对于多学科综合的迭代开发方法都缺乏具体的解决方案。
三、研究目标和内容
本课题的研究目标是为消费电子产品建立一个能够有效支持产品开发迭代本质、有效综合与协调多学科交叉并行活动、轻量级的产品开发过程。
由于现有的过程方法都满足不了消费电子产品开发过程的要求,尤其对于多学科综合的迭代开发方法都缺乏具体的解决方案。因此,我们在综合产品开发、系统工程、软件工程等领域先进的过程方法的基础上,提出了一个适合于消费电子产品的、基于迭代开发方法的、多学科综合的开发过程——多学科集成迭代过程(Multidisciplinary Integrated Iterative Process, MIIP)。在这里:
“多学科”是指MIIP能够有效综合与协调多学科交叉并行的开发活动;
“集成”有两方面的含义,一是MIIP在产品开发过程中集成了各个学科和专业小组的活动,二是MIIP在过程方法上集成了RUP、敏捷方法、系统工程、并行工程、IPPD等多种过程方法的先进思想和经典实践;
“迭代”是指MIIP基于迭代开发方法。
本课题的研究内容主要包括:
1. 分析消费电子产品开发的多学科集成迭代特征,并为之建立合适的过程;
2. 研究迭代过程在多学科交叉并行情况下存在的问题,并寻求解决方案;
3. 将多学科集成迭代过程应用到具体的项目中,在实践中检验和完善;
4. 总结多学科集成迭代过程应用的经验教训,为企业乃至整个行业的过程改进提供经典实践。
[注:一般研究内容3-6个,每个研究内容要展开来陈述一下]
四、关键技术研究
[注:关键技术研究是指要解决的关键问题,不是要使用的主要技术]
多学科集成迭代过程(MIIP)以软件工程领域的RUP和敏捷方法为基础,将其扩展到系统工程领域,同时吸收了并行工程与IPPD的思想。MIIP的研究需要深入分析并解决好以下几个问题:
1. 消费电子产品开发过程具备什么样的过程特征?
2. 如何为消费电子产品开发过程建立合适的过程?
3. 对于消费电子产品,产品开发过程应具备什么程度的敏捷性?
4. 软件开发的迭代过程是否同样适用于硬件、结构件和定制件等其他学科的产品组件的开发?
5. 在多学科交叉并行的情况下如何进行迭代?
6. 各个学科如何在迭代之间进行协同?
7. 各个学科在独立并行和同步协调之间如何进行权衡?
8. 在实践中,产品开发如何实现从传统的串行过程到迭代过程的转变?
[注:关键问题3个以上,并建议每个问题要展开来陈述一下]
五、研究方案
本课题的研究方法主要包括:
1. 文献阅读:大量阅读文献,了解业界成熟的过程理论、经典实践和最新研究进展,建立充实的理论基础。
2. 过程资产分析:分析Z公司(一个大型的消费电子产品提供商)过程资产库中的现有过程定义文档,并将其与实际执行结果相比较。
3. 项目历史数据分析:分析Z公司项目历史数据,特别是项目计划、监控、度量结果和技术类工作产品,了解项目的实际执行过程。
4. 人员访谈:访谈Z公司项目经理、开发人员和过程改进人员,了解现有过程模型存在的问题及其根源和人们的期望。
5. 过程定义:在分析消费电子产品开发过程的特征之后,建立与之相适应的多学科集成迭代过程。
6. 讨论和评审:在新过程的设计过程中定期与相关专业人员进行讨论和评审,集思广益。
7. 过程试点:在Z公司选择一个现有项目进行试点,在实践中检验和完善过程定义。
8. 试点总结:总结多学科集成迭代过程应用的经验教训,为Z公司乃至整个行业的过程改进提供经典实践。
1. 基于复用定义软件总线架构
2. 面向快速软件服务的个体敏捷过程拟包括以下子过程:
a) 需求与组件池的匹配过程
b) 派生组件的开发过程
c) 需求的验证过程
d) 快速服务交付过程
e) 组件反馈维护过程
3. 借鉴CMMI和PSP来建立面向快速软件服务的个体能力成熟度模型,并进行评估
[注:如果是开发系统,则可画个系统结构图,并说明开发语言、工具、框架等]
本课题的研究经费来自Z公司的过程改进费用,Z公司有一支专职的过程改进队伍,并且已经具备一定的过程资产和项目历史数据,过程的试点项目已经选定,多学科集成迭代过程的核心思想已经开始在该项目中应用。课题研究各方面的资源已基本具备,可以支持研究工作的开展。
六、计划进度
[注:一般从开题到答辩是一年时间]
2019.10 开题
2019.12 定义面向快速软件服务的个体敏捷过程
2019.03 定义面向快速软件服务的个体敏捷过程中个人能力成熟程度
2019.04 选择2-3个专业服务项目进行推广试点
2019.06 对试点专业服务项目进行评估与改进
2019.07 撰写学术论文
2019.08 部门内部推广
2019.10 学位论文定稿和答辩准备
参考文献
[2] 熊光楞,徐文胜,张和明,范文慧。并行工程的理论与实践。清华大学出版社,施普林格出版社,2019
[3] 傅立丰,张耀宗,刘长红。并行工程的发展及应用。机械加工与自动化,2019(9)
[4] R. Winner, J. PenneU, H. Bertrand, M. Slusarczuk. The Role of Concurrent Engineering iWeapons System Acquisition. IDA Report R-338, Institute for Defense Analyses, 1988
[5] 朱焕立,刘玉宾。并行工程的产生、应用及研究现状。中州大学学报,2019(4)
[6] 万立,郑霞,刘清华。产品全生命周期管理平台的集成产品开发流程实现研究。计算机辅助工程,2019(6)
[7] International Council oSystems Engineering. Systems Engineering Handbook, Versio2a. INCOSE, 2019
[9] International Council oSystems Engineering. Guide to the Systems Engineering Body of Knowledge.
[10] Alexander Kossiakoff, William N. Sweet. Systems Engineering Principles and Practice. Wiley-Interscience, 2019
[11] Systems Thinking and Systems Engineering.
[12] Watts S. Humphrey. Managing the software process. Addison-Wesley, 1989
[13] WintoRoyce. Managing the Development of Large Software Systems. Proceedings of IEEE Westcon, 1970
[14] Frederich P. Brooks Jr.. The Mythical Man-Month. AddisoWesley Longman, 1995
[15] Roger S. Pressman. Software Engineering: A Practitioner’s Approach, Fifth Edition. McGraw-Hill Companies, Inc., 2019
[16] Steve McConnell. Rapid Development: Taming Wild Software Schedules. Micosoft Press, 1996
[17] Walker Royce. Software Project Management: A Unified Framework. AddisoWesley Longman, 1998
[18] Barry W. Boehm. A Spiral Model of Software Development and Enhancement. IEEE computer, 1988(5): 61~72
[19] Craig Larman. Agile & Iterative Development: A Manager’s Guide. PearsoEducation, Inc., 2019
[20] Barry W. Boehm. Anchoring the software process. IEEE computer, 1996(7): 73~82
[21] Philippe Kruchten. The Rational Unified Process: AIntroduction, Second Edition. Addison-Wesley, 2019
[22] Ivar Jacobson, Grady Booch, James Rumbaugh. The Unified Software Development Process. AddisoWesley Longman, Inc., 1999
[23] 沈备军,陈诚,居德华。敏捷软件过程的研究。计算机研究与发展,2019(11)
[24] Manifesto for Agile Software Development.
[26] 钱乐秋,张敬周,朱三元。Agile方法研究综述。计算机应用与软件,2019(6)