10/23/2015CPSC , CPSC , Lecture 141 Software Engineering, CPSC , CPSC , Lecture 14
10/23/2015 CPSC , CPSC , Lecture 14 2 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
10/23/2015 CPSC , CPSC , Lecture 14 3 Overview of This Lecture Summary of CPSC and CPSC Software Engineering Overview Software Development Process Software Development Model Unified Process (UML as a support tool) Information about the CPSC and CPSC modules exam.
10/23/2015 CPSC , CPSC , Lecture 14 4 The Nature of Software Intangible Opposite of physical artifacts. E.g. Computer vs Windows XP, IPod vs ITunes. Hard to understand the development process. Easy to Reproduce Costly design and construction, cheap manufacturing. Malleable Easy to change, even without full understanding. Untrained people can “hack” something together.
10/23/2015 CPSC , CPSC , Lecture 14 5 Quality of Good Software Usability Easy to learn and use Efficiency Does not waste resources such as CPU time and memory Dependability Reliable, secure and safe Maintainability Easily evolved (modified) to meet changing requirement Reusability Parts can be reused, with minor or no modification
10/23/2015 CPSC , CPSC , Lecture 14 6 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 Exponential growth of complexity w.r.t the size of a program: twice the size, four times the complexity.
10/23/2015 CPSC , CPSC , Lecture 14 7 Software Development Problems Difficulty in understanding and managing the complexity causes: Late completion: “vaporware” that are announced but never produced Overrunning Cost: Denver Airport Automated Baggage System, 2 billions US dollar over budget Unreliable Difficult to maintain Etc…
10/23/2015 CPSC , CPSC , Lecture 14 8 Software Engineering is IEEE Standard : 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)
10/23/2015 CPSC , CPSC , Lecture 14 9 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.
10/23/2015 CPSC , CPSC , Lecture Software Process Stages Requirement Analysis Design Implement Test Specification Development Validation Evolution The mapping between the common development stages with the four general process stages.
10/23/2015 CPSC , CPSC , Lecture Unified Process State of the art process, by learning from the history of software development process.
10/23/2015 CPSC , CPSC , Lecture 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
10/23/2015 CPSC , CPSC , Lecture 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 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.
10/23/2015 CPSC , CPSC , Lecture 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.
10/23/2015 CPSC , CPSC , Lecture Information about the CS2103 module CPSC and CPSC are 3 credit points modules Midterm exam: 20% CPSC : Project: 30% (10% - Analysis & Design – Report, 20% - Implementation & Test – Demonstration) CPSC : Project: 15% (5% - Analysis & Design – Report, 10% - Implementation & Test – Demonstration) Paper Presentation: 15% Written final exam: 50%
10/23/2015 CPSC , CPSC , Lecture Information about the CPSC and CPSC 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 + Encourage the Tutorial activities.
10/23/2015 CPSC , CPSC , Lecture 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.
10/23/2015 CPSC , CPSC , Lecture 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]
10/23/2015 CPSC , CPSC , Lecture Summary Summary of CPSC and CPSC : Software Engineering Overview Software Development Process Software Development Model Unified Process (UML as a support tool) Information about the CPSC and CPSC modules exam
10/23/2015 CPSC , CPSC , Lecture Thank you for your attention! Good luck to the CPSC and CPSC exam! Questions?