Software Engineering (Chapters 1 and 2) Review Topics

2020年7月2日 62点热度 0人点赞 0条评论
内容目录

1. Introduction (Single-choice and Fill-in-the-blank Questions) 3 Points

Software

Software is another part that is interdependent with computer hardware in a computer system, including a complete collection of programs, data, and documentation.

Software = Program + Data + Documentation

Software Crisis

(1) Speed: The development level of software lags far behind that of hardware, resulting in low productivity; software manufacturing remains a labor-intensive production method.

(2) Quality: The quality of software is low, failing to meet user needs and having poor adaptability.

(3) Cost: The cost of software development remains high.

The speed of software development, the quality of software products, and the cost of software development are the three core issues in software engineering.

Development of Software Engineering

(1) 1960s-1980s
Waterfall model; procedural languages; supporting tools.

(2) 1980s to Present
Software reuse technology; software production management; object-oriented languages.
The characteristics of software engineering during this period: early emphasis on software development reuse technology, and later focus on software quality and software engineering management.

(3) Recent Years
Software reuse technologies: component technology, platform technology, requirements engineering technology, domain analysis technology, application integration technology, etc.

Software Engineering

Software engineering refers to the discipline that applies computer science, mathematics, and management science, using engineering principles and methods to develop and maintain software.
Goal: To develop a high-quality software system (usable, easy to use, portable, maintainable, etc.) that meets user needs within specified time and budget constraints.
The three elements of software engineering: methods, tools, processes.
Core idea: Treat software products as engineered products.

The essence of software development: "Mapping," which is the mapping of concepts and processing logic from the problem space to concepts and processing logic in the solution space.

System Modeling
Using the knowledge mastered, through abstraction, to provide a structure for the system.
Model
A model is an abstraction. A model describes a physical system from a specific intent, angle, and level of abstraction, usually including a description of the system boundaries and a semantic description of the model elements within the system and their relationships.
Types of System Models
(1) Conceptual Model: Describes what software is.
(2) Software Model: The software solution that implements the conceptual model, including design models, implementation models, and deployment models.

2. Software Requirements and Software Requirement Specification 9-11 Points

Requirements and Requirements Acquisition

Definition of Requirements

A requirement is a statement about what is to be constructed, describing the functional capabilities, performance parameters, or other attributes of the product/system to be developed.

Basic Properties of Requirements

(1) Necessary

(2) Unambiguous

(3) Testable

(4) Traceable

(5) Measurable

Classification of Requirements

(1) Functional requirements are the main body of the entire requirements.

(2) Non-functional requirements: performance requirements, external interface requirements, design constraints, and quality attribute requirements.

Able to distinguish between functional requirements and non-functional requirements.

Categories of Interface Requirements

(1) User Interfaces

(2) Hardware Interfaces

(3) Software Interfaces

(4) Communication Interfaces

(5) Memory Constraints

(6) Runtime

(7) Location Requirements

Design Constraint Requirements

(1) Regulatory Policies

(2) Hardware Limitations

(3) Interfaces with Other Applications

(4) Concurrent Operations

(5) Audit Capabilities

(6) Control Functions

(7) High-level Language Requirements

(8) Handshake Protocols

(9) Criticality of the Application

(10) Security and Confidentiality

Quality Attributes

(1) Reliability

(2) Survivability

(3) Maintainability

(4) User-Friendliness

Techniques for Requirements Discovery

(1) Self-Awareness

(2) Conversations

(3) Observations

(4) Group Meetings

(5) Refinement

Section 2 Requirement Specification (SRS)

Definition of Requirement Specification

A formal document containing all requirements statements for software/products/systems, expressing a conceptual model of the software/product/system.

Basic Properties of Requirement Specification

(1) Level of Importance and Stability: Classifying requirements.

(2) Modifiable

(3) Complete: No requirements are omitted.

(4) Consistent: No conflicting requirements exist.

Format of Requirement Specification

The template for requirements specification described in IEEE Standard 830-1998 (IEEE 1998).

Software Requirements Specification (SRS)

Chapter 1 Introduction
  1.1 Purpose of the Product
  1.2 Document Conventions
  1.3 Risk Assumptions
  1.4 Scope of the Product
  1.5 References
  
Chapter 2 Overview of System Services
  2.1 Product Perspective
  2.2 Product Functions
  2.3 User Classes and Characteristics
  2.4 Operating Environment
  2.5 Design and Implementation Constraints
  2.6 Assumptions and Dependencies
  
Chapter 3 External Interface Requirements
  3.1 User Interface Requirements
  3.2 Hardware Interfaces
  3.3 Software Interfaces
  3.4 Communication Interfaces
  
Chapter 4 System Features
  4.1 Description and Priority
  4.2 Stimulus/Response Sequences
  4.3 Functional Requirements
  
Chapter 5 Other Non-functional Requirements
  5.1 Performance Requirements
  5.2 Security Requirements
  5.3 Safety Requirements
  5.4 Software Quality Attributes
  5.5 Business Rules
  5.6 User Documentation
  
Chapter 6 Other Aspects of Requirements
Appendix A: Glossary
Appendix B: Analytical Models
Appendix C: Business Documents and Forms
Appendix D: List of Outstanding Issues

Expression of Requirement Specification (Specification Document)

(1) Informal Requirement Specification

(2) Semi-formal Requirement Specification

(3) Formal Requirement Specification

Functions of Requirement Specification

(1) The requirement specification is a de facto technical contract between the software development organization and users, reflecting the product functions and their environment.

(2) The requirement specification is a management control point.

(3) For the design of the product/system, the requirement specification is a formal, controlled starting point.

(4) The requirement specification serves as a foundation for creating the product acceptance plan and user manuals.

痴者工良

高级程序员劝退师

文章评论