软件工程

、软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。

  • 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
软件工程_第1张图片
Quality in the Context of the Business Environment
  • Section 5 Development Team
    ---Peoples involved in Software Development


    Communication System
软件工程_第2张图片
Development Team (Member)
  • 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

你可能感兴趣的:(软件工程)