Software Engineering, Formal Specification, Dependable Software, Web-centric applications

Projects Supervised by Mr Norman

 

Project Area: Software Engineering 

Supervisor: MJ Norman ( mnorman@uwc.ac.za)

Description: The student will undertake a project that investigates an aspect within Software Engineering. The type of project could be a research project or a programming project. 

Objective (programming project): The objective of this type of project would be to exercise the student in the full software development life cycle / process from the initial requirements engineering to the final implementation of a quality software product. The appropriate software engineering / development principles, processes, methods and tools will be implemented and utilized. The relevant project documentation for the various stages of the development process will be completed as well. 

Objective (research project): The objective of this type of project would be to demonstrate research proficiency within an aspect of Software Engineering. The work product would be a reasonably sized written document, which applies or extends what the student has learned in earlier courses or about a subject matter that the student wishes to pursue in further studies. Assessment is done in terms of the written document and oral presentations.

Software Tools: Typical software tools that would be used in the construction of such a system would consist of one or more of the following technologies: Java, C++, VB, Perl, CGI, XML, Web Servers (PWS, IIS, Apache, etc), MS SQL Server, Database (Access, SQL, ADO, ODBC, RDS, etc), ASP, HTML, DHTML, ActiveX, VBScript, JavaScript, UML, etc

 

Possible Projects:

 

A Software Configuration Management (SCM) System

 

Supervisor: MJ Norman ( mnorman@uwc.ac.za)

Prerequisites: Software Engineering 3rd Year, Programming

Project Description: When building computer software (e.g. prototypes) and when it is released (e.g. version status), changes often occur due to the removal of defects and with the addition of new functionality as examples. These changes in software need to be managed and controlled effectively. Software Configuration Management (SCM) is a set of activities designed to control change be identifying a number of parameters, which are relevant e.g. managing different versions. This project will implement these identified activities which will assist software / project managers in controlling and managing change.

Outcomes: (Also see generic requirements for each Term on the web site.)

  •  Term1: Analysis. Define project scope in terms of OOA/UML techniques. Identify principles & parameters relevant to SCM and which of these will form part of the project. Identify software technologies & tools that will be used.
  •  Term2: Design & Development. Express design of the programme to be implemented using OOD/UML techniques. Provide a prototype with some functionality to illustrate a feature(s) of a SCM system.
  •  Term3: Implementation. Code the design to obtain a fully functional programme in terms of the scope expressed in term1.
  •  Term4: Testing, Evaluation & Presentation. Design test data and real world data scenario’s to ensure that all programme functions work correctly. Set up an online User’s guide.
  • Components: Programming: 60%; Research: 20%; Theory: 20%
  • Available: Yes

 

Software to support Reviews and Inspections

 

Supervisor: MJ Norman ( mnorman@uwc.ac.za)

Prerequisites: Software Engineering 3rd Year, Programming

Project Description: Software Quality Assurance (SQA) encompasses, amongst other aspects, Formal Technical Reviews (FTR) and Inspections. A FTR is a SQA activity performed by software engineers and others. The FTR has a number of objectives (e.g. uncover errors, meets requirements, etc) and is in essence a class of reviews that includes walkthroughs, inspections, round-robin reviews and other technical assessments. This project will implement these identified activities which will assist software / project managers in ensuring that software quality is implemented.

Outcomes: (Also see generic requirements for each Term on the web site.)

  •  Term1: Analysis. Define project scope in terms of OOA/UML techniques. Identify principles & parameters relevant to Software Reviews & Inspections and which of these will form part of the project. Identify software technologies & tools that will be used.
  •  Term2: Design & Development. Express design of the programme to be implemented using OOD/UML techniques. Provide a prototype with some functionality to illustrate a feature(s) of a Review & Inspection system.
  •  Term3: Implementation. Code the design to obtain a fully functional programme in terms of the scope expressed in term1.
  •  Term4: Testing, Evaluation & Presentation. Design test data and real world data scenario’s to ensure that all programme functions work correctly. Set up an online User’s guide.
  • Components: Programming: 60%; Research: 20%; Theory: 20%
  • Available: Yes

 

Automating aspects / phases of the Software Development Life-cycle (e.g. a DFD editor, Use-case Tool, Class design tool, etc)

 

Supervisor: MJ Norman ( mnorman@uwc.ac.za)

Prerequisites: Software Engineering 3rd Year, Programming

Project Description: When you build a software product, you go through a series of predictable steps – a process that helps you create a timely, high-quality work product. This process (with its methods and tools) provides stability, control and organization to an activity that can become uncontrolled if not implemented in a disciplined approach. These approaches are called Software Process Models or the Software Development Life-Cycle (SDLC). There are number of phases and aspects to the SDLC e.g. analysis, design, implement, test, etc. This project will implement an aspect of the SDLC which will assist software engineers / developers in the software development process.

Outcomes: (Also see generic requirements for each Term on the web site.)

  •  Term1: Analysis. Define project scope in terms of OOA/UML techniques. Identify principles & parameters relevant to the phase of the SDLC selected and which of these will form part of the project. Identify software technologies & tools that will be used.
  •  Term2: Design & Development. Express design of the programme to be implemented using OOD/UML techniques. Provide a prototype with some functionality to illustrate a feature(s) of the SDLC phase to be automated.
  •  Term3: Implementation. Code the design to obtain a fully functional programme in terms of the scope expressed in term1.
  •  Term4: Testing, Evaluation & Presentation. Design test data and real world data scenario’s to ensure that all programme functions work correctly. Set up an online User’s guide.
  • Components: Programming: 60%; Research: 20%; Theory: 20%
  • Available: Yes

 

Software Project Scheduling and Tracking Support Software

 

Supervisor: MJ Norman ( mnorman@uwc.ac.za)

Prerequisites: Software Engineering 3rd Year, Programming

Project Description: Management remains a very necessary activity when computer-based systems and products are built. In fact, good management of software development projects is one of the elements in reducing the risks associated with software production. Project management involves the planning, monitoring, and control of the people, process and events that occur as the software evolves. Project scheduling and tracking (e.g. Network diagrams, Gannt & PERT charts) are important aspect when managing software projects. This project will implement these identified activities which will assist software / project managers in ensuring that that they effectively implement these management activities.

Outcomes: (Also see generic requirements for each Term on the web site.)

 

  •  Term1: Analysis. Define project scope in terms of OOA/UML techniques. Identify principles & parameters relevant to the activitie(s) (e.g. Network diagrams, etc) selected and which of these will form part of the project. Identify software technologies & tools that will be used.
  •  Term2: Design & Development. Express design of the programme to be implemented using OOD/UML techniques. Provide a prototype with some functionality to illustrate a feature(s) of the activities to be supported.
  •  Term3: Implementation. Code the design to obtain a fully functional programme in terms of the scope expressed in term1.
  •  Term4: Testing, Evaluation & Presentation. Design test data and real world data scenario’s to ensure that all programme functions work correctly. Set up an online User’s guide.
  • Components: Programming: 60%; Research: 20%; Theory: 20%
  • Available: Yes
  • General Aspects about the Project

Clients for these projects can come from internal university individuals / departments or from external entities. The student must identify the requirements and write the specification for the software, design and code the solution for the system, test and install it, and provide all relevant documentation. At the end of each term various outputs must be handed in as well as a project presentation