CS3342 Lecture 1
Software
Software is a set of items or objects that form a "configuration" that includes:
- Programs (i.e., source code, executable code) which are instructions
- Documents (requirements, design document, test plan, user guide, etc.) ‘describe the program’
- Data Structure that ‘enable program’ to work.
Software is the Product that software engineers design and build
Software is Logical rather than physical
Software's dual role:
1. Software is a product
2. Software is a vehicle for delivering a product/Service
- Supports or directly provides system functionality (e.g., banking system, inventory control, CRM)
- Controls other programs (e.g., an operating system)
- Enable communications (e.g., networking software)
- Helps build other software (e.g., software tools)
Software is everywhere(The importance of software):
- The economies of ALL developed nations are dependent on software
- More and more systems (medical, weapon, home appliance) are software controlled
- Software engineering expenditure represents a significant fraction in all developed countries
Quality software:
1. It works - Develop programs that meet customer requirements using SW requirements specification
2. Can be read easily understood (help to maintain the code)
3. Can be modified
4. Complete in time and within budget
Software cost:
- Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware cost
- Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs could be several times of development costs
Software Engineer Practice
Software Engineering addresses the problem of developing and maintaining systems that are:
- large and complex (too large for a single person to comprehend)
- built by teams
- typically exist in many versions
- lasts many years
- undergo many changes during their lifetime
The IEEE Definition of Software Engineering
- “The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.”
Our definition…
- Software Engineering is the process of solving customers’ problems by the systematic development and evolution of large, high-quality software systems within cost, time and other constraints.
Software Professional
Software professionals are characterized
- by a relevant education and continued learning;
- they have a holistic or system life-cycle focus; t
- hey work to industry standards;
- and they have a balanced approach to technical risk.
Software Life Circle Activities