Professional Documents
Culture Documents
Basic Concepts
Sources: 1. Software Engineering & Testing by Agarwal, Tayal, Gupta 2. Software Engineering by Pressman
November 8, 2011
Introduction to Software
Definition:
It is a set of instructions used to
Acquire inputs Manipulate inputs to produce output
Includes:
Instructions Data Structures Documents that describes the operation and use of the programs
IEEE: It is a collection of computer programs, procedure rules and associated documentation and data
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Importance of Software
It is the engine that drives business decision making Serves as the basis for modern scientific investigation and engineering problem-solving Embedded in all kinds of systems
November 9, 2011
Types of Software
2 Categories:
1. System Software. OS and all utilities that enables the computer the function 2. Application Software. Programs that do real work for users.
November 9, 2011
Classes of Software
1. Generic Software. Designed for broad customer market whose requirements are very common, fairly stable and well understood by the software engineer. - sold in the open market - there could be several competitors in the market
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Classes of Software
2. Customized Software. Developed for a customer where domain, environment and requirements are unique to that customer and cannot be satisfied by generic products
November 9, 2011
November 9, 2011
November 9, 2011
November 9, 2011
November 9, 2011
TOOLS
METHODOLOGIES
PRINCIPLES
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Characteristics
1. Most software is custom-built, rather than assembled from existing components. 2. Software is developed or engineered; it is not manufactured in the classical sense. 3. Software is flexible. 4. Software doesnt wear out.
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Curve
Failure Intensity
-Software becomes reliable over time -It becomes obsolete if the environment it was developed changes
Time
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Crisis
Crisis problems and causes encountered in the different stages of software development
November 9, 2011
Software Crisis
Problems
Schedules and cost estimates are often grossly inaccurate The Productivity of software people hasnt kept pace with the demand for their services The quality of the software is sometimes less than adequate With no solid indication of productivity, evaluation is impossible Communication between developer and customer is often poor Software maintenance tasks devour the majority of all software funds
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Crisis
Causes
The quality of the software is not good because most developers use historical data to develop the software If there is delay in any process or stage then scheduling does not match the actual timing Communications can break down because the special characteristics of software and problems associated with its development are misunderstood The software people responsible for tapping the potential often change when it is discussed and resist change when it is introduced
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Crisis
Problem of Compatibility Portability In documentation Piracy of software Coordination of work of different people Proper maintenance
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Crisis
Software cost is very high Hardware goes down Problem of different versions of software Problem of views Problem of bugs
November 9, 2011
Software Myths
If we get behind schedule, we can add more programmers and catch up If we decide to outsource the software product to a third party, we can just relax and let that firm build it. Project requirement continuously changes, but changes can be easily accommodated because software is flexible
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Myths
The only deliverable work product for a successful project is the working program Software with more features is a better software Once we write the program and get it to work, our job is done
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Myths
Until we get the program running, we have no way of assessing its quality Software engineering will make us create voluminous and unnecessary documentation and will invariably slow us down A general statement of objectives is sufficient to begin writing programs; we can fill in the details later
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Applications
Applications are grouped into 8 areas 1. System Software 2. Real-time Software 3. Embedded Software 4. Business Software 5. Personal Computer Software 6. Artificial Intelligence Software 7. Web-based Software 8. Engineering and Scientific Software
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Applications:
System Software
Used to run the system as an assistance to other software programs Ex: compilers, editors, utilities, OS components, drivers, interfaces
November 9, 2011
Software Applications:
Real-Time Software
Deals with the changing environment; it collects input, converts it to digital, control component that responds to the external environment and performs actions Monitors, controls and analyze realworld events as they occur Ex: Rocket launching, games, etc.
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Applications:
Embedded Software
Written to perform certain functions under control conditions and is further embedded into hardware as part of a large systems Also called intelligent software
November 9, 2011
Software Applications:
Business Software
Designed to process and drives business applications through on-line or real-time mode Ex: accounting packages, MIS, payroll, inventory
November 9, 2011
Software Applications:
November 9, 2011
Software Applications:
AI Software
Uses non-numeric algorithms to solve complex problems Ex: robotics, expert systems, pattern recognition, neural networks, theorem proving, game playing, signalprocessing software
November 9, 2011
Software Applications:
Web-Based Software
Included the languages by which web pages are processed
November 9, 2011
Software Applications:
Engineering and Scientific Software Written for specific applications using the principles and formulae of each field
November 9, 2011
November 9, 2011
Software Specifications
The functionality of the software and constraints on its operation must be defined
November 9, 2011
Software Development
Software that meets the specifications must be produced
November 9, 2011
Software Validation
The software must be validated to ensure that it does what the customer wants
November 9, 2011
Software Evolution
The software must evolve to meet changing customer needs
November 9, 2011
Some Terminologies
Deliverables and Milestones
Deliverables are generated during software development Milestones are the events that ascertain the status of the project
November 9, 2011
Some Terminologies
Product and Process
Product is what is delivered to the customer (deliverables) Process is the way we produce software
November 9, 2011
Some Terminologies
Measure, Metrics, Indicators
Measures provides a quantitative indication of amount, dimension, capacity, or size of a given attribute of a product Metrics are quantitative measure of the degree to which a system possesses a given attribute of a product Indicators are is a combination of metrics
November 9, 2011 Software Engineering, 2nd Sem. 2011-12
Software Product Developed by a group of engineers working as a team Usually large in size Large number of users Team of developers Good documentation support Systematic development Good user interface More functionality
Software Engineering, 2nd Sem. 2011-12