、软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。
- We consider quality software in the way as follow:
1)The Quality of the Product
2)The Quality of Process
3)Quality in the Context of the Business Environment
- Waterfall Model (Royce 1970) Waterfall like Sequence
Requirements Analysis --- System Design --- Program Design --- Coding --- Unit & Integration Test --- System Test --- Acceptance Test --- Operation & Maintenance
Chapter One --- Why Software Engineering?
- Section 1. Software: Instruction ; Data Structure ; Documents
-- Instructions (computer programs) that when executed provide desired function and performance;(Instruction --- Assembly Language --- High Level Language) --Data structures that enable the programs to adequately manipulate information; --Documents that describe the operation (Maintenance Manual ) and use (User Manual ) of the programs.
- Section 2. Software Crisis
--- 指在软件开发和维护过程中遇到的各种问题
1)对软件开发的成本和进度估计不准确
2)用户对“以完成的”软件系统不满意的现象经常发生
3)软件产品的质量不可靠
4)软件常常是不可维护的
5)软件通常没有适当的文档资料
6)软件成本在计算机系统总成本中所占比例逐年上升
7)软件开发生产率低
-
Section 3. Software Engineering
--- Engineering is the (1)analysis, (2)design, (3)construction, (4)verification, and (5)management of technical (or social) entities.
The application of a systematic disciplined, Measureable approach to the development, operation, and maintenance of software. That is, the application of engineering to software. 将系统化的、规范的、可度量的方法应用于软件开发、运行可维护的过程,即将工程化应用于软件中。
--- Solving Problem Steps
Step 1:Analyzing
Step 2:Synthesis
Conclude: Any problem-solving technique must have two parts.
Step 3: Solve Method
(1)Methods (Techniques):Formal procedure for produce some product.
(2)Tools:An instrument or automated system for accomplishing something in better way.
(3)Procedure: A combination of tools and techniques.
(4)Paradigms:A particular approach or philosophy .
- Section 4 What is good Software
--- The Quality of the Product-McCall’s Quality Model:
Correctness(Traceability、Completeness、Consistency)、Reliability、...... 、Reusability、Interoperability (Data commonality)
--- The Quality of Process
CMM (Capability Maturity Mode), ISO 9000. 1990s
-
Section 5 Development Team
---Peoples involved in Software Development
Communication System
-
Section 6 An engineering Approach
--- Building a House
*Determining and analyzing the requirements *Producing and documenting the overall design the house *Producing detailed specifications of the house *Identifying and designing the components *Building each component of the house *Testing each component of the house *Integrating the components making final modifications after the *residents have moved in *Continuing maintenance by the residents of the house
--- Building a System
Software Projects process in a way similar to the house-building process
*Requirements analysis and definition *System design *Program design *Writing the program (program implementation) *Unit testing *Integration Testing *System Testing *System delivery *Maintenance
-
Appendix 1 What This Chapter Means for You
Given a problem to solve-breaking it into its component, relationship, synthesize Understanding requirement and building solution Qualify from several different perspectives Abstraction Keep in mind the system boundary
-
Appendix 2 What This Chapter Means for Your Development Team
--A Development process that is appropriate to your team size, risk level, and application domain --Tools that are well-integrated and support the type of communication your project demands --Measurements and supporting tools to give you as much visibility and understanding as possible
-
Appendix 3 What This Chapter Means for Researchers
--The right levels of abstraction to make the problem easy to solve --The right measurements to make the essential nature of the problem and solution visible and helpful --An appropriate problem decomposition, where each subproblem is solvable --A common framework or notation to allow easy and effective tool integration, and to maximize communication among project participants.
-
Appendix 4 Term Project
It is impossible to learn software engineering without participating in development a software project with your colleagues.
-
Appendix 5 Key References
Software Faults and Failure --- Software Engineering Notes Ariane-5 Project --- Web Site: http://www.esrin.esa.it/htdocs/esa/ariane Software Design and Testing --- Leveson and Turner 1993 Software Quality --- IEEE Software, January, 1996 Piccadilly Television --- www.systemsguild.com
-
Appendix 6 Exercises
--Airlines Crash
Chapter Seven--- Writing the Programs
- Standards for Programming
- Guideline for Reuse
- Using Design to Frame the Code
- Internal and external Documentation
网友评论