University of Calgary
Rob Kremer
Paper Assignment

SENG 403: Software Development in Teams and Organizations
Winter 2012
Department of Computer Science
Computer
Science

Goal

The goal is to study and report to the class a specific aspect in software engineering in more depth.

Learning Outcomes

Working on this paper will teach you how to:

How does it work?

Step 1. Choose your team

Unlike the Project, you can choose your own team for working on the Paper. Every team should consist of 5 people.

Step 2. Choose a topic

You will have to pick a topic from a list of topics offered by the instructor. The topics will be posted no later than January 18, 2011 outside my office, and you will be made aware when the list is posted. To pick a topic, you will have to put your team members' names next to the selected topic. First come, first serve.

List of topics:

Topic 1: Innovation in the software industry


From a software engineering perspective, study the common themes that enabled companies like Google and Facebook to shine and become leaders in their markets. Discuss the impact of the work environment and the software engineering practices on their success.





Topic 2: Open-source software development


Discuss the technical and human aspects of open-source development as evident in influential projects like Firefox, Eclipse, and Open-Office. Why do people contribute to these projects, and what are the challenges?





Topic 3: Development with Ruby-on-Rails


Many companies nowadays are resorting to Ruby-on-Rails for fast, yet reliable, web development. Discuss the basic principles behind Ruby-on-Rails, and give a step-by-step tutorial to introduce the technology to your classmates.





Topic 4: Software architectural styles


“Be creative, but don’t reinvent the wheel.” Discuss the common architectural styles (aka. patterns) that can be reused to solve similar problems in the software domain. For each style, give a concrete example and discuss pros and cons.





Topic 5: Game development


Discuss how game development is different in terms of requirement elicitation, design, and testing. Where does the creative interaction design process fit in? What are some commonly used frameworks for game development?





Topic 6: Aspect-oriented programming (AOP)


The stated goal of AOP is to increase modularity of software systems. Discuss the differences between AOP and object-oriented programming, and give an introductory step-by-step tutorial on how to use AspectJ to write aspect-oriented code.





Topic 7: Service-oriented software


Web 2.0 is arguably an immediate product of service-oriented development. Discuss how loosely-coupled services can be used to create mash-ups, and give a step-by-step tutorial on how such services can be published and consumed.





Topic 8: Software security


Discuss the security measures that can be taken to assure secure software development and secure products. Also, discuss where software vulnerabilities come from and give concrete examples of vulnerabilities at the code level.





Topic 9: Clean code


Writing code that can be understood, tested, maintained, and reused by others for years to come is not straightforward. Use concrete examples to illustrate how developers can write clean code and refactor bad code.





Topic 10: Change management and negotiation


So you want to change how things are being done in your team or organization – how challenging can that be? Discuss how positive change can be introduced and negotiated effectively with superiors, colleagues and subordinates. Try to provide concrete examples stemmed from real case studies.





 Topic 11: Programming language families

Programming languages are often divided into 4 families: Procedural languages (eg Pascal), object-oriented languages (eg Java, C++, and also the object-based languages, eg BETA), logic Languages languages (eg Prolog), and functional languages (eg Lisp, Miranda).  Discuss what the differences are between these families, giving simple examples, and what the utility, benefits, and drawbacks of each of these are with respect to software engineering projects.

Step 3. Write the paper

Length & Format

You should aim to write 8 to 10 pages following the IEEE Proceedings format. Submit the paper in PDF format (*.pdf). You should use at least 10 credible references including books, journal articles and conference papers. In addition to the 10 references, you can also use online resources but you will have to judge the quality of such resources.

Deliverables

1. First draft due on Feb 28, 2011. Your first draft is not expected to be perfect. This draft is for you to know your progress and seek feedback from the instructor if you need it. But it should contain enough information and structure for you to be able to present the topic afterwards.
2. Presentation of your topic will be scheduled anytime after the first draft deadline. You are expected to deliver a high quality group presentation. Feel free to be as creative as possible. The more you engage your colleagues in the class, the better. Effective delivery of the content, the design of your slides (if any), and your presentation style will all be considered when assigning the grade for this component.
3. Final draft due by 11:59 pm on April 11, 2011. Late submissions will not be accepted. This paper will be posted on the course web page as part of the course notes.

Evaluation

The Paper is worth 20% of your total grade in the course. Peer-reviews may be used to adjust the individual grades of the group members (like in the project). It is the responsibility of the student to maintain complete records of effort to demonstrate their contribution. Your work will be judged based on the following criteria:

First draft is submitted on time 5%
The paper covers the topic comprehensively 50%
The paper is well-written and well-structured 10%
The paper conforms to the formatting guidelines 10%
The topic is presented in-class clearly and creatively 25%


UofC
SENG 403: Software Development in Teams and Organizations
Department of Computer Science

Last updated 2013-01-07 22:02
Rob Kremer