SDA Lect01 Fall2023 Introduction
SDA Lect01 Fall2023 Introduction
CS-3004
Majid Hussain
Lecturer
[email protected]
Outline
• Introduction to the Course
• Course Objectives
• Why this course is important for you?
• Course Contents and Structure
• Course Project
2
Contact Details
MAJID HUSSAIN
Email: [email protected]
Office: Room 304-C, 3rd floor block A
Office Hours: Displayed outside my office
2 Classes of 1.5 hours
Google Classroom Code
y6dpncj
Textbooks and Reading Material
• Text Book(s)
Craig Larman, Applying UML and Patterns, Updated edition.
Jim_Arlow,_Ila_Neustadt, UML and the unified process .
Bernd Bruegge, Allen H. Dutoit, Object-Oriented Software Engineering, using
UML, Patterns, and Java.
All books are uploaded on google classroom for your references .
10
Dishonesty, Plagiarism
• All parties involved in any kind of cheating in (Quizzes,
Assignments & Projects) will get ZERO in that exam
11
About you?
Introduce yourself
Name
Anything special about you?
Lecture Format
• Start with Q & A
• Main Lecture
– No short breaks in the middle
• Practice sessions on various case studies
• Designing/Modelling of software artifacts
• Translation of design artifacts into code
13
Why this course is important for you?
• Almost every large and complex industrial project follow a detailed design.
– Every safety critical system must be well designed according to their safety standards.
• Industry hire requirement analysts and software designers to model the ongoing
projects.
14
Why this course is important for you?
• Provide you with skills needed to get good jobs
Software Development Process
16
What is SDA?
•Analysis
• understanding, finding and describing concepts in the problem domain.
•Design
• understanding and defining software solution/objects that represent the analysis
concepts and will eventually be implemented in code.
•SDA
• Analysis is object-oriented and design is object-oriented. A software development
approach that emphasizes a logical solution based on objects.
4545
Software development Methodologies
24
25
Cont..
26
27
Cont..
28
Introduction to the Course
• A major engineering problem today
Predictable development of reliable software systems.
29
Introduction to the Course
• Object-Oriented Analysis and Design
30
Traditional Software Development Flow
• When a software developer begins work with a new project, it's natural for him to
choose to commence scripting the code immediately.
• The building will fall no matter how robust the construction process and resource
consumption are; similarly, the software would fail without a fundamental layout.
• Nobody wants their efforts to be for waste because they didn't have a plan for them,
right? That's where software design comes in, a mechanism that simplifies important
software operations in a certain way.
31
Introduction to the Course
• A major engineering problem today
Development of reliable software systems.
Software Reliability
• You software needs to be reliable - specially if you intend to scale it up and use for a
long time
But you’ve already been developing systems without paying much attention to
design and they work fine, so what’s the big deal here???
Introduction to the Course
So what makes software reliable?
But you’ve already been developing systems without paying much attention to
design and they work fine, so what’s the big deal here???
• Software developed without any planning or good design will never be reliable and
even small changes can make the system fail
What is Software Analysis?
• Analysis emphasizes an investigation of the problem and requirements, rather than
a solution.
– For example, if a new online trading system is desired, how will it be used? What are its
functions?
36
What is Software Design?
• Design emphasizes a conceptual solution (in software and hardware) that fulfills the
requirements, rather than its implementation.
– For example, a description of a database schema and software objects.
• Design can be implemented, and the implementation (such as code) expresses the
true and complete realized design.
37
Useful analysis and design have been summarized in the phrase:
do the right thing (analysis), and do the thing right (design).
38
Course Objectives
39
Course Structure
• 3 Credit Hour Course (More applied than you think)
– No labs
• Programming Language and Tools
– Java
– UML Case tools like Enterprise Architect, Papyrus etc.
• Course Project
– Vital and major component of the course
– Group of (2) students
• Weekly Task
– Coding Tasks
40
Course Contents
Outline
1. Introduction to course and pedagogy
2. Logical architecture – 3 tier and N-tier architectures
3. Overview of OOP, OOAD and UML
4. Capturing User requirements via Use-Cases
5. Understanding problem domain-Domain Model
6. Analyzing actor actions – System sequence diagrams
7. Modeling dynamic software behavior using sequence diagrams
8. Design class diagrams
9. Designing for visibility (Mapping design to code)
10. Assigning roles and responsibilities using GRASP
11. Learning from industry experience – Gang of Four design patterns
12. Packaging and deploying software
41
Course Content
• OOP Basics
• Three tier architecture FIRST SESSION
• Requirements elicitation
• Use cases
• Domain modeling
• Interaction modeling
• GRASP SECOND SESSION
• Behavior modeling
• Gang of four patterns
42
Textbooks and Supplementary Reading List
• Text Book(s)
• Craig Larman, Applying UML and Patterns, 3rd edition, 2004.
• Bernd Bruegge, Allen H. Dutoit, Object-Oriented Software Engineering, using UML, Patterns, and
Java.
• UML 2 Toolkit Published by Wiley Publishing, Inc.
• UML 2.0, Documentation:www.rational.com
43
Some Rules
– Raise your hand before asking any question
44
Attendance Policy
45
Dishonesty, Plagiarism
• All parties involved in any kind of cheating in (Quizzes, Assignments & Projects) will get ZERO in
that exam
46
Google Classroom Code
im4yqv6
47
Evaluation Breakdown
Final Midterm 1
40 12.5
Midterm 2
12.5
Project
10
48
Revision
• Functional vs non-functional Requirements
• Difference between Agile, DevOps, Scrum
• What is software development life cycle?
• What are the phases of SDLC?
• What is SRS?
• Difference between Analysis and Design?
• What is reliability?
49
Software use during this course
51
Overview of UML Diagrams
52
53
Why Java?
54
“Java is the main language behind
Android, which owns an 85% share of
the mobile market. It’s also the most
popular language for Internet of Things
(IoT) devices.”
55
Java Spread
56
Motivation behind developing Java
57
What was the reason of creation?
Multi-Threaded
Processes contain multiple threads of execution.
Similar to multi-tasking but all threads share the same memory space.
Because Java source code is compiled to byte code and the byte code is interpreted, Java
code can be executed anywhere an interpreter is available.
i386 VM
Java Java
Source.java SPARC VM
Compiler Bytecode
Source.class
PPC VM
62
63
Common Terms
1. JDK – Java Development Kit (in short JDK) is Kit which provides the
environment to develop and execute(run) the Java program. JDK is a kit(or
package) which includes two things
1. Development Tools (to provide an environment to develop your java
programs)
2. JRE (to execute your java program).
3. JVM – Java Virtual machine(JVM) is a very important part of both JDK and
JRE because it is contained or inbuilt in both. Whatever Java program you run
using JRE or JDK goes into JVM and JVM is responsible for executing the
java program line by line hence it is also known as interpreter.
HelloWorld.java
Should be MIS
66
SW Development Project:
Deliverable 1
• Deliverable #1:
• Deadline: (28th August,2023 on GCR)
• COMPANY
• Company Name (of your newly established company)
• Company Logo
• TEAM (2) Members
• (Team) Manager
• (Requirement) Analyst
• Manager QA
• Designer
• Developers/SW Engineers
67
SW Development Project: Deliverable 2
• Deliverable #2
– Project Selection
• Meeting with the client
• Project Proposal
• Present the idea of the project and what is aimed to achieve
– Sections
• Project Title
• Scope
• Objectives
• Problem Statement and Description
68
Project Proposal Components
• Title
• Should be well defined Indicate the project aim and immediate solution its going to provide.
• Scope
• Defines the domain of the project. List any previous tools or work done in the same area. Also
identify the level to which the project is going to be probed into in future.
• Objective
• Outline the major aims/goals that are aimed to be achieved through the project
69
SW Development Project: Deliverable 2
• Deadline: 6th Sep, 2023
• Project Title
• Scope
• Objectives
• Problem Statement and Description
• Project Proposal and other deliverables (to be explained later on
by Course Instructors and LI’s)
• Deliverable format : Found in course book, explained by course
instructor OR explained in the assignment description.
• If in doubt, YOUR responsibility to ask AHEAD of deadline, not ON
or AFTER IT!
70
Home Work
• Please revise OOP principles
71
Thanks