Introduction
Welcome to the OpenSeminar in Software Engineering!
The Institute of Electrical and Electronics Engineers defines software engineering as "the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software." [IEEE Standard 610-1990].
The goal
of software engineers is to create practical software systems that have social and/or economic value using a systematic
software development process. The software development process transforms a user's needs into software, and this process can
integrate a subset of the following practices: requirements engineering, system analysis, architecture, design, coding, integration,
design and code reviews, testing, maintenance, project management, and configuration management. Software engineers choose
an appropriate subset of these practices that best fit the parameters of the software they are developing.
Members of the software industry face many unique challenges during development of a software application. Software is a tractable, not physical medium, which provides limitless opportunities to model a bounded world. Due to the tractability of software, requirements can change frequently during the course of the project, which can lead to uncertainty. Scheduling problems can arise due to schedule optimism and schedule pressure. Software engineers are optimistic on the time it will take to develop a project, and therefore will make aggressive commitments. Schedule pressure comes from these aggressive commitments and the feeling that a project hinges on specific feature. Software engineering deals with the entire process of creating a software product, and the best practices involved with development.
Previous
