Title: EPL603 Advanced Software Engineering
1EPL603Advanced Software Engineering
- George A. Papadopoulos
- Department of Computer Science
- george_at_cs.ucy.ac.cy
- http//www.cs.ucy.ac.cy/george
- Course URL
- http//www.cs.ucy.ac.cy/courses/EPL603
2Todays Software Development
- Development of large complex systems
- Software systems must fulfill the requirements of
stakeholders (clients, end-users, developers,) - Number of persons involved in the development gt
1 - Software systems are expected to live long and be
used by many people
3What are the Problems?
- Increased quality demands on software products
- High cost and time pressure
- Shorter time to market
- Coordination problems within the projects
- Scarce resources
4The Software Crisis/Solution
- 1968 NATO conference in Garmisch-Partenkirchen
- Software crisis (to characterize the situation)
- Software engineering (idea for a solution)
5Whats Software Crisis?
- Unacceptably low quality of software
- Delayed deadlines Average 1 year
- Over cost limits Average 2X estimate
- E.g. Air Force Command and Control system
- Initial estimate
- 1.5million
- Winners bid
- 0.4 million
- Actual cost
- 3.7 million
- After deliver?
- E.g. U.S Army study of
- Federal projects
- Delivered, but not used 47
- Paid for, but not delivered 29
- Abandoned or reworked 19
- Used after changes 3
- Used as delivered
- 2
6Example Practical Disasters
- European Space Agency Ariane 5
- Track control system failure results in self
destruction - Denver Airport
- Late delivery of software for the baggage system
delays the opening of the airport by 16 months - US study (1995) 81 billion US spend per year
for failing software development projects
7Why is Software so Hard?
- Software is Parnas, 1985
- Buggy
- Unreliable
- Forever changing
- Unwarrantable
8Definition Software Engineering
The application of a systematic, disciplined,
quantifiable approach to the development,
operation, and maintenance of software IEEE-93
9Three Ps
People
Processes
Products
10People, Processes, Products
- People
- education
- skills
- communication
- style
- .....
- Products
- requirements
- design
- source code
- executable
- user documentation
- test cases
- test results
- change request
- ....
- Processes
- planning
- coordination
- management
- measuring
- analyzing
- designing
- coding
- .....
11Scope Software Engineering
- various disciplines
- Mathematics,
- Computer science,
- Economics,
- Management,
- Psychology
- etc.
- extremely broad
- the software life cycle
- team or organization
- economic aspect
- legal aspect,
- etc.
12Why still Software Engineering?
- Has the software crisis vanished? No!
- Software projects still run over time and out of
budget - no break through in quality !!!still art
instead of engineering discipline
13What is a Distributed System?
- A collection of autonomous hosts that that are
connected through a computer network. - Each host executes components and operates a
distribution middleware - Middleware enables the components to coordinate
their activities - Users perceive the system as a single,
integrated computing facility.
14What is a Distributed System?
15Middleware Examples
- Transaction-oriented
- IBM CICS
- BEA Tuxedo
- IBM Encina
- Microsoft Transaction Server
- Message-oriented
- Microsoft Message Queue
- NCR TopEnd
- Sun Tooltalk
- Procedural
- Sun ONC
- Linux RPCs
- OSF DCE
- Object-oriented
- OMG CORBA
- Sun Java/RMI
- Microsoft COM
- Sun Enterprise Java Beans
16Centralized vs. Distributed System
- One component with non-autonomous parts
- Component shared by users all the time
- All resources accessible
- Software runs in a single process
- Single Point of control
- Single Point of failure
- Multiple autonomous components
- Components are not shared by all users
- Resources may not be accessible
- Software runs in concurrent processes on
different processors - Multiple Points of control/failure
17Real World Example Hongkong
Telecom
- Video-on-demand provide subscribers with
facilities to download videos from HK TK servers
to low-cost Web-TVs. - currently 90,000 users.
- Built using distributed object-technology.
18Requirements
- Hardware
- Clients Web-TV
- Servers RISC processor
- Operating System Heterogeneity
- Clients Java OS
- Servers UNIX
- Programming Language Heterogeneity
- Clients Java
- Servers C
- Communication across Network
- How to transmit complex data structures across
the Internet? - Scale
- Scaling from initially several hundred to
currently 90,000 users - Security
- Secure Payment
- Authentication
19Why Distributed Object Technology?
- Distributed
- Video clients need to download/show video on
customers Web-TV - Multiple servers needs to be operated by Hongkong
Telecom - Object Technology
- Video clients are written in Java
- Web-TV has Java Virtual Machine
- portability to e.g. Sony Playstation,
Sega-Console... - Video servers are written in C
- high performance
20Another ExampleIT Infrastructure of UBS
Customer Information Services
Authorisation Services
Trading Workstation
Product Database Services
Marketing Services
Host Services
21Requirements
- Time to market
- Development of new applications with recent
technology - Integration of new applications increasingly
difficult - Scalability
- Management of 30,000,000 accounts
- Management of 10,000,000 customers
- Use by 2,000 concurrent users
- Reliability
- Hardware Heterogeneity
- Unisys Mainframes
- IBM Mainframes
- SPARC Servers
- PC Workstations
- Operating System Heterogeneity
- MVS
- UNIX
- Win-NT
- Programming Language Heterogeneity
- Cobol
- C/C
- Visual Basic
22Why Distributed Object Technology?
- Uniform view of all banking services
- Appropriate level of abstraction
- Preserving investment by wrapping legacy
applications - Exploiting advantages of object technology for
new development - Resolving
- distribution
- heterogeneity
23Boeing 777 Configuration Mgmnt.
24Requirements
- Scale
- 3,000,000 parts per aircraft
- Configuration of every aircraft is different
- CAA regulations demand that records are kept for
every single part of aircraft - Aircraft evolve during maintenance
- Boeing produce 500 aircraft per year
- Configuration database grows by 1.5 billion parts
each year - Projected life of each aircraft 30 years
- 45,000 engineers need on-line access to
engineering data
25Requirements
- COTS Integration
- Existing IT infrastructure was no longer
appropriate - Boeing could not afford to build required IT
infrastructure from scratch - Components were purchased from several different
specialized vendors - relational database technology
- enterprise resource planning
- computer aided project planning
- Components needed to be integrated
26Requirements
- Heterogeneity
- 20 Sequent database machines as servers for the
engineering data - 200 UNIX application servers
- NT and UNIX workstations for engineers
27Why Distributed Object Technology
- Object wrapping of COTS
- Resolution of distribution at high level of
abstraction - Resolution of heterogeneity
- Scalability
28Distributed System Requirements
- Integration of new, legacy and components
off-the-shelf - Legacy components might not need to be
re-engineered - COTS cannot be modified
- Heterogeneity of
- hardware platforms
- operating systems
- networks
- programming languages
- Construction of distributed systems
29Course Content - 1
- Introduction to Components and Component-Based
Software Engineering - Fundamental Concepts
- Components vs Objects
- Patterns
- Software Architectures
- Coordination Models and Language
- Software Composition
30Course Content -2
- Middleware Platforms and Component Based Systems
Development - COM/DCOM/ActiveX
- CORBA
- Jini
- Development of Component Based Systems
- Architectures and Component Frameworks
- Development of Components in Distribute Systems
- Related Programming Languages
- Configuration Management