Professional Documents
Culture Documents
Design
(IENG2306/SIE 277)
6
Software development
• It is initiated
• by end users
– real problems on the day to day task
• By mangers
– Looking for effectiveness and efficiency
• By technical personnel
– Sensing new opportunities and technologies
What is system/software?
• Computer programs and associated documentation
such as requirements, design models and user
manuals.
• Software products may be developed for a particular
customer or may be developed for a general market.
• System products may be
– Generic - developed to be sold to a range of different
customers e.g. PC software such as Excel or Word.
– Bespoke (custom) - developed for a single customer
according to their specification.
8
What are the attributes of good
system/software?
• The software should deliver the required functionality and
performance to the user and should be maintainable,
dependable and acceptable.
– Maintainability
• Software must evolve to meet changing needs;
– Dependability
• Software must be trustworthy;
– Efficiency
• Software should not make wasteful use of system resources;
– Acceptability (meet users requirement)
• Software must accepted by the users for which it was designed. This means it
must be understandable, usable and compatible with other systems.
9
Software Quality...
• Usability
– Users can learn it and fast and get their job done easily
• Efficiency
– It doesn’t waste resources such as CPU time and memory
• Reliability
– It does what it is required to do without failing
• Maintainability
– It can be easily changed
• Reusability
– Its parts can be used in other projects, so reprogramming
is not needed
10
Perspectives of System/Software Quality
Customer: User:
solves problems at easy to learn;
an acceptable cost in efficient to use;
terms of money paid and helps get work done
resources used
QUALITY
SOFTWARE
11
Types of system/Software...
• Based on application nature
– Custom
• For a specific customer
– Generic
• Sold on open market
• Often called
– COTS (Commercial Off The Shelf)
– Shrink-wrapped
– Embedded
• Built into hardware
• Hard to change
12
Software Development Life Cycle
• SDLC has several clearly defined phases
• Requirements gathering What does the user want?
• Systems analysis Understanding/documenting requirements
• Design Planning a possible solution
• Implementation Building a solution
• Testing the implementation Ensuring it meets requirements
• Requirements gathering and systems analysis are performed
iteratively.
• Design/Implementation/Testing are done sequentially.
13
Challenges of System Development
• How well are systems built?
– Total Failure 15%
– “Challenged” 51%
– Successful 34%
• In 1994 Successful System was only 17%!
• Challenged means…
– Delayed, budget, or lacking critical
features/requirements
14
System development / Software Engineering Process
15
Structured Vs Object Oriented Approaches
• Structured paradigm
– Modes processes and data separately
– Suitable for small sized software
• Object oriented paradigm
– Integrates process and data together
– Objects are identified as having data and function
16
Object-oriented development
• Object-oriented analysis, design and programming
are related but distinct.
• OOA is concerned with developing an object model
of the application domain.
• OOD is concerned with developing an object-
oriented system model to implement requirements.
• OOP is concerned with realising an OOD using an OO
programming language such as Java or C++.
Characteristics of OOD
• Objects are abstractions of real-world or system entities and
manage themselves.
• Objects are independent and encapsulate state and
representation information.
• System functionality is expressed in terms of object services.
• Shared data areas are eliminated. Objects
communicate by message passing.
• Objects may be distributed and may execute
sequentially or in parallel.
Interacting objects
Basic Principles of Object Orientation
Object Orientation
Encapsulation
Abstraction
Modularity
Hierarchy
What is Abstraction?
Salesperson
Not saying
Which
salesperson –
just a
salesperson
in general!!!
Product
Customer
Manages Complexity
What is Encapsulation?
• Hide implementation from clients
– Clients depend on interface
Improves Resiliency
What is Modularity?
• The breaking up of something complex into
manageable pieces Order
Entry
Order Processing
System Order
Fulfillment
Billing
Manages Complexity
What is Hierarchy?
Asset
• Levels of abstraction
Increasing
abstraction
BankAccount Security RealEstate
– Physical entity
Truck
– Conceptual entity
Chemical Process
ProfessorClark
Class Name Only
Professor Clark
ProfessorClark
Class Name Only
Professor Clark
ProfessorClark :
Professor Object Name Only
OO Principle: Abstraction
Sample Class
Class
Course
Properties Behavior
Name Add a student
Location Delete a student
a + b = 10
Days offered Get course roster
Credit hours Determine if it is full
Start time
End time
Class Compartments
• A class is comprised of three sections
– The first section contains the class name
– The second section shows the structure
(attributes)
– The third section shows the behavior (operations)
Class Name Professor
name
Attributes empID
Operations create( )
save( )
delete( )
change( )
The Relationship Between Classes and
Objects
• A class is an abstract definition of an object
– It defines the structure and behavior of each
object in the class
– It serves as a template for creating objects
Class
• Objects are grouped into classes
Professor
Objects
Professor Jones
What is an Attribute?
Object
Class
CourseOffering
Class
addStudent
deleteStudent
getStartTime
Operation getEndTime
39
What is Polymorphism?
• The ability to hide many different
implementations behind a single interface
Manufacturer B Manufacturer C
Manufacturer A
OO Principle:
Encapsulation
What is an Interface?
• Interfaces formalize polymorphism
• Interfaces support “plug-and-play”
architectures Circle
<<interface>>
Shape
Pyramid
Draw
Move
Scale
Rotate Cube
<<subsystem>> Component
Component Name Name
Component Component
Interface Interface
Association
Role Names
Class University
Professor
Employee Employer
Relationships: Aggregation
• A special form of association that models a
whole-part relationship between an aggregate
(the whole) and its parts
Whole Part
Student Schedule
Aggregation
Relationships: Composition
• A form of aggregation with strong ownership
and coincident lifetimes
– The parts cannot survive the whole/aggregate
Whole Part
Person bodyOrgans
Aggregation
Example: Multiplicity and Navigation
Multiplicity
Navigation
Review: Introduction to Object
Orientation
• What are the four basic principles of object
orientation? Provide a brief description of each.
• What is an Object and what is a Class? What is
the difference between them?
• What is an Attribute?
• What is an Operation?
• What is an Interface? What is Polymorphism?
• What is a Component?
(continued)
Review: Introduction to Object
Orientation (cont.)
• What is a Package?
• What is Subsystem? How does it relate to a
Component? How does it relate to a package? How
does it relate to a class?
• Name the 4 basic UML relationships and describe each.
• Describe the strengths of object orientation.
• Name and describe some general UML mechanisms.
• What are stereotypes? Name some common uses of
stereotypes.