IT 604(B) • Unit III

Software Requirements and Software Design

Complete RGPV exam-oriented notes on feasibility study, SRS, formal specifications, requirement analysis models, DFD, data dictionary, UI design, modularity, functional decomposition, object-oriented design, design patterns and implementation strategies.

Start Unit 3 Notes

1. Software Requirements and Specification 14 Marks

A software requirement is a statement describing a service, feature, behavior, constraint or quality that a software system must provide.

Types of Requirements

  • Functional requirements: Describe what the system must do.
  • Non-functional requirements: Describe quality attributes such as security, performance and reliability.
  • Domain requirements: Arise from the application domain, laws or business rules.
  • User requirements: High-level requirements written for customers and users.
  • System requirements: Detailed technical description for developers.

Requirements Engineering Process

Feasibility Study | v Requirement Elicitation | v Requirement Analysis | v Requirement Specification | v Requirement Validation | v Requirement Management

Importance

  • Creates a common understanding between customer and developer.
  • Provides the basis for design and testing.
  • Reduces rework and project failure.
  • Helps estimate cost, effort and schedule.
  • Controls project scope.

2. Feasibility Study 14 Marks

A feasibility study evaluates whether a proposed software project is practical, beneficial and achievable within available constraints.

Types of Feasibility

  • Technical feasibility: Availability of technology, tools and technical skills.
  • Economic feasibility: Whether expected benefits justify total cost.
  • Operational feasibility: Whether the system will work effectively in the organization.
  • Schedule feasibility: Whether the project can be completed within the required time.
  • Legal feasibility: Compliance with laws, licenses, contracts and data rules.
  • Organizational feasibility: Compatibility with business strategy and organizational structure.

Feasibility Study Steps

  1. Define the problem and project scope.
  2. Study the existing system.
  3. Identify alternative solutions.
  4. Estimate cost, benefits, risks and resources.
  5. Evaluate each feasibility dimension.
  6. Recommend the most suitable alternative.
  7. Prepare the feasibility report.
Output: The feasibility report usually contains project objectives, alternatives, cost-benefit analysis, risks, resource needs and a go/no-go recommendation.

3. Software Requirements Specification 14 Marks

SRS is a formal document that completely describes the functional and non-functional requirements of a software system.

Typical SRS Structure

  1. Introduction and purpose
  2. Scope of the system
  3. Definitions and references
  4. Overall description
  5. Functional requirements
  6. External interface requirements
  7. Performance requirements
  8. Security and safety requirements
  9. Design constraints
  10. Quality attributes
  11. Acceptance criteria

Characteristics of a Good SRS

  • Correct
  • Complete
  • Unambiguous
  • Consistent
  • Verifiable
  • Modifiable
  • Traceable
  • Prioritized
  • Understandable

Advantages

  • Acts as an agreement between customer and developer.
  • Supports design, coding and testing.
  • Reduces misunderstandings.
  • Helps estimate effort and cost.
  • Provides a basis for acceptance testing.

4. Informal and Formal Specifications 14 Marks

Informal Specification

An informal specification describes requirements using natural language, diagrams, tables and examples.

Advantages

  • Easy for customers to understand.
  • Quick and inexpensive to prepare.
  • Suitable for communication and early discussion.

Limitations

  • May be ambiguous.
  • May contain inconsistency and incompleteness.
  • Difficult to verify mathematically.

Formal Specification

A formal specification uses mathematical notation, logic and precisely defined rules to describe system behavior and properties.

Advantages

  • Precise and unambiguous.
  • Supports proof and verification.
  • Detects inconsistency early.
  • Useful for critical systems.

Limitations

  • Requires mathematical expertise.
  • Expensive for ordinary projects.
  • Difficult for non-technical customers to understand.
BasisInformal SpecificationFormal Specification
LanguageNatural language and diagramsMathematical notation
AmbiguityPossibleVery low
VerificationManual reviewFormal proof possible
UnderstandabilityHigh for customersRequires trained readers
UseGeneral applicationsSafety and mission-critical systems

5. Preconditions and Postconditions 7 Marks

A precondition is a condition that must be true before an operation starts. A postcondition is a condition that must be true after the operation finishes successfully.
Operation: withdraw(amount)
Precondition: amount > 0 and balance ≥ amount
Postcondition: new balance = old balance − amount

Benefits

  • Defines expected behavior precisely.
  • Clarifies responsibilities of caller and operation.
  • Supports testing and verification.
  • Helps detect invalid states.
  • Improves interface documentation.

6. Algebraic Specification 14 Marks

Algebraic specification describes an abstract data type by defining its operations and equations that specify the relationships among those operations.

Main Elements

  • Sorts: Types of data objects.
  • Operations: Functions that create or manipulate objects.
  • Axioms: Equations that define operation behavior.
Stack specification:

Sort: Stack, Element
Operations: create, push, pop, top, isEmpty

Axioms:
isEmpty(create) = true
isEmpty(push(S, x)) = false
top(push(S, x)) = x
pop(push(S, x)) = S

Advantages

  • Precise and implementation independent.
  • Suitable for abstract data types.
  • Supports consistency checking.
  • Can be used for formal verification.

Limitations

  • Difficult for state-oriented systems.
  • Requires mathematical understanding.
  • Large specifications may become complex.

7. Requirement Analysis Models 14 Marks

Requirement analysis models represent system data, functions, behavior and interactions in a structured visual or textual form.

Major Analysis Models

  • Scenario-based model: Use cases and user stories describe user-system interaction.
  • Data model: ER diagrams describe entities, attributes and relationships.
  • Flow-oriented model: DFD shows movement and transformation of data.
  • Class-based model: Classes, attributes, operations and relationships.
  • Behavioral model: State diagrams and sequence diagrams show dynamic behavior.
Requirements | +--> Scenario Model | +--> Data Model | +--> Flow Model | +--> Class Model | +--> Behavioral Model

Benefits

  • Improves understanding of complex requirements.
  • Detects missing and conflicting requirements.
  • Provides input for design.
  • Supports communication with stakeholders.
  • Creates traceability between requirements and design.

8. Specification and Design Tools 7 Marks

  • Data Flow Diagrams
  • Entity Relationship Diagrams
  • Data Dictionary
  • Decision Tables
  • Decision Trees
  • Structured English
  • Use Case Diagrams
  • Class Diagrams
  • Sequence Diagrams
  • State Transition Diagrams
  • Prototypes and wireframes
  • CASE tools
Selection of a tool depends on whether the analyst needs to model data, process flow, decision logic, system behavior, object structure or user interaction.

9. Software Design 14 Marks

Software design is the process of transforming requirements into an architectural and detailed plan for implementing the software system.

Design Activities

  • Architectural design
  • Data design
  • Interface design
  • Component-level design
  • Deployment design
Requirements Model | v Architectural Design | +--> Data Design +--> Interface Design +--> Component Design | v Implementation Model

Design Output

  • Architecture diagrams
  • Database schema
  • Module specifications
  • Interface descriptions
  • Algorithms and pseudocode
  • Class and sequence diagrams

10. Software Design Objectives 7 Marks

  • Correctly satisfy requirements.
  • Reduce complexity.
  • Improve maintainability.
  • Support reuse.
  • Achieve high performance.
  • Improve reliability and security.
  • Make testing easier.
  • Support future changes.
  • Produce understandable documentation.

Characteristics of Good Design

  • Simple
  • Modular
  • Consistent
  • Efficient
  • Traceable
  • Reusable
  • Testable
  • Flexible

11. Software Design Principles and Techniques 14 Marks

  • Abstraction: Focus on essential features and hide unnecessary details.
  • Information hiding: Hide internal implementation behind interfaces.
  • Modularity: Divide the system into manageable components.
  • Separation of concerns: Keep different responsibilities separate.
  • Stepwise refinement: Move from high-level design to detail gradually.
  • Functional independence: Create modules with high cohesion and low coupling.
  • Reuse: Use existing components and patterns.
  • Consistency: Follow uniform conventions.
  • Design for change: Isolate areas likely to change.
  • Design for testability: Make components observable and controllable.

12. User Interface Design 14 Marks

User interface design defines how users interact with software through screens, controls, navigation, messages and feedback.

UI Design Principles

  • User familiarity
  • Consistency
  • Minimum surprise
  • Recoverability
  • User guidance
  • Accessibility
  • Clear feedback
  • Error prevention
  • Simple navigation
  • Responsive design

UI Design Process

  1. Study users, tasks and environment.
  2. Identify interface requirements.
  3. Create navigation and information architecture.
  4. Prepare sketches, wireframes and prototypes.
  5. Define visual and interaction standards.
  6. Evaluate through usability testing.
  7. Refine the interface.

Common UI Errors

  • Inconsistent controls
  • Too much information on one screen
  • Poor color contrast
  • Unclear navigation
  • Technical error messages
  • No confirmation for destructive actions

13. Modularity 14 Marks

Modularity is the division of a software system into separate, manageable and logically independent modules.

Benefits

  • Reduces complexity.
  • Supports parallel development.
  • Simplifies testing and debugging.
  • Improves maintenance.
  • Supports reuse.
  • Limits the effect of changes.
  • Improves understandability.

Module Characteristics

  • Clear responsibility
  • Well-defined interface
  • Limited dependency
  • Information hiding
  • High internal relatedness
Complete System | +--> Module A | +--> Module B | +--> Module C | +--> Submodule C1 +--> Submodule C2

14. Cohesion and Coupling 14 Marks

Cohesion

Cohesion measures how strongly the elements inside a module are related. High cohesion is desirable.

From weakest to strongest:

  1. Coincidental cohesion
  2. Logical cohesion
  3. Temporal cohesion
  4. Procedural cohesion
  5. Communicational cohesion
  6. Sequential cohesion
  7. Functional cohesion

Coupling

Coupling measures the dependency between modules. Low coupling is desirable.

From strongest to weakest:

  1. Content coupling
  2. Common coupling
  3. External coupling
  4. Control coupling
  5. Stamp coupling
  6. Data coupling
  7. Message coupling
A good software design has high cohesion within modules and low coupling between modules.

15. Functional Decomposition 7 Marks

Functional decomposition divides a complex system function into smaller sub-functions until each function is simple enough to design and implement.
Online Shopping System | +-----+------+-------------+ | | | User Mgmt Product Mgmt Order Mgmt | +----+----+ | | Payment Delivery

Advantages

  • Reduces complexity.
  • Clarifies responsibilities.
  • Supports top-down design.
  • Helps assign development tasks.
  • Improves testing and documentation.

16. Data Flow Diagram 14 Marks

A Data Flow Diagram is a graphical model that shows how data enters a system, is processed, stored and transferred to external entities.

DFD Symbols

SymbolMeaningExample
RectangleExternal entityCustomer
Circle / Rounded processProcessValidate Order
ArrowData flowOrder Details
Open rectangle / parallel linesData storeOrder Database

Levels of DFD

  • Context Diagram: Entire system shown as one process.
  • Level 0 DFD: Main system processes and stores.
  • Level 1 DFD: Detailed decomposition of a Level 0 process.
  • Lower levels: Additional detail when required.
Order Customer --------------------> (1.0 Process Order) ^ | | v | Confirmation || Order File || | | +----------------------------------+

DFD Rules

  • Every process should have at least one input and one output.
  • Data cannot move directly from one external entity to another.
  • Data cannot move directly from one data store to another.
  • Data cannot move directly between external entity and data store.
  • Parent and child DFDs should be balanced.
  • Use meaningful process and data-flow names.

17. Data Dictionary 14 Marks

A data dictionary is a centralized collection of definitions describing data elements, data structures, data flows and data stores used in a system.

Contents

  • Data name and aliases
  • Description and meaning
  • Data type and length
  • Allowed values
  • Source and destination
  • Default value
  • Validation rules
  • Relationships with other data

Common Notation

NotationMeaning
=Consists of
+And
[ ]Choose one option
( )Optional element
{ }Repeated element
ORDER = ORDER_ID + ORDER_DATE + CUSTOMER_DETAILS + {ORDER_ITEM} + TOTAL_AMOUNT

Advantages

  • Improves data consistency.
  • Reduces duplicate definitions.
  • Supports database and program design.
  • Improves communication.
  • Helps impact analysis.

18. Object-Oriented Design 14 Marks

Object-oriented design represents a software system as interacting objects that combine data and behavior.

Basic Concepts

  • Object: Entity with state, behavior and identity.
  • Class: Blueprint for creating objects.
  • Encapsulation: Bundling data and methods together.
  • Abstraction: Showing essential features and hiding details.
  • Inheritance: Creating a new class from an existing class.
  • Polymorphism: One interface supporting multiple implementations.
  • Association: Relationship between classes.
  • Aggregation and composition: Whole-part relationships.

OOD Process

  1. Identify classes and objects.
  2. Define responsibilities and attributes.
  3. Define operations and interfaces.
  4. Identify relationships.
  5. Create interaction models.
  6. Organize classes into packages and subsystems.
  7. Refine design using patterns and principles.

Advantages

  • Promotes reuse.
  • Maps naturally to real-world entities.
  • Improves maintainability.
  • Supports extension.
  • Provides modular structure.

19. Design Patterns 14 Marks

A design pattern is a reusable general solution to a recurring software design problem in a particular context.

Pattern Categories

  • Creational patterns: Control object creation.
  • Structural patterns: Organize classes and objects.
  • Behavioral patterns: Define communication and responsibility.
CategoryPatternsMain Purpose
CreationalSingleton, Factory Method, BuilderFlexible object creation
StructuralAdapter, Decorator, FacadeOrganize classes and components
BehavioralObserver, Strategy, CommandControl object interaction

Example: Singleton

Ensures that a class has only one instance and provides a global access point to it.

Benefits

  • Uses proven design knowledge.
  • Improves communication among developers.
  • Supports flexible and reusable designs.
  • Reduces repeated design effort.

20. Top-Down and Bottom-Up Implementation 14 Marks

Top-Down Strategy

Top-down implementation starts with the main control module and gradually implements lower-level modules.
Main Module | +--> Module A | | | +--> A1 | +--> Module B | +--> B1

Advantages

  • Overall system structure is visible early.
  • Main control logic is tested first.
  • Supports stepwise refinement.

Limitation

Lower-level modules may be replaced temporarily by stubs.

Bottom-Up Strategy

Bottom-up implementation starts with low-level utility modules and combines them into higher-level subsystems.
Low-Level A1 Low-Level A2 \ / \ / Module A \ \ Main Module

Advantages

  • Utility modules are tested thoroughly.
  • Reusable components become available early.
  • No need for stubs.

Limitation

Overall system behavior appears late, and drivers may be needed for testing.

BasisTop-DownBottom-Up
Starting pointMain moduleLow-level modules
Temporary test componentStubsDrivers
System viewAvailable earlyAvailable later
Utility testingLaterEarly

21. Important Comparisons 14 Marks

Functional vs Non-Functional Requirements

BasisFunctionalNon-Functional
FocusWhat the system doesHow well the system performs
ExampleUser can place an orderOrder page loads within two seconds
TestingFunctional testingPerformance, security and usability testing

Structured Design vs Object-Oriented Design

BasisStructured DesignObject-Oriented Design
Main focusFunctions and data flowObjects and classes
Common toolsDFD, structure chartUML class and sequence diagrams
DecompositionFunctional decompositionObject decomposition
ReuseLimitedStrong support

Unit 3 Quick Revision

  • Requirements define services, constraints and quality expectations.
  • Feasibility study evaluates technical, economic, operational, schedule and legal practicality.
  • SRS is the complete requirement document.
  • A good SRS is correct, complete, consistent, unambiguous, verifiable and traceable.
  • Formal specification uses mathematics; informal specification uses natural language.
  • Preconditions apply before an operation; postconditions apply afterward.
  • Algebraic specification defines abstract data types using operations and axioms.
  • Analysis models represent scenarios, data, flow, classes and behavior.
  • Software design converts requirements into an implementation plan.
  • Good modular design has high cohesion and low coupling.
  • DFD shows movement and transformation of data.
  • Data dictionary defines data used in the system.
  • OOD models software as interacting objects and classes.
  • Design patterns provide reusable design solutions.
  • Top-down uses stubs; bottom-up uses drivers.

Important RGPV Exam Questions

Long Answer Questions

  1. Define software requirements and explain the requirements engineering process.
  2. Explain feasibility study and its different types.
  3. What is SRS? Explain its structure and characteristics.
  4. Compare informal and formal specifications.
  5. Explain preconditions and postconditions with an example.
  6. Explain algebraic specification using a stack example.
  7. Explain different requirement analysis models.
  8. Discuss specification and design tools.
  9. Define software design and explain major design activities.
  10. Explain software design objectives and principles.
  11. Explain user interface design principles and process.
  12. Define modularity and explain its advantages.
  13. Explain cohesion and coupling with their types.
  14. Explain functional decomposition with a diagram.
  15. Define DFD, explain its symbols, levels and rules.
  16. Explain data dictionary and its notation.
  17. Explain object-oriented design and its basic concepts.
  18. What are design patterns? Explain their categories.
  19. Compare top-down and bottom-up implementation strategies.
  20. Compare structured design and object-oriented design.

Short Answer Questions

  1. Define functional and non-functional requirements.
  2. What is technical feasibility?
  3. List the qualities of a good SRS.
  4. Define formal specification.
  5. What is a precondition?
  6. Define algebraic specification.
  7. What is a use case?
  8. Define software design.
  9. What is information hiding?
  10. Define cohesion and coupling.
  11. Name the four DFD symbols.
  12. What is balancing in DFD?
  13. Define data dictionary.
  14. What is object-oriented design?
  15. Define design pattern.
  16. What are stubs and drivers?
Exam Tip: SRS, feasibility, DFD, cohesion-coupling and OOD are major long-answer topics. Draw neat diagrams and add comparison tables wherever possible.

Download Study Resources

Unit 3 PDF

Printable Unit 3 notes will be available soon.

Coming Soon

DFD Diagrams

Exam-ready DFD examples will be available soon.

Coming Soon

Important Questions

Expected Unit 3 questions will be available soon.

Coming Soon

Frequently Asked Questions

SRS is a formal document containing complete functional and non-functional requirements of a software system.
Its main purpose is to decide whether the proposed project is technically, economically, operationally and practically achievable.
Formal specification uses precise mathematical notation, while informal specification uses natural language, tables and diagrams.
A good software design should have high cohesion and low coupling.
The four main DFD symbols represent external entities, processes, data flows and data stores.
Top-down integration commonly uses stubs for lower-level modules that are not yet implemented.
Bottom-up integration commonly uses drivers to call and test low-level modules.