Critically analyse architectural styles of software systems and evaluate the role of software architecture in the design and evolution of software.
Submission of research report. To include in-depth background analysis.
Apply the principles of software architecture construction particularly using component and service oriented programming.
Submission of research report. To include detailed analysis of component oriented architecture against other architectural styles.
Evaluate the benefits of software architectures and their corresponding programming paradigms in terms of software quality factors such reusability, maintenance, extendibility. Submission of the research report. To cover the benefits of component software architectures in term of software quality factors.
Critically discuss legal, social and ethical issues associated with software construction.
Submission of the research report. To cover the ethical, social and professional issues.
Apply technical proficiency in component and service oriented analysis and design
The analysis and design part of the practical report.
Evaluate the strengths and weaknesses of service oriented and component technologies.
Service and component technologies evaluation part of the practical report.
Build a complex business application that satisfies an architectural design using a service oriented component technology.
The implementation part of the practical report and the demonstration/presentation (practical exam).
Faculty of Science, Engineering and Computing
Title of Assignment: CWK Part 1: Research report Deadline: 02/11/20
Module weighting: 50%
Submission details: The first part of the coursework should be submitted as a single file to canvas.
Module Learning Outcomes assessed in this piece of coursework
·Critically analyse architectural styles of software systems and evaluate the role of software architecture in the design and evolution of software.
·Apply the principles of software architecture construction particularly using component and service oriented programming.
·Evaluate the benefits of software architectures and their corresponding programming paradigms in terms of software quality factors such reusability, maintenance, extendibility.
·Apply technical proficiency in component and service oriented analysis and design
·Evaluate the strengths and weaknesses of service oriented and component technologies.
Assignment Brief and assessment criteria (these will be discussed within a formally timetabled class)
1. Assignment Brief: Analysing and Building a Banking System Software Using Component and Service Oriented Cloud Architecture
In order to remain competitive and be able to expand its business ABC Banking Group must update its services to reflect the recent advances in information and communication technology. This will require the design and implementation of an adaptable technology migration strategy. Currently, ABC Banking Group system is a LAN based, able to be reached over the web using legacy software. Thus, the Group needs a migration strategy from a LAN based system to Cloud based system, however such a migration requires the consideration not only of the underlying Cloud service oriented architecture, and its benefits, but also should reflect the main business activities of the Group.
At the core of the Group’s business activities is its transaction processing system. The system is used to define accounts and transactions. Accounts refer to things like customers’ bank accounts, while transactions are things like deposits and withdrawals which are essentially time-stamped records. Each account keeps track of the transactions that affect it. It also has a set of attributes such as customer’s name, address, balance, overdraft, running totals (of deposits and withdrawals) computed from the transactions etc.
Once an account is set up, it is used by creating transactions and by querying the attributes of the account. Transactions can come from other systems, like direct debits, or from different branches and they can be created by program control or can be created by a user filling out an input screen. Customers can access their account and conduct transactions using their desktops, mobile phones etc.
Your task is to design new service based architecture of the system. It is up to you how to go along the task. However, you have to take into account the distributed nature of the problem and the possibility of accessing account details, on the server, using different clients and different graphical user interfaces. These interfaces are programmed so that they communicate with the server.
You define how an account handles transactions that are posted to it, one way of handling transactions, is by putting them in a list in order of their date. Queries can be from a simple interface, from reports such as bank statements or from programs that are creating transactions. All interactions with the system are achieved by creating transactions and querying attributes.
The system should be able to perform a number of operations including creating account for every customer, holding the customer’s name and address, allocating a numeric code (account number) for every customer, balance, cost for overdrafts, returning the statements etc. The system also should be able to add, delete customers and work out the total number of customers.
The aims are to design a new software architecture for a banking application and to demonstrate the benefits of service oriented approaches. This should involve the following:
1.Critical analysis of the various architectural styles and recommendations regarding their suitability for the above problem.
2.The evaluation of the benefits of software architectures and their corresponding programming paradigms, particularly object and service orientation, in terms of software quality factors such reusability, maintenance, extendibility.
3.The production of a high level analysis and design of the chosen architecture style and the migration steps.
4.The identification of a strategy for migrating to a Cloud based service architecture and technologies, which should include a critical discussion showing the benefits and drawbacks of the new strategy/architecture.
The aims are to design a new software architecture for a banking application and to demonstrate the benefits of service oriented approaches. This should involve the following:
1.Critical analysis of the various architectural styles and recommendations regarding their suitability for the above problem.
2.The evaluation of the benefits of software architectures and their corresponding programming paradigms, particularly object and service orientation, in terms of software quality factors such reusability, maintenance, extendibility.
3.The production of a high level analysis and design of the chosen architecture style and the migration steps.
4.The identification of a strategy for migrating to a Cloud based service architecture and technologies, which should include a critical discussion showing the benefits and drawbacks of the new strategy/architecture.
You are asked to address the aims and business requirements by producing a report, based on your own wider reading and research including relevant citations to recent literature, which covers:
1.Software Architecture (20%)
This should include selection, analysis and evaluation of architectural styles based on the work undertaken in the broader subject area. This should also include some recommendations for a suitable, to the above problem, architectural style.
2.Architecture Comparison (20%)
This should include the overview of the benefits of software architecture using software quality factors, highlighting advantages and disadvantages of two architectural styles such as object and service orientation, and a suitability analysis of the service based architecture.
3.Analysis & Design (20%)
This should include a discussion of your analysis and design aspects decisions. It should also include requirement specification and design diagrams such as component, class and sequence diagrams.
4.Migration Strategy and Technologies (20%)
This should include selection and reviewing potential Cloud services, mapping of a selected architecture onto the Cloud with clear migration strategy. This should also include and the potential technologies for the implementation.