What is Software?

소프트웨어는 프로그램(소스코드) 뿐만 아니라, 그와 관련된 문서와 데이터를 모두 총칭하는 말이다.


Why Software Project Fail?

Lack of SW mind - 소프트웨어의 개발 및 유지보수가 쉽고 빠르게 되는 줄 알고 있다.

Lack of appropriate SE skills - 실력 자체가 부족하다.

Insufficient software project management - 프로젝트 관리를 하지 않는다.


Why is Software Development So Difficult?

Communications - 개발자와 클라이언트의 의사소통이 어렵다.

Sequential nature of system

Development - 사람이 직접 개발하기 때문이다. (Manufacturing이 아니다)

Project characteristics - 프로젝트가 다양하다.

Characteristics of personnel - 사람들의 성격이 다양하다.

Management issues - 일정관리나 직원관리가 어렵다.


Costs of Software Development

Analysis & Design (40%) - 요구사항을 제대로 이해하기 위해서 많은 시간을 투자하게 된다.

Coding (20%) - 실제적인 코딩은 아주 적은 시간이 소요된다.

Testing (40%) - 에러를 최대한 줄여 a/s 비용을 최소화한다.


Development vs Maintenance

Maintenance (66%) - 유지보수 비용이 훨씬 많이 든다.

Development (33%)


Sources of Errors in Software Developments

Documentation & Others (35%) - 코드와 문서의 불일치 혹은 문서없음이 가장 많은 비중을 차지한다.

Coding (30%)

Logic design & Misunderstanding (20%)

Functionality & Misunderstanding (15%)


Programming Paradigm Evolution




항상 생산성과 품질을 향상시키기 위해 발전하고 있다.

요즘 트렌드는 Service-Oriented Architecture, Saas(Software as a Service), Open Source Market, Offshore Outsourcing, Cloud computing 등이 있다.


What is Software Enginnering

The application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software ( IEEE, 1991) - 응용 프로그램 개발에 있어서 체계적이고, 규범화하고 수치화하여 접근하는 방법을 말한다.

What you do when you have two or more people working on a project ( NRC Canada 1997)



소프트웨어 공학이 중요해진 이유.

소프트웨어 개발에 있어서 항상 시간과 노력 그리고 비용까지 전부 예측할 수 있어야 한다.

소프트웨어의 수요가 증가하고, 이제는 하드웨어 비용보다 소프트웨어 비용이 더 높아졌고, 중요해졌기 때문에 소프트웨어의 규모는 점점 커진다. 따라서 유지보수의 역할의 중요성이 커졌고, 소프트웨어 품질이 중요해졌다.


소프트웨어 공학의 최종목표는 소프트웨어 품질의 향상이다.




 
블로그 이미지

laboputer

소프트웨어를 전공하는 대학생

카테고리

전체보기 (24)
Programming with C# (15)
storage of informati.. (1)
Algorithm (1)
학교수업 (7)