软件工程:工程化构建高质量软件的学科

需积分: 3 2 下载量 153 浏览量 更新于2024-07-31 收藏 269KB DOC 举报
"软件工程是研究和应用工程化方法来构建和维护有效、实用、高质量软件的学科。它涵盖了程序设计语言、数据库、软件开发工具、系统平台、设计模式等多个领域,并广泛应用于各个行业,对社会经济的发展起着关键作用。软件工程包括目标设定、过程管理、原则遵循和基本原理,强调了生命周期计划、阶段评审、产品控制和持续改进等重要环节。主要课程涉及需求分析、系统与语言规约、领域、需求与软件设计等。国家示范性软件学院致力于培养具备专业技能的软件人才,毕业生可以在多个领域找到就业机会。" 软件工程作为一门重要的学科,其目标是创建能够满足用户需求、可维护、可扩展的软件产品。这一过程中,软件工程师需要选择合适的开发范型,如敏捷开发或瀑布模型,采用适当的设计方法,如面向对象设计或模块化设计,确保工程支持的质量,并严格管理开发过程。 软件工程的基本原则包括:选择适合的开发范型以适应项目需求,采用有效设计方法优化软件结构,提供高质量的工程支持以确保软件质量,重视开发过程的管理,通过阶段评审及时发现和解决问题,实施严格的产品控制以保证软件的一致性和稳定性,采用现代程序设计技术提升效率,确保结果可审查以保证透明度,保持团队精干以提高效率,以及承认和接纳软件工程实践的持续改进需求。 在方法学层面,软件工程通常遵循软件开发生命周期,包括需求分析、设计、编码、测试和维护等阶段。此外,随着技术的进步,新的方法如DevOps、持续集成/持续交付(CI/CD)和自动化测试也逐渐成为软件工程的重要组成部分。 在教育领域,国家示范性软件学院致力于培养具有扎实理论基础和实践能力的软件专业人才,其主要课程可能包括软件需求分析、软件体系架构、编程语言、数据结构、算法设计、操作系统、网络、数据库管理等。毕业后,学生可以在软件开发公司、信息技术服务公司、科研机构、政府机关等多种行业从事软件开发、项目管理、系统分析等工作,为推动科技进步和社会发展贡献力量。
2018-08-04 上传
序   前言   第1篇面向过程的软件工程   第1章软件危机、 软件工程   11软件工程的发展史   111程序设计时代   112程序系统时代   113软件工程时代   12软件危机主要表现形式   13产生软件危机的原因及解决途径   131产生软件危机的原因   132解决软件危机的途径   14软件和软件工程   141软件   142软件工程   15软件质量   16软件的生存周期及开发模型   161软件生存周期   162软件开发模型   17习题   第2章可行性研究   21可行性研究的目的与任务   22可行性研究的步骤   23系统流程图   231系统流程图的符号   232系统流程图示例   24成本-效益分析   241货币的时间价值   242投资回收期   243纯收入   25可行性研究报告的主要内容   26习题   第3章软件需求分析   31需求分析的任务和步骤   311需求分析的任务   312需求分析的步骤   32需求获取的常用方法   321常规的需求获取方法   322快速建立软件原型来获取需求   33需求分析的方法   331功能分解方法   332结构化分析方法   333信息建模方法   334面向对象的分析   34结构化分析方法   341自顶向下逐层分解的分析策略   342结构化分析描述工具   343数据流图   344数据字典   345加工逻辑的描述   35需求分析图形工具   351层次方框图   352Warnier图   353IPO图   36SA 方法的应用   37习题   第4章软件总体设计   41软件总体设计的目标和任务   42软件设计的概念和原理   421模块和模块化   422抽象   423信息隐蔽和局部化   424模块独立性及其度量   43软件结构设计准则   44软件结构设计的图形工具   441软件结构图   442层次图   443HIPO图   45结构化设计方法   451数据流图的类型   452结构化设计方法的步骤   453变换型分析设计   454事务型分析设计   46习题   第5章软件详细设计   51详细设计的目的与任务   52结构化程序设计   53详细设计工具   531程序流程图   532NS图   533PAD图   534过程设计语言   54习题   第6章软件编码   61程序设计语言的分类   611基础语言   612结构化语言   613面向对象的语言   62程序设计语言的选择   63程序设计风格   631程序内部文档   632数据说明   633语句构造   634输入/输出   635效率   64习题   第7章软件测试   71软件测试的目标   72软件测试的原则   73软件测试方法   731静态测试与动态测试   732黑盒测试法与白盒测试法   74软件测试用例的设计   741白盒技术   742黑盒技术   75软件测试过程   751单元测试   752集成测试   753确认测试   754系统测试   76调试   761调试的目的   762调试技术   77习题   第8章软件维护   81软件维护的分类   82软件维护的特点   821结构化维护与非结构化维护   822维护的代价   823软件维护中存在的问题   83软件可维护性   831软件可维护性的定义   832软件可维护性的度量   833提高软件可维护性的方法   84维护的副作用   85软件再工程   851软件再工程与逆向工程的概念   852实施软件再工程的原因   853软件再工程技术   86习题   第2篇UML与面向对象的软件工程   第9章UML简介   91UML概述   911UML的组成   912UML的特点和用途   913UML的模型视图简介   92UML软件开发工具简介   921Rational Rose   922Visio简介   93习题   第10章面向对象的概念   101面向对象的方法学   1011面向对象建模   1012面向对象的方法与传统软件方法的比较   102对象与类及其UML表示   1021对象   1022类与实例   1023对象属性与操作   1024对象类的关联   103聚集、 组合、 继承和多态   1031聚集与组合   1032抽象与继承   1033多态   104习题   第11章对象设计模式   111对象设计模式概念   1111历史背景   1112对象设计模式   1113设计模式的分类   112几种典型的对象设计模式及应用   1121行为型模式中的职责键模式及应用   1122结构型模式中的外观模式及应用   1123创建型模式中的抽象工厂模式及应用   113对象类的高级概念   1131抽象类、 参数对象类、型与实现对象类   1132接口   1133版型   114组件、 包和结点   1141组件   1142包和包图   1143结点   115习题   第12章面向对象的软件开发过程   121RUP概述   1211RUP的历史   1212RUP的特色   122RUP软件开发生命周期和建模   1221RUP软件开发的生命周期   1222RUP的动态结构   1223RUP的静态结构   1224RUP的建模   123面向对象软件开发过程的案例分析   1231系统需求   1232系统的静态结构模型   1233顺序图和协作图   1234状态图和活动图   1235组件图和部署图   124习题   第13章软件开发工具Rose   131Rose的用例图与类图   1311用例图   1312类图   132Rose的交互图与状态机图   1321交互图   1322状态机图   133包、 组件图与部署图   1331包   1332组件图   1333部署图   134Rose的代码生成和逆向工程   1341代码生成   1342逆向工程   135Rose应用举例   136习题   第14章Rose及其应用   141Rose的主要功能   142Rose的使用   1421Rose主菜单窗口   1422模型与工作方式的组织   143教学管理系统的分析与设计   1431系统需求分析   1432系统问题领域分析   1433静态结构模型的建立   1434动态行为模型的建立   1435物理模型的建立   144UML类图与VB代码的转换   1441VB代码生成属性   1442Rose模型—VB代码的生成   1443VB代码的逆向工程   145UML类图与Java代码的转换   1451UML类图—Java代码的生成   1452Java代码的逆向工程   146习题   第15章面向对象的软件体系结构   151软件体系结构概述   152流程处理与客户机/服务器体系结构   1521流程处理   1522客户机/服务器体系结构   153三层和多层体系结构   1531三层体系结构   1532浏览器/服务器体系结构风格   1533多层体系结构   1534团聚与串行   154公共对象请求代理体系结构   155基于层次消息总线的体系结构风格   156异构结构风格   157习题   第16章软件工程新技术   161软件复用技术   1611软件复用概念及分类   1612软件复用的关键技术和复用粒度   162中间件技术   1621中间件概念及特点   1622中间件的分类   163组件技术   1631组件与组件化   1632组件模型及描述语言   1633组件的检索与组装   164计算机辅助软件工程技术   1641CASE的基本概念   1642CASE工具与集成CASE环境   165软件产品线技术   1651软件产品线基本概念   1652软件产品线方法   1653北大青鸟工程   166软件过程与标准化   1661软件过程及其改进   1662ISO 9000标准   1663软件能力成熟度模型   167习题   第3篇软件工程实验   第17章软件工程实验大纲   171面向过程的软件工程实验   1711实验1图书馆图书管理系统的可行性分析   1712实验2图书馆图书管理系统的项目开发计划   1713实验3图书馆图书管理系统的需求分析   1714实验4图书馆图书管理系统的总体设计   1715实验5图书馆图书管理系统的详细设计及编码实现   1716实验6图书馆图书管理系统的系统测试   1717实验7图书馆图书管理系统用户手册的撰写   1718实验8图书馆图书管理系统项目开发总结报告的撰写   172面向对象的软件工程实验   1721实验1浏览器系统的可行性分析   1722实验2浏览器系统的项目开发计划   1723实验3浏览器系统的需求分析   1724实验4浏览器系统的体系结构设计   1725实验5采用面向对象方法进行浏览器系统的详细设计   1726实验6利用Rational Rose正向工程功能完成编码的实验   1727实验7利用Rational Rose逆向工程完成修改设计的实验   1728实验8浏览器系统的测试   1729实验9浏览器系统用户手册的撰写   17210实验10浏览器系统项目开发总结报告的撰写   附录   附录AUML图总结   附录BUML中定义的常用版型、 约束和标记   附录CGOF给出的软件设计模式