2.1 DEFINING THE DISCIPLINE
definition for software engineering
软件工程的定义
(1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.
(1)应用系统的、规范的、可量化的方法来开发、运行和维护软件;即工程在软件上的应用。
(2) The study of approaches as in (1)
(2) 研究(1)中的方法。
Software engineering is a layered technology:
软件工程的层次:
-
The bedrock that supports software engineering is a quality focus.
支持软件工程的基石是质量焦点。 -
The foundation for software engineering is the process layer.
软件工程的基础是过程层。 -
Software engineering methods provide the technical how-to’s for building software.
软件工程方法提供了构建软件的技术指南。 -
Software engineering tools provide automated or semi-automated support for the process and the methods
软件工程工具为过程和方法提供自动化或半自动化的支持。
2.2 THE SOFTWARE PROCESS
The Process Framework
A generic process framework for software engineering encompasses five activities:
软件工程的通用过程框架包含五项活动:
Communication.
沟通。
Planning(umbrella activities).
策划(伞式活动)。
Modeling.
造型。
Construction.
建造。
Deployment
部署
In general,umbrella activities are applied throughout a software project and help a software team manage and control progress, quality, change, and risk. Typical umbrella activities include:
一般来说,伞式活动应用于整个软件项目,帮助软件团队管理和控制进度、质量、变更和风险。典型的保护伞活动包括:
- Software project planning,tracking and control.
软件项目规划、跟踪和控制。 - Risk management.
风险管理。 - Software quality assurance—defines and conducts the activities required to ensure software quality.
软件质量保证——定义并进行确保软件质量所需的活动。 - Technical reviews.
技术审查。 - Measurement —defines and collects process, project, and product measures that assist the team in delivering software that meets stakeholders’ need
衡量——定义和收集流程、项目和产品衡量标准,帮助团队交付满足利益相关者需求的软件 - Software configuration management
软件配置管理。 - Reusability management —defines criteria for work productreuse (including software components) and establishes mechanisms to achieve reusable components.
可重用性管理——定义工作产品重用(包括软件组件)的标准,并建立实现可重用组件的机制。 - Work product preparation and production —encompass the activities required to create work products such as models, documents, logs, forms, and lists
工作产品准备和生产——包括创建工作产品(例如模型、文档、日志、表格和列表)所需的活动
2.3 SOFTWARE ENGINEERING PRACTICE
The Essence of Practice
- Understand the problem (communication,planning,analysis
modeling)
理解问题(沟通、规划、分析建模) - Plan a solution ( design modeling)
规划解决方案(设计建模) - Carry out the plan (code generation)
执行计划(代码生成) - Examine the result for accuracy (testing and quality assurance)
检查结果的准确性(测试和质量保证)
General Principles
- The First Principle: The Reason It All Exists
第一条原则:一切存在的原因(项目的价值是什么,能不能带来生成效益) - The Second Principle: KISS (Keep It Simple, Stupid!)
第二条原则:KISS(保持简单,愚蠢!)(架构简单清晰明了) - The Third Principle: Maintain the Vision
第三条原则:保持可视(保持每个阶段可见,可视化,类图或其他工具) - The Fourth Principle: What You Produce, Others Will Consume
关注使用者(软件做完后有没有受众面,对客户有作用(输入输出)) - The Fifth Principle: Be Open to the Future
对未来持开放态度(可扩展性,比如,接口不写死, 类便于修改维护) - The Sixth Principle: Plan Ahead for Reuse
提前计划重用(代码尽量标准化,提前考虑组件复用性前瞻性,降低成本) - The Seventh Principle: Think!