1. Introduction: Software
Software is a set of instructions to acquire inputs and
to manipulate them to produce the desired output in
terms of functions and performance as determined by
the user of the software.
It also includes a set of documents, such as the
software manual, meant for users to understand the
software system.
2. Classes of software
Two Classes:
Generic and Customised
Generic software is designed for a broad customer market whose
requirements are very common, fairly stable and well understood by the
software engineer.
Customised products are those that are developed for a customer where
domain, environment and requirements being unique to that customer
cannot be satisfied by generic products.
3. What is Good Software
Attributes of Good Software:-
> Maintainability
> Dependability
> Efficiency
> Usability
4. Software Characteristics
Software does not wear out
Software is developed or engineered, it is not
manufactured in the classical Sense
Reusability of components
5. Types of software
System Software
Business software
Design/Engineering/ Scientific Software
Embedded Software
Artificial Intelligence Software
6. SOFTWARE: A CRISIS ON THE
HORIZON
The word crisis is defined in Webster's Dictionary as “a
turning point in the course of anything; decisive or crucial
time, stage or event.”
Reasons of software Crisis:
Lack of communication between software developers and
users.
Project management problem.
High optimistic estimates regarding software
development time and cost.
7. Software Engineering
Software engineering is defined as a discipline that addresses the
following aspects of the software and its development.
Achieve customer satisfaction
ensure on-time delivery
Be developed within the budgeted cost,
provide ease of maintenance to meet changing requirements.
9. 1. The project has access to a customer who can give
inputs and feedback
2. A prototype is built to quickly demonstrate to the
customer what the product would look like.
3. Only minimal functionality of the actual product is
provided during the prototyping phase.
4. The prototype is built with the clear intent of throwing
it away after the requirements are signed off by the
user.
5. A customer and a software developer virtually sit
together side-by-side.
6. Once the requirements are obtained they are
documented. These requirements become the basis for
the development of the actual system.
10. Advantages
1. The main advantage of this model is responsiveness
to change.
2. This model also has the potential for identifying
more of the “implied requirements” and converting
them into “stated requirements”.
Disadvantages ????
11. The situations where this model is not
applicable
1. When there are multiple customers
2. When the eventual customer is unknown.
12. Rapid application development (RAD) model
The RAD model combines the features of the waterfall model
prototyping model.
1. The customer and the s/w development team agree on the
decomposition of the eventual software product into manageable
and small units. They priorities these units so that: (i) each unit
can be developed in a short time.
(ii) each unit can be built using one or all of the
components in the previous units.
2. The development is carried out using modeling tools and CASE tools
so that the requirements are captured effectively and translated
successfully into a software product.
3. Just like in the prototyping model, the customer is kept in the loop
continually so that the changes and feedback are reflected in a
timely and accurate manner.
13.
14. Advantages
1. Responsiveness to change and ability to capture
user requirements effectively.
2.A major advantage that RAD offers over
prototyping is that because the prototype is not
thrown away, the application turnaround time is
much shorter.
3. Re-use the existing proven components.
Disadvantages???
15. The situations where this model is not
applicable
1. Little or no customer involvement .
2. When CASE and similar tools are not available.