Software Design Tecniquesass
Software Design Tecniquesass
Software design is the process which translates requirements into a detailed design
representation of a software system. It is argued that good software design is the
key to reliable and understandable software. Important techniques for software
design, including architectural and detailed design stages, are surveyed. To ensure
software quality, various design verification and validation techniques are
discussed. In addition, current software metrics and error-resistant software design
methodologies are considered. .
It is a plan for converting specification into executable codes. i.e the means a
problem description is turned to a problem solution.
1
Structural design may involve many levels of decomposition before components
are ready for algorithm design. All software are information-processing systems.
They accept data as input manipulate that data and provide data as input.
DATA DESIGN
Data design is the first design activity, which results in fewer complexes,
modular and efficient program structure. The information domain model
developed during analysis phase is transformed into data structures needed for
implementing the software. The data objects, attributes, and relationships depicted
in entity relationship diagrams and the information stored in data dictionary
provide a base for data design activity. During the data design process, data types
are specified along with the integrity rules required for the data. For specifying
and designing efficient data structures, some principles should be followed. These
principles are listed below.
1. The data structures needed for implementing the software as well-as the
operations that can be applied on them should be identified.
2
2. A data dictionary should be developed to depict how different data objects
interact with each other and what constraints are to be imposed on the
elements of data structure.
4. Only those modules that need to access data stored in a data structure
directly should be aware of the representation of the data structure.
5. A library containing the set of useful data structures along with the
operations that can be performed on them should be maintained.
The structure of data can be viewed at three levels, namely, program component
level, application level, and business level.
At the program component level, the design of data structures and the algorithms
required to manipulate them is necessary, if high-quality software is desired.
At the application level, it is crucial to convert the data model into a database so
that the specific business objectives of a system could be achieved.
The primary activity during data design is to select logical representations of data
objects (data structures). The selection process may include algorithmic analysis of
alternative structures in other to determine the most efficient design or may simply
3
involve the use of modules that provide the desired operations upon some
representation of an object.
The data design element produced a model of data that represent a high level
of abstraction.
This model is then more refined into more implementation specific
representation which is processed by the computer based system.
The structure of data is the most important part of the software design.
4
SOFTWARE PROCESS
5
WATERFALL MODEL
In the waterfall model, you must plan and schedule all of the activities before
starting working on them (plan-driven process).
Plan-driven process is a process where all the activities are planned first, and the
progress is measured against the plan. While the agile process, planning is
incremental and it’s easier to change the process to reflect requirement changes.
6
SPIRAL MODEL
The spiral model is a risk-driven where the process is represented as spiral rather
than a sequence of activities.
It was designed to include the best features from the waterfall and prototyping
models, and introduces a new component; risk-assessment.
Each loop (from review till service — see figure below) in the spiral represents a
phase. Thus the first loop might be concerned with system feasibility, the next loop
might be concerned with the requirements definition, the next loop with system
design, and so on.
AGILE
7
FLOW
Flow-Design has its roots in many existing methods and paradigms but does not
simply rehash them. It’s a pragmatic mixture to bring to your mind and to your
fingertips what works.
8
Transportation of data files, using various transport formats, including
secure
Specification of task work-flows
Notification of transactions and formats via reports
It shows how data enters and leaves the system, what changes the information, and
where data is stored.
9
REFERENCES
www.jamesreserve.edu.
Hierons, R. M.; Bogdanov, K.; Bowen, J. P.; Cleaveland, R.; Derrick, J.; Dick, J.;
Gheorghe, M.; Harman, M.; Kapoor, K.; Krause, P.; Lüttgen, G.; Simons,
A. J. H.; Vilkomir, S. A.; Woodward, M. R.; Zedan, H. (2009). "Using
formal specifications to support testing". ACM Computing Surveys. 41 (2):
1. CiteSeerX 10.1.1.144.3320. doi:10.1145/1459352.1459354.
W. Durant and A. Durant, The Story of Civilization, Vols. I–XI. Simon and
Shuster, 1954.
10