Software
Design & Architecture
Lecture 1
SESD-2222
SPRING 2024
Madiha Yousaf Malik
madiha.yousaf@ucp.edu.pk
Office: Cabin #5, C-Block
OFFICE HOURS: Monday : 10:00 AM- 01:00 PM
Tuesday: 10:00 AM- 01:00 PM
Today’s Agenda
Course Introduction
Course Guidelines
Grading Policy
A Quick Revision of Software Process
SDLC Phases
Example of SDLC Phases
Software Process Models
Guidelines
The course outline is tentative.
Evaluation will be based on all class discussions,
handouts, recommended readings, slides etc.
Active participation is required.
Announcements etc. will be made via Portal
Plagiarism
All the parties involved will be awarded Zero in first instance. Repeat of the
same offense will result in (F) grade.
USE PROPER REFERENCING IF ANY MATERIAL TAKEN FROM SOME WEB
SOURCE/Book.
“When you have wit of your own, it's a pleasure to credit other people for theirs.”
― Criss Jami, Killosophy
Tentative Grading Criteria
Class Participation/Activities 10%
Quizzes (Announced +Unannounced) (8) 15%
Assignments (6-8) 15%
Midterm Exam 20%
Final Exam 40%
Class Rules
Attendance will be taken within first 10 minutes of the start of class. All students
coming after 10 minutes will be marked as late. A student being absent from class for
whatsoever reason will be marked as absent. For medical leaves you can contact
Dean/HOD office.
No retakes of quizzes in any case.
Assignments should be submitted on time. Late Submission Policy:
24 hours late with 25% deduction in marks
48 hours late with 50% deduction in marks
More than 48 hours, 100% deduction
Assignments must be submitted via portal only. Emailed submissions will not be
accepted in any case.
8
Text Book
• Some textbooks may be helpful :
• Recommended Text Book:
– Software Engineering, A Practitioner’s Approach, Pressman R.
S.& Maxim B. R., 8th Edition (2015), McGraw-Hill.
– Reference Book:
– Software Architecture and Design Illuminated, Kai Qian, Xiang
Fu, Lixin Tao, Chong-Wei Xu, Jorge L. Diaz-Herrera, Jones and
Bartlett Publishers
– SAMS Teach Yourself UML in 24 Hours, 3rd Edition by Joseph
Schmuller
Let’s have a quick revision
Software Process
• Review Software Process
• SDLC Phases
11
Main Phases of Software Process
Requirements Analysis (answers “WHAT?”)
Specifying what the application must do
Design (answers “HOW?”)
Specifying what the parts will be, and how they will fit
together
Implementation (A.K.A. “CODING”)
Writing the code
Testing (type of VERIFICATION)
Executing the application with test data for input
Maintenance (REPAIR or ENHANCEMENT)
Repairing defects and adding capability
12
SDLC Phase 1: Requirement Analysis
The process of understanding what’s needed or wanted, and
expressing the results in writing
Key Challenges of Requirement analysis ???
13
Key Challenges: Requirement Analysis
Stakeholder issues
Engineer/developer issues
The management issues
The expert issues
The budget issues
The planning issues
The novelty issues
14
SDLC Phase 2: Design
The design of an application expresses how the application is to be
constructed.
It describes the parts involved and how they are to assembled.
It consists of a set of documents (diagrams and text)
15
SDLC Phase 3: Implementation
In the form of coding
Code only against a design
Before compiling, satisfy yourself that the code you have typed is
correct. Read it thoroughly.
‘correct’ means that is satisfies what’s required of it
This is “author-inspection” (What is it???)
Author Inspection:
Inspect and edit the block of code you have just written until you are
convinced it does exactly what it is meant to do. Only then compile it.
16
SDLC Phase 3: Implementation (Cont...)
Build-a-little-Test-a-little (Rule)
Add a relatively small amount of code (“build-a-little”)
(Again): Read what you have typed and correct it if necessary until
you are totally satisfied it’s correct
Compile
Test the new functionality (“test-a-little”)
17
SDLC Phase 4: Testing
The testing phase consists of supplying input to the
application and comparing the output with that mandated by
the software requirements specification.
Helps to uncover defects
Proves the presence of defects, but never their absence
Types of Testing: Black-Box Testing, White-Box Testing
18 SDLC Phase 4: Testing (Cont...)
Tips on Testing
Test early and often
Test with extreme values
– Very small, very big, etc.
– Borderline
– “Illegal” values
Vary test cases
– Don’t repeat tests with same test
data except when specifically
intended
19
SDLC Phase 5: Maintenance
Maintenance refers to the work performed on the application that
occurs after it has been delivered.
Types of maintenance
Corrective (Defect Removal)
Finding and fixing all inconsistencies with the requirements
document
Perfective (Enhancement)
Introducing new or improved capability
Adaptive
Adapts software to new environment
Preventive
Changing some aspect of the system to prevent failures
20
Software Process Phases Example
Personal Finance Example:
1. Requirements Analysis: Diagrams and text
The application shall display the balance in the user’s bank account.
2. Design: Diagrams and text
The design will consist of the classes CheckingAccount, Savings Account etc.
3. Implementation: Source code
class Checking Account{ double balance; … }
4. Testing: Test cases and test results
With test case: the balance was $2938.22, which is correct.
5. Maintenance: Modified design, code, and text
– e.g., Defect repair: “Application crashes when balance is
$0 and attempt is made to withdraw funds. …”
– e.g., Enhancement: “Allow operation with £.”
21
The Waterfall Software Process
22 The Spiral Process Model
Activity
1. One way to raise system availability would be to lower the mean time
to repair. Indicate whether the statement is true or false.
2. Indicate whether the statement is true or false. When defining
objectives in the analyze phase, you are attempting to determine
what characteristics of the process need to be changed to achieve
improvement.
3. You are a project manager for a software development company. Your
company recently acquired a software development contract to
develop software that potentially will tie into a global supply chain
system for a manufacturing company. The manufacturing company
operates in the United States, Poland, and Mexico. You need to work
with a number of users in these counties. What software process will
you use and why? Why will you not use the other software processes
or methodologies? Explain.