DESIGNING A SOFTWARE
Designing a Software:
1) Gathering Requirements
2) Analyzing the Requirements
3) Designing the Software
4) Implementation
5) Maintenance
6) Testing
1) Gathering Requirements
2) Analyzing the Requirements
3) Designing the Software
4) Implementation
5) Maintenance
6) Testing
1) Gathering Requirements:
a) End User/Clients
b) Analyzing similar existing projects
c) Expert Consultations
Methods to elicit Data:
a) Questionaire
b) Brainstorming sessions
c) Discussions
2) Analyzing the Requirements:
a) Understanding the requirements (with usecase diagrams)
b) Creating SRS (Software Requirements Specifications)
c) Risk Analysis
Technical Details: (Technology to be used)
i) S/W (Programming Language, Database, Database connectivity)ii) H/W (Server/Machine Required, Processors Required, Project Required H/w)
iii) Human Resources for each module
-> Project / Technical Managers
-> Team / Technical Leads
-> Engineers / Technical & Database Architects
-> Non- Technical Staff
iv) Billing
v) Time Duration
vi) How to Mitigate Risk
3) Designing the Software: (HLD and LLD):
a) High Level Design (HLD):
i) Modularizing the Requirements
[required modules - interaction between modules]
ii) For each Module:
a) GUI - Presentation Layer
b) BL - Business Layer (Business Objects)
c) DAL - Data Access Layer
(for accessing data - data handling)
d) DB / Files (DataBase / Files)
iii) Preparing Flow Charts
iv) Designing Class - Data Members and Member Functions
v) Interaction between Classes
vi) GUI - How many UIs - Each UI Objects
a) GUI-BL - Communication
b) BL-DAL - Communication
c) DAL-DB - Communication
vii) DataBase Design:
a) Number of Tables
b) Candidate Key (PrimaryKey) for each table
c) Interaction between table (PrimaryKey - ForeignKey)
d) Constraints Required
e) Deciding Tablespace, partitioning
f) DDL / DML / TCL / DCL - (Requirements, Data Handling, Maintenance)
g) Procedures, Triggers Required
b) Low Level Design (LLD):
i) Each Module:
Each Class - Each Function's details (input/output)
Documenting the Functionality [FRS - Functional Requirement Specifications]
ii) For each use case:
Sequence of events (with sequence diagrams)
Unified Modelling Language (UML):
1) Use Case
2) Class
3) Object
4) Package
5) Sequence
6) State_Chart
v) Time Duration
vi) How to Mitigate Risk
3) Designing the Software: (HLD and LLD):
a) High Level Design (HLD):
i) Modularizing the Requirements
[required modules - interaction between modules]
ii) For each Module:
a) GUI - Presentation Layer
b) BL - Business Layer (Business Objects)
c) DAL - Data Access Layer
(for accessing data - data handling)
d) DB / Files (DataBase / Files)
iii) Preparing Flow Charts
iv) Designing Class - Data Members and Member Functions
v) Interaction between Classes
vi) GUI - How many UIs - Each UI Objects
a) GUI-BL - Communication
b) BL-DAL - Communication
c) DAL-DB - Communication
vii) DataBase Design:
a) Number of Tables
b) Candidate Key (PrimaryKey) for each table
c) Interaction between table (PrimaryKey - ForeignKey)
d) Constraints Required
e) Deciding Tablespace, partitioning
f) DDL / DML / TCL / DCL - (Requirements, Data Handling, Maintenance)
g) Procedures, Triggers Required
b) Low Level Design (LLD):
i) Each Module:
Each Class - Each Function's details (input/output)
Documenting the Functionality [FRS - Functional Requirement Specifications]
ii) For each use case:
Sequence of events (with sequence diagrams)
4) Implementation:
a) Creating Base Modules
b) Creating an executable S/W with base modules
c) Unit Testing / Functionality / Integration / Regression Testing
d) Creating Tasks
e) Executing Tasks
a) Creating Base Modules
b) Creating an executable S/W with base modules
c) Unit Testing / Functionality / Integration / Regression Testing
d) Creating Tasks
e) Executing Tasks
5) Maintenance:
a) Bug Fixing & Enhancements
b) Documentation
SRS - (Project Requirements)
FRS - (Functionality Requirements)
a) Bug Fixing & Enhancements
b) Documentation
SRS - (Project Requirements)
FRS - (Functionality Requirements)
6) Testing: (Test cases - Manual/Automation testing)
a) Functionality Testing
b) Module Testing
c) Integration Testing
d) System Testing
e) Regression Testing
a) Functionality Testing
b) Module Testing
c) Integration Testing
d) System Testing
e) Regression Testing
i) DAR - Defect Analysis Report
ii) RCA - Root Cause Analysis
iii) TM - Traceability Matrix
GUI - BL - DL - Db/Files
ii) RCA - Root Cause Analysis
iii) TM - Traceability Matrix
GUI - BL - DL - Db/Files
Unified Modelling Language (UML):
1) Use Case
2) Class
3) Object
4) Package
5) Sequence
6) State_Chart