Uploaded by Ihtesham Mansoor

CSE304-OOSE Week 1

advertisement
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
CSE304
Object Oriented Software
Engineering
Week 1
Dr. Iftikhar Azim Niaz
ianiaz@comsats.edu.pk
ianiaz@yahoo.com
Dr. Iftikhar Azim Niaz
● B.Sc (Maritime Studies)
1988
● M.Sc (Computer Science)
1994
● MBA (Marketing)
1999
● Ph.D (Engineering)
2005
● PGD (Professional Ethics and Teaching Methodology)
2010
 Pakistan Marine Academy,
 President’s Gold Medalist (Best All Round Cadet)
 Karachi University
 Quaid-i-Azam University (QAU), Islamabad
 Allama Iqbal Open University (AIOU), Islamabad
 University of Tsukuba, Japan
 Riphah International University, Islamabad
2
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
1
2
9/19/2021
Dr. Iftikhar Azim Niaz
● Deck Officer
Feb 1989 – Feb 1991
● System Analyst
Mar 1994 – Mar 1995
● Deputy Manager
Apr 1995 – Aug 1995
● Lecturer
Sep 1995 – Jan 2007
● Head of Department
Jan 2007 – Feb 2012
● Assistant Professor
Feb 2012 to Date
 Atlas Shipmanagement Limited, Hong Kong
 Deutsche Telepost Consultants, Islamabad
 National Institute of Electronics, Islamabad
 Quaid-i-Azam University, Islamabad
 Riphah International University, Islamabad
 COMSATS University Islamabad (CUI), Islamabad Campus
 Formerly COMSATS Institute of Information Technology (CIIT)
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
3
Why ?
Why are you
studying the course
CSE304
Object Oriented
Software
Engineering?
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
3
4
4
9/19/2021
Are these your motivations?
● Motivations is a feeling of enthusiasm, interest, or
commitment that makes somebody want to do
something, or something that causes such a feeling

Encarta Dictionary
● Because many people take it
● Just a random choice, no particular reasons
● A required course
● I failed CSE304 before;
● Want to be taught by a tough instructor
● More …
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
5
I believe your REAL motivation is ...
I take it because I
am interested
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
5
6
6
9/19/2021
Course Details
● Course Code:
CSE304
● Course Title:
Object Oriented Software
Engineering
● Credit Hours:
4 (3 + 1)
● Course Pre-Requisite
CSE291 Introduction to
Software Engineering
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
7
Instructor Information
● Name:
Dr. Iftikhar Azim Niaz
● E-Mail:
ianiaz@comsats.edu.pk
ianiaz@yahoo.com
8
● Contact No.
051-90495311
● Office Location:
Room 31, (First Floor),
Faculty Block I (above
Faculty Cafeteria)
● Office Hours:
1000 -1130 (Wednesday)
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
7
8
Course Description
● Introduction to Object Oriented Software Engineering,
Modeling with UML, Project Management,
● Requirements Determination, Business Process and
Functional Modeling, Structural Modeling, Behavioral
Modeling
● Moving from Analysis to System Design: Class and Method
Design, Data Management Layer design, Human-computer
Interaction Layer Design, Physical Architecture Layer
Design,
● Mapping Models to Code, Software Construction, Installation
and operations, Software Life Cycle
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
9
Textbook and Reference Books
● Textbook
System Analysis & Design: An Object-Oriented Approach
with UML, 5th Edition, Alan Dennis, Barbara H. Wixom
and David Tegarden, John Wiley & Sons, 2015
● Recommended Books
1. Object Oriented Software Engineering: An Agile Unified
Methodology, David C Kung, McGraw Hill, 2014
2. Object Oriented Software Engineering: Using UML,
Patterns, and Java, Bernd Bruegge, Allen H. Dutoit,
Prentice Hall, 2010
10
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
9
10
CSE304 Objbect‐Oriented Software
Engineering Week 1
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
Textbook and Reference Book
11
Course Assessments
Evaluation methods
Theory Weight
(%)[T]
Lab Weight
(%)[L]
Quizzes (4)
15
15
Assignments (4)
10
10
10 + 15
10+15
Terminal Exam
50
50
Total
100
100
T = (T/100) *75
L = (L/100) *25
Sessional Exams(I and II)
Total (T+L)
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
11
12
12
9/19/2021
Course Outline and Contents (1 of 4)
Lecture
Unit
Topics Covered
Textbook Section
1
1
Introduction to System Analysis and Design, system
Development Methodologies
Dennis: Ch01
2
1
3
2
4
2
5
3
6
3
Requirement Gathering Techniques,
Documentation Techniques
7
4
An Overview of UML: Use Case Diagram, Class
Diagrams, Interaction Diagrams, Activity Diagrams
Web Sources
8
4
State Diagrams, Component Diagram, Package Diagram,
Deployment Diagram
Web Sources
Characteristics of Object-Oriented Systems, Object
Oriented Systems Analysis and Design
Project Identification, Feasibility Analysis, Traditional
Project Management Tools
Project Effort Estimation, Creating and managing the
Work Plan, Project Staffing, Environment and
Infrastructure Management
Requirements Determination, Requirement Analysis
Strategies,
Requirements
Dennis: Ch01
Dennis: Ch02
Dennis: Ch02
Dennis: Ch03
Dennis: Ch03
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
13
Course Outline and Contents (2 of 4)
Lecture
Unit
9
4
10
4
Topics Covered
Business Process Identification with Use Cases and Use
Case Diagrams, Documentation with Use cases
Business Process Modeling with Activity Diagrams,
Verifying and Validating business processes and
functional Models.
Dennis: Ch04
Dennis: Ch04
Sessional 1
11
14
Textbook Section
12
4
Domain Modeling
13
5
Structural Models Object Identification, CRC Cards
14
5
15
5
16
5
Class diagrams, Creating Structural Models using CRC
and Class diagrams, Verifying and Validating Structural
Models
Behavioral Models, UML Sequence diagrams and
Communication Diagrams
Behavioral State Machines, Crude analysis, Verifying and
validating Behavioral Model
Kung Ch 05
Dennis: Ch05
Dennis: Ch05
Dennis: Ch 06
Dennis: Ch 06
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
13
14
9/19/2021
Course Outline and Contents (3 of 4)
Lecture
Unit
Topics Covered
Textbook Section
17
5
Evolving the Analysis models to design models, Package
and Package Diagrams
Dennis: Ch07
18
6
Design Strategies, Acquisition strategy
Dennis: Ch07
19
6
Class and Method Design, Design Criteria
Dennis: Ch08
20
6
Object design activities, Method specifications
Dennis: Ch08
Sessional 2
21
22
6
Data Management Layer design, Mapping problem
domain objects to Object Persistence Formats
Dennis: Ch09
23
6
Optimizing RDBMS-based object storage, Designing data
access and manipulation classes
Dennis: Ch09
24
6
Human-Computer Interaction Layer Design, User
interface design process, Navigation design, Input design,
output design
Dennis: Ch10
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
15
Course Outline and Contents (4 of 4)
Lecture
Unit
25
6
26
7
27
7
28
8
29
8
30
8
31
8
32
1-8
Topics Covered
Mobile computing and user interface design, Social media
and UI design, Games multi-dimensional information
visualization and immersive environments
Elements of Physical architecture layer, Cloud
Computing, ubiquitous computing and IoT, Green IT
Infrastructure design, Hardware and System software
specifications, NFRs and Physical architecture layer
design
Software construction and implementation, Managing
Programming
Developing documentation, designing tests
Installation and operations, Cultural issues and IT
Adoption, Conversion Strategies
Change Management, Post-Implementation Activities,
Revision
Terminal Examination
16
Textbook Section
Dennis: Ch10
Dennis: Ch11
Dennis: Ch11
Dennis: Ch12
Dennis: Ch12
Dennis: Ch13
Dennis: Ch13
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
15
16
9/19/2021
Course Learning Outcomes (CLOs)
CLO
Description
PLO
C1
Explain basic concepts of object-oriented
software engineering using UML.
j-3
C2
C3
C4
Explain fundamentals of software project
management and software life cycle
methodologies.
Develop OO analysis and design models for
problems based on real world scenarios.
c-2
i-1
Develop a “real world” software system
prototype using Object Oriented Software j-3, k-2
Engineering.
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
17
Program Learning Outcomes (PLOs)
PLO
18
Description
c-2
Design a computer-based system, process, component,
or program to meet desired needs.
i-1
Ability to use modern techniques or skills necessary for
engineering practice.
j-3
Use of software engineering theory in the modeling and
design of computer-based systems.
k-2
Ability to apply techniques and skills of the discipline to
broadly defined engineering technology activities.
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
17
18
9/19/2021
Policy and Procedures
● Attendance Policy: Every student must attend 80% of the lectures delivered in this course
and 80% of the practical/laboratory work prescribed for the respective courses. The students
falling short of required percentage of attendance of lectures/seminars/practical/laboratory
work, etc., shall not be allowed to appear in the terminal examination of this course and shall
be treated as having failed this course.
● Grading Policy: The minimum pass marks for each course shall be 50%. Students obtaining
less than 50% marks in any course shall be deemed to have failed in that course. The
correspondence between letter grades, credit points, and percentage marks at CUI shall be as
follows: Grade
A
AB+
B
BC+
C
CD
F
Marks
90 - 100 85 - 89 80 - 84 75 - 79 70 - 74 65 - 69 60 - 64 55 - 59 50 - 54 <50
Cr. Point
4.0
3.7
3.3
3.0
2.7
2.3
2.0
1.7
1.3
0.0
● Missing Exam: No makeup exam will be given for final exam under any circumstance. When
a student misses Sessional 1 or Sessional 2 for a legitimate reason (such as medical
emergencies), his grade for this exam will be determined based on the Department policy.
Further, the student must provide an official excuse within one week of the missed exam.
● Academic Integrity: All CUI policies regarding ethics apply to this course. The students are
advised to discuss their grievances/problems with their counsellors or course instructor in a
respectful manner.
● Plagiarism Policy: Plagiarism, copying and other anti-intellectual behavior are prohibited by
the university regulations. Violators may have to face serious consequences.
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
19
A Nice Quote
Want to get something in life
Always think positive
You will definitely get the thing you want
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
19
20
20
9/19/2021
A Nice Saying
I keep 6 honest serving men.
They taught me all I knew.
Their names are:
WHAT and WHY and WHEN and HOW and WHERE
and WHO.
(R. Kipling)
And believe me,
on the road of learning,
these are your best companions.
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
21
Five Tips to Success
● Work Hard
● Try More
exercises and
more practice
● Do the work and
assignments by
yourself
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
21
22
22
Five Tips to Success
● Be patient with
the Machine
● If you really
need that, do it
quietly
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
23
Is the same situation with you?
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
23
24
24
First Lesson
Don’t care whether:
your_question == substantial OR stupid
if (your_question == substantial)
the class will be praising you
else if (your_question == stupid)
the class might fool you for a couple of minutes
else if (you_don’t_ask_question)
you will remain fool for your entire life time
Conclusion: Don’t hesitate to ask the question
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
25
DO’s and DON’Ts
● DO’s
 Enter or Leave the classroom without disturbing me
 Always talk to me
 Raise questions when something is not clear
 Raise hands if you have some question
● DON’Ts
 Use of Mobile Phone is STRICTLY Prohibited
 Fine of Rs. 100 if the phone is used during class timings
 No chatting / talking with each other
 No disturbance to teacher during class timings
 Marked ABSENT if remained absent for more than half of
class time
26
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
25
26
Chapter 1:
Introduction to Systems
Analysis and Design
28
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
Let’s start the Course
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
9/19/2021
27
27
28
Topics Covered
● Systems development life cycle (SDLC)
 Identify the four phases
 How it came about
 Methodology alternatives
● Team roles & skill sets
● Object-Oriented systems characteristics
● Object-Oriented Systems Analysis & Design (OOSAD)
● The Unified Process & its extensions
● The Unified Modeling Language (UML)
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
29
Introduction to SDLC
● The systems development life cycle (SDLC) is the process of
understanding how an information system (IS) can support
business needs by designing a system, building it, and
delivering it to users
● Why do we need a formal process?
 Failures occur (too) often
 Creating systems is not intuitive
 Projects are late, over budget or delivered with fewer features than
planned
● The System Analyst is the key person




30
Designs a system to add value
Must understand the business processes
Job is rewarding, yet challenging
Requires specific skill sets
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
29
30
System Development Life Cycle (SDLC)
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
31
The SDLC Process
● The process consists of four (4) phases




Planning
Analysis
Design
Implementation
● Each phase consists of a series of steps which rely upon
techniques that produces documents and files that provide
understanding about the project
● Each phase is documented (deliverables)
● Phases are executed sequentially, incrementally, iteratively
or in some other pattern
32
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
31
32
Question to be Answered
● Planning phase
 Why should we build this system?
 What value does it provide?
 How long will it take to build?
● Analysis phase
 Who will use it?
 What should the system do for us?
 Where & when will it be used?
● Design phase
 How should we build it?
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
33
SDLC Phase 1: The Planning Phase
1. Project Initiation
 The system’s business value to the organization is identified
 Develop/receive a system request. It presents a brief summary of a
business need, and it explains how a system that support the need
will create business value
 Conduct a feasibility analysis
 Steering/Approval Committee decides whether the project should be
undertaken or not
2. Project Management
 Project manager develops the work plan
 Staff the project
 Puts techniques in place to monitor & control the project through the
entire SDLC
 Deliverable of this phase is the Project Plan
34
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
33
34
SDLC Phase 2: The Analysis Phase
1. Develop an analysis strategy
 Model the current system (as-is system) and its problems
 Formulate the new system (to-be system)
2. Gather the requirements
 Develop a system concept
 Create a business model to represent:


Business data
Business processes
3. Develop a system proposal which includes analyses,
system concept and models
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
35
SDLC Phase 3: The Design Phase
1. Develop a design strategy
 In-house software development
 Outsource to another firm
 Buy an existing software (COTS)
2. Design architecture and user interfaces
3. Develop databases and file specifications
4. Develop the program design to specify:
 What programs to write
 What each program will do
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
35
36
36
SDLC Phase 4: The Implementation Phase
1. Construct the system
 Build it (write the programming code)
 Test it
2. Install system
 Replacing the old system with the new one.
 Train the users to how to use the new system and help
manage the changes caused by the new system
3. Support the system (maintenance)
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
37
SDLC: Methodologies
● Methodology: a formalized approach to implementing the
SDLC (i.e. it is a list of steps and deliverables)
● Categories






Process oriented
Data centered
Object-oriented
Structured
Rapid action development
Agile development
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
37
38
38
Classes of Methodologies (1/3)
● Structured Development
 Waterfall Development
 Parallel Development
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
39
Classes of Methodologies (2/3)
● Rapid Application Development
 Phased
 Prototyping
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
39
40
40
Classes of Methodologies (2/3)
● Rapid Application Development
 Throw Away Prototyping
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
41
Classes of Methodologies (3/3)
● Agile Development
 eXtreme Programming
 Scrum
● All agile development methodologies
are based on the agile manifesto and
a set of twelve principles
● The emphasis of the manifesto is to
focus the developers on the





42
working conditions of the developers,
the working software,
the customers, and
addressing changing requirements
instead of focusing on detailed systems
development processes, tools, all inclusive
documentation, legal contracts, and
detailed plans
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
41
42
12 Principles of Agile Development (1/2)
1. Soft ware is delivered early and continuously through the
development process, satisfying the customer
2. Changing requirements are embraced regardless of when
they occur in the development process
3. Working software is delivered frequently to the customer
4. Customers and developers work together to solve the
business problem
5. Motivated individuals create solutions; provide them the
tools and environment they need and trust them to deliver
6. Face-to-face communication within the development team is
the most efficient and effective method of gathering
requirements
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
43
12 Principles of Agile Development (2/2)
7.
The primary measure of progress is working, executing
software
8.
Both customers and developers should work at a pace that
is sustainable. That is, the level of work could be
maintained indefinitely without any worker burnout
9.
Agility is heightened through attention to both technical
excellence and good design
10. Simplicity, the avoidance of unnecessary work, is essential
11. Self-organizing teams develop the best architectures,
requirements, and designs
12. Development teams regularly reflect on how to improve
their development processes
44
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
43
44
Selecting the Appropriate Development
Methodology
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
45
Selecting the Appropriate Development
Methodology
● Clarity of User Requirements
 When the user requirements for a system are unclear, it is difficult to
understand them by talking about them and explaining them with
written reports
 Users normally need to interact with technology to really understand
what a new system can do and how to best apply it to their needs
 RAD and agile methodologies are usually more appropriate when user
requirements are unclear
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
45
46
46
Selecting the Appropriate Development
Methodology
● Familiarity with Technology
 When the system will use new technology with which the analysts and
programmers are not familiar, early application of the new technology in the
methodology will improve the chance of success
 If the system is designed without some familiarity with the base technology,
risks increase because the tools might not be capable of doing what is
needed
 Throwaway prototyping-based methodologies are particularly appropriate if
users lack familiarity with technology because they explicitly encourage the
developers to develop design prototypes for areas with high risks
 Phased development-based methodologies create opportunities to investigate
the technology in some depth before the design is complete
 Also, owing to the programming-centric nature of agile methodologies, both
XP and Scrum are appropriate
 Although you might think prototyping-based methodologies are also
appropriate, they are much less so because the early prototypes that are
built usually only scratch the surface of the new technology. It is generally
only after several prototypes and several months that the developers
discover weaknesses or problems in the new technology
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
47
Selecting the Appropriate Development
Methodology
● System Complexity
 Complex systems require careful and detailed analysis and design
 Throwaway prototyping-based methodologies are particularly well suited to
such detailed analysis and design but prototyping-based methodologies are
not
 The traditional structured design-based methodologies can handle complex
systems, but without the ability to get the system or prototypes into the
users’ hands early on, some key issues may be overlooked
 Although phased development-based methodologies enable users to interact
with the system early in the process, it is observed that project teams who
follow these tend to devote less attention to the analysis of the complete
problem domain than they might using other methodologies
 Finally, agile methodologies are a mixed bag when it comes to system
complexity. If the system is going to be a large one, agile methodologies will
perform poorly
 However, if the system is small to medium size, then agile approaches will be
excellent. We rate them good on these criteria.
48
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
47
48
Selecting the Appropriate Development
Methodology
● System Reliability
 System reliability is usually an important factor in system development;
after all, who wants an unreliable system?
 However, reliability is just one factor among several. For some applications,
reliability is truly critical (e.g., medical equipment, missile-control systems),
whereas for other applications (e.g., games, Internet video) it is merely
important
 Because throwaway prototyping methodologies combine detailed analysis
and design phases with the ability for the project team to test many
different approaches through design prototypes before completing the
design, they are appropriate when system reliability is a high priority
 Prototyping methodologies are generally not a good choice when reliability is
critical because it lacks the careful analysis and design phases that are
essential for dependable systems
 Agile methods may be the best overall approach because of the heavy focus
on testing, evolutionary and incremental identification of requirements, and
iterative and incremental development.
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
49
Selecting the Appropriate Development
Methodology
● Short Time Schedule
 RAD-based and agile methodologies are excellent choices when
timelines are short because they best enable the project team to
adjust the functionality in the system based on a specific delivery
date, and
 if the project schedule starts to slip, it can be readjusted by removing
functionality from the version or prototype under development
 Waterfall-based methodologies are the worst choice when time is at a
premium because they do not allow easy schedule changes
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
49
50
50
Selecting the Appropriate Development
Methodology
● Schedule Visibility
 One of the greatest challenges in systems development is determining
whether a project is on schedule
 This is particularly true of the structured design methodologies
because design and implementation occur at the end of the project
 The RAD-based methodologies move many of the critical design
decisions earlier in the project to help project managers recognize and
address risk factors and keep expectations in check
 However, given the daily progress meetings associated with Agile
approaches, schedule visibility is always on the proverbial front
burner
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
51
The System Analyst: Roles
● Business Analyst
 Focuses on the business issues
● Systems Analyst
 Focuses on the Information System (IS) issues
● Infrastructure Analyst
 Focuses on the technical issues
● Change Management Analyst
 Focuses on the people and management issues
● Project Manager
 Ensures that the project is completed on time and within budget
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
51
52
52
Basic Characteristics of Object Orientation
● Object-oriented systems
focus on capturing the
structure and behavior of
information systems in little
modules that encompass
both data and process
● A class is the general
template we use to defi ne
and create specific instances,
or objects. Every object is
associated with a class
● An object is an instantiation
of a class
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
53
Basic Characteristics of Object Orientation
● Each object has attributes that describe information about the object,
 such as a patient’s name, birth date, address, and phone number
● Attributes are also used to represent relationships between objects;
 for example, there could be a department attribute in an employee object with a
value of a department object that captures in which department the employee object
works
● The state of an object is defined by the value of its attributes and its
relationships with other objects at a particular point in time
 For example, a patient might have a state of new or current or former
● Each object also has behaviors. The behaviors specify what the object
can do
 For example, an appointment object can probably schedule a new appointment,
delete an appointment, and locate the next available appointment
● In object-oriented programming, behaviors are implemented as
methods
54
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
53
54
Methods and Messages
● In object-oriented programming, behaviors are implemented
as methods
● Methods implement an object’s behavior. A method is
nothing more than an action that an object can perform
● Messages are information sent to objects to trigger methods.
A message is essentially a function or procedure call from
one object to another object
 For example, if a patient is new to the doctor’s office, the receptionist
sends a create message to the application
 The patient class receives the create message and executes its create()
method which then creates a new object: aPatient
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
55
Encapsulation and Information Hiding
● Encapsulation is simply the combination of process and data into
a single entity
● The principle of information hiding suggests that only the
information required to use a software module be published to the
user of the module
● Typically, this implies that the information required to be passed
to the module and the information returned from the module are
published
● Exactly how the module implements the required functionality is
not relevant
● In object-oriented systems, combining encapsulation with the
information-hiding principle supports treating objects as black
boxes
56
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
55
56
Inheritance
● Inheritance is used to identify higher-level, or more general,
classes of objects
● Common sets of attributes and methods can be organized
into superclasses
● Typically, classes are arranged in a hierarchy whereby the
superclasses, or general classes, are at the top and the
subclasses, or specific classes, are at the bottom
● Subclasses inherit the appropriate attributes and methods
from the superclasses above them. That is, each subclass
contains attributes and methods from its parent superclass
● Inheritance makes it simpler to define classes
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
57
Inheritance Advantage
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
57
58
58
Polymorphism and Dynamic Binding
● Polymorphism means
that the same message
can be interpreted
differently by different
classes of objects
 For example, if an artist
sent the message Draw
yourself to a square
object, a circle object,
and a triangle object, the
results would be very
different, even though
the message is the same
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
59
Polymorphism and Dynamic Binding
● Polymorphism is made possible through dynamic binding
● Dynamic, or late, binding is a technique that delays typing the
object until run-time
● The specific method that is actually called is not chosen by the
object-oriented system until the system is running
● This is in contrast to static binding
● In a statically bound system, the type of object is determined at
compile-time. Therefore, the developer has to choose which
method should be called instead of allowing the system to do it
● This is why most traditional programming languages have
complicated decision logic based on the different types of objects in
a system
60
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
59
60
Object-Oriented Systems Analysis & Design
(OOSAD)
● Attempts to balance data and process
● Utilizes the Unified Modeling Language (UML) and the
Unified Process
● Characteristics of OOAD:
 Use-case Driven
 Architecture Centric
 Iterative and Incremental
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
61
Use Case Driven
● Use-case driven means that use cases are the primary
modeling tools defining the behavior of the system
● A use case describes how the user interacts with the system
to perform some activity, such as
 placing an order,
 making a reservation, or
 searching for information
● The use cases are used to identify and to communicate the
requirements for the system to the programmers who must
write the system
● Use cases are inherently simple because they focus on only
one business process at a time, so developing models is much
simpler
62
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
61
62
Architecture Centric
● Architecture-centric means that the underlying software architecture of
the evolving system specification drives the specification, construction,
and documentation of the system
● Modern object-oriented systems analysis and design approaches should
support at least three (3) separate but interrelated architectural views
of a system
 functional,
 static, and
 dynamic
● The functional or external view describes the behavior of the system
from the perspective of the user
● The structural, or static, view describes the system in terms of
attributes, methods, classes, and relationships
● The behavioral, or dynamic, view describes the behavior of the system
in terms of messages passed among objects and state changes within an
object
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
63
Iterative and Incremental
● Modern object-oriented systems analysis and design (OOSAD) approaches
emphasize iterative and incremental development that undergoes continuous
testing and refinement throughout the life of the project
● This implies that the systems analysts develop their understanding of a user’s
problem by building up the three architectural views little by little
● The systems analyst does this by working with the user to create a functional
representation of the system under study
● Next, the analyst attempts to build a structural representation of the evolving
system.
● Using the structural representation of the system, the analyst distributes the
functionality of the system over the evolving structure to create a behavioral
representation of the evolving system.
● As an analyst works with the user in developing the three architectural views
of the evolving system, the analyst iterates over each of and among the views.
64
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
63
64
Iterative and Incremental
● That is, as the analyst better
understands the structural and
behavioral views, the analyst
uncovers missing requirements or
misrepresentations in the functional
view.
● This, in turn, can cause changes to
be cascaded back through the
structural and behavioral views
● All three architectural views of the
system are interlinked and
dependent on each other
● As each increment and iteration is
completed, a more complete
representation of the user’s real
functional requirements is uncovered
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
65
OOSAD Benefits
● Concepts in the object-oriented approach enable analysts to break
a complex system into smaller, more-manageable modules, work
on the modules individually, and easily piece the modules back
together to form an information system
● This modularity makes systems development easier to grasp,
easier to share among members of a project team, and easier to
communicate to users, who are needed to provide requirements
and confirm how well the system meets the requirements
throughout the systems development process
● By modularizing systems development, the project team actually
is creating reusable pieces that can be plugged into other systems
efforts or used as starting points for other projects
● Ultimately, this can save time because new projects don’t have to
start completely from scratch
66
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
65
66
The Unified Process
● A specific methodology that maps out when and how to use
the various UML techniques for object-oriented analysis and
design
● A two-dimensional process consisting of phases and
workflows
 Phases are time periods in development
 The phases are inception, elaboration, construction, and transition.
 Workflows are the tasks that occur in each phase
 Workflows include business modeling, requirements, analysis,
design, implementation, test, deployment, configuration and change
management, project management, and environment
 Activities in both phases & workflows will overlap
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
67
The Unified Process
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
67
68
68
The Unified Process
● Inception
 Feasibility analyses performed
 Workflows vary but focus is on business modeling & requirements
gathering
● Elaboration
 Heavy focus on analysis & design
 Other workflows may be included
● Construction:
 Focus on programming (implementation)
● Transition
 Focus on testing & deployment
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
69
The Unified Process – Engineering Workflows
● Business Modeling Workflow
 Uncovers problems and identifies potential projects within a user
organization
 Primarily executed in inception phase
● Requirements Workflow
 Eliciting both functional and non-functional requirements
 Mostly used in inception and elaboration phases
 Use cases are developed throughout the development process
● Analysis Workflow
 Addresses the creation of an analysis model of the problem
domain
● Design Workflow
 Transitions the analysis model into the design model to
implement the system
70
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
69
70
The Unified Process – Engineering Workflows
● Implementation Workflow
 Create an executable solution based on the design model (i.e.,
programming)
 Associated primarily with elaboration and construction phases
● Testing Workflow
 Primary purpose is to increase the quality of the system
 Mostly used in elaboration, construction and transition phases
● Deployment Workflow
 Mostly associated with the transition phase
 Includes activities such as software packaging, distribution,
installation and beta testing.
 Training of the end user to use the new system
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
71
The Unified Process – Supporting Workflows
● Project Management
 is the truly cross-phase workflow and is active in all the four phases.
 Activities include identifying and managing risks, managing scope,
estimating the time to complete each iteration and the entire project,
estimating the cost of individual iteration and the whole project and
tracking the progress being made towards the final version of the system
● Configuration and Change Management
 Primary purpose is to keep track of the state of the evolving system
 Associated mostly with the construction and transition phases
● Deployment Workflow
 Addresses the development teams needs to use different tools and
processes
 Primarily involved in the inception phase but can be active in all the
phases
72
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
71
72
Unified Modeling Language (UML)
● Provides a common vocabulary of object-oriented terms
and diagramming techniques rich enough to model any
systems development project from analysis through
implementation
● Version 2.5 has 15 diagrams in 2 major groups:
Structure diagrams
 Represent the data and static relationships in an
information system
Behavior diagrams
 Depict the dynamic relationships among the instances or
objects that represent the business information system
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
73
UML Structure Diagrams
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
73
74
74
UML Behavioral Diagrams
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
75
Summary
● All systems development projects follow essentially the same
process, called the system development life cycle (SDLC)
● System development methodologies are formalized
approaches to implementing SDLCs
● The systems analyst needs a variety of skills and plays a
number of different roles
● Object-oriented systems differ from traditional systems
76
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
75
76
Summary
● Object-Oriented Systems Analysis and Design (OOSAD) uses
a use-case-driven, architecture-centric, iterative, and
incremental information systems development approach
● The Unified Process is a two-dimensional systems
development process described with a set of phases and
workflows
● The Unified Modeling Language, or UML, is a standard set
of diagramming techniques
9/19/2021
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
CSE304 Objbect‐Oriented Software
Engineering Week 1
77
Recommended Readings
1. System Analysis and Design: An Object-Oriented
Approach with UML by Alan Dennis, Barbara Haley
Wixom and David Tegarden, 5th Ed, John Wiley & Sons,
2015
 Chapter 1
CSE304
Object Oriented Software Engineering
COMSATS University, Islamabad (CUI)
77
78
78
Download