2016 Software Development Tools Assignment Questions

Published on November 2016 | Categories: Documents | Downloads: 42 | Comments: 0 | Views: 392
of 20
Download PDF   Embed   Report

This has all the assignment questions of the University of Southern Queensland Course csc2408. The answers to these questions are in the next document.

Comments

Content

CSC2408

Software Development Tools

Introductory Book
Semester 1, 2016

Published by

The University of Southern Queensland
Toowoomba, Queensland 4350
Australia
http://www.usq.edu.au
c University of Southern Queensland, 2016.1


Copyrighted materials reproduced herein are used under the provisions of
the Copyright Act 1968 as amended, or as a result of application to the
copyright owner.
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means electronic, mechanical,
photocopying, recording or otherwise without prior permission.

Contents
Getting started . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

Course Organization . . . . . . . . . . . . . . . . . . . . . . . . . .

5

Resource Materials . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

Study Book . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

Text book . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

Assessment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

Course Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

Study Desk . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

Study Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

Assignment 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

Assignment 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

Assignment 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

3

4

CSC2408—Software Development Tools

Getting started
The Current Students website <http://www.usq.edu.au/current-students>
provides links to essential information which will assist you in your studies
at USQ. Use this site as a reference point to find information on:
• getting started
• organising enrolment
• assignment
• learning support
• student services
• student support
• opportunities
• graduation and beyond

Introduction
Welcome to the course CSC2408, Software Development Tools. The aim of
this course is to give you a sound basic knowledge of the most important tools
available under the Unix operating system. This is particularly important
as many of the courses which you will undertake require use of Unix, and
appropriate use of the tools provided will make your practical work much
easier to complete.
Although the focus of this course is on Unix tools, many of the tools that
you will use are generic. That is, tools of very similar functionality, though
most likely with a different interface, exist under other operating systems.
Hence Unix-specific knowledge gained in this course can be transferred later
to other operating environments.
A look at the table of contents of the Study Book will indicate the topics
covered. Note that installing Linux is not an assessable part of the course —
we assume that you have used the materials available on the Departmental
DVD-ROM set to install Linux.
This course is user-focused; we concentrate entirely on tools used by the
general user, rather than the system administrator. System administration
is covered by another course by name of System and Security Administration.
c
University
of Southern Queensland

CSC2408—Software Development Tools 5

Course Organization
The Study Book together with the Study Schedule on page 10 of this book
are your main guides to completing this course. You should work through
the Study Guide at the rate described in the Study Schedule. Many of the
exercises in the Study Book must be completed and handed in for assessment. It is strongly recommended that you attempt all exercises, whether
or not they are assessable. Be aware that skills and knowledge gained from
completing non-assessable exercises may still be examined in the examination.

Resource Materials
Study Book
This is your primary reference. It contains some original material which will
be needed to complete exercises, but most of the study material is derived
from the textbook. The Study Book contains a large number of exercises;
many of these must be completed and handed in for assessment.

Text book
There are a number of excellent texts about the Unix operating system.
Some are brief introductions, while others are much wider in scope. Some
texts also include some programming guidance. We have chosen the A Practical Guide to Linux Commands, Editors, and Shell Programming by Sobell.
This is an excellent book. It is perhaps less tutorial in style than some
other books, but it contains a wealth of detailed, well organized information. While it is not the appropriate choice for someone wanting a quick
introduction to Unix, it is ideal as a long term companion.
You may choose to use or consult other Unix texts rather than the recommended text. This is acceptable and as long as you are able to complete the
exercises and can cover the conceptual material contained in chapters 2, 3
and 4.

Readings
These are supporting documentation not covered by the textbook. Also
included for your convenience are copies of some Unix man pages. The
c
University
of Southern Queensland

6

CSC2408—Software Development Tools

largest part of the Readings is the complete GNU Make manual, which you
should find useful in many other courses.

Course DVD-ROM
The course DVD-ROM contains a complete pre-installed Virtual Debian
system created from the Department’s Debian/GNU Linux Distribution.
This DVD-ROM is for emergency use only. It is for students having trouble
installing Debian Linux on their computer—they will have access to a Linux
distribution that will allow them to do the exercises and assignments without
falling behind—while they sort out the problems of their installation.
A virtual operating system is no substitute for an installed operating system—
remember this is not the only course you will do that will require access to
a Linux operating system—it is far better to install the Operating System
rather than rely on a virtual system.

WWW
All course material is available from the Course Home Page accessible via
the USQStudyDesk

This is important!

The course webpage described above is your primary point of
contact with the university for this course. You can submit assignments via this site, and also retrieve results and feedback.

Assessment
You are required to complete three (3) assignments and an examination.
Details of due dates and weighting appear in the Table below and in the
assignment specifications later in this book. The course specification can be
accessed via the course home page.
As there are three(3) assignments you must complete them in a timely manner. In particular, you must ensure that you install Linux early in the
semester so that you can proceed with the assignments.
c
University
of Southern Queensland

CSC2408—Software Development Tools 7

What and how to hand in
The course webpage contains a link for you to submit an assignment. Penalties will apply for late submissions (see the course specification).
Normally Do not submit via email. You, however, need to
contact the examiner to get a permission if you are restricted
from the Internet.
Here is a good way of creating the assignment text file (the first of the two
items above). Have two terminal or windows open on your screen. One is a
standard window used to type in the commands and inspect the result. The
second one contains an editor session. Now try out the commands needed
for the assignment in the first window; when you get it right highlight (click
and drag the left mouse button) the command and its response. Then paste
into the editor session using the middle mouse button. If the text you want
to highlight is longer than a screenfull either copy and paste a screenfull at
a time or do the following to highlight it (we assume a three button mouse)
before a single paste operation.
• Scroll up in the window using the middle mouse button while pointing
at the scroll bar.
• Highlight the initial part of the text by click and dragging with the
left mouse button.
• Scroll down to the end of the text to be selected.
• Extend your initial selection by click and dragging the right mouse
button.

How to Lay Out Assignments
Suppose a Question in an Assignment is What is inode?, your answer to it
should indicate clearly which question using some suitable marker like

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Question 2: What is an inode?
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
inode is a data structure that contains information about a file.
An inode for a file contains the file’s length, the times the file
was last accessed and modified, ......
c
University
of Southern Queensland

8

CSC2408—Software Development Tools

It is vitally important that your assignment is clearly laid out. It must
be a straightforward matter for the examiner to determine that you have
completed each question satisfactorily. We want quality not quantity. Poorly
organized submissions will be rejected.

Assignment Results and Feedback
Assignment results will be posted on your StudyDesk. It is your responsibility to check the assignment link regularly to determine your result.

c
University
of Southern Queensland

CSC2408—Software Development Tools 9

Course Support
Support for this course is available for all enrolled students. The main
avenues for help, in order, are
• The discussion forums on the course web pages. Any query posted
to the course forums should be answered by anyone who can. It is
not just to be a forum for the lecturer of the course but as a general
communication forum for all the students in the course.
• If you need to communicate to the examiner of the course then send
email via message facility available on the course web pages.
• You can also communicate to the lecturer of the course via Ask USQ
– from the homepage: UConnect > UAsk > Ask USQ.
• If you have a specific Linux question you can contact the lecturer or
send email to [email protected]

Study Desk
Your StudyDesk in UConnect gives access to a home page for every course
in which you are currently enrolled. Content available from the course home
page will vary according to the teaching requirements of the course, but may
include:
• course materials and resources,
• electronic discussion facilities,
• access to past examination papers.
As each course has specific learning requirements, availability of these features will vary between courses.

Links
UConnect gives access to the Library and the Academic Learning Support
site, as well as the Quick Links list of University sections and services.

c
University
of Southern Queensland

10

CSC2408—Software Development Tools

Study Schedule
The following table contains a recommended study pattern which will see
you handing in all there assignments on time.
The first five weeks are probably a little easier than the later weeks. This
allows you plenty of time to get used to Linux, which you must do as soon
as possible. Weeks 6–8 will be pretty hard going, as other assignments will
be no doubt due as well during this period.
If at all possible you should try to “get ahead” of this schedule. For instance,
try and finish assignment 1 early, and then make a start on assignment 2 as
soon as possible. This also applies to assignment 3, as there is little time
between handing in assignment 2 and when assignment 3 is due.

Week

Module

Topics

1

M1

Linux OS Overview

2

M2.1–2.4

Shell commands

3

M2.5–2.8

Filesystem

4

M2.9–2.10

Interactive Editors

5

M2.11–2.12

Batch Editor - sed

6, 7
8

Assignment

A1 Due (see course spec)

RECESS
M3

Document Preparation

9

Shell Scripting

10

Bash Scripting

11
12

M4

13
14
15

Software Project
Management

M5

A2 Due (see course spec)

Software
Version Control

A3 Due (see course spec)

16

EXAMINATIONS

17

EXAMINATIONS

c
University
of Southern Queensland

CSC2408—Software Development Tools11

Assignment 1
Weight
15%
Due Date See course specification
1. It is compulsory to use either vim or emacs to edit the assignment file, in which the answer to all questions must be included.
2. The submission file containing all answers to the questions must
be compressed by either use tar or zip before submission.

Question 1. (10 marks)
Create a subdirectory in your home directory and put a file welcome.txt
with a short message in this subdirectory. Set the permission bits on the
subdirectory so that the owner has executable access. Try to:
• make the subdirectory the current directory;
• list the subdirectory;
• display the contents of welcome.txt;
• create a copy of welcome.txt in the subdirectory.
Repeat the same experiments first with read permission.
Finally, answer the following questions.
• If a directory has “read” permission, what operations can you perform
on the the directory and the files in it?
• If a directory has “executable” permission, what operations can you
perform on the the directory and the files in it?

Question 2. (10 marks)
Use examples to describe the differences in the substrings matched by the
patterns which are specified by the following regular expressions.
• ab.cd and ab*cd
• ab.*cd and abb*cd
c
University
of Southern Queensland

12

CSC2408—Software Development Tools

• ^abc and ^abc$
• [abc]d and [^abc]d
• [A-Z][_a-zA-Z0-9]* and [A-Z_][a-zA-Z0-9]*
(Note the regular expression “x*$” could be described as a line has “zero or
more x at the end of the line”.)

Question 3. (10 marks)
Read find online manual page, then
• Give the command-line of using find to search for all SUID and SGID
programs.
• Give the command-line of using find to list all the subdirectories in
the current directory
• Use find to produce a long ls listing of all files in /usr/bin that are
more than 750Kb long. Give all the arguments and options in the
following command-line

Question 4. (10 marks)
Create a big file (If you don’t know how to create a big file, try ls -l
/usr/bin > bigfile). Make a copy of it using cp, and call them big1 and
big2.
Then give
• the command-line to compress big1 using gzip.
• the command-line to compress big2 using bzip2.
• the compression ratio of each compression method.
• the command-line of checking the file type of compressed files and the
original.
• the command-line to list top 10 lines of the content of big1.gz and
big2.bz2.
c
University
of Southern Queensland

CSC2408—Software Development Tools13

Question 5. (10 marks)
List the Linux commands plus the necessary options or arguments to perform
the following activities
• Use tar to create an archive (don’t use the z or j option) of all the
files in the current directory.
• Compress the tar file with gzip.
• View the contents of archive with gunzip and tar
• View the contents of archive without using gunzip but use the tar
instead. (Hint: find the right option to use from the man page).
• Create a subdirectory of the current directory.
• Use tar to unpack the archive into that directory at the current directory.

Question 6. (10 marks)
Assume you have a text file called file. Describe what the sed utility does
to the text file.
1.
2.
3.
4.
5.

sed
sed
sed
sed
sed

-n "/the/ p" file
-n "s/[A-Z]/&/gp" file
"32,45 s/[()]//g" file
"/^$/d" file
"s/\([0-9]\)-\([0-9]\)/\1\2/g" file

Here is a sample question, sed ’s/fox/ox/g’ file Description: sed will
replace all occurance of fox with ox and not the just the first one in file.

c
University
of Southern Queensland

14

CSC2408—Software Development Tools

Assignment 2
Weight
15%
Due Date See course specification
Instructions:
All LATEX files are edited by using vim (or emacs). Your submission include the following two items in a compressed file.
• A PDF file only for Question 1.
• A LATEX text file for Question 2, 3, 4 and the PDF file generated from the LATEX file.

Question 1. (5 marks)
Create a LATEX document, which should be in 11point font
• It contains at least one section and subsection. Include some text in
typewriter font, italics, SMALL CAPS and bold.
• Expand the document as follows.
1. Add a title with your name and the date
2. Include at least two forms of list
3. Include a piece of verbatim text – this might be a program or a
program fragment.
4. Experiment with font size: try out all (at least 4) the available
font sizes and include the results in your document.
• Expand the document further
1. Add a table of contents
2. Create a floating table with caption. It should look just like
the one in Table 1, except that the table number will be different(Don’t have to use the multirow package).
3. Typeset the following formulae and add them to the document

−b ± b2 − 4ac
x=
2a
c
University
of Southern Queensland

CSC2408—Software Development Tools15

Category
Editor
Scripting
Document
Management

Command
emacs
vi
bash
perl
rcs
LATEX
make

Tool
Description
Emacs extensible text editor
Visual editor
GNU Bourne-Again SHell
Practical Extraction and Report Language
Revision Control System
Document Typesetting Package
Managing Project Utility

Table 1: Some Unix Utilities
4. Typeset the following mathematical formula (1).

if x > 0
 1
−1 if x < 0
∆(x) =

0
otherwise

(1)

Question 2. (20 marks)
Write a well structured Bash script to delete comments from a C program. In
Bash script, you may use sed commands or other Linux utilities. The standard comment or commentline in C programs starts with the two-characters
token (/*) and ends with the two-character token (*/). Assume that each
comment line contains the start and end tokens without any other statements before and after. You need to pay attention to the following cases:
/* a comment line in a C program */
printf("It is /* NOT a comment line */\n");
x = 5; /* This is an assignment, not a comment line */
[TAB][SPACE] /* another empty comment line here */
You can test your Bash script on a C program containing all above four
lines. The expected output should look like
printf("It is /* NOT a comment line */\n");
x = 5; /* This is an assignment, not a comment line */

Question 3. (15 marks)
A Bash script is given as follows.
#!/bin/bash
c
University
of Southern Queensland

16

CSC2408—Software Development Tools

#A script demonstrating an until-loop and command line processing
#
# List the regular files of a directory greater than a given size
name=${0##*/}
Usage="Usage: $name [-h] [-s N] [directory]"
if [ $# -eq 0 ]; then
echo $Usage
exit 1
fi
until [ $# -eq 0 ]
do
case $1 in
-s) shift
size=$1
shift;;
-h) echo $Usage
exit 0;;
*) directory=$1
shift;;
esac
done
directory=${directory:-‘pwd‘}
if [ ! -d $directory ]; then
echo "‘$directory’ is not a directory"
exit 1
fi
arg=’’
if [ $size != ’’ ]; then
arg="-size +$size"
fi
find $directory $arg -type f -exec ls -l {} ’;’

Carefully look at it. Add comments to this script — line by line.
c
University
of Southern Queensland

CSC2408—Software Development Tools17

Question 4. (20 marks)
Write a short but well structured Bash script that, given the name of a file
as an argument, reads the file name and creates a new file containing only
those lines which have one word in it. Here is an example of the input file.
This is a special text file
There
are 20 students in the class.
[TAB][SPACE] Nearly
half of them are enrolled in FoS. The rest are in
Faculty-Of-ES.
The output file from the script should look like
There
[TAB][SPACE] Nearly
Faculty-Of-ES.
Ensure the script has error and robustness checking.

c
University
of Southern Queensland

18

CSC2408—Software Development Tools

Assignment 3
Weight
10%
Due Date See course specification
Instructions:
• use vi (or emacs) to edit the answer for each question in a LATEX
document.
• apply latex, dvips, pstopdf(or just pdflatex if installed) to produce a
PDF file.
The submission should be a compressed file, in which a PDF file
is included.

Question 1. (15 marks)
Suppose there are two C source (transaction.c and reports.c) and two header
files (trans.h and reps.h). Write explicit rules for a Makefile/makefile that
reflects the following relationships:
1. The C source files transaction.c and reports.c are compiled to
produce an executable accts.
2. transaction.c and reports.c include a header file accts.h
3. The header file accts.h is composed of two other header files: trans.h
and reps.h.
(Note that any Linux commands or utilities can be used as the construction
command of the makefile if necessary)

Question 2. (15 marks)
Write a makefile that reflects the dependency relationship between a set of
files which comprise an application as shown in Figure 1.
The arrows point to the dependent file from the file on which it depends. In
other words,
c
University
of Southern Queensland

CSC2408—Software Development Tools19

Figure 1:
1. The application card-exe is created by linking together the object modules main.o and cards.o and the object library liboutput.a.
2. The object library is built from the object file output.o and deck.o;
these object files depend upon their corresponding source files.
3. output.o additionally depends on deck.h
4. The header file cards.h contains calling definition (prototypes) for the
functions in cards.o and deck.h containing prototypes for deck.c
5. all files which call functions defined in deck.c will need to include
deck.h.
6. main.c calls functions from cards.c and output.c, cards.h and output.h
must be included in main.c

Question 3. (10 marks)
Use a small text file to experiment with the RCS system. Note that RCS
treats all ASCII file the same way; the files do not necessarily be programs,
though usually are programs. Specially you should
• Place a $Log$ keyword in the file
• Complete a set of check in operations which result in the RCS file
structure depicted in Figure 2.
You will need to make small changes to the source file between check
in operations.
• Associate a symbolic name with revision 2.1.1.1
c
University
of Southern Queensland

20

CSC2408—Software Development Tools

2.2

2.1.1.1

1.2.1.2

2.1

1.2.1.1.1.1

1.2.1.1

1.2.2.1
1.2

1.1

Figure 2:
• Make the branch containing revision 2.1.1.1 the default branch
• Use rlog to verify the RCS structure.
Give all the commands or command lines used in each step of activities,
along with a brief description.

c
University
of Southern Queensland

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close