Professional Documents
Culture Documents
Ch1.Overview of Software Development
Ch1.Overview of Software Development
Ch1.Overview of Software Development
Overview of Software
Development
1
Outline
2. System Quality
3. Software Engineering
4. Software Process
5. Develop Iteratively
2
Outline
2. System Quality
3. Software Engineering
4. Software Process
5. Develop Iteratively
3
Information Systems
❖ Ex: some of the following systems
▪ High school student management systems
▪ Library management systems
▪ Bookstore management systems
▪ Hotel management systems
▪ Private office management systems
▪ Savings book management systems
▪ Football Championship Management systems
▪ Flight ticket management systems
▪ Dealer management systems
▪ Timetable systems
4
What is a System?
5
System from User’s Perspective
6
Environment and Roles
❖ IS deployment environment
❖ Computer: Desktop, Laptop, Tablet PC,…
❖ Specialized equipment:
❖ Mobile devices: PDAs, Pocket PCs, Mobile phones…
❖ Other specialized devices: set-top box, router,
firewall,..
❖ Support to do better business operations
❖ Business computerization is currently done
manually
❖ Business functional improvements are currently
being done on the desktop
❖ Propose, build and deploy new professional functions
7
From Informatics Experts Perspective
8
From Informatics Experts Perspective
❖ Communication component (Interface)
▪ Allows receiving requests for software use from
users, from data collection devices
▪ Allows to present the results of the execution or to
control the operation of the control devices
▪ The main goal of this component is to bring
information from the outside the software (users,
devices, other systems...) to the inside (or in to out)
9
From Informatics Experts Perspective
❖Processing component
▪ Check the validity
• for example: only lend a maximum of 3 books, each class
does not exceed 50 students…
▪ Perform the processing that gives the expected
results
• for example: rules for calculating correctly when returning
books, regulations for calculating electricity bills, payments
when buying a house, etc.
▪ Process according to the self-suggested
algorithm
• for example: automatic scheduling, compressing images,
play chess with computer,...
10
From Informatics Experts Perspective
❖Processing component
▪ Processing is based on source information
provided by the user
• for example, calculate the solution of a quadratic equation
based on the input (x variable)
▪ Or available stored data
• for example, calculate inventory based on stored input/output
▪ Or both
• for example, calculate a penalty based on the return date
entered and information about the type of book stored
11
From Informatics Experts Perspective
12
Common points for both
❖ IS is the system can receive data (input), store
and process data, to produce information
(output) for decision making
❖ Can be done manually or by computer
❖ The organization's information system includes:
▪ An information base that includes one or more other
sources of information;
▪ A set of processes that are performed by a person
or machine to retrieve, update and process
information (information operation)
13
Levels of Information Management
14
Transaction Processing Systems
15
Real-Time Systems
16
Management Information Systems
17
Outline
2. System Quality
3. Software Engineering
4. Software Process
5. Develop Iteratively
18
System quality
Rightness:
- Fully
human
- Exactly
Rightness
System
other systems
hardware
From the User's Perspective
19
System quality
Convenience
Rightness
Convenience:
human
- Easy to learn
- Easy to use
- Intuitive interface
System
other systems
hardware
From the User's Perspective
20
System quality
Rightness
Efficiency: Convenience
human
- Optimize CPU usage
- Optimize memory usage
- Optimize device usage
System
Efficiency
other systems
hardware
Rightness
Compatibility: Convenience
human Efficiency
- Import/Export data
- Interact
Compatibility
System
other systems
hardware
Rightness
Evolution: one of the Convenience
human
most important Efficiency
properties to be
considered in Software
Compatibility
Engineering
Evolution
System
other systems
hardware
• Rightness
• Convenience
human • Efficiency
• Compatibility
• Evolution
System
other systems
hardware
26
Software Crisis
❖Is a term used in the early days
of computing science for the difficulty of
writing useful and efficient computer
programs in the required time
❖Was due to the rapid increases in
computer power and the complexity of the
problems that could now be tackled
❖With the increase in the complexity of the
software, many software problems arose
because existing methods were
inadequate.
27
Software Crisis
❖The crisis manifested itself in several
ways:
▪ Projects running over-budget
▪ Projects running over-time
▪ Software was very inefficient
▪ Software was of low quality
▪ Software often did not meet requirements
▪ Projects were unmanageable and code
difficult to maintain
▪ Software was never delivered
28
Statistics on software projects
❖ The Robbins-Gioia Survey (2001)
▪ Survey over 232 people working at companies implementing
ERP systems. 51%: failed. The remaining 49% (46% cannot be
upgraded)
❖ The KPMG Canada Survey (1997)
▪ Surveyed over 1450 questionnaires, analyzed 176 cases
▪ 61% of projects are considered failures
▪ More than a third of the projects exceeded the original
estimated budget
▪ The annual budget loss for information technology projects
reaches billions of dollars ($25 billion per year, Canada)
29
Statistics on software projects
❖The Chaos Report (1995)
▪ 365 answers for 8,380 applications
▪ 31.1% canceled
▪ 52.7% exceed 189% exceeded the
original estimated budget
▪ 16.2% on time, on budget
❖The OASIG Study (1995)
▪ 7/10 projects are failures
(Source: Ó IT Cortex)
30
Software Crisis
❖The defects of software have their main
origin in the method, manner and
process of building software:
▪ Sentiment: each person in their own way
▪ Rough, simple: focus only on programming but pay little
attention to other tasks to be done (status survey,
requirements analysis, design...)
▪ Manually: lack of tools to support the development
process
31
SD notices
❖ Building a system depends on technological
development
❖ The key role of software engineering
❖ Applications: increasingly expanded and more
complex
❖ High market demand: increasing productivity,
improving quality but reducing time
❖ The shortage of qualified human resources
32
Challenges
❖ Challenge
▪ Technology changes fast
▪ Software development is a team work
▪ Specialization and distributed work
❖ Conclusion
▪ 1 IT Project: Failure rate is more than success
▪ Only 1 out of 5 projects can really meet the demands
▪ The bigger the project, the higher rate of failure
➔ There is small success but too many failures
33
Problems arise in system development
34
Problems arise in system development
35
Main reasons of failures
36
Main reasons of failures
❖Incomplete verification
❖Subjective assessment of the status of the
project
❖Delay in risk reduction due to waterfall
model
❖The uncontrollable spread of changes
❖Lack of automation tools
37
Core causes
38
Outline
2. System Quality
3. Software Engineering
4. Software Process
5. Develop Iteratively
39
Software engineering
❖ Software engineering is the science of building
quality software in a reasonable time and cost
❖ The basic task of software engineering is to
mastering the complexity of the development
Software engineering
40
Software engineering
❖Software Process
▪ The set of phases that the software
development process must go through
▪ For each stage it is necessary to clearly
define:
• Objectives, results received from the
previous period
• Transfer results for the next period
41
Software engineering
❖Software development
methodology
▪ A system of instructions that allows a step-by-
step implementation of a certain stage in the
software process
❖Tools and SD Environment
▪ System of supporting software in the field of
software construction
▪ Support IT professionals in software
development steps in a certain way with a
pre-selected process
42
SD process
❖ General process determines
43
Outline
2. System Quality
3. Software Engineering
4. Software Process
5. Develop Iteratively
44
Software Development Life Cycle
45
Waterfall method
Waterfall method
Time
46
V model
47
Iterative and incremental
Iteration 1 Iteration 2 Iteration 3
Time
Planning
Customer Communication
49
RAD
50
Prototyping
51
Agile method
52
Agile method
53
Comparison
54
Outline
2. System Quality
3. Software Engineering
4. Software Process
5. Develop Iteratively
55
Develop Iteratively
56
Develop Iteratively
57
Develop Iteratively
❖Software problems are 100 to 1000 times
more costly to find and repair after
deployment
58
Manage Change
❖Change requests come from many sources
throughout the product lifecycle
59
Manage Change
❖To avoid confusion, should make/apply:
▪ Secure workspaces for each developer
▪ Automated integration/build management
▪ Parallel development
60
Manage Change
❖Unified Change Management (UCM) involves:
▪ Management across the lifecycle
• System
• Project management
▪ Activity-based management
• Tasks
• Defects
• Enhancements
▪ Progress tracking
• Charts
• Reports
61
Manage Change
❖Rational Unified Process Implements Best
Practices
62
Rational Unified Process - RUP
❖ Iterative approach
❖ Guidance for
activities and
artifacts
❖ Process focus on
architecture
❖ Use cases that
drive design and
implementation
❖ Models that
abstract the
system
63
Summary
❖ From user's perspective
▪ Software is the program which can execute on
computers/specialized devices, in order to support
experts in each specialized field to better perform their
bussiness operations
▪ Software Quality: Rightness, Convenience, Efficiency,
Compatibility, Evolution
❖ From the perspective of informatics expert:
▪ Software is a system consisting of 3 basic components:
Communication, Processing, Storage
▪ Software Quality: Reusability, Ease of maintenance,
Ease of Correction, Testability
64
Summary
❖ 1960s to mid-1970s, the begining of the software
"crisis“ caused of some main reasons:
▪ Inadequate user request management
▪ Exchange of vague and incomplete information
▪ Unstable architecture
▪ The complexity is out of control
▪ There are undetected conflicts between requirements, design, and
implementation
▪ Incomplete verification
▪ Subjective assessment of the status of the project
▪ Delay in risk reduction due to waterfall model
▪ The uncontrollable spread of changes
▪ Lack of automation tools
65
Summary
❖ Software Engineering is the science of building
quality software in a reasonable time and cost,
based on
▪ Methods
▪ Tools
▪ Processes
❖ Need a more efficient methods of system
development, especially change management
process
❖ Rational Unified Process Implements Best
Practices for change management
66