0% found this document useful (0 votes)
37 views72 pages

SDA Lect01 Fall2023 Introduction

software design and analysis documents.

Uploaded by

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

SDA Lect01 Fall2023 Introduction

software design and analysis documents.

Uploaded by

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

Software Design and Analysis

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 .

 Available in the Library/E-Book


Software use during this course

• UML (Designing/Modeling Standard)


• Papyrus (Modeling tool)
• Eclipse IDE (Development IDE)
• Rational Rose
Course Structure
• 3 Credit Hour Course (More applied than you think)
– No labs
• Programming Language and Tools
– Java
– UML Case tools like Papyrus, Enterprise Architect, Rational Rose etc.
• Course Project
– Vital and major component of the course
– Group of (3) students
• Weekly Task
– Coding Tasks
Home Work

 Install Eclipse IDE


 Install Papyrus
 Please revise OOP principles and the advantages of OOP
Some Rules
 Raise your hand before asking any question

 Don’t miss a class


 No retakes (except for Mid or Final Exam)

 Don’t “sleep” in the class


 You might miss a quiz 

 Avoid using mobile phone in the class

– Above all, whatever you do, please do not disturb others


Attendance Policy

– Attendance will be taken at ANY time during lecture

– 80% attendance is mandatory

– Students coming late will be marked as late

– 2 late arrivals are equal to an absent

10
Dishonesty, Plagiarism
• All parties involved in any kind of cheating in (Quizzes,
Assignments & Projects) will get ZERO in that exam

• Plagiarism in midterm/ final exam may result in F


grade in the course

• Habitual cases will be awarded F


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.

• Design artifacts carry a major weightage in FYP.

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.

•Involves both a notation and a process: Methodology


3939
Analysis VS Design
Object Oriented Analysis and
Design
Investigatio
Logical Cod
n of
Solution e
the problem

Analys Desi Constructi


is gn on

Book Public class Book


{
Title
Private String
Author
title;
Print public void print
();
}
Domain
Concept OO
Desi
s, Langua
gn
Objects ge
Clas
Code
s
4242
Is It Any
Good?
• A system which is designed and modelled
using an object-oriented technology is:
– Easy to understand
– Directly related to reality
– Natural partitioning of the problem
– More flexible and resilient to change
– Systems can be developed more rapidly and at a
lower cost

4545
Software development Methodologies

• frequent alteration in the development project


• minimize risk by developing software in short time boxes
• changing requirements of the clients.

24
25
Cont..

• Follow continuous integration and continuous delivery


model
• development and operational teams to perform everything
simultaneously in development, quality assurance, security,
and other operations.
• It makes the process faster and easier for businesses to
process on time

26
27
Cont..

• For companies where the requirements are highly


emerging and rapid changes are easily adhered to.
• daily meeting easily helps the developer to make it
possible to measure individual productivity.
• Due to short sprints and constant feedback, it becomes
easier to cope with the changes

28
Introduction to the Course
• A major engineering problem today
 Predictable development of reliable software systems.

• The object-oriented paradigm


 solutions to many development problems
 provides a reliable design, complexity control, and reusability
 Object-oriented methods can be divided into analysis and design, implementation languages, and distribution
 Basic to the entire enterprise, however, are analysis and design, which has remained remarkably stable for
years.

• Object-Oriented Analysis and Design


 overall goals of the object paradigm, the selection of classes, the relationships among them, and their
realization to implement systems

29
Introduction to the Course
• Object-Oriented Analysis and Design

 Concepts and techniques necessary to effectively use system requirements to drive


the development of a robust OO design model

 Unified Modeling Language (OOAD/UML) 2.2

 Focus on training by applying UML 2.2 notation to fundamental OOAD concepts


including architecture, objects, classes, components, subsystems, stereotypes,
relationships, and supporting diagrams.
 Implementation

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.

• Regardless of his software knowledge, if someone produces software without laying


out a strategy for it, he might as well have been laying bricks without establishing a
solid foundation.

• 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.

• Dependable/consistently good in quality or performance; able to be trusted.

• We look for reliability everywhere, when buying a house, a car, a washing


machine….even when making friends.
Introduction to the Course
• A major engineering problem today
 Development of reliable software systems.

 Software Reliability

• Probability of failure-free operation for a specified period of time

• You software needs to be reliable - specially if you intend to scale it up and use for a
long time

• Windows is almost 40 years old


• Facebook is 18 years old
Introduction to the Course
 So what makes software reliable?

 Good design created using the best practices.

 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?

 Good design created using the best practices.

 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?

• "Analysis" is a broad term, best qualified, as in requirements analysis (an


investigation of the requirements) or object-oriented analysis (an investigation of the
domain objects).

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 ideas often exclude low-level or "obvious" details—obvious to the intended


consumers.

• 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

• At the end of the course students will be able to:

 Analyze problems from an object-oriented perspective


 Apply an iterative, use case-driven, architecture-centric process to the development of a robust design
model
 Use UML 2.2 to represent the design model that take advantage of OO concepts of such as
abstraction, encapsulation, inheritance, and polymorphism
 Create OO designs and implement in Java
 Apply design considerations through the use of patterns
 Implement a pilot iterative OO project that leverages all key concepts learned in the course

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

• Gang of four patterns


• Logical Architecture
• Design to code THIRD SESSION
• Software Development tools and configuration
management

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

• Additional Reading List


• Unified Modeling Language: Superstructure, version 2.1.2, formal/07-11-02, OMG, www.omg.org

 Available in the Library/E-Book

43
Some Rules
– Raise your hand before asking any question

– Don’t miss a class


• No retakes (except for Mid or Final Exam)

– Don’t “sleep” in the class


• You might miss a quiz 

– Avoid using mobile phone in the class

– Above all, whatever you do, please do not disturb others

44
Attendance Policy

– Attendance will be taken at the beginning of the lecture

– 80% attendance is mandatory

– Students coming late will be marked as late

– 2 late arrivals are equal to an absent

45
Dishonesty, Plagiarism
• All parties involved in any kind of cheating in (Quizzes, Assignments & Projects) will get ZERO in
that exam

• Plagiarism in midterm/ final exam may result in F grade in the course

• Habitual cases will be awarded F

46
Google Classroom Code

im4yqv6
47
Evaluation Breakdown

• Grading Policy • Theory breakdown


– Absolute Grading Weightage %
Tasks Quizzes
5% 10 Assignments
10

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

• UML (Designing/Modeling Standard)


• Papyrus (Modeling tool)
• Eclipse IDE (Development IDE)
Unified Modeling Language
• A de facto industry standard by the Object Management Group (OMG)
• Standard language for specifying, visualizing, constructing, and documenting the
artifacts of software systems, business modeling and other non-software systems.
• The UML represents a collection of best engineering practices that have proven
successful in the modeling of large and complex systems.
• The UML is a very important part of developing object oriented software and the
software development process.
• The UML uses mostly graphical notations to express the design of software
projects.
• Using the UML helps project teams communicate, explore potential designs, and
validate the architectural design of the software.

51
Overview of UML Diagrams

emphasizes the dynamic


emphasizes the
behavior of the system by
static structure of
showing collaborations
the system using
among objects and
objects, attributes,
changes to the internal
operations and
states of objects.
relationships.

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

A lot of companies are using Java now-a-days, rather than other


languages due to a simple fact: Java is awesomely platform
independent and reliable which makes in famous in almost all
fields including android, ios, smart TV, web development.

56
Motivation behind developing Java

57
What was the reason of creation?

 Need a cross-platform language for multiple-device development.


 C++ though object oriented and widely used was highly resource intensive.
 Developed with the aim of “Write Once, Run Anywhere”.
What is Java? (cont)

Multi-Threaded
Processes contain multiple threads of execution.
Similar to multi-tasking but all threads share the same memory space.

Rich set of Libraries


The Java API is extensive.
The standard JDK comes with over 200 built-in packages containing Java APIs
Platform Independence. How does Java do it?

Java has been described as WORA (Write once, Run Anywhere)

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.

The "Interpreter" is call the Java Virtual Machine


The Java Virtual Machine.

Java source files (.java) are compiled to Java bytecode (.class)


Bytecode is interpreted on the target platform within a Java Virtual Machine

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).

2. RE – Java Runtime Environment (to say JRE) is an installation package


which provides environment to only run(not develop) the java program(or
application)onto your machine. JRE is only used by them who only wants to
run the Java Programs i.e. end users of your system.

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

Here is Java's "HelloWorld" implementation:

In the file, HelloWorld.java:

public class HelloWorld


{
public static void main(String[] args)
{
System.out.println("Hello World");
}
}
COURSE PROJECT

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

• Problem Statement and Description


• Explain the major reason for choosing the project and the problem addressed by the project. Describe
the problem in detail ( e.g. office automation mitigates manual work etc)
• Should not be more than 2-3 paragraphs
• Can also explain Feasibility.

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

You might also like