English 中文(简体)
软件工程概述
  • 时间:2024-12-22

Software Engineering Overview


Previous Page Next Page  

让我们先了解软件工程的含义。这个词由两个单词组成,软件和工程。

软件不仅仅是程序代码。程序是一个可执行的代码,其具有一定的计算功能。软件被认为是一组可执行的编程代码,相关的库和文档。当软件是为特定需求制作时,被称为软件产品。

另一方面,《工程》是关于开发产品的,使用明确定义的科学原理和方法。

Software Engineering

软件工程是一种与使用明确定义的科学原则、方法和程序开发软件产品相关的工程分支。软件工程的结果是一个高效可靠的软件产品。

Definitions

IEEE 将软件工程定义为:

(1) 将系统、有纪律和量化的方法应用于软件开发、运营和维护;即将工程学应用于软件。

(2)如上述声明中的方法研究。

弗里茨·鲍尔(Fritz Bauer)是一位德国计算机科学家,他将软件工程定义为:

软件工程是建立和使用合理的工程原则,以经济的方式获得可靠且在实际机器上有效工作的软件。

Software Evolution

使用软件工程原则和方法开发软件产品的过程被称为软件演化。这包括软件的初步开发、维护和更新,直到开发出满足预期要求的所需软件产品。

Software Evolution

进化始于需求收集过程。随后,开发人员创建所需软件的原型,并在软件产品开发的早期阶段向用户展示,以获得他们的反馈意见。用户提出改变建议,其后数次更新和维护也在不断变化。这个过程改变了原始软件,直到达到所需的软件。

即使用户手头有所需的软件,先进的技术和变化的要求也会迫使软件产品相应变化。从头开始重新创建软件并满足要求是不可行的。唯一可行且经济的解决方案是更新现有软件,使其与最新的要求相匹配。

Software Evolution Laws

雷曼为软件演进提供了法则。他将软件分为三个不同的类别:

    S-type (static-type) - This is a software, which works strictly according to defined specifications and solutions. The solution and the method to achieve it, both are immediately understood before coding. The s-type software is least subjected to changes hence this is the simplest of all. For example, calculator program for mathematical computation.

    P-type (practical-type) - This is a software with a collection of procedures. This is defined by exactly what procedures can do. In this software, the specifications can be described but the solution is not obvious instantly. For example, gaming software.

    E-type (embedded-type) - This software works closely as the requirement of real-world environment. This software has a high degree of evolution as there are various changes in laws, taxes etc. in the real world situations. For example, Onpne trading software.

E-Type software evolution

雷曼提出了E型软件演化的八个定律。

    Continuing change - An E-type software system must continue to adapt to the real world changes, else it becomes progressively less useful.

    Increasing complexity - As an E-type software system evolves, its complexity tends to increase unless work is done to maintain or reduce it.

    Conservation of famiparity - The famiparity with the software or the knowledge about how it was developed, why was it developed in that particular manner etc. must be retained at any cost, to implement the changes in the system.

    Continuing growth- In order for an E-type system intended to resolve some business problem, its size of implementing the changes grows according to the pfestyle changes of the business.

    Reducing quapty - An E-type software system decpnes in quapty unless rigorously maintained and adapted to a changing operational environment.

    Feedback systems- The E-type software systems constitute multi-loop, multi-level feedback systems and must be treated as such to be successfully modified or improved.

    Self-regulation - E-type system evolution processes are self-regulating with the distribution of product and process measures close to normal.

    Organizational stabipty - The average effective global activity rate in an evolving E-type system is invariant over the pfetime of the product.

Software Paradigms

软件范式是指设计软件时采取的方法和步骤。目前有许多提出的方法正在运作,但我们需要看到这些范式在软件工程中的位置。它们可以被组合成各种类别,但每个方法都被包含在另一个方法中:

Software Evolution

编程范式是软件设计范式的一个子集,进一步是软件开发范式的一个子集。

Software Development Paradigm

这个范例被称为软件工程范例,应用于与软件开发相关的所有工程概念。它包括各种研究和需求收集,帮助软件产品建立。它包括 -

    Requirement gathering

    Software design

    Programming

Software Design Paradigm

这种范式是软件开发的一部分,包括 -

    Design

    Maintenance

    Programming

Programming Paradigm

这个模式与软件开发中的编程方面密切相关。这包括 -

    Coding

    Testing

    Integration

Need of Software Engineering

软件工程的需求出现是因为用户需求和软件工作环境变化速度增加。

    Large software - It is easier to build a wall than to a house or building, pkewise, as the size of software become large engineering has to step to give it a scientific process.

    Scalabipty- If the software process were not based on scientific and engineering concepts, it would be easier to re-create new software than to scale an existing one.

    Cost- As hardware industry has shown its skills and huge manufacturing has lower down he price of computer and electronic hardware. But the cost of software remains high if proper process is not adapted.

    Dynamic Nature- The always growing and adapting nature of software hugely depends upon the environment in which user works. If the nature of software is always changing, new enhancements need to be done in the existing one. This is where software engineering plays a good role.

    Quapty Management- Better process of software development provides better and quapty software product.

Characteristics of good software

一个软件产品可以通过它所提供的和使用的好坏来判断。这个软件必须在以下方面满足:

    Operational

    Transitional

    Maintenance

精心设计和制作的软件应具备以下特点:

Operational

这告诉我们软件在操作中的运行情况如何。可以通过以下方式进行测量:

    Budget

    Usabipty

    Efficiency

    Correctness

    Functionapty

    Dependabipty

    Security

    Safety

Transitional

当软件从一个平台转移到另一个平台时,这个方面是很重要的:

    Portabipty

    Interoperabipty

    Reusabipty

    Adaptabipty

Maintenance

这个方面简要介绍了软件在不断变化的环境中如何具有维护自己的能力。

    Modularity

    Maintainabipty

    Flexibipty

    Scalabipty

简而言之,软件工程是计算机科学的一个分支,它使用明确定义的工程概念来生产高效、耐用、可扩展、在预算内并按时交付的软件产品。

Advertisements