Software for small library management: From requirements to deployments (result) Project Units: 9 Units Name: Zichuan Zhou FAN: zhou0307 Student ID: 2130739 Background Project based on a real case Zhulin Temple Library Traditional way of library management Unsatisfied Better solution needed Customised software based on requirements Software Development Process Requirement Analysis Design Iterate for each module Coding & Programming Testing Deployment & Release Requirement Analysis -Usecase Diagram Design Structure / techniques Java MVC Operating system, Develop environment Windows 7 NetBeans IDE Database MySQL Database Design UI Model 1 ReaderInform ationFrame ReaderAdd Frame ReaderModify Frame Insert ReaderFind Frame Update Delete Search DB Model 2 ReaderInform ationFrame ReaderAdd Frame ReaderModify Frame View(Front end) Control(Back end) DAO Delete Search Insert Update DB ReaderFind Frame Database Design -ERD Programming Well-organised Text-indentation , New line Meaningful method and variable names Good code comments Error and exception handling Well-tested Clean & reusable Not redundant , readable , maintainable Example for Clean Code public static boolean executeUpdate(String sql, String[] paras){ boolean flag = true; try{ if(conn == null){ new Dao(); } ps = conn.prepareStatement(sql); for(int i=0; i<paras.length; i++){ ps.setString(i+1, paras[i]); } if(ps.executeUpdate() != 1){ flag = false; } }catch(SQLException e){ flag = false; e.printStackTrace(); }finally{ Dao.close(); } return flag; } String sql = " delete from reader where readerId = ? "; String[] paras = {readerId }; //int I = Dao.deleteReader(String readerId); Dao.executeUpdate(sql, paras); String str = "insert into reader values (?,?,?,?,?,?,?,?,?)"; String[] paras = {id,name, gender, DOB, phone, email, address, createDate, notes}; // int i = Dao.insertReader(id,name, gender, DOB, phone, email, address, createDate, notes); Dao.executeUpdate(str, paras); Test & Deployment Black box test White box test Configuration on client’s device Make software available for them to use Software Development Process Fully understand, and excavate users’ needs and requirements Requirement Analysis 1.Structure & techniques 2.Operating System 3.Database 4.Design specification Design 1.Well-organised (indent/newline) 2.Meaningfull method /variable names 3.Good code comments 4.Handle error or/and exception 5.Well-tested 6.Clean & Reusable Coding & Programming Deployment & Release Configuration & Release Make software available for use Test Black box test Other User-Friendly Design Hot keys Fuzzy search Error & exception handling Auto complete Audio indication Report Extended Idea for Future Barcode scanner Add photo to reader Learning Outcomes Enhance my skills and self confidence Importance of communication with user Programming with client perspective Opportunity to improve