《软件工程课程设计》教学大纲
课程代码 | 045102191 |
课程名称 | 软件工程课程设计 |
英文名称 | Software Engineering Course Design |
课程类别 | 集中实践课 |
课程性质 | 必修 |
学时 | 总学时:32 实验学时:32 实习学时:0 其他学时:0 |
学分 | 2.0 |
开课学期 | 第六学期 |
开课单位 | 计算机科学与工程学院 |
适用专业 | 计算机科学与技术 |
授课语言 | 全英授课 |
先修课程 | Java程序设计、算法设计与分析、数据库、软件工程 |
课程对毕业要求的支撑 | 本课程对学生达到如下毕业要求有如下贡献:
|
课程目标 | 完成课程后,学生将具备以下能力: (1)了解软件工程概念和知识来解决复杂软件开发问题。采用软件工程过程和方法来设计和实现复杂软件。 (2)能够选择和使用合适的现代软件工程工具和开发方法来进行复杂软件的开发实现。 (3)能够和软件开发团队成员进行有效沟通来进行软件开发。 (4)能够进行大型软件开发的项目管理,其中包括软件开发计划和日程安排等等 |
课程简介 | 软件工程是一门应用工程学和计算机科学概念来开发和维护有用可靠软件的课程,这一课程关注的领域包括设计、开发、测试、维护和管理。由于现实中的实用软件规模庞大和过于复杂,软件工程的课程讲授外的上机实验实习变得十分重要。 软件工程课程设计的目标是给学生们一个实习机会,在这一实习中采用软件工程概念和原则来进行软件开发。因此,这一课程设计了一些基础实验帮助学生掌握这些知识,这些实验要求学生在软件开发中灵活的应用软件工程技术。这一课程实习会覆盖软件开发的生命周期,包括软件需求获取、需求分析、软件设计、编码/实现以及测试。 学生们同时可以在这一课程中学习到如何进行软件开发项目管理和开发团队交流,从而在预算范围内开发出高质量的软件满足用户的要求。 |
教学内容与学时分配 | 此课程内容全部为实验学时,教学内容见下: |
实验教学(包括上机学时、实验学时、实践学时) | (一) UML 学习3学时 教学要求: UML包含一系列的图形表示来构建面向对象系统的模型。学生学习UML,使用Rational Rose工具以及描述UML模型图(用例图、顺序图、状态图、类图、部件图等等) (二)需求导出4学时 教学要求:实验任务为导出和撰写软件的需求规格说明。分析系统的功能性和非功能性需求,并用标准模板进行描述。形式化描述基于数学表示,可以也用来作为需求描述的表示方法。 (三)软件设计7学时 教学要求:实验任务为对软件系统进行面向对象的分析和设计。其中包括:描述系统体系结构,设计系统的主要类以及类之间的关系和交互,描述系统状态以及状态如何进行转换等等。 (四)软件实现12学时 教学要求:使用面向对象的程序语言(例如C++或者Java)以及开发环境和工具来实现一个大型复杂软件系统。系统的主要体系结构需要遵循MVC(模型-视图-控制器)模型 (五) 软件验证和维护6学时 教学要求:进行软件检验和有效性验证。使用软件审查的方法来检查软件源代码。针对软件结构以及软件功能来设计测试用例,使用这些测试用例对软件进行测试并撰写测试报告。对实现的软件系统进行维护并修复发现的软件错误。 |
教学方法 | 上机实验教学 |
考核方式 | 本课程注重实验过程考核,成绩评定为: 上机实验和实验表现:100% |
教材及参考书 | 现用教材:Ian Sommerville. Software Engineering, Ninth Edition. ISBN: 978-7-111-34825, 机械工业出版社2011. 主要参考资料: (1)Roger S.Pressman. Software Engineering: A Practitioner Approach, ISBN:978-7-111-33581-8. 2011. (2)Shari Lawrence Pfleeger and Joanne M.Atlee. Software Engineering Theory and Practice (Fourth Edition), 影印版, 高等教育出版社, 2009 |
制定人及制定时间 | 李剑,2019年4月11日 |
“Software Engineering Course Design” Syllabus
Course Code | 045102191 |
Course Title | Software Engineering Course Design |
Course Category | Practice Course |
Course Nature | Compulsory Course |
Class Hours | |
Credits | 2.0 |
Semester | 6th Semester |
Institute | School of Computer Science & Engineering |
ProgramOriented | Computer Science and Technology |
Teaching Language | English |
Prerequisites | JAVA Programming, Algorithm Design and Analysis, Database,Software Engineering |
Student Outcomes (Special Training Ability) |
|
Course Objectives | Student can be with following abilities after studying this course: 1.An ability to understand software engineering concepts and knowledge for solving complex engineering problems and using them to build softwares. An ability to design and implement complex softwares with software engineering process and methods. 2.An ability to select and use modern engineering tools and development methods for complex software’s implementation. 3.An ability to communicate effectively with team members to build the software. 4. An ability to take the software project management that will plan and schedule the software development process. |
Course Description | Software engineering is a discipline that allows us to apply engineering and computer science concepts in the development and maintenance of reliable, usable, and dependable software. There are several areas to focus on within software engineering, such as design, development, testing, maintenance, and management. Software development practice outside of the classroom is a very important process, mostly because real-world software is much larger and more complex. The purpose of software engineering curriculum design is to give the students the practice that builds the software with software engineering concepts and principles. Therefore, basic experiments are designed to make students comprehend these while technology experiments require students to flexibly apply software engineering techniques in a process of software developing. The course is designed to cover software development life cycle of requirements gathering, requirements analysis, design, coding/implementation, and testing. Students will also learn about project management and team communication for the purpose of delivering high-quality software that satisfies customer needs and is within budget. |
Teaching Content and Class Hours Distribution | Experiment, as follows: |
Experimental Teaching | (1)UML Learning Hours: 3 Teaching aim: The Unified Modeling Language includes a set of graphic notation techniques to create visual models of object-oriented software-intensive systems. Students learn the notations of UML, use of Rational Rose and use UML Diagrams (use case diagram, sequence diagram, statechart diagram, class diagram; component diagram, etc..) (2)Requirement Elicitation Hours: 4 Teaching aim: This task is to elicit and specify requirements. Describe system’s functional and non-functional requirements and express them with standard form. Formal specification is a particular kind of mathematically based techniques for the requirement analysis and specification which will be used to express some requirements. (3)Software Design Hours: 7 Teaching aim: This task is to make an object-oriented analysis and design for the software system. It includes: identifying system architecture, designing main classes and their relationships and interactions, specifying system states and states’ transitions, etc.. (4)Software Implementation Hours: 12 Teaching aim: Implement a complex software with object-oriented programming language and development environment such as C++ and Java. The system architecture had better follow MVC(model-view-controller) model. (5)Software verification and maintenance Hours: 6 Teaching aim: Take the software verification and validation. Use software inspection to check the source codes. Design test cases according to system structures and functions to test the software and write testing report. Maintain the software and fix the software bugs. |
Teaching Method | Experiment |
Examination Method | Experiment and Performance: 100% |
Teaching Materials and Reference Books | Reference book: Ian Sommerville. Software Engineering, Ninth Edition. ISBN: 978-7-111-34825. 2011. Other references: [1] Roger S.Pressman. Software Engineering: A Practitioner Approach, ISBN:978-7-111-33581-8. 2011. [2]Shari Lawrence Pfleeger and Joanne M.Atlee. Software Engineering Theory and Practice (Fourth Edition), 2009. |
Prepared by Whom and When | Li Jian, April 11, 2019 |