830 likes | 843 Views
CS352 – Software Engineering II Lecture 1: A Course Overview. Slides by Mohammad El- Ramly , PhD http://www.acadox.com/join/563R9V. عام جديد. كل عام و أنتم على الطاعة أدوم و من الله أقرب كل عام و أنتم من التخرج أقرب عام جديد على عملك شهيد فاغتنمه فإنه إن مضى لا يعود أبدا.
E N D
CS352 – Software Engineering IILecture 1: A Course Overview Slides by Mohammad El-Ramly, PhD http://www.acadox.com/join/563R9V
عام جديد • كل عام و أنتم على الطاعة أدوم و من الله أقرب • كل عام و أنتم من التخرج أقرب • عام جديد على عملك شهيد • فاغتنمه فإنه إن مضى لا يعود أبدا
Lecture 1 Outline • Course Objectives • Software Crisis • Course Administration • Review of last exam
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.
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
SE I Achievements • Process models • Scrum • Requirements Engineering • Informal requirements • User stories / use cases • Design methods • UML • Design patterns • Version control • Git / BitBucket
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.
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.
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
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
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
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
2. Software’s Chronic Crisis • We are the only industry that states something like this on their product licenses: • إخلاء المسؤولية عن الضمان. يتم ترخيص البرنامج "بالحالة التي عليها" و"على علاته" و"بالحالة التي يتم توفيره عليها".وبالتالي فإنك تتحمل مسؤولية استخدامه. لا تقدم MICROSOFT، والموزعون التابعون لها وأيٍ من الشركات التابعة لنا المعنية والموردون (المشار إليهم فيما بعد باسم "الموزعون")، أية ضمانات أو تعهدات أو شروط صريحة بموجب هذا البرنامج أو فيما يتعلق به. قد تكون لك بعض حقوق المستهلك الإضافية بموجب القوانين المحلية الخاصة بك، والتي لا يمكن لهذه الاتفاقية أن تغيرها. وإلى الحد الذي تسمح به القوانين المحلية الخاصة بك، ينفي الموزعون عن أنفسهم أي ضمانات أو شروط ضمنية، بما في ذلك الضمانات أو الشروط الخاصة بالقابلية للتسويق والملاءمة لغرض معين وعدم الانتهاك. • تحديد الأضرار واستثناؤها. يمكنك الحصول على تعويض من Microsoft ومورديها مقابل الأضرار المباشرة فقط بحيث لا يتجاوز ذلك المبلغ الذي دفعته مقابل البرنامج. لا يمكنك الحصول على أي تعويض يتعلق بأية أضرار أخرى بما في ذلك الأضرار اللاحقة أو خسارة الأرباح أو الأضرار الخاصة أو غير المباشرة أو العارضة.
2. Software’s Chronic Crisis • Failure of software causes the loss of: • Time • Money • User satisfaction, and • LIVES
Werewolves Out of all the scary monsters of the past, werewolves were the scariest because the change shape without notice.
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%
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
SWEBOK’s Key 10 Knowledge Areas SWEBOK 2004 SWEBOK 2013 added 5 more KAs
SWEBOKv3’s 15 Knowledge Areas SWEBOK 2014
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
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.
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.
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.
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.
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
حديث شريف «ما من امرئ مسلم يخذل امرءاً مسلماً في موضع تنتهك فيه حرمته، وينتقص فيه من عرضه؛ إلا خذله الله في موضع يحب فيه نصرته, وما من امرئ ينصر مسلماً في موضع ينتقص فيه من عرضه, وتنتهك فيه حرمته؛ إلا نصره الله في موضع يحب فيه نصرته»
Lecture 2 Outline • SWD Definition and in SWEBOK • SW Architecture Styles • What does it mean to be an Architect
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”.
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.
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
Design is a Wicked Problem • A wicked problem is one that could be clearly defined by solving it. (Rittel & Webber) • Tacoma bridge
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.
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. • …….
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.
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
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
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
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)
Architecture • If you are asked to design a house…
Architecture • You need to find your constraints W W W W