90 likes | 444 Views
11425 Software Engineering. Introduction to Software Engineering February 12, 2012. Sommerville , I., Software Engineering, Pearson, 9 th Ed., 2010. Software Failure. There are still many reports of software projects going wrong and “software failures”
E N D
11425 Software Engineering Introduction to Software Engineering February 12, 2012 Sommerville, I., Software Engineering, Pearson, 9th Ed., 2010.
Software Failure • There are still many reports of software projects going wrong and “software failures” • Many of these so-called failures are a consequence of two factors: • Increasing demands: deliver quickly and build complex systems • Low expectations: many companies still do not use software engineering methods in their everyday work
Professional Software Development • Software engineering is intended to support professional software development, rather than individual programming • In software engineering, software includes: • The programs themselves • Associated documentation (system documentation, user documentation, and websites) • Configuration data
Two Kinds of Software Products • Generic products • Stand-alone systems that are sold on the open market to any customer (e.g. databases, drawing packages) • Vertical applications: generic products that are designed for some specific purpose (e.g. systems for dentists, accounting systems) • Customized (or bespoke) products • Systems that are commissioned by a particular customer (especially built for the customer)
Software Engineering • Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification through design and implementation to maintaining the system after it has gone into use • Engineering discipline • Select and apply theories, methods, and tools • Discover solutions to problems • Work to organizational and financial constraints • Get the results of the required quality within the schedule and budget
Software Engineering – cntd • Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification through design and implementation to maintaining the system after it has gone into use • All aspects of software production • Technical processes of software development • Software project management • Development of tools, methods, and theories to support software production
Why Software Engineering is Important? • We need it to be able to produce reliable and trustworthy systems economically and quickly • It is usually cheaper, in the long run, to use software engineering methods and techniques for software systems rather than just writer the programs as if it was a personal programming project • For most types of systems, the majority of costs are the costs of changing the software after it has gone into use
Software Process • A software process is a sequence of activities that leads to the production of a software product. • These activates are: • Software Specification • Engineers and customers define the software and constrains • Software Development • The software is designed and programmed • Software Validation • Checked to ensure that is what the customer required • Software Evolution • Modified to reflect changes by the customer or market