What is Software Engineering?
What is Software?
- Software is not just the programs, but also associated documentation and configuration data (to operate the program) needed to make the programs operate correctly.
- A Software system consists of
1. Number of separate programs
2. Configuration files used to setup the programs
3. System documentation – describes the structure of the system
4. User documentation – explains how to use the system - Software Products may be
1. Generic Developed to be sold to a range of different customers
E.g. Operating Systems(Microsoft Windows) Database Management Systems(Oracle) Banking Software
2. Bespoke Developed for a single customer according to their specification
Programs Vs Software Products
Program
- Small
- Single developer
- Small in size
- Limited Functionality
- Single user (author)
- Simple user interface
- Sparse documentation
- No user manual
- Ad hoc development
Software Product
- Large
- Team of developers
- Multiple users (customer)
- Complex user interfaces
- Detailed documentation
- User manual
- Systematic development
What is Software Engineering?
- Software engineering is an engineering discipline, concerned with all aspects of software production from early stages of system specification through maintaining the system.
- Engineering discipline – make things work by applying theories, methods and tools where appropriate and also try to find solutions to problems when there’s no suitable theories/methods.
- All aspects of software production – not just technical,
but project management and development of tools,
methods and theories to support S/W production.
- Software engineers should adopt a systematic
and organized approach to their work and use
appropriate tools and techniques depending on
the problem to be solved, the development
constraints and the resources available.
- 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.
IEEE Standard 610.12-1990, 1993.
Developing a Program
- Analyze the problem
- Develop a solution
- Code the solution
- Test and Debug
What about a Real Software?
- There will be a real user (Customer) who would need to use the software.
- You have to find out what the customer wants (Requirements Gathering)
- Analyze the problem
- Develop a solution (Design)
- Code the solution
- Test and Debug
- Maintenance
Note : In addition in the beginning there can be a Feasibility Study.
Characteristics of Software Engineering
- Software Engineering deals with team-based production of large software systems:
- No single person has complete knowledge of all the
details of a software engineering project.
- Software Engineering borrows from:
- Computer Science & Information Technology
- Electrical & Computer Engineering Mathematics & Physics
- Business & Management
- Psychology & Sociology
- Modern engineering is based on the systematic collection of past experience:
- methodologies; techniques; guidelines.
- It involves trade offs between alternatives:
- A pragmatic approach to cost-effectiveness;
- A rigorous approach to quality and safety!
- It uses a variety of quantitative techniques
- with a sound theoretical basis:
- Yet many SE techniques are just rules of thumb.
Featured articles
Wynn casino opens in Las Vegas - FilmfileEurope
ReplyDeleteWynn's first septcasino hotel casino in Las Vegas since opening its doors in 1996, Wynn Las Vegas is the https://deccasino.com/review/merit-casino/ first 1등 사이트 hotel on the Strip to offer such a filmfileeurope.com large selection of poormansguidetocasinogambling