Title: Lecture 19 Chapter 9 (to the end) Chapter 11 (start) (Note
1Lecture 19Chapter 9 (to the end)Chapter 11
(start)(Note we will not be covering chapter
10 Designing Databases)
2Inheritance, Overriding and Polymorphism
- Strength of OO development
- Built-in capabilities that facilitate programming
and maintenance - Class inheritance represents generalization and
specialization - Specialization classes inherit the attributes and
relationships of the parent class - When naming a class, including the name of the
parent class indicates that a class is a
specialization class that will inherit both the
attributes and the methods of the parent class - Syntax is to name class with
- Class Name Parent Class
- Example class Savings Account inherits from
Account - Savings Account Account
3Account
Account number Balance Date opened
Make deposit Make withdrawal
Savings AccountAccount
Checking AccountAccount
Check style Minimum balance
Interest rate
Calculate interest
4Inheritance (continued)
- The notation Checking Account Account
indicates that checking account is a
specialization of account - This means a checking account inherits attributes
such as Name and Address and methods like
MakeDeposit and MakeWithdrawal - This inheritance happens automatically
- Good to use inheritance when you can
5Overriding inheritance
- Override to enable a method in a sub-class to
replace the logic from the method in the parent
class - e.g. suppose the application requires that a
savings account be opened with a minimum deposit
of 100 - So the CreateAccount method for a savings account
would be a little different than for other kinds
of accounts - By defining the method in the subclass, you
override the method as it is described in the
superclass see next slide the definition of
Make deposit in the subclass overrides the one in
the superclass
6Account
Account number Balance Date opened
Make deposit Make withdrawal
Savings AccountAccount
Checking AccountAccount
Check style Minimum balance
Interest rate
Make deposit Calculate interest
7Polymorphism
- Polymorphism the reuse of methods for different
classes that are distinct even though they may
have the same name and parameter list - E.g. if we define a method in the Customer class
called GetBalance, we can also define a method in
the Account class also called GetBalance, and the
two would do different things (e.g. the one in
Customer returns the sum of all savings and
checking accounts, while in the Account class it
would only return a balance for that single
account
8Integrating the Object-oriented application
design with user interface design,database
design and network design
- We have focused mostly on application design
above - Regarding the user interface
- Since the OO design results in a set of
independent interacting classes the overall
structure of the system will not change due to
the user interface - A set of interface classes are designed and added
to the overall class diagram - There are many already built tools and libraries
of components that can be used with OO interface
design - Can involve selecting a library of tools,
designing reports and forms and inserting logic
within the methods to access them - Design of the application classes is best done in
conjunction with the design of the user interface
9- Regarding the database
- Database access is usually provided through a set
of database classes - Some OO languages can automatically read and
write to the database, while others require
specific calls to database interface objects - Identifying the target language and database
system is important in order that appropriate
integration can be done during design - Regarding networks
- Object-oriented applications frequently execute
in a distributed environment - Individual objects (or classes) can be assigned
to separate nodes - However, appropriate middleware will be necessary
to ensure there is no conflicts between objects
10Need for Project Coordination
- Coordinating all the activities during design can
be difficult - Many business rules may have to be incorporated
in the system - Management may still be making decisions while
the project is being developed - Projects begin to fragment based on number of
design issues to be addressed
11- The system may need to be subdivided into
subsystems - Each subsystem may have its own unique design
requirements - The project team may be divided into smaller
teams to focus on the various subsystem - Some technical issues (e.g. network
configuration, database design etc.) may be
common to all subsystems - Others (e.g. response time etc.) may be limited
to specific subsystems - All of these teams will need to be coordinated
12- Two mini projects may be initiated at this point
- Data conversion project
- Test case development project
- Activities of implementation phase, such as
programming, begin around this time - Often design and programming may be conducted
concurrently - Other complications
- In addition to groups working on design issues,
groups of programmers may also be getting added
to the team - Also people may be working at different locations
- Communication becomes exponentially more
complicated as more people get added! - Project management tools and techniques are needed
13Coordinating Project Teams
- Fundamental tool in coordinating activities of
the project team is the project schedule - The project manager must update the project
schedule as time goes by - During the analysis phase project management is
often done by the project manager and an
assistant. - Once the project expands and several teams are
formed a committee may be formed of the leaders
of the key design and implementation teams and
may carry out more of the coordination and
control - Weekly and sometimes daily status meetings may be
held
14Coordinating Information
- Development of design models generates a great
amount of detail - Modules, classes, data fields, data structures,
forms, reports, methods, subroutine details are
defined in detail - Takes a lot of coordination to keep track of all
the information - Two kinds of tools help
- CASE tools (with a central repository to capture
information) - Central repository allows all teams to view
project information (see next slide)
15(No Transcript)
16- Other electronic tools to help with team
communication and information coordination - Computer support for collaborative work (CSCW)
- Allows for team members to work on and
dynamically update working documents or diagrams - One such system is Lotus Notes
- A difficult part of the development project is to
keep track of open items and unresolved issues - Can have an open items control log
- A sequential list of all open items with
information to track responsibilities and
resolution of the open items (see Appendix A)
17Chapter 11- Designing Inputs, Outputs, and
Controls
- Major issue in the design of systems
- How to provide access to required information
while at the same time protecting the information
from damage (both accidental or intentional) - Integrity controls
- Mechanisms and procedures that are built into the
system to safeguard both the system and the
information contained in the system - E.g. how do we ensure that only a manager sees
sensitive pay information? - E.g. How does a company using a LAN protect its
sensitive data from outsiders?
18Objectives of Integrity Controls
- Ensure that only appropriate and correct business
transactions occur - Focuses on identification and capture of input
transactions to ensure that all important
transactions are included and fraudulent ones are
not entered - Ensure that the transactions are recorded and
processed correctly - Controls used to alert users to data-entry errors
and system bugs - Protect and safeguard the assets of the
organization - Protect from crashes, catastrophes and hackers
etc.
19System Access Controls
- System access controls mechanisms that restrict
or control what portions of the computer system a
person can use - Includes controls to limit access to certain
applications or functions, the computer itself or
pieces of data - Most systems build on the access control already
within system software - Categories of users
- Unauthorized user a person who does not have
authorized access to a system - E.g. former employees and oustiders like hackers
and intruders - Registered user a user who is registered or
known to the system and is authorized to access
some part of it - Different levels of access are defined for
different users - Privileged user a user who has special security
access privileges to a system - E.g. system programmers, application programmers,
operators etc.
20(No Transcript)
21- Physically securing locations
- Physically secure locations protect physical
equipment such as computers, hard disk storage
devices and backup data tapes - Some mainframe computers require supervisory
functions be done at a specific console - Managing User Access
- Most common methods
- A user identifier (ID) and password
- Two techniques to define passwords
- Computer can randomly generate and assign
passwords - Each user can define his or her own password
- Security system should be organized so all
resources can be accessed using the same unique
identifier and password (so dont have to know
many of these within one organization) - Some companies require password changes every 30
days - Systems keep record of attempted (unsuccessful)
logins
22- Controlling Access with Visibility
- An important type of control determines what each
user actually sees and must be integrated into
the application system itself - Designers define and develop the various levels
of visibility and access - Defined by
- The various classes of registered users
- Which functions, screens, forms, fields, reports
etc. will be available to those classes of users - E.g. a salesperson may be able to see their own
orders, sales and commisions - A supervisor may be able to view the performance
of salespeople in his area etc. - Level of visibility increases with level of
authority and responsibility in an organization
23Input Integrity Controls
- Input integrity controls are used with all
mechanisms - From specific electronic devices to standard
keyboard inputs - Input controls are an additional level of
verification that helps reduce errors on input
data an input device cannot ensure that all the
necessary fields have been entered so need this
additional level of verification or control - Historically the most common method to ensure
correct input was to enter data twice (keypunch
verify) - Other methods are used today (see next slide)
24Common techniques used to verify input
- Field combination controls
- Review various combinations of fields to ensure
that the correct data is entered. Eg. On an
insurance policy the application data must be
prior to the policy date - Value limit controls
- Check numeric fields to make sure that the amount
entered is reasonable. E.g. the amount of a sale
or the amount of a commission should fall within
a range - Completeness controls
- An integrity control to ensure that all necessary
fields on an input form have been entered (e.g.
if a dependent is entered on a form, then that
persons birthday must also be entered)
25- Data validation controls
- Ensure that numeric fields that contain codes are
correct - E.g. bank account numbers might be created with a
7 digit field and a trailing check digit to make
an 8 digit account number - The check digit is based on the previous seven
digits, and the system recalculates it (using
data entered) as the the data-entry person enters
the account number with check digit - If the results dont match an error has occurred