Lesson 1
Lesson 1
Software design
2004.
Specific Objectives:
A good software product will be judged by what it offers and how well it delivers the task.
The characteristics of a good software is grouped into 3 categories:
Operational
Transitional
Maintenance
Operational: This describes how well a software is able to deliver in terms of its operations. It
can be measured on:
Budget
Usability
Efficiency
Correctness
Functionality
Dependability
Security
Safety
Software
Characteristics of a good
Software
No “wear
Easy to Unskilled
and tear”-
modify people
Unlike
can create
hardware
one
Categories of Software
The various categories of software are
1. System software: System software is a collection of programs written to service
other programs
2. Application software
3. Engineering and scientific software: Engineering and scientific software have been
characterized by "number crunching" algorithms.
4. Embedded software: resides in read-only memory and is used to control products
and systems for the consumer and industrial markets.
5. Product-line software
6. Web-applications
7. Artificial intelligence software: Artificial intelligence (AI) software makes use of
nonnumeric algorithms to solve complex problems that are not amenable to
computation or straightforward analysis
Software
Legacy Software
Legacy software are older programs that are developed decades
ago.
The quality of legacy software is poor because it has inextensible
design, convoluted code, poor and nonexistent documentation, test
cases and results that are not achieved.
As time passes legacy systems evolve due to following reasons:
The software must be adapted to meet the needs of new computing
environment or technology.
The software must be enhanced to implement new business
requirements.
The software must be extended to make it interoperable with more
modern systems or database.
The software must be rearchitected to make it viable within a network
environment.
Software
Roles of Software
The dual role of Software is as follows:
constraints
Software Engineering - Definition of Software
Engineering
What is Software Engineering?
IEEE:
(1) The application of a systematic, disciplined,
quantifiable approach to the development,
operation, maintenance of software; that is, the
application of engineering to software.
(2) The study of approaches as in (1).
How do
We need End product
we
Teamwork MUST be
divide
and Satisfactory
the
co-
work and
ordination
still
Software Engineering - Definition of Software
Engineering
Cost, Time and Other Constraints:
Resources are limited – Money, Time, etc.
Therefore,