Please note that the specifics of this Course Syllabus are subject to change. Instructors will notify students of any changes and students will be responsible for abiding them. Even if you print this syllabus, please check the online version often.
IST 412: The Engineering of Complex Software Systems (3 credits per semester/maximum of 3) -Introduction to the engineering of complex software systems including software system specification, design and implementation, integration and test, and evolution.
This course presents the fundamental concepts of the engineering of complex software systems, including iterative and agile development strategies. The course gives students insight into the full software development cycle, including design, implementation, test and quality assurance, deployment, maintenance, and project estimation and management. IST 412 is an elective course for the Baccalaureate degree program in Information Sciences and Technology. Students completing the Systems Development Option may take this course to fulfill option requirements. Upon completion of this course, students will have a broad understanding of the fundamental concepts of complex system software engineering and be able to apply these concepts to managing and developing a complex software project over the full software development cycle.
- IST 311 with a C or better
At the conclusion of this course, students will be able to:
- Understand and explain the critical issues in complex software development.
- Understand, explain, and use software development lifecycle models including waterfall, spiral, and agile methods.
- Elicit software requirements from stakeholders; run a basic user study; specify, validate, and prioritize functional, non-functional, and user interaction requirements.
- Translate software requirements into an object-oriented system design
- Understand and use test-driven development, including JUnit.
- Understand and use basic project management techniques to control the software development process.
- Understand and use basic software estimation techniques.
- Understand and use basic project risk management techniques.
- Understand and use system architecture and design patterns.
- Understand and use professional software development practices such as refactoring, software coding styles, design-by-contract, and others.
- Understand and use modern software deployment strategies.
You are responsible for all the readings, even if material is not covered explicitly in a lesson. Taking notes on the material you are reading and reflecting on both the reading and these notes will help you to understand better the issues, concepts, and techniques that are being presented.
We will be using primarily electronic texts.
The course will make use of several different tools including an Integrated Development Environment (IDE), software modeling and design applications, and other online resources.
Specific instructions for specific tools will be posted to the Canvas Unit where related activities and deliverables appear.
You will be using the Netbeans Integrated Development Environment for all project development work. Netbeans is free and is available for the Windows, Mac, and Linux operating systems.
With any source code submission make sure to include a README.txt file detailing any usernames and passwords required to log in to the app. You generally should not use external libraries but if you do make sure they are included as part of the Netbeans project. If the project does not build and run you will receive a zero for the assignment.
You will be using the Unified Modeling Language (UML) for part of your conceptual design. There are several software tools available for constructing UML models.
You may choose to use the MS Visio application, which is available through vLabs. The course lessons generally use MS Visio for UML demonstrations.
You can also install MS Visio on your own computer through the Penn State Dreamspark program.
An open source and free tool you can use to create your UML diagrams is ArgoUML.
Finally, you may also choose to use an online tool for creating your UML models. One that has been tested and is recommended for the course is draw.io.
You can use any UML modeling tool you like as long as it will produce a figure or file that can be inserted into your MS Word document.
Assignments & Grading
The course will follow an active, problem-based approach to learning. There is a longer-term group project that will provide the opportunity to gain practice with new concepts and skills, and develop and demonstrate a solid understanding of the course material.
- Course Project: The main course project will consist of design and development of a complex software system. Participation in the group project involves both individual efforts and group collaboration. You will work on the project exercises in groups of three to five. The instructor will assign group membership during the first few weeks of the course. The purpose of this project is to give you hands-on, in-depth experience with a wide range of techniques, methods, and tools to help manage complex software development projects.
- Group Project Performance & Grading
- Project deliverables submitted and marked will be assigned a single grade. However, your individual grade for the group project components will reflect the results of group peer evaluations that will be performed over the course of the semester.
- In extreme cases, students that do not contribute to the group project will be asked to do the work on their own, or with other non-contributors.
- Assignment Grading Criteria
- Correctness (e.g. diagrams use correct syntax; programs compile & run)
- Completeness (e.g. models reflect the domain problem; programs implement requirements)
- Clarity (e.g. diagrams and programs are formatted professionally; both are annotated)
- Group Project Performance & Grading
Course Grading Scale
The following are minimum cutoffs for each grade:
- 93.00% = A
- 90.00% = A-
- 87.00% = B+
- 83.00% = B
- 80.00% = B-
- 77.00% = C+
- 70.00% = C
- 60.00% = D
- less than 60.00% = F
Course Policies and Expectations
- Late Submissions - All work must be completed and turned in before the due date and time.
- Assignments submitted within 48 hours after the due date and time will be marked for 50% credit. This means you will receive your marked score divided by 2.
- There are no exceptions to the late submission policy.
- Logging into Canvas - Students are expected to login regularly to check for course updates, announcements, emails, discussions, etc.
- Updates will occur regularly so please make sure to keep up with announcements and updates to the course site.
- Emailing through Canvas - Students are expected to use Canvas for all course email communication.
- Attending virtual meetings - Students are expected to use specified virtual meeting tool(s) for collaboration, meetings, presentations, etc., as needed.
Penn State and the College of Information Sciences and Technology are committed to maintaining Penn State's policy on Academic Integrity in this and all other courses. We take academic integrity matters seriously and expect you to become a partner to the University/College standards of academic excellence.
For more information, please review these policies and procedures:
While utilizing additional sources outside of this class is encouraged for gaining a better understanding of course concepts, seeking explicit answers for graded assignments from outside sources (e.g. Course Hero, Chegg, tutoring services like tutor.com, etc.) is considered CHEATING and will not be tolerated. Sanctions range from failure of the assignment or course to dismissal from the University. Additionally, sharing course content without permission is a violation of copyright and may result in university sanctions and/or legal ramifications. Contact your instructor with questions related to this topic.
Review current information regarding various Penn State policies (such as copyright, counseling, psychological services, disability and military accommodations, discrimination, harassment, emergencies, trade names, etc.) on the University Policies page.
Penn State takes great pride to foster a diverse and inclusive environment for students, faculty, and staff. Acts of intolerance, discrimination, or harassment due to age, ancestry, color, disability, gender, gender identity, national origin, race, religious belief, sexual orientation, or veteran status are not tolerated and can be reported through Educational Equity via the Report Bias webpage (http://equity.psu.edu/reportbias/).
Find extensive information and links to many Penn State and IST resources (including the Penn State libraries, video conferencing tools, technology and software, writing and research help, and much more) on the Resources page.
Standard World Campus computer technical specifications are assumed for this course. Please test your computer for requirements. In addition, a webcam and a headset with a microphone are REQUIRED for the course. These may be used for virtual meetings, virtual office hours, interactions with classmates and your instructor, and group presentations - which are all conducted with virtual meeting tools. No special software is required.
The following schedule outlines the topics covered in this course, along with the associated time frames, readings, activities, and assignments. All due dates reflect Eastern Time (ET). Specifying the time zone ensures that all students have the same deadlines, regardless of where they live.
The syllabus page shows a table-oriented view of the course schedule, and the basics of course grading. You can add any other comments, notes, or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the "Edit" link at the top.