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!