Reference no: EM133140734
CI7260 Software Quality Engineering - Kingston University London
Learning Outcome 1: Compare, evaluate the concepts and terms defined in software quality assurance, the tools and the metrics together with related industrial standards for software evaluation throughout the software development lifecycle.
Learning Outcome 2: Analyze the benefits and pitfalls of applying software quality assurance and testing plans in different software development contexts.
Learning Outcome 3: Critically evaluate the issues related to multi-layered architectures for web-based infrastructures suitable for developing and deploying web applications, , and produce the design elements of the project
Learning Outcome 4: Apply and use markup languages, scripting languages, and document object models for the development of Client-side components of Web Applications. Create and consume Web Services and APIs
Learning Outcome 5: Apply Database Access, Object-Relational-Mapping (ORM) and Model-View-Controller (MVC) frameworks and techniques for developing Server-side components of Web Applications.
Learning Outcome 6: Develop software quality assurance and testing strategies, including security and usability aspects, and plans for given web development projects, and develop a demonstration system that utilizes appropriate tools and techniques.
1. Assignment Brief: Given a scenario of a software development project, you will develop your understanding of quality management within a team as well as an individual. The individual report will review the theories and practices in software quality management while the group development will demonstrate the practices in software development with awareness of quality assurance, both in the context of software development lifecycle.
Assessment scenario
You are working for a company that specialises in bespoke software development. The company has been asked by a recruitment agency to develop an application that would enable job-seekers to fill their CV online in a structured way. The application would enable the agency to search the CVs to find job-seekers with a particular qualification, skill or experience.
One of your company's analyst has interviewed several people in the agency in order to come up with a database design that captures the sort of data the agency would like in the job-seekers' CV. He then went on to implement the design in MySQL in order to build a prototype application to test the design. However, before he could do this he suddenly left the company and left no documentation.
Your manager has decided to allocate a small team of programmers to build the prototype based on using MySQL database, and make sure all documentations are up-to-date. You are one of the members of this team. She has advised you that it would be a good idea to create a new database design in order to understand it better. She has also advised you that you should investigate and evaluate any software engineering tools that could help you with this and similar future projects.
You have been asked to produce a report (required content is specified below) and work in a team to prepare a demo & presentation for the client.
Your team will be developing a prototype that would
- Enable job-seekers to enter and edit their CV online
- Enable agency employees to search for job-seekers with a particular qualification, skill or experience
- Calculate Halstead's volume on your code and present it to stake holders for KPIs.
How realistic is this exercise?
This exercise tries to simulate, as far as possible, what could happen on a real project. However, there are some obvious aspects of this exercise that will not make it completely realistic. These can be either positive or negative. The main positive ones are:
- One can learn more by having more time to reflect in this type of exercise than on a typical commercial project
- You can make assumptions about the project that may not be realistic on a commercial project (e.g. about the client, users, requirements) - this will give you more scope to be creative
The negative once are
- You will miss out on some important type of experience of working on a commercial project, e.g. company politics, interaction with a real client, serious consequences of making poor decisions
You should now proceed as follows
1. Form teams of several students (you will be getting help with this from the module leader - it should be based on a shared interest to learn about a particular IDE, programming language(s) and the choice of modules during the exercise period)
2. Discuss the experience of the members of the team in the following areas
a. Programming
b. Specific programming languages and environments
c. Web development
d. The tools listed above or more
3. Choose a team leader - preferably the most experienced team member
4. Plan your project in terms of the following stages
a. Identify specific tools and languages to be used on your project (this could change later)
b. Decide what hardware you will use (consider the limitations of using the university workstations and servers - would using laptops or home workstations be a better choice?)
c. Create an Entity-Relationship model
d. Create a copy of the MySQL database on your chosen server
e. Develop a prototype that would enable job-seekers to enter data and generate a CV (e.g. in PDF or Word format)
f. Develop a prototype that would enable the agency to search for job seekers using the following criteria
i. Job or Sector (they want to work in) preference
ii. Minimum education level
iii. Minimum number of GCSE passes
iv. Specific educational qualification
v. Specific professional qualification
vi. Specific skill
vii. Specific experience
g. Write and submit an individual report (you may confer with other students but must not copy - see below details of what is required)
h. Produce group project documentation
i. Prepare and carry out demo / presentation ( see below details of what is required)
5. Execute the plan including your Gantt Chart, and other Software Quality Assurance Documentations
The report should contain the following:
• Brief summary of the software engineering tools used in development including IDE, frameworks, and software quality assurance tools.
• Discussion of related software quality assurance theories and practices related to the project development
• Critical review of the software quality assurance tools and techniques used in the development and real practice experiences in the overall software development lifecycle.
• Requirement specification document.
• Software design document.
• Discussion on future work if the project goes beyond the level defined in the coursework specification.
The Report should:
• Follow a logical Structure (Abstract, Preface, Main body, Conclusions, References )
• All sources should be acknowledged and fully referenced, including URLs etc. where appropriate
• Any quotations (from other sources) should be clearly marked as such, and referencedGroup Project Documentation
The Documentation includes:
• Project schedule document
• System Implementation Plan
• SQA Plan
• Risk Management
• Testing documents Unit testing, black box testing usability testing performance testing
• SQA Test Case Report
• Zipped source code
Attachment:- Software Quality Engineering.rar