Title: 30 years of Software Engineering : from art to business ?
130 years of Software Engineering from art to
business ?
- Anne-Marie HUGUESESSI
- University of Nice Sophia Antipolis
- FRANCE
2Background
- Academic research
- compilers
- parallelism
- generic software environments
- distributed objects
- Industry
- corporate Information systems (banking)
- software environments
- OS
- Training
- Software engineering
- Data bases
- Management of Information Systems
3Agenda
- Introduction
- art /craft/ industry/business
- The software process
- Software components
- Introducing reuse
- software architecture
- changing for reuse
4Dream... Art Business
5Craft industry
Log cabin 1person 1 month
Pont du gard , Nimes, France 1st century after
Jc thousand slaves, 100 years maintained 1992 - 96
6Craft industry
Log cabin 1person 1 month
Montparnasse Tower Paris 1969 - 1972 hundreds of
workers
7Dream
Charles Babbage -1791 -1871 Note on the
application of machinery to the computation of
astronomical and mathematical tables read to the
Royal Astronomical Society on 14 June 1822.
8Meanwhilewhile
Viaduc de Gabarit 1875-1880
9Art
10Meanwhile...
Tancarville bridge France 3 477 000 working hours
1955 - 59
11Industry hardware, economy
IBM PC , 80s still improved
GUI , laptops Apple, Xerox still improved
12Meanwhile
Brotonne bridge France 1974 - 1977
13Industry
methods
1990 networks
1995
1998
14Industry challenge productivity
- Ready to assemble parts
- methods
- tools
Ile de RĂ© bridge France 1987 - 88
15Industry challenge simulation and tests
Normandie bridge France 1995
16Industry challenge maintenance
17Conclusion
18ConclusionArt / research /computer science
- Make it work
- Creativity
- Expertise
- Pleasure
- Quality
- Productivity
19Agenda
- Introduction
- The software process
- software today
- quality attributes
- quality actors
- Software components
- Introducing reuse
- software architecture
- changing for reuse
20Building software
With resources
components
New or changed requirements
New or changed software product
Software Production Process
Legacy system
Under constraints
21The software business today everywhere
- Software in the Old economy
- competitive edge
- but small part of budget
- ex
- aeronautics,
- medical equipment
- house appliances, fire alarms
- corporate information systems
- banking
- New (web) economy
- only soft
- (no) time to market
- ex
- e - business
22Old economy
- Management
- Respect of time and budget
- one project at a time
- improved during 20 years
- Problems that may occur
- costs overruns
- delays
- quality factors (standards)
- maintenance (80 of total product)
- decreasing efficiency
23New economy e-.
- Management
- very poor
- start up system
- Problems
- costs overruns
- delays
- specification
- validation
- security
24Quality requirements
- During development
- visibility
- intermediate artifact
- management of the process
- testability
- maintainability
- Traceability
- During maintenance
- accuracy
- performance (time space)
- reliability
- extensibility
- traceability
25Quality Assurance
- Enterprise quality manual
- guide lines, standards
- according to international standards ISO 9000,
CMM, DOD - Quality plan
- according to quality manual
- project management
- procedures definition
- quality evaluation (measures)
- training
- Communicate
- between developers
- between clients and providers
- documentation
26Quality Assurance
- Communicate
- between developers
- between clients and providers
- documentation
- Intermediate artifacts
- prototypes
- documents code
- tests
- milestones reviews and inspections
- Errors, defects,
- Omissions, Ambiguities,
- inconsistence
- incorrect hypothèsis,
- Control during
- development
- maintenance
- reports, meetings, reviewing process
27Quality Assurance
- Organize
- the process
- teamwork
- workflow
- tools and methods
- configuration management
- Communicate
- between developers
- between clients and providers
- documentation
- Control during
- development
- maintenance
- reports, meetings, reviewing process
28Quality standards ISO 9000...
- requirements
- complete , frozen,
- before product design
- Visibility
- artifacts
- project management and control
- Traceability
- during development
- during maintenance
Manage client /provider relationship
29Capability maturity model SEI
- Evaluate
- production process
- Position
- on a maturity grid
- 5 levels
- improve
- progressively
Improve internal process
30SPICE Project 1993 Software Process Improvement
and Capability dEtermination
- The project
- ISO 9000, ISO 12207 CMM
- tested since 99
- to be published by ISO in 2001.
- Granularity
- 29 process on a grid of 10 levels (with process
attributes as sub levels - 4 states per process not really adopted)
- Completeness
- Complexity
- Comparability
- Applicability
- Conformity
31Quality assurance
How ?
32Software Process Management
process
33Managing the process is managing quality
- WHY
- WHAT
- WHO
- WHEN
- WHERE
- HOW
- life-cycle strategy
- technology methods , tools
- organization
Workflow
34life cycle strategies
- Cartesian approach
- top down
- heuristics
- bottom up
V or waterfall life cycle old economy
(1)
Usable iterations
Operationnal solution
Incremental life cycle prototyping spiral,
fountain model DSDM, RAD new economy
(2)
35Human factors
- creativity
- not invented here syndrom
- Change reluctance
Provide usable tools
36Art or Technology?50 years of computer science
embedded applications e-business
real time applications
Scientific and corporate software batch
networks, Internet Intranet components 3
tiers application server
Personal computer distributed systems client-serve
r data bases objects and classes libraries Unix,
chips
Scientific calculus
FORTRAN COBOL multi usersystem file system real
time
Assembly language ENIAC
1945
1958
1990
2000
1975
37Aiming at Software Factory Components
INTEROPERABILITY
Reuse
38Agenda
- Introduction
- The software process
- Software components
- Components versus objects
- Component reuse
- Introducing reuse to improve quality
- software architecture
- changing for reuse
39Changing for reuse
benefits
Develop quickly new quality products
Reach interoperability
Organize reuse of business components
Extend coverage
Manage reuse
Reduce maintenance costs
Reuse products
Reduce development time
Reuse black box
Reuse code
Time investments experience
40Software reuse
- Why?
- Decrease cost
- Increase quality
- What
- code
- informally (paste)
- macro, functions
- design
- patterns
- expertise
- libraries, frameworks
- GUI
- DBMS
- application generators
41Reuse in practice
- Two ways
- Opportunistic
- reuse pieces of soft that fit the problem and
happen to be available - may work
- Planned
- explicit effort made to develop reusable
artifacts - the right abstraction
- the right level of variability
- to fit in higher level structure
- should work better
42Reuse in practice (cont)
- bottom up may work
- build pieces
- add them to a collection
- find a suitable piece
- top down should work better
- assets developed as parts fitting in a higher
level structure - assets adhere to predefined , provided and
required interfaces
43Reuse in practice
- reuse software
- over different versions
- of a same product
- reuse components
- over product versions
- and over various product
- reuse components
- over different product versions
- various products
- different organizations
44Classes and objects
- Classes
- Model
- Encapsulation
- data
- methods
- Generic
- Inheritance
- Private Public
- Objects
- a class instance
Account
balance date
consult deposit(amount)
saving
ordinary
Authorized amount
ratio
Calculate Agios
calculate interest
45Component
- Software component
- independent module
- built for reuse
- accessible via an interface
- Container
- area to assemble components
- to build an application
container
buttons components
46Software component facts
- Art / theory
- black box components
- narrow interface, single point of access
- few variation points configured during
instanciation
- Business/industry
- large piece of code with complex structure
- . object oriented framework
- interface provided by entities
- i.e. classes in the asset
- no explicit difference with non interface
entities - variation implemented through
- configuration
- specialisation or replacement of entities of the
asset
47Software component facts
- Art / theory
- standardized interfaces , can be sold on
component markets - focus on functionality
- that can be verified through formal validation
- Business /industry
- developed internally,
- if developed externally must be considerably
adapted to fit in the product line architecture - all quality attributes are of eqal importance
(performance, reliability, maintainability..)
48Component life cycle
Define scope
specify
Support
design
Adopt /reuse
Qualify
develop
validate
49Software Life cycle Component oriented process
requirements
Available components Non executable component
recollection (doc) executable component
recollection (source, tests)
Projectmanagement
Quality standards
Planification
Configurationmanagement
Analysis, design, code validation
iteration 1
Analysis, design, code validation
Analysis, design, code validation
Analysis, design, code validation
Analysis, design, code validation
Documentationmanagement
iteration n
Quality manual
iteration n
Qualitymanagement
deployment
Riskmanagement
Recollection
50The reuse process
51Organization , hierarchical
52Matrix organization
Program management
Knowledge centers
Reuse center
53Agenda
- The software process
- Quality attributes
- The actors of quality
- Software components
- Components versus objects
- Component reuse
- Architecture
- product architecture
- software architecture
54Product architecture
55Product architecture
- 3 tiers, multi tiers, n tiers
56Software architecture
Software product
Business components
Middleware components
Technical components
57Software architecture facts
- Art (research)
- design explicit architecture
- components and connectors
- Business (industry)
- old economy , critical
- described explicitly but often not actualized
- old economy , corporate
- thought of but often not described explicitly
- RAD often not thought of
- new economy
- not thought of
- no explicit first class connectors
- ad hoc solutions for run time binding)
58Software architecture facts
- Art (research)
- Architecture Design language to describe
architecture and generate applications
- Business (industry)
- programming (C) and script (make) to describe
configuration of applications
59Software product line
- Product line architecture
- product line working space
- Set of reusable components
- set of products
- architecture derived from PLA
- instantiated and configured components
- product specific code
- product working space
PLSA
components
P1
P2
60Converting to reuse
- Variability vs. commonality
- domain analysis
- products requirements
- stick to expected and required variability
61Conclusion Thumb rules
- Foresee in the long term
- Adapt architecture incrementally
- Work on actual fact
- take into account the cultural aspect
- Train people
- Measure progress to encourage
62Thank you for attention