Ch1.Overview of Software Development

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 66

Chapter 1

Overview of Software
Development

MS. Le Thanh Trong

1
Outline

1. Overview of information systems (IS)

2. System Quality

3. Software Engineering

4. Software Process

5. Develop Iteratively

2
Outline

1. Overview of information systems (IS)

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?

Depends on who you are

5
System from User’s Perspective

The program is executable on computers or


other specialized devices, in order to support
experts in each specialized field to better
perform their bussiness operations

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

❖Software from the perspective of


Informatics experts
This is a system consisting of 3 basic
components:
▪ Communication component
▪ Processing component
▪ Storage component
should be built to satisfy user requirements

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

❖Storage component (data element)


▪ Allows to write function of processed results
on secondary memory with predefined
storage organization
• Example: Borrowing books has been
checked for validity, monthly salary has
been calculated
▪ Allows to read of stored data for
corresponding processing functions

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

1. Overview of information systems (IS)

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

From the User's Perspective


21
System quality

Rightness
Compatibility: Convenience
human Efficiency
- Import/Export data
- Interact

Compatibility
System

other systems

hardware

From the User's Perspective


22
System quality

Rightness
Evolution: one of the Convenience
human
most important Efficiency
properties to be
considered in Software
Compatibility
Engineering
Evolution

System

other systems

hardware

From the User's Perspective


23
System quality

• Rightness
• Convenience
human • Efficiency
• Compatibility
• Evolution

System

other systems

hardware

From the User's Perspective


24
System quality
❖Testability: it is as easy as possible to test components to
conform to software requirements

❖Ease of Correction: when there is a nonconformity (compared


to the requirement) during the testing of a component, the exact
detection of the “fault location” and correction is as fast as
possible.
❖Ease of maintenance: when it is necessary to upgrade or
improve a component (according to new requirements), updating
the software is as fast and accurate as possible and especially
trying to limit the impact on components is different

❖Reusability: implemented components can be reused in


software of the same class (or field) with as little time and
effort as possible
………
From the point of view of an Informatics expert
25
Development of Software Engineering

❖ Phase 1 (1950 – mid 1960)


▪ Batch processing, centralized processing, less
distributed processing, less software modification

❖ Phase 2 (mid-1960s to mid-1970s)


▪ Multi-program and multi-user system
▪ The begining of the software "crisis"

❖ Phase 3 (mid-1970 to mid-1980)


▪ The development and widespread use of personal computers
▪ The development of software companies

❖ Phase 4 (from mid-1980 to present)


▪ Hardware is evolving
▪ Software systems are increasingly diverse and rich, processing is
increasingly complex, technology is increasingly developed...

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

❖ Misunderstanding what users true needs


❖ Unable to adapt to changes in system
requirements
❖ Modules do not match
❖ Software is difficult to maintain and upgrade and
expand
❖ Late detection of project flaws
❖ Poor software quality
❖ Software performance is low
❖ Team members don't know who changed what,
when, where, why to change
❖ The build-and-release process is unreliable

34
Problems arise in system development

35
Main reasons of failures

❖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

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

1. Overview of information systems (IS)

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

Methods Tools Processes

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

1. Overview of information systems (IS)

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

❖ The first loops are for high-risk problems

❖ Each loop generates an instance with an addition


to the system

❖ Each iteration includes integration and verification


48
Spiral method

Planning
Customer Communication

Customer Evaluation Risk analysis

System Analysis and Design


Implementation & Deploy

49
RAD

50
Prototyping

51
Agile method

52
Agile method

53
Comparison

Criteria for Selecting a Methodology

54
Outline

1. Overview of information systems (IS)

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

You might also like