CMT4440 is about:
CMT4440
S oftware Development
General software development Project management
Week 1 -- Introduction
Dr. Xiaohong (S haron) Gao Room:TG12
Ext: 2252
Email: [email protected]
CMT4440 does this by
CMT4440 uses
The Lecture (1.5 hours) The S eminar/Lab (1.5 hours) The Book The OasisPlus site
S howing the main strategies involved in software development S tudying techniques to produce quality software and team management
Encouraging reflection on the processes involved
The Book
Head First S oftware Development Week by week info, exercises
The Website
http://oasisplus.mdx.ac.uk/
Weekly Lecture Notes Weekly Lab samples Weekly seminar materials
Reference:
Mark Watson, T he Software Development Book, http://www.markwatson.com/opencontent/software_devel opment_book/book.html
Assessment
Course Work --- 60% Unseen exam 40%
Course Work 60%
CW 1 (40% Group project page 10 )
CW 2 (20% Individual project page 11 )
Notes:Y have to pass both components, ou i.e., achieving 40% or over, in order to pass the whole module.
Contact Information
[email protected] Room:TG12 Office Hour :
Lecture 1 Introduction (1)
The complexity of information increases faster than our ability to organize and to use it to increase efficiency and profit. We have lived through the dot-com hype and crash. Most developers now have a more realistic view of the benefits versus costs of software systems. As the complexity of information increases so does the software required to automate information processing.
Thursdays: 10:00am-12:00pm
Introduction (2)
In todays economy, the savvy software developer asked herself how can I earn money for my company, not what technology toys do I want to play with today. There must be a reasonable balance between a focus on technology and a focus on business processes and problem solving.
Introduction (3)
Most software developers have been involved with projects that used (in historical order)
the waterfall method structured programming (C) object oriented programming (C++) various object modelling languages (J ava) Unified Modelling Language (UML) Extreme Programming test driven programming
Most developers will tell you that their mileage varied when discussing the utility and cost effectiveness of various software development methodologies.
Introduction (4)
A common complaint with methodologies that promote formal up front design is that the design process and documents are not kept up to date during software development. Modern design tools do promote round trip engineering to keep model design documents and code in sync. But many projects still ignore the maintenance of design documents in the rush to get projects complete.
Introduction (5)
One of the great success stories in software engineering has been the series of design patterns books. These books codify and describe the designs for common programming problems. Developers reuse a proven design without having had to go through the normal process of making mistakes and then learning from these mistakes.
The Customer
Bringing Idea to Life
W hat is needed On time On budget
S oftware is customers big idea S oftware development brings idea to life
Customers Idea
How much it will cost How long it will take
1st Approach Big Bang
Code, code and code End product Whats wrong with this?
Big Bang?
No feedback from client Doesnt get what s/he wants J ust one piece of software, probably not what the customer wanted
S oftware Development should:
Deliver what is needed On time On budget
2nd Approach
S ecret is iteration Include check-in points with customer to keep project on track with desired goal Mechanism is feedback
Iterations
Big Bang doesnt produce software until the end Each iteration produces working coding small pieces of functionality you could show customer Each iteration is a mini-project
Iterations
Requirements Design Code Test Produces software RDCT-> ->RDCT->->RDCT->
Iterations
Each iteration is a small cycle where you gather requirements, design, writing code and testing Each cycle produces working quality code Each iteration allows us to check with customers
S cheduling Iterations
Break each function or feature into one iteration Work out some idea of how long a feature will take to develop and its priority (assigned by the customer) Place on a time line
S cheduling adapt
Customer will want to change things Deadline doesnt change Adapt into schedule Estimate new features Have customer prioritise features Rework iteration plan Check deadline
Example: automated checkout system
1. Reading bar code
Bar code damaged Bar code not recognised Discount bar code not matching the price Etc..
Components
1. 2. 3. 4. Reading bar codes Weighing goods Payment Coupons
2.Weighing goods
3. payments
Credit card (charge 2% etc..) , Debit card Cash
The unit
In pound In kilogram In litre etc
Notes Coins New note/coin
4). Coupons
Parking ticket Loyalty cards Promotion coupons Etc.
S ummary
S oftware development and management constitute a crucial step in delivering a piece of fit-for-purpose software, benefiting both developers and customers.