UNIT-I: Overview of System Analysis and Design
Systems Development Life Cycle; concept and Models: requirements determination, logical design, physical
design, test planning, implementation, planning and performance evaluation, communication, interviewing,
presentation skills; group dynamics; risk and feasibility analysis; group based approaches, JAD, structured
walkthroughs, and design and code reviews; prototyping; database design software quality metrics;
application categories software package evaluation and acquisition.
UNIT-II: Information Requirement Analysis
Process modeling with physical logical data flow diagrams, data modeling with logical entity relationship
diagrams.
UNIT-III: Developing a Proposal
Feasibility study and cost estimation. System Design: Design of input and control, design of output and
control, file design/database design, process, user interface design, prototyping; software constructors;
documentation.
UNIT-IV: Application Development Methodologies and CASE tools
Information engineering structured system analysis and design, and object-oriented methodologies for
application development data modeling, process modeling, user interface design, and prototyping, use of
computer-aided software engineering (CASE) tools in the analysis design and implementation of information
systems.
UNIT-V: Design and Implementation on OO Platform
Object-oriented analysis and design through object modeling technique, object modeling, dynamic modeling,
and functional object-oriented design and object-oriented programming systems for implementation,
object-oriented databases.
UNIT-VI: Managerial Issues in Software Projects
Introduction to software markets; planning of software projects, size and cost estimates; project
scheduling; measurement of software quality and productivity, ISO and capability maturity models for
organizational growth.
UNIT-I: Overview of System Analysis and Design
1. Systems Development Life Cycle (SDLC)
The SDLC is a structured approach for developing information systems through phases including planning,
analysis, design, implementation, and maintenance.
- Planning: Identify objectives and resources.
- Analysis: Gather and interpret system requirements.
- Design: Logical and physical designs are created.
- Implementation: System is developed and deployed.
- Maintenance: Ongoing support and updates.
2. Models of SDLC
Different approaches to SDLC:
- Waterfall Model: Sequential process.
- Iterative Model: Repeats steps through loops.
- Agile Model: Flexible and collaborative.
- Spiral Model: Combines prototyping and risk analysis.
3. Requirements Determination
Process of identifying what the system must do, usually through interviews, observations, and
documentation study.
4. Logical and Physical Design
Logical Design: Abstract model showing *what* the system will do.
Physical Design: Concrete model showing *how* the system will work.
Logical: Entity-Relationship Diagram
Physical: SQL Tables with indexes and keys
5. Test Planning and Implementation
Defining test strategies and implementing the final system with integration and user training.
6. Planning and Performance Evaluation
System performance is evaluated for speed, accuracy, scalability, and user satisfaction.
7. Communication and Interviewing Skills
Essential for understanding user needs and expectations.
- Interviewing: One-on-one or group questioning.
- Presentation: Clear and structured information delivery.
8. Group Dynamics
Study of group behavior and interaction during the development process. Team collaboration and effective
roles are vital.
9. Risk and Feasibility Analysis
Examines the likelihood of project success based on technical, economic, legal, operational, and schedule
feasibility.
Example:
Economic Feasibility = Benefit - Cost > 0? → Proceed
10. Group-Based Approaches
- JAD (Joint Application Development): Structured group session for collecting
requirements.
- Structured Walkthroughs: Step-by-step peer review of logic/design/code.
- Design and Code Reviews: Detailed checks for errors and improvements.
11. Prototyping
Creating early working models to refine system features and gather feedback.
Example:
Developing a mock login page to test user experience before actual coding.
12. Database Design
Designing schemas, tables, relationships, and ensuring normalization.
Student(ID, Name, DeptID)
Dept(DeptID, DeptName)
13. Software Quality Metrics
Used to assess software quality in terms of reliability, efficiency, maintainability, and usability.
14. Application Categories and Software Package Evaluation
Applications are categorized as transaction processing, decision support, office automation, etc.
Evaluation involves comparing based on features, cost, and support.
15. Software Acquisition
Process of identifying, evaluating, and purchasing off-the-shelf or custom software solutions.
Steps:
1. Identify needs
2. Search vendors
3. Compare features
4. Cost-benefit analysis
5. Vendor selection
UNIT-II: Information Requirement Analysis
1. Information Requirement Analysis
This is the process of identifying, collecting, and analyzing the data requirements of a system. It
ensures that the system meets the informational needs of stakeholders.
- Helps understand what data is needed.
- Focuses on what users do, not how the system should do it.
2. Process Modeling
Process modeling is the graphical representation of business processes that capture, manipulate, store,
and distribute data between a system and its environment.
Physical Data Flow Diagram (DFD)
Shows how the system is currently implemented, including actual devices, people, and file systems used.
Example:
- Physical DFD may include:
→ "Customer fills form manually"
→ "Data is entered into Excel by clerk"
Logical Data Flow Diagram (DFD)
Focuses on what the system must do, describing processes, data flows, and data stores without specifying
technology.
Example:
- Logical DFD:
→ Process: "Receive Customer Order"
→ Data Store: "Customer Database"
→ Data Flow: "Order Details"
DFD Levels:
- Level 0: Context Diagram – shows entire system as a single process
- Level 1: Breaks down main process into subprocesses
- Level 2+: Further detail each subprocess
3. Data Modeling
Data modeling is the process of creating a structure for how data will be stored, organized, and
accessed.
4. Logical Entity-Relationship Diagram (ERD)
Logical ERDs describe data entities, their attributes, and the relationships between them without
considering physical implementation (e.g., databases).
Entities:
- Student(Student_ID, Name, Course)
- Course(Course_ID, Title, Credits)
Relationship:
- Enrolls(Student_ID → Course_ID)
- Entity: Real-world object (e.g., Student, Course)
- Attribute: Property of entity (e.g., Name, Title)
- Relationship: Link between entities (e.g., Student "enrolls" in Course)
Logical ERD ignores:
- Primary keys and indexes
- Data types
- Storage details
5. Importance in System Design
Both process modeling and data modeling help in:
- Visualizing system requirements clearly
- Improving communication between developers and stakeholders
- Reducing errors during implementation
UNIT-III: Developing a Proposal & System Design
1. Developing a Proposal
Developing a proposal is the process of planning and presenting a detailed report for a proposed system,
including its feasibility, costs, and benefits. It ensures that stakeholders understand and approve the
system idea before development begins.
- Provides a structured outline of the system to be developed.
- Acts as a contract between developers and stakeholders.
2. Feasibility Study
This is an analysis to determine if a system is practical and beneficial to develop. It includes several
types of feasibility checks:
- Technical Feasibility: Can the current technology support the system?
- Economic Feasibility: Is it cost-effective and within budget?
- Operational Feasibility: Will users accept and use the system?
- Legal Feasibility: Does it comply with laws and regulations?
- Schedule Feasibility: Can the system be developed on time?
3. Cost Estimation
Cost estimation involves predicting the resources and expenses required for system development.
- Includes cost of software, hardware, labor, and training.
- Helps in budgeting and financial planning.
Example:
- Software Licenses: ₹50,000
- Developer Salary: ₹2,00,000
- Hardware Costs: ₹75,000
- Total Estimated Cost: ₹3,25,000
4. System Design
System design involves creating a blueprint of the system’s components and interactions. It covers how
the system will work and how users will interact with it.
4.1 Design of Input and Control
Focuses on how data enters the system and how it's validated or secured.
- Design user-friendly input forms.
- Implement input validation and error handling.
- Control mechanisms to avoid invalid or duplicate data.
4.2 Design of Output and Control
Involves determining the format, content, and method of delivering system outputs.
- Report generation, screen displays, notifications.
- Output accuracy and security.
4.3 File Design / Database Design
Describes how data will be stored, retrieved, and managed.
- Design tables, keys, indexes, and relationships.
- Normalize data to reduce redundancy.
Example:
Table: Users(UserID, Username, Email, Password)
Table: Orders(OrderID, UserID, Product, Quantity)
4.4 Process Design
Defines how data will be processed by the system.
- Flow of data between processes.
- Automation of repetitive tasks.
4.5 User Interface Design
Focuses on designing screens, navigation, and layout for user interaction.
- Must be user-friendly and visually appealing.
- Accessible on multiple devices.
4.6 Prototyping
Prototyping is the creation of an early working model of the system to gather user feedback and refine
requirements.
- Helps in visualizing the system before full development.
- Supports iterative development and improvements.
5. Software Constructors
These are tools or environments used to build software components.
- Examples: IDEs (Visual Studio, Eclipse), code generators, compilers.
- Enhance productivity and accuracy.
6. Documentation
Documentation refers to all written details about the system for developers, users, and maintainers.
- User Manual: Helps end users operate the system.
- Technical Documentation: Supports maintenance and future upgrades.
- Design Documents: Detail system architecture and design choices.
UNIT-IV: Application Development Methodologies and CASE Tools
1. Application Development Methodologies
Application development methodologies define the structured approach used to design, develop, and
maintain software systems. Each methodology offers unique advantages depending on the project type and
complexity.
1.1 Information Engineering
A data-centric and business-driven methodology that focuses on strategic planning and enterprise-wide
system development.
- Emphasizes data modeling before process modeling.
- Supports enterprise-level integration.
- Useful for large-scale, long-term system planning.
1.2 Structured System Analysis and Design
A traditional method that uses step-by-step procedures to analyze and design systems.
- Uses tools like Data Flow Diagrams (DFDs), structure charts, and decision tables.
- Emphasizes modularity and top-down design.
- Suitable for well-defined, predictable systems.
1.3 Object-Oriented Methodologies
Focuses on objects that encapsulate data and behavior. Useful for complex, reusable, and scalable
systems.
- Key concepts: Class, Object, Inheritance, Encapsulation, Polymorphism.
- Promotes reuse and maintainability.
- Common tools: UML (Unified Modeling Language).
2. Data Modeling
Data modeling is the process of defining the structure of data for a system. It includes entities,
attributes, and relationships.
Example:
Entities:
- Student(Student_ID, Name)
- Course(Course_ID, Title)
Relationship:
- Enrolls(Student_ID → Course_ID)
3. Process Modeling
Process modeling involves representing workflows and processes to understand how data flows through a
system.
- Uses tools like DFDs, flowcharts, and activity diagrams.
- Helps in breaking down complex processes into manageable parts.
4. User Interface Design
This involves creating layouts and navigation paths that allow users to interact with the system
effectively and efficiently.
- Focuses on usability, accessibility, and aesthetics.
- Ensures intuitive navigation and responsive design.
5. Prototyping
Prototyping is the creation of a preliminary version of the system to validate requirements and gather
user feedback.
- Can be low-fidelity (sketches) or high-fidelity (working models).
- Reduces development risk and improves user satisfaction.
6. CASE Tools (Computer-Aided Software Engineering)
CASE tools are software applications that assist in various stages of software development.
- Support analysis, design, coding, testing, and maintenance.
- Improve productivity, accuracy, and documentation.
- Examples: Rational Rose, Enterprise Architect, StarUML.
Types of CASE Tools:
- Upper CASE Tools: Support early SDLC phases like requirements and design (e.g.,
DFD, ERD tools).
- Lower CASE Tools: Support implementation and testing (e.g., code generators,
debuggers).
- Integrated CASE Tools: Provide end-to-end support for the entire development cycle.
UNIT-V: Design and Implementation on OO Platform
1. Object-Oriented Analysis and Design (OOAD)
OOAD is a methodology that uses object modeling to analyze and design systems based on real-world
entities.
- Emphasizes modularity, reusability, and encapsulation.
- Aligns system design closely with real-world problems.
2. Object Modeling Technique (OMT)
OMT is used to represent system components as objects with attributes and behaviors.
- Describes "what" the system contains using object diagrams.
- Identifies key objects and their relationships.
Example:
Class: Car
Attributes: model, color, engine_type
Methods: start(), stop(), accelerate()
3. Dynamic Modeling
Describes the behavior of objects over time, focusing on object interactions and states.
- Includes state diagrams and sequence diagrams.
- Helps model system logic and flow of control.
4. Functional Object-Oriented Design
This step focuses on translating object models into implementable functional components.
- Designs how objects interact to perform system operations.
- Defines method functionalities and class hierarchies.
5. Object-Oriented Programming Systems (OOPS)
OOPS implements designs through object-oriented programming languages like Java, C++, or Python.
- Uses classes and objects for implementation.
- Supports concepts like inheritance, polymorphism, and abstraction.
6. Object-Oriented Databases
These databases store data as objects rather than tables.
- Ideal for applications with complex data types.
- Examples: db4o, ObjectDB, Versant.
UNIT-VI: Managerial Issues in Software Projects
1. Introduction to Software Markets
The software market involves development, distribution, and support of software products and services.
- Includes system software, application software, and embedded software.
- Growing demand for cloud, mobile, and AI-based applications.
2. Planning of Software Projects
Planning ensures the successful execution of a software project within time and budget.
- Defines objectives, scope, resources, and risk assessments.
- Develops timelines and assigns responsibilities.
3. Size and Cost Estimates
Project size and cost estimation help predict the effort and resources needed for development.
- Techniques: Function Point Analysis, Use Case Points, COCOMO model.
- Helps in budget and resource planning.
4. Project Scheduling
Scheduling organizes project tasks into a timeline with milestones and deadlines.
- Tools: Gantt charts, PERT charts, Work Breakdown Structure (WBS).
- Ensures project progress tracking and timely delivery.
5. Measurement of Software Quality and Productivity
Metrics are used to assess the quality and efficiency of software and development processes.
- Quality Metrics: Defect density, reliability, usability.
- Productivity Metrics: Lines of code/hour, function points/hour.
6. ISO and Capability Maturity Models (CMM)
Standard models ensure consistent quality and continuous process improvement in software organizations.
- ISO Standards: ISO 9001 (Quality Management), ISO/IEC 12207 (Software Life Cycle).
- CMM: Ranks maturity in 5 levels – Initial, Repeatable, Defined, Managed,
Optimizing.