2016 Software Development Tools Assignment Questions

Embed Size (px)

Citation preview

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    1/20

    CSC2408

    Software Development Tools

    Introductory BookSemester 1, 2016

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    2/20

    Published by

    The University of Southern QueenslandToowoomba, Queensland 4350Australia

    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 thecopyright owner.

    No part of this publication may be reproduced, stored in a retrieval sys-tem or transmitted in any form or by any means electronic, mechanical,photocopying, recording or otherwise without prior permission.

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    3/20

    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

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    4/20

    4 CSC2408—Software Development Tools

    Getting startedThe Current Students website  provides links to essential information which will assist you in your studiesat 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

    IntroductionWelcome to the course CSC2408, Software Development Tools. The aim of this course is to give you a sound basic knowledge of the most important toolsavailable under the Unix operating system. This is particularly importantas many of the courses which you will undertake require use of Unix, andappropriate use of the tools provided will make your practical work mucheasier to complete.

    Although the focus of this course is on Unix tools, many of the tools thatyou will use are generic. That is, tools of very similar functionality, thoughmost likely with a different interface, exist under other operating systems.

    Hence Unix-specific knowledge gained in this course can be transferred laterto other operating environments.

    A look at the table of contents of the Study Book will indicate the topicscovered. Note that installing Linux is  not  an assessable part of the course —we assume that you have used the materials available on the DepartmentalDVD-ROM set to install Linux.

    This course is user-focused; we concentrate entirely on tools used by thegeneral user, rather than the system administrator. System administrationis covered by another course by name of   System and Security Admin-istration.

    cUniversity of Southern Queensland

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    5/20

    CSC2408—Software Development Tools 5

    Course OrganizationThe Study Book together with the Study Schedule on page 10 of this bookare your main guides to completing this course. You should work throughthe Study Guide at the rate described in the Study Schedule. Many of theexercises in the Study Book must be completed and handed in for assess-ment.   It is strongly recommended that you attempt all exercises , whetheror not they are assessable. Be aware that skills and knowledge gained fromcompleting non-assessable exercises may still be examined in the examina-tion.

    Resource Materials

    Study Book

    This is your primary reference. It contains some original material which willbe needed to complete exercises, but most of the study material is derivedfrom 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. Sometexts also include some programming guidance. We have chosen the  A Prac-tical Guide to Linux Commands, Editors, and Shell Programming  by Sobell.This is an excellent book. It is perhaps less tutorial in style than someother books, but it contains a wealth of detailed, well organized informa-tion. 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 recom-mended text. This is acceptable and as long as you are able to complete theexercises and can cover the conceptual material contained in chapters 2, 3and 4.

    Readings

    These are supporting documentation not covered by the textbook. Alsoincluded for your convenience are copies of some Unix man pages. The

    cUniversity of Southern Queensland

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    6/20

    6 CSC2408—Software Development Tools

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

    Course DVD-ROM

    The course DVD-ROM contains a complete pre-installed Virtual Debiansystem created from the Department’s Debian/GNU Linux Distribution.

    This DVD-ROM is for emergency use only. It is for students having troubleinstalling Debian Linux on their computer—they will have access to a Linux

    distribution that will allow them to do the exercises and assignments withoutfalling 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 toa Linux operating system—it is far better to install the Operating Systemrather 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 as-

    signments via this site, and also retrieve results and feedback.

    AssessmentYou are required to complete three (3) assignments and an examination.Details of due dates and weighting appear in the Table below and in theassignment specifications later in this book. The course specification can beaccessed via the course home page.

    As there are three(3) assignments you must complete them in a timely man-ner. In particular, you must ensure that you install Linux early in thesemester so that you can proceed with the assignments.

    cUniversity of Southern Queensland

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    7/20

    CSC2408—Software Development Tools 7

    What and how to hand inThe course webpage contains a link for you to submit an assignment. Penal-ties will apply for late submissions (see the course specification).

    Normally Do not submit via email. You, however, need tocontact the examiner to get a permission if you are restrictedfrom the Internet.

    Here is a good way of creating the assignment text file (the first of the twoitems above). Have two terminal or windows open on your screen. One is astandard window used to type in the commands and inspect the result. The

    second one contains an editor session. Now try out the commands neededfor the assignment in the first window; when you get it right highlight (clickand drag the left mouse button) the command and its response. Then pasteinto the editor session using the middle mouse button. If the text you wantto highlight is longer than a screenfull either copy and paste a screenfull ata 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 pointingat the scroll bar.

    •  Highlight the initial part of the text by click and dragging with theleft mouse button.

    •  Scroll down to the end of the text to be selected.

    •  Extend your initial selection by click and dragging the right mousebutton.

    How to Lay Out Assignments

    Suppose a Question in an Assignment is  What is inode? , your answer to itshould 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, ......

    cUniversity of Southern Queensland

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    8/20

    8 CSC2408—Software Development Tools

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

    Assignment Results and Feedback

    Assignment results will be posted on your StudyDesk. It is your responsi-bility to check the assignment link regularly to determine your result.

    cUniversity of Southern Queensland

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    9/20

    CSC2408—Software Development Tools 9

    Course SupportSupport for this course is available for all enrolled students. The mainavenues for help, in order, are

    •   The discussion forums on the course web pages. Any query postedto the course forums should be answered by anyone who can. It isnot just to be a forum for the lecturer of the course but as a generalcommunication 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 orsend 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 homepage will vary according to the teaching requirements of the course, but mayinclude:

    •   course materials and resources,•   electronic discussion facilities,•  access to past examination papers.

    As each course has specific learning requirements, availability of these fea-

    tures will vary between courses.

    Links

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

    cUniversity of Southern Queensland

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    10/20

    10 CSC2408—Software Development Tools

    Study ScheduleThe following table contains a recommended study pattern which will seeyou handing in all there assignments on time.

    The first five weeks are probably a little easier than the later weeks. Thisallows you plenty of time to get used to Linux, which you must do as soonas possible. Weeks 6–8 will be pretty hard going, as other assignments willbe 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 timebetween handing in assignment 2 and when assignment 3 is due.

    Week Module Topics Assignment

    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   A1 Due (see course spec)

    6, 7   R E C E S S

    8 M3 Document Preparation

    9 Shell Scripting

    10 Bash Scripting

    11

    12 M4 Software Project

    13 Management   A2 Due (see course spec)

    14 M5 Software

    15 Version Control   A3 Due (see course spec)

    16   E X A M I N A T I O N S

    17   E X A M I N A T I O N S

    cUniversity of Southern Queensland

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    11/20

    CSC2408—Software Development Tools11

    Assignment 1Weight   15%Due Date   See course specification

    1. It is compulsory to use either vim or emacs to edit the assign-ment 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.txtwith a short message in this subdirectory. Set the permission bits on thesubdirectory 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 performon the the directory and the files in it?

    •  If a directory has “executable” permission, what operations can youperform on the the directory and the files in it?

    Question 2. (10 marks)

    Use examples to describe the differences in the substrings matched by thepatterns which are specified by the following regular expressions.

    •   ab.cd  and  ab*cd

    •  ab.*cd  and  abb*cd

    cUniversity of Southern Queensland

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    12/20

    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 ormore 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 SGIDprograms.

    •  Give the command-line of using   find   to list all the subdirectories inthe current directory

    •   Use  find  to produce a long  ls  listing of all files in   /usr/bin that aremore than 750Kb long. Give all the arguments and options in thefollowing 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 andbig2.

    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 theoriginal.

    •  the command-line to list top 10 lines of the content of   big1.gz  andbig2.bz2.

    cUniversity of Southern Queensland

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    13/20

    CSC2408—Software Development Tools13

    Question 5. (10 marks)List the Linux commands plus the necessary options or arguments to performthe following activities

    •   Use   tar   to create an archive (don’t use the  z  or   j  option) of all thefiles 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   tarinstead. (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 di-

    rectory.

    Question 6. (10 marks)

    Assume you have a text file called  file. Describe what the sed utility doesto the text file.

    1. sed -n "/the/ p" file

    2. sed -n "s/[A-Z]/&/gp" file

    3. sed "32,45 s/[()]//g" file

    4. sed "/^$/d" file

    5. sed "s/\([0-9]\)-\([0-9]\)/\1\2/g" file

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

    cUniversity of Southern Queensland

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    14/20

    14 CSC2408—Software Development Tools

    Assignment 2Weight   15%Due Date   See course specification

    Instructions:

    All LATEX files are edited by using vim (or emacs). Your submis-sion 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 gen-erated 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 intypewriter  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 aprogram fragment.

    4. Experiment with font size: try out all (at least 4) the availablefont 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 likethe one in Table 1, except that the table number will be differ-ent(Don’t have to use the multirow package).

    3. Typeset the following formulae and add them to the document

    x = −b ±

    √ b2 − 4ac

    2a

    cUniversity of Southern Queensland

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    15/20

    CSC2408—Software Development Tools15

    Category ToolCommand Description

    Editor   emacs   Emacs extensible text editorvi   Visual editor

    Scripting   bash   GNU Bourne-Again SHellperl   Practical Extraction and Report Language

    Document   rcs   Revision Control SystemManagement   LATEX   Document Typesetting Package

     make   Managing Project Utility

    Table 1: Some Unix Utilities

    4. Typeset the following mathematical formula (1).

    ∆(x) =

    1 if   x > 0−1 if   x

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    16/20

    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;;

    esacdone

    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.

    cUniversity of Southern Queensland

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    17/20

    CSC2408—Software Development Tools17

    Question 4. (20 marks)Write a short but well structured Bash script that, given the name of a fileas an argument, reads the file name and creates a new file containing onlythose 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.

    cUniversity of Southern Queensland

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    18/20

    18 CSC2408—Software Development Tools

    Assignment 3Weight   10%Due Date   See course specification

    Instructions:

    •   use vi (or emacs) to edit the answer for each question in a LATEXdocument.

    •   apply latex, dvips, pstopdf(or just pdflatex if installed) to produce aPDF file.

    The submission should be a compressed file, in which a PDF fileis included.

    Question 1. (15 marks)

    Suppose there are two C source (transaction.c and reports.c) and two headerfiles (trans.h and reps.h). Write explicit rules for a  Makefile/makefile thatreflects the following relationships:

    1. The C source files   transaction.c   and   reports.c   are compiled toproduce 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.hand   reps.h.

    (Note that any Linux commands or utilities can be used as the constructioncommand 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. Inother words,

    cUniversity of Southern Queensland

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    19/20

    CSC2408—Software Development Tools19

    Figure 1:

    1. The application card-exe is created by linking together the object mod-ules 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 thefunctions in cards.o and deck.h containing prototypes for deck.c

    5. all files which call functions defined in deck.c will need to includedeck.h.

    6. main.c calls functions from cards.c and output.c, cards.h and output.hmust be included in main.c

    Question 3. (10 marks)

    Use a small text file to experiment with the RCS system. Note that RCStreats 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 checkin operations.

    • Associate a symbolic name with revision 2.1.1.1

    cUniversity of Southern Queensland

  • 8/16/2019 2016 Software Development Tools Assignment Questions

    20/20

    20 CSC2408—Software Development Tools

    2.1

    1.2

    2.2

    2.1.1.1

    1.2.2.1   1.2.1.1

    1.2.1.2

    1.2.1.1.1.1

    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.

    cUniversity of Southern Queensland