Aryeh Greenberg Syllabus 370 Summer 2021 PDF

Title Aryeh Greenberg Syllabus 370 Summer 2021
Author Anonymous User
Course Software Engineering
Institution Queens College CUNY
Pages 8
File Size 202.8 KB
File Type PDF
Total Downloads 43
Total Views 145

Summary

read the book. this document contains all the answers...


Description

Queens College, CUNY, Department of Computer Science Software Engineering CSCI 370 Summer 2021 7/6 – 8/16 (5:40-7:14 PM) MTWTH

Instructor Aryeh Greenberg M.A. Computer Science, Queens College [email protected] Email is checked and replied to every morning besides Saturday. Reference Software Engineering 10th edition by Ian Sommerville (optional) Head First Design Patterns 2nd edition by Ian Eric Freeman and Elisabeth Robson (optional) UML For Java Programmers by Robert C. Martin (optional) Requirements 3 hr.; 3 cr. Prerequisite: CSCI 220 and 313. The course project requires self-motivation to apply principles and techniques covered in Lecture. Video Recording Consider the two paragraphs identified as (I) and (II) below very carefully. Only one of (I) and (II) applies to you. The default is (I). Option (II) only applies if you select it before July 8, 2021. And your selection cannot be changed. Before July 8, 2021, you must submit an image of your QC ID card (or another acceptable picture ID). (I) Students will be required to show themselves taking examinations; how visual monitoring will be set up will be discussed. (Exams will be given through Google Classroom with video monitoring through simultaneous log in to a Zoom room from your Queens College account.) Refusal to show yourself during the exam will result in an exam grade of 0. If you take part of the exam ‘off camera’, you will be penalized 1 point on the exam score for each minute you are not showing yourself. (II) If a student is unwilling to show themselves for exams, I do offer one alternative: a student may choose to have one, cumulative, oral, final exam with me in a private 1-1 session (audio only) that will count for 100% of their course grade. A student selecting this option must inform me of this in writing before July 8, 2021. This option may not be taken after that time and if this option is taken, the student cannot change their mind or take any of the in-class exams. Details of the oral exam will be provided in August, 2021. If you have a letter or statement from the Office of Special Services that you are allowed some special allowance or accommodation for exams, please provide me such or notify me of such allowance before July 8, 2021.

Goal(s) Methods, tools, and techniques used in the development of software systems. Design Patterns UML for class design Learning Management System Google Classroom If you haven’t activated this account, you can do so in 3 simple steps: 1) Visit http://gdrive.qc.cuny.edu, which will take you to a QC login page 2) Use your QC credentials (e.g., jsmith101 and the password you use to log into your QC email or campus wi-fi) 3) Accept the terms of service. 4) https://classroom.google.com/c/Mjg4NzQ3MjM3ODAz?cjc=edbi5fw (edbi5fw) If you have trouble signing into gdrive, try signing in through an incognito browser.

Note: Sometimes you are switched back to your personal Google account rather than your QC account. if you are logged into more than one account at a time. Open the account switcher by clicking on your initial or profile picture in the top right. From there you can switch to or enter your QC account. More detailed directions for activating your QC G-Suite account are here: http://ctl.qc.cuny.edu/claimqc-google-apps-account/

Google Classroom https://classroom.google.com/c/Mjg4NzQ3MjM3ODAz?cjc=edbi5fw

Class Code edbi5fw Description Project 30% of grade Participation 10% of grade Midterm 25% of grade (Software Engineering and Design Patterns) Final 35% of grade (Software Engineering and Design Patterns) Software Engineering Lecture– We will cover the first 5-9 Chapters of Software Engineering by Ian Sommerville. Thus, Process Models, Agile Methods, Requirements engineering, System Modeling, Architectural design, Design and Implementation, Software Testing & Evolution will be covered. Software Engineering project –You will create a software project that will include Requirements Specification 10%, Architecture and Design Document (UML and Design Patterns) 50%, Software code (heavily documented) Java or C# 40%, and Validation Test Plan and Results (unit Tests) 10%.

Design Patterns Lecture We will cover the following patterns (and others as time permits): Singleton, Factory Method, Strategy, Observer, Adapter, State, Command, Decorator, Composite, Observer, Template Method Class Participation – Every day will have a few questions which will be assigned the day before. Also included in this category is any homework and personal projects. Expectations It is important to notify the instructor if you are not following any subject or topic. In the past, students who have fallen behind and notified the instructor, have seen significant improvement. All material presented in any lecture, lab, or assignment is assumed to be understood by each student and may be asked on a quiz, midterm or final. Academic dishonesty such as plagiarism or cheating will be dealt with seriously in accord with the University’s policy on academic integrity. Class Hours Lecture MTWTH 5:40-7:40 PM Presentation Synchronous Online – In general, 95% of the course is live. Classes will be recorded for your convenience. If you do not want to be recorded, please ask Instructor to turn off recording while you are speaking. Please see an important disclaimer about Zoom recording at the bottom of this document. Office Hours Via Zoom - After class or as arranged with the instructor. Attendance Not Required. But since the textbook is only used as reference, missing class will probably result in a poor outcome. Note: All lectures are recorded as a convenience and recordings are not guaranteed. Technology Requirements Access to a Java compiler. Design Patterns are presented using INTELLIJ IDEA, so it is recommended that you download the free community edition although any JAVA compiler can be used. Missed Work This is treated on a case-by-case basis. Homework Periodically there are homework assignments. In general, homework must be submitted one hour before the next lecture.

Communication It is important that your email in CunyFirst be correct so we can contact each other as necessary. Grading (subject to change) See above. Schedule Module 1 7/6 – Chapter 1 What is software engineering? What are the key challenges facing software engineering? What are the costs of software engineering? What are the best software engineering techniques and methods? Web software engineering. Essential attributes of good software Two fundamental types of software. Why do they have different Product specifications? Give examples. Difference between computer science and software engineering. Four general issues that affect many different types of software. Five different types of software applications. Explain how the type of software determines the development process. Challenges of Software Engineering in the 21st century Different application types require specialized software engineering techniques to support their design and development. 1) What are different types of software end users? Will different types affect how software is designed? 2) Explain what third party hardware and software an application may have to integrate with. 3) What types of regulations may your software be required to follow? Module 2 7/7 Project - Create Teams and Project Documents OOP Principles – Abstraction, Encapsulation, Inheritance, Polymorphism Relationships - Association, Aggregation and Composition OO Design Principles – DRY, Encapsulate What Changes, Open Closed Design Principle, Single Responsibility Principle, Dependency Injection or Inversion principle, Favor Composition over Inheritance, Liskov Substitution Principle (LSP), Interface Segregation Principle (ISP), Programming for Interface not implementation, Delegation principles. https://www.youtube.com/watch?v=BhEoV57nj0Q Associations (Association has-a relationship (Unary(Person→Address unary and attributes are the same thing), Binary), Aggregation, Composition), Dependency, Generalization(Inheritance), and Realization(Interface). From weak to strong coupling. Dependency, Association, Aggregation(unary), Composition(unary), Inheritance.

4) Provide an example where DRY is applicable. 5) Provide an example where software violates the LSP. 6) Provide an example how one can program to an interface in Java. Module 3 7/8 Case Studies Module 4 7/12 Chapter 2 Software Processes Process - A structured set of activities required to develop a software system. Incorporates – Specification, Design and implementation, Validation, and Evolution. waterfall, Plan-driven model, Integration and configuration 7) Provide an example of software that requires a waterfall model and why? What is the largest drawback to using the waterfall model? 8) Provide an example of software that is best made with an incremental model and why? 9) Provide an example of software that is best made with an Integration and configuration model (i.e. off the shelf software) and why? Module 5 7/13 Installing Java on your computers. Design Pattern 1 - Singleton Design Pattern 2 - Factory Method 10) Five differences between C++ and Java? 11) How can Multithreading break the singleton pattern? 12) Factory Method is a creational design pattern. What does this mean? Module 6 7/14 Three Benefits and Two downsides of Incremental development. Process components: Software specification, design and implementation, V & V, Installation, Evolution V – Model SDLC-STLC 13) What does COTUS stand for? 14) What type of process would most likely use a web service? Explain. 15) Why is software specification so difficult? Module 7 7/15 Design Pattern 3 - Strategy Design Pattern 4 - Observer 16) Does the Strategy pattern use composition or inheritance? 17) Three advantages of the Observer pattern are? 18) Explain the Observer pattern UML, https://en.wikipedia.org/wiki/Observer_pattern#/media/File:Observer_w_update.svg Module 8 7/19-

Handling Change: System prototyping. Incremental delivery 19) Give three examples of general process models? 20) Which parts of the software process deal with unit testing, coding, and design patterns. 21) How many forms of Software validation are there? What document informs the developer what aspects should be validated? 22) Which software does not require software evolution? Which software does require software evolution? 23) Software evolution takes place when you change existing software systems to meet new requirements. The software must evolve to remain useful. Module 9 7/20 Design Pattern 5 - Adapter Design Pattern 6 – State 24) To which physical device does the adapter pattern correspond? 25) Using a short example, explain how the State program prevents a program from becoming spaghetti. 26) Describe an example where the state pattern makes sense. Use a UML chart. Module 10 7/21 Activities involved with each of the Process steps: Requirements Requirements elicitation and analysis Requirements specification Requirements validation Design and implementation Software design and Implementation Architectural design, where you identify the overall structure of the system, the principal components (subsystems or modules), their relationships and how they are distributed. Database design, where you design the system data structures and how these are to be represented in a database. Interface design, where you define the interfaces between system components. Component selection and design, where you search for reusable components. If unavailable, you design how it will operate. Component testing Individual components are tested independently. Components may be functions or objects or coherent groupings of these entities. System testing Testing of the system. Testing of emergent properties is particularly important. Customer testing Testing with customer data to check that the system meets the customer’s needs. 27) To Be Assigned 28) To Be Assigned 29) To Be Assigned Module 11 7/22 Design Pattern 7 - Command Design Pattern 8 – Decorator

30) To Be Assigned 31) To Be Assigned 32) To Be Assigned Module 12 7/26 – Midterm Module 13 7/27- Chapter 3 - Agile Development 33) To Be Assigned 34) To Be Assigned 35) To Be Assigned Module 14 7/28Design Pattern 9 - Composite Design Pattern 10 – Observer 36) To Be Assigned 37) To Be Assigned 38) To Be Assigned Module 15 7/29 - Agile Development (continued) 39) To Be Assigned 40) To Be Assigned 41) To Be Assigned Module 16 8/2 Design Pattern 11 – Template Method Design Pattern 12 - Chain of Responsibility 42) To Be Assigned 43) To Be Assigned 44) To Be Assigned

Module 17 8/3 – Chapter 4 - User and system requirements 45) To Be Assigned 46) To Be Assigned 47) To Be Assigned Module 18 8/4 Design Pattern 13 – Mediator Pattern Design Pattern 14 - Memento Pattern 48) To Be Assigned 49) To Be Assigned 50) To Be Assigned Module 19 8/5 - Projects Due Module 20 8/9 Design Pattern 15 – Iterator Pattern Design Pattern 16 - MVC Pattern 51) To Be Assigned 52) To Be Assigned 53) To Be Assigned

Module 21 8/10- User and system requirements (cont.) Module 22 8/11 - Architecture Module 23 8/12 - Testing Module 24 8/16 - Final Summary - Topics to be covered. Topics not covered. REASONABLE ACCOMMODATIONS FOR STUDENTS WITH DISABILITIES Students with disabilities needing academic accommodation should register with the Special Services Office by emailing [email protected]. For more information about services available to Queens College students, visit the Office of Special Services website: https://www.qc.cuny.edu/studentlife/services/specialserv/Pages/default.aspx. CUNY POLICY ON ACADEMIC INTEGRITY Academic Dishonesty is prohibited in The City University of New York and is punishable by penalties, including failing grades, suspension, and expulsion as provided at https://www.cuny.edu/about/administration/offices/legalaffairs/policies-procedures/academic-integrity-policy/. In addition, the follow components are required for your syllabus. ONLINE NETIQUETTE Please maintain a professional demeanor when posting online. You can be respectful even when you have a difference of opinion. Treat others as you'd want to be treated yourself. Don't type in all caps, as that is the online equivalent of shouting. If you need to emphasize a word or phrase, use italics. TECHNICAL SUPPORT If you require technical help with your Queens College email or CUNYFirst account, please contact the Queens College helpdesk located in the I-Building, Room 151 - (718) 997-4444. Email: [email protected] RECORDING INFORMATION DISCLAIMER Students who participate in this class with their camera on or use a profile image are agreeing to have their video or image recorded solely for the purpose of creating a record for students enrolled in the class to refer to, including those enrolled students who are unable to attend live. If you are unwilling to consent to have your profile or video image recorded, be sure to keep your camera off and do not use a profile image. Likewise, students who un-mute during class and participate orally are agreeing to have their voices recorded. If you are not willing to consent to have your voice recorded during class, you will need to keep your mute button activated and communicate exclusively using the "chat" feature, which allows students to type questions and comments live....


Similar Free PDFs