Software Engineering, CPSC-4360-01, CPSC-5360-01, Lecture 14 4/13/2015 CPSC-4360-01, CPSC-5360-01, Lecture 14 1 Review of Last Lecture Professional Ethics, Responsibilities, and Social Implications Sara Baase: “From A Gift of Fire”, Second Edition, 2003, Prentice Hall. American ACM/IEEE Computing Curriculum http://www.computer.org/education/cc2001/index.htm 4/13/2015 CPSC-4360-01, CPSC-5360-01, Lecture 14 2 Overview of This Lecture Summary of CPSC-4360-01 and CPSC-5360-01 Software Engineering Overview Software Development Process Software Development Model Unified Process (UML as a support tool) Information about the CPSC-4360-01 and CPSC-5360-01 modules exam. 4/13/2015 CPSC-4360-01, CPSC-5360-01, Lecture 14 3 The Nature of Software Intangible Easy to Reproduce Opposite of physical artifacts. E.g. Computer vs Windows XP, IPod vs ITunes. Hard to understand the development process. Costly design and construction, cheap manufacturing. Malleable 4/13/2015 Easy to change, even without full understanding. Untrained people can “hack” something together. CPSC-4360-01, CPSC-5360-01, Lecture 14 4 Quality of Good Software Usability Efficiency Reliable, secure and safe Maintainability Does not waste resources such as CPU time and memory Dependability Easy to learn and use Easily evolved (modified) to meet changing requirement Reusability 4/13/2015 Parts can be reused, with minor or no modification CPSC-4360-01, CPSC-5360-01, Lecture 14 5 Software Development Problems “Software is not constrained by materials, or governed by physical laws, or by manufacturing process” ---- (Sommerville Software Engineering). Allows almost unbounded complexity 4/13/2015 Exponential growth of complexity w.r.t the size of a program: twice the size, four times the complexity. CPSC-4360-01, CPSC-5360-01, Lecture 14 6 Software Development Problems Difficulty in understanding and managing the complexity causes: Late completion: Overrunning Cost: 4/13/2015 “vaporware” that are announced but never produced Denver Airport Automated Baggage System, 2 billions US dollar over budget Unreliable Difficult to maintain Etc… CPSC-4360-01, CPSC-5360-01, Lecture 14 7 Software Engineering is IEEE Standard 610.12: The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is, the application of engineering to software. The study of approaches as in (1) 4/13/2015 CPSC-4360-01, CPSC-5360-01, Lecture 14 8 Software Process The set of activities and associated results that produce a software product. Four fundamental process activities: Software Specification Software Development Software Validation Software Evolution Can be organized in different ways, described at varying level of details → different software development process models. 4/13/2015 CPSC-4360-01, CPSC-5360-01, Lecture 14 9 Software Process Stages Requirement Specification Analysis Development Design Validation Implement Test Evolution The mapping between the common development stages with the four general process stages. 4/13/2015 CPSC-4360-01, CPSC-5360-01, Lecture 14 10 Unified Process State of the art process, by learning from the history of software development process. 4/13/2015 CPSC-4360-01, CPSC-5360-01, Lecture 14 11 Phases in Unified Process Inception: Define the scope of the project and develop business case Concentrate on Business Modeling and Requirement Gathering Elaboration: Plan project, specify features, and baseline the architecture Concentrate on Analysis and Design Construction: Build the product Concentrate on Implementation and Testing Transition: Transfer the product to its users Concentrate on Deployment 4/13/2015 CPSC-4360-01, CPSC-5360-01, Lecture 14 12 Iterations within Phase Each iteration within the phase passes through all the workflow (activities): Requirement, Analysis, Design, Implementation, Test With different emphasis on the workflow activity according to the phase. Each iteration should result in a executable release 4/13/2015 Special Case: In the Inception Phase, a single release is usually produced at the end of the Phase instead of each iteration Early releases serve as prototype which provide feedback to later iterations. CPSC-4360-01, CPSC-5360-01, Lecture 14 13 Unified Process and UML UP is Use Case Driven: A systematic utilization of Use Case UML diagrams are used in the Requirement, Analysis and Design activities in the UP workflow. Because of their history, there is a close fit between UML and the UP. 4/13/2015 CPSC-4360-01, CPSC-5360-01, Lecture 14 14 Information about the CS2103 module CPSC-4360-01 and CPSC-5360-01 are 3 credit points modules Midterm exam: 20% CPSC-4360-01: CPSC-5360-01: 4/13/2015 Project: 30% (10% - Analysis & Design – Report, 20% Implementation & Test – Demonstration) Project: 15% (5% - Analysis & Design – Report, 10% Implementation & Test – Demonstration) Paper Presentation: 15% Written final exam: 50% CPSC-4360-01, CPSC-5360-01, Lecture 14 15 Information about the CPSC-4360-01 and CPSC-5360-01 modules Open-book, but not open-laptop Slides: clear + complete (reminder, summary, definitions, examples, history, motivation, industrial impact, research ideas, comparison with other languages, sometimes jokes, reading suggestions). Project Quiz 1 Tutorials + Consultation + Email Encourage the Tutorial activities. 4/13/2015 CPSC-4360-01, CPSC-5360-01, Lecture 14 16 Instructions to Candidates 1. This examination paper consists of TEN (10) questions and comprises fifteen (15) printed pages. Answer ALL questions. 2. Write your answers in the blank spaces in this answer book only. 3. This is an open-book examination. You may bring in any reasonable amount of related materials. Note: The first question has embedded 10 MCQs. 4/13/2015 CPSC-4360-01, CPSC-5360-01, Lecture 14 17 Reading and Understanding Suggestions Lectures 1-13 Mid-Term Exam, which covered Lectures 1-7 Tutorials 1-10 Chapters 1-14 of [Priestley; 2004] Chapters 1 to 9 from [Bimlesh, Andrei, Soo; 2007] 4/13/2015 CPSC-4360-01, CPSC-5360-01, Lecture 14 18 Summary Summary of CPSC-4360-01 and CPSC-536001: Software Engineering Overview Software Development Process Software Development Model Unified Process (UML as a support tool) Information about the CPSC-4360-01 and CPSC-5360-01 modules exam 4/13/2015 CPSC-4360-01, CPSC-5360-01, Lecture 14 19 Thank you for your attention! Good luck to the CPSC-4360-01 and CPSC-5360-01 exam! Questions? 4/13/2015 CPSC-4360-01, CPSC-5360-01, Lecture 14 20