Se 5
Se 5
Se 5
Advantages:
The economics can result when general solutions can be reused.
It can be used to hide the low-level details of implementation and be
merged with top-down technique.
Characteristics of Good Software Design
1. Operational Characteristics:
These are functionality based factors and related to ‘external quality’ of software. Several
operational characteristics are:
a. Correctness:
A good software should be correctly implement all the functionalities of the system.
b. Understandability:
A good design of software should be easily understandable.
c. Efficiency:
A good software must be efficient. achieving maximum productivity with minimum wasted
effort or expense.
d. Reliability:
A good design of software should be reliable there not have any error or defect.
e. Security:
The software should not have any ill effect on data keep data secure from external threats.
2. Transitional characteristics:
a. Reusability:
If you able to use source code in software program that should be
change or up grade time to time according customer feedback.
b. Portability:
A good software design should be portable that means software
can be able to perform at any platforms.
3. Revision characteristics:
a. Maintainability: A good design should be easy to change. This is an
important requirement, since change requests usually keep coming from the
customer even after product release.
b. Flexibility: Good software design should be flexible.
d. Extensibility: Good software design should be able to increase the
functionality.
d. Scalability: Software should be scalable. i.e to handle the load from
the user.
e.g. one day a man goes to a restaurant and ordered the food and have
it the food was so tasty and he appreciated the work of the restaurant
and one day the same man went with khali to the same restaurant now
you can imagine khaliordered lots of foods here the food was not
enough and the service also goes slow.
Now you can say that the restaurant was not scalable because it
cannot manage the food and service of khali
e. Testability:
Software Design Concepts:
• Concepts are defined as a principal idea or invention that comes in
our mind or in thought to understand something.
• The software design concept simply means the idea or principle
behind the design.
• It describes how you plan to solve the problem of designing software,
the logic, or thinking behind how you will design software.
• It allows the software engineer to create the model of the system or
software or product that is to be developed or built.
• The software design concept provides a supporting and essential
structure or model for developing the right software.
• Abstraction- hide Irrelevant data
• Modularity- subdivide the system
• Architecture- design a structure of something
• Refinement- removes impurities
• Pattern- a repeated form
• Information Hiding- hide the information
• Refactoring- reconstruct something
What is Software Architecture Design?
• A software should be designed with consideration for the user, system and the
business goals.
• Software architecture considers a design for software to implement its structure
according to its rules and requirements.
• Software architecture manifests the earlier design decisions governing the system
to be built and can be analyzed.
• Software architecture considers the communication among stakeholders for
mutual understanding, negotiation and agreement.
• Software architecture constitutes transferable abstraction of a system and can
promote large scale reuse.
• It provides a common language in which different concerns can be expressed.
• Software architecture focuses on how the major elements and components within
an application are used or interacted within the application.
Goals of Software Architecture Design