Module: CS1701
Lecture Topic: Introduction to Module
Week: 1
Introduction
Software engineers develop and deliver useful software
Software: Computer programs but also documentation (e.g requirements, design models,
user manuals)
There are two types of software products:
‘off-the-self’: developed for a general market (e.g. MS office, games)
‘bespoke’: developed for a particular customer (e.g. control system for a particular aircraft)
or suited to the customer (e.g. blackboard for Brunel)
All developed counties and economies depend on software, software underpins all our
activities.
Characteristics of good software:
1.) Acceptability: understandable, usable, compatible with client’s other systems,
procedures and policies, meets client’s functional requirements
2.) Dependability/Security: reliable, safe, with reasonable precautions against accidental or
intentional damage
3.) Efficiency: avoid wasteful use of resources (CPU, memory, disk space)
4.) Maintainability: can evolve to meet changing demands
Software costs more than hardware to develop
Software costs more to maintain than to develop
Software engineering is also about cost-effective software development
On average, software projects run – 45% over budget – 7% percent over time
Software Engineers
– Engineering: analysis, design, building, testing, evaluating
– Project management
– Soft skills: working with others, motivating others, leadership
– Technical and practical skills: knowing and using current tools and technologies
,Module: CS1702
Lecture Topic: Software Project Management
Week: 2
Project
A project is an endeavour that aims to achieve specific objectives within a fixed period of
time under certain resource constraints. This means that projects need to be carefully
managed.
Software projects
Managing a software project is even more difficult:
-software is intangible, you cannot see and monitor like a physical project (building)
-software projects are unique because they depend on the software type, size as well as
company size
Software project management:
-Project planning: deciding tasks, estimating costs, scheduling tasks
-Risk management: identify, assess, monitor and address risks
-People management: choose people and establish ways of working
-Reporting: project progress reports to customers and team
At the beginning of the planning process, identify constraints such as delivery dates,
available staff, overall budget, available tools/etc
Milestones and deliverables
Identify milestones and deliverables
Milestones are points against which you can assess progress
Milestones require completion of a set project activities
-for example programmers’ hand over software to testers
Deliverables are work products that are delivered to the customer
-for example, requirement specification document is delivered to customer to
review, sign, etc
Risks and risk management
-Identify risks (risks may relate to the technology, people, organisation, requirements,
estimation)
-Identify the probability and effects of these risks
-Identify risk mitigation strategies (such as\ reorganise team)
, Risk Analysis Table – example:
Project schedule
Identify project activities/tasks
Identify dependencies between activities/tasks
Estimate resource requirement of activities/tasks
Allocate people and resources to activities/tasks
Create project charts
-Effort (no of work units)
-Duration
-Elapsed time
-Deadline
-Defined endpoint
-Dependencies
Critical Path
It is the longest path in the diagram
It shows the expected completion time of the project
It contains the activities that if they are delayed, they will delay the project