课程性质和任务:
《软件需求分析与设计》为全日制大学本科软件工程专业的专业核心课程与学位课程。《软件需求分析与设计》的主要任务是通过讲述软件需求分析与设计方面的内容让学生体会到需求分析和良好的设计在软件开发过程中的重要性。
课程内容:
课程讲述的大致内容包括软件工程及软件过程介绍;统一建模语言UML的基本图表;需求分析基础、需求确定及其规格说明;系统分析方法;系统架构设计和详细设计基础、用户界面设计、数据库设计、程序和事务设计;测试和变更管理等;最终以完整案例的形式对所讲授的内容进行复习。除工程性内容以外,本课程还将设计工程经济学的基本内容以及其在软件系统分析与设计过程中的应用。
学习成效:
学生通过本门课程的学习,能够理解软件需求分析和设计的基本概念,掌握需求分析与设计的基本方法,了解在软件需求分析与设计过程中流行的各种技术与工具,并能够对简单案例进行具体的需求分析与系统设计,使用UML对系统的分析与设计进行描述,并形成完整的需求分析与设计文档。
Characteristics and Tasks of the Course
Software Requirements Analysis and Design is a core and degree course for software engineering majors. This course is usually arranged in the second semester for junior students. The main task of Software Requirements Analysis and Design is to make students understand the importance of requirements analysis and design in the software development process by introducing the contents about the software requirements analysis and design.
Course Contents
The main contents of this course include software process, requirements determination and specification, architectural design and detail design, GUI design, persistence and database design, system testing and management, and a general idea about engineering economy and the application in software system analysis and design.
Learning Effectiveness
By learning this course, students are able to understand the basic concepts of software requirements analysis and design, to master the basic methodology of system analysis and design, to know the basic technologies and tools for system analysis and design, to perform the modelling process for specific cases, including UML specifications and documentations.
Chapter 1 Software Process
1.1 The Nature of Software Development
1.2 System Planning
1.3 Systems for Three Management Levels
1.4 The Software Development Lifecycle
1.5 Development Models and Methods
1.6 Case Study
Chapter 1 Test
Chapter 2 Requirements Determination
2.1 From Business Processes to Solution Envisioning
2.2 Requirements Elicitation
2.3 Requirements Elicitation Methods
2.4 Requirements Negotiation, Validation and Management
2.5 Requirements Business Model
2.6 Requirements Document
Chapter 2 Test
Chapter 3 Requirements Specification
3.1 Architectural Prerogatives
3.2 State Specifications
3.3 Behavior Specifications
3.4 State Change Specifications
Chapter 4 Moving from Analysis to Design
4.2 Advanced Generalization and Inheritance Modeling
4.3 Advanced Aggregation and Delegation Modeling
4.4 Advanced Interaction Modeling
4.1 Advanced Class Modeling
Chapter 5 System Architecture and Program Design
5.1 Distributed Physical Architecture
5.2 Multilayer Logical Architecture
5.3 Architectural Modeling
5.4 Principles of Program Design and Reuse
5.5 Collaboration Modeling
Chapter 6 Graphical User Interface Design
6.1 Guidelines for GUI Design
6.2 Desktop GUI Design
6.3 Web GUI Design
6.4 Modeling GUI Navigation
Chapter 7 Persistence and Database Design
7.1 Business Objects and Persistence
7.2 Relational Database Model
7.3 Object-Relational Mapping
7.4 Patterns for Managing Persistent Objects
7.5 Designing Database Access Transactions
Chapter 9 Tutorial-style Review and Reinforcement
Tutorial-style Review and Reinforcement

