Introduction to Software Engineering(zh,en) Flashcards
(44 cards)
软件工程的定义(Definition of software engineering)
软件工程是将科学原理应用于软件设计和创建的过程(Software engineering is the application of scientific principles to the design and creation of software.)
软件工程的发展阶段(Evolution stages of software engineering)
早期阶段(1950s末),形成期(1960s初),软件危机(1960s中-1970s),解决阶段(1980s中),现代软件工程(1990s至今)。(Early stage (late 1950s), formation (early 1960s), software crisis (mid-1960s to 1970s), solution stage (mid-1980s), modern software engineering (since 1990s).)
CASE工具是什么(What is CASE tool?)
CASE即Computer-Aided Software Engineering,指计算机辅助软件工程的各种工具。(CASE stands for Computer-Aided Software Engineering, referring to various tools assisting software engineering.)
SDLC的六个关键阶段(Six key stages of SDLC)
需求收集、系统设计、编码开发、测试验证、发布上线、编写文档。(Requirements gathering, system design, coding/development, testing/validation, release/deployment, documentation.)
SDLC的好处(Benefits of SDLC)
提高开发效率,降低项目风险,明确各方角色和分工,促进沟通和协作。(Improves development efficiency, reduces risks, clarifies roles and responsibilities, promotes communication and collaboration.)
常见的软件开发生命周期模型(Common SDLC models)
瀑布模型(Waterfall)、V型模型(V-Shape)、敏捷开发(Agile)。(Waterfall, V-Shape, Agile.)
语义化版本号的组成(Components of semantic versioning)
主版本号(重大变更)、次版本号(小改进)、补丁号(修复)、可选的构建号/日期。(Major version (breaking changes), minor version (feature improvements), patch version (bug fixes), optional build/date.)
软件测试三大类型(Three main types of software testing)
功能测试(黑盒)、非功能测试(性能/安全等)、回归测试(检查改动是否影响原功能)。(Functional (black box), non-functional (performance, security, etc.), regression (check changes don’t break old features).)
软件测试的四个层级(Four levels of software testing)
单元测试、集成测试、系统测试、验收测试。(Unit test, integration test, system test, acceptance test.)
软件文档的两大类(Two types of software documentation)
产品文档(描述功能和特性)、流程文档(指导流程和操作)。(Product documentation (features), process documentation (procedures).)
常见软件工程团队角色(Common roles in a software engineering team)
项目经理/SM、利益相关者、架构师、UX设计师、开发者、测试/QA、SRE/运维、产品经理、技术文档撰写者。(Project manager/Scrum Master, stakeholder, architect, UX designer, developer, tester/QA, SRE/Ops, product manager, technical writer.)
前端开发三大技术(Three core technologies for front-end development)
HTML(结构)、CSS(样式)、JavaScript(交互)。(HTML (structure), CSS (style), JavaScript (interaction).)
常见JavaScript框架(Common JavaScript frameworks)
Angular、React.js、Vue.js。(Angular, React.js, Vue.js.)
后端常用语言/框架(Common backend languages/frameworks)
JavaScript(Node.js/Express)、Python(Django/Flask)。(JavaScript (Node.js/Express), Python (Django/Flask).)
API的作用(Purpose of API)
API用于前后端或系统间的数据读写,常用JSON或XML格式,拥有固定结构和规则。(APIs are used for reading/writing data between frontend and backend or between systems, often using JSON or XML format.)
什么是路由(Route)(What is a route?)
用户访问页面/网站的路径,接收输入并返回结果。(A route is the URL path a user visits; it receives input and returns results.)
端点(Endpoint)的定义(Definition of endpoint)
处理特定请求的API或路径。(An endpoint is an API or path that handles a specific request.)
常见协作编程方式(Common collaborative programming styles)
Pairing(Driver/Navigator)、Ping-Pong(TDD结合)、Strong Style(新手为Driver,经验者为Navigator)。(Pair programming (Driver/Navigator), Ping-Pong (with TDD), Strong Style (experienced navigator, novice driver).)
Library与Framework区别(Difference between library and framework)
Library可按需调用、灵活,Framework决定项目结构和流程、控制反转(IoC)。(A library is called as needed and is flexible; a framework defines project structure/flow and inverts control (IoC).)
CI/CD的作用(Purpose of CI/CD)
持续集成和持续部署,提高开发自动化效率,减少人为操作。(Continuous integration and deployment improves automation efficiency and reduces manual work.)
什么是Package Manager(What is a package manager?)
包管理器如Homebrew、RubyGems等,用于统一安装、管理依赖包。(Tools like Homebrew or RubyGems for installing/managing dependencies.)
软件技术栈三层结构(Three layers of a software technology stack)
展示层(前端)、业务逻辑层、数据层。(Presentation (frontend), business logic, and data layer.)
编译型与解释型语言区别(Difference between compiled and interpreted languages)
编译型需先编译再运行,解释型可直接运行。Swift有REPL模式,Python自动编译但更偏解释型。(Compiled: code is built before running; interpreted: runs directly. Swift has REPL; Python is auto-compiled but acts interpreted.)
程序的本质(Essence of a program)
程序=指令+数据,布尔逻辑和变量是基础。(Program = instructions + data; Boolean logic and variables are the foundation.)