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.
Software Engineering has come to mean at least two different things in
our industry. First of all the term "software engineer" has generally
replaced the term "programmer". So, in that sense there is a tendency
to extrapolate in people's minds that Software Engineering is merely the
act of programming. Secondly, the term "Software Engineering" has
been used to describe "building of software systems which are so large
or so complex that they are built by a team or teams of engineers", as
was used in Fundamentals of Software Engineering. Yet, there is increasing evidence that many of the processes
we have been developing for large groups of engineers also apply to the
best practices of even individual engineers.
Software Engineering is intended to mean the best-practice processes
used to create and/or maintain software, whether for groups or individuals,
in attempt to rid ourselves of the usual haphazard methods that have plagued
the software industry. This would include subjects like Configuration
Management, Project Planning, Project Tracking, Software Quality Assurance,
Risk Management, Formal Inspections, etc.
No comments:
Post a Comment