Philadelphia University
Lecturer : Dr. Samer Hanna
Internal Examiner: Dr. Mourad Maouche
Coordinator: Dr. Samer Hanna
Software Construction
(0721420 ) Section 1 First Exam’s Key First Semester of 2014/2015
Date: Sunday, Nov. 30th, 2014------Time: 50 min.
Answer the following:
1. False because Construction focuses on coding and debugging but also includes some detailed design and unit testing (2 marks)
2.
§ Verifying that the groundwork has been laid so that construction can proceed successfully.
§ Designing and writing routines and modules
§ Creating data types and naming variables
§ Selecting control structures
§ Finding and fixing faults and errors
§ Reviewing other team members' low-level design and code and having them review yours
§ Polishing code by carefully formatting and commenting it
§ Integrating software components that have been built separately
§ Tuning code to make it smaller and faster
3.
Primitive datatype such as int, string, double,…
Class (complex or user-defined datatype)
Collections like Array, ArrayList, List, …
Collections of Class
Q2) (8 marks)
Consider the following class diagram:
package leisureProgram;
public class Tutor
{
private String id;
private String name;
private String desc;
public Tutor(String id, String name, String desc) {
this.id = id;
this.name = name;
this.desc = desc;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
package leisureProgram;
import java.util.Date;
public class Program {
private String code;
private Date date;
private Tutor tutor;
public Program(String code, Date date, Tutor tutor) {
this.code = code;
this.date = date;
this.tutor = tutor;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public Tutor getTutor() {
return tutor;
}
public void setTutor(Tutor tutor) {
this.tutor = tutor;
}
}
package member;
import leisureProgram.*;
import leisureFacility.*;
import java.util.*;
public class Member
{
private String id;
private String name;
private String address;
private Program prog;
ArrayList<Transaction> trans = new ArrayList<Transaction>();
ArrayList<Booking> bookings = new ArrayList<Booking>();
public Member(String id, String name, String address, Program prog) {
this.id = id;
this.name = name;
this.address = address;
this.prog = prog;
}
public Member() {
this.id = " ";
this.name = " ";
this.address = " ";
this.prog = null;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Program getProg() {
return prog;
}
public void setProg(Program prog) {
this.prog = prog;
}
public ArrayList<Transaction> getTrans() {
return trans;
}
public void setTrans(ArrayList<Transaction> trans) {
this.trans = trans;
}
public ArrayList<Booking> getBookings() {
return bookings;
}
public void setBookings(ArrayList<Booking> bookings) {
this.bookings = bookings;
}
public void printMemberInfor()
{
System.out.println("Member id: " + id + " Name: " + name + " Address: " + address);
}
}
package member;
public class Transaction
{
private String id;
private double fee;
public Transaction(String id, double fee) {
this.id = id;
this.fee = fee;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public double getFee() {
return fee;
}
public void setFee(double fee) {
this.fee = fee;
}
}
package member;
import java.util.Date;
import leisureProgram.*;
public class VIPMember extends Member
{
private Date upgradeDate;
private String upgradeNotes;
public VIPMember(String id1, String name1, String address1, Program prog1, Date date1, String notes)
{
super(id1, name1, address1, prog1);
upgradeDate= date1;
upgradeNotes= notes;
}
public Date getUpgradeDate() {
return upgradeDate;
}
public void setUpgradeDate(Date upgradeDate) {
this.upgradeDate = upgradeDate;
}
public String getUpgradeNotes() {
return upgradeNotes;
}
public void setUpgradeNotes(String upgradeNotes) {
this.upgradeNotes = upgradeNotes;
}
}
package leisureFacility;
public class Booking
{
private String id;
private String court;
private String venue;
private Stadium stad;
public Booking(String id, String court, String venue, Stadium stad) {
this.id = id;
this.court = court;
this.venue = venue;
this.stad = stad;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCourt() {
return court;
}
public void setCourt(String court) {
this.court = court;
}
public String getVenue() {
return venue;
}
public void setVenue(String venue) {
this.venue = venue;
}
public Stadium getStad() {
return stad;
}
public void setStad(Stadium stad) {
this.stad = stad;
}
}
package leisureFacility;
public class Stadium
{
private String id;
private String name;
private String location;
public Stadium(String id, String name, String location) {
this.id = id;
this.name = name;
this.location = location;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
package leisureFacility;
import java.util.*;
public class Session
{
private Date begin;
private Date end;
ArrayList<Booking> bookings = new ArrayList<Booking>();
public Session(Date begin, Date end) {
this.begin = begin;
this.end = end;
}
public Date getBegin() {
return begin;
}
public void setBegin(Date begin) {
this.begin = begin;
}
public Date getEnd() {
return end;
}
public void setEnd(Date end) {
this.end = end;
}
public ArrayList<Booking> getBookings() {
return bookings;
}
public void setBookings(ArrayList<Booking> bookings) {
this.bookings = bookings;
}
public Booking findBooking(String id1)
{
for (Booking current : bookings)
{
if (current.getId().equals(id1))
return current;
}
return null;
}
}
Q3) (6 marks)
Repeat the mapping process in Question 2 (including the findBooking method) using C# but only show the code that is different than Java.
using System;
using System.Collections.Generic;
using System.Collections;
namespace First14_1_C_Sharp
{
namespace LeisureProgram
{
class Tutor
{
private string id;
public string Id
{
get { return id; }
set { id = value; }
}
public string Name { get; set; }
public string Desc { get; set; }
public Tutor(string id1, string name1, string desc1)
{
Id = id1;
Name = name1;
Desc = desc1;
}
}
class Program
{
public string Code { get; set; }
public DateTime Date { get; set; }
public double Fee { get; set; }
public Tutor tutor { get; set; }
}
}
namespace Member
{
using LeisureProgram;
class Transaction
{
public string id { get; set; }
public double Fee { get; set; }
}
class Member
{
public string Id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public Program Prog { get; set; }
ArrayList trans = new ArrayList();
ArrayList bookings = new ArrayList();
public Member(string id1, string name1, string address1, Program prog1)
{
Id = id1;
Name = name1;
Address = address1;
Prog = prog1;
}
}
class VIPMember : Member
{
public DateTime UpgradeDate { get; set; }
public string UpgradeNodets { get; set; }
public VIPMember(string id1, string name1, string address1, Program prog1,
DateTime upgrade1, string notes1)
: base(id1, name1, address1, prog1)
{
UpgradeDate = upgrade1;
UpgradeNodets = notes1;
}
}
}
namespace LeisureFacility
{
class Stadium
{
public string Id { get; set; }
public string Name { get; set; }
public string Location { get; set; }
}
class Booking
{
public string Id { get; set; }
public string Court { get; set; }
public string Venue { get; set; }
public Stadium stad { get; set; }
}
class Session
{
public DateTime begin { get; set; }
public DateTime end { get; set; }
ArrayList bookings = new ArrayList();
public Booking FindBooking(string id)
{
foreach (Booking current in bookings)
{
if (current.Id==id)
return current;
}
return null;
}
}
}
}
10