Lecture 1
Lecture 1
Hardware
Development
Percent of total cost
60
Software
20
Maintenance
3
POINT TO PONDER
4
DEFINITION (IEEE)
5
CENTRAL THEMES
6
BUILDING SOFTWARE ~ BUILDING BRIDGES?
yes, and no
software is logical, rather than
physical
progress is hard to see (speed
progress)
software is not continuous
Tacoma Narrows bridge
https://www.youtube.com/watch?v=j-zczJXSxnw
7
BUILDING SOFTWARE - SIMPLE LIFE CYCLE MODEL
Design Testing
Problem Model Working System
Requirements
Engineering
Implementation Maintenance
8
SIMPLE LIFE CYCLE MODEL
13
TESTING
14
MAINTENANCE
15
DOCUMENTATION
Includes
Project Plan / Business Requirements
Quality Assurance Plan
Software Requirements Specification
Functional Specification
Architecture Description
Design Documentation
User Interface Requirements
Test plan
16
GLOBAL DISTRIBUTION OF EFFORT
40-20-40 rule
requirement
engineering
20% Only 20% spent on coding
testing Put more energy on
45%
design requirements rather than
15%
removing errors while testing
testing
implementation
design
requirement engineering
maintenance
70%
18
KINDS OF MAINTENANCE ACTIVITIES
Corrective
correcting errors
Adaptive
adapting to changes in the environment
(both hardware and software)
Perfective
adapting to changing user requirements
Preventive
Increasing future maintainability (adding
comments, updating documentation)
19
DISTRIBUTION OF MAINTENANCE ACTIVITIES
corrective 21%
perfective 50%
adaptive 25%
preventive 4%
20
POINT TO PONDER
You are a tester, and the product you are testing does not yet meet
the testing requirements agreed upon in writing. Your manager
wants to ship the product now, continue testing so that the next
release will meet the testing requirements. What do you do?
21
HAMMURABI’S CODE
64: If a builder build a house for a man and do not make its
construction firm, and the house which he has built collapse and
cause the death of the owner of the house, that builder shall be put
to death.
73: If it cause the death of a son of the owner of the house, they shall
put to death a son of that builder.
22
SOFTWARE ENGINEERING ETHICS - PRINCIPLES
https://ethics.acm.org/code-of-
ethics/software-engineering-code/
23
SOFTWARE ENGINEERING ETHICS - PRINCIPLES
▪ Act consistently with the public interest
▪ Act in a manner that is in the best interest of the client and employer
▪ Ensure products meet the highest professional standards possible
▪ Maintain integrity in professional judgment
▪ Managers shall promote an ethical approach
▪ Advance the integrity and reputation of the profession
▪ Be fair to and supportive of colleagues
▪ Participate in lifelong learning and promote an ethical approach for
yourself
24
IN THE PREVIOUS CASE
25
26
BREAK
SOFTWARE DEVELOPMENT ASPECTS
Technical aspects of software development
Design
Specification
Implementation
Testing
27
SOFTWARE DEVELOPMENT ASPECTS
28
EXAMPLE: INFORMATION PLAN OF A UNIVERSITY
REGISTRATION OF STUDENT DATA
Relations to other systems: personal data, courses, course results,
alumni, …
Use both by central administration, at faculty level, and possibly by
students themselves
Requires training courses to administrative personnel
Authorization/security procedures
Auditing procedures
External links, e.g. to scholarship funding agencies, ministry of
education
29
A BROADER VIEW ON SOFTWARE DEVELOPMENT
Meta-project planning information planning Overall guidelines set by organization
boundary • Use of certain standards
• Data interchange formats
conditions • Security policies
• Webpage layout
documentation people
software
program
input output
program
Interact with existing software
Software development project is Extend existing software
a misnomer Use existing subroutine libraries
procedures
➔ Develop full systems
30
A BROADER VIEW ON
SOFTWARE DEVELOPMENT
The project system encompasses a
number of components
Collectively provide us with desired
functionality
➔Planning the project
▪ Identify project characteristics
▪ Impact on development process
▪ Document: project plan/Business
Requirement (BRD)
31
DOCUMENTATION
Includes
Project Plan / Business Requirements
Quality Assurance Plan
Software Requirements Specification
Functional Specification
Architecture Description
Design Documentation
User Interface Requirements
Test plan
32
CONTENTS OF PROJECT PLAN
Standards,
Process Organization Management
Introduction Guidelines,
Model of Project Activities
Procedures
Budget and
Resources Changes Delivery
Schedule
34
PROCESS MODEL
Decide upon the process model to be followed
Activities undertaken
Milestones identified
More on this next lecture
35
PROJECT ORGANIZATION
Relationship of project to other entities
User organization
Parent organization
Others
Users
Information
Services
Resources
Identify roles and responsibilities of the project team
36
TEAM ORGANIZATIONS
Hierarchical team Matrix organization Chief programmer team Agile team Open source
•people are divided into •Chief programmer •Skilled wit advanced development
•following a tree
structure. specialist groups. •Project assistant tools •Team divided into layers
•People at bottom level •Each group has a •Project secretary •Short communication with more people in
possess most detailed manager •specialists channels outer layers
knowledge about the •Less discipline enforced
system.
•People at higher levels
have broader view
37
SOME GENERAL RULES
38
STANDARDS, GUIDELINES
AND PROCEDURES
Strong working discipline
Clear agreements about documentation
Described in separate documents
Configuration Control Plan
Quality Assurance Plan
39
MANAGEMENT ACTIVITIES
40
RISKS
41
TOP TEN RISK FACTORS
Personnel shortfall
Unrealistic schedule/budget
Wrong functionality
Wrong user interface
Gold-plating
Requirement's volatility
Bad external components
Bad external tasks
Real-time shortfalls
Capability shortfalls
42
RISK MANAGEMENT STRATEGY
Identify risk
Handle risks
factors
43
STAFFING
44
METHODS AND TECHNIQUES
45
QUALITY ASSURANCE
Quality of the product versus quality of the
process
Check whether (product or process)
conforms to certain norms
Improve quality by improving the product or
process
incorporates all software development
processes starting from defining
requirements to coding until release
46
SQA PLAN DOCUMENT
The SQA plan document consists of the below sections:
1. Purpose section
2. Reference section
3. Software configuration management section
4. Problem reporting and corrective action section
5. Tools, technologies and methodologies section
6. Code control section
7. Records: Collection, maintenance and retention section
8. Testing methodology
48
WORK PACKAGES
49
RESOURCES
Hardware
CPU cycles
Tools needed to support project
Personnel needed for various process
phases
50
BUDGET AND SCHEDULE
51
CHANGES
Deal with inevitable changes in an orderly way
Clear procedures on how they will be handled
In the context of configuration control plan
52
DELIVERY
Procedure to be followed in handing over the system to the
customer
53
PROJECT PLAN
54
PROJECT CONTROL
Exert control along the following dimensions during project execution
Time
Informa
Money
tion
Project
Control
Organi
Quality
zation
55
MANAGING TIME
Measuring progress is hard (“we spent half the money,
so we must be halfway”)
Development models serve to manage time
More people less time?
Brooks’ law: adding people to a late project makes it later
56
MANAGING INFORMATION
Documentation
Technical documentation
Current state of projects
Changes agree upon
…
57
MANAGING PEOPLE
Managing expectations
Building a team
Coordination of work
58
MANAGING QUALITY
Quality has to be designed in
Quality is not an afterthought
Quality requirements often conflict with each other
Requires frequent interaction with stakeholders
59
MANAGING COST
Which factors influence cost?
What influences productivity?
Relation between cost and schedule
60
READING REFERENCE
61
SOFTWARE
LIFECYCLE
REVISITED
62