0% found this document useful (0 votes)
13 views4 pages

K24SW003

The document discusses the design and implementation phases of software development, emphasizing modular design and design patterns, with a case study on a Library Management System. It also covers UML diagrams, detailing their types and providing examples, as well as popular UML tools. Lastly, it contrasts software testing and quality assurance, outlining their focus, approach, and types of testing, along with common testing tools.

Uploaded by

naazahmed957
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views4 pages

K24SW003

The document discusses the design and implementation phases of software development, emphasizing modular design and design patterns, with a case study on a Library Management System. It also covers UML diagrams, detailing their types and providing examples, as well as popular UML tools. Lastly, it contrasts software testing and quality assurance, outlining their focus, approach, and types of testing, along with common testing tools.

Uploaded by

naazahmed957
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Assignment

Name: Naaz Ahmed


Roll no : K24SW003
Subject: Introduction to Software Engineering
Teacher: Dr. Nouman Qadeer Soomro

1. Design and Implementation


Overview

Design and implementation are two critical stages in the software development lifecycle. The
design phase involves analyzing the requirements and creating a structured plan for the
system architecture. The implementation phase translates this plan into executable code.

Key Concepts

 Modular Design:
Dividing the system into discrete, manageable modules that can be developed and
maintained independently.
 Design Patterns:
Proven templates for solving common software design issues, such as:
o Singleton Pattern: Ensures only one instance of a class exists.
o Factory Pattern: Creates objects without specifying the exact class of object to
create.
 Implementation:
Writing and integrating code components using the chosen programming language
based on the system's design.

Case Study Example: Library Management System


Design Phase

 Identify core modules:


o Book
o Member
o Loan
Implementation Phase

 Develop corresponding classes in a language like Java or Python.

UML Class Diagram


+-----------+ +-----------+
| Book | | Member |
+-----------+ +-----------+
| - title | | - name |
| - author | | - memberID|
+-----------+ +-----------+
| |
+--------+----------+
|
+--------+
| Loan |
+--------+
|dueDate |
+--------+

2. UML Diagrams
Overview

The Unified Modeling Language (UML) provides standardized notations to model software
systems, making them easier to understand, design, and document.

Types of UML Diagrams


Structural Diagrams

 Represent static elements of a system.


 Examples: Class Diagram, Component Diagram

Behavioral Diagrams

 Show dynamic behavior and workflows.


 Examples: Use Case Diagram, Sequence Diagram

Interaction Diagrams

 Detail interactions between objects.


 Examples: Communication Diagram, Timing Diagram

Use Case Example: Library Management System

+----------------------+
| Library System |
+----------------------+
| |
| +------------------+ |
| | Borrow Book | |
| +------------------+ |
| +------------------+ |
| | Return Book | |
| +------------------+ |
+----------------------+

 Represents the system’s features from an end-user’s point of view.

Popular UML Tools

 PlantUML:
Text-based tool for generating UML diagrams.
 ArgoUML:
Open-source application for designing and editing UML diagrams.

3. Software Testing and Quality Assurance (QA)


Overview

 Software Testing ensures the application meets specified requirements and identifies
defects.
 Quality Assurance (QA) focuses on improving the processes to prevent defects and
maintain quality standards throughout development.

Comparison: Testing vs. QA


Aspect Software Testing Quality Assurance (QA)

Focus Identifying bugs and errors Ensuring process and product quality

Approach Reactive Proactive

Activities Unit testing, integration testing Reviews, audits, process improvement

Tools Selenium, JUnit Checklists, QA audit frameworks

Types of Testing

 Functional Testing:
Validates that the system functions as intended.
 Non-Functional Testing:
Evaluates system attributes like performance, usability, and security.

Functional Testing Example – “Borrow Book” Feature

 Test Scenario:
Confirm that a member can successfully borrow a book if it is available.
 Expected Result:
The book’s status changes to “borrowed”, and the member’s borrowing record is
updated accordingly.

Common Testing Tools

 Selenium:
Tool for automating web application testing.
 JUnit:
A framework used for unit testing in Java-based applications

You might also like