University of Texas at El Paso
Banner
CS4310
Syllabus

Download syllabus-cs4310 (pdf)
Download syllabus-cs4311 (pdf)

CS 4311: Software Engineering II

Spring 2013

 

Instructors:       Dr. Yoonsik Cheon                          Dr. Irbis Gallegos

Office:             CCS 3.0606                                         Burges Hall 303

Phone:             747-8028                                             747-7629

email:               ycheon@utep.edu                            irbisg@utep.edu          

Office Hours:  TR 1:00-1:50 pm                                MW 10:30-11:30 pm or by appt.

 

Class Time:      TR 9:00-10:20 am in CRBL C305

TA:                     Aditi Barua (abarua@miners.utep.edu;

                                              office hours: Thursday: 5pm-7pm @Main Lab)

 

Prerequisites:  CS 4310 with a grade of C or better. You should be in your last two semesters as an undergraduate.

 

Text Books:

Hans Van Vliet, Software Engineering:Principles and Practice, 3rd Edition, Wiley, 2008.

Resources:

R. Wirfs-Brock, R. Wilkerson, and L. Wiener, Designing Object-Oriented Software, Prentice Hall, 1990.

Scott W. Amber, The Elements of UML 2.0 Style, Cambridge University Press, 2005.

Allan Vermeulen, et al., The Elements of Java Style, Cambridge University Press, 2000.

Course Description:

Methodologies, approaches, and techniques associated with software design, implementation, and testing of a software system; other topics include cooperative teamwork, project management, and documentation; second semester of a two-semester capstone project in which students design and implement a real-world application specified in CS4310.

 

Goals: To provide computer science students with software analysis and design techniques that result in the development of maintainable and reliable software that meets the customer’s needs. In practical terms, this course is meant to provide students with an approximation of a real-world experience of software development.

 

Topics:

-       Configuration management

-       Software design analysis techniques

-       High-level software design

-       Software design specification

-       Software implementation

-       Software validation and verification

-       Software process improvement

 

Learning Outcomes

Level 1: Knowledge and Comprehension

Level 1 outcomes are those in which the student has been exposed to the terms and concepts at a basic level and can supply basic definitions.  The material has been presented only at a superficial level.

Upon successful completion of this course, students will be able to:

 

1a.   Articulate design principles, including cohesion and coupling, encapsulation, and information hiding,.

1b.  State the main features of PSP.

1c.   Relate the main factors in cost estimation.

1d.  Discuss the issues related to maintenance.

1e.   Discuss different software architectural styles such as blackboard, event systems, layered system, pipe and filters.

1f.    Describe the main components of the Software Engineering Code of Ethics.

 

Level 2: Application and Analysis

Level 2 outcomes are those in which the student can apply the material in familiar situations, e.g., can work a problem of familiar structure with minor changes in the details.

Upon successful completion of this course, students will be able to:

 

2a.   Differentiate between audits, inspections, and walk-throughs.

2b.  Apply different diagramming techniques for an architectural design, including class diagrams, CRC cards, module diagrams, structure charts, and subsystem diagrams.

2c.   Apply different diagramming techniques for producing a detailed design of a system, including collaboration diagrams, decision tables and diagrams.

2d.  Relate general strategies to identify and implement appropriate software architecture patterns according to the system being developed.

2e.   Relate general strategies for creating a design of a system.

2f.   Distinguish between the different levels of cohesion and coupling.

2g.   Apply project management techniques.

2h.  Use software development and maintenance tools (creation and editing of software documents), GUI generators, comprehension tools, supporting activities tools (configuration management tools), and verification and validation tools.

2i.    Demonstrate skills in working as a cooperative team in order to achieve group goals.

2j.    Examine potentially negative technical, ethical, or legal implications of software engineering projects on customers or others involved.

2k.  Exhibit responsible attitudes and work habits as individuals and groups, in accordance with professional software engineering codes of ethics.

2l.    Relate the importance of professional societies.

2m.Describe the difference between unit, integration, system, and acceptance testing

2n.  Engage in self-directed study to learn new techniques and tools for software design, implementation, and/or testing.

 

Level 3:  Synthesis and Evaluation

Level 3 outcomes are those in which the student can apply the material in new situations.   This is the highest level of mastery.

Upon successful completion of this course, students will be able to:

 

3a.   Conduct a technical review.

3b.  Implement a configuration management plan.

3c.   Create an architectural design and detailed design for a large system.

3d.  Develop a design that anticipates change.

3e.   Construct software from a software design.

3f.   Develop white-box and black-box test cases that provide a variety of test coverage.

3g.   Conduct unit and integration testing.

3h.  Develop a test plan for a large system.

3i.    Demonstrate an ability to assemble and orally present technical work to different constituencies.

3j.    Compose technical documents that are grammatically correct and technically sound.

3k.  Apply effective techniques for collaboration and problem-solving within groups.

 

Course ObjectivesThis course will provide students with the fundamentals of the design and implementation of software systems, emphasizing the principles and methods used to develop and verify software systems. On completion of CS4311, students should be able to discuss and demonstrate approaches, techniques, or methods for creating high-level and detailed designs, hierarchical factoring of object systems, develop verification plans, be familiar with IEEE standards, and have experience in planning and implementing a large project.

Teams: We believe that the ability to work with other software developers is essential. Therefore, students will be required to work effectively in teams throughout the semester. Students will be assigned to lead teams for particular assignments. The lead is responsible for: coordinating meetings and completing the meeting records; assigning tasks and recording task assignments; collecting documentation of individual work, including rough drafts; ensuring the team meets the deadlines; organizing the team notebook; maintaining back-up copies of work; and binding deliverables.

Examinations: Examinations are assumed to be closed book, closed notes, in class, unless otherwise specified. Make-up examinations are not given. If you miss an examination for a legitimate reason (such as illness, death in the family, participation in a college sponsored activity), then your comprehensive final examination will be counted extra to compensate for the missed work. If you miss an examination with out a legitimate reason, a grade of 0 will be recorded for that examination. If you know you will be missing an exam date due to a college sponsored activity, you may arrange to take the exam in advance.

Grading Summary: Final grades in this course will be determined by combining grades for two components: exams and projects/homework. The sequence described below will be used to determine your final grade.

1.      The exam average will be computed by summing 30% of midterm 1, 30% of midterm 2, and 40% of the comprehensive final. A student with an exam average below 60 will receive an F for the course. A student with an exam average between 60 and 65% will receive a D for the course.

2.      The project grade will be computed by combining the grades for the Class, Responsibility, Collaboration, Hierarchy, High-level Design, Protocols, Prototype, Subsystem design, Test Plan, Configuration Management Plan, Implementation, Testing Report, and Final Presentation. Project grades may be strongly influenced by the Guidance Team’s assessment of a student’s contribution to his/her team. A student with a project grade below 60 will receive an F for the course and no further grade computation will be made. A student with a project grade between 60 and 65% will receive a D for the course, unless the student has already received a grade of F for the exams.

3.      For each student whose grade has not yet been assigned, a final score will be computed by summing 45% of the exam grade, 50% of the project grade and 5% of the class participation and homework. The final grade in the course will nominally be assigned according to the scale A: 90-100  B: 80-89  C: 70-79  D: 60-69.

General policies:

Use of electronics in class: UTEP supports the use of technology for learning.

 

Laptops can be an asset to some students and help them in their note-taking and learning.  Students will be allowed to use laptops in this class provided they follow the rules described below. Failure to follow these guidelines will result in suspension of laptop privledges in class.

 

  • Charge your laptop batteries fully before coming to class.
  • Set your laptop volume control to mute or off before coming to class.
  • Keep your laptop closed during presentations and other specific in-class activities.
  • Do not engage in unauthorized communication or entertainment (web surfing, instant messaging, chat room chatting, DVD viewing, music playing, game playing, etc.) during class unless it is part of the lesson.

 

Cell Phones are nearly universal in our modern culture. Under normal circumstances, however, you are expected to refrain from using cell phones during class time. Your cell phone should be set to silent mode or turned off before class. Under no circumstance will you be allowed to use text messaging (sending or receiving) or web browsing features of your phone while you are in class. In an emergency, there may be a genuine, rare need for you to use a cell phone during class time. In this case, you will excuse yourself from class and leave the classroom to answer an incoming call. You will not be permitted back into the classroom for the remainder of class. It is never permissable to place an outgoing call while you are in class.

 

Other Wireless Communications Devices are not allowed in class.

 

Time: This course is time intensive. You must start assignments early and work steadily to be successful.

Grading errors: We are only humans. We can and will make mistakes. You have one week after graded material is returned to the class to rectify any grading errors or to argue for additional credit. After the week has passed, no changes in grades will be made.

Class Attendance and Participation: As a college student, you have the freedom to choose whether or not to attend class. However, in this course we are committed to cooperative techniques, which can only work if students attend regularly and on-time. Part of what we are encouraging in this course is the establishment of professional behavior. Therefore, we will take attendance. Your final grade will be lowered by one point for each unexcused absence above three. For the purposes of this class, you will be counted as absent if you are not present when we take attendance. If you feel that you must interact with people using cell phones, PDAs, Blackberries, email, twitter, chat, or any other electronic means, you are free to do so outside of class. If we find you doing these things in the classroom, we will ask you to leave, and to avoid disturbing the rest of your classmates, you should not return until the start of the next class.

Office hours: We expect you to meet with us outside of class time to discuss the course material. You and your team may contact the Guidance Team (Dr. Cheon, Dr. Hu, and the TAs) by office phone, in person, or email to arrange a suitable time to meet.

Let us make one more point here: we are available to assist you in solving problems, not to think or do work for you. Office meetings are for helping you by clarifying material and for assisting you with problems you are encountering. It is not for repeating things you missed when you skipped class. You should come to office appointments prepared. The harder you work at it, the harder we will work to help you.

Incomplete: Students receive a grade of Incomplete only under extraordinary circumstances: when they have substantially completed the course work with a passing grade, but cannot finish the course for a legitimate reason. Legitimate reasons include severe illnesses and debilitating accidents. Class or workloads that are too demanding are NOT legitimate reasons. 

Lecture material: You are expected to preview lecture material BEFORE coming to class, including reading the assigned material from the text book. Some material may not be in the text: references will be provided, but you are responsible for the content

Academic dishonesty: Cheating is defined as submitting work under your name that was not done entirely by you for individual assignments or by your team for team assignments. (This includes taking programs from the web or cutting text from web pages and pasting them into documents, even if the source is cited). Cheating will not be tolerated--those caught cheating will be reported to the Dean of Students. You should be aware of the Standards of Conduct posted at http://www.utep.edu/vpfa/student_affairs/student/studindex/htm.

Disabilities: If you have or suspect a disability and need accommodations, you should contact The Student Disabled Services Office (DSSO) at 747-5148. You can also email the office at dss@utep.edu or go by the Union Building East, Room 106. For additional information, visit the DSSO website at www.utep.edu/dsso/.

HELP: Please confer with us if you experience difficulty with any aspect of the course – we are here to help you to learn. If you request help via email, make sure to write HELP in the subject line. Call us. Send us mail. Ask us questions.