At the end of this session, you will be able to:
- ě Explain the concept of software analysis
- ě Explain the concept of software design
- ě Describe the types of analysis and design techniques
You must be aware that the Requirement Specifications Document acts as the exit criteria of the Requirement Stage. This same document is the entry criteria for the Analysis Stage. Functional Specifications Document is the exit criteria for the Analysis Stage and in turn the entry criteria for the Design Stage. In the Design Stage, the Detailed Design Document is the most important document that gets created and is used as the basis of Code Construction in the Code Construction Stage.
Analysis and Design are one of the foremost stages in software development cycle.
Analysis is the software engineering task that bridges the gap between the software requirements stage and software design. The objective of software analysis is to state precisely what the system will do to provide a solution to the client's need at a functional level. This is captured in the Functional Specification Document.
Design creates a detailed Design Document that acts as the "blue-print" for the developers or the team that will construct the code to create the system. The typical elements of software design include Program Architectural Design, Data Design, Interface Design, and Component Design.
To understand each element of Software Design, here is an example of a Travel Booking System called the SmartBook System. This is to be used by the Travel Agents to book Airline Tickets or Railway Tickets.
This is the overall Architecture Design for the SmartBook System. It defines the relationship between the structural elements of the Software Application being built. Architecture for the system needs to be built as part of Software Analysis and Design Stage. The Data Design specifies the data structures needed to implement the solution. It includes the Database or File System Space Requirements. It also includes Table or Layout details, such as Table or Record name, Column or Field names and description,Type of Column or Field the length, Default values, Edit or validation conditions associated to a Column or Field, and Details of all Keys or Indexes of a Table or Record. These are the interface designs which describe how the software communicates within itself, with the systems that interoperate with it and the Humans who use it. Interface Design for the system needs to be built as part of Software Analysis and Design Stage. The Component level design transforms the structural elements of software into procedural description of the Software Component. It includes Program specifications, that is, the Functions or Algorithms that define the procedural design.
To begin with, the software requirement specifications document is put in place. The business need is the basis for creation of the software requirement specification document. This activity is completed in the Requirements Stage of an Application Development Project.
Each of the Requirements is then decomposed further to create the Software Functional Specifications. The Functional Specifications express the system to be built in a language that designers of the system understand. The problem presented by the Requirements is analyzed using Analysis Models. Creation of the Analysis Models and the Functional Specifications often take place simultaneously.
Here, you can see an Analysis Model that is used to express the problem. Such a diagram is called a Data Flow Diagram, in which each bubble indicates the activity taking place. The box on the other hand, is used to denote an external source or sink of information. The parallel bars denote data store or file while an arc is used to denote the flow of components among the other 3 components.
Look closely at the examples here. There are two ways you can visualize the building or construction of a house. Builder may appoint a bricklayer to create the walls and carpenter to create windows, fit windows into the walls etc and slowly create the house. Alternatively, the builder may fit the standard models of doors, windows, roofs, walls, and rooms available in the market to create the house. This is how most buildings get built now.
There are two approaches to creating the Design Specifications in a project. One is the Structured Analysis and Design Technique that can be traced to the 1970s. The other is a newer concept called the Object Oriented approach which as a concept was developed from 1990s.
SSAD makes a heavy use of functional decomposition. System behavior takes a secondary role here. Like in the case of building a house brick by brick.
The object-oriented technique on the other hand focuses on the system behavior. In the recent years OOAD technique has become very popular with software engineers. Objects represent a sample expected system behavior and they are called upon to function as a whole. Re-usable and common objects help in achieving greater modularity and are manageable from the project management perspective.
In this session, you have learned that:
- In analysis and design the focus is on "HOW to Build" a solution and not on "WHAT to Build"
- Analysis is the software engineering stage that bridges the gap between the software requirements stage and software design stage
- Functional Analysis Document is the most important document that is created in this phase
- In the software design stage, detailed design document is the most important document that is created
- This acts as a "blue-print" to be used by the eventual implementers of the system
- The elements of software design are Program architectural design, Data design, Interface design, Component design.
- There are two ways in which software engineers visualize "HOW to build" a solution during analysis and design stage, namely, Structured Analysis and Design (SSAD) technique and object-oriented technique
Next Article:- Code Construction In Software Engineering