The design process work in iterative manner. After each iteration the quality of involving design needs to be accessed with series of technical reviews. following are the three characters are suggested by mclaughlin (MCG91) that can serve as a guideline for evaluation of good design.
1. The design must cover all the explicit requirement as a specified in the requirement models and must also support the explicit requirement as desired by the stack holders. e. g if you are designing a battery operated toy then one of the explicit requirement is to provide for the battery slot within the toy body where as the implicit requirement is providing an interface for charging the battery. this is so because without charging the interface the battery slot is of to use the toy.
2. The design must support for documentation must be readable and an understandable guide for the code developers and testers who would be then providing technical support o the software.
3. The design artifacts all put together must provide a complete picture of the software focusing on the data functional and behavioral domain from the implementation point of view.
each of the above characteristics from the goal for a good design. There should be some guideline as to how to achieve this characteristics. In order to evaluate the quality of a design the software team must establish technical criteria for good design
The following guideline can be followed to establish good quality criteria :
1. A design should support an architecture that is a part of recognizable or standard architecture style and pattern is made up of components with good design. characteristics can be implemented in an evolutionary manner thereby facilitating coding and testing.
2. a design should define the software as a set of modules or subsystem that are logically interconnected to each other.
3. A design should provide a distinct representation of data interface and components.
4. A design should depict the data structure that are appropriate for class implementation drawn from the known data pattern.
5, A design should also depict the all known components along with their functional characteristics , and also define their degree of interrelation ship with the other component system.
\6. The design should exhibit the interface that the component will use to provide their services and get services from the external environments.
7. A design should be obtained in a iterative manner driven by the requirement obtained during requirement analysis phase.
8. A design should depicted using notation that depicts its meaning.
QUALITY ATTRIBUTES :
Hewlett - packard(Gra87) developed a set of attributes with (acronym FURPS) that is the target for overall software design.
1/ Functionality is accessed by evaluating the generality of the services that are provided by the software and the security of aver all system.
2. Usability is evaluated by considering the aver all feature consistency and documentation.
3. Reliability factors and software defines the extent to which the system can continue to work inspite of failure. it is checked by measuring the frequency and the severity of failure of accuracy of output result the mean-time -to -failure (MTTP)and the ability to recover a failure.
4. Performance measured by a factor like processing speed response time throughput to recover from a failure.
5. Supportability refers to the ability of the design to support for maintenance testability, compatibility and configurability.
it should be understand that all the quality attribute need not me of equal weightage while designing a software application it depends on the requirement of software application. like an application may stress more on reliability whereas another one way give more weightage to performance or functionality. regardless of which attribute the application focus on which this quality attributes must be considered during its design phase.
DESIGN PROCESS :
The software design work in an iterative manner and translate the requirement into a blueprint for construction the software. The blueprint present a high level abstraction of software.
Further iteration in design process leads to frequent refinement thereby providing design to a lower level of abstraction or in a much detailed manner. All these refinement can be traced back to the requirement but the connection is more delicate. This is so because the higher view of the system whereas the design phase provide a mire detailed architecture of required models.
SOFTWARE REQUIREMENT SPECIFICATION(SRS):
it a document produced as result of requirement elicitation SRS basically describe what functionalities that the proposed software should provide that is should do it does it does not focus on how to achieve the specified functionality an error in srs results into error in final product.
Characteristics of SRS
1. correct :
every requirement specified in SRS shows something required from the software.
2. Complete :
All functional expected from the software should be mentioned in the SRS it is very important and difficult to achieve.
3.clear/ unambiguous ;
every requirement specified in SRS should be clear to understand it should not lead to any ambiguity.
4. verifiable :.
there should some co-efficient process to check whether the final product meets every requirement specified in the SRS.
5. consistent :
There should not be requirement which are confliciting with each other in the SRS
6. Stability :
It refers to the chances of the requirement to changed in future.
ADVANTAGES OF SRS :
1: It creates a general agreement between the client and the developer on what facilities the developed software should produce.
2. It also provide specification for validating the final product. it helps both customer and developer to convince whether the final software developed is same as per the user's expectation.
3. High quality SRS results in high quality software.
4. A high quality SRS also reduce the development cost as fixing bugs in later step of development id very expensive.
0 comments:
Post a Comment