UNIT1SE
UNIT1SE
UNIT1SE
Software Engineering
SYLLABUS
Introduction to Software Engineering: The evolving role of software, changing nature of software, software
myths. A Generic view of process: Software engineering- a layered technology, a process framework, the
capability maturity model integration (CMMI), process patterns, process assessment, personal and team
process models. Process models: The waterfall model, incremental process models, evolutionary process
models, the unified process. System models: Context models, behavioral models, data models, object models,
structured methods.
• Software Engineering is a framework for building software and is an engineering approach to software
development.
• Software programs can be developed without S/E principles and methodologies but they are
indispensable if we want to achieve good quality software in a cost effective manner.
• Software is defined as: Instructions + Data Structures + Documents
• Engineering is the branch of science and technology concerned with the design, building, and use of
engines, machines, and structures. It is the application of science, tools and methods to find cost
effective solution to simple and complex problems.
• According to the IEEE, SOFTWARE ENGINEERING is defined as a systematic, disciplined and quantifiable
approach for the development, operation and maintenance of software.
1|P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
This duality highlights software's critical functions in both transforming information and facilitating
technological infrastructure.
The changing nature of software includes various categories of software they are as follows:
1. System software
2. Application software
3. Engineering and scientific software
4. Embedded software
5. Legacy software
6. Web-applications
7. Artificial intelligence software
▪ System software-System software is a collection of programs written to service other programs
▪ Embedded software-- resides in read-only memory and is used to control products and systems for
the consumer and industrial markets.
▪ Artificial intelligence software- Artificial intelligence (AI) software makes use of nonnumeric
algorithms to solve complex problems that are not amenable to computation or straightforward
analysis
▪ Engineering and scientific software- Engineering and scientific software have been characterized by
"number crunching" algorithms.
▪ Legacy software- Legacy software are older programs that are developed decades ago. The quality
of legacy software is poor because it has inextensible design, convoluted code, poor and nonexistent
documentation, test cases and results that are not achieved.
Myths are widely held but false beliefs and views which propagate misinformation and confusion.
3 types of myth are associated with software:
1.Management myth
2.Customer myth
3.Practitioner's myth
➢ Management myths
▪ Myth(1)-the available standards and procedures for software are enough.
▪ Myth(2)-each organization feel that they have state-of-art software development tools since they
Have latest computer.
▪ Myth(3)-adding more programmers when the work is behind schedule can catch up.
▪ Myth(4)-outsourcing the software project to third party, we can relax and let that party build it.
➢ Customer myths
▪ Myth(1)- general statement of objective is enough to begin writing programs, the details can be
Filled in later.
▪ Myth(2)-software is easy to change because software is flexible
• Quality Focus
• Process
• Methods
• Tools
A process framework establishes the foundation for a complete software process, encompassing the following
components:
3|P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
❖ Umbrella Activities
▪Software Project Tracking and Control: Monitoring project progress and making adjustments.
▪Formal Technical Reviews: Conducting systematic assessments of software artifacts.
▪Software Quality Assurance (SQA): Ensuring quality standards are met.
▪Software Configuration Management: Managing changes in software.
▪Document Preparation and Production: Creating and maintaining project documentation.
▪Reusability Management: Encouraging the use of existing software components.
▪Measurement: Collecting and analyzing data to improve processes.
▪Risk Management: Identifying and mitigating potential risks.
❖ Task Sets
• Tasks, Milestones, Deliverables, SQA Points: Detailed activities, checkpoints, and quality assurance
metrics within each framework activity.
Purpose
• Used as a Basis for Process Models: Provides a structured approach to describing various process
models and their activities.
Conclusion
The process framework offers a generic view of engineering, complemented by umbrella activities that support
software development through consistent practices, quality assurance, and risk management.
7. what is the capability maturity model integration (CMMI)? (2-5 MARKS) (ASKED IN 2023 PAPER)
4|P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
Developed by the Software Engineering Institute (SEI), CMMI assesses the process model followed by an
organization and rates it across different levels of capability and maturity.
CMMI Models
1. Continuous Model
• Description: Allows organizations to select specific improvements that align with their business
objectives and minimize risk.
• Structure: Processes are described in two dimensions and assessed against specific goals and practices.
2. Staged Model
• Description: Provides a structured path for process improvement based on what has been found
effective in other organizations.
• Levels: Called maturity levels, they include:
o Level 1: Initial - Processes are unpredictable, poorly controlled, and reactive.
o Level 2: Managed - Processes are characterized for projects and often reactive.
o Level 3: Defined - Processes are characterized for the organization and are proactive; projects
tailor their processes from organizational standards.
o Level 4: Quantitatively Managed - Processes are measured and controlled quantitatively.
o Level 5: Optimized - Focuses on process improvement with quantitative feedback and innovative
techniques.
• Level 1: Initial
o Characteristics: Processes are unpredictable, poorly controlled, and reactive.
• Level 2: Managed
o Characteristics: Processes are characterized for projects and are often reactive.
• Level 3: Defined
o Characteristics: Processes are characterized for the organization and are proactive; projects tailor
their processes from organizational standards.
• Level 4: Quantitatively Managed
o Characteristics: Processes are measured and controlled quantitatively.
• Level 5: Optimized
o Characteristics: Focuses on continuous process improvement with quantitative feedback,
innovative ideas, and techniques.
5|P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
Conclusion
CMMI provides a structured framework for organizations to assess and improve their software engineering
processes, promoting efficiency, quality, and continuous improvement.
8.Explain Process Pattern and Process Assessment. (6MARKS) (ASKED IN 2023 PAPER)
Process Pattern
Definition: A process pattern is a structured template that defines a software development process. It
encompasses various elements to guide the development team through the stages of software development
effectively.
3. Types: Classifies the process pattern based on its application (e.g., development, testing, maintenance).
5. Stage Pattern: Defines the larger stages or phases of the process (e.g., requirements gathering, design,
implementation).
6. Phase Pattern: Further details the individual phases within each stage.
7. Initial Context: Describes the starting conditions or environment in which the process pattern is applied.
8. Problem: States the challenges or issues the process pattern aims to address.
9. Solution: Provides the recommended approach or solution to overcome the identified problems.
6|P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
10. Resulting Context: Specifies the expected outcomes or changes after applying the process pattern.
11. Related Patterns: Links to other relevant process patterns that may complement or interact with the current
one.
Purpose: Process patterns serve as standardized guides derived from industry best practices and previous
successful experiences. They help teams adopt structured and efficient approaches to software development,
improving consistency, quality, and productivity.
Process Assessment
Definition: Process assessment refers to the evaluation of a software development process to determine its
current state, strengths, weaknesses, and areas for improvement. It is a critical component of process
improvement initiatives within organizations.
1. Objective: The primary goal is not to assess the quality of the software itself but rather to assess the
effectiveness and maturity of the processes used to develop the software.
2. Methods: Various methods can be used for process assessment, such as formal assessments like Standard
CMMI Assessment Method for Process Improvement (SCAMPI), internal appraisals, or compliance assessments
against standards like SPICE (ISO/IEC 15504).
3. Focus Areas: Assessments typically focus on areas such as process capability, adherence to defined processes,
resource utilization, efficiency, and alignment with organizational goals.
4. Benefits: By identifying strengths and weaknesses, process assessments enable organizations to prioritize
improvement efforts, implement best practices, and achieve higher levels of process maturity and efficiency
over time.
Relation to CMMI: In the context of CMMI (Capability Maturity Model Integration), process assessments play
a crucial role in determining an organization's maturity level and guiding its journey towards higher maturity
levels. They provide valuable insights that inform targeted process improvement initiatives, ultimately leading
to enhanced software development capabilities and outcomes.
In summary, process patterns provide structured templates for software development processes, while process
assessments evaluate and improve these processes to enhance organizational maturity and efficiency. Both
concepts are integral to achieving consistent and high-quality software development practices within an
organization.
The Personal and Team Software Process (PSP and TSP) are methodologies developed by the Software
Engineering Institute (SEI) that focus on improving the individual and team performance in software
development.
7|P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
Objective: PSP aims to improve the personal software development practices of individual engineers. It provides
engineers with a structured framework to develop disciplined habits and improve their productivity and quality
of work.
Key Components
1. Measurement: Engineers track their time spent on various activities, defects found, and other metrics to
analyze their performance.
2. Process Improvement: Engineers analyze their own data to identify patterns, inefficiencies, and areas for
improvement in their personal software development process.
3. Quality Management: PSP emphasizes defect prevention and early detection through rigorous inspection and
testing practices.
Benefits: PSP helps individuals become more disciplined and efficient in their software development practices,
leading to improved quality, productivity, and reliability in their work.
Objective: TSP extends the principles of PSP to a team level, focusing on improving the effectiveness and
efficiency of software development teams.
Key Components:
1. Team Formation: Teams are organized into small, cross-functional units with defined roles and
responsibilities.
2. Planning and Tracking: Teams plan and track their work using data-driven techniques to manage schedules,
resources, and risks effectively.
3. Quality Management: Similar to PSP, TSP emphasizes rigorous quality management practices such as defect
prevention and continuous improvement.
Goals: TSP aims to enhance team collaboration, productivity, and the overall quality of software products. It
encourages teams to adopt behaviors and practices associated with high maturity levels (like CMMI level 5) to
achieve consistent and reliable outcomes.
Relationship to CMMI
Both PSP and TSP align with the Capability Maturity Model Integration (CMMI) framework, particularly in
fostering disciplined processes, continuous improvement, and adherence to quality standards. They provide
structured approaches to help organizations and individuals achieve higher maturity levels in software
development practices.
In summary, PSP focuses on individual software engineers' personal development, while TSP extends these
principles to improve team performance. Together, they contribute to building a culture of quality, efficiency,
and continuous improvement within software development organizations.
8|P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
PROCESS MODELS:
10.What is Process Model? Explain Waterfall Model with neat labelled diagram? (IMPORTANT 2023 MAY)
Process models in software engineering are templates that outline the steps and activities involved in
developing software. They provide a structured approach to managing the SDLC from inception to deployment.
Waterfall Model
❖ The Waterfall Model is a traditional, linear sequential approach to software development.
❖ It proceeds through predefined phases in a sequential manner: Requirements gathering, Planning,
Modeling, Construction (coding), Testing, Deployment, and Maintenance.
❖ Each phase must be completed before moving on to the next, and each phase output serves as input to the
next phase.
Advantages:
❖ Provides a structured approach, making it easier to manage and understand.
❖ Well-suited for projects where requirements are well-understood and unlikely to change.
Disadvantages:
❖ Real projects often face changes and iterations, which the Waterfall Model doesn't handle well.
❖ It requires detailed and stable requirements upfront, which can be challenging to achieve.
❖ It delays the availability of a working product until late in the development cycle.
2. System Design:
- Based on the requirements, the system architecture and design are developed.
9|P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
- This phase involves creating detailed specifications for the system’s hardware, software, and network
components.
3. Implementation (Coding):
- The actual coding or programming of the software begins based on the design specifications.
- Developers write and test the code to ensure it meets the requirements and design criteria.
4. Testing:
- Once the code is complete, it undergoes rigorous testing to identify defects or bugs.
- Testing includes unit testing (testing individual modules), integration testing (testing combined modules),
system testing (testing the entire system), and acceptance testing (ensuring the software meets user
requirements).
The Incremental Process Model is a software development approach that breaks down the development of a
system into smaller, manageable parts called increments. Each increment represents a subset of the final
system's functionality and is developed sequentially. Here's a detailed explanation based on the provided
information:
3. Development in Increments:
- Software development is divided into multiple increments, each of which goes through the phases of
Communication, Planning, Modeling, Construction, and Deployment.
- Each increment typically builds upon the previous one, adding new functionality or refining existing features.
Process Overview:
- Communication: Involves gathering and understanding requirements and expectations from stakeholders.
10 | P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
- Planning: Detailed planning is done for the current increment, including defining scope, resources, and
timelines.
- Modeling: In this phase, the system architecture and design are developed or refined based on the
requirements of the current increment.
- Construction: Actual coding and implementation of the software take place, focusing on delivering the
functionality defined for the increment.
- Deployment: The increment is deployed to the production environment or made available to users for
evaluation and feedback.
Incremental Releases:
- Increment 1: Focuses on delivering the core functionality or basic requirements of the system.
- Increment 2 and subsequent increments: Build upon the core product, adding more features or enhancing
existing functionality based on feedback and evaluation from previous increments.
✓ Iterative Improvement:
- After each increment is deployed, it undergoes evaluation by stakeholders, including customers and users.
- Based on feedback, plans are developed for subsequent increments to modify and improve the core product
to better meet the evolving needs of stakeholders.
✓ Benefits:
11 | P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
❖ Early Delivery and Feedback: Stakeholders get to see and interact with working software early in the project,
allowing for early feedback and validation.
❖ Flexibility and Adaptation: The model accommodates changes in requirements and technology as the
project progresses through iterations.
✓ Challenges:
❖ Integration Complexity: Ensuring that each increment integrates smoothly with existing functionality and
meets overall system requirements can be challenging.
❖ Management of Incremental Releases: Requires effective project management to plan, coordinate, and
prioritize increments based on evolving requirements and feedback.
In summary, the Incremental Process Model is a flexible and iterative approach to software development,
enabling early delivery of functional software and adaptation to changing requirements. It supports continuous
improvement and evolution of the software product through incremental releases until the complete product
is achieved.
The Incremental Model in software development involves breaking down the software development process
into smaller segments or increments.
The RAD Model is an incremental software development process model that emphasizes rapid development
and iteration cycles. Here’s a breakdown of its key characteristics and phases:
➢ Incremental and Component-Based Approach: Like the Waterfall Model, RAD uses a component-based
construction approach but with shorter development cycles.
➢ Short Development Cycle: RAD aims to create fully functional systems within a short span of time,
typically 60 to 90 days.
1. Business Modeling: Understanding and documenting the business processes and requirements.
2. Data Modeling: Designing the structure and organization of the data required by the system.
3. Process Modeling: Defining the system processes or workflows that need to be automated.
4. Construction: Involves the actual development of the software using reusable components and rapid
prototyping techniques.
12 | P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
5. Deployment: Integrating and delivering the system to the end-users or customer for feedback and
evaluation.
6. Feedback: Gathering feedback from users to refine and enhance the system in subsequent iterations.
➢ Speed: Rapid development cycles allow for quick iterations and delivery of working software.
➢ Customer Involvement: Intense customer involvement and feedback ensure the system meets user
needs effectively.
➢ Team Coordination: Requires multiple RAD teams working in parallel, which demands effective
coordination and communication.
➢ Technical Risks: Not suitable for projects with high technical risks or complex architectures.
➢ Customer Commitment: Requires strong commitment from both developers and customers for rapid
completion of activities.
In summary, while both the Incremental Model and RAD Model emphasize iterative development and customer
feedback, RAD specifically focuses on rapid development cycles and quick delivery of functional software. Each
model has its advantages and challenges, making them suitable for different types of projects based on their
requirements and constraints.
13 | P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
Evolutionary process models in software engineering recognize that software requirements often evolve over
time, making a linear path to a final product impractical. These models are iterative in nature, allowing for
flexibility and adaptation as the development process proceeds.
1. Prototyping Model:
Purpose: Develops a throwaway model (prototype) of the software to clarify requirements that are not well-
defined initially.
Process Steps:
➢ Requirement Gathering: Initial requirements are
gathered.
➢ Quick Design: A basic design is quickly formulated based
on known requirements.
➢ Build Prototype: A prototype is constructed to
demonstrate core functionalities.
➢ Evaluation by Customer: The prototype is evaluated by
stakeholders to refine and specify requirements further.
➢ Limitations: Potential drawbacks include overlooking long-
term maintainability and using inappropriate technologies
due to the focus on quick results.
2. Spiral Model:
Description: Combines elements of the classical Waterfall model and iterative Prototyping model with an
added focus on managing risks.
Phases:
➢ Risk Analysis: Initial risks are identified and
mitigated through iterative development cycles.
➢ Planning: Objectives, constraints, and
alternatives are defined.
➢ Engineering: Development and testing of the
software.
➢ Evaluation: Customer evaluation and feedback
drive further iterations.
➢ Advantages: Suitable for large-scale systems
where risks and uncertainties are significant,
promoting continuous refinement and risk
management.
In summary, evolutionary process models like Prototyping, Spiral, and Concurrent Development cater to the
dynamic nature of software development by allowing iterative refinement of requirements, managing risks, and
enhancing communication and efficiency across development phases. Each model offers unique advantages
suited to different project contexts and goals.
13b. Explain Spiral Model in detail with diagram. (8MARKS IMPORTANT 2023 QUESTION)
• In 1988 Barry Boehm published a software process model called “spiral model”.
• The spiral model is called a meta model since it encompasses all other life cycle models.
• The whole process is presented as a spiral with number of loops.
• Each loop represents a phase of software process.
• The innermost loop starting at the core of the spiral represent conceptual development, the next loop
with requirements definition and the next loop with system design and so on.
Phases:
1.Determine Objective Setting
• During the first quadrant, it is needed to identify the objectives of the phase.
• Examine the risks associated with these objectives.
2.Risk Assessment and Reduction
• A detailed analysis is carried out for each identified project risk.
• Steps are taken to reduce the risks. For example, if there is a risk that the requirements are
inappropriate, a prototype system may be developed.
3.Development and Validation
• Develop and validate the next level of the product after resolving the identified risks.
4.Review and Planning
• Review the results achieved so far with the
customer and plan the next iteration around the spiral.
• Progressively more complete version of the
software gets built with each iteration around the spiral.
Advantage:
• Software developers have to actively look for
possible risk and analyze it.
• It uses prototyping as a risk reduction mechanism.
• It enables developer to apply the prototyping
approach at any stage of the evolution of the
product.
• If the spiral model is properly applied should
reduce risks before they become problematic.
Disadvantage:
• It may be difficult to convince customers that the evolutionary process is controllable.
15 | P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
• It demands considerable risk assessment expertise and relies on the expertise for success.
The Unified Process (UP) is an iterative and incremental software development process framework that was
developed by Ivar Jacobson, Grady Booch, and James Rumbaugh. It integrates the best practices from their
respective Object-Oriented (OO) methodologies and is characterized by the use of the Unified Modeling
Language (UML) for specifying, visualizing, constructing, and documenting the artifacts of a software-intensive
system.
1. Inception Phase:
- Objective: Initiate the project, establish its scope, and identify potential risks.
- Activities: Requirements gathering, initial use-case model, risk assessment, and project planning.
- Work Products: Vision document, initial use-case model, initial risk assessment, project plan.
2. Elaboration Phase:
- Objective: Analyze the project's requirements and develop a robust architecture.
- Activities: Refine use-case model, develop analysis model, define software architecture, and create
preliminary design.
- Work Products: Use-case model, analysis model, software architecture description, preliminary design
model.
3. Construction Phase:
- Objective: Build the system based on the architecture and design developed in the previous phases.
- Activities: Design model refinement, implementation of system components, creation of test plans and
procedures, and execution of test cases.
- Work Products: Design model, system components, test plan and procedures, test cases.
4. Transition Phase:
- Objective: Deploy the system to end-users and gather feedback for future improvements.
- Activities: System deployment, user training, beta testing, and gathering user feedback.
- Work Products: Delivered software increment, beta test results, general user feedback.
- Iterative and Incremental: Emphasizes multiple iterations through phases to refine and improve the system
incrementally.
- Use of UML: Utilizes UML for modeling and documenting various aspects of the software system.
- Risk Management: Incorporates risk management throughout the process to mitigate potential issues early.
- Focused on Architecture: Places a strong emphasis on defining and refining the software architecture in the
early phases.
16 | P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
SYSTEM MODELS
15. what is System Model? Explain Context Model and Behaviour Model with examples? (6marks) (2023
paper)
System models are essential in the software development process as they provide abstractions of the system
being developed, aiding in understanding and analysis.
Context Model
A context model in software engineering provides a high-level architectural view of a system, illustrating its
subsystems and their interactions with the external environment. It helps stakeholders understand how the
system interacts with its surroundings without delving into internal details.
• Purpose:
➢ Identification of Subsystems: The primary goal of a context model is to identify and define the major
subsystems or components that constitute the entire system.
➢ External Interactions: It focuses on illustrating how these subsystems interact with each other and with
external entities or systems.
• Representation:
- Block Diagram: Typically represented as a block diagram where each subsystem is depicted as a labeled
rectangle or block.
- Connections: Arrows or lines between blocks indicate relationships or interactions between subsystems. These
connections show how data or control flows between different parts of the system.
Consider an Automated Teller Machine (ATM) system. The context model would identify the following major
subsystems and their interactions:
- Auto-teller System: Handles the core operations of cash withdrawals, balance inquiries, etc.
- Security System: Manages user authentication, PIN verification, and overall system security.
-Maintenance System: Monitors and manages hardware maintenance tasks such as cash replenishment, printer
maintenance, etc.
- Account Database: Stores and manages customer account information.
- Usage Database: Logs transaction history and usage patterns.
- Branch Accounting System: Manages financial transactions specific to each branch.
- Branch Counter System: Provides services to customers at physical branch counters.
• Advantages:
- Clarity: Provides a clear and concise overview of the system's external environment and major components.
- Communication: Facilitates communication among stakeholders by focusing on external interactions.
- Scope Definition: Helps in defining the scope of the system by identifying boundaries and interfaces with
external entities.
• Disadvantages:
- Limited Scope: It may overlook detailed internal interactions and dependencies between subsystems.
- External Focus: Primarily concerned with the system's external environment, potentially missing internal
17 | P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
complexities.
Behavioral Model
Behavioral models describe how a system operates and responds to stimuli, focusing on data flow and state
transitions.
There are two main types of behavioral models:
1)Data Flow Models
2)State Machine Models.
• Purpose:
- Data Transformation: Illustrates the flow of data through the system and how it is processed or transformed.
- Process Flow: Shows the sequence of processing steps that data undergoes within the system.
• Representation:
- Processes: Represented as labeled circles or ovals, indicating functions or transformations applied to data.
- Data Flow: Arrows depict the flow of data between processes, showing input, output, and intermediate data
flows.
- Data Stores: Represented as labeled squares or rectangles, indicating where data is stored or retrieved.
- Processes:
- Customer Registration
- Product Catalog Management
- Shopping Cart Management
- Order Processing
- Payment Processing
- Shipment Handling
- Data Flows:
- Customer Data Flow from Registration to Order Processing
- Product Data Flow from Catalog to Shopping Cart
- Order Data Flow from Cart to Payment and Shipment
- Data Stores:
- Customer Database
- Product Database
- Order Database
• Purpose:
- Behavioral States: Describe how the system responds to internal or external events by transitioning between
18 | P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
different states.
- Event-Driven Behavior: Shows transitions triggered by events or stimuli.
- Real-Time Systems: Particularly useful for modeling systems with distinct operational states.
• Representation:
- States: Represented as labeled circles or rectangles, indicating different system states.
- Transitions: Arrows indicate transitions between states triggered by events.
- Events: External stimuli or internal triggers that cause state transitions.
- States:
- Idle: Oven is waiting for user input.
- Cooking: Oven is actively cooking food.
- Paused: Cooking is temporarily paused.
-Finished: Cooking cycle is complete.
- Transitions:
- Start: Transition from Idle to Cooking when Start button is pressed.
- Pause: Transition from Cooking to Paused when Pause button is pressed.
- Resume: Transition from Paused back to Cooking when Resume button is pressed.
- End: Transition from Cooking to Finished when cooking timer expires.
• Disadvantages:
- Complexity: Can become complex for systems with many states or intricate event-driven behaviors.
- Maintenance: Updating state transitions and event triggers can be challenging as system requirements evolve.
In summary, context and behavioral models are essential tools in software engineering for understanding system
architecture, external interactions, data flow, and operational behavior. They provide valuable insights that aid
in system design, development, and maintenance.
DATA MODEL
A data model in software engineering describes the logical structure of data within a system. It provides a
blueprint for how data is organized, stored, and accessed. There are several types of data models, but the most
common approach is the Entity-Relationship (ER) model, which uses entities, attributes, and relationships to
represent data semantics.
• Purpose:
- Data Organization: Defines entities (objects, concepts) and their relationships to one another.
- Database Design: Forms the basis for relational database design.
- Data Integrity: Ensures data integrity by defining rules for relationships between entities.
• Key Concepts:
1. Entities: Represent real-world objects or concepts about which data is stored. Each entity is typically depicted
as a rectangle in diagrams.
2. Attributes: Characteristics or properties of entities. Attributes are represented as ovals connected to entities
in diagrams.
3. Relationships: Associations between entities. Relationships describe how entities are related to each other
and are represented by lines connecting entities.
Consider a library management system where we have the following entities and their relationships:
- Entities:
- Book: Attributes may include ISBN, title, author, publication year.
- Author: Attributes could be author ID, name, nationality.
- Member: Attributes might include member ID, name, contact information.
- Loan: Attributes could be loan ID, due date, fine amount.
- Relationships:
- Book-Author Relationship: Many-to-many relationship between books and authors (one book can have
multiple authors, and one author can write multiple books).
- Loan-Book Relationship: One-to-many relationship indicating that one book can be borrowed by multiple
members, but each loan is associated with one book.
• Advantages of ER Model:
- Clarity: Provides a clear visualization of data entities, attributes, and relationships.
- Database Design: Forms the foundation for designing relational databases, ensuring efficient data storage and
retrieval.
- Data Integrity: Helps enforce data integrity constraints through defined relationships.
• Disadvantages:
- Complexity: Models can become complex, especially in systems with numerous entities and relationships.
- Maintenance: Updating and maintaining large ER diagrams can be challenging as systems evolve.
OBJECT MODEL
An object model in software engineering represents a system from an object-oriented perspective. It focuses
on defining classes, objects, their attributes, methods, and relationships. Object models are particularly useful
for designing interactive systems and applications that emphasize modularity and reusability.
20 | P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
• Key Concepts:
1. Object: An instance of a class that encapsulates data (attributes) and behaviors (methods).
2. Class: A blueprint or template that defines the properties and behaviors common to a group of objects.
4. Methods: Functions or procedures that define the behavior of objects and how they interact with each other.
Consider an online shopping system where we have the following object model:
- Classes:
- Customer: Attributes include customer ID, name, email, and shopping cart.
- Product: Attributes may include product ID, name, price, and quantity in stock.
- Order: Attributes could be order ID, date, total amount, and status.
- Payment: Attributes might include payment ID, amount, payment method.
- Relationships:
- Customer-Order Relationship: One-to-many relationship indicating that one customer can place multiple
orders.
- Order-Product Relationship: Many-to-many relationship indicating that one order can contain multiple
products, and one product can be part of multiple orders.
- Order-Payment Relationship: One-to-one relationship indicating that one order is associated with one
payment.
• Disadvantages:
- Complexity: Object models can become complex, especially in systems with intricate class hierarchies and
relationships.
- Learning Curve: Requires a good understanding of object-oriented principles, which can be challenging for
beginners.
- Performance Overhead: Object-oriented systems may incur performance overhead due to dynamic dispatch
and object allocation.
STRUCTURED MODEL
A structured model in software engineering focuses on describing the system's processes or activities and their
interrelationships. It emphasizes the flow of control and data through a system, often represented using
21 | P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
• Purpose:
- Process Flow: Illustrates how data flows through a system and how it is processed.
- Functional Decomposition: Breaks down complex systems into smaller, manageable processes.
- Information Flow: Shows how information moves between different parts of the system.
• Components:
1. Processes: Represented as circles or ovals, indicating functions or activities that manipulate data.
2. Data Flows: Arrows represent the movement of data between processes, data stores, and external entities.
3. Data Stores: Represented as rectangles, indicating where data is stored within the system.
4. External Entities: Represent sources or destinations of data outside the system boundaries.
Consider an inventory management system where we have the following components in a DFD:
- Processes:
- Order Processing: Validates and processes incoming orders.
- Inventory Management: Updates inventory levels based on incoming and outgoing orders.
- Reporting: Generates reports on inventory status, sales, etc.
- Data Flows:
- Order Data Flow: From external entities (customers) to Order Processing.
- Inventory Update Data Flow: Between Order Processing, Inventory Management, and Data Stores.
- Data Stores:
- Inventory Database: Stores information about current stock levels, product details, etc.
- Order Database: Stores information about customer orders, order status, etc.
• Disadvantages:
- Scope Limitations: Focuses primarily on processes and data flow, potentially overlooking object-oriented or
behavioral aspects.
- Detail Level: May require additional diagrams or models to capture all aspects of a system, leading to
complexity.
- Evolution Challenges: Updating structured models as system requirements change can be cumbersome and
may require reevaluation.
22 | P a g e
Wordoc by Aishwarya U Software Engineering BCU-4th Sem
In summary, data models focus on the logical structure of data, object models emphasize object-oriented design
principles, and structured models describe system processes and data flow. Each type of model serves a specific
purpose in software engineering, helping to define, design, and analyze complex systems effectively.
23 | P a g e