Title: Johns Hopkins University Software Engineering Fall 2002
1Johns Hopkins UniversitySoftware
EngineeringFall 2002
- 5 November 2002
- Bill Akin
2Tonights Agenda
- Review the in-class exam
- Additional object-oriented concepts
- Architectures
- Infrastructures
- Analysis
- Modeling
- Requirements specification
- The revised schedule
3Definition
- An object is an entity or module that has a state
and a defined set of operations to access and
modify that state. (an old definition) - We can also think of an object as a closed
system, subsystem, or component that maintains
its own state, accepts a specified set of
messages (usually called methods), provides
responses, and/or performs pre-defined functions. - No external entity is able to see inside a
correctly constructed object or directly control
any of the objects internal processes.
4Methods, Operations, and Attributes
- Methods are the messages we send to objects that
cause them to perform actions. - Operations are the things we cant see that
happen inside the objects to accomplish their
defined actions. - Attributes are the things an object knows about
itself, e.g., its state data. - Users of an object cannot see its operations or
attributes.
5Concepts
- I have an abstract data class called CHECKING.
- I can create an object of that class and use it.
- Here are some methods
- PFCU.ESTABLISH as CHECKING with 1001
- PFCU.DEPOSIT 500
- PFCU.CHECK 25 Daily Times Herald
- print PFCU.BALANCE
- PFCU.REGISTER 1-January-2001 31-March-2001
6Applications
- I have an object-oriented air traffic control
system. - Here are some object concepts and methods
- RECEIVE_HANDOFF.3666R Denver
- SHOW.3666R
- PASS_HANDOFF.3666R Dallas
- SHOW_ALL FL3 FL6
- DISPLAY_SPEED.3666R
- DISPLAY_ETA.3666R VOR.Pecos
- DISPLAY_PILOT.3666R
7Special Object Uses
- Collaborative -- An object used in support of
another object. A CHECKING object can use the
services of a DATABASE object to maintain its
state. This is hidden from the users of the
CHECKING object. - Guardian -- An object visible to the enterprise
that provides the only available access to
another resource. - These two concepts can enable many objectives.
8Architecture
- Software architecture
- the structure of the components of a
program/system, their interrelationships, and
principles and guidelines governing their design
and evolution over time. - Definition from the SEI
9Architecture
- Architecture
- A minimal set of rules governing the arrangement,
interaction, and interdependence of the parts or
elements of a system whose purpose is to ensure
that a conformant system satisfy a specified set
of requirements. - Identifies the services, interfaces, standards,
their relationships. - Provides the technical guidelines for
implementation of systems upon which engineering
specifications are based, common building blocks
are built, and product lines are developed. - Ingredients
- Rules Design Rules, Standards, Conventions
- Reference model(s)
10What is an Architecture?
- Definition The structure of components, their
interrelationships, and the principles governing
their design and evolution. - Architecture types
- Operational
- Technical
- System
11Object-Oriented Architecture
- I will discuss the concept of object-oriented
techniques applied to the development and
maintenance of information processing
architectures. - I will outline the goals and objectives of the
approach and the way I believe the objectives can
be met. - I will provide some simple examples of
architecture level objects and discuss their
implementation.
12Goals and Objectives
- Goals
- Improve the ability to maintain an information
system, application, or enterprise - Extend the useful life of an information system
- Enable inclusion and evolution of legacy elements
in an information system - Objectives
- Reduce the breakage for change requests
- Abstract system component implementation detail
- Shroud incorporated components
13Definition Information System
- An Information System is a set or arrangement of
elements organized to accomplish some predefined
goal by processing information. - According to Fred Brooks, The hardest single
part of building a software system is deciding
what to build.No other part of the work so
cripples the resulting system if done wrong. No
other part is more difficult to rectify later.
14OO Architecture Classes
Client Class
DB Class
- An information system built on an object-oriented
architecture has a set of classes, rules for
using them, and an infrastructure that holds it
all together. - In the example we show two classes and an
infrastructure. - We can build a system using objects that are
instances of the classes and plugging them into
the infrastructure.
15Some Sample Classes
- User Application
- Server Application
- Archive Application
- Database Server
- Backup Server
- External Access Server
16OO Architecture Concept
DB-A
Client 2
Client 1
DB-D
DB-B
DB-C
New Client
- We could build a plug-and-play architecture.
- New databases can be plugged in.
- New Clients can be plugged in.
- It is a maintainable enterprise on a
plug-and-play architecture.
New DB
17Example Object-oriented Architecture
User-II
Sys-B Data Manager
User-I
Sys-A Data Manager
Sys-B Backup
Security Admin
Sys-A Load Processor
Sys-C Data Manager
Audit Trail Archiver
Security Admin
Sys-B Load Processor
Loads Admin
Zip Data Manager
18Implementations
- Remember the objectives?
- Reduce the breakage for change requests
- Because state and process implementation are
completely contained in an object, only the
internal components are broken. - Abstract(v) component implementation detail
- By definition all details of an object
implementation are hidden. - Shroud incorporated components
- Use guardian objects to own foreign components
brought into a system.
19Global Resources
- Global resources should be treated as abstract
objects. - A guardian object should own such servers.
- As an example, consider a database to hold a
companys inventory. The guardian is an object
that advertises methods to its clients. - Inside the guardian are commands understood by a
small access database. - If we change to oracle, only the guardian is
modified, not the clients in our system.
20Technical Architecture
- Technical Architecture
- A minimal set of rules governing the arrangement,
interaction, and interdependence of the parts or
elements of a system whose purpose is to ensure
that a conformant system satisfies a specified
set of requirements. - Identifies the services, interfaces, standards,
their relationships. - Provides the technical guidelines for
implementation of systems upon which engineering
specifications are based, common building blocks
are built, and product lines are developed. - Ingredients
- Rules Design Rules, Standards, Conventions
- Reference model(s)
21Information Infrastructure
- An information infrastructure is an integrated
collection of elements based on technical
architecture components that form the foundation
on which functional components are supported - An infrastructure may contain global resources
available to all enterprise users - Standard interfaces enable infrastructure use
22CII Concept of Operations
Internal
External
CII
Our Systems Outside the CII
Type III Applications
Type II Applications
Type I Applications
External Systems
Interoperability Services
Interoperability Services
Corporate Database (CD)
Pre-existing External Interfaces
CII Common Environment
- Infrastructure Services
- Hardware and Software Platforms
CII External Interfaces
Common Support Applications
Corporate Warehouse (CW)
Corporate Repository (CR)
COE
23CII Layers
CII Component A
CII Component B
Virtual Connection
Request
API
Response
Request
API
Response
Request
Response
Request
Response
COE APIs
COE APIs
Request
Response
Request
Response
Interfaces
Interfaces
Actual Connection
24Context
Client
Server
Virtual Connection
Layer - 1
Layer - 1
1 - PDU
Layer - 2
Layer - 2
2 - PDU
Layer - 3
Layer - 3
3 - PDU
Layer - 4
Layer - 4
4 - PDU
Common Operating Environment (COE)
25Anatomy of a Layer
N service primitive (request or response)
N service primitive (confirm or indication)
Layer-N
N-1 service primitive (request or response)
N-1 service primitive (confirm or indication)
Terms
SAP Service Access Point SDU Service Data Unit
26Anatomy of a Layer External View
N service primitive (request or response)
N service primitive (confirm or indication)
Layer-N
N-SAPs
Term
SAP Service Access Point
N-SAPs
N-1 service primitive (request or response)
N-1 service primitive (confirm or indication)
27Anatomy of a Layer Internal View
N-SAPs
Layer-N
Term
SAP Service Access Point
N-Service Entity
N-SAPs
28Analysis and Modeling
- Data modeling specify all data produced or
consumed by the system - Functional modeling and information flow all
data flows and related functional processes - Behavioral Modeling state transition diagrams
or finite state machines - User interface uses and use cases or other
prototyping models - Now lets work an example together
29Specify Requirements
- Identify major, intermediate, and minor
functional views and elements - Break a document into their boundaries
- Write a descriptive narrative at each level
- At the lowest (minor) level write all the
requirement statements that specify that element - Each requirement statement is either a capability
or a constraint. - Now lets expand our example
30Where are we
- Six class meetings left including tonight
- Project needs to be completed, demonstrated, and
delivered - Several topics left to be covered, including
- Design
- Testing
- SCM
- SQA
- Component-based design
- Additional object-oriented techniques
31Schedule
- Class Date Chapters Events and Deliveries
- 10 12-Nov 8, 9, 24 Deliver requirements
document - 11 19-Nov 17, 18 High Level Design Presentation
- 12 26-Nov Deliver high level design document
- 13 3-Dec Final Exam
- 14 10-Dec Project Demonstrations - Deliver
project