1 / 83

CS352 – Software Engineering II Lecture 1: A Course Overview

CS352 – Software Engineering II Lecture 1: A Course Overview. Slides by Mohammad El- Ramly , PhD http://www.acadox.com/join/563R9V. عام جديد. كل عام و أنتم على الطاعة أدوم و من الله أقرب كل عام و أنتم من التخرج أقرب عام جديد على عملك شهيد فاغتنمه فإنه إن مضى لا يعود أبدا.

jramage
Download Presentation

CS352 – Software Engineering II Lecture 1: A Course Overview

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS352 – Software Engineering IILecture 1: A Course Overview Slides by Mohammad El-Ramly, PhD http://www.acadox.com/join/563R9V

  2. عام جديد • كل عام و أنتم على الطاعة أدوم و من الله أقرب • كل عام و أنتم من التخرج أقرب • عام جديد على عملك شهيد • فاغتنمه فإنه إن مضى لا يعود أبدا

  3. Lecture 1 Outline • Course Objectives • Software Crisis • Course Administration • Review of last exam

  4. 1. SE I Course Objectives • This course aims to teach students the disciplined way of engineering software products. It aims to: • Educate the students about the cost of software failures and the importance of software engineering. • Train the students on the application of engineering practices in software development • Introduce them to the Software Engineering Body of Knowledge.

  5. SE I Course Objectives • This course aims to teach students the disciplined way of engineering software products. It aims to: • Train them on the basics of software requirements engineering, modeling, design, construction, project management and quality assurance. • Train students on teamwork

  6. SE I Achievements • Process models • Scrum • Requirements Engineering • Informal requirements • User stories / use cases • Design methods • UML • Design patterns • Version control • Git / BitBucket

  7. SE II Course Objectives • This course aims to teach students the disciplined way of engineering software products. It aims to: • Emphasize design concepts and design patterns. • Educating students about quality assurance in software development. • Train students on applying software QA through software development process. • Educate / Train students on software testing. • Teamwork.

  8. SE II Course Objectives • This course aims to teach students the disciplined way of engineering software products. It aims to: • Emphasize design concepts and design patterns. • Educating students about quality assurance in software development. • Train students on applying software QA through software development process. • Educate / Train students on software testing. • Teamwork.

  9. 2. Software’s Chronic Crisis • Many software system fail to serve their purpose or even may cause harm. • Many projects never deliver. • IBM survey of 24 companies developing distributed systems: • 55% of the projects cost more than expected • 68% overran their schedules • 88% had to be substantially redesigned

  10. 2. Software’s Chronic Crisis • Software product size is increasing exponentially • faster, smaller, cheaper hardware • Software is everywhere: from TV sets to cell-phones • Software is in safety-critical systems • cars, airplanes, nuclear-power plants

  11. 2. Software’s Chronic Crisis • We are seeing more of • distributed systems • embedded systems • real-time systems • These kinds of systems are harder to build • Software requirements change • software evolves rather than being built

  12. 2. Software’s Chronic Crisis • Software’s chronic crisis: Development of large software systems is a challenging task • Large software systems often: Do not provide the desired functionality; Take too long to build; Cost too much to build Require too much resources (time, space) to run; Cannot evolve to meet changing needs

  13. 2. Software’s Chronic Crisis • We are the only industry that states something like this on their product licenses: • إخلاء المسؤولية عن الضمان. يتم ترخيص البرنامج "بالحالة التي عليها" و"على علاته" و"بالحالة التي يتم توفيره عليها".وبالتالي فإنك تتحمل مسؤولية استخدامه. لا تقدم MICROSOFT، والموزعون التابعون لها وأيٍ من الشركات التابعة لنا المعنية والموردون (المشار إليهم فيما بعد باسم "الموزعون")، أية ضمانات أو تعهدات أو شروط صريحة بموجب هذا البرنامج أو فيما يتعلق به. قد تكون لك بعض حقوق المستهلك الإضافية بموجب القوانين المحلية الخاصة بك، والتي لا يمكن لهذه الاتفاقية أن تغيرها. وإلى الحد الذي تسمح به القوانين المحلية الخاصة بك، ينفي الموزعون عن أنفسهم أي ضمانات أو شروط ضمنية، بما في ذلك الضمانات أو الشروط الخاصة بالقابلية للتسويق والملاءمة لغرض معين وعدم الانتهاك. • تحديد الأضرار واستثناؤها. يمكنك الحصول على تعويض من Microsoft ومورديها مقابل الأضرار المباشرة فقط بحيث لا يتجاوز ذلك المبلغ الذي دفعته مقابل البرنامج. لا يمكنك الحصول على أي تعويض يتعلق بأية أضرار أخرى بما في ذلك الأضرار اللاحقة أو خسارة الأرباح أو الأضرار الخاصة أو غير المباشرة أو العارضة.

  14. 2. Software’s Chronic Crisis • Failure of software causes the loss of: • Time • Money • User satisfaction, and • LIVES

  15. Werewolves Out of all the scary monsters of the past, werewolves were the scariest because the change shape without notice.

  16. Planit Testing Index 2013: Project Outcomes by Year

  17. 3. Course Contents We will cover as much of these as we can: • Design and design patterns 33.3% • Introduction to Design (~4 wks) • Software Architecture • Design Principles • Design Patterns • Design QA & Evaluation • Transforming Design to Code • Quality Assurance and Audits 33.3% • Testing 33.3%

  18. Course Evaluation • Final 60% • Midterm (3 May) 10% • Lab Practice + Assign 6 + 4% • Projects 20% • We give you specs (one project / lab) • Groups 3~4 from the same lab • You do • Use cases & their review • Design & its review • Code & its inspection • Testing & bug fixing

  19. SWEBOK’s Key 10 Knowledge Areas SWEBOK 2004 SWEBOK 2013 added 5 more KAs

  20. SWEBOKv3’s 15 Knowledge Areas SWEBOK 2014

  21. Final Exam: Class Modeling You are hired to design a program to manage a car-ferry service. Each ferry holds cars, and has a crewincluding a captain. Each car is driven by a licensed driver, and has zero or more additional passengers. For every trip a ferry makes, the company must print out a report for the port authority. The report must include: • The ship’s license number; • The captain’s name and license number; • The names of the people onboard including all passengers and crew; • Each vehicle’s make and model, license plate, its driver, and the driver’s license number. Draw UML class diagram & show the major classes and their relations. For each class show: • Its relevant attributes; • Its key methods needed to print out a ship’s report . • Its key methods needed to find busiest trip of a ferry

  22. Final Exam: Class Modeling You are hired to design a program to manage a car-ferry service. Each ferry holds cars, and has a crewincluding a captain. Each car is driven by a licensed driver, and has zero or more additional passengers. For every trip a ferry makes, the company must print out a report for the port authority. The report must include: • The ship’s license number; • The captain’s name and license number; • The names of the people onboard including all passengers and crew; • Each vehicle’s make and model, license plate, its driver, and the driver’s license number.

  23. Final Exam: Class Modeling You are hired todesigna program to manage a car-ferry service. Each ferry holds cars, and has a crewincludinga captain. Each car is driven by a licensed driver, and has zero or more additional passengers. For every trip a ferry makes, the company must print out a report for the port authority. The report must include: • The ship’s license number; • The captain’s name and license number; • The names of the people onboard including all passengers and crew; • Each vehicle’s make and model, license plate, its driver, andthe driver’s license number.

  24. Final Exam: Class Modeling You are hired todesigna program to manage a car-ferry service. Each ferry holds cars, and has a crewincludinga captain. Each car is driven by a licensed driver, and has zero or more additional passengers. For every trip a ferry makes, the company must print out a report for the port authority. The report must include: • The ship’s license number; • The captain’s name and license number; • The names of the people onboardincluding all passengers and crew; • Each vehicle’s make and model, license plate, its driver, andthe driver’s license number.

  25. Final Exam: Class Modeling You are hired todesignaprogramto manage a car-ferry service. Each ferry holds cars, and has a crewincludinga captain. Eachcaris driven by a licensed driver, and has zero or more additional passengers. For every trip aferrymakes, thecompanymust print out a report for the portauthority. Thereportmust include: • Theship’s license number; • Thecaptain’s name and license number; • The names of the people onboardincluding allpassengersandcrew; • Each vehicle’s make and model, license plate, its driver, andthe driver’s license number.

  26. Final Exam: Important Concepts that need Modeling • Car-ferry service • Ferry -> License num -> people (passengers & crew) • Car -> make, model, license plate -> driver • Crew • Captain -> name, license num • Driver -> License num • Trip • Report

  27. One Possible Model

  28. حديث شريف «ما من امرئ مسلم يخذل امرءاً مسلماً في موضع تنتهك فيه حرمته، وينتقص فيه من عرضه؛ إلا خذله الله في موضع يحب فيه نصرته, وما من امرئ ينصر مسلماً في موضع ينتقص فيه من عرضه, وتنتهك فيه حرمته؛ إلا نصره الله في موضع يحب فيه نصرته»

  29. Lecture 2 Outline • SWD Definition and in SWEBOK • SW Architecture Styles • What does it mean to be an Architect

  30. Desirable Design Features • Design is defined as both “the process of defining the architecture, components, interfaces, and other characteristics of a system or component” and “the result of that process”.

  31. Desirable Design • As a process, software design is • SE life cycle activity in which requirements are analyzed to produce a description of the SW’s internal structure as a basis for construction. • A software design (the result) describes • the softwarearchitecture— that is, how software is decomposed and organized into components—and the interfaces between those components, and • The details of the components that enable their construction.

  32. SWEBOK v3.0 Design KA

  33. SWEBOK v3.0 Design KA • SWD Fundamentals • Key Issues in SWD • SW Structure and Arch. • UI Design • SWD QA and Evaluation • SWD Notations • SWD Strategies and Methods • SWD Tools

  34. Design is a Wicked Problem • A wicked problem is one that could be clearly defined by solving it. (Rittel & Webber) • Tacoma bridge

  35. Tacoma Narrows Bridge, 1940 • Was damaged by harmonic side-2-side ripple. • Only when this happened, it was learnt how this force can affect the bridge.

  36. Design is about Decisions • Decisions on how system will be structured • Decisions on components responsibilities • Decisions on algorithms and data structures used. • Decision on organization of the database. • Decisions on how UI looks. • …….

  37. Design Stages • In ISO/IEC/IEEE Std. 12207, Software Life Cycle Processes, software design consists of two activities that fit between requirements analysis and construction: • Software architectural design (sometimes called high-level design): develops top-level structure and organization of the software and identifies the various components. • Software detailed design: specifies each component in sufficient detail to facilitate its construction.

  38. Analysis vs. Design • Analysis • Asks “what is the problem?” • what happens in the current system? • what is required in the new system? • Results in a detailed understanding of: • Requirements • Domain Properties • Focuses on the way human activities are conducted

  39. Analysis vs. Design • Design • Investigates “how to build a solution” • How will the new system work? • How can we solve the problem that the analysis identified? • Results in a solution to the problem • A working system that satisfies the requirements • Hardware + Software + Peopleware • Focuses on building technical solutions

  40. Software Architecture • Architecture is the organizational structure of a system. An architecture can be recursively decomposed into parts that interact through interfaces, relationships that connect parts, and constraints for assembling parts. Parts that interact through interfaces include classes, components and subsystems. (UML 1.3) • Get the key terms

  41. Software Architecture • Architecture is the organizational structure of a system. An architecture can be recursively decomposed into parts that interact through interfaces, relationships that connect parts, and constraints for assembling parts. Parts that interact through interfaces include classes, components and subsystems. (UML 1.3)

  42. Architecture • If you are asked to design a house…

  43. Architecture • You need to find your constraints W W W W

More Related