Lecture 1 of CSC2101-PSD & TP1 Introduction of Software Engineering and Process.pdf

Full Transcript

Singapore CSC2101 – PROFESSIONAL SOFTWARE DEVELOPMENT & TEAM PROJECT 1 LECTURE 1 : INTRODUCTION OF SOFTWARE ENGINEERING AND PROCESS Assoc. Prof. Cao Qi [email protected] School of Acknowledgement Computing Science Contents of CSC2101 – PSD & TP 1 are derive...

Singapore CSC2101 – PROFESSIONAL SOFTWARE DEVELOPMENT & TEAM PROJECT 1 LECTURE 1 : INTRODUCTION OF SOFTWARE ENGINEERING AND PROCESS Assoc. Prof. Cao Qi [email protected] School of Acknowledgement Computing Science Contents of CSC2101 – PSD & TP 1 are derived from: COMPSCI4015 - Professional Software Development (H), University of Glasgow (UoG). Acknowledgement: Dr. Tim Storer, UoG, UK. COMPSCI3005 - Software Engineering M3, UoG Acknowledgement: Dr. Richard McCreadie. Software Engineering. Acknowledgement: Author: Ian Sommerville. Publisher: Pearson. ICT2101/2201 - Introduction to Software Engineering, Acknowledgement: Dr. Alex Chen. COMPSCI5059 - Software Engineering M5, UoG Acknowledgement: Dr. Marwa Mahmoud, Handan Gul Calikli. 2 School of CSC2101 – PSD & TP 1 Computing Science Course Objectives Learn theory knowledge of Software Engineering and software development life cycle (SDLC), e.g., Agile/Scrum process, UML modelling, software architecture, refactoring, version control, continuous Integration and continuous development. Practice SDLC knowledge in Team Project. Conduct software development for the industry customers in Team Project to practice Agile Scrum framework. 3 School of Computing Science PSD & TP1 + PSD & TP2 CSC2101 – PSD & TP1, in trimester 1: Module Lead: Dr Cao Qi CSC2102 – PSD & TP2, in trimester 2: Module Lead: Dr Peter Yau 6 credits for CSC2101 – PSD & TP1. 6 credits for CSC2102 – PSD & TP2. PSD (for theory) hand-in-hand TP (for practical). Students are divided into groups in TP for real world software development projects. 4 School of Computing Science CSC2101 – PSD & TP1 Module-Lead: Dr Cao Qi Email: [email protected] Webpage: https://www.gla.ac.uk/schools/computing/staff/qicao/ TP coordinator: Dr Peter Yau Email: [email protected] 5 School of Computing Science PSD Course Schedule Week Topics 1 Introduction of Software Engineering and Process 2 Team Organization and Requirement Gathering 3 Functional Requirement and Non-functional Requirement 4 UML Structure Modelling 5 UML Behaviour Modelling 6 Agile Estimation and Planning 7 Break 8 Software Process Improvement and Retrospectives 9 Software Architecture 10 Software Change Management 11 Software Refactoring 12 Guest Lecture by Industry Experts 13 Revisions 6 School of Computing Science Lectures and Tutorials PSD Lectures: Every Friday, 9:00 – 11:00 am, Zoom. PSD Tutorials: Friday 2:00 – 3:00 pm (F2F) ▪ Week 2, 4, 5, 6, 9, 10, 11: PSD Tutorials. (Tentative), in weeks when there is no TP activity. ▪ Week 1 – 6: Self learning on GitHub with 7 videos TP activities with customer companies (F2F): ▪ Please refer to TP materials for the TP schedule (2:00 – 6:00 pm, or 3:00 – 6:00 pm) 7 School of Computing Science Assessments Assessment Tasks Weighting Tentative week PSD Quiz 1 25% Week 6 PSD Quiz 2 30% Week 13 Weekly Pop Quizzes and Class 5% Week 1-12 Participation Refer to TP materials Assessments for TP Activities 40% for breakdown and schedule 8 School of Computing Science References : Software Engineering. Author: Ian Sommerville. Publisher: Pearson, 10th Edition, 2016. Engineering Software Products: An Introduction to Modern Software Engineering. Author: Ian Sommerville. Publisher: Pearson, 1st Edition, 2020. Software Engineering: A Practitioner's Approach. Roger S. Pressman, Bruce Maxim. Publisher: McGraw-Hill. 8th Edition, 2015. 9 School of Lecture Contents Computing Science Introduction of Software Engineering: Software Process: Waterfall Model Incremental Model Prototyping Model Spiral Model Agile Model 10 School of Computing Science Software Engineering 11 School of Complaints on Computing Science Software Projects Over Budget Over Time Unreliable Not meet requirements Difficult to Maintain Performed poorly Software was never delivered! 12 School of Reasons for Software Computing Science Project Failure 13 Ref: Statista Research Department, Aug 2015. School of Past Statistics of Computing Science Software Projects Ref: J. Johnson, H. Mulder, “ENDLESS MODERNIZATION: How Infinite Flow 14 Keeps Software Fresh,” the Standish Group, 2020. School of Statistics by Software Computing Science Project Types based on the 50,000 projects in the CHAOS 2020 database. Ref: J. Johnson, H. Mulder, “ENDLESS MODERNIZATION: How Infinite Flow 15 Keeps Software Fresh,” the Standish Group, 2020. School of What is Software Computing Science Engineering Software engineering is concerned with theories, methods and tools for professional software development. Concepts, methods, techniques, tools, systems, etc., designated for ensuring high quality and productivity of engineering activities on creation, development, operation, and maintenance of software. 16 School of What is Software Computing Science Engineering Software engineering is a discipline whose aim is the production of high quality software, delivered on time and within budget, that satisfies the user’s needs. 17 Ref: CHAOS REPORT 2015, the Standish Group (web link). School of Software Engineering Computing Science Good software should deliver the required functionality and performance to users and maintainable, dependable and usable. Repeatable practices. Full life-cycle of activities. Product: what is produced. Process: how the product is produced. 18 School of What Are Good Computing Science Software? Product Descriptions characteristic Maintainability Can it be expanded, re-used, will it become obsolete? Dependability and Dependable software not cause security damages at system failure. Prevent malicious users from accessing or damaging system. Efficiency Processing time, memory utilisation, responsiveness, power requirements, etc. Reliability How often does it (not) work? 19 School of Software Engineering Computing Science Layers 20 School of Professional Software Computing Science Development Software ≠ computer programs (not simply). Software = programs + all associated documentation, libraries, support websites, and configuration data. Software Software Software Software specification development validation evolution 21 School of Software Development Computing Science Life Cycle Requirement specification Analysis and Maintenance Design Deployment Implementation Testing 22 School of Software Cost Computing Science Software costs often dominate Computer systems costs. The costs of software on a PC are often greater than the hardware costs. Maintenance is usually more expensive than Development. For systems with a long life, maintenance costs may be several times development costs. 23 School of Cost Approximation at Computing Science SDLC 3% 8% 7% 15% 67% Requirement Spec Analysis & Design Implementation Testing Maintenance 24 School of Computing Science Software Process Models 25 School of Software Process Computing Science Models A brief view on how software is developed Waterfall Model Incremental Model Evolutionary Process Models Agile Process Model Chosen according to project requirements, resources, and team expertise May combine few process models in a project 26 School of Waterfall Model Computing Science Communication Project initiation Requirements Planning gathering Estimating Scheduling Modeling Tracking Analysis Construction Design Codes Test Deployment Projects suitable to the model: Delivery Support Well-defined project requirements Feedback Adequate resources Good team expertise or experience Not too large or complex project No urgent need on any project part 27 School of Incremental Model Computing Science Different process models can be used in each increment Prioritised user More requirements functionality & features. Core product: addresses basic requirements. 28 School of Computing Science Incremental Model Projects suitable to the model: Requirements are reasonably well-defined; however, some details will change over time. Compelling need to provide a limited set of software functionality to users quickly. When new technologies are involved. When team are not very well skilled or trained. 29 School of Evolutionary Computing Science Process Models Designed to accommodate a software product evolving/changing over time. A combination of iterative and incremental manner, develops increasingly. Break down of work into smaller chunks, prioritizing them and then delivering to customers one by one. Prototyping model Spiral model 30 School of Prototyping Model Computing Science Communication Deployment, evaluation, feedback Iteration occurs to Quick plan satisfy customer needs Prototype Modeling construction quick design Projects suitable to the model: Small or low-cost systems Unclear or incomplete requirements Actively involved customers Lack of expertise/experience 31 School of Spiral Model Computing Science Projects suitable to it: High-risk projects Frequent releases Large scale or complex systems with unclear requirements. 32 School of Example: Selection of Computing Science Process Models ❖ Propose models for a large system with: (a) reasonably well-defined requirements; (b) except for a small low-cost part, sufficient expertise by the team; (c) actively involved by customers to that small part; (d) sufficient resources; (e) not a complex system. Possible proposal: ❑Develop system using incremental model. Each increment adds more features. The part that the team lack expertise forms a separate increment. ❑In each increment, waterfall model is used. ❑The small part that the team lack expertise uses prototyping model. 33 School of Agile Development Computing Science Process 34 School of Plan-Driven and Agile Computing Science Process Requirements and design are developed together. 35 School of Computing Science Next Lecture Lecture 2: Team Organization and Requirement Gathering 36

Use Quizgecko on...
Browser
Browser