소프트웨어공학 (Software Engineering)

Software engineering definition & necessary

깡또아빠 2022. 3. 15. 17:42

소프트웨어 공학의 정의는, 

소프트웨어의 품질 향상과 생산성을 향상 시키기 위하여 사용자의 요구사항을 체계적으로 분석하여 설계 및 구현, 구현된 시스템의 시험 그리고 유지보수 및 폐기 까지의 소프트웨어 전 수명주기 간에 걸쳐 이루어지는 체계적인 접근법을 말한다. 
(Summerville, in "Software Engineering")
소프트웨어 개발, 운영 및 유지보수에 체계적이고 훈련이 잘 된 정량적인 접근 방법을 적용하는 것으로, 소프트웨어 개발 및 관리를 공학적으로 접근하는 것을 말한다. 
(Definition by IEEE Computer Society)
Defines software engineering as the application of a systematic, disciplined, which is a computable approach for the development, operation, and maintenance of software.
(IEEE, in its standard 610.12-1990)
It as ‘the establishment and used standard engineering principles. It helps you to obtain, economically, software which is reliable and works efficiently on the real machines’.
(Fritz Bauer)
Software engineering, which involves, ‘the practical application of scientific knowledge to the creative design and building of computer programs. It also includes associated documentation needed for developing, operating, and maintaining them.’
(Boehm)

소프트웨어공학을 하는 것은 빨리 하기 위함이 아니고,

1. 주먹구구식이 아닌, 측정 불가능한 것이 아닌 체계적이고 정량적인 접근 방법을 적용하기 위함이다.

2. 품질과 생산성을 향상시키기 위함이다.

 

빨리 생산하는 것이 아닌, 품질 좋은 제품/소프트웨어를 적정시간안에 유사한 정도의 품질을 유지시키기 위해서 소프트웨어공학이 필요하다.

 

What was the Software Crisis?
It was in the late 1960s when many software projects failed.
Many software became over budget. Output was an unreliable software which is expensive to maintain.
Larger software was difficult and quite expensive to maintain.
Lots of software not able to satisfy the growing requirements of the customer.
Complexities of software projects increased whenever its hardware capability increased.
Demand for new software increased faster compared with the ability to generate new software.

 

보다 더 많은 소프트웨어공학이 왜 필요한가?

1. 납기 지연 (Late Delivery)

2. 예산 초과 (Over Budget)

3. 명세와 불일치 (Inconsistent with the specification)

4. 이해하기 어려움 (Difficult to understand)

5. 수정과 개선이 어려움 (Too costly to modify or improve)

 

Source: https://www.guru99.com/what-is-software-engineering.html

 

What is Software Engineering? Definition, Basics, Characteristics

What is Software Engineering? Software engineering is defined as a process of analyzing user requirements and then designing, building, and testing software application which will satisfy those requir

www.guru99.com

 

소프트웨어의 특성

소프트웨어의 특성

Source: https://www.geeksforgeeks.org/software-engineering-software-characteristics/

 

Software Engineering | Software Characteristics - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 

위 외에도 소프트웨어가 점점..

1. 시장이 빠르게 변화하면서 소프트웨어도 많이 변화가 필요하다. 

2. 규제 및 법제의 강화가 이뤄진다.

3. 시스템 규모/복잡성이 커지면서 소프트웨어도 다양한 서브 시스템의 집합이 되었다.

4. 소스 코드가 커진다.

 

그리고 소프트웨어를 개발하면서 변경을 피할 수 없다.

  • 개발하면서 변경
  • 개발 후에 변경
  • 환경도 변화
  • 그런데 변경하고 나서 Side effect 발생

 

소프트웨어공학이 왜 필요한지 알아보았습니다.

'소프트웨어공학 (Software Engineering)' 카테고리의 다른 글

SW Maintenance  (0) 2022.03.16
Software Process model  (0) 2022.03.16
Time to market, TTM  (0) 2022.03.15
Difference between Program and Software  (0) 2022.03.15
[Project] 프로젝트 이해  (0) 2022.02.13